Cisco及华为网络技术论坛

Internet协议第六版(IPv6)规范(1)


来源: 作者: 出处:Vlan9.com 2007-08-17 进入论坛
下一页 1 2 3 

Internet 协议第六版 (IPv6) 规范

关于本文的说明

本文详细说明了 Internet 团体的一个标准协议, 并且请求进一步改进的讨论和建

议.  请参考"Internet 正式协议标准" (标准 1) 的当前版本来得到本协议的标准

化陈述.  本文的分发不受限制.

版权声明

版权所有  (C)  Internet 协会 (1998).  保留所有权利.

摘要

本文详细说明了 Internet 协议第 6 版 (IPv6).  它有时叫做下一代 IP 或者

IPng.

目录

1. 绪论..........................................................2

2. 术语..........................................................3

3. IPv6 首部格式.................................................4

4. IPv6 扩展首部.................................................6

4.1 扩展首部的顺序...........................................7

4.2 选项.....................................................9

4.3 Hop-by-Hop 选项首部.....................................11

4.4 路由首部................................................12

4.5 分片首部................................................18

4.6 目的地址选项首部........................................23

4.7 "无下一个首部"..........................................24

5. 包的尺寸问题.................................................24

6. 数据流标签. .................................................25

7. 传输类别.....................................................25

8. 上层协议问题.................................................27

8.1 上层协议校验和..........................................27

8.2 包的最大生存期..........................................28

8.3 上层协议的最大有效载荷尺寸..............................28

8.4 对携带路由首部的包的响应................................29

RFC 2460                   IPv6 Specification              December 1998

附录 A. 数据流标签字段的语义和用法..............................30

附录 B. 选项字段格式的几点指导方针..............................32

安全性的考虑................................................... 35

致谢............................................................35

作者的地址......................................................35

参考文献........................................................35

自 RFC-1883 以来的变化..........................................36

完整的版权声明..................................................39

1.  绪论

IP 第 6 版 (IPv6) 是继 IP 第 4 版 (IPv4) [RFC-791] 以后, Internet 协议

一个新版本.  由 IPv4 到 IPv6 的改变主要集中在以下几个方面:

o  地址容量的扩展

IPv6 把 IP 地址的大小从 32 位增至 128 位, 可以支持更多的地址层次, 更

大数量的节点, 以及更简单的地址自动配置.  组播路由的可缩放性改进为

给组播地址增加一个"范围"字段.  又定义了一个叫做"anycast"的新的地址

类型, 用于把包发送给一组节点中的任意一个.

o  首部格式的简化

一些 IPv4 首部字段被删除或者成为可选字段, 减少了一般情况下包的处理

开销以及 IPv6 首部占用的带宽.

o  支持扩展和选项的改进

IP 首部选项编码方式的修改导致更加高效的传输, 在选项长度方面更少的

限制, 以及将来引入新的选项时更强的适应性.

o  数据流标签的能力

加入一个新的能力, 使得那些发送者要求特殊处理的属于特别的传输"流"的

包能够贴上"标签", 比如非缺省质量的服务或者"实时"服务.

RFC 2460                   IPv6 Specification              December 1998

o  认证和保密的能力

为支持认证, 数据完整性以及(可选的)数据保密的扩展都在 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    - 最大传输单元.  也就是以八位组为单位的能在链路中传输的包的

最大尺寸.

RFC 2460                   IPv6 Specification              December 1998

路径 MTU    - 源节点到目的节点之间的路径中所有链路的最小链路 MTU.

注意: 尽管不常见, 但这是可能的: 就是一个设备具有多个接口, 用来传输从它的

某些(不是全部)接口传来的, 不以自身为目的节点的包, 并且抛弃那些从其他接口

传来的, 不以自身为目的节点的包.  当这样的设备通过前一种接口接收包或者与

其邻居联系时, 它必须遵循协议中有关路由器的要求.  当它通过后一种接口接收

包或者与其邻居联系时, 它必须遵循协议中有关宿主机的要求.

3. IPv6 首部格式

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 版本  |   传输类别    |              数据流标签               |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|          有效载荷长度         |  下一个首部   |   跳数限制    |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                                                               |

+                                                               +

|                                                               |

+                          源  地  址                           +

|                                                               |

+                                                               +

|                                                               |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                                                               |

+                                                               +

|                                                               |

+                        目  的  地  址                         +

|                                                               |

+                                                               +

|                                                               |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

版本                 4 比特 Internet 协议版本号 = 6.

传输类别             8 比特传输类别字段.  参见第 7 章.

数据流标签           20 比特数据流标签.  参见第 6 章.

有效载荷长度         16 比特无符号整数.  IPv6 有效载荷长度.  也就是以八

位组为单位, 在这个包中 IPv6 首部后面的其余部分的长

度.  (注意, 扩展首部 [第 4 章] 将被认为是有效载荷的

一部分, 计算在长度里.)

RFC 2460                   IPv6 Specification              December 1998

下一个首部           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 包的源节点遵守上面的建议顺序, 除非后续的协议规范修改这

一顺序.


更多请看Cisco与华为技术网(Vlan9.com)IPV6专题TCP/IP协议SIP协议---NGN网络的核心协议专题,或进入论坛讨论。


下一页 1 2 3 
vlan9_logo
相关专题

论坛精华
阅读排行榜
最新技术文档
热门关键字导读