Linux網絡編程基礎_3_數據鏈路層(上)

數據鏈路層(上)



一、數據鏈路層的功能

鏈路層的主要功能包括鏈路管理、幀同步、流量控制、差錯控制、數據和控制信息分開、透明傳輸和尋址。

數據鏈路層傳輸的是數據幀。

MTU:數據鏈路層的數據幀長;SOH:幀開始字符;EOT:幀結尾字符;


二、如何解決傳輸過程中的“透明傳輸”?

1、零比特填充

基本原理:將需要傳輸的數據塊看作比特序列,在數據塊前和後各加入一個特殊的比特序列(前文位模式和後文位模式,01111110),表示數據塊的起始和結束,從而構成最終傳輸的幀。

注意:只要出現了5個連續的1,則必須加上一個0

2、面向字符的填充方法

基本思想,把需要傳輸的數據塊看作字符序列,在數據塊前和後各加入一個特殊點額字符序列(前文字符模式和後文字符模式,Ox7E),表示數據塊的起始和結束,從而構成最終傳輸的幀。


三、差錯控制

1、檢錯編碼

在數據鏈路層傳送的幀中,廣泛使用了循環冗餘檢驗CRC的檢錯技術。【冗餘計算】

在數據後面添加的冗餘碼,稱爲幀檢驗序列FCSFrameCheck Sequences


2、糾錯編碼

當計算機存儲或移動數據時,可能會產生數據位錯誤,這時可以利用漢明碼來檢測並糾錯,簡單的說,漢明碼是一個錯誤校驗碼碼集,Bell實驗室的R.W.Hamming發明,因此定名爲漢明碼。


四、流量控制和可靠傳輸機制

1、停止-等待協議

空閒RQ:發送窗口=1,接收窗口=1;

累積確認


2、後退N幀協議(GBN)

GO-DACK-N策略的基本原理是,當接收方檢測出失序的信息幀後,要求發送方重發最後一個正確接收的信息幀之後的所有未被確認的幀;或者當發送方發送了N個幀後,若發現該N幀的前一個幀在計時器超時後仍未返回其確認信息,則該幀被判爲出錯或丟失,此時發送方就不得不重新發送出錯幀及其後的N幀。這就是GO-DACK-N(退回N)法名稱的由來。

Go-back-N: 發送窗口>1,接收窗口>1;


3、選擇重傳協議(SR)

另一種效率更高的策略是當接收方發現某幀出錯後,其後繼續送來的正確的幀雖然不能立即遞交給接收方的高層,但接收方仍可收下來,存放在一個緩衝區中,同時要求發送方重新傳送出錯的那一幀。一旦收到重新傳來的幀後,就可以原已存於緩衝區中的其餘幀一併按正確的順序遞交高層。這種方法稱爲選擇重發(SELECTICEREPEAT)

選擇重發:發送窗口>1,接收窗口>1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章