WifiRemoteStationManager中速率控制算法詳解

  1. ARF(Auto Rate Fallback)速率控制算法
      ARF算法會以一個非常低的基礎的數據速率(2Mbps)開始,然後觸發一個定時器,當任意一個定時器停止或者發送機成功的進行了N(N是個固定的閥值)次連續的傳輸後,發射器就會從舊的數據速率 rold 增加到一個新的值 rnew ,然後重置定時器,每次增加的數值是一個固定的值,如果增加後第一次傳輸就失敗,那麼就退回到先前的速率 rold,如果再次發送失敗,那就再次依固定的值遞減。ARF將幀丟失率視爲信道條件的指標。根據連續成功的傳輸次數調整速率。——參考論文1

  2. AARF(Adaptive Auto Rate Fallback)速率控制算法
      AARF正是在ARF基礎上演變來的,AARF算法旨在提高穩定環境下的性能。ARF機制中多用戶環境下工作的不是很好,主要就是因爲它選擇傳輸速率取決於固定的連續成功或不成功的傳輸嘗試。不像ARF算法中每次增加都是一個固定的值,AARF算法會自動調整這個閥值。更確切的說,當一個發射器連續進行N次成功的傳輸後,發射器會把數據速率從rold 增加到 rnew ,如果第一次以 rnew 這個速率傳輸就失敗了,那麼久退回到先前的rold ,然後把下次增加傳輸速率的閥值設爲2N。否則,當以rnew 傳輸成功後,重置閥值。這種自適應的閥值更新,相比ARF,使得AARF在穩定的信道環境中擴大了增加速率時的時間間隔,產生更少的速率波動。(參考論文同上)

  3. AARF-CD(Adaptive Auto Rate Fallback Collision Detection)
      就像AARF是從ARF演變過來的一樣,AARF-CD是從AARF演變過來的。在判斷是否增加速率之前,該算法會打開RTS/CTS機制,當數目可變的傳輸嘗試成功之後會再次關閉RTS/CTS機制。AARF-CD算法保留了ARF中的定時器,提高了傳輸多媒體資源時的性能。該算法最大的貢獻就是通過碰撞檢測即加入RTS/CTS機制解決了傳輸時的資源競爭問題。關於該機制實現的細節,請詳細閱讀參考論文2

  4. CARA(Collision-Aware Rate Adaptation)
      CARA和ARF很類似,它們就像兩個對立面:CARA對傳輸成功的次數進行計數,ARF對傳輸失敗的次數進行計數。當一個包到達MAC後,假如它的大小大於或等於一個給定的閥值,或者連續傳輸失敗的次數大於另一個給定的閥值,RTS/CTS機制就會被使用。假如RTS/CTS握手失敗,計數器將不會被修改,相反,如果RTS/CTS握手成功,數據幀將會以當前的狀態被髮送,就像RTS/CTS機制沒有被使用一樣,當數據傳輸成功之後,成功傳輸次數的計數器就會加1,連續傳輸失敗的次數的計數器將會被重置。當連續成功的次數達到指定的閥值(像ARF中規定的一樣,爲10)後,就會增加速率。傳輸失敗的道理是一樣的,只不過給定的閥值是2。同時帶這個算法也成爲CARA-RTS。(參考論文2參考論文3——CARA

  5. Ideal Rate Adaption
      這個算法意義可能主要是用來作爲實驗對比吧,找不到什麼關於這個算法的資料。參考論文2中說該算法假設發射器知道表徵信道的SNR,引入這個算法的目的僅僅是爲了去更深入的瞭解AARF-CD的性能。

  6. RRAA(Robust Rate Adaptation Algorithm
      魯棒速率適應算法有兩個機制:速率選擇器(RRAA-BASIC)和自適應RTS(ARts)。速率選擇器計算在一個觀測窗口內,發送失敗傳輸的次數,在該窗口結束的時候,計算丟包率,如果丟包率比給定的閥值PMTL(Maximum Tolerable Loss threshold)大,速率就減少;假如丟包率小於閥值PORI (Opportunistic Rate Increase threshold),速率減少,否則維持當前狀態至下一個觀測窗口。觀測窗口的長度和閥值取決於當前的狀態。此外,作者提出了一種降低速率的機制,即使觀察窗口未結束:每次檢測到傳輸故障時,假設觀察窗口中的剩餘傳輸嘗試成功,則計算丟包。如果該分組丟失估計大於PMTL,則速率立即降低(不等待觀察窗口終止)。ARts機制與速率選擇器同時工作,它獨立於它。 計數器用於估計可以使用RTS / CTS機制進行多少傳輸嘗試。 當計數器大於0時,使用RTS / CTS機制,每次嘗試將計數器減1。 它存在一個RTS窗口,最初等於0,當不使用RTS並且最後一個傳輸嘗試失敗時,該窗口增加1。 當RTS被使用並且最後的傳輸成功時,或者當RTS不被使用並且最後的傳輸失敗時,它被減半。 每當RTS窗口值被修改時,計數器被設置爲窗口值。 RRAA已經在測試臺中實現,並且當考慮多用戶場景時,具有或不具有隱藏節點的性能優於ARF和AARF。——參考論文2

  7. RRPAA(Robust Rate and Power Adaptation Algorithm)
      一種新的速率控制機制。對於RRPAA,我們採用了前面提到的思想(前面提到的思想是指RRAA+,詳細內容請看參考文獻),實現了基於幀丟失率的功率和速率控制機制。 該機制的目標是,與我們描述的許多其他機制一樣,使用儘可能低的功率,而不會降低鏈路的性能。 因此,RRPAA首先嚐試在當前信道條件下找到最大功率的最佳速率,然後如果損耗穩定開始降低功率。關於該部分的詳細內容有興趣的還是看參考文獻4吧。

  8. AMRR(Adaptive Multi Rate Retry
      AMRR使用二進制指數退避(BEB)技術來適應用於改變速率和傳輸計數參數值的採樣週期的長度(閾值)。 它使用探測包,並根據其傳輸狀態自適應地改變閾值。 適應機制通過不由倒退機制指定的更高速率來確保更少的故障傳輸/重傳和更高的吞吐量。 除此之外,AMRR採用啓發式方法,通過明智地設置速率和傳輸計數參數來捕獲信道的短期變化。——參考論文5
      更多細節請看參考論文6

  9. PARF(Power-controlled Auto Rate Fallback)
      這部分資料好難找,我幾乎都快放棄了,NS3官網上那個鏈接,我只是大概瀏覽了一下,沒看到有這個縮寫,後來終於在參考論文7上找到了一些說明,大致內容如下:
      功率控制自動速率回退(PARF)是基於發射功率和數據速率控制而提出的一種自我調節技術。 它嘗試最小化基於自動速率回退(ARF)的相鄰AP之間的干擾,ARF是一種只調整數據速率的機制。 ARF基於探測802.11 ACKs消息:ACK丟失意味着數據速率的降低和成功的接收增加。 然後,如果在較高的數據速率下沒有損耗,PARF會通過降低發射功率將發射功率控制添加到ARF,並繼續減小直到達到最小閾值,直到傳輸開始發生故障爲止。 如果繼續發生故障,則傳輸功率將增加至最大值,如果故障依然存在,則開始數據速率回退。

  10. APARF(Adapting Power-controlled Auto Rate Fallback)
      與上面的類似, APARF自然是PARF的擴展。
      用於決定數據速率或發射功率變化的閾值是動態調整的。 這個想法的目的是估計信道狀況; 例如,頻道快速變化將需要一個小的閾值,以便快速適應。(參考論文6

  11. Onoe(這個好像是以人名命名的)
      Onoe是基於信用的RCA,其中信用值根據成功發送的數量和在確定的採樣週期上積累的錯誤傳輸和重傳的數量來確定。 對於以特定速率的成功傳輸,Onoe不斷提高其信用額度,達到某些閾值時,當前的傳輸速率將提高到下一個更高的速率。 類似地,對於失敗的傳輸/重傳,當信用低於某個閾值時,信用被扣除並且傳輸速率下降到下一個較低的速率。 由於其運行方式,Onoe在速率選擇方面保守,對單個數據包故障較不敏感。 該算法的細節在Madwifi驅動程序中可用。——參考論文3

  12. Minstrel Rate Control Algorithm
      這個有點複雜。Minstrel算法有三個部分:重試鏈機制,速率決策過程和統計計算。詳細內容請參考Linux Kernel文檔中關於該算法的描述以及參考論文8

  13. Minstrel HT
      幾乎花了一個小時都沒找到什麼有用的相關的資料,最後快要放棄的時候算是找到了一篇參考論文9,這是一個802.11n下驅動中的默認鏈路調整方案,話說NS3提供的也真是夠全的,這麼偏的東西都有,用到的人該有幸福。

  14. ConstantRate
       我想這個應該不需要我說什麼了吧。。。



  

整理了一天,累死了,終於結束了。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章