代码改变世界

IPv6 — 协议头

2020-04-19 13:01  云物互联  阅读(1080)  评论(0编辑  收藏  举报

目录

前文列表

IPv6 — 网际协议第 6 版
IPv6 — 地址格式与寻址模式

IPv6 协议头格式

在这里插入图片描述

IPv6 数据报文是 IPv4 的 4 倍,IPv6 数据报文主要由两个部分组成:Header(首部)和 Payload(负载)。其中,IPv6 Header 的大小是 IPv4 的 2 倍,包括以下字段:

  • 协议版本
  • 流量类:分为两部分,前 6 位用于服务类型,以便让路由器知道应该向该数据包提供什么服务,也标识了数据包的优先级。后 2 位用于显式拥塞通知(ECN)。
  • 流标记:标识数据包的 QoS,用于维护数据包的顺序。源标记序列帮助路由器识别特定数据包所属的特定信息流,此字段有助于避免数据包的重新排序,是为了流媒体、实时媒体而设计的。
  • 有效负载长度:有效载荷由扩展报头和上层数据组成。该字段为 16 位,可以表示最大 65535 个字节, 如果扩展报头设置了 “jumbo payload” 选项,则有效载荷可能超过 65535 字节,则此字段值应该被置为 0。
  • 下一个头部:用于标识扩展报头的类型,或者当扩展报头不存在时,则用于标识上层 PDU。 上层 PDU 的类型与 IPv4 的相同。
  • 跳跃限制:标识数据报文的生存时间,相当于 IPv4 中的 TTL。
  • 源地址
  • 目的地址

扩展报头

在 IPv6 的设计中,固定报头只包含了最低程度所需的信息,避免出现那些不需要的,或者很少使用的信息。所有这些信息以扩展报头的形式被放在固定报头和上层报头之间。

每个扩展报头由不同的 Next Header 值标识:当使用扩展报头时,IPv6 固定报头的 Next Header 字段指向下一个扩展报头,依此类推。最后一个扩展头的 Next Header 指向上层报头。 因此,所有报头以链接列表方式指向下一个报头。如果 Next Header 的值为 59,则表示在此报头之后就再没有报头了。

根据 RFC 2460 要求必须支持以下扩展报头:
在这里插入图片描述

扩展报头的顺序应该是:

在这里插入图片描述

扩展报头以链表方式一个接一个地排列,如下图所示:

在这里插入图片描述