数据链路层:CRC循环冗余检测实例

CRC循环冗余检测

目的:接收端通过检测码检测收到的的数据是否有差错,如果有差错,丢弃帧,没有差错,接受帧。

一、例:发送一个数据为1101011011,采用CRC生成多项***式P(X)=x^4+x+1。试求应添加在数据后的余数。

解释:
发送的帧=数据位M(X)+冗余位R(X)

本例子中:

1.数据位为:1101011011
2.冗余位为: R(X)余数位,为检测序列。

余数的位数 = 选取的除数(CRC生产多项式)的最高次数,此例为4
余数R (X)通过: X^rM(X)(数据位+被除数最高次的0的个数)/G(X)( crc 生成多项式)=Q(X)商+R(X)余数* 计算

① X^r:这里的X取2,因为为2进制数据,整体含义为,M(X)/G(X)用 :模2除法
模二除法与普通除法

在这里插入图片描述

普通除法:
1.需要比较除数与被除数相关位数大小。 被除数前3位101与除数110比较。
2.管第二位的0位向第一位1借了1,第1位要减了1变成0
模2除法:
1.不需要比较除数与被除数相关位数大小。 被除数前3位101与除数110不需要比较。只要被除数首位是1就可以。
2. 第二位的0位向第一位1借了1,第1位要不用减1,还是1。1-0为1,0-1为1,1-1=0,0-0=0

G(X)除数:
为CRC生成多项式P(X)=x^4+x+1,1为x的0次,当底数为x 时,对应次数+1位为1,否则为0。
例如; x ^4的底数为x,所以为1,次数为4,所以把1放在第五位。
原式=10011

④此例中生成多项式最高次数为4,所以余数位保留四位

此题目中:
X^r*M(X)/G(X)=Q(X)商+R(X)余数
除数数据位1101011011,
摸二除以被除数CRC循环多项式转换的二进制数字10011=1100001010+1110,
CRC多项式最高次为4,
余数保留4位1110
在这里插入图片描述

3. 发送的帧=数据位M(X)+冗余位R(X)=1101011011+1110=11010110111110

二、数据在传输过程中最后一个1变成了0,问接收端能否发现?

接受端收到数据加上已算出余数构成帧,通过模二除以检测码( crc 多项式对应式子)检测。
如果最后算出余数为0,收到数据为发送数据
如果余数不是0,收到数据不是发送的数据

1.数据在传输过程中最后一个1变成0为:1101011010
2.接受数据+检测码(余数):1101011010+1110
3.用步骤2除以除数,P(X)=x^4+x+1,10011
在这里插入图片描述
4.余数为0011,不为0.,可以检测出不是原数据,所以丢弃收到的帧

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值