我遇到了以下创建Internet校验和的示例:
以IP标头
45 00 00 54 41 e0 40 00 40 01 00 00 0a 00 00 04 0a 00 00 05
为例:
- 将字段加在一起将产生两个补码和
01 1b 3e
。- 然后,将其转换为一个补码,将结转位添加到前16位:
1b 3e + 01 = 1b 3f
。- 最后,取一个总和的补码,得到校验和值
e4c0
。
我想知道如何将IP标头加在一起以获得01 1b 3e
?
将IP标头拆分为16位。
IP报头与4位十六进制数加在一起。即添加的前3个数字是0x4500 + 0x0054 + 0x41e0 + ...