您好,欢迎访问三七文档
ICMPv6及邻居发现协议ICMPv6协议•IPv6协议使用ICMPv6协议作控制协议,ICMPv6的IPv6NextHeader值为58。•ICMP报文分为两种类型–错误报文–信息报文ICMPv6报文的格式•ICMP错误报文:Type字段中最高位0,类型范围0-127•ICMP信息报文:Type字段中最高位1,类型范围128-255ICMPv6错误报文•由路由器或目的节点发送的,用于报告数据包在传输过程中发现的错误。–目的不可达报文–数据包过大报文–超时报文–参数问题报文目的不可达报文•目的不可达报文是在数据报不能被发送到目的地址的情况下,路由器或发起的IPv6节点产生的。目的不可达报文类型=1代码(0-6)校验和未使用被丢弃包的一部分数据包过大报文•当路由器接收到的一个数据包的大小超过要转发到的链路的MTU时,就不能转发该数据包。数据包过大报文类型=2代码(0)校验和MTU被丢弃包的一部分超时报文•当路由器收到一个跳数限制字段值为0的IPv6数据报,或路由器将IPv6数据报的跳数限制字段值减为0时,将向发出该数据报的源节点发送超时报文。超时报文类型=3代码(0或1)校验和未使用(必须为0)被丢弃包的一部分参数问题类型=4代码(0,1或2)校验和指针被丢弃包的一部分最典型的信息报报文有两种,回送请求报文(EchoRequest)和回送通告报文(EchoRelay)。回送请求/回送通告报文机制提供了一个简单的诊断工具来协助发现和处理各种可达性问题。回送请求/回送通告报文一般用于Ping命令的实现。ICMPv6信息报文EchoRequest报文实例InternetProtocolVersion6Version:6Trafficclass:0x00业务流类别Flowlabel:0x00000流标签Payloadlength:40Nextheader:ICMPv6(0x3a)“58”表示ICMPv6报文Hoplimit:64Sourceaddress:1::2Destinationaddress:1::1InternetControlMessageProtocolv6Type:129(Echoreply)Code:0Checksum:0x9675(correct)ID:0x0000Sequence:0x0010Data(32bytes)EchoReply报文实例InternetProtocolVersion6Version:6Trafficclass:0x00业务流类别Flowlabel:0x00000流标签Payloadlength:40Nextheader:ICMPv6(0x3a)Hoplimit:128Sourceaddress:1::1Destinationaddress:1::2InternetControlMessageProtocolv6Type:128(Echorequest)Code:0Checksum:0x9675(correct)ID:0x0000Sequence:0x0010Data(32bytes)PMTU发现机制•发送节点假定到目标的PMTU就是当前正在进行转发的接口的链路MTU。•发送节点以假定的PMTU长度发送IPv6数据包。•如果这条路径上的一个路由器因为接口的链路MTU小于数据包的长度而不能转发此数据包,那么这个路由器会将一个ICMPv6数据包过长报文发回给发送节点,并丢弃此IPv6数据包。ICMPv6的数据包过长报文包含了转发失败的网络接口的链路MTU。•根据ICMPv6数据包过长报文中的MTU字段值,发送节点设置新的发送目标的数据包的假定PMTU。PMTU发现机制•发送节点在第2步和第4步之间多次往复,直至发现最终PMTU。当发送方再也接收不到新的数据包过长报文,或者发送方接收到来自接收方的确认或应答数据包时,PMTU就得以确定。
本文标题:ICMPv6
链接地址:https://www.777doc.com/doc-3250690 .html