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

9

Ich möchte wissen, ob Android-Geräte aktiv oder passiv scannen, wenn sie nach dem AP suchen, um eine Verbindung herzustellen. Ich habe bereits einen Test mit Wireshark und WLAN-Sniffer durchgeführt und es scheint, dass ein iPhone zwar Probe Request-Frames sendet, um verfügbare APs zu ermitteln (aktiver Scan), mein Android-Gerät jedoch manchmal Probe Request-Frames sendet, diese jedoch meistens nicht senden Probe Request-Frames überhaupt, wartet jedoch 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 die Antwort auf diese Frage geben könnte.

fragon
quelle
1
Wenn ein Mobiltelefon aktiv nach einem AP sucht, sollte es eine Prüfanforderung senden, keinen Beacon-Frame. Das Mobiltelefon sollte nach einer Beacon- oder Sondenantwort suchen.
Mattm
@ Mattm Du hast recht. Ich habe die Frage so bearbeitet, dass sie jetzt korrekt ist.
Fragon

Antworten:

7

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.

Das Vorhandensein einer versteckten Funktion zum Starten eines aktiven Scans ( hier angegeben ) legt nahe, dass die normale Scanfunktion tatsächlich passiv ist. Dies ist jedoch mit einem Körnchen Salz zu nehmen, da in der Android-Dokumentation nicht explizit angegeben ist, ob die Funktion WifiManager.startScan () passiv ist oder nicht.

Ebenfalls 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.

Gemeinschaft
quelle
0

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 WLAN-Schnittstelle aktiviert, muss es von einem nahe gelegenen AP 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, sprengt die Prüfanforderungsrahmen (mit allen SSIDs) an einen nahe gelegenen AP. Wenn die SSID übereinstimmt, antwortet der AP auf die Prüfanforderung und der Verbindungs- / Authentifizierungsprozess beginnt. Dies ist ein aktiver Scanmodus.
  3. Sonderfall für den AP mit versteckter SSID. Wenn der Benutzer manuell eine Verbindung zur versteckten SSID herstellt, generiert das mobile Gerät eine Prüfanforderung und sendet sie an den nahe gelegenen AP. Wenn die SSID mit einem der AP übereinstimmt, folgt ein Verbindungs- / Authentifizierungsprozess. Dies ist auch ein aktiver Scanmodus.
Bohbian
quelle