I have a packet that has a checksum of 0xffff, and a calculated checksum of 0x0000. I know in UDP, a checksum of 0x0000 is not allowed, and is instead replaced with 0xffff, thus the packet should be validated.
On the other hand, I had a packet with a checksum of 0x0000, and a calculated checksum of 0x0000, in this case, do we still replace it with 0xffff? That would make it invalid packet (incorrect checksum match), but I believe that it is valid (correct checksum match). Are there any rules for such values?
Best Answer
With UDP, the checksum is optional, but it's mandatory for ICMP.
Accordingly, you do not replace a calculated
0x0000
with0xffff
.For reference, check RFC 4443 2.3: