IP首部校驗和的演算法

2021-07-13 04:38:05 字數 631 閱讀 8150

ip/icmp/igmp/tcp/udp/等協議的校驗和演算法是相同的,採用的都是將資料流視為16位整數流進行重複的疊加計算。

計算校驗和的步驟:

(1)把校驗和字段置為0。

(2)對ip頭部的每16bit進行二進位制求和。

(3)如果和的高16位不位0,則將和的高16位和低16位反覆的相加,直到和的16位為0,從而獲得乙個16位的值。

(4)將該16位的值取反,存入校驗和字段。

例如:ip報頭

45  00       00  31

89  f5      00  00

6e  06      00   00      //校驗字段

de b7      45   5d     //源ip位址

c0 a8       00   dc    //目的ip位址

根據如上的ip報頭,可以求得校驗和為:

4500+0031+89f5+0000+6e06+0000+deb7+455d+c0a8+00dc = 322c4

由於計算的和為322c4的高16位不為0,所以將和的高16位和低16位進行反覆的相加,直到和的高16位位0為止。

0003+22c4 = 22c7然後將結果進行取反操作~22c7 = dd38則dd38為最終的校驗和。

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

IP首部校驗和字段計算方法

ip首部有16bit的校驗和,因此,ip首部以16bit為單位計算校驗和,ip首部的長度一定是16bit的整倍數,這是由於首部長欄位是以32bit為單位計算的,不足的補0。傳送方計算方法 1.首先把校驗和的16bit置0。2.將首部以16bit為單位異或 或模2加,結果相同 3.將異或結果取反,並填...