差错检测和纠正技术
数据在传输的过程中难免会出现差错(比如经过路由转发时),因此我们需要一些差错检测和纠正技术来检测数据中的差错并纠正,使接收方收到正确的数据,也避免发送方对数据进行重传。
下图是差错检测和纠正的场景示意图。
??????
在发送结点为了保护数据中比特免受差错,使用差错检测和纠正比特(Error-Detection and-Correction,EDC)来增强数据D。通常需要受保护的数据不仅包括从网络层传递下来需要通过链路传输的数据报,而且包括链路帧首部中的链路级的寻址信息、序号和其他字段。
链路级帧中的D和EDC都被发送至接收结点。接收结点接收到比特序列D‘和EDC‘。因为在传输中,比特可能发生翻转所以导致D‘和EDC‘与初始的D和EDC不同。
在接收方这边,它的挑战是在仅知D‘和DEC‘的情况下,就判断D‘和初始的D是否一致。差错检测和纠正技术也使接收方检测出已经出现的比特差错,但也可能有未检出比特差错(undetected bit error),也就是说,接收方接收的信息中还会包含比特差错。所以我们要选择一个差错检测方案使这种事情发生的概率很小。一般而言,差错检测和纠正技术越复杂,开销也就越大。
下面介绍传输数据中检查差错的3种技术。奇偶校验(它用来描述差错检测和纠正背后隐含地基本思想)、检验和方法(通常更多地应用于应用层)和循环冗余检测(通常更多地应用于适配器中的链路层)。
奇偶校验
也许差错检测最简单的方式就是用单个奇偶校验位(parity bit)。在偶校验方