Beacon時槽大小到底對路由器有什麼影響?

目前百度的答案太模糊..

Beacon Interval (信標間隔時槽)
一般無線網卡都是做所謂的被動式掃描(passive scanning),你開啟OS下的無線網路管理程序 或是XP內建管理程序,無線網路卡其實都在從ISM 頻道一直輪番掃描.等待掃到無線基地台的beacon 才會顯示現在這區域有哪些SSID.而基地台的Beacon 傳送頻繁frame 會比較佔用無線頻寬資源
Beacon Interval間隔調高,有助於發揮無線網路效能 ,client 端省電
Beacon Interval間隔調低 ,可以加快wireless client 連結速度 .
在漫遊環境和一些wireless client 聯機變動比較大場合(如公眾熱點)
Client 端屬於移動狀態,適用於beacon調低.Beacon 單位通常以微秒 millsecond 為單位( 1/1000 秒),般默認值為100


謝邀。Beacon的設置還是默認為100ms為好,一般設置過高過低都有可能導致網路無法連接,而上下些許浮動可能一般用戶影響不大,所以除非特殊需要(比如只採用被動掃描,漫遊之類的情況),否則不建議修改。

首先先簡單回答下題目中的思路,Beacon周期調高,對應睡眠周期拉長,故節能(即越來休息100ms再起來發一個包,現在休息200ms再起來發一個包這樣),不夠節能意味著本身就沒有什麼接入速率的要求。Beacon周期調低,發送beacon較為頻繁,適合漫遊之類的環境,可以高速切換到功率高,性能好的AP身上。按照題目的描述也沒問題的,都有好處。不過一般都與家用路由無關,節能模式基本沒的開,家用環境,除非布置多個AP,否則也談不上漫遊的模式,且多個AP如果設置不同,那麼還存在問題,所以默認最好。

其次Beacon幀是802.11系列幀中間最為繁雜的一個幀,所以完全理解Beacon該如何設置也是一個非常繁雜的過程。以下按照我所理解的盡量拆解一些。(註:Beacon在不同的場合下,還有很多區別,如IBSS模式【Ad-hoc】,基礎架構模式,802.11s mesh模式,這裡僅僅關注基礎架構模式。)

以下部分主要從Beacon的結構和功能上而言:

1.首先從Beacon幀的結構上而言,如下圖

其實從wireshark來看802.11的幀會感覺嚴謹一些(相對於omnipeek而言),wireshark是按照幀的結構來分析的,而omnipeek更偏向於裡面的欄位(換言之,從omnipeek所看beacon的結構不是這樣)。

  • 從該圖上可以看到,Beacon幀從MAC來看,主要就是由802.11頭部(對應圖中IEEE 802.11 Beacon frame)和Beacon信息(對應圖中IEEE 802.11 wireless LAN management frame)組成。

  • 在Beacon的MAC header中,大部分的欄位都是和標準802.11協議是相同的,唯一需要關注的就是這個Duration欄位。在802.11的接入協議中,我們知道存在PCF和DCF兩種模式。若在PCF接入模式中,簡化我們可以理解成三個過程,即Beacon - PCF - DCF這個三個過程(有關這三個過程是出現在PCF還是HCF還需要確認下,這裡有可能有錯誤,還請見諒)。而通常情況下PCF是默認關閉的,除非手動打開。為了避免PCF和DCF兩個過程相互衝突,即在Beacon之後,首先進入叫做CFP模式(contention-free period),在這個無競爭周期內,採用PCF的模式進行調度,然後離開CFP周期之後就是DCF所使用的周期了。而有關節能模式基本都是屬於PCF模式中的一個分支。有關該CFP周期是如何保證所有節點都不進行主動競爭,目前我所理解(不一定正確,還沒有成功抓包驗證,僅僅從文獻上理解),還是通過NAV的手法。NAV是一個倒數的周期,同時該NAV時間就是一般所述的虛擬載波監聽的方法,只有NAV時間倒數到0之後,STA才可以主動競爭信道。粗略理解,通過Beacon幀中的Duration欄位來設置NAV時間通告全網節點,從而啟用CFP時間。

(上面這裡有不少細節帶過,有興趣可以看下,有點繞,首先該NAV不一定完全是由Duration欄位設置,說先Duration一定會設置,Duartion一共有16個位元組[0:15],其中倒數2個位元組,即第14,15位是當做標誌位。若普通的NAV即第15置0,其他按2進位。如果CFP的標識的話,那麼第14位置0,15位置1,默認是32768us(microsecond)。如果是PS-POll的話,14,15置1。這裡還需要注意的是,只要在CFP周期內,發送一個CFP frames,那麼NAV又是被設置32768。如果CFP時間結束,啟動DCF時間的話,那麼NAV會被置0。

同時,上述方法是通過Duration設置,以保證所有節點,包含不能夠識別Beacon中內容的節點。如果能識別Beacon中內容的節點,那麼在Beacon中還包含一個叫做CF Parameter Set的欄位。其具體如下,

【該欄位沒有抓到具體的數據包,應該對應的就是beacon中的TIM欄位,基本結構類似,TIM欄位之後進行分析】,通過該欄位中的CFP MaxDuration和CFP DurRemaining欄位,可以控制NAV的時間流程。)

  • 在Beacon幀的內容中,我們可以看到包含兩部分,即Fixed parameters和Tagged parameters。這裡需要補充的是,該Beacon的抓取是來自於一個工作在802.11b/g/n mixed模式下的AP,其物理層是採用802.11b的最低速率1M模式進行發送,整個幀長195Byte(未包含PLCP部分),傳輸大於1500us左右。換言之,其默認是一個802.11b的beacon,即對應的Fixed parameters,然後附加的部分顯示對802.11g/n的支持,即對應Tagged parameters。至於802.11ac這裡不加以討論。

2.有關Fixed parameters的結構,如下圖

這個欄位是802.11b默認的Beacon的欄位,也可以認為是較為初始的Beacon設計的欄位。由Timestamp時間戳,Beacon的周期,以及相應的Capabilities組成。

  • 時間戳一共64位,單位是us,用來同步該BSS內的STA,貌似是從AP啟用開始,從0進行計時。(註:從這裡可以可以看出,Beacon幀也是負責網路中的時間同步功能的)
  • Beacon Interval,通常情況下100ms,即0.1s。如果看協議的話,這裡有個單位TU(time unit),TU是少有的按照1024進行步進的單位,1TU=1024us。通常情況下,網速都是按照10進位進行步進的,即1kbps=1000bps這樣,k是kilo的意思(即國際單位),而硬碟之類的存儲單元還是按照2進位進行步進的,其中的k不是kilo,而是kilo-binary的縮寫。曾經知乎有一個帖子有關網速討論的也對這個內容加以詳述,這裡TU是按照kilo-binary的形式進行描述的,所以有些特殊,需要注意下。

  • Capabilities information欄位,主要是描述AP,換言之是該BSS內能夠兼容哪些工作模式的。0為不支持,1為支持。STA需要判斷自己是不是支持這些Capabilities,如果不支持,則無法關聯上該AP(即無法加入該BSS)。可以看到,CFP是否支持,即PCF模式也相應列在該區域內。至於一些具體含義的細節可以參考《802.11權威指南》中文版的第97~98頁的部分,寫的還是比較清楚的,英文版的由於看的不是pdf的版本,所以不知道具體的頁數。

3.有關Tagged parameters的結構,如下圖

基本的內容如上,紅色的箭頭代表這裡還缺了一個部分,即country部分,該部分在onmipeek中能夠解析出來。如下

這一塊內容由於很多,所以就直接從Tag上進行分析,就不打開Tag裡面的內容了。

  • 第一個:SSID,很簡單的一個欄位,其中SSID是一個[0:32]byte的欄位,其中如果全部置為0,即空SSID就是一個probe request幀,通過該幀做主動掃描。該欄位細節可以查閱《802.11權威指南》4.3.3.1節。
  • 第二個:Supported Rates,所支持的速率部分。該欄位細節可以查閱《802.11權威指南》4.3.3.2節。
  • 第三個:DS Parameter Set欄位,描述了當前工作的信道。實際上這個欄位在Radiotap中也有包含(Radiotap是網卡在接收信號的時候,去除PLCP header部分後,在本地增加的頭部,其中就有包含功率,信道這樣的物理層信息)。
  • 這裡中間實際上還有一個描述跳頻參數的欄位,從Element ID中可以看到,DS Parameter Set的Element ID是3,TIM的Element ID是5,中間跳躍了一個。故說明跳頻參數的欄位是保留的,只是當前在AP中都沒有使用了。同時PS:這裡Element ID是用onmipeek才可解析出來的,在wireshark下,其將Element ID解析成Tag Number,不大明白為什麼這樣解析,按照協議應該是Element ID好一些。
  • 第四個:TIM,這裡主要就是與DTIM有關了,換言之,有關Beacon周期設置與節能有關的部分,就與該欄位有關。這個欄位可以打開如下

其中DTIM count和DTIM period是和前面在描述CF Parameter Set中的CFP count和CFP period對應的,在這裡也是一個獨立的欄位。至於Bitmap control以及之後的欄位主要是用來描述STA工作在節能模式時候,對應在AP中的緩存情況的。細節可以參考4.3.3.5節。這裡主要回來看下DTIM的概念【實際上這裡還有一個概念容易混,即ATIM,注ATIM是一個幀,而DTIM是一個時間周期。且ATIM一般在IBSS,也就是Ad-hoc的節能模式下使用,故這裡ATIM不進行展開】。在每一個TIM中不一定都包含DTIM,這兩個是不應樣的概念且主要由於DTIM period決定,若DTIM period為1,則每一個TIM對應一個DTIM,若為0,則表示不使用。該位實際上也對應到路由器設置中的,DTIM間隔。而發送站間隔對應的就是beacon周期(同時beacon的周期在協議中又被描述為TBTT周期,target Beacon transmission time),如下圖

為了理解DTIM的設置,我們需要簡述下802.11的節能模式,即PS模式(Power saving)

按協議中(標準版本,非802.11n擴展,這裡僅僅討論了最簡單的PS模式,擴展模式簡單點可以參考CWNA的教材),在功率管理模式下,一共有兩種情況,STA要不是全速率工作,要不然就是出於休眠狀態,其中休眠是指的既不能發,又不能收。

即在PS工作模式下,節點大部分都是出於休眠模式下的,經過很久時間才醒一次,然後跟AP要信息。在STA休眠這段時間內,AP負責緩存該STA對應的信息。這裡STA要睡多久才醒一次去跟AP要信息,就是對應的DTIM周期。這裡可以直接貼下《802.11權威指南中》中的敘述,貌似本身就是寫的比較清楚的。在協議裡面圖基本也差不多,只不過考慮了兩個STA而已,用興趣可以參考協議第10.2.1.3節。

故上述表明,首先DTIM周期是以TIM周期,也就是Beacon周期為基準的,若Beacon周期越長,那麼睡眠時間就越長,從而達到節能的作用。 不過PS:從上面我抓的包上也可以看到,一般情況下,貌似STA和AP的節能模式都是沒有工作的,所以為了節能設置beacon,那麼首先要啟用節能模式才可以,且AP和終端處都要啟用。

  • 第五個:ERP information部分,ERP全稱是Extended Rate PHY,就是802.11g對應的模式。在這裡主要是為了兼容模式所存在,主要關注其中的Non ERP Present位,通過該位,可以同步全網開啟對802.11b的兼容,否則就關閉兼容。由於是beacon進行同步的,所以一旦開啟,全網所有的STA都是工作在兼容模式下。有關兼容模式的問題可以參考11n only和11bg mixed和11bgn mixed區別? - 知乎用戶的回答

  • 第六個:實際上這裡對應的country欄位。表面上這個欄位用處不大,僅僅表明了國家代號。實際上這個欄位是用來控制TPC,也就是發送功率控制的。由於每一個國家都有相應的法律管理RF發射功率,不能夠違法。在beacon中,即通過country欄位來限制所有節點的發射功率。同樣的,也有限定能夠使用的信道範圍。

  • 之後的幾個:RSN是用來做安全的,Extended Supported Rates是表明802.11g的擴展速率的,HT的兩個都是描述802.11n的,即high throughput模式,其中HT capabilities是用來描述802.11n默認的一些配置的,需要STA也包含這些性能,比如天線數量,鏈路所支持的速率,MCS方式等。HT information是用來描述一些接入細節的,比如primary channel是多少,secondary channel是多少。最後兩個,一個是廠家標識,一個也是安全的欄位。這裡有關安全的欄位都不展開了。

--------------------------------------------------------------------------------------------------------------------------------

幾個地方前面理解不是特別準確,對應修改下,

其一,若開啟的PCF的模式,即包含CFP時間後,前面所述,網路工作是按照beacon-PCF-DCF這樣的順序周而復始是有些問題的。在協議中,該圖是一個一個示意,不一定按照這樣的結構,即也有可能出現beacon-PCF-beacon-DCF,或者隔幾個周期出現PCF周期的情況,故這裡實際上也有一個PCF周期的問題,只是一般在路由設置裡面沒有這個環節,故忽略了。PS:對於這一部分的理解暫時還有保留,我還需要再查一查資料確認下,比如在《計算機網路與網際網路教程》

一書中,就把PCF部分的過程稱呼為超幀(superframe),其中該超幀就是按照beacon-PCF-DCF這樣的情況組成的。其二,有關Duration欄位,在CFP周期內,上行幀(也就是STA發往AP的Polling幀)中,duration的前面幾個欄位是解析成AID的,該AID實際上對應STA的標號(即這裡就沒有採用BSSID的方法進行標識)。

--------------------------------------------------------------------------------------------------------------------------------

繼續分界線,前面所述的Non-ERP Not Present是針對802.11g對802.11b的兼容性而言的。在802.11n的兼容這裡並沒有提及。目前發現應該是在802.11n的beacon中的HT Capability Info位,中有一位是Device is Not Able to Receive PPDUs with GF Preamble ,該中GF Preamble就是greenfield preamble,從而即是是否兼容綠地模式。

--------------------------------------------------------------------------------------------------------------------------------

這裡還有一個概念的細節沒有理解好,即TIM和DTIM,前者貌似是在反饋單播緩存的,後者是反饋多播緩存的,同時,根據一些網上搜的資料而言(未查協議),應該一個beacon幀中,必定包含一個TIM,而DTIM則是根據DTIM周期所決定。該處在上面所述比較模糊,故這裡還有待查證。


還有一點就是,如果beacon interval的時間太短,對driver/cpu的要求會比較高,因為beacon也是需要收集大量的信息,組好內容再推給HW的,時間太短,如果你的cpu正在處理別的事情,那麼很有可能這個beacon就不能準時發出去,甚至發不出去,這會牽涉到一些別的問題,比如STA時鐘同步,比如說power save等等


就像菜市場賣菜 大媽叫賣 白菜白菜便宜啦

這個叫賣的頻率很有講究 叫太快了整個市場都聽你叫喚 別人沒法做生意了 叫太慢又沒人知道你賣白菜

beacon設置頻率太高 佔用信道傳輸正常數據 頻率太低 新連進來的設備就要很久才能顯示出來這個wifi熱點


推薦閱讀:

TAG:無線網路 | 路由器 | 80211 | beacon |