您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 第5章-ICMPv6及应用
2019年12月29日星期W1时51分26秒郑州大学信息工程学院李向丽1下一代互联网协议IPv62019年12月29日星期W1时51分26秒郑州大学信息工程学院李向丽2第一部分IPv6技术•第2章IPv6概述•第3章IPv6编址技术•第4章IPv6分组及协议机制•第5章ICMPv6及应用•第6章IPv6过渡机制2019年12月29日星期W1时51分26秒郑州大学信息工程学院李向丽3•5.1ICMPv6概述•5.2ICMPv6报文基本格式•5.3ICMPv6差错报告报文•5.4ICMPv6信息报文•5.5邻节点探测协议(NDP)•5.6ICMPv6多播组成员报文2019年12月29日星期W1时51分26秒郑州大学信息工程学院李向丽45.1ICMPv6概述在RFC2463中定义InternetControlMessageProtocolVersion6(ICMPv6协议)。在IPv6中,ICMPv6实现IPv4中ICMP、ARP和IGMP的功能。ICMPv6协议功能:向源节点报告关于目的地址传输IPv6包的错误和信息,具有差错报告、网络诊断、邻节点发现和多播实现等功能。2019年12月29日星期W1时51分26秒郑州大学信息工程学院李向丽5ICMPv6报文的封装•ICMPv6报文封装在IPv6中IPv6基本首部扩展首部……扩展首部NICMPv6报文首部ICMPv6报文体•具有扩展首部的IPv6,封装ICMPv6报文2019年12月29日星期W1时51分26秒郑州大学信息工程学院李向丽6版本优先级流标记净荷长度下一个头标:58中继点限制信源地址信宿地址ICMP类型ICMP代码校验和ICMP报文内容IP头标ICMP报文载荷长度跳数限制源地址目的地址下一首部IP首部流标识封装在IPv6分组中的ICMPv6报文2019年12月29日星期W1时51分26秒郑州大学信息工程学院李向丽7•ICMP:是在TCP/IP网络中传递网络控制信息的主要手段,同时,ICMP还提供了差错报告的功能。•IPv6的定义中,对IPv4的ICMP进行了修订。删除了一些极少使用的ICMP报文,更完整地加入了ICMP的多播控制功能,对其他原有的ICMP报文做了针对IPv6的修改。经过修改,ICMPv6与原有的ICMP已经不再兼容。2019年12月29日星期W1时51分27秒郑州大学信息工程学院李向丽8已定义的ICMPv6报文类型差错报文(0-127)信息报文(128-255)类型消息含义类型消息含义1目的不可达128回声请求2数据包报文过大129回声应答3超时130组成员查询4参数错误131组成员报告132组成员退出133路由器请求134路由器通告135邻节点请求136邻节点通告137重定向138路由器重编号139节点信息查询140节点信息应答2019年12月29日星期W1时51分27秒郑州大学信息工程学院李向丽95.2ICMPv6报文的基本格式•5.2.1ICMPv6报文校验和的计算•5.2.2封装ICMPv6报文的IPv6分组的源地址•5.2.3ICMPv6报文的处理规则2019年12月29日星期W1时51分27秒郑州大学信息工程学院李向丽105.2ICMPv6报文的基本格式类型:标识ICMPv6报文类型,它的值根据报文的内容来确定。代码:用于确定ICMPv6进一步的信息,对同一类型的报文进行了更详细的分类。校验和:用于检测ICMPv6的报文是否正确传送。报文体:用于返回出错的参数和记录出错报文的片段,帮助源节点判断错误的原因。或是其它参数。类型(1字节)代码(1字节)校验和(2字节)ICMP报文体(可变长)2019年12月29日星期W1时51分27秒郑州大学信息工程学院李向丽115.2.1ICMPv6报文校验和的计算•校验和16bit,计算范围包括两部分。–ICMPv6报文–IPv6伪首部(伪首部中下一首部字段的值为58)。•计算方法:–校验和字段被设置为0–ICMPv6对校验范围内的数据以16比特为单位,做1的补码的加法运算。–在ICMPv6首部校验和字段中,置入此16比特的和。2019年12月29日星期W1时51分27秒郑州大学信息工程学院李向丽120(3字节)源地址(16字节)目的地址(16字节)有效载荷长度(4字节)下一首部(=58,1字节)ICMPv6校验和的校验范围类型(1字节)代码(1字节)校验和(2字节)ICMPv6报文体(可变长)IPv6的伪首部ICMPv6报文2019年12月29日星期W1时51分27秒郑州大学信息工程学院李向丽135.2.2封装ICMPv6报文的IPv6分组的源地址•源地址帮助IPv6分组的源节点判断分组在何处出错。一个发送ICMPv6报文的节点在计算校验和以前,要在IPv6首部中谨慎填写源地址和目的IPv6地址。选择ICMPv6报文源地址的主要原则有四个:•前二个规则是针对ICMPv6信息报文制定的。–第一个规则:若原IPv6分组是单播分组,ICMPv6应答报文的源地址应该设置为原IPv6分组中的目的地址。–第二个规则:若是多播Multi-castgroup或任播any-castgroup报文,则ICMPv6应答报文必须将收到该IPv6分组的接口的IP地址作为源地址。2019年12月29日星期W1时51分27秒郑州大学信息工程学院李向丽14•第三个规则:适用于ICMP差错报告报文。–在许多情况下,生成差错报文的并非是目的节点。因此差错报文不能将原报文中的目的地址作为ICMP差错报文的源地址使用,而应将报告IPv6分组出错信息的节点地址作为源地址。–例如,若是分组过大ICMPv6差错报文时,该源地址应该是不能接纳原IPv6分组的路由器的某个接口的IPv6地址。•第四个规则:主动发送的ICMPv6报文及不适用上述规则的ICMP报文,发送ICMPv6报文的节点必须查看自己的路由表,判断哪一个网络接口将被用于发送ICMPv6报文,则将该接口的一个单播地址作为源地址。2019年12月29日星期W1时51分27秒郑州大学信息工程学院李向丽155.2.3ICMPv6报文的处理规则1.当接收到ICMPv6差错报告报文时,如果无法识别具体的类型,必须将它交给上层协议模块进行处理。2.当接收到ICMPv6信息报文时,如果无法识别具体的类型,必须将它丢弃。3.所有的ICMPv6差错报告报文,都应该在IPv6所要求的最小MTU允许范围内,尽可能多地包括引发该ICMPv6差错报文的IPv6分组片段,以便给IPv6分组的源节点提供尽可能多的诊断信息。2019年12月29日星期W1时51分27秒郑州大学信息工程学院李向丽16ICMPv6报文的处理规则(续1)4.在需要将ICMPv6报文上传给其上层协议模块处理的情况下,上层协议的具体类型,应该从封装该ICMPv6报文的IPv6分组的下一首部字段中获取。但是,如果该IPv6分组携带有很多扩展首部,则可能会导致有关上层协议类型的信息没有被包含在ICMPv6报文中。这时,只能将该差错报告报文在IP层处理完后丢弃掉。5.不能产生ICMPv6差错报告报文的发送情况:①一个ICMPv6差错报告报文。这主要是为了避免无休止地产生ICMPv6报文而引起网络拥塞。2019年12月29日星期W1时51分27秒郑州大学信息工程学院李向丽17ICMPv6报文的处理规则(续2)②一个发往多播地址的IPv6分组。但有两个例外:•当使用IPv6多播地址进行路径MTU探测时,可以发送“报文过长”差错报告报文;•允许使用参数错误报文报告:存在不可识别的TLV可选项。③链路层的多播报文。对这类报文也具有与上面第二类情况相同的例外。④链路层的广播报文。对这类报文也具有与上面第二类情况相同的例外。⑤IPv6分组的源地址无法唯一确定一个单独节点时,这种情况也不能够引起ICMPv6差错报告报文的发送。例如,IPv6不明确地址等。2019年12月29日星期W1时51分27秒郑州大学信息工程学院李向丽18ICMPv6报文的处理规则(续3)6.最后,为了限制在发送ICMPv6差错报告报文时对网络带宽和转发处理的消耗,一个IPv6节点必须限制其发送ICMPv6差错报告报文的速率。但是,这样可能会导致一个差错报告报文的源节点因为没有及时收到报文出错的报告而不断地重发该错误报文。目前有几种提供限制ICMPv6速率的方法,例如:①基于计时器的方法。例如,将发往某个源节点或所有源节点的ICMPv6差错报告报文的速率,限制在每T时间段内只发送一个差错报告报文之内。②基于带宽的方法。例如,将某个网络接口发送的ICMPv6差错报告报文所占用的带宽限制在这个接口所在链路带宽的某个比例F上。2019年12月29日星期W1时51分27秒郑州大学信息工程学院李向丽195.3ICMPv6差错报告报文•5.3.1目的不可达ICMPv6报文•5.3.2分组过大ICMPv6报文•5.3.3超时ICMPv6报文•5.3.4参数错误ICMPv6报文2019年12月29日星期W1时51分27秒郑州大学信息工程学院李向丽20•ICMPv6报文分成两大类:•ICMPv6差错报告报文:一个IPv6节点在处理一个接收到的报文时,如果有错误出现,则需要向源节点发送ICMPv6差错报告报文。目前ICMPv6共定义了四种类型的差错报告报文:目的不可到达、报文过长、超时、参数差错报告报文。•ICMPv6信息报文:传递用于控制的请求和应答信息。比如用于实现Ping功能的回声请求报文和回声应答报文,以及对多播组控制的ICMPv6信息报文。2019年12月29日星期W1时51分28秒郑州大学信息工程学院李向丽21071531类型(1B)引发本报文的原IPv6分组片段(在不超过最小IPv6MTU的情况下,尽可能多地包括引起出错的分组的信息)校验和(1B)代码(1B)参数ICMPv6差错报文基本格式5.3ICMPv6差错报告报文2019年12月29日星期W1时51分28秒郑州大学信息工程学院李向丽22ICMPv6差错报文基本格式•ICMPv6差错报告报文中的类型字段、代码字段及校验和字段的内容,根据差错报告报文类型的不同而不同。•ICMPv6报文体分为两个部分,前4字节是参数字段,剩余部分是引起该ICMPv6报文产生的出错IPv6分组片段。•在整个ICMPv6报文的长度不超过IPv6对路径传输单元的最低限制(1280字节)的条件下,应该包含尽可能多的出错IPv6分组信息。这样可以使出错IPv6分组的源节点获得尽可能多的信息来诊断出错原因。2019年12月29日星期W1时51分28秒郑州大学信息工程学院李向丽23ICMPv6字段:类型值为1代码0-没有到目的的路由1-与目的的通信由于管理被禁止,e.g.防火墙2-(没有定义)3-目的地址不可达,e.g.不能转换为MAC地址4-端口不可达,e.g.端口没有开放参数字段:未用,发送者设置为0,接收者忽略。描述:该报文应该由路由器或节点的IPv6层产生,作为对除拥塞以外的原因使得包不能传送到目的地址的回应。5.3.1目的不可达报文一个节点在收到该报文后,必须通知上层协议进行相应处理。2019年12月29日星期W1时51分28秒郑州大学信息工程学院李向丽24ICMPv6字段:类型值为2代码:未用,发送者设置为0,接收者忽略。参数字段:记录在出现包过大错误时链路的MTU。描述:包过大报文必须由路由器发出,当路由器发现包太大,超过了出口链路的MTU而不能转发时,丢弃该包,并向源节点发送ICMPv6报文。可以用于IPv6路径MTU发现(PMTUD)。在RFC1981中定义,IPv6的PMTU使用ICMPv6类型2报文,即分组过大ICMPv6报文。5.3.2分组过大报文一个节点在收到该报文后,必须通知上层协议进行相应处理。2019年12月29日星期W1时51分28秒郑州大学信息工程学院李向丽25使用ICMPv6路径MTU发现(PMTUD)探测路径MTU的过程。源路由器路由器目的MTU=1500MTU=1400MTU=130
本文标题:第5章-ICMPv6及应用
链接地址:https://www.777doc.com/doc-2340911 .html