查看原文
其他

如何实现WIFI的自动切换?

车小胖谈网络 车小胖谈网络 2022-10-06
一栋5层的公寓,每层12个房间,共60个房间,每个房间都装1条100M的宽带,账号及密码均设置成一样的,那么我连接其中一间房的WiFi,从5楼的最左边,走到1楼的最后边,请问这样网络连接的热点会自动切换到1楼的WiFi吗?期间会不会网络信号波动较大。影响用户感知?
理想中的无线漫游是这样的:笑吟吟的皇上,从红楼的5楼走道上一路走过来,走道两旁站着一排排爱妃,每个爱妃嘴里都喊着“连我”、“连我“,皇上左顾右盼,想拉谁的小手拉谁的小手,想和谁好就和谁好。。。从5楼到1楼一路走来,到处掌声与鲜花,花团锦簇,众星捧月。旅客朋友们,醒一醒,苏州北站到了。
真实的无线漫游是这样的:一根筋的少年郎,从公寓的5楼的501房间一路走来,心一直忘不了501的青梅竹马,即使距离越来越远,信号越来越差,依然不离不弃。即使5楼其它房间有美女探头探脑,依然不为之所动,一直粘着501。但是彼此的信号越来越差,微弱到无法收到彼此的音信,少年郎决定放弃初恋。恰好此时路过402房间,与伸出橄榄枝的402美女好上了。好上了归好上了,少年郎在与402建立连接关系的时间内,来自外界(Internet)的通信,其实都发给了初恋501。由于501无法与少年郎联系上,暂时代为保管。但是由于迟迟没有少年郎的音信,初恋心冷却了,将代为保管的信息全部扔进垃圾箱。这样的造成的后果是,尽管少年郎与402建立了联系,但是信息丢失了一部分(501代为保存的部分)。如果少年郎在漫游过程中IP地址没有发生变化,且应用程序使用TCP作为传输协议,丢失的部分会依赖于TCP的重传而予以恢复,大不了会有一点点延迟。但是如果像视频聊天使用UDP作为传输协议,丢失的部分就永远地丢失了,因为应用程序不会重传、UDP也不重传。如果漫游过程中,少年郎的IP地址发生变化,那么少年郎所有的正在通信的程序都需要Reset,重新连接,意味着用户的视频聊天会中断,这样体验很不好。
少年郎每下一层楼,都会发现与上层的那个相好的信号非常微弱,以至于无法检测到。此时少年郎又决定放弃,连接信号更好的那些姑娘们,一直重复同样的故事情节。每次少年郎变心的时候,都是用户体验非常不好的时刻,要么丢包,要么连接中断。
怎么能让少年郎有皇上一般的体验,从而让用户有皇上一般的体验?
上文少年郎之所以体验差,是因为姑娘们彼此是独立的个体,不合作。如果姑娘们是一个会所的,且是合作共赢的关系,那结果就不一样了。
好,引入一个新的角色,会所老板AC(Access Point Contoller)。姑娘们为AP(Access Point),会所老板AC管理红楼里的姑娘们AP。现在让少年郎在红楼里再走一遭,看看效果如何?
少年郎与501的初恋缠绵悱恻,但少年郎需要远行,离501越行越远。501的姑娘周期性将少年郎的信号强度发给老板AC。少年郎附近其它姑娘也能检测少年郎的信号强度,一并将信号上传给老板。最了解少年郎周围信号强度的不是少年郎,也不是那些姑娘们,而是信息最全的幕后老板。一旦发现少年郎有更好姑娘AP的选择时,老板会给501的姑娘发消息,请尽快与少年郎快刀斩乱麻,一刀两断。
501的姑娘立马通过802.11v消息给少年郎发消息,请尽快联系502姑娘,她的信号强度比我好,她的信道号是xx,否则30秒掐断连接。
少年郎立马联系502的姑娘,很快连接成功,由于会所是一个集团,所以少年郎的IP地址保持不变。而且少年郎在Reassociation消息里明确告知自己原先的相好是501。那么502就会联系501,将漫游期间501代为保存的、少年郎的消息报文,全部拉取过来,最终的效果是少年郎的报文一个也没有丢失。由于IP地址保持不变,所有的连接也没有中断。
每次老板AC智能计算,决定少年郎需要漫游了,都会发消息给少年郎的当前相好发消息,不断重复着上文漫游故事。所以少年郎无论走到哪里,基本上都能连接最强的信号。
为了减少漫游延迟,通常少年郎还会有备胎。即当前连接着501,还会私下与附近502、503、504姑娘们保持密切来往(密钥分享),一旦真正需要漫游了,可以更快速连接,因为认证密钥等耗时的工作已经提前完成了,这个就是快速漫游技术802.11r
当然,在没有老板AC,且AP姑娘们相互独立的情况下。可以将AP的发射功率调小,一旦少年郎离开上一个AP的辐射半径(较小的半径),信号微弱到低于设定最低阈值。逼迫少年郎放弃初恋,尝试连接信号更好的AP。这样可以改变少年郎一直黏在初恋身上。且姑娘们使用共同DHCP服务器地址池,保证每次漫游少年郎都能保持IP地址不变,这样的话就把漫游造成的连接中断降到最小值,大不了丢失漫游期间的报文而已。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存