什麼是錯誤檢測碼?
錯誤檢測碼是由特定程式生成的一系列數字,用於檢測透過計算機網路傳輸的資料中的錯誤。
當位元透過計算機網路傳輸時,由於干擾和網路問題,它們可能會發生損壞。損壞的位元會導致接收方收到虛假資料,這些資料被稱為錯誤。
錯誤檢測碼確保訊息在透過噪聲通道傳送之前進行編碼。編碼方式使得接收端的解碼器能夠以較高的成功機率檢測傳入訊號中是否存在錯誤。
錯誤檢測碼的特點
當使用後向糾錯技術進行可靠的資料傳輸時,會採用錯誤檢測碼。在這種方法中,接收方向傳送方傳送反饋訊息,以告知是否已收到無錯誤的訊息。如果存在錯誤,則傳送方會重新發送訊息。
錯誤檢測碼通常是分組碼,其中訊息被分成固定大小的位元塊,並在這些塊中新增冗餘位元以進行錯誤檢測。
錯誤檢測包括檢查是否發生了任何錯誤。錯誤位元的數量和錯誤型別無關緊要。
錯誤檢測技術
有三種主要的錯誤檢測技術
奇偶校驗
奇偶校驗是透過向資料新增一個額外的位元(稱為奇偶校驗位元)來完成的,以使 1 的數量在偶校驗的情況下為偶數,在奇校驗的情況下為奇數。
在建立幀時,傳送方會計算其中 1 的數量,並按以下方式新增奇偶校驗位元
在偶校驗的情況下:如果 1 的數量為偶數,則奇偶校驗位元值為 0。如果 1 的數量為奇數,則奇偶校驗位元值為 1。
在奇校驗的情況下:如果 1 的數量為奇數,則奇偶校驗位元值為 0。如果 1 的數量為偶數,則奇偶校驗位元值為 1。
在收到幀後,接收方會計算其中 1 的數量。在偶校驗檢查的情況下,如果 1 的數量為偶數,則接受該幀,否則將其拒絕。奇校驗檢查也採用類似的規則。
奇偶校驗僅適用於單位元錯誤檢測。
校驗和
在這種錯誤檢測方案中,應用以下過程
資料被分成固定大小的幀或段。
傳送方使用 1 的補碼算術將這些段相加以獲得總和。然後對總和取補碼以獲得校驗和,並將其與資料幀一起傳送。
接收方使用 1 的補碼算術將傳入的段與校驗和相加以獲得總和,然後對其取補碼。
如果結果為零,則接受接收到的幀;否則將其丟棄。
迴圈冗餘校驗 (CRC)
迴圈冗餘校驗 (CRC) 涉及將傳送的資料位進行二進位制除法,除數由通訊系統預先確定。除數是使用多項式生成的。
在這裡,傳送方對資料段進行二進位制除法,除數為預先確定的除數。然後將餘數(稱為 CRC 位)附加到資料段的末尾。這使得生成的資料單元能夠被除數整除。
接收方將傳入的資料單元除以除數。如果沒有餘數,則假定資料單元是正確的並被接受。否則,則表示資料已損壞,因此被拒絕。