ipv6的协议结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章

IPv6协议的结构

本章将阐述IPv6报头的结构并将其与IPv4报头相比较。此外还将讨论Extension (扩展)报头,这是IPv6所新加的内容。

在RFC 2460中定义了IPv6数据包的报头结构。该报头固定为40字节长。源和目的地址各占16字节(128位),因此,只有8字节是用于普通报头信息的。

普通报头结构

在IPv6中,IPv4报头中的下面五个字段被去除了:

●Header Length(报头长度)

●Identification(标识)

●Flags(标志)

●Fragment Offset(段偏移量)

●Header Checksum(报头校验和)

除去Header Length(报头长度)字段是因为对于固定长度的报头,它是不起作用的。在IPv4中,报头最短长度为20字节,但是如果添加一些选项,则会以4 20

IPv6协议的结构21

字节长度递增,最长可达60字节。因此,对于IPv4来说,报头的总长度信息是很重要的。在IPv6中,选项由扩展报头定义(将在本章后面部分作介绍)。

Identification(标识)字段、Flags(标志)字段和Fragment Offset(段偏移量)字段处理IPv4报头中的数据包分段。如果要在只支持小数据包的网络中发送大数据包,就需要进行分段。在这种情况下,IPv4路由器把数据包分割成更小的片段,并转发多个数据包。目的主机收集数据包并进行重新组合。即便只有一个数据包丢失或出错,都需要重新进行传输,因此效率很低。在IPv6中,主机通过一个叫做路径MTU发现(Path MTU Discovery)的过程来了解路径最大传输单元(Maximum Transmission Unit,MTU)的大小。如果IPv6的发送主机想要对数据包进行分段,就需要使用扩展报头来实现。数据包传输路径上的IPv6路由器不像在IPv4中那样进行数据分段。因此,在IPv6中去除了Identification、Flags和Fragment Offset字段并将会按需插入一个扩展报头。扩展报头将在本章后面进行介绍。

注意:路径MTU发现将在第四章中论述。

去除Header Checksum(报头校验和)字段是为了提高处理速度。如果路由器无需检验并更新校验和,则处理会变得更快。校验和的计算也是在介质访问层完成的,这样未检测到的错误和错误路由的数据包所引起的风险最小。传输层(UDP 和TCP)中有一个校验和字段。IP是一种“尽力而为”的传输协议,保证数据完整性的责任属于其上层协议。

Type of Service(服务类型)字段由Traffic Class(流量类别)字段代替。IPv6处理参数的机制与IPv4不同。请参考第六章来了解更多的信息。Protocol Type (协议类型)和Time-to-Live(TTL,生存期)字段被重新命名,且稍稍做了些修改。IPv6报头中还添加了一个Flow Label(流标签)字段。

IPv6报头中的字段

对IPv6报头中各个字段越熟悉,你对IPv6的工作方式越理解。

第二章22

注意:要想了解IPv4报头中所有字段的详细描述,请参考Novell's Guide to Troubleshooting TCP/IP(John Wiley & Sons)一书,由Silvia Hagen和Stephanie Lewis编著。

图2-1是IPv6报头的概述。将在下面的段落中详细讨论各个字段。

图2-1:IPv6报头中的字段

图2-1说明,即使IPv6报头的总长度是默认的IPv4报头的两倍长,达到了40字节,但它实际上是被简化了的,因为报头的绝大部分被两个16字节的IPv6地址占据。这样,只剩8个字节可供其他报头信息使用。

Version(版本,4位)

这是一个4位长的字段,其中包含了协议的版本。在IPv6中,该数目为6。不能使用版本号5,因为5早已被分配给一个实验性的流协议(ST2,RFC 1819)。

Traffic Class(流量类别,1字节)

该字段代替了IPv4中的Type of Service字段,它有助于处理实时数据以及任何需要特别处理的数据。发送节点和转发路由器可以使用该字段来识别和分辨IPv6数据包的类别和优先级。

IPv6协议的结构23

RFC 2474“Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers”(IPv4和IPv6报头中差分服务(DS)字段的定义)文档中解释了如何使用IPv6中的Traffic Class字段。RFC 2474使用术语DS来指代IPv4报头的Type of Service字段和IPv6报头中的Traffic Class字段。

Flow Label(流标签,20位)

该字段区分需要相同处理的数据包,以此来促进实时性流量的处理。发送主机能够用一组选项标记数据包的顺序。路由器跟踪数据流并更有效地处理属于相同数据流的数据包,因为他们无须重新处理每个数据包的报头。数据流由流标签和源节点的地址惟一标识。不支持Flow Label字段功能的节点需要在转发数据包时不加改变地传递该字段,并在接收数据包时忽略该字段。属于同一数据流的所有数据包必须具有相同的源IP地址和目的IP地址。

注意:Flow Label字段的使用是实验性的,在本书写作时,IETF仍然在对此进行讨论。请参考第六章了解更多信息。

Payload Length(有效载荷长度,2字节)

该字段指定了有效载荷,也就是在IP报头后携带的数据长度。IPv6中的计算与IPv4不同。IPv4中的Length字段包括IPv4报头的长度,而IPv6中的Payload Length(有效载荷长度)字段仅包含IPv6报头后的数据。扩展报头被认为是有效载荷的一部分,因此被包括在计算之内。

由于Payload Length(有效载荷长度)字段只有2个字节,因此数据包的有效载荷最大为64KB。IPv6有一个Jumbogram Extension报头,如果有需要,它可以支持更大的数据包。只有当I P v6节点连接到M T U大于64K B的链路时,Jumbogram才起作用。RFC 2675中详细说明了Jumbogram。

相关文档
最新文档