IP首部檢驗和計算

2021-07-24 18:10:55 字數 850 閱讀 7269

計算ip首部檢驗和:

如上圖,計算????是多少?

計算:

從08 00之後開始計算到後面的08 00即(兩個位元組的相加)

45 00+00 20+d5 56+00 00+80 01+de b7+45 5d+c0 a8+00 dc

等於 3800f

然後溢位的再次加到後面即

800f+3

等於 8012

最後用ffff-8012

得出校驗和 7f ed

如上圖計算得檢驗和為59 b2

ping命令用的是icmp的0和8型別字段:

分別為

0 響應應答(echo-reply)

8 響應請求(echo-request)

校驗和計算函式:

ushort checksum(ushort *buffer, int

size)

if(size )

while(cksum >> 16)

cksum = (cksum >> 16) + (cksum & 0xffff);

return (ushort)(~cksum) ;

}

Ip 首部檢驗和字段

ip icmp igmp tcp udp等協議的校驗和演算法都是相同的,演算法如下 在傳送資料時,為了計算數ip據報的校驗和。應該按如下步驟 1 把ip資料報的首部都置為0,包括校驗和字段。2 把首部看成以16位為單位的數字組成,依次進行二進位制反碼求和。3 把得到的結果存入校驗和字段中。在接收資料...

ip首部校驗和計算

ip首部校驗和的計算方法 1.把校驗和字段清零。2.然後對每16位 2位元組 進行二進位制反碼求和,反碼求和的意思是先對每16位求和,再將得到的和轉為反碼。接下來詳細描述反碼求和的步驟 看下面的 演算法 short checksum ushort buffer,int size if size ck...

ip首部校驗和計算

ip首部校驗和的計算方法 1.把校驗和字段清零。2.然後對每16位 2位元組 進行二進位制反碼求和,反碼求和的意思是先對每16位求和,再將得到的和轉為反碼。接下來詳細描述反碼求和的步驟 看下面的 演算法 short checksum ushort buffer,int size if size ck...