计算机网络数据链路层检错编码 --- 循环冗余码CRC
生活随笔
收集整理的這篇文章主要介紹了
计算机网络数据链路层检错编码 --- 循环冗余码CRC
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實例說明
假如要發送的數據是1101 0110 11, 采用CRC校驗, 生成多項式是10011, 那么最終發送的數據應該是?
發送端發送過程:
1. 最終發送的數據 = 要發送的數據 + 幀檢驗序列FCS(冗余碼)
2. 利用生成多項式計算冗余碼
計算冗余碼的方法:
1. 加0, 要根據生成多項式中的階為, 則加個0. (例題中生成多項式為10011, 也就是, 式中的最高階為4, 也可以按照生成多項式位數減1, 也就是5 - 1, 為4. 也就是生成多項式的階為4, 此時要在要傳的數據后面加4個0, 此時數據變為1101 0110 1100 00.)
2. 模2除法, 數據加0后用模2除法除以生成多項式, 余數就為幀檢驗序列FCS(冗余碼). (例題中得到的冗余碼就是1110, 注意一定要是4位, 也就是加0的個數位, 不夠的話用0補齊)
3. 要發送的數據加上冗余碼并發送(例題中為1001 0110 11 后面接上1110, 變為了1001 0110 1111 10)
接收端檢錯過程:
1. 接收端把收到的每一幀都除以同樣的除數, 然后檢查得到的余數R(例題中為接收端收到的數據模2除以10011)
2. 如果余數為0, 判定這個幀沒有差錯, 接收.
3. 余數不為0, 判定這個幀有差錯(無法確定到位), 丟棄.
需要注意的是:
- FCS的生成以及接收端CRC檢驗都是由硬件實現, 處理很迅速, 因此不會延誤數據的傳輸.
- 在數據鏈路層僅僅使用循環冗余檢驗CRC差錯檢測技術, 只能做到對幀的無差錯接收, 即"凡是接收端數據鏈路層接收的幀, 我們都能以非常接近于1的概率認為這些幀在傳輸過程中沒有產生差錯". 接收端丟棄的幀雖然曾收到了, 但是最終還是因為有差錯被丟棄. "凡是接收端數據鏈路層接收的幀均無差錯".
- 這種"無差錯傳輸"并不是"可靠傳輸", "可靠傳輸"是指數據鏈路層發送端發送什么, 接收端就收到什么.
總結
以上是生活随笔為你收集整理的计算机网络数据链路层检错编码 --- 循环冗余码CRC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端设定项目奖金有多少_【系列二】建筑工
- 下一篇: ol xyz 加载天地图_OpenLay