---
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進行通訊。

- 四種分類:
- 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個功能不同的命令**

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)

3. 管理命令 (Supervisory Commands):
> **管理通訊連線的使用**的3種命令:
> 1. Receive Ready (RR)
> 2. Receive Not Ready(RNR)
> 3. Reject(REJ)
>
> **這 3 種命令是通訊連線的接收端用來回應傳送端的要求時使用**

___
### 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 )已收到資料編號
> 
> # **實作補充.......**
___
### 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>