数据链路层-差错控制(循环冗余码 CRC)

本文介绍了循环冗余码(CRC)在数据链路层的差错控制应用。通过建立二进制位串与多项式的一一对应,使用模2运算和预先商定的生成多项式G(X),确保信息位与冗余位构成的码字能被G(X)整除。CRC校验在接收端进行,如果码字不能被G(X)整除,则表明传输有误。此外,还提及了CRC的一些性质和与其他差错控制方式的对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.循环冗余码(CRC)

  • 将任何一个由二进制位串组成的代码,与一个只含有 0 和 1 两个系数的多项式建立一一对应关系。
  • 多项式的算数运算采用 代数域理论的规则,以 2 为模来完成,即加法没有进位,减法没有借位,模2加法和模2减法都等同于异或

CRC 的基本思想:发送方和接受方先商定一个生成多项式 G(X),发送方编码和接受方校验都是利用预先商定的生成多项式来得到。假设 G(X) 的阶为 r,发送方要发送的信息位为 k位,CRC 的基本思想是在信息位的尾部追加一个 r位的冗余位,使得信息位与冗余位构成的码字所对应的多项式能够被 G(X)除尽。当接收方收到码字后,用其除以 G(X),如果有余数则表明传输过程中有错误

CRC 的步骤

  1. 确定生成多项式 G(X)、信息位对应的多项式 K(X)、冗余位的位数 r(CRC中r等于 G(X) 的阶)
  2. 在信息位的后面加上 r 个 0,对应的多项式的 X^rK(X)
  3. 用 X^rK(X) 除以 G(X) 得到的余式就是冗余位对应的多项式 R(X)
  • 这里的除法就是多项式的模2除法,模 2除法中用到的减法是模 2减法
  1. 得到信道上发送的码字多项式 T(X)=X^rK(X)+R(X)
  2. 校验。若传输过程无差错,则接受方收到的码字多项式能被 G(X) 整除;若不能被 G(X) 整除,则说明传输过程中产生了差错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值