先决条件–计算机网络中的错误检测
校验和是上层协议使用的错误检测方法,并且被认为比LRC,VRC和CRC更可靠。此方法在发送方使用校验和生成器,在接收方使用校验和校验器。
在发送方,数据由校验和生成器分为n位长度的相等子单元。该位通常为16位长度。然后使用一个称赞方法将这些子单元加在一起。该和为n位。然后对得到的位进行补充。这个称为校验和的补充和被附加到原始数据单元的末尾,然后被发送到接收器。
接收器在接收到数据+校验和之后,将其传递给校验和检查器。校验和检查器将此数据单元划分为多个等长的子单元,并将所有这些子单元相加。这些子单元还包含校验和作为子单元之一。然后对结果位进行补码。如果补余结果为零,则表示数据没有错误。如果结果不为零,则意味着数据包含错误,并且Receiver拒绝该错误。例子 –
如果要发送的数据单元是10101001 00111001,则在发送方站点和接收方站点使用以下过程。
发件人网站:
10101001 subunit 1
00111001 subunit 2
11100010 sum (using 1s complement)
00011101 checksum (complement of sum)
传输到接收器的数据是–
接收者网站:
10101001 subunit 1
00111001 subunit 2
00011101 checksum
11111111 sum
00000000 sum's complement
Result is zero, it means no error.
优势 :
校验和检测所有涉及奇数位的错误以及涉及偶数位的错误。
坏处 :
主要问题是,如果子单元的一个或多个位被损坏,并且子单元的一个或多个对应位被损坏,并且第二子单元中一个或多个相反值的对应位也被损坏,则错误不会被检测到。这是因为这些列的总和保持不变。例子 –
如果与校验和一起发送的数据是10101001 0011100100011101。但是在目的地接收的数据是0 0101001 1 0111001 00011101。
接收者网站:
00101001 1st bit of subunit 1 is damaged
10111001 1st bit of subunit 2 is damaged
00011101 checksum
11111111 sum
00000000 Ok 1's complement
尽管数据已损坏,但未检测到错误。