摘要:通信工程師互聯網技術考試校驗和:采用16比特的校驗和是為了檢測ICMPV6報文在傳輸中或在路由器的存儲器中的數據是否出錯。ICMPV6報文的校驗和是補數和,即計算其二進制反碼,再將這些二進制反碼求其和所得到的就是補數和,也就是校驗和,長度為16位宇節。
4.6.1.1 校驗和
采用16比特的校驗和是為了檢測ICMPV6報文在傳輸中或在路由器的存儲器中的數據是否出錯。ICMPV6報文的校驗和是補數和,即計算其二進制反碼,再將這些二進制反碼求其和所得到的就是補數和,也就是校驗和,長度為16位宇節。
在發送ICMP報文之前,系統應計算校驗和并將結果置人此域中,系統首先從完整的1CMP報文開始。此時,暫且將校驗和置成“0”。報文為奇數字節時,應在其后人為地加上1字節的“0”。在計算校驗和時要用到這一字節,但它不包含在被傳送的報文中,然后,系統在報文的前面加上偽頭標(pseudoheader)。偽頭標由信源IP地址、信宿IP地址、凈荷長度、指示ICMP頭標類型的下一個頭標值(58)構成。圖4-27給出了加在ICMP報文之前的偽頭標。和在報文后填多余的“0”一樣,在傳送ICMP報文中也不包含此偽頭標。它只被用來計算校驗和,計算結束后就被拋棄掉。

在生成偽頭標時,發送方必須使用報文到達受信者時的信宿地址。當發信者要使用尋路頭標時,此值(指信宿地址)就會和報文中的最初的信宿地址不一樣。
系統收到ICMP數據報,以相同的方法進行確認。在ICMP之前加上偽頭標,必要時在末尾填其值為0的1字節,以16比特為單位計算1的補碼和。如其結果為FFFF,校驗正確。ICMP接受此報文;如果不是FFFF,校驗和無效,ICMP立即拋棄此報文,不再作任何
①偽頭標的作用
因在校驗和中加人了偽頭標故Icmp除能防止單純數據差錯之外,對數據報也具有保護作用。也就是說,在系統安裝的協議中保證接口的正常工作。例如。IP錯誤地將UDP報文送到1CMP中,因UDP和1CMP使用了相同的校驗和算法,對報文內容校驗不能防止此報文的誤發送。偽頭標也校驗IP下一個頭標值,該值對ICMP和UDP是不同的。結果。利用校驗就能保證IP將報文送往預定的上協議。也就是說由于UDP和ICMP中偽頭標的下個頭標值是不同的,即使報文相同,其校驗和也不一樣,如UDP報文錯誤地進人ICMP或ICMP報文錯誤地進人UDP,就會出現校驗和差處理。
編輯推薦
通信工程師備考資料免費領取
去領取
專注在線職業教育25年