「全站講的最清晰」海明碼原理

王道計網書P84來的uu們握個爪??!
3.3 差錯控制
本節(jié)只討論傳輸差錯中的一種——比特差錯
通常采用編碼技術進行差錯控制,主要有兩類:自動重傳請求ARQ和前向糾錯FEC
一.ARQ:接收端檢測到差錯,通知發(fā)送端重發(fā)
二.FEC:接收端不僅能發(fā)現(xiàn)差錯,而且能確定比特串的錯誤位置,從而加以糾正差錯
這里結合了這個視頻:https://www.bilibili.com/video/BV1tV4y1H7kY/?spm_id_from=333.788&vd_source=8def8a093b2dd47d3a94e5f5d5069361
1.檢錯編碼:

(1)奇偶校驗碼

(2)循環(huán)冗余碼(CRC)


CRC計算方法?推薦下面這個視頻:
https://www.bilibili.com/video/BV1D44y1D7R1/?spm_id_from=333.337.search-card.all.click&vd_source=8def8a093b2dd47d3a94e5f5d5069361

注意:
CRC在數(shù)據鏈路層無法實現(xiàn)糾錯,只能檢錯,檢測到幀出錯則直接丟棄,是為了方便協(xié)議的實現(xiàn);
但是CRC本身是具有糾錯功能的。
2.糾錯編碼(最常見的是海明碼)
本視頻前56分鐘講解海明碼部分




從上圖可以看出海明碼的優(yōu)勢:二維奇偶校驗用了22個校驗位才只能從矩陣中查找98個數(shù)據位中的一個錯誤;
而海明碼128個數(shù)據位,僅需要8個校驗位。




思考:
海明碼中的數(shù)據位的序號由至少2個校驗位相加得到。如果數(shù)據位錯了一位,那么至少會錯3位(1個數(shù)據位加上2個校驗位)。
最多檢錯2位,最多糾錯1位。
對于海明碼的糾一檢二,大家可以參考
https://blog.csdn.net/qq_44675969/article/details/108554556
海明碼解釋以及海明碼的糾一檢二_阿波羅尼斯圓不是圓的博客-CSDN博客_海明碼能糾正幾位錯



咱們的電腦內存出錯,藍屏了重啟可以;但要是企業(yè)的服務器出問題,就很麻煩,所以在那里我們使用海明碼就很好。


對于這個4-16譯碼器,如果輸入0011,那么輸出端Y3就會輸出0(取反得到1),其他輸出端輸出1(取反得到0);接著與數(shù)據位進行異或運算,其他異或后直接輸出數(shù)據位,Y3這里異或后就會變成相反的數(shù)。那么我們就實現(xiàn)了糾錯。

