算法:

1.     将IP 头部校验和部位值置为全0
2.     以16bit为单位(0xFFFF)从前向后做加运算
3.     首先从左填充数值为16bit倍数。将得到的数值重复依步骤2做运算。最终将得到一个16bit数值
4.     将此数值做反运算。所得值为Header Checksum

 

实例:

1.     4500 0034 A000 4000 4006 0000 210F 0F01 C0A8 0101
2.     4500+0034+A000+4000+4006+0000+210F+0F01+C0A8+0101=256F3
3.     0002+56F3=56F5
4.      ~0101011011110101(0x56F5)
       =  1010100100001010 = 0xA90A

 

< 结束 >