【第22期】观点:IT 行业加班,到底有没有价值?

IP首部校验和(ICMP报文的校验和)的计算方法

转载 2015年07月09日 21:56:20
由于在IP首部和ICMP报文中都存在着校验和的问题,在网上搜索了关于校验和的计算方法,得出如下的转载文章:
i 将校验和字段置为0,然后将IP包头按16比特分成多个


校验和Header Checksum:0x618D将其重置为0X0000

将IP包头分段:

        1.  0x4500

        2.  0x0029

        3.  0x44F1

        4.  0x4000

        5.  0x8006

        6.  0x0000 ------->这个为Header Checksum的值,我们前面将其重置为0了

        7.  0xC0A8

        8.  0x01AE

        9.  0x4A7D

+       10.  0x477D

-------------------------------------------------------

将1至10相加求出来的和为:0x29E70

II.对各个单元采用反码加法运算(即高位溢出位会加到低位,通常的补码运算是直接丢掉溢出的高位),将得到的和的反码填入校验和字段

0x0002+0x9E70=0x9E72

0x9E72二进制为:1001 1110 0111 0010

反码为:0110 0001 1000 1101

0110 0001 1000 1101的16进制为:0x618D

看看这个 是否与IP包头中的Checksum相同

==========================================================

当接收到IP对其进行检测

III.对各个单元采用反码加法运算,检查得到的和是否符合是全1(有的实现可能对得到的和会取反码,然后判断最终值是不是全0)

当收到IP数据局包的时候,要验证IP头是否正确,则可以这样进行

        1.  0x4500

        2.  0x0029

        3.  0x44F1

        4.  0x4000

        5.  0x8006

        6.  0x618D ------->这个为Header Checksum的值

        7.  0xC0A8

        8.  0x01AE

        9.  0x4A7D

+       10.  0x477D

-------------------------------------------------------

将1至10相加求出来的和为:0x2FFFD

对各个单元采用反码加法运算(即高位溢出位会加到低位,通常的补码运算是直接丢掉溢出的高位),将得到的和的反码填入校验和字段:

0x0002+0xFFFD=0xFFFF

0xFFFF二进制为:1111 1111 1111 1111

1111 1111 1111 1111反码为:0

举报

相关文章推荐

ICMP报文校验和的计算及各种网络报文结构

发送ICMP报文时,必须由程序自己计算校验和,将它填入ICMP头部对应的域中。校验和的计算方法是:将数据以字(16位)为单位累加到一个双字中,如果数据长度为奇数,最后一个字节将被扩展到字,累加的结果是...

计算ICMP,IP,UDP,TCP报头部分中的checksum

ICMP,IP,UDP,TCP报头部分都有checksum(检验和)字段。ICMP和IP报头校验和的计算都很简单,使用RFC1071中给出的方法即可完成(如下)。 //计算校验和USHORT chec...

IP/UDP/TCP/ICMP数据报协议的校验和的区别和计算

IP/UDP/TCP/ICMP数据报协议的校验和的区别和计算 1、现针对各种协议数据包校验的区别总结如下: (1)IP校验和: IP数据报的校验和只检验IP数据报的首部。 (2)UDP校验和: ...

IP/UDP/TCP/ICMP数据报协议的校验和的区别和计算

IP/UDP/TCP/ICMP数据报协议的校验和的区别和计算 1、现针对各种协议数据包校验的区别总结如下: (1)IP校验和: IP数据报的校验和只检验IP数据报的首部。 (2)UDP校验和: ...

TCP IP 协议详解 卷1--阅读笔记(原创)

TCP IP 协议详解 卷1--阅读笔记(原创) (TCP

IP头、TCP头、UDP头详解以及定义

IP数据包也叫IP报文分组,传输在ISO网络7层结构中的网络层,它由IP报文头和IP报文用户数据组成,IP报文头的长度一般在20到60个字节之间,而一个IP分组的最大长度则不能超过65535个字节。 下图为IP分组的报文头格式,报文头的前20个字节是固定的,后面的可变。 版

校验和的计算方法

校验和算法         首先,IP、ICMP、UDP和TCP报文头都有检验和字段,大小都是16bit,算法基本上也是一样的。     在发送数据时,为了计算数据包的检验和。应该按如下步骤:  ...

IP头、TCP头、UDP头详解以及定义

IP数据包也叫IP报文分组,传输在ISO网络7层结构中的网络层,它由IP报文头和IP报文用户数据组成,IP报文头的长度一般在20到60个字节之间,而一个IP分组的最大长度则不能超过65535个字节。 下图为IP分组的报文头格式,报文头的前20个字节是固定的,后面的可变。 版

IP/UDP/TCP/ICMP的校验和

在发送数据时,为了计算数IP据报的校验和。应该按如下步骤: (1) 把IP数据报的校验和字段置为0。 (2) 把首部看成以16位为单位的数字组成,依次进行二进制反码求和 (3) 把得到的结果存入...

IP头、TCP头、UDP头详解以及定义

IP数据包也叫IP报文分组,传输在ISO网络7层结构中的网络层,它由IP报文头和IP报文用户数据组成,IP报文头的长度一般在20到60个字节之间,而一个IP分组的最大长度则不能超过65535个字节。 下图为IP分组的报文头格式,报文头的前20个字节是固定的,后面的可变。 版
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)