1. 程式人生 > 其它 >資料鏈路層差錯檢測方法

資料鏈路層差錯檢測方法

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、對餘數繼續做除,應使餘數迴圈。

方法優缺點:

幾乎可以做到完全可靠傳輸

缺點是找不出哪一位發生了錯誤