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