Führen Android-Geräte einen aktiven oder passiven Scan durch, wenn sie nach WiFi AP suchen

Ich würde gerne wissen, ob Android-Geräte einen aktiven oder passiven Scan durchführen, wenn sie nach dem AP suchen, um sich zu verbinden. Ich habe bereits einen Test mit Wireshark und WLAN-Sniffer durchgeführt und es scheint, dass, während ein iPhone Probe-Request-Frames sendet, um verfügbare APs zu entdecken (aktiver Scan), mein Android-Gerät manchmal Probe-Request-Frames sendet, aber meistens nicht sendet Probe Request Frames überhaupt, wartet aber darauf, dass der AP einen Beacon-Frame sendet (passiver Scan).

Ich habe nach offiziellen Informationen/Dokumentationen zu diesem Thema gesucht, aber noch nichts Nützliches gefunden. Ich wäre sehr dankbar, wenn mir jemand eine Antwort auf diese Frage geben könnte.

Antworten (2)

Die einzige "offizielle" Erklärung, die ich gefunden habe, ist in diesem Kommentar (vom Juli 2009) in den Git-Repositories auf Android:

wifi: WifiManager.startScan() führt jetzt standardmäßig passive Scans durch .

Aktive Scans werden nur durchgeführt, wenn ein versteckter AP verwendet wird oder wenn die neue Methode WifiManager.startScanActive() aufgerufen wird.

Die Existenz einer versteckten Funktion zum Starten eines aktiven Scans ( hier berichtet ) deutet darauf hin, dass die normale Scan-Funktion tatsächlich passiv ist. Dies ist jedoch mit Vorsicht zu genießen, da die Android-Dokumentation nicht explizit sagt, ob die Funktion WifiManager.startScan() passiv ist oder nicht.

Auch verwandt: Diese beiden Posts auf SO ( Post 1 , Post 2 ) berichten, dass die Scan-Aktivität passiv ist (Post 1) und dass es seit Android 4.3 nicht einmal möglich ist, die aktive Scan-Methode aufzurufen (Post 2) - aber es gibt keine Link zu offiziellen Quellen.

Ich habe auch nach dem offiziellen Dokument gesucht, um eine genaue Antwort zu erhalten. Aber ich konnte keine finden. Daher schreibe ich diese Basis meine eigene Annahme. Ich glaube, ein Client-Gerät (in diesem Fall mobil) führt sowohl den aktiven als auch den passiven Scan durch. Meine Gründe sind wie folgt:

  1. Wenn ein Mobiltelefon die WiFi-Schnittstelle aktiviert, muss es von nahe gelegenen APs nach Beacons suchen, damit die verfügbaren SSIDs für die Verbindung aufgelistet werden. Dies ist ein passiver Scanmodus.
  2. Ein Mobiltelefon, das zuvor mit mehreren SSIDs verbunden war, wird die Probe-Request-Frames (mit allen SSIDs) an den nahe gelegenen AP senden, und wenn die SSID übereinstimmt, antwortet der AP auf die Probe-Request und der Verbindungs-/Authentifizierungsprozess beginnt. Dies ist ein aktiver Scanmodus.
  3. Sonderfall für den AP mit versteckter SSID. Wenn sich der Benutzer manuell mit der verborgenen SSID verbindet, generiert das mobile Gerät eine Probe-Anfrage und sendet sie an den nahe gelegenen AP. Wenn die SSID mit einem der APs übereinstimmt, folgt der Verbindungs-/Authentifizierungsprozess. Dies ist auch ein aktiver Scanmodus.