
公共使者为您分享以下优质知识
二进制检验和的计算方法主要分为发送端和接收端两步,核心步骤为二进制反码求和。以下是具体说明:
一、发送端计算步骤
将数据包的校验和字段置为0。
分组求和
- 将首部数据按16位分组(IP/UDP/TCP协议)。
- 采用32位加法进行二进制反码求和,包括进位处理:
- 从低位到高位逐列相加,每列结果取反后存入下一列。
- 最高位进位需加到最低16位。
存储校验和
将最终结果存入校验和字段。
二、接收端验证步骤
包含校验和求和
- 将首部数据按16位分组,包括校验和字段。
- 同样采用32位反码求和,保留进位。
结果校验
- 若最终结果全为1(反码表示),则校验和正确,数据包可继续处理。
- 否则,校验和错误,需丢弃该数据包。
三、关键要点
进位处理:
所有加法需使用32位进制,最高位进位必须加入最低16位。
反码操作:求和后对结果取反,而非先取反再求和。
适用协议:IP、ICMP、UDP、TCP等协议均采用此算法。
通过以上步骤,可确保数据传输的完整性。