IP首部校验和的计算方法:
把校验和字段清零,对每16位(2字节)进行二进制反码求和, 反码求和的意思是先对每16位求和,再将得到的和转为反码。
IP数据报校验只对首部进行校验,不对数据部分进行校验。把首部看成16位为单位的数字组成,依次进行二进制反码求和,再把结果依次存入校验和字段中即可。
例题《计算机网络第八版》4.11
0100 0101 0000 0000 // 4 5 ,0
0000 0000 0001 1100 //28
0000 0000 0000 0001 // 1
0000 0000 0000 0000 // 0
0000 0100 0001 0001 // 4 17
0000 1010 0000 1100 //10 12
0000 1110 0000 0101 //14 5
0000 1100 0000 0110 // 12 6
0000 0111 0000 1001 // 7 9
相加的和为:
0111 0100 0100 1110
取反
1000 1011 1011 0001
所以首部检验和为: 1000 1011 1011 0001