资源预览内容
第1页 / 共78页
第2页 / 共78页
第3页 / 共78页
第4页 / 共78页
第5页 / 共78页
第6页 / 共78页
第7页 / 共78页
第8页 / 共78页
第9页 / 共78页
第10页 / 共78页
亲,该文档总共78页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
中科院计算所计算机网络课程中科院计算所计算机网络课程2005-20062005-2006博士班博士班上课时间:星期三晚上课时间:星期三晚6:309:30 上课地点:上课地点:S304S304教室教室第第1单元单元 IPv6协议分组格式及其特点分析协议分组格式及其特点分析 n1.11.1IPv6IPv6头格式头格式* *两个头的比较两个头的比较 * *简化简化 * *对经典参数的修改对经典参数的修改 * *新域新域 n1.21.2从选项到扩展头从选项到扩展头 * *头的菊花链头的菊花链 * *路由选择头路由选择头 * *分割头分割头* *目的地选项头目的地选项头 * *逐跳选项头逐跳选项头 * *扩展头顺序扩展头顺序第第1单元单元 IPv6协议分组格式及其特点分析协议分组格式及其特点分析n许多年来,第许多年来,第4 4版版IPIP(IPv4IPv4)在互联网环境中起了一个中心的在互联网环境中起了一个中心的作用。实践证明,它是足够灵活的,可以在许多不同的网络作用。实践证明,它是足够灵活的,可以在许多不同的网络技术上工作。然而在因特网的早期,使用它的人典型地是在技术上工作。然而在因特网的早期,使用它的人典型地是在学术机构、高技术公司和研究实验室工作的学术机构、高技术公司和研究实验室工作的研究人员和科学研究人员和科学家家,主要目的是通过电子邮件交换科学数据。在上个世纪,主要目的是通过电子邮件交换科学数据。在上个世纪9090年代年代WWWWWW和个人计算机的广泛使用把因特网的用户改变为和个人计算机的广泛使用把因特网的用户改变为一一般民众般民众。这一改变产生了。这一改变产生了对新的对新的IPIP协议版本的需求。协议版本的需求。n当前采用的当前采用的IP协议是它的第协议是它的第4版(版(IPv4),),IPv5的的称号被赋给了一个实验的称为流协议的面向连接的称号被赋给了一个实验的称为流协议的面向连接的因特网协议。现在人们普遍意识到,或早或晚,因特网协议。现在人们普遍意识到,或早或晚,IPv4最终要被一个称为最终要被一个称为IPv6的新协议替代。的新协议替代。第第1单元单元 IPv6协议分组格式及其特点分析协议分组格式及其特点分析n对对IP新版本的需求首先是由在新版本的需求首先是由在IPv4中中32位地址段的限制引位地址段的限制引起起。子网划分和无类别域间路由选择有助于控制因特网地址。子网划分和无类别域间路由选择有助于控制因特网地址空间消耗的速度,也有助于控制在因特网路由器中所需要的空间消耗的速度,也有助于控制在因特网路由器中所需要的路由表信息的增长。然而,当因特网发展到一定程度时,这路由表信息的增长。然而,当因特网发展到一定程度时,这些技术就会变得无能为力了。特别地,人们不可能取得些技术就会变得无能为力了。特别地,人们不可能取得100%的地址利用率,因此,在远不足的地址利用率,因此,在远不足40亿台主机连到因特亿台主机连到因特网之前,地址空间就要被用尽。即使能够使用所有的网之前,地址空间就要被用尽。即使能够使用所有的40亿个亿个地址,如果要把地址,如果要把IP地址分配给有线电视的机顶盒,或者分配地址分配给有线电视的机顶盒,或者分配给电子仪表,那么这样多的地址也是不够用的。所有这些可给电子仪表,那么这样多的地址也是不够用的。所有这些可能性都表明,人们最终肯定需要比能性都表明,人们最终肯定需要比32位所提供的要大得多的位所提供的要大得多的地址空间。地址空间。 第第1单元单元 IPv6协议分组格式及其特点分析协议分组格式及其特点分析n由于由于IP地址运载在每一个地址运载在每一个IP分组的头部,分组的头部,增加增加IP地址的尺寸地址的尺寸势必要改变势必要改变IP分组头分组头。这就意味着要建立一个新的。这就意味着要建立一个新的IP版本,版本,因此在因特网因此在因特网 中的每个主机和路由器都要采用新的软件。这中的每个主机和路由器都要采用新的软件。这显然不是一件小事,而是需要非常仔细地考虑的一个主要改显然不是一件小事,而是需要非常仔细地考虑的一个主要改变。变。n定义新版本定义新版本IP的工作产生了滚雪球的效应。网络设计人员总的工作产生了滚雪球的效应。网络设计人员总的意见是,的意见是,如果要对如果要对IP做这样大的改变,也许最好也同时尽做这样大的改变,也许最好也同时尽可能多地解决可能多地解决IP所存在的其他的问题所存在的其他的问题,例如,例如IP协议对多媒体协议对多媒体通信和安全性的支持问题。通信和安全性的支持问题。 第第1单元单元 IPv6协议分组格式及其特点分析协议分组格式及其特点分析n19901990年年,因因特特网网 工工程程任任务务组组(IETFIETF)就就看看到到了了这这方方面面的的问问题题,并并且且着着于于研研制一个新的制一个新的IPIP版本,其版本,其主要目标主要目标如下:如下:(1 1)具具有有非非常常大大的的地地址址空空间间,即即使使各各个个单单位位和和组组织织对对分分配配的的地地址址利利用用率率不不高高,也能支持数十亿以上的主机。也能支持数十亿以上的主机。(2 2)减少减少路由选择表的尺寸路由选择表的尺寸。(3 3)简化协议简化协议,允许路由器更快地处理分组。,允许路由器更快地处理分组。(4 4)提供比现在的提供比现在的IPIP更好的更好的安全性安全性(身份验证和保密)。(身份验证和保密)。(5 5)更多地关注更多地关注服务类型服务类型,特别是实时数据。,特别是实时数据。(6 6)通过允许指定范围来辅助多投点通过允许指定范围来辅助多投点( (组播组播)服务。)服务。(7 7)允许主机移动地理位置(允许主机移动地理位置(漫游漫游)而不用改变其)而不用改变其IPIP地址。地址。(8 8)允许协议在未来进一步允许协议在未来进一步演变演变。(9 9)允许老的和新的协议在若干年内允许老的和新的协议在若干年内共存共存。 n 第第1单元单元 IPv6协议分组格式及其特点分析协议分组格式及其特点分析n19921992年年6 6月月IETFIETF公公开开征征求求对对下下一一代代IPIP(IPngIPng)的的建建议议,随随后后收收到到了了若若干干个个提提案案,到到19941994年年就就形形成成了了IPngIPng的的最最后后设设计计。19951995年年1 1月月 RFC RFC 1752“1752“下下一一代代IPIP建建议议书书”的的发发表表是是一一个个重重要要的的里里程程碑碑。RFC1752RFC1752概概述述了了IPng IPng 的的需需求求,规规定定了了PDUPDU格格式式,突突出出了了下下一一代代IPIP在在寻寻址址、路路由由选选择择和和保保安安等等方方面面采采用用的的方方法法。这这个个新新一一代代的的IPIP现现在在已已正正式式地地称称作作IPv6IPv6。有有一一系系列列的的因因特特网网文文档档描描述述IPv6IPv6的的细细节节,它它们们包包括括从从总总体体上上描描述述IPv6IPv6的的RFC1883RFC1883(后后在在RFC RFC 22002200中中更更新新为为 RFC 2460 - Internet Protocol, Version 6 “IPv6” Specification-DRAFT STANDARD ) ,讨讨论论在在IPv6IPv6头头中中的的流流标标记记的的RFC1809RFC1809( (Using Using the the Flow Flow Label Label Field Field in in IPv6IPv6 ) ),以以及及处处理理IPv6IPv6寻寻址址方方面面的的RFC1884RFC1884 ( (IP IP Version Version 6 6 Addressing Addressing ArchitectureArchitecture ) )、RFC1886RFC1886 ( (DNS DNS Extensions Extensions to to support support IP IP version version 6 6 ) )和和RFC1887RFC1887( (An An Architecture Architecture for for IPv6 IPv6 Unicast Unicast Address AllocationAddress Allocation ) )。 第第1单元单元 IPv6协议分组格式及其特点分析协议分组格式及其特点分析nIPv6IPv6被设计成被设计成可以跟可以跟IPv4IPv4互操作互操作,因为要花许多年的时间完成从第,因为要花许多年的时间完成从第4 4版到第版到第6 6版的过渡。因此版的过渡。因此IPv6IPv6应该保留应该保留IPv4IPv4提供的最基本的服务提供的最基本的服务无连接投递服务无连接投递服务。在另一方面,由于在另一方面,由于IPv4IPv4对于新出现的诸如实时视频会议这类应用不能够很对于新出现的诸如实时视频会议这类应用不能够很好地支持,所以对其一些功能应该好地支持,所以对其一些功能应该加以改变加以改变。 n虽然虽然IPv6IPv6跟跟IPv4IPv4不兼容不兼容,但是总的来说它跟所有其它的,但是总的来说它跟所有其它的因特网因特网 协议兼容,协议兼容,包括包括TCPTCP、UDPUDP、ICMPICMP、IGMPIGMP(因特网因特网组管理协议)、组管理协议)、OSPFOSPF、BGPBGP(边界网关边界网关协议)和协议)和DNSDNS,只是在少数地方作了必要的修改(大部分是为了处理长的地,只是在少数地方作了必要的修改(大部分是为了处理长的地址)。址)。nIPv6IPv6相当好地满足了预定的目标。相当好地满足了预定的目标。n首先也是重要的,首先也是重要的,IPv6IPv6有比有比IPv4IPv4长得多的地址长得多的地址。IPv6IPv6的地址用的地址用1616个字节表个字节表示,地址空间是示,地址空间是IPv4IPv4的的2 29696倍,足以给每个人分配倍,足以给每个人分配5105102828个具惟一性的地址。个具惟一性的地址。无论未来怎样发展,看来这么多的地址也是够用的。无论未来怎样发展,看来这么多的地址也是够用的。第第1单元单元 IPv6协议分组格式及其特点分析协议分组格式及其特点分析nIPv6IPv6第第二二个个主主要要的的改改进进是是简简化化了了IPIP分分组组头头,它它包包含含8 8个个段段(IPv4IPv4是是1212个个段段)。IPv4IPv4的的一一些些头头段段,例例如如IHLIHL(因因特特网网头头长长)、头头检检验验和和、标标识识、标标志志和和片片段段偏偏移移,在在IPv6IPv6头头中中不不复复存存在在。IPv6IPv6仅仅在在源源分分割割, ,不不允允许许路路由由器器分分割割分分组组。这这一一改改变变使使得得路路由由器能够更快地处理分组,从而可以改善吞吐率。器能够更快地处理分组,从而可以改善吞吐率。n第第三三个个主主要要改改进进是是IPv6IPv6更更好好地地支支持持选选项项。这这一一改改变变对对新新的的分分组组头头很很重重要要,因因为为一一些些从从前前是是必必要要的的段段现现在在变变成成可可选选的的了了。此此外外,表表示示选选项项的的方方式式也也有有所所不不同同,使使得得路路由由器器能能够够简简单单地地跳跳过过跟跟它它们们无无关关的的选选项项;这这一一特特征征加加快快了了分分组组处处理理速速度度。IPv6IPv6还还支支持持称称作巨大载荷的大于作巨大载荷的大于64k64k字节的载荷字节的载荷, ,这里的这里的k=1024k=1024。 第第1单元单元 IPv6协议分组格式及其特点分析协议分组格式及其特点分析nIPv6IPv6有有重重大大举举措措的的第第四四个个方方面面是是安安全全性性。身身份份验验证证和和保安功能是这个新的保安功能是这个新的IPIP的关键特征。的关键特征。n最最后后一一项项重重要要改改进进是是有有关关资资源源分分配配的的。IPv6IPv6增增加加了了一一个个“流流标标记记”,标标识识某某些些需需要要某某种种QoSQoS的的分分组组流流。IPv6IPv6的的流流标标记记段段支支持持对对属属于于一一个个特特别别的的交交通通流流(对对应应的的发发送送端端可可能能请请求求特特别别的的处处理理)的的标标记记,从从而而能能够够支支持持诸诸如如实实时时视视频频这这样样的的特特殊殊交交通通。见见到到这这些些分分组组的的路路由由器器必必须须依依照照它它们们的的请请求求对对它它们们进进行行处处理理。不不支支持持流流的主机需要把流标记段置成零。的主机需要把流标记段置成零。第第1单元单元 IPv6协议分组格式及其特点分析协议分组格式及其特点分析n总体评价:总体评价: IPv6是比较简单的,易于编程的,比以前的版本更有效的协是比较简单的,易于编程的,比以前的版本更有效的协议。议。 n基本观点基本观点: 如果如果IPv4包含任何主要的错误,那么因特网在过去的年代里包含任何主要的错误,那么因特网在过去的年代里不可能如此地成功。不可能如此地成功。IPv4是一个很好的设计是一个很好的设计,IPv6应该保应该保留它的大多数特征留它的大多数特征。也许可以简单地增加地址空间,而让其。也许可以简单地增加地址空间,而让其它什么都不变。然而基于前瞻性的考虑它什么都不变。然而基于前瞻性的考虑, IPv6是建立在对是建立在对IP 的功能有增加的设计思想上。的功能有增加的设计思想上。IPv6不是不是IPv4的简单演进,的简单演进,而是而是有实质性的改进有实质性的改进。 1.11.1 IPv6IPv6头格式头格式nIPv6IPv6的头格式的头格式由由6464位头后随位头后随128128位源地址和位源地址和128128位目的位目的地址组成,地址组成,总长度是总长度是4040个字节个字节。n该头的起始该头的起始6464位由下列域组成:位由下列域组成:* *版本域版本域(4 4位)位)* *交通类别交通类别(8 8位)位)* *流标记流标记(2020位)位)* *载荷长度载荷长度(1616位)位)* *下一个头的类型下一个头的类型(8 8位)位)* *跳段限制跳段限制(8 8位)位)1.11.1 IPv6IPv6头格式头格式1.11.1 IPv6IPv6头格式:头格式:两个头的比较两个头的比较n新的头实际上要比经典新的头实际上要比经典IPIP的头简单的头简单。新头仅有。新头仅有6 6个域和两个个域和两个地址,而老头有地址,而老头有1010个固定域,两个地址,以及一些选项。个固定域,两个地址,以及一些选项。 nIPv4IPv4的的分分组组格格式式如如下下页页中中的的图图所所示示,分分组组头头的的长长度度为为4 4个个字字节节(3232位位)的的整整数数倍倍。从从任任选选项项往往后后是是可可变变长长部部分分,这这部部分分也可以没有。以下我们也可以没有。以下我们回顾回顾一下分组头中各个段的含义。一下分组头中各个段的含义。(1 1)版版本本号号 该该4 4位位段段表表示示协协议议支支持持的的IPIP版版本本号号。在在处处理理IPIP分分组组之之前前,所所有有IPIP软软件件都都要要检检查查分分组组的的版版本本段段,以以便便保保证证分分组组格格式式与与软软件件期期待待的的格格式式一一样样。如如果果标标准准不不同同,机机器器将将拒拒绝绝与与其协议版本不同的其协议版本不同的IPIP分组。分组。(2 2)互互连连网网分分组组头头长长 该该4 4位位表表示示IPIP分分组组头头的的长长度度,以以3232个个二二进进制制位位(4 4个个字字节节)为为单单位位,取取值值的的范范围围是是5-155-15(缺缺值值是是5 5)。由于由于IPIP分组头的长度是可变的,故这个段是必不可少的。分组头的长度是可变的,故这个段是必不可少的。1.11.1 IPv6IPv6头格式:头格式:两个头的比较两个头的比较1.11.1 IPv6IPv6头格式:头格式:两个头的比较两个头的比较 IPv4IPv4分组头分组头(3 3)服务类型服务类型 该该8 8位位段说明分组所段说明分组所希望得到的服务质量希望得到的服务质量。它允许主机指定在。它允许主机指定在网络上传输分组的网络上传输分组的服务种类服务种类,也允许选择分组的,也允许选择分组的优先级优先级,以,以及希望得到的及希望得到的可靠性和资源消耗可靠性和资源消耗,该段的目的是请求网络提,该段的目的是请求网络提供所希望的服务。供所希望的服务。 如如下下图图所所示示, ,服服务务类类型型段段的的头头3 3位位表表明明IPIP分分组组的的优优先先权权,该该值值在在0 0(正正常常)到到7 7(网网络络控控制制)之之间间变变化化,数数值值越越大大则则IPIP分分组组越越重重要要。但但以以往往大大多多数数TCP/IPTCP/IP产产品品和和实实际际使使用用TCP/IPTCP/IP的的所所有有硬硬件件都都忽忽略略该该3 3位位域域,用用相相同同的的优优先先权权处处理理所所有有IPIP分分组组。接接下下来来的的3 3位位控控制制网网络络的的延延迟迟时时间间、吞吞吐吐率率和和可可靠靠性性,如如果果置置零零则则表表示示常常规规服服务务,如如果果置置1 1则则分分别别表表明明短短延延迟迟、高高吞吞吐吐率率和和高高可可靠性靠性,最后两位未使用,最后两位未使用,置成零即可,置成零即可 。1.11.1 IPv6IPv6头格式:头格式:两个头的比较两个头的比较 IPv4IPv4分组头分组头1.11.1 IPv6IPv6头格式:头格式:两个头的比较两个头的比较 IPv4IPv4分组头分组头(4 4)总长度总长度 该该1616位位段段给给出出IPIP分分组组的的总总长长度度,单单位位是是字字节节,包包括括分分组组头头和和数数据据的的长长度度。数数据据段段的的长长度度可可以以从从总总长长度度减减去去分分组组头头长长度度计计算算出出来来。由由于于总总长长度度段段有有1616位位,所所以以最最大大IPIP分分组组允允许许有有6553565535个个字字节节。但但这这样样大大的的IPIP分分组组在在现现有有物物理理网网络络上上传传输输可可能能不不太太现现实实,尽尽管管应应用用程程序序有有时时可可能能需需要要传传送送大大的的数数据据报报文文。IPIP规规范范规规定定,所所有有主主机机和和路路由由器器至至少少能能支支持持576576字字节节的的分分组组长长度度。需需要要说说明明的的是是,IPIP分分组组在在网网络络传传送送过过程程中中被被分分成成分分组组片片的的情情况况下下,分分片片后后形形成成的的IPIP分分组组中中的的总总长长度度段段指指的的是是单单个个分分组组片片的总长度的总长度,而不是原先,而不是原先IPIP分组的总长度。分组的总长度。1.11.1 IPv6IPv6头格式:头格式:两个头的比较两个头的比较 IPv4IPv4分组头分组头(5 5)标标识识符符 1616位位的的标标识识符符段段包包含含一一个个整整数数,唯唯一一地地标标识识该该IPIP分分组组。IPIP分分组组在在传传输输时时,其其间间可可能能会会通通过过一一些些子子网网。这这些些子子网网允允许许的的最最大大协协议议数数据据单单元元(PDUPDU)长长度度可可能能小小于于该该IPIP分分组组的的长长度度。为为了了处处理理这这种种情情况况,IPIP为为以以数数据据报报方方式式传传送送的的IPIP分分组组提提供供了了分分片片和和重重组组的的功功能能。这也正是这也正是IPIP模块的主要功能之一。模块的主要功能之一。 当一个路由器分割一个当一个路由器分割一个IPIP分组时,要分组时,要把把IPIP分组头中分组头中的大多数段值拷贝到每个分组片中,标识符段必须拷的大多数段值拷贝到每个分组片中,标识符段必须拷贝。贝。它的基本目的是使得目的地知道到达的哪些分组它的基本目的是使得目的地知道到达的哪些分组片属于哪个片属于哪个IPIP分组,源发方计算机必须为发送的每个分组,源发方计算机必须为发送的每个IPIP分组分别产生一个分组分别产生一个唯一的标识符段值唯一的标识符段值。为此,。为此,IPIP软软件在计算机存储器保持一个全局计数器,每建立一个件在计算机存储器保持一个全局计数器,每建立一个IPIP分组就加分组就加1 1,再把结果放到,再把结果放到IPIP分组标识符段中。分组标识符段中。1.11.1 IPv6IPv6头格式:头格式:两个头的比较两个头的比较 IPv4IPv4分组头分组头(6 6)标标志志 3 3位位的的标标志志段段含含有有控控制制标标志志,如如下下图图所所示示,3 3位位中中的的低低序序2 2位位控控制制IPIP分分组组的的分分片片,这这2 2位位分分别别称称作作不不可可分分片片位位和和还还有有分分组组片片位位。当当不不可可分分片片位位置置1 1时时,规规定定不不要要将将IPIP分分组组分分片片。仅仅当当完完整整的的IPIP分分组组才才是是有有用用的的情情况况下下,应应用用程程序序才才可可选选择择禁禁止止分分片片,例例如如,考考虑虑一一台台计计算算机机的的引引导导序序列列。在在这这个个序序列列中中,机机器器开开始始时时执执行行ROMROM上上的的一一个个小小程程序序,通通过过因因特特网网去去请请求求一一个个初初始始引引导导软软件件,作作为为响响应应,另另一一台台机机器器送送回回来来一一个个内内存存映映象象。如如果果该该软软件件设设计计成成要要么么需需要要整整个个映映象象,要要么么一一点点也也不不使用,那么就应将不可分片位置使用,那么就应将不可分片位置1 1。1.11.1 IPv6IPv6头格式:头格式:两个头的比较两个头的比较 IPv4IPv4分组头分组头1.11.1 IPv6IPv6头格式:头格式:两个头的比较两个头的比较 IPv4IPv4分组头分组头n标标志志段段的的低低位位标标明明这这个个分分组组片片包包含含的的数数据据是是取取自自原原始始IPIP分分组组中中间间,还还是是取取自自原原始始IPIP分分组组的的最最后后,为为什什么么需需要要这这个个“还还有有分分组组片片”位位呢呢?在在分分片片的的情情况况下下,在在最最终终报报宿宿中中的的IPIP软软件件需需要要重重新新组组合合IPIP分分组组。当当一一个个分分组组片片到到达达时时,分分组组头头中中的的总总长长度度段段是是指指该该分分组组的的长长短短,而而不不是是原原来来分分组组的的长长短短,所所有有报报宿宿不不能能用用这这个个总总长长度度段段判判断断该该分分组组的的所所有有分分组组片片是是否否已已收收集集齐齐全全。有有了了“还还有有分分组组片片”位位,这这个个问问题题就就容容易易解解决决了了。一一旦旦报报宿宿收收到到一一个个分分组组片片,如如果果它它的的“还还有有分分组组片片”位位置置0 0,就就知道这个分组片中的数据取自原始分组的尾部知道这个分组片中的数据取自原始分组的尾部。n根根据据稍稍后后即即将将说说明明的的“分分组组片片偏偏移移”段段和和总总长长度度段段,接接收收端端便便可可以以知知道道,重重组组整整个个原原始始IPIP分分组组需需要要的的所所有有数据的分组片是否都已到达。数据的分组片是否都已到达。1.11.1 IPv6IPv6头格式:头格式:两个头的比较两个头的比较 IPv4IPv4分组头分组头(7 7)分分组组片片偏偏移移 1313位位的的分分组组片片偏偏移移段段标标明明当当前前分分组组片片在在初初始始IPIP分分组组中中的的位位置置。为为了了重重组组IPIP分分组组,报报宿宿必必须须得得到到从从偏偏移移0 0开开始始,直直到到最最高高偏偏移移值值之之间间的的所所有有分分组组片片。这这些些分分组组片片不不需需要要按按顺顺序序到到达达,接接收收分分组组片片的的报报宿宿与与分分割割IPIP分分组组的的路路由由器器之之间间不不进进行行通通信信,报报宿宿也也能能重重新新组组合合IPIP分分组组。分分组组片片偏偏移移以以6464位位(8 8个个字字节节)为为单单位位,取值范围取值范围0 0至至81918191,缺省值是,缺省值是0 0。(8 8)生生存存时时间间 8 8位位的的生生存存时时间间段段指指定定IPIP分分组组能能在在互互连连网网中中停停留留的的最最长长时时间间,以以秒秒为为单单位位。当当该该值值降降为为0 0时时,IPIP分分组组就就应应被被舍舍弃弃。该该段段的的值值在在IPIP分分组组每每通通过过一一个个路路由由器器时时都都减减去去1 1。该该段段决决定定了了源源发发IPIP分分组组在在网网上上存存活活时时间间的的最最大大值值,它它保保证证IPIP分分组组不不会会在在一一个个互互连连网网中中无无休休止地往返传输。止地往返传输。1.11.1 IPv6IPv6头格式:头格式:两个头的比较两个头的比较 IPv4IPv4分组头分组头(9 9)协协议议 8 8位位的的协协议议段段表表示示哪哪一一个个高高层层协协议议将将用用于于接接收收IPIP分分组组中中的的数数据据。高高层层协协议议的的号号码码由由TCP/IPTCP/IP中中央央权权威威管管理理机机构构予予以以分分配配。例例如如,该该段段值值的的十十进进制制表表示示对对应应ICMPICMP(互互连连网网控控制制报报文文协协议议)是是1 1,对对应应传传输输控控制制协协议议(TCPTCP)是是6 6,对对应应EGPEGP(外外部部网网关关协协议议)是是8 8,对对应应用用户户数数据据报报协协议议(UDPUDP)是是1717,对对应应ISOISO传传输输层层协协议议第第4 4类类(ISO-TP4ISO-TP4)是是2929。(1010)分分组组头头检检验验和和 1616位位的的分分组组检检验验和和段段保保证证IPIP分分组组头头值值的的完完整整性性,当当IPIP分分组组头头通通过过路路由由器器时时,分分组组头头发发生生变变化化(例例如如生生存存时时间间段段值值减减1 1),检检验验和和必必须须重重新新计计算算。检检验验和和的的计计算算十十分分简简单单。首首先先,在在计计算算前前将将检检验验和和段段的的所所有有1616位位均均置置成成0 0,然然后后IPIP分分组组头头从从头头开开始始每每两两个个字字节节为为一一个个单单位位相相加加,若若相相加加的的结结果果有有进进位位,那那么么将将和和加加1 1。如如此此反反复复,直直到到所所有有分分组组头头的的信信息息都都相相加加完完为为止止,将将最最后后的的值值对对1 1求补,即得出求补,即得出1616位的检验和。位的检验和。 1.11.1 IPv6IPv6头格式:头格式:两个头的比较两个头的比较 IPv4IPv4分组头分组头(1111)源源地地址址 3232位位的的源源地地址址段段包包含含发发送送IPIP分分组组的的源源主主机的机的IPIP地址。地址。(1212)目目的的地地址址 3232位位的的目目的的地地址址段段包包含含IPIP分分组组的的目目的的地地主机的主机的IPIP地址。地址。(1313)任任选选段段 可可变变长长的的任任选选段段提提供供了了一一种种策策略略,允允许许今今后后的的版版本本包包含含在在当当前前设设计计的的头头中中尚尚未未出出现现的的信信息息,也也避避免免使使用用固固定定的的保保留留长长度度,从从而而可可以以根根据据实实际际需需要要选用某些头部登录项。选用某些头部登录项。(1414)填填充充段段 如如前前所所述述,IPIP分分组组头头必必须须是是4 4个个字字节节长长的的整整数数倍倍。填填充充段段是是为为了了使使有有任任选选项项的的IPIP分分组组满满足足4 4个个字字节节长长度度的的整整数数倍倍而而设设计计的的,通通常常用用0 0填填入入填填充充段段来来满满足足这这一一要要求求。填填充充段段的的有有无无或或所所需需要要的的长长度度取取决决于于选选择择项的使用情况。项的使用情况。 1.11.1 IPv6IPv6头格式:头格式:两个头的比较两个头的比较nIPv6IPv6取消了取消了IPv4IPv4的的6 6个域个域:头长头长、服务类型服务类型(8 8位位3 3位优先级,另位优先级,另3 3位分别用于延迟、吞吐率和可靠性,位分别用于延迟、吞吐率和可靠性,还有两位未用)、还有两位未用)、标识符标识符(用于分割)、(用于分割)、标志标志(用(用于分割)于分割) 、分割偏移分割偏移(用于分割)和(用于分割)和头检验和头检验和。重新命名并稍微改变了定义的有重新命名并稍微改变了定义的有3 3个域个域:长度长度、协协议类型议类型(说明上层协议)和(说明上层协议)和生存时间生存时间(以秒为单位)(以秒为单位)。整个地修改了选项机制整个地修改了选项机制,并,并增加了两个域增加了两个域:交通交通类别类别(8 8位)和位)和流标记流标记(2020位)位) 。1.11.1IPv6IPv6头格式:头格式:两个头的比较两个头的比较n仅有的含义和位置都未改变的域是开头仅有的含义和位置都未改变的域是开头4 4位。位。网络程序可以使用起始的网络程序可以使用起始的版本域版本域确定对分组的确定对分组的处理方式。如果该域的二进制码是处理方式。如果该域的二进制码是01000100(十进(十进制制4 4),就当作),就当作IPv4IPv4处理,如果是处理,如果是01100110(十进(十进制制6 6),就被认为是),就被认为是IPv6IPv6分组。当然这样做分组。当然这样做并并非是必需的非是必需的。事实上在媒体层就可以区分开。事实上在媒体层就可以区分开IPv4IPv4和和IPv6IPv6。例如,在以太网上。例如,在以太网上IPv6IPv6分组承载分组承载在类型域值为在类型域值为86DD86DD的帧中,而不是的帧中,而不是IPv4IPv4的类型的类型域值域值80008000。1.11.1 IPv6IPv6头格式:头格式:简化简化nIPv4IPv4头的设计头的设计是是基于基于19751975年的技术状态年的技术状态。2020年年以后,以后,IPv6IPv6对其作了对其作了3 3个方面主要的简化个方面主要的简化:* *对所有的头都分配固定的格式对所有的头都分配固定的格式。* *去掉头检验去掉头检验。* *去掉逐跳分割过程去掉逐跳分割过程。 1.11.1 IPv6IPv6头格式:头格式:简化简化nIPv6头不包含任何选项成分头不包含任何选项成分。但这并不意味着我们不可以对特。但这并不意味着我们不可以对特殊分组表示选项。跟殊分组表示选项。跟IPv4不同,不同,IPv6的选项功能不是通过可的选项功能不是通过可变长选项取得的,而是变长选项取得的,而是把扩展头附加到主头后面把扩展头附加到主头后面。其明显的结。其明显的结果是果是IPv6不再需要一个头长度不再需要一个头长度。n去除头检验的主要优点是减少了头处理的代价去除头检验的主要优点是减少了头处理的代价,因为没有必要,因为没有必要在每一中继站都检查和更新检验和的值。其风险是未监测到的在每一中继站都检查和更新检验和的值。其风险是未监测到的差错可能导致对分组作错误的路由选择。然而这种风险很小,差错可能导致对分组作错误的路由选择。然而这种风险很小,因为大多数封装过程都包含一个分组检验和。事实上,在因为大多数封装过程都包含一个分组检验和。事实上,在IEEE-802网络的媒体访问控制过程中,在使用网络的媒体访问控制过程中,在使用ATM线路的适线路的适配层中,以及在用于串行链路的配层中,以及在用于串行链路的PPP协议的成帧过程中,都有协议的成帧过程中,都有检验和域。检验和域。1.11.1 IPv6IPv6头格式:头格式:简化简化nIPv4IPv4包括一个分割过程包括一个分割过程,使得发送方可以发送大的分,使得发送方可以发送大的分组而不用担心组而不用担心中继中继的能力。这些大的分组在必要的时的能力。这些大的分组在必要的时候可以被候可以被分割分割成适当大小的片段。成适当大小的片段。接收方接收方等待所有这等待所有这些片段的到来,并些片段的到来,并重组分组重组分组。然而,以往的实践表明,。然而,以往的实践表明,这种分割与重组过程产生了一些负面效应。假定我们这种分割与重组过程产生了一些负面效应。假定我们在仅能够运载小的片段的网络上尝试发送大的分组。在仅能够运载小的片段的网络上尝试发送大的分组。一个分组的成功传输依赖于每个片段的成功传输。哪一个分组的成功传输依赖于每个片段的成功传输。哪怕只有一个片段丢失了,整个分组必需重传,结果怕只有一个片段丢失了,整个分组必需重传,结果产产生对网络的低效使用生对网络的低效使用。1.11.1 IPv6IPv6头格式:头格式:简化简化nIPv6IPv6的规则的规则是,主机通过一个称作是,主机通过一个称作最大通路最大通路MTUMTU(最大传输单(最大传输单元)元)发现的过程发现的过程应该能够知道可以被接受的最大片段尺寸。应该能够知道可以被接受的最大片段尺寸。如果主机发送如果主机发送大的分组大的分组,这些分组将简单地被,这些分组将简单地被拒绝拒绝。因此。因此IPv6IPv6不再像不再像IPv4IPv4那样设立分割控制域(包括分组标识符,分那样设立分割控制域(包括分组标识符,分割控制标志和片段偏移)。割控制标志和片段偏移)。n然而,然而,IPv6IPv6包括一个端到端的分割规程包括一个端到端的分割规程。而且根据。而且根据19961996年的规年的规范,所有的范,所有的IPv6IPv6网络都被假定能够运载网络都被假定能够运载536536字节的载荷。在字节的载荷。在IPv6IPv6的的19971997年版本中,年版本中,Steve DeeringSteve Deering提出把这个尺寸提升到提出把这个尺寸提升到15001500字节的建议。不愿意发现或记住通路字节的建议。不愿意发现或记住通路MTUMTU的主机可以简单的主机可以简单地发送小的分组。地发送小的分组。1.11.1 IPv6IPv6头格式:头格式:简化简化nIPv6IPv6的最后一项简化是的最后一项简化是去掉了服务类型去掉了服务类型(TOSTOS,Type Of ServiceType Of Service)域域(3 3位表示优先级位表示优先级0-70-7,3 3位分别表示对延迟时间、吞吐率和可靠性位分别表示对延迟时间、吞吐率和可靠性的期望:的期望:0 0或或1 1,剩下,剩下2 2位未用:保留)。在位未用:保留)。在IPv4IPv4中,主机可以设置中,主机可以设置TOSTOS的值。表示对最短的值。表示对最短的、最宽的、最可靠的,或最安全的通路的期的、最宽的、最可靠的,或最安全的通路的期望。然而,望。然而,应用程序并没有普遍地使用这个域应用程序并没有普遍地使用这个域。在在IPv6IPv6中中提供了处理这些期望的机制提供了处理这些期望的机制。1.11.1 IPv6IPv6头格式:头格式:对经典参数的修改对经典参数的修改 n跟跟IPv4IPv4类似,类似,IPv6IPv6头包括分组长度指示、生存时间和协议类型。头包括分组长度指示、生存时间和协议类型。然而这些域的定义都被稍微地修改了然而这些域的定义都被稍微地修改了。nIPv4IPv4的总长度的总长度被被IPv6IPv6的载荷长度代替了的载荷长度代替了。这里有细微的差别,。这里有细微的差别,因为按照定义,载荷长度是在头后面运载的数据的长度。作为因为按照定义,载荷长度是在头后面运载的数据的长度。作为例子,假定载荷是一个例子,假定载荷是一个TCPTCP分组,包括分组,包括2020字节的字节的TCPTCP头和头和400400字字节的应用数据。在节的应用数据。在IPv4IPv4中,我们要在这个中,我们要在这个TCPTCP分组的前面加上分组的前面加上1 1个个2020字节的字节的IPv4IPv4头,总长度将是头,总长度将是440440字节。字节。n按照按照IPv4IPv4的总长度概念的总长度概念, ,在在IPv6IPv6中,我们将加上一个中,我们将加上一个4040字节的字节的IPv6IPv6头头; ;但实际上但实际上, ,在在IPv6IPv6中,载荷长度被设置成中,载荷长度被设置成420420( (包括包括TCPTCP报文段,也包括可能有的全部报文段,也包括可能有的全部IPv6IPv6扩展头扩展头) )。在。在IPv6IPv6中,长度中,长度域也像域也像IPv4IPv4那样在那样在1616位位上编码,这就把分组尺寸限制到上编码,这就把分组尺寸限制到64K64K字字节节。然而,。然而,IPv6IPv6使用巨大数据报选项(属于逐跳选项头)提供使用巨大数据报选项(属于逐跳选项头)提供对比较大的分组的传送服务。对比较大的分组的传送服务。1.11.1 IPv6IPv6头格式:头格式:对经典参数的修改对经典参数的修改 nIPv6IPv6把把协议(类型)协议(类型)域重新命名为域重新命名为下一个头下一个头类型类型来反映新的来反映新的IPIP分组结构。在分组结构。在IPv4IPv4中,中,IPIP头总是紧接着就后随传输协议数据,例如,头总是紧接着就后随传输协议数据,例如,一个一个UDPUDP或或TCPTCP分组。在分组。在IPv6IPv6的情况下,的情况下,如果如果IPIP分组封装分组封装TCPTCP或或UDPUDP协议数据单元。那么头协议数据单元。那么头末尾的下一个头类型将被设置成协议类型末尾的下一个头类型将被设置成协议类型TCPTCP(6 6)或)或UDPUDP(1717)。)。1.11.1 IPv6IPv6头格式:头格式:对经典参数的修改对经典参数的修改 n在在IPv4IPv4中,中,生存时间域生存时间域表示为秒的数量,说明分组在被丢弃表示为秒的数量,说明分组在被丢弃以前允许在网络中还可以存在多长时间。生存时间的概念是以前允许在网络中还可以存在多长时间。生存时间的概念是基于对传输控制协议的理论分析。如果允许分组在网络中无基于对传输控制协议的理论分析。如果允许分组在网络中无限期地存在着,那么老的拷贝可能在不可预期的时间退出,限期地存在着,那么老的拷贝可能在不可预期的时间退出,从而引起协议错误。从而引起协议错误。IPv4IPv4规范强制每个路由器把生存时间域规范强制每个路由器把生存时间域减少减少1 1秒,如果在路由中排队等待的时间较长,则减去这个秒,如果在路由中排队等待的时间较长,则减去这个等待时间(大于等待时间(大于1 1秒)秒)。但是,要精确地估计一个特定分组。但是,要精确地估计一个特定分组的等待时间是很困难的。由于这个时间通常是以毫秒计,而的等待时间是很困难的。由于这个时间通常是以毫秒计,而不是以秒计,大多数路由器只是简单地在每一中继处把不是以秒计,大多数路由器只是简单地在每一中继处把TTLTTL值减值减1 1。这一举动在。这一举动在IPv6IPv6中已经变成正规的做法了,所以相中已经变成正规的做法了,所以相应的域名也改成应的域名也改成跳段限制跳段限制。它。它以跳段数目计算,而不以秒的以跳段数目计算,而不以秒的数目计算数目计算。1.11.1 IPv6IPv6头格式:头格式:新域新域 nIPv6IPv6头中有两个在头中有两个在IPv4IPv4中不存在的域中不存在的域:流标记和交通类别流标记和交通类别。这两个域主。这两个域主要是为了要是为了方便对实时交通的处理方便对实时交通的处理而设计的。而设计的。n交通类别域交通类别域有有8 8位位,区分不同的,区分不同的IPv6IPv6分组的类别或优先级。目前对该域的分组的类别或优先级。目前对该域的使用尚处于试验阶段。下页中的插图给出了对于使用尚处于试验阶段。下页中的插图给出了对于IPv6IPv6优先级的一种可能优先级的一种可能的用法。的用法。首先首先,分组被分类为要么是源提供拥塞控制的交通,要么是源,分组被分类为要么是源提供拥塞控制的交通,要么是源不提供拥塞控制的交通。不提供拥塞控制的交通。第二第二,在每个类别内,分组被分配给,在每个类别内,分组被分配给8 8个相对优个相对优级中的一个优先级。图中示出了对级中的一个优先级。图中示出了对4 4位优先级段值的解释。位优先级段值的解释。8 8位中的其余位中的其余4 4位保留用于网络拥塞控制等目的。位保留用于网络拥塞控制等目的。n流标记流标记用以表示需要同样处理的那些分组,它们由一个特定的源发送给用以表示需要同样处理的那些分组,它们由一个特定的源发送给一个特定的目的地,并具有指定的一组选择一个特定的目的地,并具有指定的一组选择。1.11.1IPv6IPv6头格式:头格式:新域新域1.2 从选项到扩展头从选项到扩展头nIPv4IPv4头允许有选项头允许有选项,可以对某些分组作,可以对某些分组作特别的处理。早先的规范包括对安全性特别的处理。早先的规范包括对安全性选择的编码,源路由选择,记录路由选择的编码,源路由选择,记录路由(用于路由跟踪)以及时间印迹。然而(用于路由跟踪)以及时间印迹。然而选项选项并未被普遍采用并未被普遍采用,主要是由于,主要是由于性能性能的问题的问题。1.2 从选项到扩展头从选项到扩展头n分组转发编码分组转发编码是路由器软件高度优化的部分。程序是路由器软件高度优化的部分。程序设计人员逐条地统计处理一个分组所需要的指令的设计人员逐条地统计处理一个分组所需要的指令的条数,因为这个条数的任何减少都会产生更高的性条数,因为这个条数的任何减少都会产生更高的性能。比竞争对手每秒可以转发更多个分组的路由器能。比竞争对手每秒可以转发更多个分组的路由器在市场上也更加容易获得成功。在市场上也更加容易获得成功。提高编码性能最常提高编码性能最常用的方法是关注最频繁出现的分组用的方法是关注最频繁出现的分组。让它们在程序让它们在程序中走最快的处理通路中走最快的处理通路。具有。具有选项选项的分组不能走快速的分组不能走快速通路通路,因为按照定义,因为按照定义,它们需要特别的处理它们需要特别的处理。它们。它们常常常常被划归为第二类分组被划归为第二类分组,由一个比较慢的欠优化由一个比较慢的欠优化的软件片段来处理的软件片段来处理。结果。结果应用程序设计人员应用程序设计人员注意到,注意到,使用选项会引起性能缺陷使用选项会引起性能缺陷。他们倾向于仅使用非常他们倾向于仅使用非常简单的分组简单的分组。1.2 从选项到扩展头从选项到扩展头n然而,人们有足够的理由然而,人们有足够的理由需要对某需要对某些分组作特别的处理些分组作特别的处理。例如,通过。例如,通过源路由选择请求一条特别的路由,源路由选择请求一条特别的路由,或者指定接收方对一个分组作特别或者指定接收方对一个分组作特别的处理。的处理。IPv6规范说明了如何通过规范说明了如何通过扩展头扩展头来实现这类特别的处理来实现这类特别的处理。1.2 1.2 从选项到扩展头:头的菊花链从选项到扩展头:头的菊花链 n在在IPv4IPv4中中, , 作为作为载荷的载荷的TCPTCP分组紧接在分组紧接在IPIP头的后面头的后面。在。在IPv6IPv6中中在因特网头和载荷在因特网头和载荷之间可能插入任意数目的扩展头之间可能插入任意数目的扩展头。每个每个头用头用1 1个头类型表示,并运载在链中随后个头类型表示,并运载在链中随后的头的类型的头的类型,在最后一个扩展层头的情,在最后一个扩展层头的情况下则是载荷的头类型。况下则是载荷的头类型。1.2 1.2 从选项到扩展头:头的菊花链从选项到扩展头:头的菊花链 1.2 1.2 从选项到扩展头:头的菊花链从选项到扩展头:头的菊花链n当前的当前的IPv6IPv6规范规范定义了定义了6 6个扩展头个扩展头:* *逐跳选项头逐跳选项头* *路由选择头路由选择头* *分割头分割头* *身份验证头身份验证头* *封装安全载荷头封装安全载荷头* *目的地选择头目的地选择头 1.2 1.2 从选项到扩展头:头的菊花链从选项到扩展头:头的菊花链n每个扩展都用一个头类型标识。每个扩展都用一个头类型标识。IPv6IPv6的下一个头域的下一个头域可以包含一个扩展头的类型,也可以包含载荷的协可以包含一个扩展头的类型,也可以包含载荷的协议类型议类型,例如,例如TCPTCP或或UDPUDP。因此,。因此,头类型必须不能跟头类型必须不能跟协议类型冲突协议类型冲突,它们从同样的一组,它们从同样的一组256256个数字中分配。个数字中分配。协议类型域基本上跟协议类型域基本上跟IPv4IPv4相同相同( (虽然有些协议类型略虽然有些协议类型略有不同有不同) ),例如,例如TCPTCP是是6 6,UDPUDP是是1717,OSPFOSPF是是8989,ICMPICMP(IPv4IPv4)是)是1 1,ICMPICMP(IPv6IPv6)是)是2 2;而;而HBHHBH(逐跳(逐跳选项,选项,IPv6IPv6)是)是0 0,RHRH(路由选择头,(路由选择头,IPv6IPv6)是)是4343,FHFH(分割头,(分割头,IPv6IPv6)是)是4444。1.2 1.2 从选项到扩展头:从选项到扩展头:路由选择头路由选择头 n在在IPv6IPv6中对选项的处理最典型的例子是中对选项的处理最典型的例子是路由选择头路由选择头,它的作,它的作用用跟跟IPv4IPv4中的源路由选项相同中的源路由选项相同。这个头主要。这个头主要包含分组将被中包含分组将被中继经过的中间节点的地址的列表继经过的中间节点的地址的列表 ,源路由选择可以是严格的,源路由选择可以是严格的,也可以是松散的。也可以是松散的。n路由选择头由一组参数后随一个地址列表组成路由选择头由一组参数后随一个地址列表组成。开头。开头3232位包位包含含4 4个个8 8位整数位整数:* *下一个头下一个头。标识在头的菊花链中紧跟在路由选择头后面的标识在头的菊花链中紧跟在路由选择头后面的头的类型。头的类型。 * *头扩展长度头扩展长度。用。用6464位字的数目表示的头扩展长度,不包括位字的数目表示的头扩展长度,不包括开头开头6464位位( (4 4个个8 8位整数和位整数和3232个保留位个保留位) )。* *路由选择类型路由选择类型。设置成。设置成0 0。* *剩余段域剩余段域。在列表中剩余段的数目,该值的范围是从。在列表中剩余段的数目,该值的范围是从0 0到到2323。 1.2 1.2 从选项到扩展头:从选项到扩展头:路由选择头路由选择头 1.2 1.2 从选项到扩展头:从选项到扩展头:路由选择头路由选择头n紧接着的下一个紧接着的下一个3232位是保留域位是保留域,应该设置成,应该设置成0 0。路由路由选择头的剩余部分是一组选择头的剩余部分是一组128128位地址的列表位地址的列表,编号从,编号从1 1到到N N。在在IPv4IPv4中源路由编码在可选头域中,所有的中源路由编码在可选头域中,所有的路由器都需要对其进行检查,即使它们不被包括在路由器都需要对其进行检查,即使它们不被包括在源路由内明确说明的中继站列表中源路由内明确说明的中继站列表中。因此对源路由。因此对源路由分组的处理是非常缓慢的,该选项在实践中被使用分组的处理是非常缓慢的,该选项在实践中被使用得不多。在得不多。在IPv6IPv6中,路由器中,路由器仅察看路由选择头来确仅察看路由选择头来确定他们是否能识别出在主头的目的地域中它们自己定他们是否能识别出在主头的目的地域中它们自己的地址的地址。没有被明确地列在源路由列表中的中间路。没有被明确地列在源路由列表中的中间路由器将转发分组而不作任何附加的处理。这应该能由器将转发分组而不作任何附加的处理。这应该能够够产生比较好的性能产生比较好的性能。1.2 1.2 从选项到扩展头:从选项到扩展头:路由选择头路由选择头n在分组的目的地域中识别出自己的地址的站将检查路由选择在分组的目的地域中识别出自己的地址的站将检查路由选择头头,检查在列表中是否至少还剩下,检查在列表中是否至少还剩下1个域。如果检查的结果个域。如果检查的结果是否定的,那么分组就已经到达源路由的终点,该站将跳过是否定的,那么分组就已经到达源路由的终点,该站将跳过路由选择头去处理下一个头,其类型在下一个头参数中表明。路由选择头去处理下一个头,其类型在下一个头参数中表明。如果检查的结果是肯定的,那么在列表中至少还剩下如果检查的结果是肯定的,那么在列表中至少还剩下1个域,个域,该站将处理源路由选择。该站将处理源路由选择。n在在源路由中的下一地址源路由中的下一地址的位置从头扩展长度的位置从头扩展长度(H=2N)和剩余和剩余段数段数(L)参数推导出来。每个地址是参数推导出来。每个地址是128位位长,头扩展长度长,头扩展长度(路由地址段空间大小路由地址段空间大小)是指定地址段(是指定地址段(segment)的)的64位位字的数目;因此,在列表中地址的数目字的数目;因此,在列表中地址的数目N等于该长度等于该长度(H)的的一半。要处理的下一地址在列表中的位置号是一半。要处理的下一地址在列表中的位置号是N-L。1.2 1.2 从选项到扩展头:从选项到扩展头:路由选择头路由选择头n所有的所有的IPv6规范的实现必须都能够处理类型规范的实现必须都能够处理类型0路由选择路由选择头头,而且这些实现也必须准备好碰到并处理其它的类型,而且这些实现也必须准备好碰到并处理其它的类型, 然后采取某种默认操作。然后采取某种默认操作。n事实上,事实上,类型类型0路由选择头是一般路由选择头的子类型路由选择头是一般路由选择头的子类型,它的组成是它的组成是32位头后随类型特有的数据。位头后随类型特有的数据。32位头就是我位头就是我们在前面介绍过的在类型们在前面介绍过的在类型0头中的头中的4个个8位参数位参数(下一个头下一个头,头扩展长度头扩展长度,路由选择类型路由选择类型,剩余段剩余段)。路由选择类型说明路由选择类型说明在使用哪一个版本在使用哪一个版本。类型特有的数据的格式和处理源路。类型特有的数据的格式和处理源路由的规则在每个路由选择类型的规范中解释。由的规则在每个路由选择类型的规范中解释。1.2 1.2 从选项到扩展头:从选项到扩展头:路由选择头路由选择头 如果一个如果一个IPv6系统必须处理一个路由选择头。它将首先系统必须处理一个路由选择头。它将首先检查路由选择头类型和剩余段的数目。如果类型未知,分检查路由选择头类型和剩余段的数目。如果类型未知,分组应该被拒绝,并给源发送方返回一个组应该被拒绝,并给源发送方返回一个ICMP错误报文错误报文(参数问题),其(参数问题),其ICMP编码值为编码值为0,让参数(说明是什,让参数(说明是什么样的错误)指向路由选择类型段。然而,么样的错误)指向路由选择类型段。然而,剩余段值剩余段值0表表明该分组已经到达最后的目的地明该分组已经到达最后的目的地。即使系统不懂得指定的。即使系统不懂得指定的路由选择类型,它也应该接受这样的分组。路由选择类型,它也应该接受这样的分组。1.2 1.2 从选项到扩展头:从选项到扩展头:分割头分割头跟跟IPv4不同,不同,IPv6路由器不分割太大的分组路由器不分割太大的分组,这种,这种处理方式类似于处理方式类似于IPv4把不可分割位隐含地设置成把不可分割位隐含地设置成1。IPv6路由器拒绝其长度大于下一跳路由器拒绝其长度大于下一跳MTU的分组,并的分组,并往回发送一个往回发送一个ICMP报文报文。然而。然而IPv6在把分组往网络在把分组往网络上发送之前可以进行分割上发送之前可以进行分割。假定我们要在以太网接口。假定我们要在以太网接口上发送一个上发送一个2800字节的载荷,并且知道该以太网的字节的载荷,并且知道该以太网的MTU是是1500。此时,我们需要发送两个分组,每个。此时,我们需要发送两个分组,每个分组的最大尺寸是分组的最大尺寸是1500字节。在这两个分组中,我们字节。在这两个分组中,我们都要都要在在IPv6基本头和载荷之间插进一个分割头基本头和载荷之间插进一个分割头。1.2 1.2 从选项到扩展头:从选项到扩展头:分割头分割头1.2 1.2 从选项到扩展头:从选项到扩展头:分割头分割头n分割后的每个片段都是独立地进行路由选择分割后的每个片段都是独立地进行路由选择。分割头包含。分割头包含足够的信息让目的地能够串接这些片段。足够的信息让目的地能够串接这些片段。n除了下一个头参数以外,除了下一个头参数以外,在在IPv6的分割头中的域跟的分割头中的域跟IPv4头头的分割控制参数几乎相同的分割控制参数几乎相同。标识符标识符标识符标识符同于同于IPv4的分组标识,的分组标识,显著的显著的差别是用差别是用32位编码代替位编码代替16位编码位编码。分割偏移分割偏移分割偏移分割偏移跟跟IPv4的偏移域起同样的作用,但的偏移域起同样的作用,但编码略有不同编码略有不同。IPv4使用使用一个一个16位字位字的的13个最低有效位,个最低有效位,IPv6则在最高有效位编则在最高有效位编码偏移域。在两种情况下分割都在码偏移域。在两种情况下分割都在64位字的边界进行。位字的边界进行。IPv4偏移必须是偏移必须是8字节的整数倍。而字节的整数倍。而在在IPv6中只要把中只要把3个个最低有效位置最低有效位置0(3位位0相当于相当于8字节单位,字节单位,16位表示字节数,位表示字节数,13位表示位表示8字节字的数量字节字的数量)就可以了就可以了。1.2 1.2 从选项到扩展头:从选项到扩展头:分割头分割头1.2 1.2 从选项到扩展头:从选项到扩展头:分割头分割头1.2 1.2 从选项到扩展头:从选项到扩展头:分割头分割头n主要的不同点体现在标志域。主要的不同点体现在标志域。在在IPv6头中没有头中没有分割控制分割控制(允许和不允许允许和不允许),因为这个头仅当发,因为这个头仅当发送方决定分割分组时才插入。送方决定分割分组时才插入。在在IPv6中也有中也有“还有片段还有片段”位(位(M),对于一个完全分组除最,对于一个完全分组除最后一个片段外的所有片段,该位都要置后一个片段外的所有片段,该位都要置1。1.2 1.2 从选项到扩展头:从选项到扩展头:目的地选项头目的地选项头n给给IPv6IPv6增加可选功能增加可选功能有两种有两种方法方法。第一种第一种方法定义方法定义了一个了一个新的扩展头类型新的扩展头类型,透明地通过网络传送,仅,透明地通过网络传送,仅被在目的地址中指定的站检查和处理。这种扩展方被在目的地址中指定的站检查和处理。这种扩展方法有法有两个不方便之处两个不方便之处。(1 1)它)它需要分配头类型号码需要分配头类型号码。现在仅有。现在仅有256256个这样的个这样的号码,用于扩展头,也用于诸如号码,用于扩展头,也用于诸如UDPUDP、TCPTCP这类载荷。这类载荷。它们是相对于稀少的资源,应当节约使用。它们是相对于稀少的资源,应当节约使用。(2 2)它)它需要源和目的地都懂得新的选项需要源和目的地都懂得新的选项。如果一个目。如果一个目的地站不懂得一个头的类型,它只能拒绝整个分组。的地站不懂得一个头的类型,它只能拒绝整个分组。1.2 1.2 从选项到扩展头:从选项到扩展头:目的地选项头目的地选项头nIPv6选项头消除了这种不方便性选项头消除了这种不方便性。它。它使用单个头类型使用单个头类型(60)来定义一个一般的目的地选项头)来定义一个一般的目的地选项头。该头。该头作为一个参数作为一个参数包含包含一个或多个一个或多个以选项类型标识的一个或多个以选项类型标识的一个或多个选项选项(都包含(都包含在一个扩展头中)在一个扩展头中)。该扩展头仅有的参数是下一个头类型和。该扩展头仅有的参数是下一个头类型和一个一个8位的长度域。位的长度域。长度域长度域表示在该选项头中表示在该选项头中64位字位字(单位单位)的数目,其中的数目,其中不包括开头的不包括开头的64位位(8个字节个字节)。作为例子,如。作为例子,如果选项头仅由果选项头仅由8个字节组成,那么长度域的值将是个字节组成,那么长度域的值将是0。如果选。如果选项头有项头有32个字节组成,那么长度域的值将是个字节组成,那么长度域的值将是3(83=24 3=24 24+824+8(以(以6464位作为单位)位作为单位)= 32= 32),表示出了开头,表示出了开头8个字节,个字节,后面还有后面还有3个个8字节。字节。1.2 1.2 从选项到扩展头:从选项到扩展头:目的地选项头目的地选项头1.2 1.2 从选项到扩展头:从选项到扩展头:目的地选项头目的地选项头n选项类型选项类型段是选项类型的段是选项类型的8位标识符(位标识符(其编码见下页的图其编码见下页的图)。在它的后。在它的后面是面是8位整数,即位整数,即选项数据长度选项数据长度,表示在选项数据段中的,表示在选项数据段中的字节的数目字节的数目。n某些选项仅仅提供关于分组上下文的附加信息,或者表示倾向性。如果某些选项仅仅提供关于分组上下文的附加信息,或者表示倾向性。如果它们不被识别,则可以被安全地忽略。处理节点可以只是跳过该选项数它们不被识别,则可以被安全地忽略。处理节点可以只是跳过该选项数据域,其长度由选项数据长度字节标出,然后再继续处理在头中的剩余据域,其长度由选项数据长度字节标出,然后再继续处理在头中的剩余选项。与此相反,有一些选项是关键性的,则必须把分组丢弃。然而,选项。与此相反,有一些选项是关键性的,则必须把分组丢弃。然而,当一个站丢弃一个分组时,一般的规则是往回发送一个当一个站丢弃一个分组时,一般的规则是往回发送一个ICMPICMP报告。这可报告。这可能是也可能不是发送方所期待的事情。能是也可能不是发送方所期待的事情。动作位动作位就是被用来指定所请求的就是被用来指定所请求的动作。当发送一个动作。当发送一个ICMPICMP报告时,应该把其编码设置成参数问题(报告时,应该把其编码设置成参数问题(2 2),),参数应该指向未被识别的选项类型。参数应该指向未被识别的选项类型。1.2 1.2 从选项到扩展头:从选项到扩展头:目的地选项头目的地选项头1.2 1.2 从选项到扩展头:从选项到扩展头:目的地选项头目的地选项头1.2 1.2 从选项到扩展头:从选项到扩展头:目的地选项头目的地选项头n选项通过选项类型选项通过选项类型定义。定义。IANA(IANA(因特网因特网 Assigned Assigned Numbers Authority)Numbers Authority)登记这些类型,并存档在特别的登记这些类型,并存档在特别的RFCRFC中。在定义选项的时候,需要制定的内容有类型、中。在定义选项的时候,需要制定的内容有类型、长度以及它的内部参数的结构。也需要指定长度以及它的内部参数的结构。也需要指定位置对准位置对准需求需求。例如,如果一个。例如,如果一个选项参数选项参数是一个是一个3232位整数,那位整数,那么要保证其编码从一个么要保证其编码从一个3232位边界起始。对准借助于周位边界起始。对准借助于周期期x x和偏移和偏移y y 指定,可以表示成指定,可以表示成xn+yxn+y。例如,符号。例如,符号2 2n n表示选项可始于任意的表示选项可始于任意的1616位边界处(相对于分组头起位边界处(相对于分组头起始位置),周期是始位置),周期是两两个个字节字节。符号。符号8 8n+n+2 2表示选项应该表示选项应该是与一个是与一个6464位位边界往后偏移边界往后偏移2 2个字节个字节处。处。1.2 1.2 从选项到扩展头:从选项到扩展头:目的地选项头目的地选项头n现在现在已经定义已经定义个个两个选项两个选项,它们都是,它们都是填充类的填充类的。第。第1个选项是个选项是Pad1,它由,它由单个单个null字节字节(类型编码类型编码0)组成。作为例外,该组成。作为例外,该null字节字节不应后随长度字节不应后随长度字节。我们可以使用任意多个我们可以使用任意多个null字节字节来填充在两个选项来填充在两个选项之间的缝隙,或者把选项数据域填充到最后的之间的缝隙,或者把选项数据域填充到最后的64位位边界。然而,如果要跳过多个字节,我们应该使用边界。然而,如果要跳过多个字节,我们应该使用第第2个填充选项个填充选项类型编码为类型编码为1的的Pad2,其,其长度长度域域表示出应该跳过的字节的数目。表示出应该跳过的字节的数目。1.2 1.2 从选项到扩展头:从选项到扩展头:目的地选项头目的地选项头1.2 1.2 从选项到扩展头:从选项到扩展头:逐跳选项头逐跳选项头 n目的地选项头目的地选项头是常规的扩展头,它是常规的扩展头,它仅当分组到达最仅当分组到达最终目的地时才被处理终目的地时才被处理。这跟。这跟IPv6尽量避免中间中继尽量避免中间中继站做不必要的处理的总体思想是一致的。然而,站做不必要的处理的总体思想是一致的。然而,某某些管理功能或诊断功能需要给所有的路由器传递附些管理功能或诊断功能需要给所有的路由器传递附加的信息。这正是逐跳选项头的目的加的信息。这正是逐跳选项头的目的。它用头类型它用头类型0标识标识。在。在IPv6中的下一个头值中的下一个头值null意味着存在逐意味着存在逐跳选项头,即使目的地址不是本地节点地址也要对跳选项头,即使目的地址不是本地节点地址也要对它进行处理。它进行处理。1.2 1.2 从选项到扩展头:从选项到扩展头:逐跳选项头逐跳选项头n逐跳选项头具有跟目的地选项头同样的格式逐跳选项头具有跟目的地选项头同样的格式。逐跳选项也具有跟目的地选项同样的编码规逐跳选项也具有跟目的地选项同样的编码规则。在两个头中都有填充选项。则。在两个头中都有填充选项。n选项域包含一个选项列表(选项域包含一个选项列表(1 1个或多个选项)。个或多个选项)。每个选项的编码是可变数目的字节。每个选项的编码是可变数目的字节。n选项类型段选项类型段是选项类型的是选项类型的8 8位标识符。在它的位标识符。在它的后面是后面是8 8位整数,表示在选项数据段中的字节位整数,表示在选项数据段中的字节的数目。的数目。 1.2 1.2 从选项到扩展头:从选项到扩展头:逐跳选项头逐跳选项头 1.2 1.2 从选项到扩展头:从选项到扩展头:逐跳选项头逐跳选项头 1.2 1.2 从选项到扩展头:从选项到扩展头:逐跳选项头逐跳选项头n在当前的规范中在当前的规范中已经定义已经定义了一个了一个巨大载荷选项巨大载荷选项,其选项类其选项类型是型是194。此外,一个路由器警报选项正在讨论之中。此外,一个路由器警报选项正在讨论之中。n巨大载荷选项巨大载荷选项用于发送非常大的分组用于发送非常大的分组,其长度不能仅用其长度不能仅用1616位来编码位来编码。当使用这个选项时,。当使用这个选项时,把把IPv6IPv6长度域置成长度域置成0 0。处理。处理节点解码,求得实际的分组长度,并编码为节点解码,求得实际的分组长度,并编码为3232位整数。为位整数。为方便这个长度域的处理,选项方便这个长度域的处理,选项194194的对准需求的对准需求被确定为被确定为4n+24n+2(2 2表示下一个头和扩展头长引起的表示下一个头和扩展头长引起的2 2个字节偏移),因此,个字节偏移),因此,表示分组实际长度表示分组实际长度的长度域的长度域本身起始于本身起始于3232位边界。位边界。n如果长度小于如果长度小于6565,535535字节,不应使用巨大载荷选项。如果字节,不应使用巨大载荷选项。如果分组运载一个分割头,也不应使用巨大载荷选项。分组运载一个分割头,也不应使用巨大载荷选项。1.2 1.2 从选项到扩展头:从选项到扩展头:逐跳选项头逐跳选项头1.2 1.2 从选项到扩展头:从选项到扩展头:逐跳选项头逐跳选项头n在一些情况下,在一些情况下,发送给目的地的信息会影响所有中途的路发送给目的地的信息会影响所有中途的路由器由器。例如,。例如,有的多播路由算法使用管理分组标记数据将有的多播路由算法使用管理分组标记数据将要遵循的分布树要遵循的分布树,而,而资源预留协议(资源预留协议(RSVP)使用报文标记)使用报文标记随后要在其上执行预留的通路随后要在其上执行预留的通路。使用逐跳选项,一个源将使用逐跳选项,一个源将可以把一些分组标记成包含在前往目的地的通路上所有的可以把一些分组标记成包含在前往目的地的通路上所有的路由器都应该查看的信息路由器都应该查看的信息。当然,要达到这个目标,可以。当然,要达到这个目标,可以在每定义一个新算法时,定义一个新的逐跳选项。然而,在每定义一个新算法时,定义一个新的逐跳选项。然而,这样做可能还是不够的。例如,我们可能需要对管理报文这样做可能还是不够的。例如,我们可能需要对管理报文进行进行身份验证身份验证,因此仅在剥离逐跳选项头和身份验证头之,因此仅在剥离逐跳选项头和身份验证头之后才可以对这些报文进行处理。其解决方案是后才可以对这些报文进行处理。其解决方案是定义一个类定义一个类属属“路由器警报路由器警报”选项,目的是警示路由器,分组包含需选项,目的是警示路由器,分组包含需要它要它仔细仔细察看的特别信息察看的特别信息。1.2 1.2 从选项到扩展头:从选项到扩展头:逐跳选项头逐跳选项头1.2 1.2 从选项到扩展头:从选项到扩展头:扩展头顺序扩展头顺序 n一个分组可以包含多个扩展头一个分组可以包含多个扩展头。这对于接收节点,应该不是。这对于接收节点,应该不是一个问题,他只须按照接收的顺序处理各个头。早期的设计一个问题,他只须按照接收的顺序处理各个头。早期的设计文档把这描述成文档把这描述成“洋葱剥皮洋葱剥皮”过程。依次处理每个相继的层,过程。依次处理每个相继的层,就像剥去洋葱的每一层皮那样。不过有些层次还有它们自己就像剥去洋葱的每一层皮那样。不过有些层次还有它们自己的特殊性。例如,被分割了的分组在做进一步的处理之前必的特殊性。例如,被分割了的分组在做进一步的处理之前必须进行重组。仅当在最后一个片段到达之后,节点才能够开须进行重组。仅当在最后一个片段到达之后,节点才能够开始剥开下一个头。路由选择头的情况则不同。如果一个节点始剥开下一个头。路由选择头的情况则不同。如果一个节点不是中继站列表中的最后一个,它应该更新目的地域,并转不是中继站列表中的最后一个,它应该更新目的地域,并转发分组,而甚至不用查看下一个头(用不着做在其它扩展头发分组,而甚至不用查看下一个头(用不着做在其它扩展头中规定的其它处理)。中规定的其它处理)。1.2 1.2 从选项到扩展头:从选项到扩展头:扩展头顺序扩展头顺序 n处理顺序由菊花链中头的顺序决定。这个顺序由初处理顺序由菊花链中头的顺序决定。这个顺序由初始的发送方指定。始的发送方指定。IPv6规定包括一个推荐的顺规定包括一个推荐的顺 序:序:1. IPv6头头 2. 逐跳选项头逐跳选项头3. 目的地选项头(目的地选项头(1)4. 路由选项头路由选项头5. 分割头分割头6. 身份验证头身份验证头 7. 目的地选项头(目的地选项头(2)8. 上层头(例如上层头(例如TCP或或UDP)1.2 1.2 从选项到扩展头:从选项到扩展头:扩展头顺序扩展头顺序 n这些头中的每一个都是可选的这些头中的每一个都是可选的。如果不使用逐跳选项,那么。如果不使用逐跳选项,那么就没有必要插入一个逐跳头。如果不想强制一个特别的路由,就没有必要插入一个逐跳头。如果不想强制一个特别的路由,那么就不使用路由选择头。如果分组小于通路的那么就不使用路由选择头。如果分组小于通路的MTU,那,那么就不使用任何分割头。么就不使用任何分割头。所建议的顺序实际上是一个头的排所建议的顺序实际上是一个头的排列列,它为实现提供指南它为实现提供指南。我们可以看到在排列中目的地选项。我们可以看到在排列中目的地选项头出现了两次。如果我们要指定头出现了两次。如果我们要指定隧道选项隧道选项,该选项将被所有,该选项将被所有的中继站(不仅仅是指定的源路由中继站)处理,那么我们的中继站(不仅仅是指定的源路由中继站)处理,那么我们就需要把这些选项就需要把这些选项放到路由选项头的前面放到路由选项头的前面。而在另一方面,。而在另一方面,如果我们要把信息传递给如果我们要把信息传递给最后的目的地最后的目的地,我们就需要把该选,我们就需要把该选项头项头插在紧挨上层头的前面插在紧挨上层头的前面。1.2 1.2 从选项到扩展头:从选项到扩展头:扩展头顺序扩展头顺序 n如果我们想如果我们想在通路中强行指定仅一个中继站在通路中强行指定仅一个中继站,那么,那么我们可以我们可以用一个完全的用一个完全的IPv6分组来代替路由选择头,分组来代替路由选择头,以此来建立一个隧道以此来建立一个隧道。封装封装IPv6的头类型是的头类型是41。这个封装载荷具有跟路由选择头同样的顺序。对头这个封装载荷具有跟路由选择头同样的顺序。对头的这样处理将会快一些,因为在封装前的所有数据的这样处理将会快一些,因为在封装前的所有数据都会被简单地忽略。都会被简单地忽略。n有时也需要有时也需要发送一个不包括任何上层数据的分组发送一个不包括任何上层数据的分组,例如,为了诊断的目的就可能这样做。在这种情况例如,为了诊断的目的就可能这样做。在这种情况下,头的菊花链应该以一个下,头的菊花链应该以一个“无下一个头无下一个头”类型类型结结束,束,其值是其值是59。中科院计算所计算机网络课程中科院计算所计算机网络课程 Thanks!谢谢 谢谢
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号