檢錯碼 - 迴圈冗餘校驗 (CRC)
錯誤和錯誤檢測
當位元在計算機網路上傳輸時,由於干擾和網路問題,它們可能會損壞。損壞的位元會導致接收方接收虛假資料,這些資料被稱為錯誤。
錯誤檢測技術負責檢查透過網路傳輸的幀中是否發生任何錯誤。它不考慮錯誤位的數量和錯誤的型別。
為了進行錯誤檢測,傳送方需要與資料位一起傳送一些額外的位。接收方根據附加的冗餘位進行必要的檢查。如果它發現數據沒有錯誤,則在將訊息傳遞到上層之前刪除冗餘位。
有三種主要的錯誤檢測技術:奇偶校驗、校驗和和迴圈冗餘校驗 (CRC)。
迴圈冗餘校驗 (CRC)
迴圈冗餘校驗 (CRC) 是 W. Wesley Peterson 在 1961 年發明的一種分組碼。它通常用於檢測透過電信網路和儲存裝置傳輸的資料中意外的更改。
CRC 涉及由通訊系統商定的預定除數對被髮送的資料位進行二進位制除法。除數使用多項式生成。因此,CRC 也稱為多項式碼校驗和。
過程如下所示:
使用 CRC 進行編碼
通訊雙方商定訊息塊的大小和 CRC 除數。例如,選擇的塊可以是 CRC (7, 4),其中 7 是塊的總長度,4 是資料段中的位數。選擇的除數可以是 1011。
傳送方對資料段進行二進位制除法運算。
然後,它將餘數(稱為 CRC 位)附加到資料段的末尾。這使得生成的資料單元可以被除數整除。
解碼
接收方用除數除以傳入的資料單元。
如果沒有餘數,則假定資料單元正確並被接受。
否則,表示資料已損壞,因此被拒絕。然後,接收方可能會向傳送方傳送錯誤確認,以便重新傳輸。
廣告