CRC 循環冗餘差錯檢驗 計算機網絡考點(圖解)

需求用處:
現實中的通信鏈路都不是理想的,比特在傳輸中可能會產生差錯:1可能會變成0,0可能會變成1。我們稱之爲比特差錯,所以我們要對傳輸的數據進行差錯檢驗,減小誤碼率。在數據鏈路層,爲了便於硬件檢測差錯,通常在幀的尾部設置一個差錯檢驗字段存放整個幀的差錯檢驗碼,這個差錯檢驗字段常稱之爲幀檢驗序列。
CRC理解:
需要的知識儲備有:
模2除法運算:二進制下的除法,實際上就是按位異或運算,也就是同位比較後,兩者對應位相同則結果爲“0”,不同則結果爲“1”。
多項式編碼(CRC編碼):用來生成除數G,CRC生成多項式也與一組二進制數相對應,例如,題中,CRC生成多項式爲:x^4 +x^2 +x^1+1 (常數項1是x^0)
就是:2^4 + 2^2+ 2^1+1,對應指數位爲1,否則爲0,所以對應的二進制是:10111
算法要求G的最高位和最低位的比特爲1。

CRC差錯檢驗運算步驟
1、發送方和接收方協商一個 r+1位的比特生成G.
2、發送方選擇一個合適的r比特冗餘碼R(即檢錯碼),並將它附加到D(要發送的數據)上,使得到的d+r比特模式異或運算後恰好能被除數G整除。

說明:要計算這個冗餘碼R,則在數據後加上除數個數減1個0(生成多項式最高項次個0),進行異或運算,得到同位數個比特的餘數R,那麼,將這個餘數加到要發送的數據後得到的二進制數,與除數 G進行異或運算後,必然可以整除,這時,我們看結果,餘數爲0,則數據串裏沒有比特差錯,否則,發生的比特位的變化。(就這麼個過程,必須理解)

發送方的處理
接收方的處理

在這裏插入圖片描述

接下來看例子:
在這裏插入圖片描述
步驟
在這裏插入圖片描述
所以,最終發送的形式是:
在這裏插入圖片描述
上題是如何計算冗餘碼,下面來一道判斷冗餘碼的題:
在這裏插入圖片描述
在這裏插入圖片描述
說明:商 沒有什麼用,只是我們計算過程中的標記作用,指示算到了第幾位,同時,爲1時,說明夠除,被除數下一位,爲0時,說明不夠除,此時標記0,再往後借位去除。
教材上(謝希仁第5版)的 商 一般都全是1,但在運算過程中會進行與0異或,使向後移動。

好啦,就這些。考試穩了。
(以上圖片來源於湖南科技大學計算機網絡課老師.B站有本問題視頻)

發佈了9 篇原創文章 · 獲贊 18 · 訪問量 3699
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章