ICMPv6
ICMPv6(Internet Control Message Protocol for the Internet Protocol Version 6)是IPv6的基础协议之一,具有差错报文和信息报文两种,用于IPv6节点报告报文处理过程中的错误和信息。ICMPv6报文的报文格式如图11-5所示。
报文中各个字段的解释如下:
Type字段表明消息的类型,0至127表示差错报文类型,128至255表示消息报文类型。
Code字段表示此消息类型细分的类型。
Checksum表示ICMPv6报文的校验和。
ICMPv6错误报文的分类
目的不可达错误报文
在IPv6节点转发IPv6报文过程中,发现目的地址不可达时,就会向发送报文的源节点发送ICMPv6目的不可达错误报文。同时报文中会携带引起该错误报文的具体原因。目的不可达错误报文又细分为以下几种:
没有到目的地的路由
地址不可达
端口不可达
数据包过大错误报文
在IPv6节点转发IPv6报文过程中,发现报文超过出接口的链路MTU时,则向发送报文的源节点发送ICMPv6数据包过大错误报文,其中携带出接口的链路MTU值。数据包过大错误报文是Path MTU发现机制的基础。
时间超时错误报文
在IPv6报文收发过程中,当路由器收到Hop Limit值等于0的数据包,或者当路由器将HopLimit值减为0时,会向报文的源节点发送ICMPv6超时错误报文。对于分段重组报文的操作,如果超过定时时间,也会产生一个ICMPv6超时报文。
参数错误报文
当目的节点收到一个IPv6报文时,会对报文进行有效性检查,如果发现以下问题会向报文的源节点回应一个ICMPv6参数错误差错报文。
IPv6基本头或扩展头的某个域有错误
IPv6基本头或扩展头的NextHeader值不可识别
扩展头中出现未知的选项
ICMPv6信息报文的分类
请求信息(Echo Request)和应答信息(Echo Reply)。可以利用ICMPv6报文实现网络故障诊断、PMTU发现和邻居发现等功能。在两节点的互通性检测中,收到Echo Request报文的节点向源节点回应Echo Reply报文,实现两节点间报文的收发。