OSI 數據鏈路層的功能是:使網絡層數據包做好傳輸準備以及控制對物理介質的訪問。
數據鏈路層執行以下兩種基本服務:
1) 允許上層使用成幀之類的各種技術訪問介質
2) 控制如何使用介質訪問控制和錯誤檢測之類的各種技術將數據放置到介質上, 以及從介質接收數據。
數據鏈路層的術語:
l 幀 — 數據鏈路層 PDU
l 節點 — 在第 2 層對連接到公共介質的網絡設備的稱謂
l 媒體/介質(物理) — 用於在兩個節點之間傳輸信息的物理手段
l 網絡(物理) — 連接到公共介質的兩個或多個節點
數據鏈路層的作用就是:根據物理的介質來封裝幀的格式,以便在介質能夠傳輸。(到達一個目的的終端,中間可能封裝了多個幀格式)
創建幀:
數據鏈路層協議需要控制信息才能使協議正常工作。控制信息可能提供以下信息:
l 哪些節點正在相互通信
l 各節點之間開始通信和結束通信的時間
l 節點通信期間發生了哪些錯誤
l 接下來哪些節點會參與通信
數據鏈路層幀包括:
l 數據 — 來自網絡層的數據包
l 幀頭 — 包含控制信息(如編址信息)且位於 PDU 開頭位置
l 幀尾 — 包含添加到 PDU 結尾處的控制信息
數據鏈路層是將上層的數據包加上幀頭和幀尾,以便可以在介質上傳輸。
控制典型字段類型包括:
l 開始和停止指示字段 — 幀的開始和結束限制
l 命名或編址字段
l 類型字段 — 包含在幀中的 PDU 的類型
l 質量 — 控制字段
l 數據字段 — 幀負載(網絡層數據包)
數據鏈路層分爲2個子層:
邏輯鏈路控制:將數據包封裝層幀,表示網絡層協議。
介質訪問控制:標明幀的地址,標示幀的開始和結束位置。
共享介質的介質訪問控制:
對於共享介質,有兩種基本介質訪問控制方法:
受控 — 每個節點各自都有使用介質的時間(就是說你用完了我在用。)
爭用 — 所有節點自由競爭介質的使用權(就是大家都在搶這使用。)這種機制會造成網絡的混亂,爲了防止在介質上造成混亂,使用了載波監聽多路訪問(CSMA)就是說先檢測一下介質是否正在傳輸數據,如果檢測到有數據在則等待一個時間在檢查,如果沒有就直接發送。由於網絡的節點增加,無衝突的概率不斷降低。(爲什麼會降低:如果沒有人在使用介質,那麼2個數據同時發送則就出現了衝突!)
CSMA 通常與用於解決介質爭用的方法配合使用。兩種常用方法爲:
載波偵聽多路訪問/衝突檢測(CSMA/CD)
設備監視介質中是否存在數據信號。若無數據信號,則表示介質處於空閒狀態,設備可傳輸數據。如果隨後檢測到另一設備此時正在進行傳輸,所有設備將停止發送並在稍後重試。傳統的以太網形式便是使用此方法。
載波偵聽多路訪問/衝突避免(CSMA/CA)
設備會檢查介質中是否存在數據信號。如果介質空閒,設備將通過它想要使用的介質發送通知。然後,設備開始發送數據。802.11 無線聯網技術即是使用此方法。
非共享介質的介質訪問控制:
非共享介質的介質訪問控制協議需要少量甚至不需要控制。這些協議具有更簡單的介質訪問控制規則和過程。點對點拓撲即是如此。
在點對點連接中,數據鏈路層必須考慮通信爲半雙工還是全雙工。
半雙工:就想對講機一樣一端說話另一端就不能說話。
全雙工:就想電話一樣雙方可以同時傳送數據!
數據鏈路層協議------幀:
雖然有許多描述數據鏈路層幀的不同數據鏈路層協議。
每種幀均都有三個基本組成部分:
1)幀頭
2)數據
3)幀尾
幀頭的功能:幀頭包含了數據鏈路層協議針對使用的特定邏輯拓撲和介質指定的控制信息。幀控制信息對於每種協議均是唯一的。第 2 層協議使用它來提供通信環境所需的功能。
典型幀頭字段包括:
l 幀首字段 — 表示幀的起始位置
l 源地址和目的地址字段 — 表示介質上的源節點和目的節點
l 優先級/服務質量字段 — 表示要處理的特殊通信服務類型
l 類型字段 — 表示幀中包含的上層服務
l 邏輯連接控制字段 — 用於在節點間建立邏輯連接
l 物理鏈路控制字段 — 用於建立介質鏈路
l 流量控制字段 — 用於開始和停止通過介質的流量
l 擁塞控制字段 — 表示介質中的擁塞
編址—幀的去向:數據鏈路層提供了通過共享本地介質傳輸幀時要用到的編址方法。此層中的設備地址稱爲物理地址。數據鏈路層地址包含在幀頭中,它指定了幀在本地網絡中的目的節點。幀頭還可能包含幀的源地址。
編址要求
該層中的數據鏈路層編址需求取決於邏輯拓撲。
僅具有兩個互連節點的點對點拓撲不需要編址。一旦到了介質上,幀就只有一個去處。
由於環拓撲和多路訪問拓撲可連接公共介質上的多個節點,因而此類拓撲需要編址。在幀到達拓撲中的各節點時,節點會檢查幀頭中的目的地址以確定自身是否爲幀的目的地。