检错与纠错
  kW9cjOZKgg8W 2023年11月13日 15 0

数据传输中需要通过差错控制方法,尽量避免出现传输错误,常用的方法时检错和纠错。
接收方知道有差错发生,但不知道时怎样的差错,向发送方请求重传,称为检错。
接收方知道有差错发生,且知道时什么样的差错,成为纠错。
差错控制原理:传输K位,加入R位冗余,接收方收到后进行计算比较。

1、奇偶校验
最常用的检错方法,能检出一位错误。
在7位ASCII码后增加一位,使码字中的1的个数成奇数或偶数。
奇数校验:有效信息位和校验位中“1”的个数为奇数,如:1011111(1)
偶数校验:有效信息位和校验位中“1”的个数为偶数,如:1011111(0)

2、CRC编码
广泛用于无线通信中 , 因为无线线路比有线线路噪声更多 、 更容易 出错, 有线线路上的错误率非常低,所以对于偶然的错误,利用错误检测和重传机制更有效 。 数据链路层广泛使用循环冗余校验码 (Cyclical Redundancy Check, CRC ) 进行错误检测 ,又称为多项 式编码。
基本思想:
使用 CRC 编码,需要先商定一个生成多项式 (Generator PolynomiaI) G(x)。 生成多项式的最高位和最低位必须是1 。假设原始信息有m位,则对应多项式 M(x)。生成校验码思想就是在原始信息位后追加若干校验位,使得追加的信息能被G (x)整除 。 接收方接收到带校验位的信息,然后用 G(x)整除 。 余数为 0,则没有错误;反之则发生错误。
步骤:
(1)判断校验位数,生成多项式的最高次方是几,校验位就是几位
(2)补齐数据位后面的0
(3)提取生产多项式的系数
(4)用第二步的结果,除以第三步的结果(异或运算)

3、海明码
海明码是一种多重奇偶检错系统,具有检错和纠错的功能。海明码中的全部传输码字是由原来的信息和附加的奇偶校验位组成的,每一个奇偶校验位和信息位被编在传输码字的特定位置上。这种系统组合方式能找出错误出现的位置,无论是原有信息位还是附加校验位。
设海明码校验位为 k, 信息位为 m, 则它们之间的关系应满足 m+k+ 1≤ 2的k次方。

检错重发ARQ (Automatic Repeat ReQuest)
1、停发等待重发(停等ARQ):发送端向接收端发送一个码组,接收端收到后经检测未发现传输错误,则发送一个确认信号(ACK)给发送端,发送端收到(ACK)信号后继续发送下一个码组;如果接收端检测出错误,则发送一个否认信号(NAK),发送端收到(NAK)信号后,重发前一个码组,并再次等待(ACK)或(NAK)信号。这种方法效率不高,但工作方式简单。
2、返回重发(后退N帧ARQ):发送端不停顿地发送码组,不再等待ACK信号,一旦接收端发现错误就发回NAK信号,则发送端开始重发检测出错误的码组及该错误码组之后的码组。
3、选择重发(选择重发ARQ):发送端连续不停发送码组,接收端发现错误发回NAK信号,发送端只重发有错误的那组。传输效率最高,但控制最复杂,卫星通信最常用这种方式。

TCP的流量控制机制是可变大小的滑动窗口协议,由接收方在窗口字段中指明接收缓冲区的大小。发送方发送规定的字节数后等待接收方的下一次请求。固定大小的滑动窗口协议用在数据链路层的HDLC中。可变大小的滑动窗口协议可以应付长距离通信过程中线路延迟不确定的情况,而固定大小的滑动窗口协议适合链路两端点之间通信延迟固定的情况。



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: 10个重要的Linux ps命令实战 下一篇: java tips
  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  kW9cjOZKgg8W   2023年11月13日   16   0   0 重发检错多项式