循环冗余检验CRC(Cyclic Redundancy Check)

CRC(循环冗余检验)用于提高数据传输的可靠性,通过在数据后添加冗余码进行差错检测。原理上,CRC是通过模2除法计算得到的余数来检查传输错误,如果接收时余数非0则表明数据有误。文中还通过实例说明了如何计算CRC冗余码。
摘要由CSDN通过智能技术生成

CRC存在的意义

现实的通信链路都不会是理想的。这就是说,比特在传输的过程中可能会产生差错:1可能会变成0,0可能会变成1,这就叫做比特差错。在一段是时间内,传输错误的比特占所传输比特总数的比率成为误码率BER(Bit Error Rate)。误码率与信噪比有很大的关系,在实际通信中不可能使误码率下降到零。
因此,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。
目前在数据链路层广泛使用了循环冗余检测CRC的检测技术

CRC的原理

CRC的实质:CRC运算实际上就是在数据长为k的后面添加供差错检测用的n位冗余码,然后构成帧k+n位发送出去,接收方把接收到的数据以帧为单位进行CRC检验,即把收到的每一个帧都除以相同的除数p(模2运算),然后检查得到的余数R,其结果有两种:

  1. 如果在传输过程中没有差错,那么经过检验后得到余数R肯定是0。
  2. 非0,则丢弃

    概念解释

    1. 冗余码

    用二进制的模2运算进行2^n乘M的运算,这相当于在M后面添加n个0 ,得到的(k+n )位的数除于收发双方实现商定的长度为(n + 1)位的除数P,得出的商是Q而余数是R(n位),所求得的余数便称为冗余码,这种为了进行检错而添加的冗余码称为帧检验序列(FCS)

    1. 模2运算

    实际上是按位异或运算,即相同为0,相异为1,也就是不考虑进位、借位的二进制加减运算。如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值