【计算机网络】差错检验
1.定义
实际的通信链路都不是理想的,比特在传输过程中可能会产生差错: 1可能会变成0,而0也可能变成1。这称为
比特差错(误码)
。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER
使用差错检测码
来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
下图FCS即为差错检验码——帧检验序列FCS字段
2.奇偶校验
在待发送的数据后面添加1位奇偶校验位
,使整个数据(包括所添加的校验位在内)中“1”的个数为奇数(奇校验)或偶数(偶校验)
(ps:就是计算机组成原理里面的那个奇偶校验)
- 如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
- 如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码(漏检)
由于其漏检率较高,计算机网络的数据链路层一般不会使用它作为检测方法
3.循环冗余校验CRC
检错能力强,漏检率低
收发双方约定好一个
生成多项式G
(x);
发送方基于待发送的数据和生成多项式计算出差错检测码
(冗余码
),将其添加到待传输数据的后面一起传输;
接收方通过生成多项式来计算收到的数据是否产生了误码;
待发送数据左移添加生成多项式最高次个0,然后进行模二除,除以生成多项式各系数构成的比特串,所求的余数即为差错检验码(冗余码),将其添加到待发送数据后面也就是原来生成多项式最高次个0的位置
进行模二除结果为0则没有产生误码,反之不为0则产生误码
特别注意:CRC算法要求生成多项式必须包含最低此项(也就是1)
运算方式
下图是具体运算方法举例:
练习
答案:
注意
当信息位位数过大时,CRC无法纠正错误,所以一般不用其纠错
4.本节总结
链接: 湖科大教书匠:计算机网络微课堂
本文是湖科大教书匠的计算机网络笔记,感谢大家的观看,求点赞求收藏求评论
欢迎大家关注我的账号:黑城笑
更多技术分享等待大家
- 点赞
- 收藏
- 关注作者
评论(0)