ICMPv6——控制消息协议(版本6)
谢杨
2002-5-22 13:24:23
与IPv4一样,IPv6本身不提供报告错误机制,而是使用ICMP协议。ICMPv6是IPv6结构总体的一部分,必须被所有IPv6实现完全支持。ICMPv6具备IPv4 ICMP基本功能,废除了一些不再使用的过时消息类型,并提供一个简单的故障排除回应服务。此外,ICMPv6还综合了另外两个在原IPv4中分属不同协议完成的功能:
·多点传送收听者发现(Multicast Listener Discovery,MLD)
MLD用三条ICMPv6消息取代了IPv4所用的IGMP协议(组成员协议),管理子网多点传送成员。
·邻居发现(Neighbor Discovery,ND)
邻居发现是一组五条ICMPv6消息,用来管理同一链路上节点间通信。邻居发现协议取代了IPv4所用的ARP地址解析协议、ICMPv4路由器发现协议和ICMPv4重定向消息。
ICMPv6消息类型
ICMPv6是一个多用途协议,可以用来报告诸如数据包传输过程中出现的错误和多点传送成员资格。因此,ICMPv6消息可分为两种类型:
1) 错误消息
一个8位类型字段说明消息类型,如果最高位为0(取值范围从0~127),它就是一个错误消息。错误消息用来报告IPv6包在传输和转发过程中出现的错误,主要包括:目的不可达,数据包太大,超时和参数错误等。
2) 信息消息
当8位类型字段最高位为1时(取值范围从128~255),就是一个信息消息。信息消息提供诸如MLD和邻居发现等诊断功能和附加主机功能。
ICMPv6包格式
图1、ICMPv6包格式
Type:8位类型字段说明消息类型,最高位为0代表错误消息;最高位为1代表信息消息。
Code:8位代码字段内容取决于消息类型,用来区分某一类型的多条消息。若某一给定类型只有一条消息,则代码为0。
Checksum:校验和字段用于检错。
Message body:消息正文。
ICMPv6错误消息
为节约网络带宽,ICMPv6并不针对每一个错误都发送错误消息,而是采用一种被称为“比率限制”的机制来限制错误消息发送频率。比率限制可基于时间或基于网络带宽,如每隔1000毫秒发送一错误消息或发送给每个接口的错误消息控制在占链路带宽的2%左右等。
ICMPv6错误消息类似于ICMPv4错误消息,分属以下四种范畴:目的不可达,数据包过大,超时和参数问题。
·目的不可达
目的不可达消息如下图所示,它是由于目的不可达,网络必须抛弃一个IPv6包时产生的。
图2、ICMPv6目的不可达消息
目的不可达消息的类型字段值为1,表示这是个错误消息,代码字段取值范围0~4。在校验和字段之后是一个32位未用字段和引发ICMPv6目的不可达消息的、即被抛弃的IPv6包的第一部分。
目的不可达消息的代码字段取值以及含义描述见下表。
代码字段值
含义描述
0
不能路由到目的,路由器无法在路由表中找到目的地址的匹配条目。
1
由于管理策略的原因而无法与目的地址通信,如IPv6包被防火墙扔掉。
2
目的地址在源地址可传送域外。
3
目的地址不可达,典型的原因是无法计算得到目的节点链路层地址
4
目的端口不可达,如包含UDP消息的I
控制消息协议(版本6) 来自淘豆网m.daumloan.com转载请标明出处.