簡介
載波偵聽多路訪問(英語:Carrier Sense Multiple Access,縮寫:CSMA)是一種介質訪問控制(MAC)的協定。 載波偵聽(Carrier Sense) 指任何連線到介質的設備在欲傳送幀前,必須對介質進行偵聽,當確認其空閒時,才可以傳送。 多路訪問(Multiple Access) 指多個設備可以同時訪問介質,一個設備傳送的幀也可以被多個設備接收。
CSMA依偵聽/傳送策略的分類
根據具體的偵聽/傳送策略,可將CSMA分為
非持續CSMA(英語:non-persistent CSMA)
當要傳送幀的設備偵聽到線路忙或發生碰撞時,會隨機等待一段時間再進行偵聽;若發現不忙則立即傳送;此策略可以減少碰撞,但會導致信道利用率降低,以及較長的延遲。
1-持續CSMA(英語:1-persistent CSMA)
當要傳送幀的設備偵聽到線路忙或發生碰撞時,會持續偵聽;若發現不忙則立即傳送。當傳播延遲較長或多個設備同時傳送幀的可能性較大時,此策略會導致較多的碰撞,導致性能降低。
p-持續CSMA(英語:p-persistent CSMA)
當要傳送幀的設備偵聽到線路忙或發生碰撞時,會持續偵聽;若發現不忙,則根據一個事先指定的機率p來決定是傳送幀還是繼續偵聽(以p的機率傳送,1-p的機率繼續偵聽);此種策略可以達到一定的平衡,但對於參數p的配置會涉及比較複雜的考量。
正確使用以上策略可以在一定程度上減少碰撞的發生,但無法徹底解決碰撞問題。 [1]
強化 CSMA 的方案
載波偵聽多路訪問/碰撞檢測(CSMA/CD)
英語:Carrier Sense Multiple Access with Collision Detection
此方案要求設備在傳送幀的同時要對信道進行偵聽,以確定是否發生碰撞,若在傳送數據過程中檢測到碰撞,則進行如下碰撞處理操作:
1.傳送特殊阻塞信息並立即停止傳送數據:特殊阻塞信息是連續幾個位元組的全1信號,此舉意在強化碰撞,以使得其它設備能儘快檢測到碰撞發生。
2.在固定時間(一開始是1 contention period times)內等待隨機的時間,再次傳送。
3.若依舊碰撞,則採用截斷二進制指數避退算法進行傳送。即十次之內停止前一次“固定時間”的兩倍時間內隨機再傳送,十次後則停止前一次“固定時間”內隨機再傳送。嘗試16次之後仍然失敗則放棄傳送。
此方案套用於乙太網(DIX Ethernet V2)標準,IEEE 802.3標準。
載波偵聽多路訪問/碰撞避免(CSMA/CA)
英語:Carrier Sense Multiple Access with Collision Avoidance
此種方案採用主動避免碰撞而非被動偵測的方式來解決碰撞問題。可以滿足那些不易準確偵測是否有碰撞發生的需求,如無線網域。
CSMA/CA協定主要使用兩種方法來避免碰撞:
1.設備欲傳送訊框(Frame),且訊框聽到通道空閒時,維持一段時間後,再等待一段隨機的時間依然空閒時,才提交數據。由於各個設備的等待時間是分別隨機產生的,因此很大可能有所區別,由此可以減少碰撞的可能性。
2.RTS-CTS三向握手(英語:handshake):設備欲傳送訊框前,先傳送一個很小的RTS(Request to Send)訊框給最近的接入點(Access Point),等待目標端回應CTS(Clear to Send)幀後,才開始傳送。此方式可以確保接下來傳送數據時,不會發生碰撞。同時由於RTS幀與CTS幀都很小,讓傳送的無效開銷變小。
此方案套用於無線區域網路的IEEE 802.11標準。
相關條目
•IEEE 802.3
•Ethernet
•IEEE 802.11
•介質訪問控制