一、IPv6数据报格式
•版本。
该4比特字段用于标识IP版本号。毫不奇怪,IPv6将该字段值设为6。
意到将该字段值置为4并不能创建一个合法的IPv4数据报。
•流量类型。
该8比特字段与我们在IPv4中看到的TOS字段的含义相似。
•流标签。
如上面讨论过的那样,该20比特的字段用于标识一条数据报的流,能够
网络层:数据平面 229
对一条流中的某些数据报给出优先权,或者它能够用来对来自某些应用(例如IP
话音)的数据报给岀更高的优先权,以优于来自其他应用(例如SMTP电子邮件)
的数据报。
•有效载荷长度。
该16比特值作为一个无符号整数,给出了 IPv6数据报中跟在定长
的40字节数据报首部后面的字节数量。
•下一个首部。
该字段标识数据报中的内容(数据字段)需要交付给哪个协议(如
TCP或UDP)。该字段使用与IPv4首部中协议字段相同的值。
•跳限制。转发数据报的每台路由器将对该字段的内容减1。如果跳限制计数达到
0,则该数据报将被丢弃。
•源地址和目的地址。
IPv6 128比特地址的各种格式在RFC 4291中进行了描述。
•数据。
这是IPv6数据报的有效载荷部分。当数据报到达目的地时,该有效载荷就
从IP数据报中移出,并交给在下一个首部字段中指定的协议处理。
二、从IPv4到IPv6的迁移
在实践中已经得到广泛采用的IPv4到IPv6迁移的方法包括建隧道(tunneling)
建隧道依据的基本思想
如下:假定两个IPv6节点(如图4・27中的B和E)要使用IPv6数据报进行交互,但它
们是经由中间IPv4路由器互联的。我们将两台IPv6路由器之间的中间IPv4路由器的集
合称为一个隧道(tunnel),如图4-27所示。
借助于隧道,在隧道发送端的IPv6节点
(如B)可将整个IPv6数据报放到一个IPv4数据报的数据(有效载荷)字段中。于是,
该IPv4数据报的地址设为指向隧道接收端的IPv6节点(在此例中为E),再发送给隧道
中的第一个节点(在此例中为C)。隧道中的中间IPv4路由器在它们之间为该数据报提
供路由,就像对待其他数据报一样,完全不知道该IPv4数据报自身就含有一个完整的
IPv6数据报。隧道接收端的IPv6节点最终收到该IPv4数据报(它是该IPv4数据报的目
的地),并确定该IPv4数据报含有一个IPv6数据报(通过观察在IPv4数据报中的协议
号字段是41 [RFC 4213],指示该IPv4有效载荷是IPv6数据报),从中取出IPv6数据
报,然后再为该IPv6数据报提供路由,就好像它是从一个直接相连的IPv6邻居那里接
收到该IPv6数据报一样。