计算机网络--Ch3.数据链路层(二)

494 阅读6分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的27天,点击查看活动详情

三.差错控制(检错编码)

1.差错从何而来?

概括来说,传输中的差错都是由于噪声引起的.

全局性 1.由于线路本身电气特性所产生的随机噪声(热噪声),是信道 固有的,随机存在的. 解决办法:提高信噪比来减少或避免干扰

局部性 2.外界特定的短暂原因所造成的冲击噪声,是产生差错的主要 原因 解决办法:通常利用编码技术来解决

image-20220923112007005

2.数据链路层的差错控制

image-20220923112124380

冗余编码: 简单来说,就是在发送数据时侯,我们不仅要发送原始数据,同时还要在数据后面附加上几位比特,这几位比特就是冗余码,作用就是和原来的数据构成某种规则,把这个组合发出去,接收方按照和发送方共识的规则来检查是不是有问题.

3.奇偶检验码

image-20220923112750602

image-20220923112859451

4.CRC循环冗余码

image-20220923113254348

image-20220923131543826

TIPS:多项式N位,阶为N-1。

image-20220923131707315

在数据链路层仅仅使用循环冗余检验CC差错检测技术,只能做到对帧的无差错接收,即“凡是接收端数据链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。接收端丢弃的帧虽然曾收到了,但是最终还是因为有差错被丢弃。“凡是接收端数据链路层接收的帧均无差错”。

四.差错控制(纠错编码)

1.海明码

image-20220924201503929

1.1海明距离

两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距) ,一个有效编码集中,任 意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)

image-20220924201703070

2.步骤

2.1确定校验码位数r

image-20220924203541190

2.2确定校验码和数据的位置

image-20220924204027483

2.3求出校验码的值

image-20220924204056496

2.4.检错并纠错

image-20220924204230004

image-20220924204210810

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.11000011

B.11001010

C.11001100

D.11010011

既然采用奇校验,那么传输的数据中1的个数若是偶数个则可检测出错误,若1的个数是奇数个,则检测不出错误,因此选D。

5.为了纠正2比特的错误,编码的海明距应该为(D)。

A.2

B.3

C.4

D.5

海明码“纠错”d位,需要码距为2d+1的编码方案;“检错”d位,则只需码距为d+1。

6.对于10位要传输的数据,如果采用汉明校验码,那么露要增加的冗余信息位数是(B)。

A.3

B.4

C.5

D.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.11010110111010

B.11010110110110

C.11010110111110

D.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:

IMG_20221009_142547

所得余数为0,因此该二进制比特序列在传输过程中未出现差错。发送数据的比特序列是1011001,CRC检验码的比特序列是1010。

注意: CRC检验码的位数等于生成多项式G(x)的最高次数