计算机网络(二十八):差错检查和纠正技术

在这里插入图片描述
比特级差错检测和纠正是对一个结点发送到另一个物理上连接的邻近结点的链路层帧中的比特损伤进行检测和纠正,它们通常是链路层提供的两种服务。在发送结点,为了保护比特免受差错,使用差错检测和纠正比特(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,则该差错码可以纠正r位的差错。例如,编码集{000000,010101,101010,111111}的汉明距离 ds=3,可以纠正 1 比特差错,如 100010 纠正为 101010。
这里是00000000与010101相差3,以此类推得到最小相差3,所以当这四个字节段中出现1比特的差错,可以纠正。

1、奇偶校验:

用来描述差错检测和纠正背后隐含的基本思想。最简单的方式就是用单个奇偶校验位。
在这里插入图片描述
在偶校验方案中,发送方只需要包含一个附加的而比特,选择它的值,使得这d+1个比特(初始信息加上一个校验比特)中1的总数是偶数。对于奇校验也是同理。简单地讲,如果字节中有奇数个1,则为1,否则为0(偶校验)
采用这种方式,接收方只需要数一数接收的d+1比特中1的数目即可。如果采用偶校验方案中发现了奇数个值为1的比特,接收方知道出现了奇数个比特差错。如果出现了偶数个值为1的比特,那么也是可能发生错误的。所以这种方法的奇偶校验检测能力为50%。对于奇校验方案也是同理。
单比特奇偶校验的一种二维一般化方案
在这里插入图片描述
使用这种二维奇偶校验方案,包含比特值改变的列和行的校验值都会将出现差错。因此接收方不仅可以检测到出现了单个比特差错的事实,还可以利用存在奇偶校验差错的列和行的索引来实际识别发生差错的比特并纠正。二维奇偶校验也能够检测(但不能纠正!)一个分组中两个比特差错的任何组合
简单地讲,就是针对每一行每一列的奇偶校验
接收方检测和纠正差错的能力被称为前向纠错(FEC),这些技术通常用于如音频CD这样的音频存储和回访设备中。它可以减少所需的发送方重发的次数;它允许在接收方立即纠正差错;FEC 避免了不得不等待的往返时延,而这些时延是发送方收到 NAK 分组并向接收方重传分组所需要的,这对于实时网络应用或者具有长传播时延的链路(如深空间链路)可能是一种非常重要的优点。

2、检验与方法:

通常更多地应用于运输层。
发送端,将数据(校验内容)划分成 16 比特的二进制“整数”序列并对其求和(最高位进位的 1 返回最低位继续加),最终的反码即为校验和,将它放入分组(UDP、TCP、IP)的校验和字段。
接收端,通过对接受的数据(包括检验和)的和取反码,并且检测其结果是否为全1比特来检测校验和。如果这些比特中有任何比特为0,就可以指示出差错。

3、循环冗余检测:

通常更多地应用在适配器中的链路层。.
循环冗余检测编码也称为多项式编码,因为该编码能够将要发送的比特串看作为系数是 0 和 1 的一个多项式,对比特串的操作被解释为多项式算术。
在这里插入图片描述
对于一个给定的数据段 D,发送方要选择r个附加比特 R,并将它们附加到 D 上,使得得到的 d+r 比特模式(被解释为一个二进制数)用模2算术恰好能被 G 整除(即没有余数)。
接收方用G去除接收到的d+r比特。如果余数为非零,接受方知道出现了差错,否则认为数据正确而被接收。即 R=余式[D·2^r/G]
在这里插入图片描述
以上图为例,给定的数据段D=101110,给定的G为1001,然后用G对D的每一位进行异或操作,直到没有余数。图中由于加入3比特后可以整除,所以r为3,得到的R=011。即r=G-1,是G的位数-1

猜你喜欢

转载自blog.csdn.net/qq_40851744/article/details/107095490