Internet 协议第六版 (IPv6) 规范 1。绪论 IP 第 6 版 (IPv6) 是继 IP 第 4 版 (IPv4) [RFC-791] 以后,Internet 协议的一个新版本。由 IPv4 到IPv6的改变主要集中在以下几个方面:
为支持认证,数据完整性以及(可选的)数据保密的扩展都在IPv6中说明。本文描述IPv6基本首部以及最初定义的IPv6 扩展首部和选项。还将讨论包的大小问题,数据流标签和传输类别的语法,以及IPv6对上层协议的影响。IPv6 地址的格式和语法在其它文章中单独说明。IPv6版的 ICMP 是所有IPv6应用都需要包含的。 2。术语 节点 - 应用IPv6的一个设备。 注意: 尽管不常见,但这是可能的: 就是一个设备具有多个接口,用来传输从它的某些(不是全部)接口传来的,不以自身为目的节点的包,并且抛弃那些从其他接口传来的,不以自身为目的节点的包。当这样的设备通过前一种接口接收包或者与其邻居联系时,它必须遵循协议中有关路由器的要求。当它通过后一种接口接收包或者与其邻居联系时,它必须遵循协议中有关宿主机的要求。 3.IPv6首部格式
4.IPv6扩展首部 在IPv6里,可选的网络层信息在一个独立的首部编码,放在包中IPv6首部与上层协议首部之间。有这样几个为数不多的扩展首部,每个首部由不同的"下一个首部"的值来标识。一个IPv6首部可以携带零个,一个或者更多的扩展首部,每个扩展首部由前一个首部中的"下一个首部"字段标识。如下例所示:
除了一个特例,扩展首部不在包的传送路径中的任何节点检测和处理,直到这个包到达目的地址字段标识的那个节点(或者在组播的情况下,一组节点中的每一个)。在这里,对IPv6 首部的"下一个首部"字段的常规处理将是调用处理模块来处理第一个扩展首部,或者,如果不存在扩展首部,就处理上层首部。每个扩展首部的内容和语义决定是否处理下一个首部。因此,扩展首部必须严格按照它们在包中出现的次序来处理;这样,接收者就不能搜索整个包来寻找某个特定类型的首部,并且在处理所有前面的首部之前处理它。 上文所述的特例是指 Hop-by-Hop 选项首部。它携带了包的传送路径中的每个节点都必须检测和处理的信息,包括源节点和目的节点。Hop-by-Hop 选项首部如果存在,就必须紧跟在IPv6首部后面. IPv6首部中"下一个首部"字段的值为零表示存在这个首部。如果一个首部的处理结果要求节点处理下一个首部,但是节点无法识别这个首部的"下一个首部"字段值,那么节点就应该抛弃这个包,并且给包的源节点发送一个ICMP "参数存在问题"的报文,ICMP 编码值为 1 ("遇到无法识别的'下一个首部'类型")。ICMP 指针字段包含那个无法识别的值在原包中的偏移量。如果节点遇到IPv6首部以外的其他首部中的"下一个首部"字段的值为零的情况,应做相同的处理。 为了后面的首部保持8个八位组对齐,每个扩展首部都是8个八位组的整数倍长。每个扩展首部的多八位组字段都以它们的自然边界对齐。也就是说,宽度为 n 个八位组的字段放在距首部开始位置处 n 个八位组的整数倍的位置上,其中 n = 1,2, 4,或者 8。一个完整的IPv6实现应包含以下扩展首部的处理程序:
4.1 扩展首部的顺序 当在同一个包中使用多于一个扩展首部时,建议以如下顺序排列这些首部:
|
Internet 协议第六版 (IPv6) 规范
最新推荐文章于 2023-02-26 13:45:39 发布