先决条件–计算机网络中的错误检测
校验和是上层协议使用的错误检测方法, 被认为比LRC, VRC和CRC更可靠。这种方法利用校验和生成器在发送方和校验和检查器在接收方。
在发送方, 数据由校验和生成器分为n位长度的相等子单元。该位通常为16位长度。然后使用称赞方法将这些子单元加在一起。该和为n位。然后对得到的位进行补充。这个称为校验和的补充和被附加到原始数据单元的末尾, 然后被发送到接收器。
![错误检测代码–校验和是什么()](http://img.readke.com/220416/064340D44-0.png)
文章图片
接收器在接收到数据+校验和之后将其传递给校验和检查器。校验和校验器将此数据单元划分为多个等长的子单元, 并将所有这些子单元相加。这些子单元还包含校验和作为子单元之一。然后对结果位进行补码。如果补余结果为零, 则表示数据没有错误。如果结果不为零, 则意味着数据包含错误, 并且Receiver拒绝该错误。
示例–
如果要发送的数据单元是10101001 00111001, 则在发送方站点和接收方站点使用以下过程。
发件人网站:
10101001subunit 1
00111001subunit 2
11100010sum (using 1s complement)
00011101checksum (complement of sum)
传输到接收器的数据是–
![错误检测代码–校验和是什么()](http://img.readke.com/220416/064340K26-1.png)
文章图片
接收者网站:
10101001subunit 1
00111001subunit 2
00011101checksum
11111111sum
00000000sum's complementResult is zero, it means no error.
优势:
校验和检测所有涉及奇数位的错误以及涉及偶数位的错误。
坏处 :
主要问题是, 如果一个子单元的一个或多个位被损坏, 一个子单元的一个或多个对应位被损坏, 并且第二个子单元中一个或多个相反值的对应位也被损坏, 则错误不会被检测到。这是因为这些列的总和保持不变。
示例–
如果校验和同时传输的数据为10101001 00111001 00011101。但是目的端收到的数据是00101001 10111001 00011101。
接收者网站:
001010011st bit of subunit 1 is damaged
101110011st bit of subunit 2 is damaged
00011101checksum
11111111sum
00000000Ok 1's complement
【错误检测代码–校验和是什么()】尽管数据已损坏, 但未检测到错误。
推荐阅读
- C语言中的运算符|S1(算术运算符)
- Nodejs GM drawLine()函数用法介绍
- win7系统重装后没有声音的处理办法
- win7开机慢怎样办?win7开机慢的处理办法
- 如何激活win7?win7激活图文步骤
- windows7 激活工具怎样运用?
- win7 激活密钥有哪些?win7 激活密钥大全
- 在电脑上插U盘提示:无法运用readyboost技巧怎样办?
- win7电脑指纹识别怎样打开?