CRC校驗原理

2022-10-09 07:21:14 字數 1676 閱讀 7796

什麼是crc校驗碼?

crc即迴圈冗餘校驗碼(cyclic redundancy check, crc ):是一種根據網路資料報或計算機檔案等資料產生簡短固定位數校驗碼的一種通道編碼技術,主要用來檢測或校驗資料傳輸或者儲存後可能出現的錯誤。它是利用除法及餘數的原理來作錯誤偵測的。是資料通訊領域中最常用的一種查錯校驗碼,其特徵是資訊字段和校驗欄位的長度可以任意選定。迴圈冗餘檢查(crc)是一種資料傳輸檢錯功能,對資料進行多項式計算,並將得到的結果附在幀的後面,接收裝置也執行類似的演算法,以保證資料傳輸的正確性和完整性。

如何校驗?

它利用除法及餘數的原理來進行錯誤檢測,將整個資料塊當成乙個連續的二進位制資料m(x),在傳送時將多項式m(x)用另乙個多項式(被稱為生成多項式g(x))來除,然後利用餘數進行校驗。

基本思想

資料多項式m(x): m(x)可被看成係數為0或1的多項式,例如:

crc校驗步驟:

crc校驗中有兩個關鍵點,一是預先確定乙個傳送送端和接收端都用來作為除數的二進位制位元串(或多項式),可以隨機選擇,也可以使用國際標準,但是最高位和最低位必須為1;二是把原始幀與上面計算出的除數進行模2除法運算,計算出crc碼。

具體步驟:

選擇合適的除數

看選定除數的二進位制位數,然後再要傳送的資料幀上面加上這個位數-1位的0,然後用新生成的幀以模2除法的方式除上面的除數,得到的餘數就是該幀的crc校驗碼。注意,餘數的位數一定只比除數字數少一位,也就是crc校驗碼位數比除數字數少一位,如果前面位是0也不能省略。

將計算出來的crc校驗碼附加在原資料幀後面,構建成乙個新的資料幀進行傳送;最後接收端在以模2除法方式除以前面選擇的除數,如果沒有餘數,則說明資料幀在傳輸的過程中沒有出錯。

crc校驗碼計算示例:

現假設選擇的 crc生成多項式為 g( x) = x4 + x3 + 1,要求出二進位制序列 10110011的 crc校驗碼。下面是具體的計算過程 :

①將多項式轉化為二進位制序列,由 g( x) = x4 + x3 + 1可知二進位制一種有五位,第4位、第三位和第零位分別為1,則序列為11001

②多項式的位數字5,則在資料幀的後面加上5-1位0,資料幀變為 101100110000,然後使用模2除法除以除數 11001,得到餘數。

假設要傳送的資訊用多項式m(x)表示,將m(x)左移r位(相當於m(x)2r),這樣m(x)的右邊就會空出r位,這就是校驗碼的位置,用 m(x)2r 除以生成多項式g(x)得到的餘數就是校驗碼

計算步驟

將最高次冪為r的生成多項式g(x)轉換成對應的r+1位的二進位制數;

將資訊碼左移r位,相當於對應的資訊多項式m(x)*2r;

用生成多項式(二進位制數)對資訊碼做除運算,得到r-1位的餘數;

將餘數拼到資訊碼左移後空出的位置,得到完整的通道編碼;

假設使用的生成多項式是g(x)=x3+x+1,4位的原始報文為1010,求編碼後的報文

將生成多項式g(x)轉換成對應的二進位制除數:1011;

由於生成多項式有4位,所以計算所得的校驗碼為3位,即r=3;

原始報文m(x)=1010,左移3位變成1010 000;

用1011對1010 000進行模2除運算,相當於按位異或,得到餘數011

將餘數附加到1010的後邊,得到最後的編碼:1010 011;

在接收方,如果收到的是 1010 011,用其除以生成多項式 1011,能夠整除,說明傳輸沒有問題;若不能整除,則說明通道傳輸出錯;

CRC校驗原理

crc校驗原理 1 迴圈校驗碼 crc碼 是資料通訊領域中最常用的一種差錯校驗碼,其特 徵是資訊字段和校驗欄位的長度可以任意選定。2 生成crc碼的基本原理 任意乙個由二進位制位串組成的 都可以和乙個系 數僅為 0 和 1 取值的多項式一一對應。例如 1010111對應的多項 式為x6 x4 x2 ...

CRC校驗原理

以下內容摘自筆者即將出版的最新著作 深入理解計算機網路 一書。本書將於12月底出版上市,敬請留意!本書原始目錄參見此文 5.3.2 迴圈冗餘校驗檢錯方案 上節介紹的奇偶校驗碼 pcc 只能校驗一位錯誤,本節所要介紹的迴圈冗餘校驗碼 crc 的檢錯能力更強,可以檢出多位錯誤。1.crc校驗原理 crc...

CRC校驗原理

基本概念 crc即迴圈校驗碼是資料通訊中最常用的一種差錯校驗碼。資訊欄位的長度和校驗碼的長度是任意的。基本原理 在k位資訊碼的後面加上r位校驗碼,整個長度是n位,n k r。給定乙個 n,r 碼,可以證明存在乙個最高次冪為r的多項式g x 根據g x 可以生成k位資訊的校驗碼,而g x 叫做這個cr...