1.IPV6报文格式
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Source Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Destination Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPV6头部:40bit
Version 4-bit 版本号
Traffic Class 8-bit 流量类别
Flow Label 20-bit 流标签
Payload Length 16-bit 该字段表示有效载荷的长度,有效载荷是指紧跟IPv6基本报头的数据包,包含IPv6扩展报头。不包含IPV6的头部。
Next Header 8-bit 表明跟随在IPV6后面的报文类型,例如封装的是ICMPV6,就显示ICMPV6
Hop Limit 8-bit 跳数,每转发一次减1,例如IPV4的TTL
Source Address 128-bit 源地址
Destination Address 128-bit 目的地址
2. IPV6扩展头部
+---------------+------------------------
| IPv6 header | TCP header + data
| |
| Next Header = |
| TCP |
+---------------+------------------------
+---------------+----------------+------------------------
| IPv6 header | Routing header | TCP header + data
| | |
| Next Header = | Next Header = |
| Routing | TCP |
+---------------+----------------+------------------------
+---------------+----------------+-----------------+-----------------
| IPv6 header | Routing header | Fragment header | fragment of TCP
| | | | header + data
| Next Header = | Next Header = | Next Header = |
| Routing | Fragment | TCP |
+---------------+----------------+-----------------+-----------------
在IPV6中,有些功能是在IPV6头部是没有分配相应的位,例如分片,所以需要IPV6的扩展头部来实现。例如下图的逐跳选项,紧跟在IPV6头部之后,然后在逐跳选项中又指向下一个头部是ICMPv6。扩展头部必须在按照在数据包出现的顺序