乙太網路(Ethernet)使用的媒體存取控制協定是「載波感測多重存取/碰撞偵測」(Carrier Sense Multiple Access with Collision Detection,CSMA/CD)。這是一種競爭式的網路存取方法,適用於共享式網路環境。以下是 CSMA/CD 協定的詳細工作方法:
1. 載波感測(Carrier Sense)
每個節點在發送數據之前,首先監聽網路上的信號(載波)。如果網路上有其他數據在傳輸,節點將等待,直到檢測到網路空閒為止。這個過程稱為「載波感測」。
2. 多重存取(Multiple Access)
網路中的多個節點可以同時嘗試存取媒體。這意味著任何節點都可以在檢測到網路空閒後開始傳輸數據,這種方式允許多個節點共享同一條通信介質。
3. 碰撞偵測(Collision Detection)
由於多個節點可能同時檢測到網路空閒並開始傳輸數據,這可能導致數據碰撞。碰撞發生時,數據將混合在一起,使得數據包無法被正確解讀。每個發送中的節點都會持續監聽網路以檢測碰撞。如果節點在傳輸過程中檢測到碰撞,它將立即停止傳輸。
工作方法
-
監聽(Carrier Sense)
- 節點監聽網路,檢測是否有其他節點正在傳輸數據。如果網路空閒,節點可以進行下一步;如果網路繁忙,節點將等待網路空閒。
-
傳輸數據(Transmission)
- 當網路空閒時,節點開始傳輸數據包。在傳輸過程中,節點持續監聽網路以檢測碰撞。
-
碰撞偵測(Collision Detection)
- 如果節點在傳輸過程中檢測到碰撞,它會立即停止傳輸,並發送一個「碰撞信號」給網路上的所有節點,通知發生了碰撞。
-
退避算法(Backoff Algorithm)
- 發生碰撞後,節點會根據退避算法計算一個隨機的退避時間。節點等待這段時間後,再次嘗試傳輸數據。退避時間通常使用二進制指數退避算法計算,即每次碰撞後退避時間會指數增加,減少再次碰撞的概率。
-
重試傳輸(Retransmission)
- 節點在等待退避時間後,再次監聽網路,重複上述步驟,直到數據成功傳輸。
範例流程
假設有兩個節點 A 和 B:
- 節點 A 和 B 同時監聽到網路空閒。
- 節點 A 和 B 同時開始傳輸數據。
- 發生碰撞,A 和 B 檢測到碰撞並停止傳輸。
- 節點 A 和 B 發送碰撞信號,通知所有節點發生碰撞。
- 節點 A 和 B 使用退避算法計算退避時間,等待一段隨機時間後再次嘗試傳輸。
- 節點 A 先計算完退避時間並監聽到網路空閒,開始傳輸數據並成功完成。
- 節點 B 在等待其退避時間後,再次監聽網路,發現網路空閒,開始傳輸數據並成功完成。
優點和缺點
優點:
- 簡單性:CSMA/CD 協定實現簡單,適用於中小型網絡。
- 動態分配:不需要固定的時隙或預定義的傳輸順序,靈活性高。
缺點:
- 碰撞增加:隨著網絡節點數量和流量的增加,碰撞發生的概率上升,性能下降。
- 效率低下:在高負載情況下,退避算法可能導致大量的等待時間,降低網絡效率。
- 延遲不可預測:由於碰撞和退避時間的存在,傳輸延遲不可預測,影響實時應用。
總結
乙太網路使用的媒體存取控制協定 CSMA/CD 透過載波感測、多重存取和碰撞偵測來管理數據傳輸。該協定簡單靈活,但在高負載網絡環境中效率會降低,並且碰撞和延遲會增加。隨著交換式乙太網路(Switched Ethernet)的普及,CSMA/CD 在現代網絡中的使用已經減少,但它仍然是理解網絡協定的重要基礎。