什麼是 CSMA?
CSMA (Carrier Sense Multiple Access,載波感測多重存取) 是一種網路通訊協定,用來決定多個裝置如何共用同一條傳輸媒介(如電纜或空氣)。
CSMA/CD
Collision Detection (碰撞偵測)
主要用於 有線網路 (Ethernet)。發送資料時同時監聽,如果發生碰撞,立即停止並發送干擾訊號,等待隨機時間後重試。
CSMA/CA
Collision Avoidance (碰撞避免)
主要用於 無線網路 (Wi-Fi)。因為無線環境難以偵測碰撞,重點在於「避免」。發送前先偵測,若忙碌則隨機等待,發送後需等待 ACK 確認。
1. CSMA/CD 模擬 (有線網路)
Ethernet IEEE 802.3匯流排 (Bus)
A
B
C
控制面板
狀態日誌
> 系統就緒...
> 等待指令...
> 等待指令...
流程說明:
- 監聽 (Sense): 傳送前確認線路是否閒置。
- 傳送 (Transmit): 若閒置則發送訊號。
- 碰撞偵測 (Detection): 傳送時持續監聽,若電壓異常代表碰撞。
- 干擾訊號 (Jam Signal): 若發生碰撞,廣播 Jam Signal 通知所有節點。
- 隨機後退 (Backoff): 等待一段隨機時間後重試。
2. CSMA/CA 模擬 (無線網路)
Wi-Fi IEEE 802.11無線空間 (Air)
AP
Router
STA 1
STA 2
控制面板
狀態日誌
> 系統就緒...
> 連線至 AP...
> 連線至 AP...
流程說明:
- 監聽 (Sense): 傳送前先確認頻道是否閒置。
- IFS 等待: 若閒置,需等待一小段 IFS (Inter-Frame Space) 時間。
- 隨機後退 (Random Backoff): 若頻道忙碌,或剛過 IFS,會啟動隨機倒數計時器,倒數結束才發送。
- 傳送資料 (Data): 發送封包。
- 確認 (ACK): 接收端收到資料後,必須回傳 ACK。若發送端沒收到 ACK,視為失敗重傳。
- *註:此模擬簡化了 RTS/CTS 機制,聚焦於基本的 CA 流程。
比較總結
| 特性 | CSMA/CD | CSMA/CA |
|---|---|---|
| 全名 | Carrier Sense Multiple Access with Collision Detection | Carrier Sense Multiple Access with Collision Avoidance |
| 中文名稱 | 載波感測多重存取附帶碰撞偵測 | 載波感測多重存取附帶碰撞避免 |
| 主要應用 | 有線網路 (Ethernet, IEEE 802.3) | 無線網路 (Wi-Fi, IEEE 802.11) |
| 核心策略 | 「邊說邊聽」。發送時偵測是否衝突,若衝突則停止並重送。 | 「先聽再說」。發送前先盡量避免衝突(透過 Backoff、RTS/CTS)。 |
| 碰撞處理 | 傳送後可偵測碰撞。碰撞是正常機制的一部分。 | 無法邊傳邊聽(無線訊號衰減問題)。透過 ACK 確認是否成功。 |
| 效率 | 較高。因為一旦偵測到碰撞就立即停止,不浪費頻寬。 | 較低。需要等待時間 (IFS)、倒數計時及 ACK 確認,額外開銷大。 |