实验环境:win10操作系统,安装了wireshark软件,能正常链接互联网。
一、IPV4数据包
1、开始抓包。双击打开wireshark软件,双击以太网。可以看到许多的不同协议的数据包。

在这里插入图片描述
在这里插入图片描述
2、生成并查找目标流量。ping baidu.com,在wireshark搜索栏输入icmp就可以看到当前的数据包。(因为ping是ICMP协议中的一个命令)
在这里插入图片描述

在这里插入图片描述
3、查看IPV4数据报的结构。双击第一个数据报,number为6888这个,显示:
在这里插入图片描述

数据链路层:展开 “Ethernet II” 部分,这里记录的是物理地址信息,包含源和目标的 MAC 地址。
在这里插入图片描述

网络层:展开Internet Protocol Version 4,Wireshark以清晰的键值对形式显示了整个IPv4报头.
在这里插入图片描述

Pv4 报头字段 在 Wireshark 中的含义和查看要点
0100 … = Version IP 版本号,固定为 4,表明这是一个 IPv4 数据报。
… 0101 = Header Length IP 报头长度。值为 5 代表 5 * 4 = 20 字节(无选项),若大于5则意味着有选项字段。
Differentiated Services Field 服务类型(ToS)字段,包含用于 QoS 的 DSCP 和 ECN 信息。
Total Length IP 报文总长度(报头 + 数据),单位是字节。
Identification 标识字段,用于分片重装。
Flags 标志字段,如 0x02 表示“不分片 (DF)”。
Fragment Offset 片偏移,指示分片在原报文中的位置。
Time to Live 生存时间(TTL),每经过一跳减 1,从初始值(如 64)可大致推断操作系统。
Protocol 上层协议,常见值如 6 (TCP)17 (UDP)1 (ICMP)
Header Checksum 报头校验和,Wireshark通常用“正确”或“错误”标记。
Source Address 发送方 IPv4 地址。
Destination Address 接收方 IPv4 地址

展开 Internet Control Protocol:
在这里插入图片描述

数据包本身就是 ICMP(Internet Control Message Protocol,互联网控制消息协议) 报文,它和 TCP、UDP 一样都是 IP 的“上层协议”,但 ICMP 不依赖传输层,而是直接承载在 IPv4 报头之后。

CMP 字段 含义 常见值
Type 消息类型 8 = Echo 请求,0 = Echo 应答,3 = 目的不可达,11 = 超时
Code 类型下的细分代码 通常为 0,部分类型(如目的不可达)有不同 Code(0=网络不可达,1=主机不可达等)
Checksum ICMP 报文校验和 Wireshark 会自动验证并标记“正确”或“错误”
Identifier 标识符(用于 Ping) 通常为进程 ID,帮助匹配请求和应答
Sequence Number 序列号 每发一个 Ping 请求递增 1
Data 可选负载数据 通常是时间戳或填充字符,用来计算往返时延

保存结果
抓取完感兴趣的数据包后,可以从 File (文件) → Save (保存) 菜单,将当前捕获的所有数据包保存为一个 .pcap 或 .pcapng 文件,方便下次用 Wireshark 打开继续分析。

二、IPV6数据包

使用ipconfig /all命令查看发现,我的电脑只有 fe80::4a3:f50c:35c7:bcc%15 这一个 IPv6 地址,这是一个本地链路地址,只能在同一个广播域内通信,没有分配任何公网 IPv6 地址(例如 240e: 开头的那种)。因此只能通过捕获本机回环(Loopback)的 IPv6 流量(无需外网)
1、重新打开wireshark,选择npcap loopback adapter。双击打开。

在这里插入图片描述
在这里插入图片描述
1、生成 IPv6 流量:命令行中输入:ping ::1
在这里插入图片描述
2、抓包。在显示过滤器栏输入 icmpv6.type == 128,显示自己刚执行的 ping ::1 命令产生的流量
在这里插入图片描述
3、双击第一条数据,打开Internet Protocol Version 6:
在这里插入图片描述
观察 IPv6 报头的所有字段

字段 长度 含义
Version 4 位 IP 版本号,对于 IPv6 固定为 6
Traffic Class 8 位 流量类别,用于 QoS(服务质量),类似于 IPv4 的 Type of Service (ToS) 字段。
Flow Label 20 位 流标签,用于标识属于同一流量的数据包(如视频流),以便路由器特殊处理。IPv4 无此字段。
Payload Length 16 位 有效载荷长度,指的是 IPv6 基本报头之后 部分的字节数(包括扩展报头和上层协议数据)。不包含基本报头的 40 字节。
Next Header 8 位 下一个报头,功能与 IPv4 的 Protocol 字段类似。标识紧跟 IPv6 基本报头的是哪种扩展报头或上层协议。常见的值:58 = ICMPv6,6 = TCP,17 = UDP。
Hop Limit 8 位 跳数限制,等同于 IPv4 的 Time to Live (TTL)。每经过一个路由器减 1,减到 0 时丢弃。
Source Address 128 位 源 IPv6 地址。在你的 ping ::1 中,这个地址是 ::1(本机回环地址)。
Destination Address 128 位 目的 IPv6 地址。在你的 ping ::1 中,也是 ::1

注意:IPv6 报头 没有 这些字段(与 IPv4 相比):IHLIdentificationFlagsFragment OffsetHeader Checksum。这些功能要么被移除(校验和),要么通过扩展报头实现(分片)。


数据链路层(例如 Ethernet II 帧)在 Wireshark 中,数据链路层位于 Internet Protocol Version 6 之上,通常展开后名为 Ethernet II(如果抓的是真实网卡)。对于 Npcap Loopback Adapter 捕获的回环流量,数据链路层会显示为 “Loopback”“NULL/Loopback”,结构不太标准。以最常见的以太网帧为例:

字段 长度 含义
Destination MAC 6 字节 目的设备的 MAC 地址(物理地址)。
Source MAC 6 字节 源设备的 MAC 地址。
Type / Length 2 字节 上层协议类型。对于 IPv6,该字段值为 0x86DD
Payload (Data) 可变 包含网络层数据(即 IPv6 数据报)。
Frame Check Sequence 4 字节 帧校验序列(FCS),用于检测数据帧传输错误。

捕获的 ping ::1 包中,由于是回环虚拟接口,看不到标准的 Ethernet II 头,而是看到 “NULL” 链路层头。这没关系,不影响观察 IPv6 报头。


网络层(就是 IPv6) Internet Protocol Version 6,负责逻辑寻址(IP 地址)、路由和分片(通过扩展报头)。


报头对比

特性 IPv4 报头 IPv6 报头
报头长度 可变(20-60 字节) 固定 40 字节
分片相关字段 有(ID、Flags、Offset) 无(改用扩展报头)
校验和 有(Header Checksum)
选项 包含在报头内 使用独立扩展报头
流标签 有(Flow Label)

结论:IPV4数据报报头和IPV6数据报报头对应关系

IPv4 字段 IPv6 字段 对应说明
Version (4位) Version (4位) 直接对应,但 IPv4 值为 4,IPv6 值为 6。
IHL (4位) IPv6 报头固定为 40 字节,无需长度字段。
Type of Service (8位) Traffic Class (8位) 功能相似,均用于 QoS 和 DSCP/ECN。
Total Length (16位) Payload Length (16位) 功能相似:IPv4 总长度 = 报头 + 数据;IPv6 有效载荷长度 = 扩展报头 + 上层数据(不含基本报头)。
Identification (16位) IPv6 不支持中间路由器分片,仅源端分片,此字段由扩展报头处理。
Flags (3位) 同上,分片控制信息由 IPv6 分片扩展报头承载。
Fragment Offset (13位) 同上。
Time to Live (8位) Hop Limit (8位) 直接对应,功能均为限制报文最大跳数。
Protocol (8位) Next Header (8位) 直接对应:标识上层协议或 IPv6 扩展报头类型。
Header Checksum (16位) IPv6 移除此字段,依赖链路层和上层校验。
Source Address (32位) Source Address (128位) 直接对应,地址长度扩展。
Destination Address (32位) Destination Address (128位) 直接对应,地址长度扩展。
Options (变长) 扩展报头 (多个) 功能对应:IPv4 选项变长且受限;IPv6 使用独立扩展报头(如逐跳选项、路由等)。
Flow Label (20位) IPv6 新增字段,用于标识同一流的数据包,IPv4 无对应。

说明

  • IPv6 移除了 IHLIdentificationFlagsFragment OffsetHeader Checksum 五个字段。
  • 分片功能由 IPv6 的“分片扩展报头”实现,不作为基本报头字段。
  • Flow Label 是 IPv6 新增字段,无 IPv4 对应项。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐