CRC迴圈冗餘校驗

2021-08-02 18:46:48 字數 1286 閱讀 3697

一、背景知識

1、位元差錯

現實的通訊鏈路都不會是理想的,因為位元在傳輸過程中可能產生差錯:1可能變成0,0可能變成1,這就叫做位元差錯。

2、誤位元速率

在一段時間內,傳輸錯誤的位元佔所傳輸的位元總數的比率成為誤位元速率。誤位元速率和訊雜比有很大的關係,如果設法提高訊雜比,就可以使誤位元速率減小。

3、為了保證資料傳輸的可靠性,在計算機網路傳輸資料時,必須採用個中差錯檢測措施,目前使用最廣泛的就是crc(迴圈冗餘校驗)。

二、什麼是crc迴圈冗餘校驗

迴圈冗餘校驗(cyclic redundancy check, crc)是一種根據網路資料報或電腦檔案等資料產生簡短固定位數校驗碼的一種雜湊函式,主要用來檢測或校驗資料傳輸或者儲存後可能出現的錯誤。它是利用除法及餘數的原理來作錯誤偵測的。

三、迴圈冗餘校驗的特點

crc是目前最流行的一種差錯檢測方法,它可生成一種高效能的檢錯、糾錯碼,在實際中常用做檢錯碼。由於它的檢錯能力強,實現簡單,因此在資料通訊中得到了廣泛應用。

四、迴圈冗餘檢驗的原理

在傳送端,先將資料進行分組,假如每組有k個位元,現假定待傳送的資料m=101001(k=6)。crc運算就是在m後面新增n為冗餘碼,這n位冗餘碼用於差錯檢測,然後構成乙個幀再傳送出去,總共傳送(k+n)位,雖然這種方法增大了資料的開銷,但是當傳輸出現差錯時,可以及時的檢測出來。

五、計算n位冗餘碼的步驟

1、假定要傳輸的資料為m=101001(k=6);

2、假定除數為p=1101(n=3);

3、在m後面加n個0,得到m』=101001000;

4、用m』除以p

5、所得餘數r就是冗餘碼

六、在接收端如何進行檢測

1、接收端將接收到的資料以幀為單位進行檢測;

2、將接收到大的每一幀都除以相同的p,然後檢出餘數r;

3、如果餘數r為0,則證明傳輸正確,就接收此幀;否則表明傳輸的過程中有差錯,就丟棄此幀。

七、crc和fcs的區別

1、crc是一種差錯檢驗方法;

2、fcs是幀校驗序列,即冗餘碼;

3、兩者不是同乙個概念,fcs是冗餘碼,它可以通過crc得到,也可以通過其他差錯檢測方法得到。

迴圈冗餘校驗 CRC校驗

一 crc校驗概念 即迴圈冗餘校驗碼 cyclic redundancy check 是資料通訊領域中最常用的一種查錯校驗碼,迴圈冗餘檢查 crc 是一種資料傳輸檢錯功能,對資料進行多項式計算,並將得到的結果附在幀的後面,接收裝置也執行類似的演算法,以保證資料傳輸的正確性和完整性。其特徵是資訊字段和...

迴圈冗餘校驗CRC

網上搜到的內容不全面,維基百科講的比較好,原理很清楚傳送門 其實對於程式設計師來講,不用太在意它的數學原理,另外生成碼的選擇不是隨意的,這可能影響到校驗的效能。注意其中的加法不進製,減法不借位,類似是異或邏輯。關於怎樣產生crc,有這樣乙個演算法 下面為crc的計算過程 1 設定crc暫存器,並給其...

CRC迴圈冗餘校驗

crc校驗原理 crc校驗原理看起來比較複雜,好難懂,因為大多數書上基本上是以二進位制的多項式形式來說明的。其實很簡單的問題,其根本思想就是先在要傳送的幀後面附加乙個數 這個就是用來校驗的校驗碼,但要注意,這裡的數也是二進位制序列的,下同 生成乙個新幀傳送給接收端。當然,這個附加的數不是隨意的,它要...