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

CRC循环冗余校验

  • CRC差错检验的过程
    • 提要
    • 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位
CRC循环冗余校验(计算机网络)_第1张图片
 2.对待传数据进行模2运算,即在原数据后添加n个0
CRC循环冗余校验(计算机网络)_第2张图片
 3.用上一步得到的M’除以除数P,得到余数R,此过程书写上有些许复杂,详细如图

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

CRC循环冗余校验(计算机网络)_第3张图片
 4.将求得的余数R添加到被除数M’后,即可得到待发送的数据比特率啦
CRC循环冗余校验(计算机网络)_第4张图片

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

你可能感兴趣的:(计算机网络)