您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第5章:IPv6报文结构
第5章IPv6报文结构在现代网络中,为了把数据能安全、准确、高效地传送到目标节点,首先需将要传送的数据进行分块,并在每一小块数据之前加上一些附加的信息,如序列号、源/目标IP地址、源端口号、目标端口号、使用的协议(TCP/UDP)、校验码、生命周期等,这种加上了附加信息后的数据块称为“分组”、“数据包”或“报文”,并由此引出了“分组交换”及“包交换”的概念。本章讨论的是这种分组信息的结构,即“报文结构”。本章的主要内容有:lIPv4报文结构;lIPv6报文结构;lIPv6扩展报头;lIPv6差错报文;lIPv6信息报文。5.1IPv4报文结构与IPv6报文结构5.2IPv6扩展报头5.3ICMPv6第5章IPv6报文结构5.1IPv4与IPv6报文结构本节内容:5.1.1IPv4报文结构回顾5.1.2IPv6报文结构5.1.1IPv4报文结构回顾1.IPv4报文结构服务类型。这8位中只有前4位用来作为IP路由器的服务类型(TOS)请求。一个TOS位表示对如何处理数据报的优先选择:延时、吞吐量、可靠性或代价。在请求中把延时位置位意味着需要最小的延时;把吞吐量位置位意味着需要最大的吞吐量;把可靠性位置位意味着需要最高的可靠性。服务类型字段内部结构如图5-2所示。优先权DTR00其中:优先权。优先权由3位组成,其值从0-7,数值越高,优先权越高。D表示时延,其值为0表示正常时延,为1表示高时延;T表示吞吐量,为0表示正常吞吐量,为1表示高吞吐量;R表示可靠性,其值为0表示正常可靠性,为1表示高可靠性;6-7位保留。标识符(数据包ID)。这个唯一的16位标识符由产生它的主机指定给数据报。发送主机为它送出的每个数据报产生一个单独ID,但数据报在传输的过程中可能会分段,并经过不同的网络而到达目的地。分段后的数据报都共享同一个数据报ID,这将帮助接收主机对分段进行重装。分段标志。分段标志共3位,如图5-3所示。3位分段标志位中的第一位未用,其他两位用于控制数据报的分段方式。如果“不能分段(DF)”位设为1,意味着数据报在选路到目的地的过程中不会分段传输。如果数据报不分段就无法选路,试图分段的路由器将丢掉该数据报并向源主机发送错误报文。如果“更多段(MF)”位设为1,意味着该数据报是某两个或多个分段中的一个,但不是最后一段。如果MF位设为0,意味着后面没有其他分段或者是该数据报本来就没有分段。接收主机把标志位和分段偏移一起使用,以重组被分段的数据报。0DFMF分段偏移值。13位,它表示以8字节为单位,当前数据报相对于初始数据报的开头的位置。数据报的第一个分段的偏移值为0;如果第二个分段中的数据从初始数据报开头的第800字节开始,该偏移值将是100。生存期。生存期又称生命周期,在转发数据报时,每经过一个路由器,即把TTL减1。在实践中,TTL代表的是数据报在被丢弃前能够穿越的最大跳数。当TTL=0而数据报还未到达目的节点时,路由器将丢弃该报文,同时向源主机发送ICMP差错报文。传输协议。指明数据报中携带的净荷类型,主要标识所使用的传输层协议:一般是TCP协议或UDP协议。其值为6时表示TCP协议,为17时为UDP协议。2.IP选项在IPv4中,IP选项主要用于网络测试和调试。可用的选项大多与选路有关,例如,有的选项允许发送方指定数据报必须经过的路由,换句话说,定义了由哪些路由器来处理该数据报。还有的选项要求中转路由器记录其IP地址为数据报打上时间戳。一些选项,尤其是指出数据报必须经过哪些IP地址的报文要求在选项后附加一些数据。指定路由、记录路由器或增加时间戳等选项增加了IP头的长度。如果使用的话,IP选项会以没有间隔字符的方式串在一起,如果它们的结尾不在字边界,即字节数不是4字节的整数倍,还将会加上填充数据。正如上述对头长度字段的描述,选项字段可以包括不超过40字节的选项和选项数据。常用的选项有:源路由选项、路由记录选项、时间戳选项、安全选项等。5.1.2IPv6报文结构1.IPv6报头结构与IPv4报文结构一样,IPv6报文也是由报头和数据组成的,不同的是,IPv6报头是由3个部份组成:IPv6报头(即基本报头)、扩展报头及上层协议数据单元。如图5-4所示。IPv6报头。IPv6报头又称“IPv6基本报头”,每一个IPv6数据包都必须包含报头,该报头长度固定为40个字节。扩展报头。IPv6扩展报头又称下一个头,扩展报头是可选报头,紧接在基本报头之后,IPv6数据包可包含多个扩展报头,而且扩展报头的长度并不固定,IPv6扩展报头代替了IPv4报头中的选项字段。“下一报头”字段值所对应的扩展报头如表5-1所示。上层协议数据单元。上层数据协议单元由上层协议报头和它的有效载荷构成,有效载荷可以是一个ICMPv6报文、一个TCP报文或一个UDP报文。下一报头值对应的扩展报头类型0逐跳选项扩展报头6上层协议为TCP17上层协议为UDP43路由扩展报头44分片扩展报头50封装安全有效载荷扩展报头51认证扩展报头58ICMPv6信息报文扩展报头59无下一报头60目的选项扩展报头2.IPv6报文结构IPv6报文由IPv6基本报头+扩展报头+上层协议+数据组成,其中扩展报头为可选项。版本。长度为4位,对于IPv6,该字段必须为6(0110)。业务流类别。业务流类别又称通信流类别,长度为8位,指明为该包提供了某种“区分服务”。RFC1883中最初定义该字段只有4位,并命名为“优先级字段”,后来该字段的名字改为“类别”,在最新的IPv6Internet草案中,称之为“业务流类别”。该字段的默认值是全0。流标签。长度为20位,用于标识属于同一业务流的包。一个节点可以同时作为多个业务流的发送源。流标签和源节点地址唯一标识了一个业务流。净荷长度。长度为16位,其中包括包净荷的字节长度,即IPv6头后的包中包含的字节数。这意味着在计算净荷长度时包含了IPv6扩展头的长度。下一报头。长度为8位,这个字段指出了IPv6基本报头之后所跟的下一个扩展报头字段中的协议类型。与IPv6协议字段类似,下一个头字段可以用来指出高层是TCP还是UDP,但它也可以用来指明IPv6扩展头的存在与否。跳极限。长度为8位。每当一个节点对包进行一次转发之后,这个字段就会被减1。如果该字段达到0,这个包就将被丢弃。IPv4中有一个具有类似功能的“生存期”字段。5.2IPv6扩展报头本节内容:5.2.1IPv6扩展报头的类型5.2.2逐跳选项扩展报头5.2.3选路扩展报头5.2.4分片扩展报头5.2.5认证扩展报头5.2.6封装安全有效净荷扩展报头5.2.7目的选项报头5.2.1IPv6扩展报头的类型1.IPv6扩展报头的类型l逐跳选项报头。此扩展头必须紧随在IPv6头之后。它包含包所经路径上的每个节点都必须检查的选项数据。l目的地选项报头。此扩展头代替了IPv4选项字段。目前,唯一定义的目的地选项是在需要时把选项填充为64位的整数倍。此扩展头可以用来携带由目的地节点检查的信息。l选路报头。选路报头又称路由报头,此扩展头指明包在到达目的地途中将经过哪些节点。它包含包沿途经过的各节点的地址列表。IPv6头的最初目的地址是路由头的一系列地址中的第一个地址,而不是包的最终目的地址。此地址对应的节点接收到该包之后,对IPv6头和选路头进行处理,并把包发送到选路头列表中的第二个地址。如此类推,直到包到达其最终目的地。l分段报头。此扩展头包含一个分段偏移值、一个“更多段”标志和一个标识符字段。用于源节点对长度超出源端和目的端路径MTU的包进行分段。l身份验证报头(AH)。此扩展头提供了一种机制,对IPv6头、扩展头和净荷的某些部分进行加密的校验和的计算。l封装安全性净荷(ESP)报头。这是最后一个扩展头,不进行加密。它指明剩余的净荷已经加密,并为已获得授权的目的节点提供足够的解密信息。2.IPv6扩展报头的应用3.IPv6扩展报头的排列顺序如果在一个IPv6报文中,有多个扩展报头,则应严格按下列顺序排列。l基本报头;l逐跳选项报头;l目的选项扩展报头;l路由扩展报头;l分片扩展报头;l认证报头;l封装安全有效净荷报头。5.2.2逐跳选项扩展报头逐跳选项报头的扩展报头值为0。该字段主要用于为在传送路径上的每次跳转指定发送参数,传送路径上的每台中间节点都要读取并处理该字段。逐跳选项报头以IPv6报头中的下一个报值=0来标识。选项下一报头值扩展报头长度l下一个报头值(NextHeader)。其含义与前述一致。l报头扩展长度(HdrExtLen)。是指逐跳选项扩展报头的长度,该长度不包括NextHeader字段。l选项(Options)。是若干系列字段的组合,该字段用以描述数据包转发的一个方面的特性,还可以作为填充之用。一个逐跳选项扩展报头可以包含0个或1个以上的选项字段。选项还可用于目标选项扩展报头。选项类型选项数据长度选项数据选项字段结构:选项类型:表示这个选项的类型。用以确定相关节点对该选项的处理方法。RFC2640规定,在选项类型字段中,最高两位当处理选项的节点不能识别选项的类型时,应该如何处理这个选项。选项字段的最高两位值含义如下:00:跳过这个选项;01:丢弃数据包,不通知发送方;10:丢弃数据包,无论数据包的目标地址是否为一个组播地址,都向发送方发出一个ICMPv6参数问题的报文;11:丢弃数据包,如果数据包的目标地址不是一个组播地址,就向发送方发出一个ICMPv6参数问题的报文。选项数据:选项字段的最高第3位表示在通向目标的路径中,选项数据是否可以改变。0:选项数据不能改变;1:选项数据可以改变。5.2.3选路扩展报头选路扩展报头的扩展报头值为43。选路扩展报头又称路由选择报头或源路径选项报头。通过运用选路报头,可以实现经过指定的中间节点到达目的地。路由特定类型数据type-sqecifitdata下一个报头NextHeader扩展报头长度HdrExtLen段剩余SegmentsLeft路由类型RoutingTypel下一报头。下一报头和扩展报头长度与逐跳选项报头中的含义一致;l扩展报头长度。指明扩展报头的长度。l路由类型。路由类型是指特定的路由头变量,目前,路由类型只定义了“0”类型(在RFC2460中定义),它包含了报文需要经过的中间路由器的IP地址;段剩余。段剩余是指在到达最终目标之前还需要经过的中间跳数(即指定经过的路由个数)。5.2.4分片扩展报头分片报头又叫分段报头,其扩展报头值为44。IPv6分段报头用于IPv6数据包的拆分和重组。如果上层协议提交的有效载荷大于链路或路径MTU,源节点就会对有效载荷进行拆分,并使用分段报头来提供重组信息。在IPv4中,中间路由器会自动对大的数据包进行拆分,而在IPv6中,路由器不对过大的数据包进行拆分,分片工作是由发送报文的源节点完成的。下一报头保留1分片偏移量保留2M分片标识l下一报头(8位)。用以标识“原始报文”中可分片的初始报头类型。l保留1(8位)。初始化为“0”,接收方不处理。l分片偏移量(13位)。以64比特为单位,用以指定该报头后面的数据报文片段的起始字节在报文中报处的位置。l保留2(2位)。初始化为“0”,接收方不处理。lM(1位)。M=1,表明后面还有分片,M=0则表明是最后一个分片。例:要发送2902字节的IP报文分组,并假设以太网帧一次只能发送1496个字节的数据,分片标识符为1234。该报文需分为3个片,第1个和第2个分片报文长度均为1496个字节,有效载荷长度均为1456字节,其有效载荷数据均为1448字节;第3个片的报文长度为84字节,有效载荷长度为14个字节,有效载荷数据为6字节。5.2.5认证扩展报头认证扩展报头AH的扩展报头值为51。若要保证IPv6数据包或IPv6其他报头中的部份字段的值在经过IPv6网络传输后不会发生改变,认证报头是最佳的解决方案。认证扩展报头提供了对需保护的数据进行数据验证、数据完整性检测和反重放保护。下一报头载荷长度保留安全参数索引(SPI)序列号认证数据(可变长)l下一报头值。8位,指
本文标题:第5章:IPv6报文结构
链接地址:https://www.777doc.com/doc-7034891 .html