差错检测和纠错技术

在网络传输中,由于噪音和信号衰减等,经常会在链路中发生比特翻转、丢失等·。为此在信息接收方常常需要对接收到的信息进行检错和纠错。常用的几种检错和纠错方法有

奇偶校验,校验和,循环冗余编码等。

1、奇偶校验

利用在信息后面附加一个奇偶校验位来进行校验


事先通信双方约定是采用奇校验还是偶校验,假设采用偶校验,则发送方在信息后面附加一位使所有信息(包括校验位)中一共有偶数个1,在接收方检验信息中1的个数,若为奇数个则判定出错。

优点:编码简单,方便

缺点:只能检错不能纠错,当发生偶数个错误时,不能检测出

为此,发展出二维奇偶校验


将要发送的d位数组成i行j列的二维矩阵,并使用i+j+1个校验位编码。

对于单个比特错误二维奇偶校验不仅能够检测出而且能够纠正,对于校验码本身的错误也能纠正,而且对于分组中两个比特错误的任何组合都能够检测出但不能纠正。

2、校验和

校验和是将分组中所有位每16位为一组,求和,将求和的结果取反码即得到校验码


对于求和溢出的情况,将溢出的那一位与最后一位相加。

接收方收到信息后将所有数据16位为一组相加(包括校验位)如果最终结果不是全1,则判断出错。

校验和相对开销较CRC小,只需要16位。

3、循环冗余编码CRC

循环冗余编码也称多项式编码


通信双方约定一个r+1比特的生成多项式G,发送方在d比特数据后附加r比特CRC码,使这d+r多项式可以整除G。接收方用G去除接收到的d+r如果余数不为0则判断出错。

其中  R=(D*2^r)/G的余数


校验和通常在运输层中应用而CRC通常用在链路层,主要因为运输层通常在用户主机中作为操作系统的一部分实现,所以使用相对简单和快速的校验和,而链路层差错检测在适配器中用专业硬件实现,能够快速处理复杂多CRC操作。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值