TCP一定可靠吗-计算校验和

时间:2024-07-07 11:14:44

校验和是通过计算16位字的和,然后取其反码(二进制反码)得到
具体步骤如下:
1、 先将需要计算checksum数据中的checksum设为0
2、 计算checksum的数据按2byte划分开来,每2byte组成一个16bit的值,如果最后有单个byte的数据,补一个byte的0组成2byte
3、 将所有的16bit值累加到一个32bit的值中
4、 将32bit值的高16bit与低16bit相加到一个新的32bit值中,若新的32bit值大于0Xffff,再将新值的高16bit与低16bit相加
5、 将上一步计算所得的16bit值按位取反,即得到checksum值,存入数据的checksum字段即可