checksum校验
生活随笔
收集整理的這篇文章主要介紹了
checksum校验
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原理
??????? P/ICMP/IGMP/TCP/UDP等協議的校驗和算法都是相同的,采用的都是將數據流視為16位整數流進行重復疊加計算。為了計算檢驗和,首先把檢驗和字段置為0。然后,對有效數據范圍內中每個16位進行二進制反碼求和,結果存在檢驗和字段中,如果數據長度為奇數則補一字節0。當收到數據后,同樣對有效數據范圍中每個16位數進行二進制反碼的求和。由于接收方在計算過程中包含了發送方存在首部中的檢驗和,因此,如果首部在傳輸過程中沒有發生任何差錯,那么接收方計算的結果應該為全0或全1(具體看實現了,本質一樣; 校驗時可能返回~checksum) 。如果結果不是全0或全1,那么表示數據錯誤。
例子:
[cpp]?view plaincopy
編譯運行:
總結
以上是生活随笔為你收集整理的checksum校验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html禁止qq管家弹出广告,教你两招系
- 下一篇: 基于单片机的自动喂食仿真设计(#0051