目录
差错从何而来?
传输中的差错都是由于噪声引起的。
全局性:由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
解决办法:提高信噪比来减少或避免干扰。(对传感器下手)
局部性:外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
解决办法:通常利用编码技术来解决。
差错:位错 【比特位出错,1变成0,0变成1。】
帧错 {帧丢失,帧重复,帧失序。}
-
一旦出现比特差错,很难自动恢复。
-
中间通信设备不掌握全部通信内容。
-
因此数据链路层只提供比特差错检验。
一、数据链路层的差错控制
差错控制(比特错):检错编码:奇偶校验码
循环冗余码CRC
纠错编码:海明码
1.检错编码--奇偶校验码
奇偶校验码特点:只能检查出奇数个比特错误,检错能力为50%。
2.检错编码--CRC循环冗余码
接收端检错过程:
把收到的每一个帧都除以同样的除数,然后检查得到的余数R。
1.余数为0,则判定这个帧没有差错,就接受。
2.余数不为0,则判定这个帧有差错(无法确定到位),丢弃。
FCS的生成以及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输。
循环冗余检验CRC和FCS不等同:CRC是一种常用的检错方法,而FCS是添加在数据后的冗余码。 FCS可以用CRC方法得出,但CRC并非用来获得FCS的唯一方法。
3.纠错编码--海明码
海明码:发现双比特错,纠正单比特错。
工作原理:动一发而牵全身。
1.确定校验码位数r。
2.确定校验码和数据的位置。
3.求出校验码的值。
4.检错并纠错。