Устройства Android выполняют активное или пассивное сканирование при поиске точки доступа WiFi

Я хотел бы знать, выполняют ли устройства Android активное или пассивное сканирование при поиске точки доступа для подключения. Я уже провел тест с использованием Wireshark и сниффера Wi-Fi, и кажется, что в то время как iPhone отправляет кадры запроса зонда для обнаружения доступных точек доступа (активное сканирование), мое устройство Android иногда отправляет кадр запроса зонда, но в большинстве случаев он не отправляет Кадры запроса зондирования вообще, но ожидает, пока точка доступа отправит кадр маяка (пассивное сканирование).

Я искал официальную информацию/документацию по этой теме, но пока не нашел ничего полезного. Я был бы очень признателен, если бы кто-то мог дать мне ответ на этот вопрос.

Ответы (2)

Единственное «официальное» объяснение, которое я нашел, находится в этом комментарии (от июля 2009 г.) в репозиториях Git на Android:

wifi: WifiManager.startScan() теперь по умолчанию выполняет пассивное сканирование .

Активное сканирование будет происходить только в том случае, если используется скрытая точка доступа или если вызывается новый метод WifiManager.startScanActive() .

Существование скрытой функции для запуска активного сканирования (о которой сообщается здесь ) предполагает, что обычная функция сканирования действительно является пассивной. Однако это следует воспринимать с долей скептицизма, поскольку в документации Android явно не указано, является ли функция WifiManager.startScan() пассивной или нет.

Также связано: эти два сообщения на SO ( сообщение 1 , сообщение 2 ) сообщают, что активность сканирования является пассивной (сообщение 1) и что, начиная с Android 4.3, даже невозможно вызвать метод активного сканирования (сообщение 2) - но нет ссылка на официальные источники.

Я тоже искал официальный документ для точного ответа. Но я ничего не нашел. Следовательно, я пишу эту базу своего собственного предположения. Я считаю, что клиентское устройство (в данном случае мобильное) выполняет как активное, так и пассивное сканирование. Мои причины следующие:

  1. Когда мобильное устройство активирует интерфейс Wi-Fi, ему необходимо сканировать маяки ближайшей точки доступа, чтобы доступные SSID были перечислены для подключения. Это пассивный режим сканирования.
  2. Мобильный телефон, который ранее был подключен к нескольким SSID, перенаправит кадры запроса проверки (со всеми SSID) на ближайшую точку доступа, и если SSID совпадет, точка доступа ответит на запрос проверки, и начнется процесс подключения/аутентификации. Это активный режим сканирования.
  3. Особый случай для точки доступа со скрытым SSID. Когда пользователь вручную подключается к скрытому SSID, мобильное устройство генерирует тестовый запрос и передает его ближайшей точке доступа. Когда SSID совпадает с любой из точек доступа, за этим последует процесс подключения/аутентификации. Это тоже активный режим сканирования.