从状态转移看:载波侦听多路访问/冲突避免(CSMA/CA)
CSMA/CA是寫入IEEE802.11的無線網絡MAC層標準協議,相信看到這篇文章的讀者都知道它是用來做什么的。但許多短文對這個協議的解釋都有所缺乏,因此本文用狀態轉換圖的形式詳細說明協議的工作流程。(好吧其實是作者看到一個狀態圖有感而發,見參考資料)
?
請看下面的狀態轉換圖:
?
?
其中,CS=1(0)意味著載波被占用(可用),Q=1表示隊列中有(無)待發送的幀(frame)。感興趣的讀者可以自行推斷上述狀態代表什么。
好了,首先說明,CS=1還是CS=0是怎么判斷呢?有時是通過偵聽載波,有時是通過RTS/CTS機制,雖然圖中并未說明。下面沿著狀態圖簡述CSMA/CA工作流程:
(初始狀態為I, 節點有待發的幀,于是開始偵聽載波)
I:idle,發送方偵聽到信道忙,則轉到D,否則轉到T。
D:defer,若信道忙,等待一段時間后,若信道空閑,轉到B。
T:transmit,若信道可用,等待一個DCF之后發送一個RTS。若收到的CTS中包含自己的地址,說明預約信道成功,開始傳輸數據幀。傳輸過程中遇到出錯,則轉到B,進入退避過程;遇到信道被占用時轉到D。
B:backoff,即CSMA/CA的退避機制,用于處理傳輸出錯的情況。出錯一般只由兩種情況導致,即沖突(collision)和信道噪聲(carrier noise)。退避時,從{1, 3, 7, 15, ... 2^m-1}中選擇一個時間進行延時。
? ?
? ? 退避過程:DCF在退避狀態下有一個競爭窗口機制,如果一次傳輸成功了,發送端需要將競爭窗口置為最小值(802.11中規定contention window最小為31)。對于重傳的節點,每一次傳輸失敗都將contention window的大小成倍放大,即第一次重傳時窗口大小為63,第二次是127,直到達到重傳次數上限,則作丟包處理。競爭窗口越小,越有利于競爭。
? ? 另附MAC層中自私行為的實現:
1,增大CCA threshold。
? ? ? ? ? CCA (空閑信道評估,Clear Channel Assessment)用于監測信道是否空閑。節點監測信道中的RSSI并于閾值進行比較,若超出閾值則認為信道忙,否則信道可用。自私節點通過增大這一閾值,使得自身對于信道是否可用不敏感,因此在信道忙的時候仍然發包,導致其他節點的傳輸收到干擾。這種行為屬于暴力自私行為,因為在干擾下自私節點自身的包也會丟失。
2,減小backoff time,即選擇小甚至最小的CW。
? ? ? ? ? 通過選擇最小的CW,自私節點在傳輸出錯的時候總是先于沖突節點發包,從而導致不公平性。篡改backoff time的自私行為是最難以解決的問題之一。
?
參考資料:Utpal Paul, Passive Measurement of Interference in WiFi?Networks with Application in Misbehavior?Detection[J], TMC, 2013.
?
轉載于:https://www.cnblogs.com/zhchngzng/p/3376626.html
總結
以上是生活随笔為你收集整理的从状态转移看:载波侦听多路访问/冲突避免(CSMA/CA)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ZOJ 3228(AC自动机+修改的匹配
- 下一篇: (c语言)二叉树中序线索(数据结构十七)