計算機網絡體系之混合模型之數據鏈路層

數據鏈路層可以簡單理解爲傳送數據的鏈路加上實現控制數據傳輸的通信協議的軟件和硬件。在談論數據鏈路層的功能的時候,我們通常在兩個對等的數據鏈路層的節點假想一條數據通道,而數據通道上傳輸的數據單位是幀。而我們知道數據鏈路層的下層物理層的傳輸的數據單位是比特,那麼數據鏈路層的一個問題就是如何把比特組成幀。爲了區分幀的開始和結束,那麼又涉及到另外一個問題就是幀定界。

總的概括數據鏈路層的主要功能如下:

(1)鏈路管理:即鏈路的建立、維持和釋放。當兩個節點需要進行通信,數據發送方要知道接收方是否準備好了,爲此就要事先約定好一些規則,然後正式通信前交換一些必要的信息。

(2幀定界(幀同步):數據鏈路層數據的傳輸單位是幀,那麼數據必須是一幀一幀的傳送,收方應當能從收到的比特流中準確地區分一幀的開始和結束在什麼地方。

(3)流量控制:發方發送數據的速率必須使收方來得及接收,當接不住的時候通過一些反饋機制及時控制發方發送數據的速率。

(4)差錯控制:由於向前糾錯(自動把差錯改正)開銷較大不適合計算機通信,故採用差錯檢測,檢測到差錯就丟棄出錯的幀。接下來有兩種選擇,不做處理由高層處理,或者通過相關機制由數據鏈路層負責重傳。

(5)區分數據和控制信息:通常數據和控制信息位於同一幀中,應當有一種機制可以使收方能夠區分兩者。

(6)透明傳輸:當所傳數據中的比特組合恰巧與控制信息相同,必須有轉義機制讓收方不會將這種比特組合的數據信息誤認爲是某種控制信息。

(7)尋址:幀帶有源址和目的地址,保證信息送達正確的地方。

具有最簡單的流量控制機制的數據鏈路層協議---停止等待協議

停止等待協議由兩個機制保證,確認機制和超時機制。接收方每正確收到發送方發的一幀,回一個ACK,放送方收到ACK後纔會發送新的一幀。爲了防止幀丟失或者ACK丟失造成的死鎖現象,採用了計時器,如果發送方在一定時間內沒有收到ACK,發送方就重傳上一幀。此處爲了解決重複幀的問題,引入序列號,即增加額外的開銷用來區分不同的幀。另外捎帶提一下的是,數據鏈路層廣泛採用CRC(循環冗餘檢驗)的檢錯技術檢錯。正是由於數據鏈路層的停止等待協議採用了有效的檢錯重傳的機制,所以可以說數據鏈路層對上面網絡層提供了可靠傳輸的服務。

發送端對出錯的數據幀進行的重傳是自動進行的,這種差錯控制機制簡稱ARQ(自動重傳請求)。

連續ARQ協議

連續ARQ協議的要點在於發送一個數據幀後,不是停下來等待確認幀而是可以連續發送若干個數據幀。但連續ARQ協議存在兩個問題,一個是當未確認的數據幀太多時,只要一個數據幀出錯,就可能要有很多數據幀需要重傳,這必然就要增大開銷。另一個問題是,爲了對所發送出去的大量數據幀進行編號,每個數據幀的發送序號也要佔用較多的比特數,這樣又增加了新的開銷。

滑動窗口協議

在連續ARQ協議中,應當將已發送但未確認的數據幀的數目加以限制,即設定所謂的發送窗口和接收窗口。

面向比特的鏈路控制規程HDLC

HDLC的幀結構,數據鏈路層的數據傳送是以幀爲單位的,一個幀的結構具有固定的格式。信息字段的長度沒有具體的規定,數據鏈路層在信息字段的首尾加上各24比特的控制信息,構成一個完整的幀。其中開頭結尾放上一個字節的特殊標記作爲幀的邊界,這個特殊標記叫做標誌字段F(6個連續的1加上兩頭各一個0共8比特)。爲了避免歧義,信息字段採用零填充法保證不出現6個連續的1,即每五個連續的1後插入一個0,接收方每發現五個連續的1就刪去後面的0,從而還原信息。開始標誌後面是8比特的地址信息,然後是8比特的控制信息。結束標誌之前是16比特的幀檢驗序列(FCS)。

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