• 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
  • 相关阅读:
    python日志设置[logging]
    python异常处理
    python可迭代对象、迭代器、生成器
    python字典操作
    python列表和元组的操作
    python字符串操作
    python深拷贝和浅拷贝
    python时间和日期的处理
    ssh
    SSH安全外壳协议
  • 原文地址:https://www.cnblogs.com/zhengyazhao/p/13171827.html
Copyright © 2020-2023  润新知