计算机网络3.3差错检测

实际的通信链路都不是理想的,传输中可能有比特产生差错。
一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER。
使用差错检验码来检测数据在传输过程中是否产生了比特差错,使数据链路层所要解决的 重要问题之一。

奇偶校验:
在带发送数据后面添加一位奇偶校验位,1的个数为奇数就是奇校验,偶数为偶校验。
如果有两位发生错误就无法检查出错误。
只有奇数个位发生误码才能检查出误码。
循环冗余校验CRC:
收发双方约定好一个生成多项式G,发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面一起传输。
接收方通过生成多项式来计算收到的数据是否产生了误码。
用除法。


必须包含最低位(x^0)

循环冗余校验CRC
题目做法:
待发送信息后面加上生成多项式最高次数个0.
除数就是多项式的系数。
做除法(异或运算)
余数位数应与生成多项式最高次数相同,位数不足时用前面补0凑足位数。
将余数添加到发送信息的后面。

检测码只能检测出帧中出了差错,不能定位错误,无法纠正错误。
纠正传输的差错可以用纠错码进行前向纠错。但是纠错码开销大,在计网中较少使用。
CRC很容易实现,广泛应用于数据链路层。
计网中通常使用检错重传方式纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务。

posted @ 2022-04-13 08:50  吕洞玄  阅读(387)  评论(0编辑  收藏  举报