IPv6协议规范(中文版)

IPv6是Internet协议的第六版,显著特征包括128位地址扩展、简化首部格式、支持扩展选项、数据流标签及认证保密功能。该文详细介绍了IPv6的首部格式、术语、地址和选项,对理解IPv6的基础知识至关重要。
摘要由CSDN通过智能技术生成

 Internet 协议第六版 (IPv6) 规范

1。绪论

IP 第 6 版 (IPv6) 是继 IP 第 4 版 (IPv4) [RFC-791] 以后,Internet 协议的一个新版本。由 IPv4 到IPv6的改变主要集中在以下几个方面:

    • 地址容量的扩展
      IPv6把 IP 地址的大小从 32 位增至 128 位,可以支持更多的地址层次,更大数量的节点,以及更简单的地址自动配置。组播路由的可缩放性改进为给组播地址增加一个"范围"字段。又定义了一个叫做"anycast"的新的地址类型,用于把包发送给一组节点中的任意一个。
    • 首部格式的简化
      一些 IPv4 首部字段被删除或者成为可选字段,减少了一般情况下包的处理开销以及IPv6首部占用的带宽。
    • 支持扩展和选项的改进
      IP 首部选项编码方式的修改导致更加高效的传输,在选项长度方面更少的限制,以及将来引入新的选项时更强的适应性。
    • 数据流标签的能力
      加入一个新的能力,使得那些发送者要求特殊处理的属于特别的传输"流"的包能够贴上"标签",比如非缺省质量的服务或者"实时"服务。
    • 认证和保密的能力

为支持认证,数据完整性以及(可选的)数据保密的扩展都在IPv6中说明。本文描述IPv6基本首部以及最初定义的IPv6 扩展首部和选项。还将讨论包的大小问题,数据流标签和传输类别的语法,以及IPv6对上层协议的影响。IPv6 地址的格式和语法在其它文章中单独说明。IPv6版的 ICMP 是所有IPv6应用都需要包含的。

2。术语

节点 - 应用IPv6的一个设备。
路由器 - 传送不是发给自己的IPv6包的节点. [参见下面的说明]
主机 - 任何非路由器节点. [参见下面的说明]
上层 - 直接在IPv6上层的协议层。典型的例子是传输协议如 TCP UDP,控制协议如 ICMP,路由协议如 OSPF,以及网络层或在IPv6里被开凿了通道 (也就是封装在IPv6) 的低层协议,比如 IPXAppleTalkIPv6自身。
链路 - 一个通讯设备或者媒体。通过它节点可以与链路层,也就是直接在IPv6下面的那一层进行通讯。典型的例子是以太网(简单的或者网桥的)PPP 连接,X.25,帧中继,或者ATM网络以及网络层(或更高层)"通道"。比如说通过 IPv4 或者IPv6本身的通道。
邻居 - 连在同一个链路上的节点。
接口 - 节点与链路的连接。
地址 -IPv6层中一个接口或者一组接口的标识符。
-IPv6首部加上有效数据。
链路 MTU - 最大传输单元。也就是以八位组为单位的能在链路中传输的包的最大大小。
路径 MTU - 源节点到目的节点之间的路径中所有链路的最小链路 MTU

注意: 尽管不常见,但这是可能的: 就是一个设备具有多个接口,用来传输从它的某些(不是全部)接口传来的,不以自身为目的节点的包,并且抛弃那些从其他接口传来的,不以自身为目的节点的包。当这样的设备通过前一种接口接收包或者与其邻居联系时,它必须遵循协议中有关路由器的要求。当它通过后一种接口接收包或者与其邻居联系时,它必须遵循协议中有关宿主机的要求。

3.IPv6首部格式

首部格式

版本

4 位Internet协议版本号=6。

传输类别

8 位传输类别字段。

数据流标签

20位数据流标签。

有效数据长度

16 位无符号整数,IPv6有效数据长度。也就是以八位组为单位,在这个包中IPv6首部后面的其余部分的长度。(注意,扩展首部将被认为是有效数据的一部分,计算在长度里)

下一个首部

8 位选择器。标识紧接在IPv6首部后面的下一个首部的类型。使用与 IPv4 协议字段相同的数值。

跳数限制

8 位无符号整数。在每个传输此包的节点处递减1。如

果跳数限制减为零,就抛弃此包。

源地址

128 位包的制作者的地址。

目的地址

128 位包的预期接收者的地址 (如果存在路由首部的话,可能不是最终的接收者)。

 

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实现应包含以下扩展首部的处理程序:

  • Hop-by-Hop 选项首部
  • 路由首部 (类型 0)
  • 分片首部
  • 目的地址首部
  • 认证首部
  • 封装安全有效数据首部 (ESP 首部)

4.1 扩展首部的顺序

当在同一个包中使用多于一个扩展首部时,建议以如下顺序排列这些首部:

IPv6首部

Hop-by-Hop 选项首部

目的地址选项首部 (注 1)

路由首部

分片首部

认证首部 (注 2)

封装安全有效数据首部 (注 2)

目的地址选项首部 (注

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值