【TCP/IP 笔记】IPv6-02 | IPv6 数据报

参考 http://tcpipguide.com

文章目录

  • IPv6 数据报 (Datagram)
    • IPv6 数据报一般格式
    • IPv6 主报头 (Main Header) 格式
      • IPv6 下一报头字段 (Next Header)
    • IPv6 数据报扩展头
      • IPv6 Routing Extension Header
      • IPv6 Fragment Extension Header
      • IPv6 扩展头顺序
      • IPv6 数据报选项 (Datagram Options)

IPv6 数据报 (Datagram)

IPv6 数据报一般格式

【TCP/IP 笔记】IPv6-02 | IPv6 数据报_第1张图片

组成部分 长度 (bytes) 描述
Main Header 40 每个数据报包含源地址、目的地址和一些必须的重要信息
Extension Headers 可变的 每个 Extension Headers 都包含一种类型的扩展信息,以支持各种功能,如分片、源路由、安全性和各种选项
Data 可变的 装载来自上层要传输的信息

IPv6 主报头 (Main Header) 格式

【TCP/IP 笔记】IPv6-02 | IPv6 数据报_第2张图片

字段名 长度 (bytes) 描述
Version 0.5 生成该数据报所用 IP 协议的版本。IPv6 中值为 6 (二进制 0110)。
Traffic Class 1 指示 IPv6 数据流通信类别或优先级,与 IPv4 中的 TOS 相似,但使用 Differentiated Services (DS)。
Flow Label 2.5 该标签为实时数据传输和服务质量功能提供额外支持。路径上的路由器可以根据该标签对数据流进行区分和处理。不是所有路由器和设备都支持流标签处理,该字段是可选的。
Payload Length 2 该字段代替了 IPv4 中的 Total Length,但和 Total Length 不同,它测量的不是整个数据报的长度,而只是扩展头和荷载的字节数,即整个数据报的长度减去 40bytes 的主头部。
Next Header 1 该字段代替了 IPv4 中的 Protocol。有两个用处,当数据报有扩展头时,该字段指向地一个扩展头,当数据报没有没有扩展头时,该字段和 IPv4 中的 Protocol 一样。
Hop Limit 1 该字段代替了 IPv4 中的 TTL。这个名字更好的反映了 TTL 的实际工作方式,因为 TTL 实际上是计算跳数,而非时间。
Source Address 16 源地址
Destination Address 16 目的地址

IPv6 下一报头字段 (Next Header)

下一报头是 IPv6 数据报中新加入的一个重要字段。该字段包含一个表示第一个扩展头的标识符,扩展头又有自己的下一报头字段指向它的下一个扩展头,最后一个扩展头的下一报头字段则指出上层协议。

值(十六进制) 协议 / 扩展头
00 逐跳选项 (Hop-By-Hop Options) 扩展头
01 ICMPv4
02 IGMPv4
04 IP in IP Encapsulation
06 TCP
08 EGP
11 UDP
29 IPv6
2B 路由 (Routing) 扩展头
2C 分片 (Fragmentation) 扩展头
2E 资源预留协议 (RSVP)
32 ESP 扩展头
33 AH 扩展头
3A ICMPv6
3B 没有下一报头
3C 目的选项 (Destination Options) 扩展头

IPv6 数据报扩展头

【TCP/IP 笔记】IPv6-02 | IPv6 数据报_第3张图片

IPv6 数据报扩展头通过下一报头字段形成一个链式结构。所有扩展头的长度必须为 8bytes 的整数倍。

下一报头值(十进制) 扩展头名 长度 (bytes) 描述
0 Hop-By-Hop Options 可变的 定义一组选项,这些选项用于传输路径上所有设备进行检查
43 Routing 可变的 指定数据报传输的路由,相当与 IPv4 中的 loose source routing option。
44 Fragment 8 当数据报仅为原始消息的片段时,包含此扩展头,它包含 IPv6 主报头去除的 Fragment Offset, Identification 和 More Fragment 字段的信息。
50 ESP 可变的 携带用于安全通信的加密数据。
51 AH 可变的 包含确保加密数据可靠性的信息。
60 Destination Options 可变的 定义一组选项,这些选项仅用于检查目的。

IPv6 Routing Extension Header

【TCP/IP 笔记】IPv6-02 | IPv6 数据报_第4张图片

字段名 长度 (bytes) 描述
Next Header 1 同主报头的下一报头字段。
Header Extension Length 1 以 8-byte 为一单位,指出该扩展头的长度,不包含该头的前 8bytes。
Routing Type 1 该字段允许定义多种路由类型,现阶段唯一使用值为 0。
Segments Left 1 指定到目的之前路由中剩余的显式命名节点数。
Reserved 4 还未使用,设为 0。
Address1 ~ AddressN 可变的(16 的倍数) 一组用于指定路由的 IPv6 地址。

IPv6 Fragment Extension Header

【TCP/IP 笔记】IPv6-02 | IPv6 数据报_第5张图片

字段名 长度 (bits) 描述
Next Header 8 同上
Reserved 8 保留,还未使用,设为 0。
Fragment Offset 13 指定数据报片段在原始信息中的偏移量或位置,以 8bytes 为一单位,和 IPv4 中的 Fragment Offset 字段相同。
Res 2 保留,还未使用,设为 0。
M Flag 1 同 IPv4 中的 More Fragments Flag。当设为 0 时表示该片段为原始信息的最后一个片段,反之则表示后面还有其他片段。
Identification 32 同 IPv4 中的 Identification 字段,不同的是扩展到 32bits。

IPv6 扩展头顺序

每个扩展头在任何数据报中之出现一次(Destination Options 例外)。当有多个扩展头时,它们在主报头之后和数据报的上一层协议报头之前按以下顺序排列:

  1. Hop-By-Hop Options
  2. Destination Options (被目的设备和路由扩展头中指定的设备处理)
  3. Routing
  4. Fragmentation
  5. AH
  6. ESP
  7. Destination Options (仅被最终目的设备处理)

IPv6 数据报选项 (Datagram Options)

IPv6 通过用扩展头包装选项的方式实现了 IPv4 报头中的选项字段。

IPv6 中有两种选项扩展头:Hop-By-Hop Options 和 Destination Options。它们仅在包含的选项如何由设备处理方面有所不同,它们的格式和使用方式都是相同的。

IPv6 Hop-By-Hop Options and Destination Options Header Formats:

【TCP/IP 笔记】IPv6-02 | IPv6 数据报_第6张图片

子字段名 长度 (bytes) 描述
Option Type 1 表示该选项的类型
子子字段名 长度 (bits) 描述
Unrecognized Option Action 2 前两位指定处理选项的设备无法识别选项类型时采取的操作
操作
00 跳过选项,处理后面的报头
01 丢弃数据报,不进行操作
10 丢弃数据报,发送一个 2 代号的 ICMP Parameter Problem message 给发送数据报的源设备
11 丢弃数据报,仅当目的地址不为组播地址时发送上面的 ICMP 信息
Option Change Allowed Flag 1 如果选项数据允许在数据报传送中途被修改则设为 1,否则设为 0。
Remainder of Option Type 5 剩余的五个位允许为上述三个位的每个组合指定 32 种不同的组合。
Opt Data Len 1 指出接下来的 Option Data 字段的长度
Option Data 可变的 选项数据

你可能感兴趣的:(Web)