首页 文章

Wifi漫游连接序列

提问于
浏览
1

我正在维护一个与wifi网络相关的小应用程序 . 当手机连接到wifi网络时,它会测试互联网连接 .

在具有两个相邻wifi网络(不同SSID)的地方测试和使用应用程序,其中覆盖范围略微重叠,运行Android 2.2.2的HTC Desire,从wifi A移动到B时断开连接和连接的顺序似乎是:

  • 断开与WiFi A的连接

  • 连接到wifi B.

现在有一个运行4.2.2的Fairphone,序列似乎是:

  • 连接到wifi B.

  • 断开与WiFi A的连接

这是否意味着与HTC Desire不同,Fairphone会进行某种漫游并首先连接到wifi,其信号变得比当前的wifi连接强,然后放弃“旧的”wifi连接?

我问这个问题是因为如果我的观察是正确的,这对应用程序的行为有一些影响,即它不应该考虑最后的wifi连接事件,而是检查无线连接的实际状态,无论最后一个事件是“连接”还是“断开连接” .

1 回答

  • 1

    在Android上,就像许多Linux风格一样,wpa_supplicant控制着漫游行为 . 你可以调查一下,看看它在做什么 .

    特别是为了回答您的问题,WLAN设备(在Linux中)可能使用不同类型的驱动程序:

    • SoftMAC:MLME(媒体访问控制(MAC)子层管理实体)在软件中管理 .

    • FullMAC:MLME由硬件管理 .

    特别是一些MLME函数are

    • 验证

    • Deauthenticate

    • Associate

    • Disassociate

    • 重新关联

    因此,在Android的不同设备和版本(驱动程序类型,wpa_supplicant)上的某些机制中会出现差异 .

    漫游的正确802.11行为是向新选择的AP发送重新关联请求 . 首先从AP解除关联以及稍后与新AP关联的客户端实际上不支持802.11漫游并通过SoftMac方法使用某种假漫游 .

    在发送到站的标准漫游分组中,不会丢失并且从一个AP转发到漫游AP以便漫游站接收它们 .

相关问题