当前位置: 首页 > news >正文

【网络安全】从IP头部看网络通信:IPv4、IPv6与抓包工具 Wireshark 实战

从IP头部看网络通信:IPv4、IPv6与抓包工具 Wireshark实战

在网络安全分析和数据通信的世界中,一切都始于“数据包”。数据包是网络上传输的基本单位,而数据包的结构与内容,正是我们理解网络行为的核心。本文将带你深入了解 IP 协议中两种主流版本(IPv4 与 IPv6)的报文头结构,并介绍如何使用 Wireshark 等网络抓包工具高效分析这些数据包。


1. 什么是IP协议?

IP(Internet Protocol,互联网协议)是互联网通信的基石。它负责将数据包从源地址发送到目标地址。IP 协议规定了数据包的格式和路由方式,是实现不同设备之间通信的“邮递系统”。

目前,互联网上主要使用两个版本的 IP 协议:

  • IPv4(Internet Protocol version 4)
  • IPv6(Internet Protocol version 6)

它们的核心区别除了地址长度外,也体现在头部结构的不同设计上。


2. IPv4头部结构解析

在这里插入图片描述

IPv4 是目前最广泛使用的 IP 版本,其报文头部由 13 个字段组成:

字段名说明
Version指明协议版本(4)
IHL(Header Length)头部长度,单位为 4 字节
Type of Service(ToS)指定服务质量,决定优先级
Total Length包含头部与数据的总长度
Identification数据包唯一 ID,用于分片重组
Flags分片控制位
Fragment Offset分片偏移量
Time to Live(TTL)生存时间,防止包在网络中无限循环
Protocol数据部分所用的上层协议(如 TCP、UDP)
Header Checksum头部校验和
Source Address源 IP 地址
Destination Address目的 IP 地址
Options(可选)安全性、记录路由等附加信息

IPv4 的设计虽然精巧,但随着互联网发展,地址资源逐渐枯竭,这也促使了 IPv6 的推广。


3. IPv6头部结构解析

在这里插入图片描述

IPv6 相较于 IPv4 更为简洁高效,仅包含 8 个字段:

字段名说明
Version协议版本(6)
Traffic Class类似 IPv4 的 ToS,用于服务分类
Flow Label流标签,标记数据流以便路由器识别
Payload Length数据部分长度
Next Header下一个头部类型(如 TCP、UDP)
Hop Limit与 TTL 类似,防止无限转发
Source Address源 IPv6 地址
Destination Address目的 IPv6 地址

IPv6 采用 128 位地址,极大地扩展了地址空间,并简化了处理流程。


4. 网络抓包实战:Wireshark的使用

要理解或调查网络中发生了什么,仅靠理论还不够。Wireshark 是一款开源网络协议分析工具,能够实时捕捉网络流量,并以人类可读的方式展示每个数据包的详细内容。

Wireshark基本功能

  • 实时捕获网络数据包
  • 展示每个包的协议、源/目的地址、端口、长度等
  • 支持协议层级解析(链路层、IP层、传输层、应用层)
  • 使用强大的过滤器进行精确分析

常用显示过滤器

Wireshark 提供强大的显示过滤器功能,可以从海量数据包中筛选出你感兴趣的信息。
在这里插入图片描述

协议过滤器

协议过滤是使用显示过滤器最简单的方法之一。您只需输入要过滤的协议名称即可。例如,要过滤 DNS 数据包,只需在过滤器工具栏中输入dns即可。以下是一些可以过滤的协议列表:

  1. dns
  2. http
  3. ftp
  4. ssh
  5. arp
  6. telnet
  7. icmp

过滤 IP 地址

您可以使用显示过滤器来定位具有特定 IP 地址的数据包。

例如,如果要过滤包含特定 IP 地址的数据包,请使用ip.addr,后跟空格、等号==比较运算符以及 IP 地址。以下是针对 IP 地址172.21.224.2进行过滤的显示过滤器示例:

ip.addr == 172.21.224.2

要过滤来自特定源 IP 地址的数据包,可以使用ip.src过滤器。以下示例查找源 IP 地址10.10.10.10 :

ip.src == 10.10.10.10

要过滤发往特定目标 IP 地址的数据包,可以使用ip.dst过滤器。以下示例搜索目标 IP 地址4.4.4.4 :

ip.dst == 4.4.4.4

过滤 MAC 地址

您还可以根据媒体访问控制 (MAC) 地址过滤数据包。MAC 地址是分配给网络上每个物理设备的唯一字母数字标识符。

eth.addr == 00:70:f4:23:18:c4

端口过滤器

端口过滤用于根据端口号过滤数据包。当您想要隔离特定类型的流量时,此功能非常有用。DNS 流量使用 TCP 或 UDP 端口 53,因此这将仅列出与 DNS 查询和响应相关的流量。

例如,如果想过滤 UDP 端口:

udp.port == 53

同样,也可以过滤 TCP 端口:

tcp.port == 25

使用比较运算符

运算类型符号示例
相等(equal)==eqip.src == 8.8.8.8
不等(not equal)!=neip.dst != 192.168.1.1
大于(greater than)>gttcp.port > 1000
小于(less than)<ltudp.port < 1024
大于等于(>=)>=getcp.port >= 80
小于等于(<=)<=letcp.port <= 443

Follow TCP/UDP Stream:追踪会话流

Wireshark 提供“Follow Stream”功能,可以将某个会话的数据包重新组合成完整的通信内容,非常适合分析 HTTP 请求与响应等应用层数据。

在这里插入图片描述
操作步骤:

  • 右键点击任意相关数据包
  • 选择 Follow > TCP StreamUDP Stream
  • 查看重组后的对话内容

Reference

[1] https://www.wireshark.org/docs/wsug_html/

http://www.lqws.cn/news/507799.html

相关文章:

  • 基于单片机的语音控制设计(论文)
  • 618风控战升级,瑞数信息“动态安全+AI”利剑出鞘
  • 09-StarRocks安全配置FAQ
  • 03-StarRocks查询优化FAQ
  • 服务器安装指南
  • PYTHON从入门到实践2-环境配置与字符串打印用法
  • 黑马Day01-03集开始
  • 轻量化实物建模革命:WebGL如何实现复杂模型的高效加载与交互
  • 增刊第2章:模型API封装与安全
  • 从虚拟机角度解释python3相对导入问题(下)
  • CasaOS中Docker部署SyncThing结合Cpolar实现公网文件同步方案
  • MemcacheRedis--缓存服务器理论
  • 解锁阿里云AnalyticDB:数据仓库的革新利器
  • 较大项目 git(gitee, github) 拉取失败解决方法
  • 想考华为HCIA-AI,应该怎么入门?
  • Python 数据分析与可视化 Day 6 - 可视化整合报告实战
  • 30天入门Python(基础篇)——第20天:输出格式美化详解
  • python果蔬种植销售一体化服务系统
  • Dify×奇墨科技:开源+本土化,破解企业AI落地难题
  • RabbitMQ + JMeter 深度集成指南:中间件性能优化全流程解析!
  • CI/CD GitHub Actions配置流程
  • 手撕线程池
  • WPF 几种绑定 (笔记)
  • Camera Sensor接口协议全解析(五)SLVS-EC接口深度解析
  • Windows环境 git 配置多个ssh
  • Modbus 扫描 从站号、波特率
  • 如何在FastAPI中玩转跨服务权限校验的魔法?
  • C++面试题(48)------ 扑克牌中的顺子
  • android脱糖
  • Uipath Outlook COM 接口错误