欄位填充演算法
『壹』 IP數據報首部長度為1110,選項和填充部分為多少位元組
選項欄位用來支持排錯、測量以及安全等措施,內容很豐富。此欄位的長度可變,從1個位元組到40個位元組不等,取決於所選擇的項目。填充部分用全0的填充欄位補齊成為4位元組的整數倍。
佔4位,可表示的最大十進制數值是15。請注意,這個欄位所表示數的單位是32位字長(1個32位字長是4位元組),因此,當IP的首部長度為1111時(即十進制的15),首部長度就達到60位元組。當IP分組的首部長度不是4位元組的整數倍時,必須利用最後的填充欄位加以填充。
因此數據部分永遠在4位元組的整數倍開始,這樣在實現IP協議時較為方便。首部長度限制為60位元組的缺點是有時可能不夠用。但這樣做是希望用戶盡量減少開銷。最常用的首部長度就是20位元組(即首部長度為0101),這時不使用任何選項。
(1)欄位填充演算法擴展閱讀
原理
IP數據報的首部通過檢驗和來保證其正確性。發送方將IP數據報的首部按順序分為多個16比特的小數據塊,首部檢驗和欄位的初始值設置為0,用1的補碼演算法對16比特的小數據塊進行求和,最後再對結果求補碼,便得到了首部檢驗和。
將經過計算得到的首部檢驗和填回到數據報的首部檢驗和欄位,封裝成幀後發給通往信宿的下一跳設備。下一跳設備作為接收方將收到的IP數據報的首部再分為多個16比特的小數據塊,用1的補碼演算法對16比特的小數據塊進行求和,最後再對結果求補碼,若得到的結果為0,就驗證了數據報首部的正確性。
發送方用1的補碼計算和數時,首部檢驗和欄位被設置為O,等於沒有參加計算,求補碼後的檢驗和與原檢驗和各位正好相反。接收方用1的補碼計算和數時,由於新的首部檢驗和欄位已經被加入,在首部未發生變化的情況下所得的和數應該為0xffff,因此,求補碼後的結果應該為0x0000。