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

相关文章推荐

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

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

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

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

ICMP校验和算法 说明

unsigned short cal_chksum(unsigned short *addr,int len) { int nleft=len; int sum=0; ...

IP和TCP包头校验和计算方法

校验和的算法:           将数据以字为单位累加到一个双字中,如果数据长度为奇数,最后一个字节要先变成字,然后在加到原来的双字中,最后得到的结果是一个双字,最后将这个双字的高16位和低1...

安全报文中的MAC计算方法

安全报文中的MAC计算方法 校验码(MAC)总是命令或命令响应数据域中最后一个数据元素。规定MAC的长度皆为4个字节。当命令的数据域中要求必须带MAC时,即命令安全报文传送,命令头中CL...
  • lonet
  • lonet
  • 2012-05-23 15:38
  • 5475

ip校验和及udp校验和的计算方法

一、ip校验和的计算:  计算方法:  1. ip包头(共20个字节)按照每16个bit作为一个值依次进行相加  2. 将计算结果的进位加到低16位上  3. 将结果取反  ip包头的内存内...

TCP/IP协议族——网际控制报文协议ICMP

一 引入目的 IP协议没有差错报告或差错纠正机制;IP协议还缺少主机和管理查询所需要的机制。ICMP是设计来弥补上述两个缺憾的。 备注:ICMP本身是一个网络层协议,但是ICMP报文首先要封装成I...

利用raw socket结合icmp报文获取本机外网ip

思:获取本地主机外网IP的方法有很多,更简单的办法也很多,这里只是提供一个可行的办法,顺便结合raw socket + icmp报文做个练习。程序已经在centos6.3上测试编译运行通过! #ifn...

TCP/IP 第6章 ICMP internet 控制报文协议

前面两章学习了两个链路层协议,ARP 和 RARP协议,其是将IP地址和链路层地址相对应的。 第6章 ICMP internet 控制报文协议 1、概述 ICMP经常被认为IP层的组成部分,它传...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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