0、奇偶校驗
方法內容:
分為兩個方法:奇校驗和偶校驗
奇校驗:在每個字節后加一位,0/1,保證整體1的數目為奇數
偶校驗:在每個字節后加一位,0/1,保證整體1的數目為偶數
方法優缺點:
缺點:
檢驗正確率只有50%
對於每個字節添加一位,影響傳輸效率
優點:
邏輯簡單,可以直接寫在硬件上,減少軟件負擔
1、累加和校驗
方法內容:
最常用的一種是在一次通訊數據包的最后加入一個字節的校驗數據。這個字節內容為前面數據包中全部數據的忽略進位的按字節累加和。
方法優缺點:
優點:
簡單,判斷錯誤的概率很低,因此被廣泛應用
2、循環冗余檢驗
方法內容:
1、在發送端,先把數據划分為組M。(這里的數據指的是哪一部分)假定每組k個比特。
2、用二進制的模2運算求出n位冗余碼(檢驗位),供差錯檢測用。
CRC計算規則:
模2加法:兩者異得1,兩者同得0
模2減法:兩者異得1,兩者同得0
模2除法就是利用上述兩點進行的二進制除法。之所以采用這種方法,是為了避免除法中減法的借位問題,所以除法變簡單了。
被除數的名字叫做生成多項式。有好幾種方法可以設計。一般是兩個多項式相乘。計算前先將原始數據后面填四個零。
生成多項式的位寬是位數減一。
生成多項式是接受方和發送方的一個約定,也就是一個二進制數,在整個傳輸過程中,這個數始終保持不變。在發送方,利用生成多項式對信息多項式做模2除生成校驗碼。在接受方利用生成多項式對收到的編碼多項式做模2除檢測和確定錯誤位置。理論上生成多項式可以是任意的數,但是為了更好的差錯檢驗(這個數傳輸過程可能出錯),所以定義了一套好的容錯標准:
應滿足以下條件:
A、生成多項式的最高位和最低位必須為1。
B、當被傳送信息(CRC碼)任何一位發生錯誤時,被生成多項式做除后應該使余數不為0。
C、不同位發生錯誤時,應該使余數不同。
D、對余數繼續做除,應使余數循環。
方法優缺點:
幾乎可以做到完全可靠傳輸
缺點是找不出哪一位發生了錯誤