错误探查三种方式:Checksum(检验和)、Cyclic Redundancy Codes(循环冗余CRC)、Message Authentication Codes(消息身份验证MAC)
大家可以首先做下这个课程中的quiz,如果你的答案跟图中是一致的,说明可能你真的是理解了,如果有一点不一致,说明你对某种错误探查方式有盲点,那么你可以好好看一下这篇文章:
Checksum(校验和):
应用举例:
TCP、IP、UDP使用反码算法计算校验和。传输层、网络层。
IP Checksum实现方式:
首先将校验和位置零,将packet中所有的16-bits以16进制相加,每当要进位时(大于65535),则-65536+1,即进位到最后一位。所有bit加完之后将结果取反作为校验和。这意味着如果把整个包包含校验位的所有bit相加将得到0xffff。
存在一个边界情况,当不包含校验和的所有位相加为0xffff时,不进行取反,因为0代表没有校验位。
优缺点:
非常快