
刘老师为您分享以下优质知识
二进制检验和的计算主要采用二进制反码求和法,具体步骤如下:
一、计算步骤
初始化校验和
将校验和字段置为0。
分组求和
- 将数据按16位分组(如IP首部)。
- 采用32位加法计算每组数据的二进制和,包括进位处理。
处理进位
- 将32位加法产生的最高位进位加到低16位。
取反得到校验和
将最终和取反(0变1,1变0)。
二、示例说明
以IP首部校验和为例:
假设首部数据为:`1100 1010 1011 1000`(按16位分组)。
分组后按32位加法计算:`1100 1010 + 1011 1000 = 11000 0110`(二进制)。
处理进位:`11000 0110`(32位)→ `0011 1000`(低16位)。
取反:`0011 1000` → `1100 0111`(校验和)。
三、注意事项
适用于网络协议(如IP)中的数据包校验,确保数据完整性。
若计算结果不为0,则校验失败,需丢弃数据包。