計算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...