當前位置:編程學習大全網 - 源碼下載 - 數據鏈路層之檢錯編碼(奇偶、CRC)

數據鏈路層之檢錯編碼(奇偶、CRC)

概括來說,傳輸中的差錯都是由於噪聲引起的。

全局性 . 由於線路本身電氣特性所產生的隨機噪聲(熱噪聲),是信道固有的,隨機存在的。

解決辦法:提高信噪比來減少或避免幹擾。(對傳感器下手)

局部性 .外界特定的短暫原因所造成的沖擊噪聲,是產生差錯的主要原因。

解決辦法:通常利用編碼技術來解決。

差錯又分為位錯和幀錯。

鏈路層為網絡層提供服務:無確認無連接服務(通信質量好、有線傳輸鏈路),有確認無連接服務,有確認面向連接服務(後面兩種是 針對通信質量差的無線傳輸鏈路)。

數據鏈路層的錯誤主要是比特錯,對於 這些有檢錯編碼(奇偶校驗碼、循環冗余碼CRC)、糾錯編碼(海明碼)

只能檢查出奇數個錯誤,檢錯能力50%。

例:要發送的數據為1101 0110 11 ,采用CRC校驗,生成多項式是10011,那麽最終發送的數據是?

解答:

最終發送的數據是:要發送的數據+FCS幀檢驗序列

計算冗余碼的步驟是:

(1)加0,假設生成多項式G(x)的階為r,則加 r 個0 (多項式N位,階為N-1)

(2)模2除法,數據加0後除以生成多項式,余數為冗余碼(又叫FCS、CRC校驗碼)的比特序列。

那麽接收端如何檢錯呢?

把收到的每壹個幀都除以同樣的除數,然後檢查得到的余數R。

1.余數為0,判定這個幀沒有差錯, 接受 。

2.余數為不為0,判定這個幀有差錯(無法確定到位), 丟棄 。

FCS的生成以及接收端CRC檢驗都是由硬件實現,處理很迅速,因此不會延誤數據的傳輸。

在數據鏈路層僅僅使用循環冗余檢驗CRC差錯檢測技術,只能做到對幀的無差錯接收,即“凡是接收端數據鏈路層接受的幀,我們都能以非常 接近於1 的概率認為這些幀在傳輸過程中沒有產生差錯”。接收端丟棄的幀雖然曾收到了,但是最終還是因為有差錯被丟棄。“ 凡是接收端數據鏈路層接收的幀均無差錯”。

“可靠傳輸”:數據鏈路層發送端發送什麽,接收端就收到什麽。

鏈路層使用CRC檢驗,能夠實現無比特差錯的傳輸,但這還 不是可靠傳輸 。

  • 上一篇:股市恐慌指數怎麽看
  • 下一篇:多媒體營銷工具?
  • copyright 2024編程學習大全網