0°

IPv6简介

1.3IPv6简介

随着Internet用户的迅速增加,网络地址不足的危机日益严重,按目前入网主机的增长速度预计,到2005年左右IP地址将被耗尽。Internet面临的另一个问题是路由表规模的急剧膨胀,如不采取措施,可能在IP地址枯竭之前就会导致网络瘫痪。正是在这一背景下,提出了新一代的Internet协议—IPv6。
IPv4是非常出色的设计,如果它存在着重大缺陷,Internet就不会发展成今日的规模。IPv6继承了IPv4的优点,并根据10年来对IPv4运用的经验进行了大幅度的功能扩充。

1.3.1IPv6与IPv4头标的比较

首先介绍新IP的头标格式。IPv6的头标在起始64比特之后是128比特的源地址和信宿地址,全长为40B。图1-1展示了IPv6头标的格式。
起始的64比特由以下的域构成:

  • 版本域(versionfield)4比特
  • 优先级值(priorityvalue)4比特
  • 流标记(flowlabel)24比特
  • 净荷长度(payloadlength)16比特
  • 下一个头标(nextheader)8比特
  • 中继点限制数(hoplimit)8比特


新头标的结构比IPv4简单得多。IPv4中有10个固定长度的域、2个地址空间和若干个选项,IPv6中只有6个域和2个地址空间。图1-2展示了IPv4头标的格式。
在IPv6中起始4比特的版本号和IPv4的意义相同,其位置保持不变。这是由于考虑到同时利用IPv4和IPv6进行通信的情况。也就是说,原本设想生成数据链路帧时进行相同的封装,使IPv4和IPv6能够共用数据链路层的驱动程序。

网络层利用此版本域来决定对分组的处理。当版本值为4(0100)时,就认为是IPv4的分组,版本值为6(0110)时,就看作IPv6的分组。然而实际上舍弃了这种想法,只作有限的使用,这是由于在底层可以将IPv4和IPv6分离的缘故。例如,在以太网上传送IPv6分组时,以太网的帧类型(frametype)是十六进制数的86DD,而不是IPv4的8000(十六进制数)。

IPv4中的头标长度(headerlength)、服务类型(TOS:typeofservice)、标识符
(identification)、标志(flag)、报片偏移(fragmentoffset)和头标校验和(headerchecksum)这6个域被删除。分组全长(totallength)、协议类型(protocoltype)和生存时间(TTL:timetolive)3个域的名称或部分功能被改变,其选项(option)功能完全被改变,新增加了2个域,即优先级和流标记。

1.3.2简化的头标

IPv4中的头标是基于1975年的技术设计的,至今已有20余年历史。IPv6的头标主要是在以下3个方面作了简化:
1)所有的头标长度固定。
2)删除头标校验和功能。
3)删除各路由器的分拆成报片的处理功能。

在IPv6中没有IPv4处理特殊分组时使用的可变长度选项。这并不是说IPv6不能处理特殊的分组。在IPv6中不用IPv4的变长选项域,而是在基本头标之后加上扩展头标(extensionheader)来处理特殊分组。由于基本头标的长度固定,IPv6自然就不需要头标长度域了。

删除头标校验和的优点是,每做一次分组的中继转发时不必进行校验和的确认和更新,因而能够减轻头标处理的负荷。其缺点也是显而易见的,由于不能检测出差错,可能出现误转发。但是这一缺点是无足轻重的,因为几乎所有的数据链路层都进行封装(capsule)处理、计算帧的校验和。例如IEEE802网络的媒体访问控制处理、ATM线路的适配层、串行线路的PPP中都具有差错校验的功能。
IPv4具有报片拆/装功能,因此发信方不必考虑中继点的传输容量,能够发送很大的数据报。

如有必要,在中继点上将这些数据报分割成适当大小的报片,接收方等待所有报片的到达,重组数据报。但是,若要在只能传送小报片的网上发送大的分组,只有当全部报片到达接收方时才能认为分组发送成功,即使只丢失了一个报片,也需重发整个分组。可见这种方式不能有效地利用网络。

IPv6利用了”路径MTU发现(pathMTUdiscovery)”的功能,由主机学习能够传送报片的最大长度。如果传送很大的分组,此分组也只是在网络上被抛弃。其结果,IPv6就不需要IPv4中使用的分组标识符、报片偏移等拆/装控制域。但是在IPv6中,终端主机间还是需要进行拆/装处理。此外,假定所有的IPv6网络至少能传送净荷为536B的分组,当主机不想知道路径MTU或没有记住路径MTU时,只发送小分组即可。

IPv6简化后删除了TOS域。在IPv4中主机指定大带宽、最短、最便宜或最安全的路径等优先级设置TOS。但是此域在应用中几乎未被采用。

1.3.3参数的修订

和IPv4一样,IPv6头标中也含有描述分组长度、TTL和协议代码等功能的域。但是这些域的定义是根据运用经验修订的。
IPv4的分组总长度在IPv6中变为净荷长度(payloadlength)。净荷长度是指接在头标之后的数据长度,两者之间没有太大的差别。

例如,考虑由20B的TCP头标和400B的应用数据组成净荷。IPv4在TCP头标前添加20B的IPv4头标,分组长度值变为440B。IPv6添加了40B的头标,
净荷长度不是460B而是420B。在IPv6中净荷长度域的大小与IPv4的总长域相同,都是16比特,故分组的尺寸限制在64KB。但当IPv6传送不能用净荷长度域描述的那种特大分组时,可以利用”特大净荷(jumbopayload)”选项。

IPv4协议类型域在IPv6分组中被定义为新的结构,它变为”下一头标类型(nextheadertype)”。在IPv4中接在IPv4头标之后是UDP和TCP的传输层协议数据。IPv6数据报具有与其完全相同的结构,在下一个头标类型中可设置成UDP(17)及TCP(6)等协议类型。在下一节将说明在IP头标和作为净荷的TCP/UDP之间可以插入扩展头标的结构。些时在下一个头标号码域中可以设置首先出现的扩展头标类型。

将TTL改为”中继点限制(hoplimit)”使其设计名副其实。在IPv4中TTL以秒为单位表示分组直至从网中消灭为止的剩余时间。如果允许分组在网中无限制地存在下去,旧分组无目的地出现时,将引起协议出错。

例如,TCP中连接结束后,有时暂时保持”连接状态”。这是为了保证属于原有状态的所有分组从网络中消灭。此机制仅当传输层协议能够检测到分组在网络中的生存时间的情况下起作用,这就是TTL域的目的。在IPv4的规范中要求每个路由器减去1秒或在路由器队列驻留1秒以上时减去相应的秒数。

但是实际上,正确推算分组的等待时间是十分困难的,并且,实际的时间不是以秒而是以毫秒为单位,因此几乎所有的路由器只对TTL作减1的处理。这一习惯成为IPv6的规范,因而域的名称也作了相应的改变,中继点

限制不是秒数而是中继点的数目。以此为前提,可以认为传输层协议具有保护滞留在网中的分组的功能。例如,在TCP中设置了很大的序号(sequencenumber)域,因序号不会立即循环一周,故滞后分组到达时,也不会产生误动作。

1.3.4新导入的域

IPv6的头标中流标记(flowlabel)和优先级(priority)这两个域在IPv4中是没有的。它们都是为处理实时通信而设计的。在优先级域中可设置为16种类型值。其作用与IPv4的优先级域相同。
流标记被用来区分作相同处理的分组。这些分组从同一源地址发往同一目的地址,并具有相同的选项。

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
Linux
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论