CRC循环冗余检验算法

CRC算法是一种用于数据链路层的差错检测方法,通过添加冗余码确保数据传输的可靠性。它利用模2除法计算帧检验序列FCS,接收端通过相同过程判断数据是否有误。当余数为0时,数据无误;否则,数据存在差错并被丢弃。举例说明了如何计算FCS,以及CRC如何处理比特差错,但无法解决帧丢失等问题。
摘要由CSDN通过智能技术生成

1.为什么要有CRC循环冗余检验算法
数据在网络的传输过程中,都是以二进制数据传输,即不是0,就是1;数据传输过程中,因为各种可能的原因导致数据0变为1,1变为0。为了保证传输数据的可靠性,在计算机网络传输时,必须采用各种差错检测措施;
CRC是我们运用在数据链路层的差错检验算法;

2.CRC循环冗余检验算法的原理

举例说明如何得到帧检验序列FCS

  • 假设待传输的数据M=101001(k=6),CRC算法就是在数据M后添加供差错检测的n位冗余码,构成大小为(k+n)比特的数据帧发送出去;
  • 利用模2运算(加法时不进位,减法时不借位,即1+1 = 0,0-1 = 1),2^n乘M,相当于二进制数M左移n位,后面n位补0,得到(k+n)位数除以事先双方约定好的(n+1)位的除数P,得到的商Q和余数R(n位),我们将余数作为帧检验序列FCS;
  • 例如我们事先约定好P = 1101,则n = 3;则(6+3位)被除数为101001 000,除数p(6位)为1101,利用模2除法,可以得到商Q = 110101,余数(3位)R = 001,那么001即为M = 101001的帧检验序列FCS,即发送的数据为101001001

当我们收到一个数据帧时,如何利用CRC算法判断该数据有无传输

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值