计算机网络中的错误检测
错误
接收方信息与发送方信息不匹配的情况。在传输过程中,数字信号会受到噪声的影响,这些噪声会在从发送器到接收器的二进制位中引入错误。这意味着 0 位可能会更改为 1,或者 1 位可能会更改为 0。
错误检测代码(在 OSI 模型的数据链路层或传输层实现)
每当传输消息时,它可能会被噪声扰乱或数据可能会损坏。为避免这种情况,我们使用错误检测代码,这些代码是添加到给定数字消息中的附加数据,以帮助我们检测消息传输过程中是否发生任何错误。
用于错误检测的基本方法是使用冗余位,其中添加了额外的位以促进错误检测。
一些流行的错误检测技术是:
1.简单的奇偶校验
2.二维奇偶校验
3.校验和
4.循环冗余校验
1.简单的奇偶校验
来自源的数据块经过校验位或奇偶校验位生成器形式,其中奇偶校验为:
- 如果块中包含奇数个 1,则将 1 添加到块中,并且
- 如果包含偶数个 1,则添加 0
该方案使 1 的总数为偶数,因此称为偶校验。
2.二维奇偶校验
为每一行计算奇偶校验位,相当于一个简单的奇偶校验位。还为所有列计算奇偶校验位,然后将两者与数据一起发送。在接收端,它们与根据接收数据计算的奇偶校验位进行比较。
3.校验和
- 在校验和错误检测方案中,数据被分成 k 段,每段 m 位。
- 在发送者端,使用 1 的补码算法将段相加以获得总和。对总和进行补充以获得校验和。
- 校验和段与数据段一起发送。
- 在接收端,使用 1 的补码算法将所有接收到的段相加以获得总和。总和得到补充。
- 如果结果为零,则接受接收到的数据;否则丢弃。
4.循环冗余校验(CRC)
- 与基于加法的校验和方案不同,CRC 基于二进制除法。
- 在 CRC 中,称为循环冗余校验位的冗余位序列被附加到数据单元的末尾,以便最终的数据单元可以被第二个预定二进制数完全整除。
- 在目的地,传入的数据单元除以相同的数字。如果在这一步没有余数,则假定数据单元是正确的并因此被接受。
- 剩余部分表示数据单元在传输过程中已损坏,因此必须拒绝。