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