差错控制
在数据的传输中,难免会出现错误
因此需要引入差错控制方法,来降低错误,或纠正错误,数据通信中常用的办法就是检错、纠错
检错
接收方知道差错发生
但是不知道是怎样的差错
向发送方请求重传
纠错
接收方知道有差错发生
而且知道是怎么样的差错
差错控制原理
差错控制有多重算法和实现方式
但其本质上原理都离不开:
传输k位,加入r位冗余,接收方收到进行计算比较其中r位是由某种差错控制算法定义
奇偶校验
奇偶校验是最常用的检错方法
奇偶校验分为奇校验和偶校验
原理是在7位ASCII码后增加一位
奇校验
整个校验码
有效信息位和校验位中1的个数为奇数
比如1011010,这串二进制码中,的1位数目前是4,按照奇校验的算法,会在末尾加个1,使其整体数据中1的位数为奇数1011010[1]
偶校验
整个校验码
有效信息位和校验位中的1的个数为偶数
比如1011010,这串二进制码中,的1位数目前是4,已经是偶数,校验位补 0,整体就是10110100
CRC循环冗余校验码
CRC循环冗余校验码
只能够检错,不能纠错
目前应用最广泛的检错技术,常用在网络通讯,磁盘存储等
根据例题来讲解CRC

计算CRC循环冗余校验码,主要有4个步骤,需要重点记忆
判断校验位数、补齐数据位后面的0、提取生成多项式的系数、用第二步的结果,除以第三步的结果,进行异或运算
相除得到的余数就是CRC校验码
余数不够,则前面补0
判断校验位数
生成多项式的最高次方是多少
校验位就是该值
比如上图的X4次方,
那么计算时的参数,校验位就是4位
补齐数据位后面的0
信息码字后面,补齐校验位个0
比如校验位有4位,就补4个0
提取生成多项式

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




文章作者:Magic清风
文章链接:https://skylan.cc/archives/1778553054276
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!
评论