比特级差错检测和纠正是对一个结点发送到另一个物理上连接的邻近结点的链路层帧中的比特损伤进行检测和纠正,它们通常是链路层提供的两种服务。在发送结点,为了保护比特免受差错,使用差错检测和纠正比特(EDC)来增强数据D。
通常,要保护的数据不仅包括从网络层传递下来需要通过链路传输的数据报,而且包括链路帧首部中的链路级的寻址信息、序号和其他字段。链路级帧中的 D 和 EDC 都被发送到接收结点。
在接收节点,接收到比特序列 D’和 EDC’。注意到因传输中的比特翻转所致,D’和 EDC’可能与初始的 D 和 EDC 不同。
差错检测和纠正技术使接收方有时但并不总是检测出已经出现的比特差错。即使采用差错检测比特,也还是可能有未检出比特差错。
即判定是否出错,以及一定程度上的对错误进行改正。
差错编码可分为检错码与纠错码。
①、检错码:
如果编码集的汉明距离(任意编码之间相差比特位的最小值)ds=r+1,则该差错编码可以检测r位的差错。例如,编码集{0000,0101,1010,1111}的汉明距离 ds=2,可以100%检测1比特差错。
这里是0000与0101相差2,与1010相差2,与1111相差4,以此类推,得到最小的相差值为2,所以当这四个四比特段中出现1比特的差错,可以找出。
②、纠错码:
如果编码集的汉明距离ds=2r+1