UDP協議的僞首部既不向上傳輸也不向下傳輸爲什麼我們還要計算它?
答:UDP的校驗和需要計算UDP首部加數據荷載部分,也需要加上UDP僞首部,既如圖所示:
源IP地址,目的IP地址,UDP長度,再加上被補充了1字節全零的協議類型(即第三字段和第四字段)構成了一個長度爲12字節的僞首部
在圖中可以看出在計算校驗和時,校驗和的那部分也被包含其中。在計算時校驗和的部分被置0方可計算。
UDP校驗和的計算方法:(按圖二進行計算)
1.將校驗和字段置零。
2.把所有比特位按16-bit(2字節)一組進行劃分。
3.把2中劃分好的組進行向加,如果遇到進位,將進位值加到值的最低位上。舉例:(用16進製表示)
0xBB5E+0xFCED = 0x1 B84B, 可以看出在這個例子中結果有進位,所以將進位值1加到值的最低位上,得到結果是0xB84C
4.把所有的組相加到一起後,得到的結果是一個16位的數,將這個結果取反後則得到了校驗碼。