We are currently investigating a strange behavior of different devices: if we send "empty" ICMP packets (that is, ICMP-SEQ and ICMP-ID are 0x0000 and no ICMP payload), for example using
nping --icmp --icmp-seq=0 --icmp-id=0 8.8.8.8
then different systems reply differently:
- an Asus router, Windows 7 PC, Fritz!Box, Kali Linux box, all reply with checksum 0xFFFF, which is correct according to wireshark
- However, 8.8.8.8 and heise.de (193.99.144.80) both reply with 0x0000, which is marked as wrong by wireshark.
I am pretty sure that I have also seen 0xFFFF from 8.8.8.8, but I currently can't reproduce this.
SO, my Questions:
- What's the correct Internet Checksum for a packet consisting only of Zeros
- Is this behavior different if the packed is relayed via NAT (i.e. relayed through our router)?
Note: This ICMP packet is valid according to RFC 792
PS: I hope serverfault is the correct forum to ask. If not, I apologize in advance ;)