CRC校驗


1 CRC校驗的目的

在信息的傳輸過程中,有時會發生誤碼。

例如,傳送1001,接收到1000,這就產生了誤碼,但接收方並不知道產生了誤碼。

而當發送方與接收方使用同一標准的CRC校驗,就能夠判斷在信息傳輸的過程中是否發生了誤碼。

2 CRC基礎知識

2.1 除數與被除數

除號前面的數為被除數;

除號后面的數為除數。

10 ÷ 2 = 5            10為被除數;2為除數。

2 ÷ 10 = 0.2         2為被除數;10為除數。

2.2 除與除以

10 ÷ 2 = 5            10除以2

2 ÷ 10 = 0.2         10除2

2.3 異或

異或主要用於二進制計算,相同為0,相異為1。

0異或0 -> 0

0異或1 -> 1

1異或0 -> 1

1異或1 -> 0

3 CRC校驗的三要素

3.1 要傳輸的數據

例如要傳輸的數據為:10101101(二進制)

3.2 多項式

各種標准下的多項式如下圖所示。

根據多項式可以得到除數,除數為完整多項式的系數,如下列出了兩個例子:

多項式 完整多項式 除數
X^4 + X +1 1*X^4 + 0*X^3 + 0*X^2 + 1*X + 1*X^0 10011
X^5 + X^3 + 1 1*X^5 + 0*X^4 + 1*X^3 + 0*X^2 + 0*X^1 + 1*X^0 101001

3.3 校驗和

根據要傳輸的數據和除數,可以得到校驗和。

首先要在傳輸數據后補N個0(N = 多項式最高次次數);

最后除數的位數 = N,除數位數小於N,要在前面補0。

例1:

傳輸的數據:10101101(二進制)

除數:10011

校驗和的計算如下圖所示:

 

例2:

傳輸的數據:11010010(二進制)

除數:10011

校驗和的計算如下圖所示

接收方對接收數據使用相同CRC多項式進行異或運算,若余數為0,則表明傳輸沒有出現錯誤。

如下圖所示,傳輸的數據為11010010,CRC校驗和為1010,除數為10011,最終余數為0,表明傳輸正確。

 

4 在線CRC計算器要注意的一些問題

要注意的問題有如下三點:

 5 參考

CRC(循環冗余校驗)在線計算

http://www.ip33.com/crc.html

[CRC校驗]手算與直觀演示

https://www.bilibili.com/video/BV1V4411Z7VA?from=search&seid=6029216890881933361

【計算機網絡期末復習】5分鍾左右讓你明白CRC循環冗余校驗

https://www.bilibili.com/video/BV1rJ411V7L5?from=search&seid=6029216890881933361

循環冗余校驗(CRC)算法入門

https://blog.nanpuyue.com/2019/050.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM