计算机网络之数据链路层:3、差错控制(奇偶校验、CRC冗余校验、海明校验)

思维导图:

在这里插入图片描述

什么是差错:

在这里插入图片描述

产生差错的原因主要是噪声;噪声分为全局性噪声和局部性噪声
差错分为俩类:位错和帧错
帧错分为三种:丢失、重复、失序

位错:

在这里插入图片描述

位错就是传输数时某一位或某几位二进制位发生错误;是从比特的角度来看的

位错之检错编码:奇偶校验码

在这里插入图片描述

奇偶校验码:就是在数据上添加一位校验位,以此来判断数据是否出错
但是奇偶校验码只能有奇数位错误时才能检验出来,所以检错能力只有50%
举个例子:
1110和1101都采用奇校验是无法查出错误的(出现了偶数位错误)(第一位为校验位),发送了1110,接收了1101,但是奇校验依旧成立。所以上图的答案是D。

位错之检错编码:循环冗余码

在这里插入图片描述在这里插入图片描述

就是用要发送的数据除以(模2除法)生成多项式得到一个帧检验序列,发送给接收方的就是数据+帧检验序列;接受方再用数据+帧检验序列 除以相同的生成多项式,若余数为0,则数据传输中未发生差错,反之,出现差错。

在这里插入图片描述

CRC校验并不能达到可靠传输
我们现在普遍认为:凡是接收端数据链路层接收的帧均无差错,但是这是一种不太准确的描述
准确的来说:我们都能以非常接近1的概率认为这些帧在传输过程中无差错

位错之纠错编码:海明校验码

在这里插入图片描述第一步: 确定校验码的位数r
在这里插入图片描述

根据海明不等式求出r的值

第二步: 确定校验码和数据的位置关系
在这里插入图片描述

把求出的校验位放到相应的位置上,这些位置一般都放在2的次幂位置上,即1,2,4,8,16…,当最后一位校验位超出校验位+数据位的长度时,直接补到最后一位上即可;

第三步: 求校验码的值
在这里插入图片描述

每一个校验位用二进制表示时都有一位为1,那么这个校验位校验的就这位为1的所有数据位;例如:p1的二进制表示为0001,那么他就会校验最后一位为1的数据,即:D1、D2、D4、D5 这几位。
知道了校验位可以校验的位之后令这几位与P1异或为0,就可以求出P1的值,例如:P1 异或D1异或D2异或D4异或D5 = 0,求P1 即可
然后分别求出P2P3P4

第四步: 检错和纠错
在这里插入图片描述

校验时,再次用校验位和其可以校验的位异或最终结果为0则无错,反之有错;例如:
上图中D2 出错后
P1 异或 D1 异或 D2 异或 D4 异或 D5 = 1
P2 异或 D1 异或 D3 异或 D4 异或 D6 = 0
P3 异或 D2 异或 D3 异或 D4 =1
P4 异或 D5 异或 D6 =0
所以在0101位出错,即第5位出错
然后纠正即可,1是错的改成0就是纠正了

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值