--- title: CH3.IEEE 802.2 邏輯鏈結控制 (LLC實體層) tags: 區域網路與高速網路 --- ## 區域網路與高速網路 ### CH3. IEEE 802.2 邏輯鏈結控制 (LLC) ___ ### 簡述 鏈結層(Data Link Layer) 分為二個部分:邏輯鏈結控制(Logical Link Control, LLC)、媒介擷取控制(Medium Access Control, MAC) MAC制定傳輸媒介的通訊協定,LLC控制訊號的交換(不同MAC使用相同的LLC使上層不須依賴MAC層的網路架構)。 #### LLC規格分為: 1. 向上,網路層通訊協定的介面。 2. 向下,MAC層通訊協定的介面。 3. 平行,與其他工作站上的LLC 之間的通訊協定。 - LLC以服務點(Service Access Point,SAP)提供連線服務,以成對的DSAP及SSAP進行通訊。 ![](https://i.imgur.com/PjHtAx7.png) - 四種分類: - Type 1:非連接服務(Connectionless Service) - Type 2:連接導向服務(Connection Oriented Service) - Type 3:非連接附確認服務(Connectionless with Acknowledgement Service) - Type 4:提供Type 1~3 所有服務。 ___ #### 服務基礎呼叫 給網路層的服務有三種基礎呼叫(**primitives**): - 要求 **Request**:提出服務的要求 - 通知 **Indication**:指示其上端的網路層軟體 - 確認 **Confirm**:回覆剛才所提出的要求(要求成功或失敗等) #### TYPE 1 - 不提供可靠的傳送服務,因此沒有「確認基礎呼叫」。 - 提供二個基礎呼叫: > 1. DL-UNITDATA.request (傳送資料) > 2. DL-UNITDATA.indication(指示接收資料) #### Type 2 - 提供五類基本呼叫: 通訊連線的建立(**Connection establishment**)、資料的傳送(**Data transfer**)、通訊連線的終止(**Connection termination**)、通訊連線的重設(**Connection resetting**)、通訊連線的資料流量控制(**Connection flow control**) 1. 通訊連線的建立(Connection establishment) > - DL_CONNECT.request > - DL_CONNECT.indication > - DL_CONNECT.response > - DL_CONNECT.confirm 2. 資料的傳送(Data transfer) > - DL_DATA.request > - DL_DATA.indication 3. 通訊連線的終止(Connection termination) > - DL_DISCONNECT.request > - DL_DISCONNECT.indication 4. 通訊連線的重設(Connection resetting) > - DL_RESET.request > - DL_RESET.indication > - DL_RESET.response > - DL_RESET.confirm 5. 通訊連線的資料流量控制(Connection flow control) > - DL_CONNECTION_FLOWCONTROL.request > - DL_CONNECTION_FLOWCONTROL. #### TYPE 3 - 提供的基礎呼叫指令: > - DL_DATA_ACK.request > - DL_DATA_ACK.indication > - DL_DATA_ACK_STATUS.indication > - DL_REPLY.request > - DL_REPLY.indication > - DL_REPLY_STATUS.indication > - DL_REPLY_UPDATE.request > - DL_REPLY_UPDATE_STATUS.indication ### LC/MAC 介面規格 - MA_UNITDATA.request - MA_UNITDATA.indication - MMA_UNITDATA.STATUS.indication ___ ### LLC 通訊協定 LLC 溝通 PDU 分為三種命令:Unnumbered Commands、Information Transfer Command、Supervisory Commands 1. 未編號命令 (Unnumbered Commands) **8個功能不同的命令** ![](https://i.imgur.com/o0Pc0aQ.png) 2. 資料傳送命令(Information Transfer Command): **傳送資料用** - 控制欄 (control field) 2 bytes(Send count:N( S )、Receive count:N( R ))。 - 將資料加入編號,「順序編號」(sequence number) 。 > Note: > PDU = Protocol Data Unit > N( S ):資料編號。 > N( R ):SSAP希望下一個收到對方(DSAP)送來的PDU上的N( S )值。 > NS, NR 7bits(0~127) ![](https://i.imgur.com/W7TyX17.png) 3. 管理命令 (Supervisory Commands): > **管理通訊連線的使用**的3種命令: > 1. Receive Ready (RR) > 2. Receive Not Ready(RNR) > 3. Reject(REJ) > > **這 3 種命令是通訊連線的接收端用來回應傳送端的要求時使用** ![](https://i.imgur.com/zJSvRJf.png) ___ ### Type 1 通訊協定 沒有提供可靠的傳送服務,因此其通訊協定只有3 種未編號命令: 1. SSAP 對目標 DSAP 的**各別** SAP 2. SSAP 對目標 DSAP 中**一群** SAP 3. SSAP 對目標 DSAP 的**全體** SAP 當 LLC 接收到一個未編號資料時並不做順序檢查(PDU中無此欄位),也不回送回覆資料(Acknowledgement) ,傳送發生錯誤則造成資料流失。 ### Type 2 通訊協定 必須提供可靠的資料傳送,需預先連線並將資料依發送順序編碼避免遺失,設有計時器(timer)。在timer timeout前未收到成功的回應便清除緩衝並重送(retransmission)。 資料出錯的原因:data lost、duplicate、out of order ___ ### 交換識別碼 (Exchange Identification, XID) - TYPE 2中提供傳送連續資料筆數 - XID 命令來交換的資訊可能有: > - 檢查對方是否存在網路上 > - 識別一個群體中全部LLC > - 檢查address重複 > - 發送上線通知 > - 測試 (Test):測試連線路徑是否仍然存在 ___ ### 通訊連線的建立與終止 傳送端 LLC 收到:UA(Unnumbered Acknowledgement) 命令時則表示 SSAP 通訊連線的任何一端都可以 DISC (Disconnect) 命令來要求終止通訊連線 ___ ### 滑動視窗法 (Sliding window) - 目的:在控制通訊連線上的資料流量 - 原因:收發端都需要有緩衝器 - 停止與等待法(Stop-and-wait):每筆資料都要等待回覆才可以再送資料。不需要大量緩衝器,缺點是資料傳送慢。 - 動作原理: > - 將傳送資料編號(Sequence number) > - N( S )傳送編號,N( R )已收到資料編號 > ![](https://i.imgur.com/byS7vRt.png) > # **實作補充.......** ___ ### TYPE 3 通訊協定 - 每一筆資料都要確認傳輸成功相對type 2較為單純,但相對不利於大黨傳輸。 > 1.DL_REPLY.request:請求資料傳輸 > 2.DL_REPLY.indication:通知上層傳送資料 > 3.DL_REPLY_STATUS.indication:回覆結果(成功/失敗)</br> <center class="half"> <img src="https://i.imgur.com/m4u4YFo.png" width="60%"/> <img src="https://i.imgur.com/m47teXI.png" width="35%"/> </center> <center class="half"> <img src="https://i.imgur.com/USTNxTx.png" width="60%"/> <img src="https://i.imgur.com/1x5xXPa.png" width="35%"/> </center>