这是icmp包 校验和程序,我想不明白,最后return校验和,为什么要&ffff.
第一个sum &ffff是为了取最后16位
第二个sum &ffff类似第一个,为了保证多出来的也被计算。
这就是王八的屁股,规定
https://blog.csdn.net/zhj082/article/details/80518322
按照规范,计算出来的保留最后2个字节。
你也可以这么想,报文长度可以很长,但是始终算出来都是2个字节,并且要保证原文都被算到(也就是任何原文位置的改动,都要引起校验的改动,否则校验就无法有效检查出任何错误)