计算机网络原理----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)
- 把要发送的数据后面补上和校验码长度相同的0
- 要发送的数据和位串进行模2除法运算,位串是除数
- 算出余数即为校验码
- 用校验码替换掉第3步补的0 即为加密后的数据
例题
-
确定位串10111
-
用1001110111010000(后四个0是补位的)与10111做模2除法运算
-
算出来的余数1100替换掉第二步的后四个零,得1001110111011100,所以选A