寻找WiFi AP时,Android设备会进行主动扫描还是被动扫描


9

我想知道在寻找AP连接时Android设备是进行主动扫描还是被动扫描。我已经使用Wireshark和wifi嗅探器进行了测试,并且似乎在iPhone发送探测请求帧以发现可用的AP(主动扫描)的同时,我的Android设备有时会发送探测请求帧,但大多数情况下它不会发送完全探测请求帧,但等待AP发送信标帧(被动扫描)。

我一直在寻找有关此主题的一些官方信息/文档,但尚未发现任何有用的信息。如果有人可以为我提供这个问题的答案,我将不胜感激。


1
当移动电话积极扫描AP时,它应该发送探测请求,而不是信标帧。手机应在寻找信标或探测响应。
mattm 2015年

@mattm你是对的。我已经编辑了问题,所以现在它是正确的。
fragon

Answers:


7

我发现的唯一“官方”解释是此注释(日期为2009年7月)在android上的Git存储库中:

wifi:WifiManager.startScan()现在默认会进行被动扫描

仅当使用隐藏的AP或调用新方法WifiManager.startScanActive()时,才会进行主动扫描 。

存在一个开始主动扫描的隐藏功能(在此报告)表明,正常扫描功能确实是被动的。不过,这要花一分钱,因为Android文档没有明确说明函数WifiManager.startScan()是否为被动。

还相关:SO上的这两个帖子(帖子1帖子2)报告扫描活动是被动的(帖子1),并且由于android 4.3,它甚至不可能调用主动扫描方法(帖子2)-但没有链接到官方资源。


0

我也一直在寻找正式文件以寻找确切答案。但是我找不到。因此,我是根据自己的假设写这个基础的。我相信客户端设备(在这种情况下为移动设备)会同时执行主动和被动扫描。我的原因如下:

  1. 当移动设备激活WiFi接口时,它需要通过附近的AP扫描信标,以便列出可用的SSID以进行连接。这是被动扫描模式。
  2. 之前已连接到多个SSID的移动台会将探测请求帧(具有所有SSID)发送到附近的AP,如果SSID匹配,则AP将响应探测请求,连接/认证过程将开始。这是一个主动扫描模式。
  3. 带有隐藏SSID的AP的特殊情况。当用户手动连接到隐藏的SSID时,移动设备将生成探测请求并将其广播到附近的AP。当SSID与任何AP匹配时,它将遵循连接/身份验证过程。这也是一种主动扫描模式。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.