IPv6 Header
ipv6包头固定40字节。
|4位IP版本--8位流量类别--20位流标签--16位净载长度--8位下一个头部--8位跳限制|
|----------------------源IP------------------------------------------------|
|----------------------源IP------------------------------------------------|
|--------------------目的IP------------------------------------------------|
|--------------------目的IP------------------------------------------------|
IP版本 == 6
流量类别 == IPV4的区分服务(Differentiated Services Code Point)
+-----------------------------------+
| 7 6 5 | 4 3 2 1 0 |
|-----------+----------------+------|
| TOS | Res |
|-----------+----------------+------|
| DSCP |IP ECN|
+----------------------------+------+
流量标签是一个新字段,用来标记从单一源发往一个或多个目的节点的一批IPV6数据包,让路由器以特殊方式处理这批数据。
净载长度不包括头部40字节长度,包括扩展头部长度和载荷数据长度。
虽然看似净载长度最大是65535字节,但是IPV6可以通过逐跳扩展包头,携带据包4GB-1B
与IPV4一样,IPV6数据包的长度仍然受限于MTU,但是在每个单位内部网络的高速链路上或者在超级计算机之间,可用IPV6巨包来传递数据。
IPV6通过扩展包头实现分片,而且分片只能由源节点进行,路由器不能对转发的IPV6数据进行分片。
下一个头部字段可以指向净载协议类型或者扩展头部类型。
+---------------------------------------------------------------+
| 十进制 | 十六进制 | 描述 |
|---------------------------------------------------------------|
0 0 IPV6逐跳选项扩展包头
1 1 ICMPv4
2 2 IGMPv4
4 4 IPV4封装
5 5 Internet流协议 ST
6 6 TCP
8 8 EGP
17 17 UDP
41 29 IPV6封装
43 2B IPV6路由扩展包头
44 2C IPv6分片扩展包头
46 2E 资源预留协议 RSVP
47 2F GRE
50 32 ESP
51 33 AH
58 3A ICMPv6
59 3B IPv6无下一个包头
60 3C IPv6目的选项扩展包头
88 58 EIGRP增强型内部网关路有协议
89 59 OSPF
IPv6头部没有校验和,这是因为2层和4层协议都有校验和机制,三层校验和多余。
TCP和UDP的校验和都会包含伪头部(源IPV6地址,目的IPV6地址,净载长度,下一个头部字段)
IPv6的以太网帧类型是0x86dd
IPv6扩展包头
IPv6可以通过携带扩展包头增强灵活性和便于日后补强。
IPv6扩展包头会紧跟主包头之后。
如前文所说,下一个头部字段有两个用途,一是指明净载的协议类型,二是指明扩展包头类型。
+----------------------------------------------------------------------------------+
| value | name | length | is TLV? | desc |
+----------------------------------------------------------------------------------+
0 逐跳选项 可变 Yes 用来携带可选信息,转发路径上的路由器必须检查携带这个选项的IPv6包
43 路由 可变 No 生成IPv6数据包的节点,可以通过该扩展头,来指定到目的节点的转发路径(包含中间路由信息)
44 分片 8 No 分片用
50 ESP 可变 No 用来执行验证、完整性检查、加密功能
51 AH 可变 No 验证、完整性检查
60 目的选项 可变 Yes 存放只需要目的节点检查的信息
逐跳选项 和 目的选项 扩展包头
8位下一个头部--8位扩展包头长度--8位选项类型--8位选项长度
--------------选项--------------------------------------
......
--------------选项--------------------------------------
路由扩展包头
8位下一个头部--8位扩展包头长度--8位路由(扩展包头)类型字段值为2--8位分段剩余
-------------------------预留-----------------------------------------------
--------------------------归属地址------------------------------------------
......
--------------------------归属地址------------------------------------------
分片扩展包头
8位下一个头部--8位预留--13位分片偏移--2位Res--1位M标记
-------------------32位标识字段----------------------
ESP 扩展包头
------------------32位安全参数索引SPI--------------------------
------------------32位序列号-----------------------------------
---净载数据(传输模式包括四层数据,隧道模式是包括三层和四层数据)
---净载数据 ----填充字段长度-------------8位下一个头部------
-----------ESP认证数据-----------------------------------------
......
-----------ESP认证数据-----------------------------------------
传输模式:
原始ip包头--逐跳扩展包头--ESP头部--目的扩展包头--TCP头部--数据--ESP尾部--ESP认证
目的扩展包头
路由扩展包头
分片扩展包头
<--------------认证------------------------->
<-----加密------------------------->
隧道模式:
新的ip包头--各扩展包头--ESP头部--原始ip包头--扩展包头--TCP头部--数据--ESP尾部--ESP认证
<---------------------认证-------------------------->
<------------加密-------------------------->
AH 扩展包头
8位下一个头部--8位净载长度--16位预留
--------32位SPI--------------------
--------32位序列号-----------------
--------验证数据-------------------
......
--------验证数据-------------------
传输模式:
原始ip包头--逐跳扩展包头--AH扩展包头--目的扩展包头--TCP头部--数据
目的扩展包头
路由扩展包头
分片扩展包头
<---------------------------认证-------------------------------->
隧道模式:
新ip包头--目的扩展包头--AH扩展包头--原始ip包头--目的扩展包头--TCP头部--数据
<---------------------------认证------------------------------------------>