【计算机网络】数据链路层--差错控制

   2023-09-09 09:38:40 50
核心提示:22计算机考研交流总QQ群:1032995316课程咨询微信号|容嬷嬷(csky-rmm)哈哈,大家好啊!你们的小燕子她带着满满的知识又来啦,大家准备好接受的洗礼了吗!话不多说,我们开始讲课吧。知识点讲解世界上没有十全十美的事情,当然我们的通信链路也是,在传输过程中可能会出现错误。问:为什么传输过程会出错?答:因为噪声。

22计算机考研交流总QQ群:1032995316

课程咨询微信号|容嬷嬷(csky-rmm)

哈哈,大家好啊!你们的小燕子她带着满满的知识又来啦,大家准备好接受的洗礼了吗!话不多说,我们开始讲课吧。

知识点讲解

世界上没有十全十美的事情,当然我们的通信链路也是,在传输过程中可能会出现错误。

问:为什么传输过程会出错?

答:因为噪声。一方面是由于线路本身电气特性所产生的随机噪声,这种噪声是信道固有的,通过提高提高噪声比来减少干扰(从传感器上改造);另一方面是外界因素造成的冲击噪声,通常我们会采用编码技术来解决,这也是我们本节课主要讨论研究的方向。

问:差错有哪些分类?

答:位错和帧错

问:编码技术(针对位错)有哪些分类?

答:检错编码和纠错编码。检错编码我们会讲到奇偶校验法和循环冗余(CRC)校验,纠错编码我们会讲到海明码。

差错编码:接收端发现信息错误时,将错误信息过滤,并通知发送方重发(简单来说就是只能发现错误)

纠错编码:接收端不仅能发现错误,而且能发现错误比特位置并纠正错误(简单来说就是可以发现错误并纠正错误)

检错编码->奇偶校验

奇校验:1位校验位 + n-1位数据 -> n位数中“1”的个数为奇数

偶校验:1位校验位 + n-1位数据 -> n位数中“1”的个数为偶数

奇偶校验的特点:只能发现奇数个错误,发现错误的概率为50%

比如数据110110,采用偶校验得到0110110

1位出错:0010110 -> “1”为奇数,检验出错误

2位出错:0000110 -> “1”为偶数,无法检验

3位出错:0001110 -> “1”为奇数,检验出错误

4位出错:0001010 -> “1”为偶数,无法检验

下面用个例子来加深理解:

字符S的ASCII码编码从低到高依次为1100101.采用奇校验在下述收到的传输后的字符中,错误不能被检验出来的是()

A. 11000011

B. 11001010

C. 11001100

D. 11010011

答案解析:D

奇校验,也就是数据位+校验位,“1”的个数为奇数,如果接收方收到的信息“1”的个数为偶数,则可以判断传输过程中信息出错。

题中数据位有7位,加上校验位一共8位,所以四个选项的长度均为8。

A、B、C中,“1”共有4个(偶数个),说明传输中出现了位错,D中“1”的个数为5(奇数个),可能没出错也可能有偶数个位出错,无法判断。

(这道题有个取巧的方式,就是除了D其他选项的“1”都为4,嘿嘿知道了吧)

检错编码->循环冗余CRC

按照小燕子的经验,循环冗余最重要的就是这个“余”。小燕子先用我们熟悉的十进制给大家举个例子:

CRC原理:

发送端通过原始数据计算出校验码,并把数据和校验码一起发送出去,接收方收到数据后,如果发现自己使用原始数据计算出来的校验码≠收到的校验码,则可以判断数据出错

CRC工作流程:

1. 发送端最终发送数据为:原始数据+FCS帧检验序列

2. FCS/冗余码为原始数据除以生成多项式的余数

3. 接收端收到数据后除以生成多项式,若余数为0,则接收的数据正确,反之则证明数据在传输过程中出现了错误

假如我们要发送的数据为1101 0110 11,生成多项式为 10011 ,那我们最终发送的数据为?

计算冗余码:

1. 在原始数据后加0 -> 生成多项式的阶为r,则加r个0(或多项式位数-1)

10011表示成多项式为:x+x+x,即 r=4。

要注意的是,如果题目中给你x+x+x,要转化为1x+0x+0x+1x+0x+1x,从而得出多项式100101。

2. 模2除 -> 小技巧:二进制里面的加减就是异或

综上,我们需要发送的数据为1101 0110 111110

注意:“可靠传输”是指发送端发什么,接收端就收什么,但CRC只能实现无比特差错传输,错误的数据会被丢弃,并没有实现可靠传输

检错编码->海明码

海明码原理:

牵一发而动全身,也就是一个比特错误,会对作用于它的校验码都产生影响

海明码特点:

发现双比特错误,纠正单比特错误

海明码工作流程:

确定校验码数 -> 确定校验码位置和数值 -> 检错并纠错

下面便通过一个例子1010给大家详细介绍海明码:

1)确定校验码数

n为原始数据位数,k为校验码位数,n和k需要满足:

2-1≥n+k (海明不等式)

现在n=4,满足不等式的最小k=3,所以1010(D1D2D­3D4)的校验码为P1P2P3,数据一共7位。

2)确定校验码位置和数值

校验位必须放在2的次方位置上:

P1-> 2的0次方

P2-> 2的1次方

P3-> 2的2次方

二进制:数据位的二进制。二进制长度由数据位的最高位决定,比如最高位为7(111),则二进制用3位表示,若最高位为10(1010),二进制位用4位表示。

数据位:原始数据+校验位的总位数

P1的二进制值为001,它作用的数据位的特点是:二进制值第一位为1的原始数据,如图所示:

P2的二进制值为010,它作用的数据位的特点是:二进制值第二位为1的原始数据,如图所示:

P3的二进制值为100,它作用的数据位的特点是:二进制值第三位为1的原始数据,如图所示:

通过异或为0求出校验位( “1”的个数为奇数异或为1,“1”的个数为偶数异或为0):

3)检错并纠错

上步我们求出了发送的海明码为1011010若我们在传输过程中第5位发生了错误,从1011010 变为了 1011110

按照刚才的方法,将所有要校验的位进行异或运算:

思维导图巩固

今天的课程就到此结束啦,大家都学会了吗?奉上今天的思维导图,好好消化哦!今天讲的内容都是计算,一定一定一定一定要亲手做一两道题!!!

习题巩固

对于10位要传输的数据,如果采用海明码校验,那么需要增加的冗余信息位数是()

A. 3

B. 4

C. 5

D. 6

答案解析:B

2-1≥n+k,n为数据位数10,求出最小的k=4。

交流群

▲ 22计算机考研交流总QQ群:1032995316

▲ 南航计算机/软件考研交流QQ群(有学校资料):1138098949

▲ 西南大学计算机/软件考研交流QQ群(有学校资料):1128814897

▲咨询:容嬷嬷微信(csky-rmm)

微信公众号:冯强计算机与软工考研

 
举报 0 收藏 0 打赏 0评论 0
标签: sdf

免责声明:本站部份内容系网友自发上传与转载,不代表本网赞同其观点。如涉及内容、版权等问题,请在30日内联系,我们将在第一时间删除内容!

在线
客服

在线客服服务时间:8:30-5:30

选择下列客服马上在线沟通:

客服
热线

微信
客服

微信客服
顶部