IPv6 首部的结构比IPv4 简单得多,删除了IPv4 首部中许多不常用的字段,放入了可选项和报头扩展中;IPv6 中的可选项有更严格的定义。IPv4 中有10 个固定长度的域、2 个地址空间和若干个选项,IPv6 中只有6 个域和2 个地址空间。
1.IPv6 数据报的报文格式
IPv6 数据报由IPv6 基本包头、扩展包头和有效载荷3 部分组成,如图2-4-1 所示。
图2-4-1 IPv6 数据报格式
基本的IPv6 首部的长度固定为40 字节,各字段名称、长度如图2-4-2 所示。
图2-4-2 基本IPv6 首部的格式
(1)版本: 指出此报文所使用的IP 协议的版本号,值为6 表示IP 版本为6。
(2)流量类型: 标记一个IPv6 数据包,用于区分业务编码点(DSCP),以此指明数据包的类或者优先级。
(3)流标签: 该字段是用来标识这个数据包属于源结点和目标结点之间的一个特定序列。这个字段值为0 时,表明不需要IPv6 路由器进行特殊处理。
(4)有效载荷长度: 包括扩展报头和上层数据。如果长度大于65535,则这个值为0。
(5)下一个包头: 标识第一个扩展报头的类型或者上层数据的协议。
(6)跳限制: 该字段定义了IP 数据报所能经过的最大跳数。每经过一个中间路由器,其值将减1,与IPv4 中的TTL 字段类似,当值被减为0 时,路由器会丢掉本包,并向源结点发送类型为3 的ICMPv6 报文。(www.xing528.com)
(7)源IPv6 地址: 标识发送端的IPv6 地址。
(8)目的IPv6 地址: 标识目标端的IPv6 地址。
2.IP 数据报实例分析
启动Wireshark 抓包得到一个IPv6 数据报的实例如图2-4-3 所示。
图2-4-3 IPv6 数据报实例
在实例中,帧首部的“类型”字段值为“86 dd”,表明封装的是IPv6 数据报。
图2-4-3 中灰色背景的40 字节即IPv6 数据报的基本首部。下面详细分析IPv6 数据报的基本包头含义:
第1 ~4 字节数据值为“60 00 00 00”,取前4 位值为6,表明版本号为“6”,即IPv6 版本;取随后的8 位值为0,表明该数据报的流量类型为0;取剩余的20 位值为0,即“流标签”字段值为0,表明不需要IPv6 路由器做特殊处理。
第5、6 字节数据值为“00 20 ”,其十进制值为32,表明该IP 数据报的有效载荷长度为32 字节。注意: 此字段和IPv4 中的“总长度”定义是不同的。
第7 字节数据值为“06”,表明该IP 数据报所携带的上层数据协议是TCP。
第8 字节数据值为“40”,其十进制值为64,表明该IP 数据报能经过的最大跳数为64(即生存期为64 跳)。
第9 ~24 字节(共16 字节)数据值为“20 01 02 50 02 19 c0 04 78 dd 45 bb 9d 64 51 eb”,表明该IP 数据报的源地址为2001:0250:0219: c004:78dd:45bb:9d64:51eb,简写为2001:025:219:c::51eb。
第25 ~40 字节(共16 字节)数据值为“20 01 0d a8 90 00 b2 55 00 00 00 00 00 00 02 51”,表明该数据报的目的地址为2001:0da8:9000:b255:0000:0000:0000:0251。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。