CRC循环冗余校验(计算机网络)

CRC差错检验的过程

提要

 数据在链路层进行传输时,为了保证接收到的数据比特流是准确无误的,会采用CRC循环冗余校验的方式进行校验,CRC能够保证接收到的数据比特流是正确的,但CRC也并非可靠传输,这是因为CRC不能保证丢失、重复或失序等数据的传输。下面,让我们来了解一下CRC校验的具体过程吧!

本篇章,只讲对CRC校验的运算过程,不涉及原理,通俗易懂,请放心大胆食用~

CRC的具体过程

通过CRC进行差错检验,最重要的两个步骤,一是求循环冗余码,二是进行检验,这两个步骤的大致内容是相同的,所以在这里我们只拿求循环冗余校验码的过程做例子进行相关分析。

  • 大概流程如下,详细的过程结合后面的例题进行讨论。
  1. 通过生成多项式得到除数P,P的位数为n+1(n为生成多项式的最高次幂)
  2. 对待传送数据M进行模2运算,即在M后添加n个0,待传数据现在为M’
  3. 求冗余码:用M’除以P,得出余数R,R取n位
  4. 将得出的R添加在M’中最后n个0的位置
  5. 即可得出最终应传送的数据

注:此过程中的计算,均不产生进位,采用相同得0,相异得1的规则

例题详解

 问题:要发送的数据序列为101011,设约定的生成多项式P(x)=x^4+x+1,求最终要发送的数据比特流是什么?
 1.根据生成多项式求除数,先把多项式展开,然后依次找对应的x的系数,依次排列下来就所求的除数,除数位数为n+1位
在这里插入图片描述
 2.对待传数据进行模2运算,即在原数据后添加n个0
在这里插入图片描述
 3.用上一步得到的M’除以除数P,得到余数R,此过程书写上有些许复杂,详细如图

图片可能较为杂乱,请耐心观看哦,这一步很重要!

在这里插入图片描述
 4.将求得的余数R添加到被除数M’后,即可得到待发送的数据比特率啦
在这里插入图片描述

关于CRC差错检验的过程到这里就介绍完了,如果有什么疑问不明白的地方,欢迎在评论区留言讨论。
制作不易,如果觉得对你有帮助的话,请留下宝贵的点赞或收藏吧~你们的支持就是我最大的动力!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值