第一百零六章:发现传输出错
复习
- 帧让接收方认出一段数据的边界。
TL;DR
- 校验机制帮助接收方发现传输中出现的错误。
- 校验和与 CRC 都是在帧中加入由内容计算得出的冗余信息。
正文
发送方可根据帧内容算出一个短的校验值,一并发送;接收方按同一规则再算一次。两者不同,就知道途中至少有内容被改变。最简单的奇偶校验只能发现部分错误;校验和更常用于软件协议;循环冗余校验(CRC)对连续比特错误尤其敏感,常见于链路层。
“发现”不等于“纠正”。收到错误帧的一方可以丢弃它,并由更低层或更高层的协议决定是否重传。我们已经让一根线可靠地传一段帧,接下来要让同一局域网里的许多设备分清彼此。
思考题
校验值相同能绝对证明内容没有被改动吗?
小结
- 校验为数据加入可复算的冗余。
- 它降低漏检概率,但通常不负责恢复正确内容。
思考题答案(仅供参考)
不能。不同内容理论上可能得到相同校验值,只是好的校验规则让这种碰撞很难发生。
协议
本文采用 CC BY-NC-SA 4.0 协议发布。