資料鏈路層迴圈冗餘(CRC)檢驗
資料鏈路層有許多協議,但有三個基本問題是相同的:封裝成幀、透明傳輸和差錯檢驗。為了保證資料傳輸的可靠性,在計算機網路傳輸資料時,必須採用各種差錯檢驗措施,目前廣泛使用的是迴圈冗餘(CRC)檢驗的檢錯技術。
CRC檢驗原理:
在傳送端,先把資料劃分為組,假定每個組k個位元。現假定待傳送的資料M=101001(k=6)。CRC運算就是在資料M後面新增供差錯檢驗用的n位冗餘碼,然後構成一個幀傳送出去,一共傳送(k+n)位。在要傳送的資料後面加n位的冗餘碼,雖然增加了資料傳送的開銷,但卻可以進行差錯檢測。當傳輸可能出現差錯時,付出這種代價是很值得的。
這n位冗餘碼可以通過下面的方法得出。用二進位制的模2運算進行2^n乘M的運算,這相當於在M後面新增n個0。得到k+n位的數除以收發雙方事先商定的長度為(n+1)位的除數p,得出商是Q餘數是R(n位,比p少一位)。
在上圖所示例子中,M=101001(k=6),假定除數p=1101(n=3).經模2除法運算後的結果是:商Q=110101(這個商並沒有什麼用),而餘數R=001,這個餘數R就作為冗餘碼拼接在M之後傳送出去,這種為了進行檢錯而新增的冗餘碼常稱為幀檢驗序列FCS,因此加上FCS後傳送的幀是101001001(一共K+n位)。
在接收端把接收到的資料以幀為單位進行CRC檢驗:把收到的每一幀都除以同樣的除數P(模2運算),然後檢查得到的餘數R:
如果在傳輸過程中無差錯,那麼經過CRC檢驗後得出的餘數R肯定是0。
總之在接收端對收到的每一幀資料進行檢測後,有以下兩種情況:
1、若餘數R=0,則判定這個幀沒有錯,就接受;
2、若餘數R≠0,則判定這個幀有錯,就丟棄。
一種簡便的方法是使用多項式來表示迴圈冗餘檢驗過程,在上邊的例子中,用多項式P(X) = x^3 +X^2+1表示P = 1001(最高位對應X^3,最低位對應X^0).
相關文章
- CRC(迴圈冗餘校驗)和CBC(密碼塊鏈)密碼
- CRC冗餘校驗碼的介紹和實現
- SQLSERVER2012備份日誌報錯:”讀取失敗: 23(資料錯誤(迴圈冗餘檢查)。)”SQLServer
- 網路冗餘技術
- 資料鏈路層
- 鏈路冗餘:HSRP/SLB/VRRP/GLBP簡單理解VR
- 資料庫設計——冗餘欄位資料庫
- 如何消除冗餘資料的安全風險?
- PCIe資料鏈路層
- 資料庫設計之欄位冗餘資料庫
- 【網路協議】資料鏈路層協議
- 計算機網路 | 資料鏈路層計算機網路
- 計算機網路——資料鏈路層計算機網路
- 機器學習中如何用篩選器檢測冗餘?機器學習
- 計算機網路之資料鏈路層計算機網路
- [面試∙網路] TCP/IP(一):資料鏈路層面試TCP
- 資料庫效能優化之冗餘欄位的作用資料庫優化
- 冗餘資料一致性,到底如何保證?
- 區塊鏈之加密市場資料的良性迴圈區塊鏈加密
- 第三章 資料鏈路層
- 0213-資料鏈路層協議協議
- 每秒迴圈插入資料
- 資料鏈路層的三個基本問題
- 資料鏈路層及物理訊號總結
- 第三章 資料鏈路層(三)
- 第三章 資料鏈路層(一)
- 第三章 資料鏈路層(二)
- 資料鏈路層之服務與成幀
- Vue mock模擬獲取資料 迴圈遍歷檢視VueMock
- 細說TF服務鏈丨服務鏈的冗餘是如何實現的
- 基本資料型別,for迴圈資料型別
- iOS專案冗餘資源掃描指令碼iOS指令碼
- 小白讀iOS冗餘資源掃描指令碼iOS指令碼
- 修改ASM磁碟組冗餘模式ASM模式
- 廉價冗餘磁碟陣列陣列
- 找出冗餘索引的指令碼索引指令碼
- 談談網路協議 - 資料鏈路層( Data Link)協議
- 【計算機網路】資料鏈路層 | 複習筆記計算機網路筆記