计算机网络下循环冗余检测(CRC)
来源:互联网 发布:韩顺平php视频教程 编辑:程序博客网 时间:2024/06/06 03:56
1 概念
CRC即循环冗余校验码(Cyclic Redundancy Check[1]):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。概念来自百度百科CRC校验
2 CRC校验的原理
在数据链路层传送的帧中,广泛使用了CRC检错技术。在面用实例进行原理的解释。
1) 设传送数据为M = 1010001101(共K位),在M后添加用于检错的n位冗余码。冗余码会增加传送开销,却可以进行差错检测。
2) 求n位的冗余码。用模2运算(加法运算不进位,减法运算不借位)进行2的n次方的运算,相当于在M后面添加n个0。然后用得到的(k+n)bit的数除以事先选定好的长度为(n+1)bit的数P,得到商为Q余数为R。
3) P的选择。一般用多项式表示CRC的过程,即用多项式的系数表示0或1,例如P(x) = X^5 + X^4 + X^2 + 1表示110101。于是接收端进行运算为:
P一般选为:
CRC-16 = X^16 + X^15 + X^2 + 1
CRC-CCITT = X^16 + X^12 + X^5 + 1
CRC-32 = X^32 + X^26 + X^22 + X^16 + X^12 + X^11 + X^10 + X^8 + X^7 + X^5 + X^4 + X^2 + X + 1
4) 示例运算。
3) 检测结果
经过接受端的运算后,只要得到余数R不为0,就检测到了差错,然后丢弃这个出现错误的帧。在使用CRC检测时只能做到无差错接受(凡是接受的帧(不包括丢弃的),我们都能以非常接近1的概率认为传输过程中没有差错)。要做到可靠传输,需加上确认和重传机制。
阅读全文
0 0
- 计算机网络下循环冗余检测(CRC)
- 计算机网络 CRC循环冗余校验码
- CRC 校验(循环冗余检测)
- CRC循环冗余检测码
- 数据链路层差错检测:CRC(循环冗余检验)
- 差错检测和循环冗余检验crc
- 循环冗余校验(CRC)
- 循环冗余校验(CRC)
- 循环冗余校验码(CRC)
- 循环冗余校验码(CRC)
- 循环冗余校验码(CRC)
- 循环冗余校验(CRC)
- CRC(循环冗余)算法
- CRC(循环冗余)校验
- CRC(循环冗余校验)
- 循环冗余校验码(CRC)
- 【计算机网络】循环冗余校验CRC算法原理&计算过程
- 循环冗余校验码(CRC)的基本原理
- hdu 1426 Sudoku Killer
- Oracle常用函数
- 用脚本批量部署软件
- UML总结
- bzoj 2876: [Noi2012]骑行川藏 二分+拉格朗日乘数法
- 计算机网络下循环冗余检测(CRC)
- oracle中LPAD和RPAD函数的用法
- java学习笔记(计算机基础知识)
- Java基础知识
- hdu 2082 找单词
- hdu5831
- 归并排序
- mysql中的inner join,left join,right join
- MySQL常用性能分析方法-profile,explain,索引