IPv6的奇迹在于其标头。IPv6地址是IPv4的4倍,但是令人惊讶的是,IPv6地址的标头仅是IPv4的2倍。IPv6标头具有一个固定标头和零个或多个可选(扩展)标头。路由器必不可少的所有必要信息都保存在固定报头中。扩展头包含可选信息,可帮助路由器了解如何处理数据包/流。
固定头
[图片:IPv6固定标头]IPv6固定标头的长度为40个字节,并包含以下信息。
序号 | 栏位说明 |
---|---|
1个 | 版本(4位):表示Internet协议的版本,即0110。 |
2 | 流量等级(8位):这8位分为两部分。服务类型的最高6位用于让路由器知道应向此数据包提供哪些服务。最低有效2位用于显式拥塞通知(ECN)。 |
3 | 流标签(20位):此标签用于维护属于通信的数据包的顺序流。源标记序列,以帮助路由器识别特定的数据包属于特定的信息流。该字段有助于避免对数据包进行重新排序。它设计用于流媒体/实时媒体。 |
4 | 有效载荷长度(16位):此字段用于告诉路由器特定数据包的有效载荷中包含多少信息。有效负载由扩展头和上层数据组成。16位最多可指示65535字节;但是如果扩展头包含逐跳扩展头,则有效负载可能会超过65535字节,并且此字段设置为0。 |
5 | 下一个报头(8位):此字段用于指示扩展报头的类型,或者如果不存在扩展报头,则其指示上层PDU。上层PDU类型的值与IPv4相同。 |
6 | 跳数限制(8位):此字段用于停止数据包无限循环进入网络。这与IPv4中的TTL相同。跳数限制字段的值在通过链接(路由器/跳数)时递减1。当该字段达到0时,将丢弃数据包。 |
7 | 源地址(128位):此字段指示数据包的始发者的地址。 |
8 | 目的地址(128位):此字段提供数据包的预期接收者的地址。 |
扩展头
在IPv6中,固定标头仅包含必要的信息,避免了那些不需要或很少使用的信息。所有这些信息都以扩展头的形式放在固定头和上层头之间。每个扩展头均由不同的值标识。
使用扩展头时,IPv6固定头的“下一个头”字段指向第一个扩展头。如果还有一个扩展头,则第一个扩展头的“ Next-Header”字段指向第二个扩展头,依此类推。最后一个扩展头的“ Next-Header”字段指向上层头。因此,所有标题以链接列表的方式指向下一个。
如果“下一个报头”字段包含值59,则表明该报头之后没有报头,甚至上层报头也没有。
根据RFC 2460,必须支持以下扩展头:
扩展头的顺序应为:
这些标题:
- 1.应由第一个和后续目的地处理。
- 2.应由最终目的地处理。
扩展头以链接列表的方式一个接一个地排列,如下图所示:
[图片:扩展头连接格式]