差错控制

/ Magic清风 / 0阅读 / 0评论/ 分类: 软考网络规划

在数据的传输中,难免会出现错误
因此需要引入差错控制方法,来降低错误,或纠正错误,数据通信中常用的办法就是检错纠错

检错

接收方知道差错发生
但是不知道是怎样的差错
向发送方请求重传

纠错

接收方知道有差错发生
而且知道是怎么样的差错

差错控制原理

差错控制有多重算法和实现方式
但其本质上原理都离不开:
传输k位,加入r位冗余,接收方收到进行计算比较其中r位是由某种差错控制算法定义

奇偶校验

奇偶校验是最常用的检错方法
奇偶校验分为奇校验偶校验
原理是在7位ASCII码后增加一位

奇校验

整个校验码
有效信息位和校验位中1的个数为奇数
比如1011010,这串二进制码中,的1位数目前是4,按照奇校验的算法,会在末尾加个1,使其整体数据中1的位数为奇数1011010[1]

偶校验

整个校验码
有效信息位和校验位中的1的个数为偶数
比如1011010,这串二进制码中,的1位数目前是4,已经是偶数,校验位补 0,整体就是10110100

CRC循环冗余校验码

CRC循环冗余校验码
只能够检错,不能纠错
目前应用最广泛的检错技术,常用在网络通讯,磁盘存储等
根据例题来讲解CRC

例题1

计算CRC循环冗余校验码,主要有4个步骤,需要重点记忆
判断校验位数补齐数据位后面的0提取生成多项式的系数用第二步的结果,除以第三步的结果,进行异或运算
相除得到的余数就是CRC校验码
余数不够,则前面补0

判断校验位数

生成多项式的最高次方是多少
校验位就是该值
比如上图的X4次方,
那么计算时的参数,校验位就是4位

补齐数据位后面的0

信息码字后面,补齐校验位个0
比如校验位有4位,就补4个0

提取生成多项式

将原本的多项式,进行提取拆分

异或运算

就如上题
第二步我们补齐0后,得到的结果是10111 0000
第三部我们提取多项式后,得到结果10011
异或运算(相同为0,不同为1),用101110000除以10011
取得的余数就是结果,如果余数不够(必须是校验位的个数),在前面补0

例题

例题1

例题2

答案

例题3

文章作者:Magic清风

文章链接:https://skylan.cc/archives/1778553054276

版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!


评论