老郑的博客

木叶飞舞之处,火亦生生不息!

IP校验和计算方法

简介

  计算IP数据报的检验和方法:

1.把检验和字段置为0.
2.对首部中每个16bit进行二进制反码求和
3.结果存在检验和字段中

当收到一份IP数据报后,同样对首部中每个16bit进行二进制反码的求和。
由于接收方在计算过程中包含了发送方存在首部中的检验和,
因此如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1.
如果结果不不是全1,那么IP久丢弃收到的数据报,但是不生成差错报文,
由上层去发现丢失的数据报并进行重传

发送方例子

  IP检验和检查的是IP头部字段,所以先拿到IP首部的16进制码,以16bit为一组得到下面的数值.并且把校验和字段设置为0.


1.发送方1
    4510 0054 7e02 4000 4006 【0000】c0a8 031f c0a8 030e
    求和值为:2CAE9
    高位溢出为2,0002+CAE9=CAEB 转换为2进制为:1100101011101011
    反码为:11010100010100 转为十六进制:3514

接收方例子


    1接收方:  IP首部校验和主要是针对IP首部看成16bit为单位的数字组成
        ,依次进行二进制求和,然后得出反码
        0x4500 0x0040 0x40d2 0x4000 0x8006  0xD272 0xc0a8 0x0301 0x2762 0xfc5c
        求和为
        3FFFC
        高位溢出值为3
        FFFC+0x0003=FFFF,转换为2进制为:1111111111111111
        反码为:0
posted @ 2020-06-21 11:28  zyz1  阅读(3482)  评论(0编辑  收藏  举报