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

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

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

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

6、切換方式
終端的漫游如何實現(xiàn)?有主動切換和被動切換兩種方式。
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意味著不同的無線網(wǎng)絡,而無法實現(xiàn)無線漫游。需要注意的是,SSID區(qū)分大小寫。
-
所有無線AP必須使用同一網(wǎng)段的IP地址,并且處于同一VLAN中。
-
信號相互覆蓋的無線AP不能使用相同的頻道。
由于多個AP信號覆蓋區(qū)域相互交叉重疊,因此,各個AP覆蓋區(qū)域所占頻道之間必須遵守一定的規(guī)范,鄰近的相同頻道之間不能相互覆蓋,也就是說,相互覆蓋區(qū)域的無線AP不能采用同一頻道,否則,會造成AP在信號傳輸時的相互干擾,從而降低AP的工作效率。
在可