- 計算機網絡
- 陳虹 肖成龍
- 2356字
- 2019-11-29 18:57:26
4.1 數據鏈路層的基本概念
數據鏈路層利用不可靠的物理線路向網絡層提供可靠的數據鏈路,并在物理層提供的服務基礎上向網絡層提供相應服務,其最基本的服務是將源節點網絡層傳遞過來的數據可靠地傳送到相鄰節點。數據鏈路層是以幀為單位傳輸數據,同時具備差錯檢測、流量控制和透明傳輸等功能。
4.1.1 數據鏈路層的定義
1.設置數據鏈路層的原因
設置數據鏈路層的主要目的是解決物理層傳輸的不可靠問題,提供功能上和規程上的方法,以便建立、維護和釋放網絡實體間的數據鏈路。設置數據鏈路層的主要原因如下。
1)盡管物理層采取了一些必要的措施來減少信號傳輸過程中噪聲的干擾,但數據在物理傳輸過程中仍然可能受到影響,使得物理傳輸過程中可能會產生差錯。
2)由于物理層只關心原始比特流的傳送,不考慮所傳輸信號的意義和信息的結構,即物理層無法識別或判斷數據在傳輸過程中是否發生了變化,因此也無法采取補救措施。
3)物理層無法處理當發送節點的發送速率過快而接收節點的接收速率過慢時可能發生的數據被淹沒現象,即物理層不能協調發送節點的發送速率和接收節點的接收速率。
因此,網絡僅有物理層的功能是不夠的,位于物理層之上的數據鏈路層就是為了克服物理層的這些不足而設立的。
2.數據鏈路層的定義
數據鏈路層利用不可靠的物理鏈路向網絡層提供可靠的數據鏈路,實現網絡中兩個相鄰節點之間的無差錯數據傳輸。它利用物理層提供的原始比特流傳輸服務,檢測并校正物理層的傳輸差錯,在相鄰節點之間構成一條無差錯的鏈路,從而向網絡層提供可靠的數據傳輸服務。將實現通信協議的硬件和軟件加到物理鏈路上所構成的可以通信的鏈路稱為數據鏈路,又稱為邏輯鏈路。數據鏈路層模型如圖4-1所示。

圖4-1 數據鏈路層模型
4.1.2 數據鏈路層的主要功能
為了完成在不太可靠的物理鏈路上實現可靠的數據幀傳輸任務,數據鏈路層應具備一定的功能。
1.數據鏈路層的主要功能
1)成幀。數據鏈路層把來自網絡層的比特流劃分成易處理的數據單元(稱為幀)。成幀是指將數據劃分成幀的方法,即如何界定幀的界限。通常一個幀包括幀首、幀尾、地址信息、控制信息、數據和校驗信息等幾個部分。幀首和幀尾標志幀的開始和結束;幀的控制信息中含有幀序號,當出現傳輸差錯時,只需要將有差錯的幀重傳即可,避免了重傳全部數據的問題。幀的定界有字符計數法、首尾界符法、首尾標志法等多種方法。
2)幀的透明傳輸。成幀方法是在幀中增加了一些控制信息,以確定幀的定界,為了保證幀的透明傳輸,還需要進行一些特殊的處理,否則將不能正確地區分數據與控制信息,而這些特殊的處理對高層來說是透明的。
3)流量控制。如果接收節點接收數據的速率小于發送節點發送的速率,則將會造成接收節點緩沖區溢出現象,從而使接收數據丟失。流量控制就是對發送方發送數據的速度加以控制,以免超過接收方的接收能力而導致數據丟失的機制。
4)差錯控制。差錯控制就是接收方對接收到的數據幀進行校驗,如果發生差錯,則應該能夠對錯誤幀進行相應處理。數據鏈路層一般采用在信息位中添加冗余碼的方法進行差錯校驗,接收方利用冗余碼可以檢測出接收到的幀是否存在差錯,如果有錯,既可以采用糾錯編碼前向糾錯,也可以將它丟棄,并通知發送方重傳出錯的數據幀。差錯控制通常在一個幀的結束處增加一個尾部來處理。
5)數據鏈路管理。如果在數據鏈路上傳送數據采用面向連接的方式,則發送方和接收方之間需要有建立、維持和釋放數據鏈路連接的管理功能。
6)鏈路訪問控制。當兩個以上的節點連接到同一條鏈路上時,數據鏈路協議必須能決定在任意時刻由哪一個節點來獲取對鏈路的控制權。介質訪問控制協議(MAC協議)定義了幀在鏈路上傳輸的規則。對于點對點鏈路,MAC協議比較簡單或者不存在;對于多節點共享廣播鏈路,MAC協議用來協調多個節點的幀的傳輸,屬于多址訪問問題。
7)物理尋址。在一條點到點直達的鏈路上不存在尋址問題,在多點連接的情況下,數據鏈路層可以通過編址及識別相應的地址(一般稱為硬件地址)來保證每一幀數據都能傳送到規定的目的地,接收方也應能識別出接收到的數據幀來自哪里。
數據鏈路層的流量控制和差錯控制將有差錯的物理鏈路變為無差錯的邏輯鏈路。
2.數據鏈路層向網絡層提供的服務
數據鏈路管理:當數據鏈路兩端的節點進行通信時,需要根據具體情況配置數據鏈路層,使之能為網絡層提供多種不同類型的服務。主要提供以下3種服務。
1)無確認的無連接服務。無確認的無連接服務簡單,適用于低誤碼率環境中的數據傳輸。大多數局域網的數據鏈路層都使用無確認的無連接服務。該服務主要包含以下5個方面。
● 雙方無須建立鏈路連接。
● 每個幀都帶有目的地址。
● 各幀相互獨立傳送。
● 目的節點對收到的幀不做任何應答確認。
● 由高層處理丟失的幀,數據鏈路層不做處理。
2)有確認的無連接服務。有確認的無連接服務是在無確認的無連接服務基礎上增加了確認功能,適用于可靠性不高的通信信道。該服務主要包含以下兩個方面。
● 目的節點對接收到的每一幀都要向發送方發送確認幀(ACK)。
● 發送方利用超時機制處理確認幀,每發送一個數據幀的同時啟動一個定時器,若在規定時間內未收到對該幀的肯定確認幀,則發送方啟動超時重傳機制,重傳該數據幀。
3)面向連接服務。面向連接服務是指在數據傳輸之前首先建立數據鏈路連接,然后所有的數據幀均在該鏈路中依次按序傳輸,最后傳輸結束時再釋放該連接,適用于實時傳輸或對數據傳輸有較高可靠性要求的環境。面向連接服務主要分為以下3個階段。
● 連接建立階段。在傳送數據之前,首先利用服務原語在發送方和接收方之間建立一條連接(即建立數據鏈路)。
● 連接維持階段。發送方和接收方進行數據幀的透明傳輸。所有的數據幀都帶有自己的編號,傳輸過程中要求對每一幀進行確認,發送方收到確認幀后才能發送下一幀。
● 連接斷開階段。數據傳輸結束后,發送方和接收方妥善釋放數據鏈路。