CSMA/CA

CSMA/CA

無線區域網路標準802.11的MAC和802.3協定的MAC非常相似,都是在一個共享媒體之上支持多個用戶共享資源,由傳送者在傳送數據前先進行網路的可用性檢測。在802.3協定中,是由一種稱為CSMA/CD(Carrier Sense Multiple Access with Collision Detection)的協定來完成調節,這個協定解決了在Ethernet上的各個工作站如何線上纜上進行傳輸的問題,利用它檢測和避免當兩個或兩個以上的網路設備需要進行數據傳送時網路上的衝突。在802.11無線區域網路協定中,衝突的檢測存在一定的問題,這個問題稱為"Near/Far"現象,這是由於要檢測衝突,設備必須能夠一邊接受數據信號一邊傳送數據信號,而這在無線系統中是無法辦到的。

概述

無線區域網路標準802.11的MAC和802.3協定的MAC非常相似

CSMA/CA的過程

,都是在一個共享媒體之上支持多個用戶共享資源,由傳送者在傳送數據前先進行網路的可用性檢測。在802.3協定中,是由一種稱為CSMA/CD(Carrier Sense Multiple Access with Collision Detection)的協定來完成調節,這個協定解決了在Ethernet上的各個工作站如何線上纜上進行傳輸的問題,利用它檢測和避免當兩個或兩個以上的網路設備需要進行數據傳送時網路上的衝突。在802.11無線區域網路協定中,衝突的檢測存在一定的問題,這個問題稱為"Near/Far"現象,這是由於要檢測衝突,設備必須能夠一邊接受數據信號一邊傳送數據信號,而這在無線系統中是無法辦到的。

鑒於這個差異,在802.11中對CSMA/CD進行了一些調整,採用了新的協定CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)或者DCF(Distributed Coordination Function)。 CSMA/CA利用ACK信號來避免衝突的發生,也就是說,只有當客戶端收到網路上返回的ACK信號後才確認送出的數據已經正確到達目的地址。

工作原理

這種協定實際上就是在傳送數據幀之前先對信道進行預約。下面為了方便解釋這種技術的主要原理請大家先看下圖。

CSMA/CA協定中的RTS和CTS幀CSMA/CA協定中的RTS和CTS幀

① 在圖中,

● 站B、站C、站E在站A 的無線信號復蓋的範圍內。而站D不在其內。

● 站A、站E、站D在站B 的無線信號復蓋的範圍內,但站C不在其內。

② 如果站A要向站B傳送數據,那么,站A在傳送數據幀之前,要先向站B傳送一個請求傳送幀RTS(Request To Send)。在RTS幀中已說明將要傳送的數據幀的長度。站B收到RTS幀後就向站A回應一個允許傳送幀CTS(Clear To Send)。在CTS幀中也附上A欲傳送的數據幀的長度(從RTS幀中將此數據複製到CTS幀中)。站A收到CTS幀後就可傳送其數據幀了。現在討論在A和B兩個站附近的一些站將做出什麼反應。

● 對於站C,站C處於站A的無線傳輸範圍內,但不在站B的無線傳輸範圍內。因此站C能夠收聽到站A傳送的RTS幀,但經過一小段時間後,站C收聽不到站B傳送的CTS幀。這樣,在站A向站B傳送數據的同時,站C也可以傳送自己的數據而不會干擾站B接收數據(注意:站C收聽不到站B的信號表明,站B也收聽不到站C的信號)。

● 對於站D,站D收聽不到站A傳送的RTS幀,但能收聽到站B傳送的CTS幀。因此,站D在收到站B傳送的CTS幀後,應在站B隨後接收數據幀的時間內關閉數據傳送操作,以避免干擾站B接收自A站發來的數據。

● 對於站E,它能收到RTS幀和CTS幀,因此,站E在站A傳送數據幀的整個過程中不能傳送數據。

③ 雖然使用RTS和CTS幀會使整個網路的效率有所下降。但這兩種控制幀都很短,它們的長度分別為20和14位元組。而數據幀則最長可達2346位元組,相比之下的開銷並不算大。相反,若不使用這種控制幀,則一旦發生衝突而導致數據幀重發,則浪費的時間就更大。雖然如此,但協定還是設有三種情況供用戶選擇:

● 使用RTS和CTS幀;

● 當數據幀的長度超過某一數值時才使用RTS和CTS幀;

● 不使用RTS和CTS幀。

④ 儘管協定經過了精心設計,但衝突仍然會發生。

例如:站B和站C同時向站A傳送RTS幀。這兩個RTS幀發生衝突後,使得站A收不到正確的RTS幀因而站A就不會傳送後續的CTS幀。這時,站B和站C像乙太網發生衝突那樣,各自隨機地推遲一段時間後重新傳送其RTS幀。推遲時間的算法也是使用二進制指數退避。

⑤ 為了儘量減少衝突,802.11標準設計了獨特的MAC子層。

工作原理

(1)首先檢測信道是否有使用,如果檢測出信道空閒,則等待一段隨機時間後,才送出數據。

(2)接收端如果正確收到此幀,則經過一段時間間隔後,向傳送端傳送確認幀ACK。

(3)傳送端收到ACK幀,確定數據正確傳輸,在經歷一段時間間隔後,會出現一段空閒時間。

工作流程

CSMA/CA協定的工作流程分為兩個分別是:

1.送出數據前,監聽媒體狀態,等沒有人使用媒體,維持一段時間後,再等待一段隨機的時間後依然沒有人使用,才送出數據。由於每個設備採用的隨機時間不同,所以可以減少衝突的機會。

2.送出數據前,先送一段小小的請求傳送報文(RTS : Request to Send)給目標端,等待目標端回應 CTS: Clear to Send 報文後,才開始傳送。 利用RTS-CTS握手(handshake)程式,確保接下來傳送資料時,不會被碰撞。 同時由於RTS-CTS封包都很小,讓傳送的無效開銷變小。

CSMA/CA通過這兩種方式來提供無線的共享訪問,這種顯式的ACK機制在處理無線問題時非常有效。然而不管是對於802.11還是802.3來說,這種方式都增加了額外的負擔,所以802.11網路和類似的Ethernet網比較總是在性能上稍遜一籌。

主要差別

CSMA/CD:帶有衝突檢測的載波監聽多路訪問,可以檢測衝突,但無法“避免”

CSMA/CA:帶有衝突避免的載波偵聽多路訪問,傳送包的同時不能檢測到信道上有無衝突,只能儘量“避免”;

1.兩者的傳輸介質不同,CSMA/CD用於匯流排式乙太網,而CSMA/CA則用於無線區域網路802.11a/b/g/n等等;

2.檢測方式不同,CSMA/CD通過電纜中電壓的變化來檢測,當數據發生碰撞時,電纜中的電壓就會隨著發生變化;而CSMA/CA採用能量檢測(ED)、載波檢測(CS)和能量載波混合檢測三種檢測信道空閒的方式;

3.WLAN中,對某個節點來說,其剛剛發出的信號強度要遠高於來自其他節點的信號強度,也就是說它自己的信號會把其他的信號給復蓋掉;

4.本節點處有衝突並不意味著在接收節點處就有衝突。

綜上,在WLAN中實現CSMA/CD是比較困難的。

相關搜尋

熱門詞條

聯絡我們