CRC校验
来源:互联网 发布:程序员考核表 编辑:程序博客网 时间:2024/06/05 11:14
差错控制
传输过程中可能会产生比特差错:1可能会变成0而0也可能变成1
为了保证数据传输的可靠性,在计算机网路输数据时,必须采用各种差错检测措施
循环冗余检验CRC
在数据链路层传送的帧中,广泛使用了循环冗余检验CRC技术
在发送端,先把数据划分成组,假设每组k个比特,假设待传送的一组数据M=101001(现在k=6)。我们在M的后面再添加差错检测用的冗余码一起发送
冗余码的计算
用二进制的模2运算进行2^N乘M的运算,这相当于在M的后面添加n个0。
得到的(k+n)位的数除以事先选定好的长度(n+1)位的除数P得到的商是Q而余数是R,余数R比除数少一位,即余数是n位
计算过程如下图:
在接收方收到了这个数据帧之后还要对它进行校验,判断余数是否为0,余数为0那么接收方就接受这个数据帧,余数不为0那么接收方就将这个帧丢弃,然后
仅用循环冗余校验CRC差错检测错误技术只能做到无差错接受
“无差错接受”:凡是接受的帧(不包含丢弃的帧),凡是接收端数据链路层接受的帧都没有传输差错(有差错的帧就丢弃而不被接受)
要做到可靠传输(及发送什么就收到什么)就必须加上确认和重传机制
CRC是一种无比特差错,而不是无传输差错。
并且CRC并不是完全的无比特差错,有可能出一个错误的数据帧,但是之后计算出的余数还是0,那么就可能就接受了一个错误的数据帧,因此CRC不是百分之百可靠。它的除数越大,出错的可能性越小。如果发现传输过来的数据帧有错误,那么它是由上一层进行重传机制。
阅读全文
0 0
- CRC校验
- CRC校验
- crc校验
- CRC校验
- CRC校验
- crc校验
- CRC校验
- CRC校验
- CRC 校验
- CRC 校验
- CRC校验
- CRC校验
- CRC 校验
- CRC校验
- CRC校验
- CRC校验
- CRC校验
- CRC校验
- UOJ #60 [UR #5] 怎样提高智商
- 【前端工程化】Web演变模式
- KMP算法
- 【知识库】--Dubbo ReferenceBean获取-- RegistryProtocol.Refer -- 源码过程(254)
- Mysql学习历程基本语法(1)
- CRC校验
- Codeforces 819 D. Mister B and Astronomers 数论
- sqrt log sin
- 单片机缩写的英文全称及中文名称
- [最小生成树] Codeforces 632F Educational Codeforces Round 9 F. Magic Matrix & SRM 687 div1 AllGraphCuts
- 3DMAX2016破解教程
- JobSnaps!想法
- POJ 1825 Young 笔记
- Go引入包