第5章:IPv6报文结构.ppt_第1页
第5章:IPv6报文结构.ppt_第2页
第5章:IPv6报文结构.ppt_第3页
第5章:IPv6报文结构.ppt_第4页
第5章:IPv6报文结构.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章 IPv6报文结构,在现代网络中,为了把数据能安全、准确、高效地传送到目标节点,首先需将要传送的数据进行分块,并在每一小块数据之前加上一些附加的信息,如序列号、源/目标IP地址、源端口号、目标端口号、使用的协议(TCP/UDP)、校验码、生命周期等,这种加上了附加信息后的数据块称为“分组”、“数据包”或“报文”,并由此引出了“分组交换”及“包交换”的概念。本章讨论的是这种分组信息的结构,即“报文结构”。 本章的主要内容有: l IPv4报文结构; l IPv6报文结构; l IPv6扩展报头; l IPv6差错报文; l IPv6信息报文。,5.1 IPv4报文结构与IPv6报文结构,5

2、.2 IPv6扩展报头,5.3 ICMPv6,第5章 IPv6报文结构,5.1 IPv4与IPv6报文结构,本节内容: 5.1.1 IPv4报文结构回顾 5.1.2 IPv6报文结构,5.1.1 IPv4报文结构回顾 1. IPv4报文结构,服务类型。这8位中只有前4位用来作为IP路由器的服务类型(TOS)请求。一个TOS位表示对如何处理数据报的优先选择:延时、吞吐量、可靠性或代价。在请求中把延时位置位意味着需要最小的延时;把吞吐量位置位意味着需要最大的吞吐量;把可靠性位置位意味着需要最高的可靠性。服务类型字段内部结构如图5-2所示。,其中:优先权。优先权由3位组成,其值从0-7,数值越高,优

3、先权越高。D表示时延,其值为0表示正常时延,为1表示高时延;T表示吞吐量,为0表示正常吞吐量,为1表示高吞吐量;R表示可靠性,其值为0表示正常可靠性,为1表示高可靠性;6-7位保留。,标识符(数据包ID)。这个唯一的16位标识符由产生它的主机指定给数据报。发送主机为它送出的每个数据报产生一个单独ID,但数据报在传输的过程中可能会分段,并经过不同的网络而到达目的地。分段后的数据报都共享同一个数据报ID,这将帮助接收主机对分段进行重装。 分段标志。分段标志共3位,如图5-3所示。3位分段标志位中的第一位未用,其他两位用于控制数据报的分段方式。如果“不能分段(DF)”位设为1,意味着数据报在选路到目

4、的地的过程中不会分段传输。如果数据报不分段就无法选路,试图分段的路由器将丢掉该数据报并向源主机发送错误报文。如果“更多段(MF)”位设为1,意味着该数据报是某两个或多个分段中的一个,但不是最后一段。如果MF位设为0,意味着后面没有其他分段或者是该数据报本来就没有分段。接收主机把标志位和分段偏移一起使用,以重组被分段的数据报。,分段偏移值。13位,它表示以8字节为单位,当前数据报相对于初始数据报的开头的位置。数据报的第一个分段的偏移值为0;如果第二个分段中的数据从初始数据报开头的第800字节开始,该偏移值将是100。 生存期。生存期又称生命周期,在转发数据报时,每经过一个路由器,即把TTL减1。

5、在实践中,TTL代表的是数据报在被丢弃前能够穿越的最大跳数。当TTL=0而数据报还未到达目的节点时,路由器将丢弃该报文,同时向源主机发送ICMP差错报文。 传输协议。指明数据报中携带的净荷类型,主要标识所使用的传输层协议:一般是TCP协议或UDP协议。其值为6时表示TCP协议,为17时为UDP协议。,2. IP选项 在IPv4中,IP选项主要用于网络测试和调试。 可用的选项大多与选路有关,例如,有的选项允许发送方指定数据报必须经过的路由,换句话说,定义了由哪些路由器来处理该数据报。还有的选项要求中转路由器记录其IP地址为数据报打上时间戳。一些选项,尤其是指出数据报必须经过哪些IP地址的报文要求

6、在选项后附加一些数据。 指定路由、记录路由器或增加时间戳等选项增加了IP头的长度。如果使用的话,IP选项会以没有间隔字符的方式串在一起,如果它们的结尾不在字边界,即字节数不是4字节的整数倍,还将会加上填充数据。正如上述对头长度字段的描述,选项字段可以包括不超过40字节的选项和选项数据。 常用的选项有:源路由选项、路由记录选项、时间戳选项、安全选项等。,5.1.2 IPv6报文结构 1.IPv6报头结构 与IPv4报文结构一样,IPv6报文也是由报头和数据组成的,不同的是,IPv6报头是由3个部份组成:IPv6报头(即基本报头)、扩展报头及上层协议数据单元。如图5-4所示。,IPv6报头。IPv

7、6报头又称“IPv6基本报头”,每一个IPv6数据包都必须包含报头,该报头长度固定为40个字节。 扩展报头。IPv6扩展报头又称下一个头,扩展报头是可选报头,紧接在基本报头之后,IPv6数据包可包含多个扩展报头,而且扩展报头的长度并不固定,IPv6扩展报头代替了IPv4报头中的选项字段。“下一报头”字段值所对应的扩展报头如表5-1所示。 上层协议数据单元。上层数据协议单元由上层协议报头和它的有效载荷构成,有效载荷可以是一个ICMPv6报文、一个TCP报文或一个UDP报文。,2. IPv6报文结构 IPv6报文由IPv6基本报头+扩展报头+上层协议+数据组成,其中扩展报头为可选项。,版本。长度为

8、4位,对于IPv6,该字段必须为6(0110)。 业务流类别。业务流类别又称通信流类别,长度为8位,指明为该包提供了某种“区分服务”。RFC 1883中最初定义该字段只有4位,并命名为“优先级字段”,后来该字段的名字改为“类别”,在最新的IPv6 Internet草案中,称之为“业务流类别”。该字段的默认值是全0。 流标签。长度为20位,用于标识属于同一业务流的包。一个节点可以同时作为多个业务流的发送源。流标签和源节点地址唯一标识了一个业务流。 净荷长度。长度为16位,其中包括包净荷的字节长度,即IPv6头后的包中包含的字节数。这意味着在计算净荷长度时包含了IPv6扩展头的长度。 下一报头。长

9、度为8位,这个字段指出了IPv6基本报头之后所跟的下一个扩展报头字段中的协议类型。与IPv6协议字段类似,下一个头字段可以用来指出高层是TCP还是UDP,但它也可以用来指明IPv6扩展头的存在与否。 跳极限。长度为8位。每当一个节点对包进行一次转发之后,这个字段就会被减1。如果该字段达到0,这个包就将被丢弃。IPv4中有一个具有类似功能的“生存期”字段。,5.2 IPv6扩展报头,本节内容: 5.2.1 IPv6扩展报头的类型 5.2.2 逐跳选项扩展报头 5.2.3 选路扩展报头 5.2.4 分片扩展报头 5.2.5 认证扩展报头 5.2.6 封装安全有效净荷扩展报头 5.2.7 目的选项报

10、头,5.2.1 IPv6扩展报头的类型 1. IPv6扩展报头的类型 l逐跳选项报头。此扩展头必须紧随在IPv6头之后。它包含包所经路径上的每个节点都必须检查的选项数据。 l目的地选项报头。此扩展头代替了IPv4选项字段。目前,唯一定义的目的地选项是在需要时把选项填充为6 4位的整数倍。此扩展头可以用来携带由目的地节点检查的信息。 l 选路报头。选路报头又称路由报头,此扩展头指明包在到达目的地途中将经过哪些节点。它包含包沿途经过的各节点的地址列表。IPv6头的最初目的地址是路由头的一系列地址中的第一个地址,而不是包的最终目的地址。此地址对应的节点接收到该包之后,对IPv6头和选路头进行处理,并

11、把包发送到选路头列表中的第二个地址。如此类推,直到包到达其最终目的地。 l 分段报头。此扩展头包含一个分段偏移值、一个“更多段”标志和一个标识符字段。用于源节点对长度超出源端和目的端路径MTU的包进行分段。 l 身份验证报头(AH)。此扩展头提供了一种机制,对IPv6头、扩展头和净荷的某些部分进行加密的校验和的计算。 l封装安全性净荷(ESP)报头。这是最后一个扩展头,不进行加密。它指明剩余的净荷已经加密,并为已获得授权的目的节点提供足够的解密信息。,2. IPv6扩展报头的应用,3. IPv6扩展报头的排列顺序 如果在一个IPv6报文中,有多个扩展报头,则应严格按下列顺序排列。 l 基本报头

12、; l 逐跳选项报头; l 目的选项扩展报头; l 路由扩展报头; l 分片扩展报头; l 认证报头; l 封装安全有效净荷报头。,5.2.2 逐跳选项扩展报头 逐跳选项报头的扩展报头值为0。该字段主要用于为在传送路径上的每次跳转指定发送参数,传送路径上的每台中间节点都要读取并处理该字段。逐跳选项报头以IPv6报头中的下一个报值=0来标识。,l 下一个报头值(Next Header)。其含义与前述一致。 l 报头扩展长度(Hdr Ext Len)。是指逐跳选项扩展报头的长度,该长度不包括Next Header字段。 l选项(Options)。是若干系列字段的组合,该字段用以描述数据包转发的一个

13、方面的特性,还可以作为填充之用。一个逐跳选项扩展报头可以包含0个或1个以上的选项字段。选项还可用于目标选项扩展报头。,选项字段结构:,选项类型:表示这个选项的类型。用以确定相关节点对该选项的处理方法。RFC2640规定,在选项类型字段中,最高两位当处理选项的节点不能识别选项的类型时,应该如何处理这个选项。 选项字段的最高两位值含义如下: 00:跳过这个选项; 01:丢弃数据包,不通知发送方; 10:丢弃数据包,无论数据包的目标地址是否为一个组播地址,都向发送方发出一个ICMPv6参数问题的报文; 11:丢弃数据包,如果数据包的目标地址不是一个组播地址,就向发送方发出一个ICMPv6参数问题的报

14、文。 选项数据:选项字段的最高第3位表示在通向目标的路径中,选项数据是否可以改变。 0:选项数据不能改变; 1:选项数据可以改变。,5.2.3 选路扩展报头 选路扩展报头的扩展报头值为43。选路扩展报头又称路由选择报头或源路径选项报头。通过运用选路报头,可以实现经过指定的中间节点到达目的地。,l 下一报头。下一报头和扩展报头长度与逐跳选项报头中的含义一致; l 扩展报头长度。指明扩展报头的长度。 l 路由类型。路由类型是指特定的路由头变量,目前,路由类型只定义了“0”类型(在RFC2460中定义),它包含了报文需要经过的中间路由器的IP地址; 段剩余。段剩余是指在到达最终目标之前还需要经过的中

15、间跳数(即指定经过的路由个数)。,5.2.4 分片扩展报头 分片报头又叫分段报头,其扩展报头值为44。 IPv6分段报头用于IPv6数据包的拆分和重组。如果上层协议提交的有效载荷大于链路或路径MTU,源节点就会对有效载荷进行拆分,并使用分段报头来提供重组信息。 在IPv4中,中间路由器会自动对大的数据包进行拆分,而在IPv6中,路由器不对过大的数据包进行拆分,分片工作是由发送报文的源节点完成的。,l 下一报头(8位)。用以标识“原始报文”中可分片的初始报头类型。 l 保留1(8位)。初始化为“0”,接收方不处理。 l 分片偏移量(13位)。以64比特为单位,用以指定该报头后面的数据报文片段的起

16、始字节在报文中报处的位置。 l 保留2(2位)。初始化为“0”,接收方不处理。 l M(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

17、网络传输后不会发生改变,认证报头是最佳的解决方案。 认证扩展报头提供了对需保护的数据进行数据验证、数据完整性检测和反重放保护。,l 下一报头值。8位,指示在认证头AH之后的下一有效载荷的类型。 l 载荷长度。8位,认证头的总长度(以32比特为单位)。 l 保留位。16位,初始化为0 。 l 安全参数索引SPI。32位,其值为任意的32位数值。 l 序列号。32位,是一个“单调递增无符号计数值”。 l 认证数据。可变长,用以进行完整性检查。,5.2.6 封装安全有效净荷扩展报头 封装安全有效净荷扩展报头的扩展报头值为50。该报头类似于认证报头,主要提供了数据机密性保护、数据验证、数据完整性检测,

18、以及对已封装的有效载荷的重放进行保护。 按照规定,封装安全有效净荷扩展报头位于所有扩展报头的最后。,5.2.7 目的选项扩展报头 目的选项扩展报头的扩展报头值为60。该报头是针对目的地址的可选信息,只有目的节点才处理的选项报头。,l 选项类型。长8位,用于标识选项类型。该字段的定义参见逐跳选项扩展报头的字段含义说明。 l 选项数据长度。长8位,表示以字节为单位的选项数据长度。 l 选项数据。与选项类型对应的选项数据(不定长)。,5.3 ICMPv6,本节内容: 5.3.1 ICMPv4报文回顾 5.3.2 ICMPv6差错报文 5.3.3 ICMPv6信息报文,5.3.1 ICMPv4报文回顾

19、,5,类型,ICMP报文含义,5.3.2 ICMPv6差错报文 ICMPv6差错消息有:目的不可达、数据包超长、超时和参数问题。信息报文则提供诊断功能和附加的主机功能,比如组播侦听发现(MLD)、邻居发现(ND)等。常见的信息报文主要包括回送请求报文(Echo Request)和回送通告报文(Echo Reply)。 在ICMPv6的差错报文中,类型字段8位,规定最高位必须为0,在ICMPv6的信息报文中,类型字段8位,规定最高位必须为1。因此,ICMPv6的差错报文的有效值范围为0-127,而ICMPv6的信息报文的有效值范围为128-255。,1. 目标不可达报文,在目标不可达报文中,类型

20、字段值为1,代码字段值为0-4,其含义如下: 0:没有能到达目标的路由; 1:与目标的通信被管理策略禁止; 2:超出源站的地址范围; 3:地址不可达; 4:端口不可达。,2. 数据包超长报文 如果由于出口链路的MTU小于IPv6数据包长度(即数据包超长)而导致数据包无法转发,路由器就会发送数据包超长报文。该报文用于IPv6路径MTU发现的处理。数据包超长报文的类型字段值为2,代码字段值为0。,3. 超时报文 当路由器收到一个IPv6报头中的路数限制(Hop Limit)字段值为0的数据包时,会丢弃该数据包,并向源地址发送一个ICMPv6超时报文。超时报文的类型字段值为3,代码字段值为0或1。,

21、在代码字段中: 0:在传输中超越了跳限制; 1:分片重组超时。,4. 参数问题报文 当IPv6报头或扩展报头出现错误,导致数据包不能进一步进行处理时,IPv6节点会丢弃该数据包并向发送方发回参数问题报文,以指明问题所在的位置和类型。参数问题报文的类型字段值为4,代码字段值为0-2。,代码字段含义如下: l 0:发现错误的报头字段; l 1:发现无法识别的下一个报头类型; l 2:发现无法识别的IPv6选项。 指针:用以指出IPv6数据包中发生错误的位置。,5.3.3 ICMPv6信息报文 最典型的信息报报文有两种,回送请求报文(Echo Request)和回送通告报文(Echo Relay)。

22、 回送请求/回送通告报文机制提供了一个简单的诊断工具来协助发现和处理各种可达性问题。 回送请求/回送通告报文一般用于Ping命令的实现。,1. 回送请求报文 回送请求报文用于发送到目标节点,目标节点收到该报文后,会立即发回一个回送通告报文。回送请求报文的类型字段值为128,代码字段值为0。,2. 回送应答报文 当接收方接收到一个回送请求报文时,ICMPv6会用回送应答报文进行响应。回送应答报文的类型字段值为129,代码字段值为0。标识符和序列号值与回送请求报文中相应的字段值完全一致。回送应答报文结构与回送请求报文结构一致。,例5-4:Echo Request报文实例 Internet Prot

23、ocol Version 6 Version: 6 Traffic class: 0 x00 业务流类别 Flowlabel: 0 x00000 流标签 Payload length: 40 Next header: ICMPv6(0 x3a) “58”表示ICMPv6报文 Hop limit: 64 Source address: 1:2 Destination address: 1:1 Internet Control Message Protocol v6 Type: 129 (Echo reply) Code:0 Checksum: 0 x9675(correct) ID:0 x000

24、0 Sequence: 0 x0010 Data(32 bytes),例5-5: Echo Reply报文实例 Internet Protocol Version 6 Version: 6 Traffic class: 0 x00 业务流类别 Flowlabel: 0 x00000 流标签 Payload length: 40 Next header: ICMPv6(0 x3a) Hop limit: 128 Source address: 1:1 Destination address: 1:2 Internet Control Message Protocol v6 Type: 128(E

25、cho request) Code:0 Checksum: 0 x9675(correct) ID:0 x0000 Sequence: 0 x0010 Data(32 bytes),3. 组播组管理报文 这类ICMPv6报文包括:组播组成员关系查询、组播组成员关系报告、组播组成员关系终止等几种报文。,l 类型。其值表明是哪一种组播类报文。组播组成员关系查询报文的类型值为130,组播组成员关系报告报文的类型值为131,组播组成员关系终止报文的类型值为132。 l 代码。对3种报文,其值都为0。 l 最大响应时间。只在组播组成员关系查询报文中有意义。在组播组成员关系查询报文中,该值表示“从查询报文

26、发出到通告为止所能容许的最大延迟时间”,单位为毫秒。在其他两种报文中,没有实际意义,发送方将其置为0,目的节点接收时忽略。,4. 邻居发现报文,l 类型。其值为135,用于表明该报文是一个“邻居请求报文”。 l 代码。其值设置为0。 l 保留位。该字段保留未用,它的值必须置为0。 l 对象地址。存放被请求的目的主机的IP地址。 l 选项。存放一些网络参数,比如源链路层地址等。,5. 邻居通告报文 邻居通告报文即邻居应答报文,是对邻居请求报文的响应。其报文结构与邻居请求报文结构基本相同。,l R标志位。表明发送该报文的系统是否是路由器。当R为1时,表明发送该报文的系统是路由器;为0时表明不是路由

27、器。 l S标志位。表明该报文是对请求的通告还是自发。当S为1时表示对请求的通告;否则是自发。 l 0标志位。表明接收到该报文的主机是否用选项中的数据链路层地址更新自己的缓存。当该标志为1时,主机应当用选项中的数据链路层地址更新自己的缓存,该标志为0时不更新缓存内容。 l 对象地址。通告报文发往的目的地址。 l 选项。包括一些网络参数,比如源链路层地址、目的主机的链路层地址等。,6. 路由请求报文 在IP网络中,路由器每隔一段时间就向网上发送一个路由通告报文,报文中含有帮助主机选择网络接口的路由信息。一般情况下,路由器每5分钟发送一条路由通告报文。如果一台主机在这5分钟里发生了故障,丢失了所有路由信息怎么办?一种办法就是等待5分钟,从网络上获取下一个路由通告报文之后再发送自己的报文。另一种办法是主动向路由器发送一条“路由请求报文”,路由器一收到“路由请求报文”后,将立即发送“路由通告

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论