如何计算收到的样本ipv4数据包的校验和:
4500 062A 42A1 8001 4210 XXXX C0A8 0001 C0A8 0003
其中xxxx是需要随数据包一起发送的校验和。
我是网络新手,我无法找到准确的信息。
谢谢!
到目前为止,这是我发现的: 转换为二进制,添加,然后是总和的补码,一旦转换回来应该是校验和?但我无法做到这一点:
4500 062A 42A1 8001 4210 XXXX C0A8 0001 C0A8 0003
4500 - 0100 0101 0000 0000
062A - 0000 0110 0010 1010
42A1 - 0100 0010 1010 0001
8001 - 1000 0000 0000 0001
xxxx - 0000
C0A8 - 1100 0000 1010 1000
0003 - 0000 0000 0000 0011
添加所有内容:
4500 - 0100 0101 0000 0000 062A - 0000 0110 0010 1010
19242 - 0100101100101010 //第一个结果 42A1 - 0100 0010 1010 0001
36299 - 01000110111001011 //第二个结果 8001 - 1000 0000 0000 0001
69068 - 010000110111001100 //第三个结果 C0A8 - 1100 0000 1010 1000
118388 - 011100111001110100 0003 - 0000 0000 0000 0011
118391 - 011100111001110111 选取118391-100011000110001000
的补码- > 23188 - 100011000110001000
23188校验和也是如此
答案 0 :(得分:-1)
标头校验和:16位
仅限标题的校验和。由于一些标题字段改变(例如, 生存时间),这是重新计算和验证的每个点 互联网标题已处理。
校验和算法是:
校验和字段是该字段的16位补码 标头中所有16位字的补码和。出于...的目的 计算校验和时,校验和字段的值为零。
这是一个简单的计算校验和和实验证据 表示它是足够的,但它是临时的,可以替换为 CRC程序,取决于进一步的经验。
此算法详见RFC 1071, Computing the Internet Checksum,由RFC 1141, Incremental Updating of the Internet Checksum更新,由RFC 1624, Computation of the Internet Checksum via Incremental Update更新。