IPv6 - 标头
IPv6 的神奇之处在于其标头。 IPv6 地址比 IPv4 大 4 倍,但令人惊讶的是,IPv6 地址的标头仅比 IPv4 大 2 倍。 IPv6 标头有一个固定标头和零个或多个可选(扩展)标头。 路由器所必需的所有必要信息都保存在固定报头中。 扩展报头包含可选信息,可帮助路由器了解如何处理数据包/流。
固定标头
IPv6 固定报头长度为 40 字节,包含以下信息。
S.N. | 字段 & 描述 |
---|---|
1 | Version (4-bits):代表网际协议的版本号,即0110。 |
2 | Traffic Class (8-bits): 这8位分为两部分。 最重要的 6 位用于服务类型,让路由器知道应该为这个数据包提供什么服务。 最低有效 2 位用于显式拥塞通知 (ECN)。 |
3 | Flow Label (20-bits): 该标签用于维护属于通信的数据包的顺序流。 源标记序列以帮助路由器识别特定数据包属于特定信息流。 该字段有助于避免数据包的重新排序。 它专为流媒体/实时媒体而设计。 |
4 | Payload Length (16-bits):该字段用于告诉路由器特定数据包在其有效负载中包含多少信息。 Payload 由 Extension Headers 和 Upper Layer data 组成。 16位,最多可表示65535字节; 但是如果Extension Headers中包含Hop-by-Hop Extension Header,那么payload可能会超过65535字节,该字段设置为0。 |
5 | Next Header (8-bits): 该字段用于指示扩展报头的类型,或者如果扩展报头不存在则指示上层 PDU。 上层 PDU 类型的值与 IPv4 相同。 |
6 | Hop Limit (8-bits): 该字段用于阻止数据包在网络中无限循环。 这与 IPv4 中的 TTL 相同。 Hop Limit 字段的值在通过链接(路由器/跳)时减 1。 当该字段达到 0 时,数据包将被丢弃。 |
7 | Source Address (128-bits): 该字段指示数据包发起者的地址。 |
8 | Destination Address (128-bits): 该字段提供数据包预期接收者的地址。 |
扩展标头
在 IPv6 中,固定标头仅包含必要的信息,避免了不需要或很少使用的信息。 所有这些信息都以扩展报头的形式放在固定报头和上层报头之间。 每个扩展头都由一个不同的值标识。
当使用扩展标头时,IPv6 固定标头的 Next Header 字段指向第一个扩展标头。 如果还有一个扩展标头,那么第一个扩展标头的'Next-Header'字段指向第二个,依此类推。 最后一个扩展标头的'Next-Header'字段指向上层标头。 这样,所有的标头都以链表的方式指向下一个。
如果Next Header字段的值是59,说明这个标头之后没有标头,连Upper Layer Header都没有。
必须根据 RFC 2460 支持以下扩展标头:
扩展标头的顺序应该是:
These headers:
1. 应该由第一目的地和后续目的地处理。
2. 应由最终目的地处理。
扩展标头以链表的方式依次排列,如下图所示: