CRC檢驗 迴圈冗餘檢驗

2021-08-03 04:24:40 字數 1352 閱讀 5525

一、什麼是crc迴圈冗餘校驗?

位元差錯:現實中的 通訊鏈路是不理想的,這也就是說在傳輸過程中可能會產生差錯,1也許會變成0,0或許也會變成1。這就是位元差錯。

crc迴圈冗餘校驗則是為了解決資料鏈路層中存在的位元差錯問題。

crc迴圈冗餘校驗原理:

大多數書上基本上是以二進位制的多項式形式來說明的。其實它最根本思想就是先在要傳送的幀後面附加乙個數(這個就是用來校驗的校驗碼,但要注意,這裡的數也是二進位制序列的,下同),生成乙個新幀傳送給接收端。當然,這個附加的數不是隨意的,它要使所生成的新幀能與傳送端和接收端共同選定的某個特定數整除(注意,這裡不是直接採用二進位制除法,而是採用一種稱之為「模2除法」)。到達接收端後,再把接收到的新幀除以(同樣採用「模2除法」)這個選定的除數。因為在傳送端傳送資料幀之前就已通過附加乙個數,做了「去餘」處理(也就已經能整除了),所以結果應該是沒有餘數。如果有餘數,則表明該幀在傳輸過程中出現了差錯。

fcs是新增在資料後面的冗餘碼。

【說明】「模2除法」與「算術除法」類似,但它既不向上位借位,也不比較除數和被除數的相同位數值的大小,只要以相同位數進行相除即可。「模2加減」則為無進製,無退位。

那麼fcs冗餘碼該怎樣求出。我們可以採用以下方法。

2的n階次方乘運輸資料,得到的(k+n)位的數除以手法雙方實現商定的長度為(n+1)位的除數p,得到的商為q,而餘數為r(n位,比p少一位);則r就為fcs(迴圈校驗冗餘碼)。

現在目前使用比較廣泛的方法是用多項式來表示迴圈冗餘檢驗過程。 現在目前使用較為廣泛的生成多項式的p(x)有以下幾種:

二、用crc校驗檢錯例子

假定傳輸乙個m=101001;crc校驗就是在資料m的後面新增檢測用的n位冗餘碼,然後構成乙個資料幀傳送出去。

n位冗餘碼的計算:

在接收端的檢驗:接收到的資料以幀為單位進行檢驗,把收到的每乙個幀都除以同樣的除數p,然後檢查得到的餘數r。如果在傳輸過程中,如果沒有出現差錯,那麼經過crc檢驗後得到的餘數肯定為0。

總之在接收端只有兩種情況:

1>若得出的餘數r=0,則判定這個幀沒有差錯,就接受。

2>若得到的餘數r不等於0,則判定這個幀有錯誤(但無法判斷究竟是哪幾位出現了差錯),就丟棄。

CRC迴圈冗餘檢驗

現實的通訊鏈路都不會是理想的。位元在傳輸過程中可能會產生差錯 1可能變成0,而0也可能變成1,這叫做位元差錯。crc迴圈冗餘檢驗 是一種根據網路資料報或電腦檔案等資料產生簡短固定位數校驗碼的一種雜湊函式,主要用來檢測或校驗資料傳輸或者儲存後可能出現的錯誤。它是利用除法及餘數的原理來作錯誤偵測的。cr...

迴圈冗餘檢驗CRC

1.在傳送端把資料劃分為組,假定每組k個位元,現假定待傳輸資料m 101001,則k 6。2.crc運算就是在資料m後面新增供差錯檢測用的n位冗餘碼,然後構成資料幀傳送過去,一共傳送 k n 位。3.n位冗餘碼可以用二進位制的模2運算得出,這就相當於在m後面新增n個0。4.用上述得到的 k n 位數...

迴圈冗餘檢驗CRC

crc簡介 迴圈冗餘校驗 cyclic redundancy check,crc 是一種根據網路資料報或電腦檔案等資料產生簡短固定位數校驗碼的一種雜湊函式,主要用來檢測或校驗資料傳輸或者儲存後可能出現的錯誤。它是利用除法及餘數的原理來作錯誤偵測的。在資料傳輸過程中,無論傳輸系統的設計再怎麼完美,差錯...