原來【WiFi無縫漫游】是這么回事!
1、WLAN漫游簡介
百度百科::當網絡環(huán)境存在多個相同SSID的AP,且它們的覆蓋范圍的重合時,無線用戶可以在整個WLAN覆蓋區(qū)內移動,無線網卡能夠自動發(fā)現附近信號強度最大的AP,并通過這個AP收發(fā)數據,保持不間斷的網絡連接,這就稱為無線漫游。
簡單來說:WLAN漫游是指
STA在不同的
AP覆蓋范圍之間移動,且保持用戶業(yè)務不中斷的行為。
-
AP:也就是無線接入點,是一個無線網絡的創(chuàng)建者,是網絡的中心節(jié)點。一般家庭或辦公室使用的無線路由器就一個AP。
-
STA:每一個連接到無線網絡中的終端(如筆記本電腦、PDA及其它可以聯網的用戶設備)都可稱為一個站點。
如下圖所示,
STA1從
AP1的覆蓋范圍移動到
AP2的覆蓋范圍時保持業(yè)務不中斷。

2、WiFi漫游由來
當家庭面積超過一定面積后,為了保證全家范圍的wifi網絡覆蓋,我們就需要引入2個以上的WiFi接入點了。在多個WiFi接入點下,為了優(yōu)化網絡使用體驗,免去手動切換wifi接入的麻煩,就需要引入WiFi漫游。
-
偽漫游:
一般最常見的偽漫游方法就是將2個以上的wifi接入點的SSID名稱及密碼設置相同,雖然起到了一定的切換作用,不過用過的朋友都知道效果非常的不好,先不說能否自動切換的問題,就算切換成功了,也會造成IP地址的改變,游戲掉網、斷連接是必須的!因此在多AP情況下就必須引入一個新的名詞:Wifi快速漫游
-
WiFi漫游
上文提到的設置SSID名稱及密碼相同的方案是最低能的做法,稍微懂一點網絡知識的朋友都不會采用的;
最次的方案也是要保證DHCP服務器的統(tǒng)一,保證切換Wifi時候IP地址不變。
更進一階,引入AC控制器,利用AC+AP的組合形式實現wifi漫游。目前市面上主流的TPlink、愛快、Mesh等產品的方案多是如此。
其根本的原理是通過AC設定AP的RSSI閾值,將信號不穩(wěn)定的設備T下線,迫使終端設備重新連接信號最強的AP,實現AP的自動切換。
實話實說這種方案對于絕大多數的用戶是完全夠用的,AP切換過程中網絡中斷時間一般在200ms-500ms左右,影響不大,確實優(yōu)化了網絡體驗。對于網絡要求不高的朋友推薦選擇。不過在該方案下游戲會有一段明顯的卡頓,但不會掉線。
-
WiFi快速漫游
如果你是一個追求完美網絡體驗的朋友,而且想一次到位部署網絡,不再折騰了,那么你就需要Wifi快速漫游了。上面介紹的第二種方案,雖然效果說得過去,但仍然無法保證切換過程盡可能的少丟包及進一步縮短網絡中斷時間。這個時候就必須引入Wifi快速漫游方案了,通過Wifi快速漫游進一步縮短網絡中斷時間,提高網絡使用體驗,真正實現游戲中不卡頓
對于有AC控制器的Wifi網絡系統(tǒng)中,漫游過程可以簡單分為3個階段:漫游觸發(fā)→選擇新AP→重新認證。這時候就需要802.11k/v/r協議登場了。
-
由于Wifi網絡密碼的存在,在重新認證階段終端在切換AP的時候需要出示其緩存的密鑰,AP檢查密鑰并進行四次握手,產生數據加密密鑰,漫游完成。802.11r協議可以在以上基礎上省略4次握手,進一步縮減了斷網的時間。
-
802.11k能告訴終端,如何快速選擇漫游AP。
-
802.11v能優(yōu)化漫游觸發(fā)。
能夠應用802.11k/v/r協議的Wifi漫游都可以稱之為快速漫游,不過這需要AP和終端都支持哦,實際上目前能夠支持802.11k/v/r協議的終端并不多,蘋果算是一個例外吧,新產品全都支持802.11k/v/r,所以Wifi快速漫游更適合使用蘋果的土豪們
綜上,WLAN漫游策略主要解決以下問題:
-
避免漫游過程中的認證時間過長導致丟包甚至業(yè)務中斷:802.1x認證、Portal認證等認證過程報文交互次數和時間,大于WLAN連接過程,所以漫游需要避免重新認證授權及密鑰協商過程。
-
保證用戶授權信息不變:用戶的認證和授權信息,是用戶訪問網絡的通行證,如果需要漫游后業(yè)務不中斷,必須確保用戶在AC上的認證和授權信息不變
-
保證用戶IP地址不變:應用層協議均以IP地址和TCP/UDP Session為用戶業(yè)務承載,漫游后的用戶必須能夠保持原IP地址不變,對應的TCP/UDP Session才能不中斷,應用層數據才能夠保持正常轉發(fā)
3、漫游基礎知識
WLAN漫游的網絡架構
-
AC控制器:可用來集中化控制和管理無線AP,是一個無線網絡的核心,負責管理無線網絡中的所有無線AP,對AP管理包括:下發(fā)配置、修改相關配置參數、射頻智能管理、接入安全控制等。
-
漫游組:在WLAN網絡中,可以對不同的AC進行分組,STA可以在同一個組的AC間進行漫游,這個組就叫漫游組。如圖,AC1和AC2組成一個漫游組。
-
AC間隧道:為了支持AC間漫游,漫游組內的所有AC需要同步每個AC管理的STA和AP設備信息,因此在AC間建立一條隧道作為數據同步和報文轉發(fā)的通道。
-
Master Controller:STA在同一個漫游組內的AC間進行漫游,需要漫游組內的AC能夠試別組內其他AC。通過選定一個AC作為Master Controller,在該AC上維護漫游組成員表,并下發(fā)到漫游組內AC,使各AC之間相互試別并建立AC間隧道,如圖,選的AC1作為Master Controller.
-
Master Controller既可以是漫游組外的AC,也可以在漫游組內選擇一個AC
-
Master Controlle管理其他AC的同時,不能被其他Master Controlle管理
-
AC內漫游:如果漫游過程中關聯的是同一個AC,則是AC內漫游,如圖STA從AP1漫游到AP2即是AC內漫游
-
AC間漫游:如果漫游過程中關聯的不是同一個AC,則是AC間漫游,如圖STA在從Ap1漫游到AP3的過程即為AC間漫游
-
HAC (Home AC):STA首次與漫游組內某個AC進行關聯,則該AC為它的HAC
-
HAP (Home AP):STA首次與漫游組內某個AP進行關聯,則該AP為它的HAP
-
FAC(Foreign AC):STA漫游后關聯的AC即為它的FAC
-
FAP(Foreign AP):STA漫游后關聯的AP即為它的FAP
4、漫游的分類
漫游根據實際的架構我們將它分為兩類:有縫漫游和無縫漫游。無縫漫游又可以分為二層漫游和三層漫游。
有縫漫游:有兩種情況
-
所有網絡部署的AP是胖AP,沒有AC。
-
所有網絡部署的A?P是瘦AP,沒有AC也可以工作。
胖瘦AP的區(qū)別:https://zhuanlan.zhihu.com/p/64648479上面兩種情況,主要是我們國情產生的,客戶不停的壓價還要一大堆需要。大家為了降低成本,沒有部署AC。只需要SSID、加密配置和信道岔開即可。實際效果第中遠好于第一種,因為第二種是在一個DHCP下,第一種就相當安裝了很多的家用路由器,問題多多!
-
無縫漫游:
無縫漫游能夠做到的是在 AP 與 AP間的切換時間控制在毫秒級,基本不掉包,在業(yè)務運用上感受不到有任何停頓,這樣客戶終端在移動時從一個 AP 快速自由地切換到另一個 AP, 這就是無縫漫游。
-
二層漫游:同一AC下的快速漫游,AP與AC直連組網,AP和AC連接在同一個VLAN內,可以實現二層漫游。
-
三層漫游:跨VLAN的三層漫游,當網絡規(guī)模比較大,VLAN不一樣,IP網段也不相同,因為支持三層無縫漫游,從而保證用戶在不一樣VLAN間漫游而業(yè)務不中斷。
4.1 二層漫游
img
二層漫游后,STA仍然在原來的子網中,FAP/FAC對二層漫游用戶的報文轉發(fā)同普通新上線用戶沒有區(qū)別,直接在FAP/FAC本地網絡轉發(fā),不需要通過AC間隧道轉回到HAP中轉
漫游前:
-
STA發(fā)送業(yè)務報文到HAP
-
HAP接收到STA發(fā)送的業(yè)務報文并發(fā)送給HAC
-
HAC直接將業(yè)務報文發(fā)送給上層網絡
漫游后:
-
STA發(fā)送業(yè)務報文給FAP
-
FAP接收到STA的業(yè)務報文,并發(fā)送給FAC
-
FAC直接將業(yè)務報文發(fā)送給上層網絡
4.2 三層漫游
4.2.1 三層漫游--隧道轉發(fā)模式

三層漫游時,用戶漫游前后不在同一個子網中,為了支持用戶漫游后仍能正常訪問漫游前網絡,需要將用戶流量通過隧道轉發(fā)到原來的子網中轉。
隧道轉發(fā)模式下,HAP和HAC之間業(yè)務報文通過CAPWAP隧道封裝,此時可以將HAP和HAC看作在同一個子網內,報文無需返回到HAP,直接通過HAC中轉到上層網絡
漫游前:
-
STA發(fā)送業(yè)務報文到HAP
-
HAP接收到STA發(fā)送的業(yè)務報文并發(fā)送給HAC
-
HAC直接將業(yè)務報文發(fā)送給上層網絡
漫游后:
-
STA發(fā)送業(yè)務報文給FAP
-
FAP接收到STA的業(yè)務報文,并發(fā)送給FAC
-
FAC通過HAC和FAC之間的AC間隧道將業(yè)務報文轉發(fā)給HAC
-
HAC直接將業(yè)務報文轉發(fā)給上層網絡
4.2.2 三層漫游--直接轉發(fā)模式

直接轉發(fā)模式下,HAP和HAC之間的業(yè)務報文不通過CAPWAP隧道封裝,無法判定HAP和HAC是否在同一個子網內,此時設備默認報文需要返回到HAP進行中轉。如果HAP和HAC在同一個子網時,可以將家鄉(xiāng)代理設置為性能更強的HAC,減少HAP的負荷并提高轉發(fā)效率
用戶漫游到其他AP后,默認以HAP作為家鄉(xiāng)代理。用戶漫游時,自動在FAP和家鄉(xiāng)代理間建立一條隧道,用戶的流量通過家鄉(xiāng)代理中轉,以保證用戶漫游仍能訪問原網絡
漫游前:
-
STA發(fā)送業(yè)務報文到HAP
-
HAP接收到STA發(fā)送的業(yè)務報文并發(fā)送給HAC
-
HAC直接將業(yè)務報文發(fā)送給上層網絡
漫游后:
-
STA發(fā)送業(yè)務報文給FAP
-
FAP接收到STA發(fā)送的業(yè)務報文,并發(fā)送給FAC
-
FAC通過HAC和FAC之間的隧道,將業(yè)務報文轉發(fā)給HAC
-
HAC將業(yè)務報文發(fā)送給HAP
-
HAP直接將業(yè)務報文發(fā)送給上層網絡
5、漫游基本原理
-
切換檢測:當STA檢測到要發(fā)生快速切換時,將向各信道發(fā)送切換請求。
STA監(jiān)聽各信道beacon,發(fā)現新AP滿足漫游條件,向新AP發(fā)送probe請求。新AP在其信道中收到請求后,通過在信道中發(fā)送應答來進行響應。STA收到應答后,對其進行評估,確定同哪個AP關聯最合適。
img
-
切換觸發(fā):STA達到漫游閾值就會觸發(fā)切換,對于觸發(fā)條件,不同的STA會有不同的方式:
-
根據當前AP和鄰近AP信號強度的對比,達到門限值就啟動切換
-
根據業(yè)務,例如丟包率,達到門限值就啟動切換,此切換觸發(fā)方式較慢,效果差
img
-
切換操作:關聯新AP,解除與老AP的關聯
不同的STA會有不同的操作方式,一般情況,STA在發(fā)送切換請求后,發(fā)送關聯新AP的請求,待請求被接受后,再關聯新的AP,然后解除與老AP的關聯。但有的STA也會先解除與老AP的關聯,再關聯新AP

6、切換方式
終端的漫游如何實現?有主動切換和被動切換兩種方式。
6.1 主動切換
終端檢測到有更強的beacon幀信號,而且SSID與當前接入的SSID相同,主動發(fā)送probe request幀,探測具有相同SSID的AP,并從中選擇更優(yōu)的進行接入。通過wireshark抓包,可以看到這個過程如下:
6.2 被動切換
AP通過ACTION幀發(fā)送BSS Transition Management Request消息,提供可切換的候選AP,終端用BSS Transition Management Response消息回應結果,然后是與主動切換類似的步驟。
終端在接收到BTM Request后,使用probe request檢測候選AP是否可達,然后通過BTM response返回結果。
7、漫游基本配置
img要做到漫游,我們的路由器需要一些基本的配置:
-
無線AP必須設置為相同的SSID。不同的SSID意味著不同的無線網絡,而無法實現無線漫游。需要注意的是,SSID區(qū)分大小寫。
-
所有無線AP必須使用同一網段的IP地址,并且處于同一VLAN中。
-
信號相互覆蓋的無線AP不能使用相同的頻道。
由于多個AP信號覆蓋區(qū)域相互交叉重疊,因此,各個AP覆蓋區(qū)域所占頻道之間必須遵守一定的規(guī)范,鄰近的相同頻道之間不能相互覆蓋,也就是說,相互覆蓋區(qū)域的無線AP不能采用同一頻道,否則,會造成AP在信號傳輸時的相互干擾,從而降低AP的工作效率。
在可