錯誤檢測碼 - 校驗和
錯誤和錯誤檢測
當位元透過計算機網路傳輸時,由於干擾和網路問題,它們可能會發生損壞。損壞的位元會導致接收方收到偽資料,這些資料被稱為錯誤。
錯誤檢測技術負責檢查透過網路傳輸的幀中是否發生了任何錯誤。它不考慮錯誤位元的數量和錯誤型別。
為了進行錯誤檢測,傳送方需要與資料位元一起傳送一些額外的位元。接收方根據附加的冗餘位元進行必要的檢查。如果它發現數據沒有錯誤,則在將訊息傳遞到上層之前刪除冗餘位元。
有三種主要的幀錯誤檢測技術:奇偶校驗、校驗和和迴圈冗餘校驗 (CRC)。
校驗和
這是一種塊碼方法,其中校驗和是基於要使用某種演算法傳輸的資料塊中的資料值建立的,並附加到資料上。當接收方獲取此資料時,會計算一個新的校驗和並將其與現有的校驗和進行比較。不匹配表示發生錯誤。
校驗和錯誤檢測
對於校驗和錯誤檢測,資料被分成固定大小的幀或段。
傳送端 - 傳送方使用 1 的補碼算術將段相加以獲得總和。然後對總和進行求反以獲得校驗和,並將其與資料幀一起傳送。
接收端 - 接收方使用 1 的補碼算術將傳入的段與校驗和相加以獲得總和,然後對總和進行求反。
如果結果為零,則接受接收到的幀;否則丟棄它們。
示例
假設傳送方想要傳送 4 個 8 位幀,其中幀為 11001100、10101010、11110000 和 11000011。
傳送方使用 1s 補碼算術新增位。使用 1s 補碼算術新增兩個數字時,如果存在進位,則將其新增到總和中。
新增所有 4 個幀後,傳送方對總和進行求反以獲得校驗和 11010011,並將其與資料幀一起傳送。
接收方執行所有幀(包括校驗和)的 1s 補碼算術總和。對結果進行求反,發現為 0。因此,接收方認為沒有發生錯誤。
廣告