由于ICMP和ICMPv6有不同的IP协议号,所以IPv4主机接收ICMPv6数据包或IPv6主机接收ICMP数据包在技术上是可能的。在这种情况下,主机的行为是否由任何标准指定?我在RFC里什么都没看到。
发布于 2019-05-05 20:37:02
RFC 8200指出,IPv6中的"next header“字段使用与IPv4中的"protocol”字段相同的值。
然而,RFC 4443指出:
每个ICMPv6消息的前面都有一个IPv6头.ICMPv6报头由下一个标头值58 .
RFC 792指出:
ICMP消息使用基本IP报头发送。 ... Version 4
我解释这两条语句的方式是,ICMP数据包不仅由“协议”或“下一个报头”字段标识,而且该协议由IP版本和“协议”/“下一个报头”号的逻辑AND
组合标识。
这意味着IPv4数据包中的“协议”值58并不意味着ICMPv6,而IPv6数据包中的“下一个报头”值1并不意味着ICMP(v4)。
如果这一解释是正确的,您必须以同样的方式做出反应,就像您收到一个带有未知“协议”或“下一个报头”号的数据包一样。
发布于 2019-05-04 19:35:39
ICMPv4封装在IPv4包中,ICMPv6封装在IPv6中。只有IPv6 4的主机不可能接收和解析IPv6数据包(反之亦然)。
https://networkengineering.stackexchange.com/questions/58903
复制相似问题