1 处理ICMP报文
—一般来说,传入的信息类请求报文将被操作系统自动处理;而差错类报文传递给用户进程或传输层协议,如TCP。
—处理传入的ICMPv6报文将应用以下规则:
· 如果可能的话,未知的ICMPv6差错报文必须传递给上层产生差错报文的进程;
· 未知的ICMPv6信息类报文被丢弃;
· ICMPv6差错报文将会尽可能多地包含导致差错的原始(”违规“)IPv6报文,当然最终的差错报文大小不能超过最小的IPv6MTU;
· 在处理ICMPv6差错报文时,需要提取原始(或”违规“)数据包的上层协议类型,用于选择适当的上层进程,如果这是不可能的,在任何IPv6层处理完后将无声地丢弃差错报文;
· 存在处理差错的特殊规则;
· IPv6节点必须限制它发送ICMPv6差错报文的速率:令牌桶法。
2 ICMP差错报文
—ICMP差错报文不会对以下报文进行响应:
· 另一个ICMP差错报文;
· 头部损坏的数据报,如校验和错误;
· IP层的广播和组播数据报;
· 封装在链路层广播或者组播帧中的数据报;
· 无效或者网络为零的源地址的数据报,即源地址不能为零地址、广播地址、组播地址或环回地址;
· 除第一个之外的其他分片。
—需要限制发送ICMP差错报文的速率,方法如:令牌桶法。
—当发送一个ICMP差错报文,它包含了一个完整的源自”违规“或”原始“数据报的IP头部副本,再加上原始数据报的IP有效载荷区中的任何其他数据,同时要确