Fork me on GitHub

计算机网络原理----CRC编码相关问题及解题思路

CRC编码

  • CRC编码是指循环冗余码,英文名称为Cyclical Redundancy Check,简称CRC,是一种可以检查出多位错误的校验码。
  • 校验原理:在要发送的帧后边附加上二进制数,发送给接收端,接收端接到数据帧后根据特定的位串进行去余数操作,如果结果没有余数,说明正确,否则说明数据出现错误。
  • CRC编码的计算需要利用模2除法
  • 校验码的位数比位串的位数少一位

模2除法

如果被除数首位是1,则商1,否则商0,商0的时候,0*除数每个位都为0 ,商1的时候,把除数原封不动的写下来。然后,与计算出来的结果进行异或运算,00=1,11=1,01=0,10=0

位串的确定

一般题目都会给一个生成多项式,比如G(x)=x4+x2+x+1。位串的确定也很简单,如上式,1=x的0次方,x=x的一次方,x的二次方也有,x的三次方没有,x的四次方有,用二进制表示,x的三次方不存在,则补0,存在的位都为1,此时,位串就是10110。

CRC的编码过程

  1. 根据生成多项式确定位串,
  2. 根据位串确定校验码的位数(位串长度-1)
  3. 把要发送的数据后面补上和校验码长度相同的0
  4. 要发送的数据和位串进行模2除法运算,位串是除数
  5. 算出余数即为校验码
  6. 用校验码替换掉第3步补的0 即为加密后的数据

例题

  1. 确定位串10111

  2. 用1001110111010000(后四个0是补位的)与10111做模2除法运算

  3. 算出来的余数1100替换掉第二步的后四个零,得1001110111011100,所以选A

posted @ 2021-04-07 15:26  秋刀鱼de滋味  阅读(2031)  评论(1编辑  收藏  举报