ICMP /互联网校验和,如果数据包完全由零组成

我们目前正在研究不同设备的奇怪行为:如果我们发送“空的”ICMP数据包(即ICMP-SEQ和ICMP-ID是0x0000,没有ICMP有效载荷),例如使用

nping --icmp --icmp-seq=0 --icmp-id=0 8.8.8.8 

那么不同的系统回复不同

  • 一个华硕路由​​器,Windows 7 PC,Fritz!盒,Kali Linux盒,全部回复校验和0xFFFF ,根据wireshark
  • 但是,8.8.8.8和heise.de(193.99.144.80)都回应0x0000 ,这是由wireshark标记为错误的。

我非常肯定,我也看到了8.8.8.8的0xFFFF,但是我现在不能再现这个。

所以,我的问题:

  • 什么是只包含零的数据包的正确的Internet校验和
  • 如果打包通过NAT中继(即通过我们的路由器中继),这种行为是不同的?

注意:此ICMP数据包根据RFC 792是有效的

PS:我希望serverfault是正确的论坛问。 如果不是的话,我提前道歉;)