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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM