⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2460.txt

📁 很多RFC的中文文档
💻 TXT
📖 第 1 页 / 共 4 页
字号:
组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:
译文发布时间:2001-10-17
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须
保留本文档的翻译及版权信息。


Network Working Group                                         S. Deering
Request for Comments: 2460                                         Cisco
Obsoletes: 1883                                                R. Hinden
Category: Standards Track                                          Nokia
                                                           December 1998



Internet 协议第六版 (IPv6) 规范
(RFC2460——Internet Protocol, Version 6 (IPv6) Specification)


关于本文的说明
本文详细说明了 Internet 团体的一个标准协议, 并且请求进一步改进的讨论和建议。 请
参考"Internet 正式协议标准" (标准 1) 的当前版本来得到本协议的标准化陈述。 本文的分
发不受限制。
版权声明
版权所有 (C) Internet 协会 (1998)。 保留所有权利。
摘要
本文详细说明了 Internet 协议第 6 版 (IPv6)。 它有时叫做下一代 IP 或者IPng。
目录
1。 绪论	2
2。 术语	3
3。 IPv6 首部格式	3
4。 IPv6 扩展首部	4
4。1 扩展首部的顺序	5
4。2 选项	6
4。3 Hop-by-Hop 选项首部	7
4。4 路由首部	7
4。5 分片首部	11
4。6 目的地址选项首部	13
4。7 "无下一个首部"	14
6。 数据流标签	15
7。 传输类别	15
8。 上层协议的问题	15
8。1 上层协议校验和	15
8。2 包的最大生存期	16
8。3 上层协议的最大有效载荷尺寸	17
8。4 对携带路由首部的包的响应	17
附录 A。 数据流标签字段的语义和用法	17
附录 B。 选项字段格式的指导方针	18
安全性的考虑	20
参考文献	21
自 RFC-1883 以来的变化	21
完整的版权声明 (原文)	22

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 地
址的格式和语法在 [ADDRARCH] 中单独说明。 IPv6 版的 ICMP 是所有 IPv6 应用
都需要包含的, 它在 [ICMPv6] 中说明。
2。 术语
节点 - 应用 IPv6 的一个设备。
路由器 - 传送不是发给自己的 IPv6 包的节点。 [参见下面的说明]
主机 - 任何非路由器节点。 [参见下面的说明]
上层 - 直接在 IPv6 上层的协议层。 典型的例子是传输协议如 TCP 和 UDP,控制协议
如 ICMP, 路由协议如 OSPF, 以及网络层或在 IPv6 里被开凿了隧道 (也就是封装在 
IPv6 里) 的低层协议, 比如 IPX, AppleTalk, 或者 IPv6 自身。
链路 - 一个通讯设备或者媒体。 通过它节点可以与链路层, 也就是直接在 IPv6 下面的
那一层进行通讯。 典型的例子是以太网 (简单的或者网桥的); PPP 连接; X。25帧中继, 或
者 ATM 网络; 以及网络层(或更高层)的"隧道"。 比如说通过 IPv4 或者 IPv6 本身的隧
道。
邻居 - 连在同一个链路上的节点。
接口 - 节点与链路的连接。
地址 - IPv6 层中一个接口或者一组接口的标识符。
包 - IPv6 首部加上有效载荷。
链路 MTU - 最大传输单元。 也就是以八位组为单位的能在链路中传输的包的最大尺寸。
路径 MTU - 源节点到目的节点之间的路径中所有链路的最小链路 MTU。
注意: 尽管不常见, 但这是可能的: 就是一个设备具有多个接口, 用来传输从它的某些(不
是全部)接口传来的, 不以自身为目的节点的包, 并且抛弃那些从其他接口传来的, 不以
自身为目的节点的包。 当这样的设备通过前一种接口接收包或者与其邻居联系时, 它必须
遵循协议中有关路由器的要求。 当它通过后一种接口接收包或者与其邻居联系时, 它必须
遵循协议中有关宿主机的要求。
3。 IPv6 首部格式
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 版本 | 传输类别 | 数据流标签 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 有效载荷长度 | 下一个首部 | 跳数限制 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ 源 地 址 +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ 目 的 地 址 +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
版本 4 比特 Internet 协议版本号 = 6。
传输类别 8 比特传输类别字段。 参见第 7 章。
数据流标签 20 比特数据流标签。 参见第 6 章。
有效载荷长度 16 比特无符号整数。 IPv6 有效载荷长度。 也就是以八位组为单位, 在这
个包中 IPv6 首部后面的其余部分的长度。 (注意, 扩展首部 [第 4 章] 将被认为是有效
载荷的一部分, 计算在长度里。)
下一个首部 8 比特选择器。 标识紧接在 IPv6 首部后面的下一个首部的类型。 使用与 
IPv4 协议字段 [RFC-1700 及后续协议相同的数值。
跳数限制 8 比特无符号整数。 在每个传输此包的节点处递减1。 如果跳数限制减为零, 就
抛弃此包。
源地址 128 比特包的制作者的地址。 参见 [ADDRARCH]
目的地址 128 比特包的预期接收者的地址 (如果存在路由首部的话,可能不是最终的接收
者)。 参见 [ADDRARCH] 和第 4。4 章。
4。 IPv6 扩展首部
在 IPv6 里, 可选的网络层信息在一个独立的首部编码, 放在包中 IPv6 首部与上层协议
首部之间。 有这样几个为数不多的扩展首部, 每个首部由不同的"下一个首部"的值来标识。 
一个 IPv6 首部可以携带零个, 一个或者更多的扩展首部, 每个扩展首部由前一个首部中
的"下一个首部"字段标识。 如下例所示:
+---------------+------------------------
| IPv6 首部 | TCP 首部 + 数据
| |
| 下一个首部 = |
| TCP |
+---------------+------------------------

| IPv6 首部 | 路由首部 | TCP 首部 + 数据
| | |
| 下一个首部 = | 下一个首部 = |
| 路由首部 | TCP |
+---------------+----------------+------------------------
+---------------+----------------+-----------------+-----------------
| IPv6 首部 | 路由首部 | 分片首部 | TCP 首部 + 数据
| | | | 的分片
| 下一个首部 = | 下一个首部 = | 下一个首部 = |
| 路由首部 | 分片首部 | TCP |
+---------------+----------------+-----------------+-----------------
除了一个特例, 扩展首部不在包的传送路径中的任何节点检测和处理, 直到这个包到达目
的地址字段标识的那个节点 (或者在组播的情况下, 一组节点中的每一个)。在这里, 对
IPv6 首部的"下一个首部"字段的常规处理将是调用处理模块来处理第一个扩展首部, 或
者, 如果不存在扩展首部, 就处理上层首部。 每个扩展首部的内容和语义决定是否处理
下一个首部。 因此, 扩展首部必须严格按照它们在包中出现的次序来处理; 这样, 接收
者就不能搜索整个包来寻找某个特定类型的首部, 并且在处理所有前面的首部之前处理它。
上文所述的特例是指 Hop-by-Hop 选项首部。 它携带了包的传送路径中的每个节点都必须
检测和处理的信息, 包括源节点和目的节点。 Hop-by-Hop 选项首部如果存在, 就必须
紧跟在 IPv6 首部后面。 IPv6 首部中"下一个首部"字段的值为零表示存在这个首部。
如果一个首部的处理结果要求节点处理下一个首部, 但是节点无法识别这个首部的"下一个
首部"字段值, 那么节点就应该抛弃这个包, 并且给包的源节点发送一个ICMP "参数存在
问题"的报文, ICMP 编码值为 1 ("遇到无法识别的'下一个首部'类型")。 ICMP 指针字段
包含那个无法识别的值在原包中的偏移量。 如果节点遇到 IPv6 首部以外的其他首部中的"
下一个首部"字段的值为零的情况, 应做相同的处理。
为了后 娴氖撞勘3?8 个八位组对齐, 每个扩展首部都是 8 个八位组的整数倍长。每个扩
展首部的多八位组字段都以它们的自然边界对齐。 也就是说, 宽度为 n 个八位组的字段
放在距首部开始位置处 n 个八位组的整数倍的位置上, 其中 n = 1, 2, 4, 或者 8。
一个完整的 IPv6 实现应包含以下扩展首部的处理程序:
Hop-by-Hop 选项首部
路由首部 (类型 0)
分片首部
目的地址首部
认证首部
封装安全有效载荷首部 (ESP 首部)
前四个将在本文中加以说明, 后两个在 [RFC-2402] 和 [RFC-2406] 中分别进行说明。
4。1 扩展首部的顺序
当在同一个包中使用多于一个扩展首部时, 建议以如下顺序排列这些首部:
IPv6 首部
Hop-by-Hop 选项首部
目的地址选项首部 (注 1)
路由首部
分片首部
认证首部 (注 2)
封装安全有效载荷首部 (注 2)
目的地址选项首部 (注 3)
上层协议首部
注 1: 由 IPv6 目的地址字段及路由首部列出的后续地址中第一个出现的目的地址处理的
选项。
注 2: 关于认证首部和封装安全有效载荷首部的相关顺序的附加建议参见 [RFC-2406]。
注 3: 只由包的最终目的地址处理的选项。
除了目的地址选项首部最多出现两次 (一次在路由首部前, 一次在上层协议首部前)以外, 
每个扩展首部应当只出现一次。
如果上层协议首部是另一个 IPv6 首部 (在使用隧道技术或封装在 IPv6 中的情况下), 它
后面可以有自己的扩展首部。 这些扩展首部以同样的建议顺序独立排列。如果定义了其他
的扩展首部, 与上面列出的扩展首部相关的次序限制必须加以说明。除了 Hop-by-Hop 选
项首部必须紧跟在 IPv6 首部后面以外, IPv6 节点必须接受并且尽量处理任意顺序的, 以
及在同一个包内出现任意多次的扩展首部。 尽管如此, 强烈建议 IPv6 包的源节点遵守上
面的建议顺序, 除非后续的协议规范修改这一顺序。
4。2 选项
当前已定义的扩展首部中的两个 -- Hop-by-Hop 选项首部和目的地址选项首部 --
携带不定数量的, 以类型-长度-值(TLV)格式进行编码的选项, 其格式如下
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -
| 选项类型 | 选项数据长度 | 选项数据
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -
选项类型 8 比特标识符, 标识选项的类型。
选项数据长度 8 比特无符号整数。 以八位组为单位的选项数据字段的长度。
选项数据 可变长度字段。 依选项类型而不同的数据。
首部中的选项必须严格按照它们在首部中出现的次序来处理; 这样, 接收方就不能搜索整

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -