通信 / CRC 校验
一、全稱
Cyclic Redundancy Check,循環(huán)冗余校驗(yàn)
二、誕生原因
在數(shù)據(jù)傳輸中,校驗(yàn)傳輸?shù)臄?shù)據(jù)的準(zhǔn)確性必不可少,傳統(tǒng)的方法包括 1 校驗(yàn)、0 校驗(yàn)、奇偶校驗(yàn)(詳細(xì)說明請看這里),這些方法有的只能校驗(yàn) 1 個(gè)位(1、0校驗(yàn)),有的只能校驗(yàn)有限位(奇偶校驗(yàn)),有什么辦法可以校驗(yàn)所有的位么?為了解決上述問題,發(fā)明了 CRC 校驗(yàn)。
三、原理說明
本質(zhì)上說,原理非常簡單,就是說我想告訴你 29 這個(gè)數(shù)字,但是我怕我的話在風(fēng)中傳輸錯(cuò)誤,所以咱倆約定聽到的數(shù)字必須能被 10 整除,所以我告訴你的數(shù)字是 30。你聽到數(shù)字30之后,心里計(jì)算,可以知道這個(gè)數(shù)字傳輸正確。這個(gè)過程就是 CRC 校驗(yàn)的過程。
回到真實(shí)CRC校驗(yàn)原理來,我想傳輸二進(jìn)制 1010001101,咱倆還提前約定好了除數(shù)為 110101,所以我的目的就是我發(fā)送給你數(shù)據(jù)保證可以被 110101 整除,這里的“整除”的含義就是被 110101 循環(huán)異或 ,最后為余數(shù) 0 。
1、在 1010001101 后面添加 5 個(gè) 0,因?yàn)槌龜?shù)為 6 位,所以余數(shù)為 5位,最后將余數(shù)添加到 1010001101 后面得到結(jié)果 101000110101110。
2、目的用戶接收到該數(shù)據(jù)之后,用 110101 進(jìn)行整除校驗(yàn),如果能夠整除,則認(rèn)為數(shù)據(jù)傳輸正常。
3、目的用戶刪除 101000110101110 后 5 位,得到真實(shí)數(shù)據(jù)。
?
(SAW:Game Over!)
總結(jié)
以上是生活随笔為你收集整理的通信 / CRC 校验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP/IP / PDU 是什么
- 下一篇: 编码 / Base 64