差錯檢測和糾正技術
寫在前面:這裏是小王成長日誌,一名在校大學生,想在學習之餘將自己的學習筆記分享出來,記錄自己的成長軌跡,幫助可能需要的人。歡迎關注與留言。
這是系列博客 計算機網絡-自頂向下 中的其中一篇,更多博文請訪問專欄 計算機網絡 ,如有錯誤還請各位大佬指
1 奇偶校驗
-
單個奇檢驗
- 在總長度d比特發送信息的末尾添加一個比特使得d+1比特中1的總數是奇數,偶檢驗同理
-
奇偶檢驗的問題
- 對於出現偶數個比特差錯的情況無能爲力
-如果比特差錯的概率小,而且比特之間的差錯可以被看作是獨立發生的,在一個分組中多個比特同時出惜的概率將是極小的,那麼單個奇偶檢驗位可能就足夠了
- 但是測量已經表明了差錯經常以"突發"方式聚集在一起,而不是獨立地發生 。 失誤率達50%。
-
二維奇偶檢驗
- 將**數據分爲i 行 j 列,**對每行和每列計算奇偶值,產生的 i + j + 1 奇偶比特構成了鏈路層幀的差錯檢測比特
- 圖例
-
前向糾錯 (Forward Enor Correction , FEC)
- 接收方檢測和糾正差錯的能力被稱爲前向糾錯
- 這些技術通常用於如音頻 CD 這樣的音頻存儲和回放設備中
2 檢驗和方法
-
因特網檢驗和-對於檢驗和的相關概念以及計算方式已經在這篇博客中給出,有疑惑的讀者可移步-沒搞清運輸層的UDP協議? -哎呀, 早來這看就好了啊
- 總的計算方式:字段相加,超出回捲,總和求反
- 運輸層通常是在主機中作爲用戶操作系統的一部分用軟件實現的。因爲運輸層差錯檢測用軟件實現,採用簡單而快速如檢驗和這樣的差錯檢測方案是重要的 。
3 循環冗餘檢測 (Cyclic RedundancyCheck , CRC) 編碼
-
鏈路層的差錯檢測在適配器中用專用的硬件實現,它能夠快速執行更復雜的 CRC 操作 。
-
對於一個給定的數據段 D , 發送方要選擇 r 個附加比特 R , 並將它們附加到 D 上,使得得到的 d +r 比特模式(被解釋爲一個二進制數)用模 2 算術恰好能被 G 整除 l(即沒有餘數) 。
-
用 CRC 進行差錯檢測的過程因此很簡單:接收方用 G去除接收到的d +r 比特。 如果餘數爲非零,接收方知道出現了差錯 ,否則認爲數據正確而被接收。
-
原理
- 發送方計算機使用某公式計算出被傳送數據所含信息值,並將此值附在被傳送數據後,接收方計則對同一數據相同的應該得到相同的結果。如果這兩個CRC結果不一致,則說明發送中出現了差錯,接收方計算機可要求發送方計算機重新發送該數據
都看到這裏了,各位哥哥姐姐叔叔阿姨給小王點個贊 關個注 留個言吧,和小王一起成長吧,你們的關注是對我最大的支持。
有事沒事進來看看吧 : 小王的博客目錄索引
更多計算機網絡優質博客看這 : 計算機網絡專欄博客索引
如果以上內容有任何不準確或遺漏之處,或者你有更好的意見,就在下面留個言讓我知道吧-我會盡我所能來回答。