Wi-Fi客户端在连接之前无法判断给定AP将连接到哪个有线网络。
因此,如果您有两个AP使用相同的安全类型和密码发布相同的SSID(或根本没有安全性),则客户端将漫游到它,认为它是同一底层网络的一部分。如果两个AP实际连接到两个不同的底层IP子网,则会破坏客户端正在进行的所有更高级别的连接或流量(SSH会话,TCP下载,视频流,已安装的文件服务器等)。
在最糟糕的情况下,如果两个AP都充当NAT网关并使用相同的私有IP子网,那么写得不好的客户端甚至可能没有意识到它已经切换了网络,并且可能继续将其Internet流量发送到旧的AP的MAC地址,而不是新的AP,直到路由器的ARP条目超时。Apple的客户端设备(OS X和iOS)执行称为DNAv4(“在IPv4中检测网络附件”:RFC 4436)的操作,以确保它们不会发生。每当Mac或iOS设备的Wi-Fi接口说它已从一个AP漫游到另一个AP时,网络堆栈和DHCP客户端会仔细检查这是否真的是同一个网络,以便更快地重新建立正确的连接。我打电话给他我的答案是“如何为多个接入点获得相同的SSID?” 。
顺便说一句,我需要指出,你问题的其他一些答案正在传播一个虚假的神话。如果大多数客户端实现仍然连接到一个SSID的AP,则不会查看所有“已保存”的SSID进行漫游。大多数客户端实现将依赖于当前SSID,并且仅尝试在当前SSID的AP内漫游,除非客户端与当前SSID完全断开连接。其他答案描述的(不正确)行为会完全糟糕,因为假设你住在星巴克上方的公寓里,你的AP在客厅,但回到卧室,星巴克AP比你自己的AP强。你不希望你的客户只是因为它更强大而漫游到星巴克AP。
切换到其他“已保存”的SSID只会在您完全脱离网络时发生,例如当您的AP完全超出范围(或关闭或崩溃),或者在启动时,或者可能从睡眠中醒来时(但我认为)甚至从睡眠唤醒算法也应该尝试回到它们所在的最后一个SSID,特别是在短暂睡眠之后,以便提供最佳的网络服务连续性)。
编辑补充说:我应该指出,IEEE 802.11标准和Wi-Fi联盟的规范和测试/认证程序都没有规定802.11 / Wi-Fi客户端的确切漫游和“首选/保存”网络连接行为。我已经描述了我最熟悉的客户(Apple客户端)的行为,但完全有可能是那些执行不力的客户做了蠢事。