資料鏈路層面對的三大問題之一:差錯檢測
目前廣泛使用的是迴圈冗餘檢驗(crc)
舉個例子說明它的原理:
比如我們需要傳的資料為101001,用k記錄一共有多少位,即k=6。然後crc運算需要把待傳的資料的末尾加上用於檢測的n位冗餘碼,可以簡單的理解為在資料後面加上n個0。假設n=3,這樣迴圈冗餘檢驗的被除數101001000就得到了。除數是通訊雙方商定好的,現在一般使用的方式是用多項式來表示除數,比如p(x)=x^3+x^2+1,就得到除數p=1101。現在就可以開始進行檢驗了,注意除數p的位數等於n+1。運算的方法和除法類似,只是相減變成了異或而已。經過運算,得到了餘數為001,它被稱為幀檢驗序列fcs。截至現在做的一切的運算,都只是在傳送端進行的。為了檢驗幀是否無比特差錯接收了,是在接收端檢驗的。計算出的幀檢驗序列fcs會附加在幀的尾部一起傳送。
接收端接收到後,會把fcs取出,新增到資料部分的末尾,得到除數101001001,再次和除數p=1101相除,如果得到的餘數等於0,那麼就證明此次傳輸時無比特傳輸的。如果餘數不等於0,那就證明這個幀有差錯。無比特傳輸和可靠傳輸有很大的不同的,比如傳送端傳送了5個幀,但是接收端只接收到了3個幀,此時進行迴圈冗餘檢驗時,收到的3個幀檢驗合格了,這並不代表此次傳輸時無差錯的,相反,是出了差錯的,只是迴圈冗餘檢測不出來而已。
crc是一種檢錯方法,而fcs是新增在資料後面的冗餘碼,兩者的概念完全不同。
迴圈冗餘檢驗
迴圈冗餘檢驗 迴圈冗餘校驗 crc的演算法分析和程式實現 西南交通大學計算機與通訊工程學院 劉東 摘要 通訊的目的是要把資訊及時可靠地傳送給對方,因此要求乙個通訊系統傳輸訊息必須可靠與快速,在數字通訊系統中可靠與快速往往是一對矛盾。為了解決可靠性,通訊系統都採用了差錯控制。本文詳細介紹了迴圈冗餘校驗...
CRC檢驗 迴圈冗餘檢驗
一 什麼是crc迴圈冗餘校驗?位元差錯 現實中的 通訊鏈路是不理想的,這也就是說在傳輸過程中可能會產生差錯,1也許會變成0,0或許也會變成1。這就是位元差錯。crc迴圈冗餘校驗則是為了解決資料鏈路層中存在的位元差錯問題。crc迴圈冗餘校驗原理 大多數書上基本上是以二進位制的多項式形式來說明的。其實它...
CRC迴圈冗餘檢驗
現實的通訊鏈路都不會是理想的。位元在傳輸過程中可能會產生差錯 1可能變成0,而0也可能變成1,這叫做位元差錯。crc迴圈冗餘檢驗 是一種根據網路資料報或電腦檔案等資料產生簡短固定位數校驗碼的一種雜湊函式,主要用來檢測或校驗資料傳輸或者儲存後可能出現的錯誤。它是利用除法及餘數的原理來作錯誤偵測的。cr...