📄 rfc1883.txt
字号:
组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:cata_xu(cata_xu amethyst@theory.issp.ac.cn)
译文发布时间:2001-9-11
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须
保留本文档的翻译及版权信息。
Network Working Group S. Deering, Xerox PARC
Request for Comments: 1883 R. Hinden, Ipsilon Networks
Category: Standards Track December 1995
Internet协议,版本6(IPv6)说明书
(RFC1883——Internet Protocol, Version 6 (IPv6) Specification)
本备忘录的状态
本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建
议以得到改进。请参考最新版的“Internet正式协议标准” (STD1)来获得本协议的标准化
程度和状态。本备忘录的发布不受任何限制。
摘要
本文档详述Internet协议版本6(IPv6),有时也可以看作是下一代的IP或是IPng。
Table of Contents
目录
1. 介绍 2
2. 术语 3
3. IPv6报头格式 3
4. IPv6扩展报头 5
4.1 扩展报头顺序 6
4.2 选项 7
4.3 逐跳选项报头 8
4.4 路由报头 10
4.5 分片报头 14
4.6 目的地选项报头 18
4.7 无下一报头 19
5. 分组尺寸问题 19
6. 流标签 20
7. 优先权 21
8. 上层协议问题 22
8.1 上层校验和 22
8.2 最大分组生存周期 23
8.3 最大上层有效载荷尺寸 23
附录A 选项的格式化指导策略 24
实例 1 24
实例 2 25
实例 3 26
安全考虑 26
致谢 27
参考 27
1. 介绍
IP版本6(IPv6)是Internet协议的新版本,作为IP版本4(IPv4)[RFC-791]的后继而设
计。IPv4到IPv6之间的变化可以简单地归结到下列范围:
o 扩展地址特性
IPv6把IP地址大小从32位扩大到128位来支持更多的地址等级,更多数目的地址节点
以
及更简单的地址自动配置。广播路由的可测量性是通过增加一个用来广播地址的“范围”
域来改进的。IPv6定义了一个称为“任意播地址”的新型地址,通常用来发一个分组到
一组节点中的任意一个。
o 报头格式简化
一些IPv6报头域已经被去掉或者做了任选以减少分组句柄通用事件(common-case)并且
进程开销已经限制IPv6报头的带宽开销。
o 改进对扩展和选项的支持
在IP报头选项编码上的改变考虑了更多有效的转发,选项长度上的更少限制以及将来引
入新选项时的更大灵活性。
o 流标签特性
IPv6增加了一种新的特性,该特性能为要求特殊句柄发送者,诸如服务的非默认量或
“实时”服务,贴上属于特定通信“流”的分组标签。
o 鉴定和私有化特性
扩展以支持鉴定,数据完整,以及(优化的)数据机密性是IPv6特有的。
本文档详述了基本的IPv6报头和初始定义的IPv6扩展报头和选项,并且也讨论了分组尺寸
问题,流标签和优先权的语义以及IPv6在上层协议中的影响。IPv6地址的格式和语义分别
在[RFC-1884]中得以说明。ICMP的IPv6版本在[RFC-1885]里被说明,那里所有的IPv6实
现都被要求包括。
2. 术语
节点 - 实现IPv6的设备。
路由器 - 一个转发没有清晰指向自身IPv6分组的节点。[见下面的注意]
主机 - 任何不是路由器的节点。[见下面的注意]
上层 - 紧挨着IPv6的上一个协议层。例子是传输协议如TCP和UDP,控制协议如
ICMP,路由协议如OSPF以及Internet或低层作为“隧穿”(即封装进)
IPv6的协议如IPX,AppleTalk或是IPv6本身。
链路 - 在能在链路层(即IPv6下的一层)通信的节点之上的一种通信设施或媒质。
例子是Ethernets(简易的或桥接的),PPP链路,X.25,帧中继,或者
ATM网络,以及Internet(或更高)层“隧道”,如隧穿IPv4或IPv6自身。
邻居 - 连接在同一链路上的节点。
接口 - 到一个链路的节点连接设置。
地址 - 一个接口或一组接口的IPv6标识符。
分组 - 加上有效载荷的IPv6报头。
链路 MTU - 在一个链路上能搬运的一片最大传输单元,即八位字节分组的最大尺寸。
路径 MTU - 源节点和目的节点之间路径里所有链路的最小链路MTU。
注意:尽管有些不寻常,但对有多个接口的设备来说,把它配置成转发从其某些接口组
(少于全部)来的非自身预定的分组,并且抛弃从其别的接口抵达的非自身预定分组是
可能的。当收到从前一个(正在转发的)接口以及和邻居相互作用的分组时,这样的设
备必须遵循路由的协议要求。当收到从后一个(非正在转发的)接口以及和邻居相互作
用的分组时,这样的设备必须遵循主机的协议要求。
3. IPv6报头格式
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 版本 | 优先权 | 流 标 签 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 有效载荷长度 | 下一报头 | 跳限制 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ 源 地 址 +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ 目 的 地 址 +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
版本 4位Internet协议版本号=6
优先权 4位优先权值。见第7节。
流标签 24位流标签。见第6节。
有效载荷长度 16位无符号整数,有效载荷的长度,即IPv6报头之后分组部分是八
位字节形式。如果为零,则说明有效载荷长度携带在一个巨大有效
载荷逐跳选项里。
下一个报头 8位选择器。标识紧接着IPv6报头的报头种类。其和IPv4协议域使用
的
是同一个值[RFC-1700后面有述]。
]
下一跳限制 8位无符号整数,转发此分组的每个节点都减去一。如果下一跳限制
降为零则此分组被抛弃。
源地址 分组始发者的128位地址。见[RFC-1884]。
目的地址 分组指定接受者的128位地址(如果一个路由报头出现,则可能不
是最终接收者)。见[RFC-1884]以及4.4部分。
4. IPv6扩展报头
在IPv6里,任选Internet层信息被编码在分隔的报头里,这个报头可能位于分组的IPv6
报头和上一层报头之间。有少量这样的扩展报头,每个都被一个明确的下一报头值所标识。
正如在这些例子中例证的一样,IPv6分组可以有零、一、或更多扩展报头,每个分组都被
前一个报头的下一报头域所标识:
+---------------+------------------------
| IPv6 报头 | TCP 报头 + 数据
| |
| 下一个报头 = |
| TCP |
+---------------+------------------------
+---------------+----------------+------------------------
| IPv6 报头 | 路 由 报 头 | TCP 报头 + 数据
| | |
| 下一个报头 = | 下一个报头 = |
| 路由 | TCP |
+---------------+----------------+------------------------
+---------------+----------------+-----------------+-----------------
| IPv6 报头 | 路 由 报 头 | 分 片 报 头 | TCP 分 片
| | | | 报头 + 数据
| 下一个报头 = | 下一个报头 = | 下一个报头 = |
| 路由 | 片 段 | TCP |
+---------------+----------------+-----------------+-----------------
有一种例外,除非分组抵达一个标识在IPv6报头目的地址域里的节点(或一组节点中的
每一个,以多播的形式传递),否则扩展报头不会被沿着一分组传递路径上的任何节点
所检查或处理。这样,如果没有扩展报头出现,那么IPv6下一报头域上的正常多路分解
就会激发此模块去处理第一个扩展报头,或者是在扩展报头没有出现时去处理上层报头。
每个扩展报头的内容和语义决定是否去继续到下义报头。所以扩展报头必须严格按它们
在分组里出现的顺序来处理。例如,一个接收器就不能通过扫描一个分组来寻找一种特
别的扩展报头并优先于处理所有前面的分组来处理它。
前面段落里提到的例外就是逐跳选项报头,其携带的信息必须被沿着分组传递路径的每
个节点所处理,包括源和目的地址。逐跳选项报头出现时必须立即接着IPv6报头。它的
出现在IPv6下一报头域里用数值零来指出。
作为处理一个报头的结果,假如一个节点被继续传递到下一个报头但在当前报头里的下一
报头值不被节点承认的话,节点就会废弃分组并发送一ICMP参数问题信息,包括一ICMP编
码值2(意即“遭遇未被承认的下一报头类型”)和在原始分组里包含未承认值的补偿的
ICMP指针域到分组源发地。如果一个节点在非IPv6报头里遭遇为零的下一报头值,同样的
措施也会被采取。
每个扩展报头都是一个8个8位字节的整数倍,这是为了给后来的报头保留8个8位字节的
队
列。每个扩展报头里的多个8位字节域是排列在它们的本来边界上的,即对n=1,2,4,或
8来说,n个8位字节宽的域被放置在从报头开始的n个8位字节的整数倍位置上。
一个IPv6的完全实现包括下列扩展报头的实现:
逐跳选项
路由(型号 0)
分片
目的选项
授权
封装安全有效载荷
前面四项将在这篇文档里被详述,后两项将分别在[RFC-1826]和[RFC-1827]中得以描述。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -