三.差错控制(检错编码)
1.差错从何而来?
概括来说,传输中的差错都是由于噪声引起的.
全局性 1.由于线路本身电气特性所产生的随机噪声(热噪声),是信道 固有的,随机存在的. 解决办法:提高信噪比来减少或避免干扰
局部性 2.外界特定的短暂原因所造成的冲击噪声,是产生差错的主要 原因 解决办法:通常利用编码技术来解决
2.数据链路层的差错控制
冗余编码:简单来说,就是在发送数据时侯,我们不仅要发送原始数据,同时还要在数据后面附加上几位比特,这几位比特就是冗余码,作用就是和原来的数据构成某种规则,把这个组合发出去,接收方按照和发送方共识的规则来检查是不是有问题.
3.奇偶检验码
4.CRC循环冗余码
TIPS:多项式N位,阶为N-1。
在数据链路层仅仅使用循环冗余检验CC差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃。“凡是接收端数据链路层接收的帧均无差错”。
四.差错控制(纠错编码)
1.海明码
1.1海明距离
两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距),一个有效编码集中,任 意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)。
2.步骤
2.1确定校验码位数r
2.2确定校验码和数据的位置
2.3求出校验码的值
2.4.检错并纠错
Summary:
习题:
选择
1.通过提高信噪比可以减弱其影响的差错是(A)。A.随机差错B.突发差错C.数据丢失差错D.千扰差错
一般来说,数据的传输差错是由噪声引起的。通信信道的噪声可以分为两类:热噪声和冲击噪声。热噪声一般是信道固有的,引起的差错是随机差错,可以通过提高信噪比来降低它对数据传输的影响。冲击噪声一般是由外界电磁干扰引起的,引起的差错是突发差错,它是引起传输差错的主要原因,无法通过提高信噪比来避免。
2.下列有关数据链路层差错控制的叙述中,错误的是(A)A.数据链路层只能提供差错检测,而不提供对差错的纠正B.奇偶校验码只能检测出错误而无法对其进行修正,也无法检测出双位错误C.CRC校验码可以检测出所有的单比特错误D.海明码可以纠正一位差错
链路层的差错控制有两种基本策略:检错编码和纠错编码。常见的纠错码有海明码,它可以纠正一位差错。
3.下列属于奇偶校验码特征的是(A)。A.只能检查出奇数个比特错误B.能查出长度任意一个比特的错误C.比CRC检验可靠D.可以检查偶数个比特的错误
奇偶校验的原理是通过增加冗余位来使得码字中“1”的个数保持为奇数或偶数的编码方法,它只能发现奇数个比特的错误。
4.字符S的ASCII编码从低到高依次为1100101,采用奇校验,在下述收到的传输后字符中,错误(D)不能检测。A.11000011B.11001010C.11001100D.11010011
既然采用奇校验,那么传输的数据中1的个数若是偶数个则可检测出错误,若1的个数是奇数个,则检测不出错误,因此选D。
5.为了纠正2比特的错误,编码的海明距应该为(D)。A.2B.·3C.4D.5
海明码“纠错”d位,需要码距为2d+1的编码方案;“检错”d位,则只需码距为d+1。
6.对于10位要传输的数据,如果采用汉明校验码,那么露要增加的冗余信息位数是(B)。A.3B.4C.5D.6
在k比特信息位上附加r比特冗余信息,构成k+r比特的码字,必须满足2^r≥k+r+1。如果k的取值小于等于11且大于4,那么r=4。
7.下列关于循环冗余校验的说法中,(B)是错误的.A.带个校验位的多项式编码可以检测到所有长度小于等于r的突发性错误B.通信双方可以无须商定就直接使用多项式编码C.CRC校验可以使用硬件来完成D.有一些特殊的多项式,因为其有很好的特性,而成了国际标准
在使用多项式编码时,发送端和接收端必须预先商定一个生成多项式。发送端按照模2除法,得到校验码,在发送数据时把该校验码加在数据后面。接收端收到数据后,也需要根据该生成多项式来验证数据的正确性。
8.要发送的数据是1101011011,采用CRC校验,生成多项式是10011,那么最终发送的数据应是()。A.11010110111010B.11010110110110C.11010110111110D.11110011011100
假设一个帧有m位,其对应的多项式为Gx),则计算冗余码的步骤如下:
①加0。假设G(x)的阶为r,在帧的低位端加上r个0。
②模2除。利用模2除法,用G(x)对应的数据串去除①中计算出的数据串,得到的余数即为冗余码(共”位,前面 的0不可省略)。
多项式以2为模运算。按照模2运算规则,加法不进位,减法不借位,它刚好是异或操作。乘除法类似于二进制运算,只是在做加减法时按模2规则进行。根据以上算法计算可得答案选C。
简答
1.在数据传输过程中,若接收方收到的二进制比特序列为10110011010,接收双方采用的生成多项式为G(x)=x+x+1,则该二进制比特序列在传输中是否出错?如果未出现差错,那么发送数据的比特序列和CRC检验码的比特序列分别是什么?
根据题意,生成多项式Gx)对应的二进制比特序列为11001。进行如下的二进制模2除法,被除数为10110011010,除数为11001:
网络异常,图片无法展示|所得余数为0,因此该二进制比特序列在传输过程中未出现差错。发送数据的比特序列是1011001,CRC检验码的比特序列是1010。
注意:CRC检验码的位数等于生成多项式G(x)的最高次数,