IP包头的校验值算法
算法:
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
< 结束 >
转载于:https://blog.51cto.com/nature0923/589383