WLAN-Auswahl

Auf dieser Seite werden die Algorithmen und Verfahren beschrieben, die in Android 12 zum Auswählen und Wechseln zwischen WLANs verwendet werden. Android bewertet kontinuierlich die Qualität des verbundenen Netzwerks und die Qualität verfügbarer Netzwerke.

Lebenszyklus einer automatischen Verbindung

In diesem Abschnitt wird beschrieben, wie ein Android-Gerät verfügbare WLANs bewertet und sich mit ihnen verbindet.

  1. Das Gerät sucht auf eine der folgenden Arten nach verfügbaren Netzwerken, je nachdem, ob der Bildschirm ein- oder ausgeschaltet ist.

    • Display an (verbunden): Das Android-Subsystem für die Konnektivität prüft regelmäßig, ob die aktuelle Verbindung gut genug ist, um das Scannen zu überspringen (wie in Scans bei eingeschaltetem Display definiert). Wenn die Verbindung nicht gut genug ist, um das Scannen zu überspringen, löst das Subsystem für die Verbindung einen Scan aus, um verfügbare Netzwerke zu erkennen. Diese Scans können auch von anderen Systemkomponenten ausgelöst werden, z. B. vom Standortsystem oder von einer App (einschließlich der Einstellungen).
    • Display an (getrennt): Das Android-Verbindungssubsystem führt in regelmäßigen Abständen Scans durch, die einem exponentiellen Backoff-Zeitplan folgen. Das Modul wertet alle empfangenen Scanergebnisse aus und versucht, das beste Netzwerk für die Verbindung auszuwählen.
    • Display aus (getrennt): Die Host-CPU programmiert die Firmware mit einer Liste bevorzugter Netzwerke mithilfe von PNO-Scans (Preferred Network Offload), sobald das Display ausgeschaltet wird. Die Firmware weckt den Host, wenn sie eines der bevorzugten Netzwerke findet. AOSP geht davon aus, dass PNO auf dem Gerät unterstützt wird.

    Mit der Methode WifiManager#allowAutojoinGlobal(boolean) können automatische Verbindungen deaktiviert werden. Dies ist eine privilegierte API, die Gerätehersteller unter bestimmten Umständen verwenden können, z. B. bei einem nicht mobilen, vorkonfigurierten Gerät.

    Wenn das Gerät verbunden ist und das config_wifi_framework_enable_associated_network_selection-Overlay auf false festgelegt ist, werden keine Konnektivitätsscans durchgeführt und Scanergebnisse lösen keine Netzwerkauswahl aus. Diese Einstellung hat keine Auswirkungen, wenn das Gerät getrennt ist. Konnektivitätsscans und die Netzwerkauswahl werden weiterhin durchgeführt.

  2. Die Scanergebnisse werden ausgewertet.

    • Wenn das Gerät mit einem WLAN verbunden ist, prüft das Framework, ob das aktuelle Netzwerk gut genug ist, um die Netzwerkauswahl zu überspringen.

      Ein Netzwerk wird als gut genug, um die Netzwerkauswahl zu überspringen definiert, wenn eine der folgenden Anforderungen erfüllt ist:

      • Seit der letzten Netzwerkauswahl sind weniger als 10 Sekunden vergangen.
      • Der Nutzer hat vor Kurzem manuell eine Verbindung zum Netzwerk hergestellt. „Vor Kurzem“ kann mit dem Overlay config_wifiSufficientDurationAfterUserSelectionMilliseconds konfiguriert werden.
      • Das Gerät ist mit einer OSU-Verbindung (Online Sign Up) verbunden.
      • Alle folgenden Anforderungen sind erfüllt:

        • Die Empfangssignalstärke (Received Signal Strength Indication, RSSI) ist höher als der erforderliche RSSI-Schwellenwert oder es wird ausreichend Traffic über die Verbindung übertragen (siehe Scans bei eingeschaltetem Display für RSSI- und Traffic-Schwellenwerte).
        • Das Netzwerk ist validiert (mit dem Internet verbunden) oder vom Nutzer für die Verwendung ohne Internetzugang genehmigt.
        • Das Netzwerk ist nicht getaktet.
    • Wenn das Netzwerk gut genug ist, um die Netzwerkauswahl zu überspringen, werden keine weiteren Maßnahmen ergriffen.

    • Wenn das verbundene WLAN nicht gut genug ist oder das Gerät nicht mit einem Netzwerk verbunden ist, ruft das Framework die Network Nominators auf, um anhand der gefilterten Scanergebnisse eine Liste mit infrage kommenden WLANs zu erstellen, mit denen eine Verbindung hergestellt werden kann. Die Netzwerk-Nominatoren suchen nach vorhandenen WLAN-Konfigurationen oder erstellen neue Konfigurationen für die Kandidatennetzwerke.

    • Die Scanergebnisse werden gefiltert, um BSSIDs mit einem RSSI unter dem des Eintrags zu entfernen. Dies kann mit den Overlays config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz und config_wifiFrameworkScoreEntryRssiThreshold6ghz konfiguriert werden. Außerdem werden blockierte BSSIDs herausgefiltert. BSSIDs können aufgrund wiederholter Verbindungsfehler, häufiger Trennungen und expliziter Anfragen des AP, die Zuordnung für einen bestimmten Zeitraum nicht zu versuchen (MBO-OCE), blockiert werden. Das Blockieren von BSSIDs wird im Abschnitt SSID- und BSSID-Blockierung beschrieben.

    • Wenn sich das Gerät schnell bewegt, werden die Scanergebnisse optional weiter gefiltert, um BSSIDs zu entfernen, deren RSSI sich schnell ändert. Dies deutet darauf hin, dass sie sich nicht mit dem Gerät bewegen. Diese Optimierung kann mit config_wifiHighMovementNetworkSelectionOptimizationEnabled konfiguriert werden (Aktivieren oder Deaktivieren der Optimierung). Außerdem können die Overlays config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs und config_wifiHighMovementNetworkSelectionOptimizationRssiDelta verwendet werden, um die Stabilitätsanforderung für Scanergebnisse zu konfigurieren (RSSI-Änderung bei Scanergebnissen, die zeitlich ausreichend voneinander getrennt sind).

  3. Das Framework führt den candidate scorer aus, um für jeden SSID-Kandidaten einen Wert zu generieren. Die SSID-Kandidaten können mehrere BSSID-Kandidaten enthalten, die von den Netzwerknominatoren generiert werden. Der Kandidat mit der höchsten Punktzahl ist der Gewinnerkandidat.

  4. Das Framework führt den Algorithmus user connect choice aus. Dadurch kann ein vom Nutzer ausgewähltes Netzwerk zum neuen Gewinner werden, anstatt das Gewinnernetzwerk aus dem Candidate Scorer zu verwenden.

  5. Das Framework bestimmt, ob der Gewinnerkandidat mit dem verbundenen Netzwerk übereinstimmt. Damit ein Abgleich als Treffer gilt, muss eine der folgenden Bedingungen erfüllt sein:

    • Der beste Kandidat und das verbundene WLAN haben dieselbe BSSID.
    • Wenn Firmware-Roaming verfügbar ist (einschließlich der Möglichkeit, BSSIDs auf die Blockierliste zu setzen), haben der beste Kandidat und das verbundene Netzwerk dieselbe SSID und denselben Sicherheitstyp.

    Wenn der Gewinner mit dem verbundenen Netzwerk übereinstimmt, sind keine weiteren Maßnahmen erforderlich. Wenn der Gewinner nicht mit dem Netzwerk übereinstimmt, wird das Gerät mit dem Gewinner verbunden.

Bewertung eines verbundenen Netzwerks

Das Android-Framework oder die Firmware bewerten regelmäßig die Qualität des verbundenen Netzwerks. In diesem Abschnitt wird beschrieben, wie das verbundene Netzwerk bewertet wird, wenn das Display ein- oder ausgeschaltet ist.

Diese Bewertung erfolgt zusätzlich zur Netzwerkauswahl, die in den vorherigen Abschnitten beschrieben wird.

Bildschirm an

Das Android-Framework bewertet das verbundene Netzwerk so:

  1. Der WLAN-Dienst ruft alle 3 Sekunden RSSI- und Link-Layer-Statistiken ab (konfigurierbar über das Overlay config_wifiPollRssiIntervalMilliseconds).

    Wenn die dynamische Intervallanpassung über das config_wifiAdjustPollRssiIntervalEnabled-Overlay aktiviert ist, ändert sich das Polling-Intervall dynamisch basierend auf dem Mobilitätsstatus des Geräts und dem RSSI.

    • Das Polling-Intervall wird auf 6 Sekunden verlängert (konfiguriert durch das Overlay config_wifiPollRssiLongIntervalMilliseconds), wenn das Gerät stillsteht und der RSSI-Wert größer als -68 dBm ist (konfiguriert durch die Overlays config_wifiClientRssiMonitorThresholdDbm und config_wifiClientRssiMonitorHysteresisDb).
    • Das Abfrageintervall wird wieder auf 3 Sekunden reduziert (konfiguriert durch das config_wifiPollRssiIntervalMilliseconds-Overlay), wenn das Gerät nicht stationär ist oder der RSSI-Wert unter -73 dBm liegt (konfiguriert durch das config_wifiClientRssiMonitorThresholdDbm-Overlay).
  2. Der WLAN-Dienst berechnet einen Wert für die Verbindung basierend auf dem RSSI und den Statistiken der Link-Ebene.

  3. Der WLAN-Dienst übergibt die Punktzahl an den Verbindungsdienst. Dieser verwendet die Punktzahl, um zu entscheiden, ob eine Verbindung zu einem WLAN oder zu einem anderen verfügbaren Netzwerktyp wie einem Mobilfunknetz hergestellt werden soll.

Display ausschalten

Das Framework initiiert keine Bewertung im verbundenen Netzwerk. Der Prozess der Netzwerkauswahl kann jedoch weiterhin stattfinden, wenn Scans von anderen Komponenten (z. B. Standortdiensten) initiiert werden. Die Firmware bewertet die Netzwerkqualität. Wenn sie schlecht ist, kann es sein, dass die Firmware Roaming durchführt oder (eventuell) die Verbindung zum Netzwerk trennt und den Host aktiviert.

Konnektivitätsscans

Scans werden automatisch durchgeführt, je nachdem, ob das Display des Geräts ein- oder ausgeschaltet ist und ob das Gerät mit einem WLAN verbunden ist.

Bildschirm an

Das Framework löst Scanentscheidungen in immer größeren Intervallen aus, wenn der Bildschirm eingeschaltet ist. Die Scan-Entscheidungsintervalle werden mit den Overlays config_wifiDisconnectedScanIntervalScheduleSec, config_wifiConnectedScanIntervalScheduleSec und config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec konfiguriert (das sind Arrays von Ganzzahlen). Standardmäßig werden Scans in exponentiellen Backoff-Intervallen von 20, 40, 80 und 160 Sekunden durchgeführt. Nachfolgende Scans werden möglicherweise in Intervallen von 160 Sekunden durchgeführt (dies sind die Standardwerte dieser Overlays).

Die exponentiellen Backoff-Scanintervalle werden zurückgesetzt und beginnen bei 20 Sekunden, wenn sich der Bildschirmstatus ändert, d. h. wenn der Bildschirm ein- oder ausgeschaltet wird.

(Android 13 oder höher) Wenn zur Laufzeit unterschiedliche Scanintervalle erforderlich sind, kann eine OEM-privilegierte App die WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) API aufrufen, um den Scanzeitplan für den eingeschalteten Bildschirm dynamisch festzulegen.

Die Entscheidung, ob ein Scan ausgeführt oder übersprungen wird, hängt davon ab, ob die aktuelle Netzwerkverbindung gut genug ist, um das Scannen zu überspringen. Eine Verbindung ist gut genug, um das Scannen zu überspringen, wenn eine der folgenden Anforderungen erfüllt ist:

  • Das Gerät ist mit einer OSU-Verbindung (Online Sign Up) verbunden.
  • Über die Verbindung wird ausreichend Traffic übertragen (siehe die Traffic-Grenzwerte weiter unten).
  • Der RSSI ist größer als der erforderliche RSSI-Schwellenwert (siehe RSSI-Schwellenwerte unten) und die Netzwerkauswahl wurde vor Kurzem durchgeführt (standardmäßig 10 Minuten, kann aber mit dem config_wifiConnectedHighRssiScanMinimumWindowSizeSec-Overlay konfiguriert werden) und entweder das Netzwerk ist validiert (mit dem Internet verbunden) oder vom Nutzer für die Verwendung ohne Internetzugang genehmigt.

Die RSSI- und Traffic-Grenzwerte sind:

  • Der RSSI ist größer als -73 dBm für das 2,4‑GHz-Band, das mit dem Overlay config_wifi_framework_wifi_score_low_rssi_threshold_24GHz konfiguriert ist, oder -70 dBm für das 5‑GHz- und 6‑GHz-Band, das mit den Overlays config_wifi_framework_wifi_score_low_rssi_threshold_5GHz und config_wifiFrameworkScoreLowRssiThreshold6ghz konfiguriert ist.
  • Der Traffic (Senden oder Empfangen) ist größer als 16 Pakete pro Sekunde (pps), die mit dem Overlay config_wifiFrameworkMinPacketPerSecondActiveTraffic konfiguriert sind.

Wenn das Gerät verbunden ist und der Bildschirm eingeschaltet ist, überwacht ein verbundener Scorer regelmäßig die WLAN-Qualität anhand von Signalen wie RSSI und der Anzahl der übertragenen Pakete. Wenn die WLAN-Qualität als schlecht eingestuft wird (siehe unten) und das Gerät zwei gleichzeitige Stationen unterstützt, wird ein Scan ausgelöst. Mit dem config_wifiLowConnectedScoreThresholdToTriggerScanForMbb-Overlay kann der Grenzwert für die Punktzahl konfiguriert werden, der das Scannen auslöst. Mit dem config_wifiLowConnectedScoreScanPeriodSeconds-Overlay kann der Zeitraum dieser Scans konfiguriert werden.

Display aus und mit WLAN verbunden

Wenn das Display ausgeschaltet und das Gerät mit einem WLAN verbunden ist, führt die Firmware (Wi‑Fi SoC) Roaming-Scans durch. Das Framework führt keine Scans durch, wenn das Display ausgeschaltet ist.

Display aus und keine WLAN-Verbindung (getrennter Zustand)

Wenn das Display ausgeschaltet und die WLAN-Verbindung getrennt ist, führt die Firmware PNO-Scans nach SSIDs durch. Das Framework konfiguriert die Firmware mit einer Liste von SSIDs, nach denen gesucht werden soll, und einer Liste von Kanälen, auf denen gesucht werden soll. Wenn eine konfigurierte SSID gefunden wird, aktiviert die Firmware das Framework.

Das Framework konfiguriert auch das Intervall, in dem die Firmware PNO-Scans durchführen soll. Dabei wird der Mobilitätsstatus des Geräts verwendet, um verschiedene Scanintervalle auszuwählen. Wenn sich das Gerät nicht bewegt, beträgt das Intervall für die ersten drei Scans 60 Sekunden (gesteuert durch das config_wifiStationaryPnoScanIntervalMillis-Overlay) und für die nachfolgenden Scans 180 Sekunden (ein fester 3-facher Multiplikator des Overlays). Bei hoher Mobilität beträgt das Intervall für die ersten drei Scans 20 Sekunden (gesteuert durch das config_wifiMovingPnoScanIntervalMillis-Overlay) und für nachfolgende Scans 60 Sekunden (ein fester 3-facher Multiplikator des Overlays).

Netzwerknominierer

Die Netzwerk-Nominierer suchen oder erstellen Konfigurationen (WifiConfiguration) für Netzwerke, die:

  • Verfügbar (basierend auf Scanergebnissen) oder das verbundene Netzwerk (das manchmal in unzuverlässigen Scanergebnissen fehlt).
  • Einen minimalen RSSI haben. Der minimale RSSI beträgt -80 dBm für das 2,4‑GHz-Band und -77 dBm für das 5‑GHz- und 6‑GHz-Band.Er kann mit den Overlays config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz und config_wifiFrameworkScoreEntryRssiThreshold6ghz konfiguriert werden.
  • Nicht blockiert, z. B. aufgrund vorheriger Verbindungsfehler.
  • Das Netzwerk gibt nicht an, dass es nicht verwendet werden kann (z. B. mit MBO/OCE).
  • Kann mit der Verwendung der auf dem Gerät verfügbaren Anmeldedaten zusammenhängen.

Die folgenden Netzwerk-Nominatoren werden verwendet:

  • Nominator für gespeicherte Netzwerke:Bewertet alle gespeicherten Netzwerke (einschließlich gespeicherter Passpoint-Abos).
  • Vorschlagsgenerator für Netzwerke:Bewertet alle Netzwerke, die von Apps über die Suggestion API bereitgestellt werden, einschließlich vorgeschlagener Passpoint-Abos.

Bewertungen von Kandidaten

Die Kandidaten werden von Bewertern bewertet und erhalten eine Punktzahl. Der Wert für ThroughputScorer (die Standardbewertung) basiert auf Folgendem:

  • Eine Basisbewertung wird basierend auf dem RSSI berechnet, wobei der RSSI für das 2,4‑GHz-Band auf -73 dBm und für das 5‑GHz- und 6‑GHz-Band auf -70 dBm begrenzt ist (konfiguriert mit den Overlays config_wifi_framework_wifi_score_low_rssi_threshold_24GHz, config_wifi_framework_wifi_score_low_rssi_threshold_5GHz und config_wifiFrameworkScoreLowRssiThreshold6ghz).
  • Die Steigerung der Punktzahl wird auf Grundlage einer Durchsatzschätzung berechnet, die aus der Technologie, der Kanalfrequenz, der Bandbreite, dem RSSI, den Kanalbedingungen, der maximalen Anzahl von Spatial Streams und anderen Parametern abgeleitet wird. Die Steigerung des Scores kann mit den Overlays config_wifiFrameworkThroughputBonusNumerator und config_wifiFrameworkThroughputBonusDenominator konfiguriert werden und ist auf einen Maximalwert begrenzt, der mit dem Overlay config_wifiFrameworkThroughputBonusLimit angegeben wird.
  • Ein Kandidatennetzwerk, das vor Kurzem vom Nutzer oder von einer App ausgewählt wurde, erhält für einen Zeitraum, der über das config_wifiFrameworkLastSelectionMinutes-Overlay konfiguriert werden kann, einen großen Score-Boost. Während dieses Zeitraums wird das Netzwerk garantiert gegenüber Netzwerken ausgewählt, die nicht vom Nutzer ausgewählt wurden.
  • Ein Kandidat, der dem aktuellen Netzwerk entspricht, erhält einen durch die Overlays config_wifiFrameworkCurrentNetworkBonusMin und config_wifiFrameworkCurrentNetworkBonusPercent konfigurierten Score-Boost (er erhält einen zusätzlichen Bonus basierend auf einem Prozentsatz seines RSSI- und durchsatzbasierten Scores, bis zum konfigurierbaren Minimum).
  • Ein sicheres Netzwerk wird besser bewertet als ein offenes Netzwerk. Der Bonus wird über das Overlay config_wifiFrameworkSecureNetworkBonus konfiguriert.
  • Ein kostenloses Netzwerk wird höher bewertet als ein kostenpflichtiges Netzwerk. Der Bonus wird über das Overlay config_wifiFrameworkUnmeteredNetworkBonus konfiguriert.
  • Ein gespeichertes Netzwerk wird höher bewertet als ein Netzwerk, das über die Suggestion API vorgeschlagen wird. Der Bonus wird über das Overlay config_wifiFrameworkSavedNetworkBonus konfiguriert.
  • Nicht vertrauenswürdige Netzwerke (die als Teil der Suggestion API angefordert werden können) werden niedriger bewertet als alle anderen Netzwerke.
  • Ein Netzwerk, bei dem zuvor kein Internetzugriff erkannt wurde, erhält den Wert 0, wenn das Gerät mit einem anderen Netzwerk verbunden ist, das Internetzugriff hat.

Der Standardbonus für gespeicherte im Vergleich zu vorgeschlagenen und nicht gemessenen im Vergleich zu gemessenen (d. h. die Standard-Overlay-Werte) führt zu einer strengen Prioritätsreihenfolge für gespeicherte, vorgeschlagene, gemessene und nicht gemessene:

  1. Gespeicherte kostenlose Netzwerke
  2. Vorgeschlagene kostenlose Netzwerke
  3. Gespeicherte kostenpflichtige Netzwerke
  4. Vorgeschlagene kostenpflichtige Netzwerke

Das bedeutet, dass ein gespeichertes Netzwerk mit unbegrenztem Datenvolumen (kostenlos) immer vor einem gespeicherten Netzwerk mit begrenzt verfügbarem Datenvolumen (kostenpflichtig) ausgewählt wird. Der zuletzt ausgewählte (vom Nutzer oder von der App) Punktebonus kann diese strenge Priorität überschreiben.

Im Framework können mehrere Candidate-Scorer installiert sein, aber jeweils nur einer kann aktiv sein. Die anderen Scorers können für Messwerte verwendet werden, um alternative Algorithmen zu untersuchen. In Android 11 ist der Standard-Scorer ThroughputScorer.

SSID- und BSSID-Blockierung

Das Framework kann SSIDs oder BSSIDs blockieren, sodass sie weder vorübergehend noch dauerhaft für Verbindungen berücksichtigt werden.

BSSID-Blockierung

Beim BSSID-Blockieren werden zwei Fehlerzähler geführt, ein Zähler für fortlaufende Fehler und ein Zähler für Fehlerfolgen, jeweils für einen bestimmten Fehlertyp (siehe unten für eine Liste der Fehlertypen). Wenn ein Fehler auftritt:

  • Der Zähler für den entsprechenden Fehlertyp wird erhöht.
  • Wenn der Grenzwert für den Fehler für diesen Fehlertyp erreicht ist:
    • Die BSSID ist blockiert.
    • Der Streak-Zähler für den Fehler wird erhöht.

Die Dauer, für die eine BSSID blockiert wird, beginnt mit einem konfigurierbaren Basiswert. Dieser Basiswert wird je nach RSSI durch die Overlays config_wifiBssidBlocklistMonitorBaseBlockDurationMs oder config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs angegeben. Die Dauer nimmt dann exponentiell bis zu einer konfigurierbaren Obergrenze zu, die durch das config_wifiBssidBlocklistMonitorFailureStreakCap-Overlay angegeben wird. Die Dauer verlängert sich, wenn auf derselben BSSID fortlaufend Fehler auftreten. Die Dauer ist die Basisdauer, die exponentiell mit der Anzahl der aufeinanderfolgenden Fehler steigt. Bei zwei aufeinanderfolgenden Fehlern ist die Blockierungsdauer beispielsweise viermal so lang wie die Basisdauer.

Die Grenzwerte für das Blockieren von BSSIDs hängen vom Fehlergrund ab und können jeweils mit Overlays angepasst werden:

  • Der AP lehnt die Zuordnung mit dem MBO/OCE-Code Unable to handle new STA ab: config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold.
  • Die Internetüberprüfung über dieses Netzwerk ist fehlgeschlagen: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold.
  • Fehlercode für Authentifizierungsfehler aufgrund eines falschen Passworts: config_wifiBssidBlocklistMonitorWrongPasswordThreshold.
  • EAP-Fehlerauthentifizierungsfehlercode für EAP-Netzwerke: config_wifiBssidBlocklistMonitorEapFailureThreshold.
  • Ablehnung der Verknüpfung, andere allgemeine Ablehnungen der Verknüpfung: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold.
  • Zeitlimit für die Verknüpfung: config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold.
  • Authentifizierungsfehler, andere allgemeine Authentifizierungsfehler: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold.
  • DHCP-Fehler, DHCP konnte nicht bereitgestellt werden: config_wifiBssidBlocklistMonitorDhcpFailureThreshold.
  • Die Verbindung wurde auf ungewöhnliche Weise getrennt. Das Gerät hat die Verbindung zum Netzwerk innerhalb sehr kurzer Zeit nach dem Herstellen der Verbindung getrennt: config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold. Der Zeitraum kann mit config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs konfiguriert werden.

Bedingungen für das Löschen von BSSID-Sperrlisten

Eine BSSID wird aus der Sperrliste entfernt, wenn:

  • Wenn WLAN aktiviert oder deaktiviert wird, werden alle BSSIDs aus der Blockierliste entfernt.
  • Wenn ein Nutzer im WLAN-Auswahltool auf ein Netzwerk tippt, werden alle BSSIDs des vom Nutzer ausgewählten Netzwerks aus der Blockierliste entfernt.
  • Wenn die Blockierungsdauer erreicht ist (Zeitüberschreitung), werden BSSIDs aus der Sperrliste entfernt.
  • Wenn das System neu gestartet wird, werden alle Blockierlisten gelöscht.
  • Wenn ein Netzwerk entfernt wird, werden alle mit diesem Netzwerk verknüpften BSSIDs aus der Blockierliste entfernt.

Bedingungen für das Zurücksetzen von Zählern für Fehler und Serien:

  • Wenn das System neu gestartet wird, werden die Zähler für alle BSSIDs zurückgesetzt.
  • Wenn ein Netzwerk entfernt wird, werden die Zähler für BSSIDs, die diesem Netzwerk zugeordnet sind, zurückgesetzt.
  • Wenn eine L2-Verbindung erfolgreich hergestellt wird, werden die Zähler für die folgenden Fehlercodes zurückgesetzt:

    • REASON_AP_UNABLE_TO_HANDLE_NEW_STA
    • REASON_WRONG_PASSWORD
    • REASON_EAP_FAILURE
    • REASON_ASSOCIATION_REJECTION
    • REASON_ASSOCIATION_TIMEOUT
    • REASON_AUTHENTICATION_FAILURE
    • REASON_ABNORMAL_DISCONNECT (wird nur bedingt gelöscht, wenn die letzte Verbindung des Geräts mit dieser BSSID vor mehr als 3 Stunden erfolgte)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • Wenn die Netzwerkvalidierung erfolgreich ist, werden die Zähler für den folgenden Fehlercode zurückgesetzt:

    • REASON_NETWORK_VALIDATION_FAILURE
  • Wenn die DHCP-Bereitstellung erfolgreich ist, werden die Zähler für den folgenden Fehlercode zurückgesetzt:

    • REASON_DHCP_FAILURE

SSID-Blockierung

Das Blockieren von SSIDs funktioniert ähnlich wie das Blockieren von BSSIDs. Für jeden Fehlertyp und jedes Netzwerk wird ein Fehlerzähler erhöht, wenn Verbindungsfehler dieses Typs auftreten. Wenn die Anzahl der Fehler eines bestimmten Typs einen Schwellenwert überschreitet, wird die SSID basierend auf einer Konfiguration dauerhaft oder vorübergehend blockiert. Die Konfiguration für jeden Fehlertyp ist in WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS codiert und in der folgenden Tabelle zusammengefasst.

* Bei vorübergehend deaktivierten Netzwerken ändert sich die Deaktivierungsdauer dynamisch basierend auf der Anzahl der aufeinanderfolgenden Verbindungsfehler im Netzwerk. Wenn ein Netzwerk fünfmal hintereinander keine Verbindung herstellen kann, führt jeder nachfolgende Fehler zu einer Deaktivierungsdauer, die doppelt so lang ist wie die vorherige. Beispiel: Ein Netzwerk mit fünf aufeinanderfolgenden Fehlern wird für 5 Minuten deaktiviert, dann für 10 Minuten beim sechsten Fehler, für 20 Minuten beim siebten Fehler usw. bis zum Höchstlimit von 18 Stunden.

Fehlercode Beschreibung Grenzwert Dauer der Deaktivierung des Basis-Abos* Typ deaktivieren
DISABLED_DHCP_FAILURE Fehler beim Bereitstellen von DHCP 5 5 Minuten Temporär
DISABLED_NO_INTERNET_TEMPORARY Die Netzwerkvalidierung ist fehlgeschlagen, der Nutzer möchte aber auch in Zukunft eine Verbindung zu diesem Netzwerk herstellen. 1 10 Minuten Temporär
DISABLED_AUTHENTICATION_NO_CREDENTIALS Der Supplicant hat keine Anmeldedaten für die Verbindung zum Netzwerk 1 Permanent
DISABLED_NO_INTERNET_PERMANENT Standard bei fehlgeschlagener Netzwerkvalidierung 1 Permanent
DISABLED_BY_WIFI_MANAGER Eingestellt und nicht verwendet 1 Permanent
DISABLED_BY_WRONG_PASSWORD Das Passwort ist falsch und es wurde noch nie eine Verbindung zu diesem Netzwerk hergestellt. 1 Permanent
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION EAP-Fehler, wenn die SIM-Karte nicht abonniert ist 1 Permanent
DISABLED_ASSOCIATION_REJECTION Fehler beim Ablehnen von Verknüpfungen 5 5 Minuten Temporär
DISABLED_AUTHENTICATION_FAILURE Andere Authentifizierungsfehler (d. h. kein falsches Passwort oder EAP-Fehler) 5 5 Minuten Temporär
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR Anbieterspezifischer (privater) EAP-Fehler. 1 Permanent
DISABLED_NETWORK_NOT_FOUND Der Supplicant konnte in den Scanergebnissen kein Netzwerk finden, das dem vom Framework angeforderten Netzwerk für die Verbindung entspricht (einschließlich der Netzwerkfunktionen). 2 5 Minuten Temporär
DISABLED_CONSECUTIVE_FAILURES Die Verbindung zum Netzwerk konnte fünfmal oder öfter hintereinander nicht hergestellt werden. Der Fehlertyp für diese Fehler umfasst unter anderem die in dieser Tabelle aufgeführten Fehlertypen.
5 5 Minuten Temporär

Ein vorübergehend deaktiviertes Netzwerk wird wieder aktiviert, wenn:

  • Der Deaktivierungszeitraum ist abgelaufen.
  • Der Nutzer wählt das Netzwerk, mit dem er sich verbinden möchte, manuell aus.
  • Der Nutzer aktiviert oder deaktiviert WLAN.
  • Das System wird neu gestartet.
  • Das Netzwerk wurde bei einem sehr niedrigen RSSI deaktiviert, wird aber später wieder bei einem mittleren oder höheren RSSI erkannt.

Ein dauerhaft deaktiviertes Netzwerk wird reaktiviert, wenn:

  • Der Nutzer wählt das Netzwerk, mit dem er sich verbinden möchte, manuell aus.

Fehlerzähler für ein Netzwerk werden zurückgesetzt, wenn:

  • Das Netzwerk wird entfernt.
  • Das Gerät hat sich erfolgreich mit dem Netzwerk verbunden.
  • Das Netzwerk wurde nach Ablauf des Deaktivierungszeitraums wieder aktiviert.
  • Der Nutzer wählt das Netzwerk, mit dem er sich verbinden möchte, manuell aus.
  • Das System wird neu gestartet.

Kurzübersichten

Mit den in Android 10 eingeführten Scorecards werden Statistiken zu BSSIDs auf dem Gerät aufgezeichnet. Die Scorecards werden mit dem Dienst IpMemoryStore gespeichert.

Scorecards werden in Android 11 nicht für die Netzwerkauswahl verwendet.

Option für Nutzerverbindung

Android verwendet einen Algorithmus zur Auswahl von Verbindungen, der WLANs bevorzugt, mit denen ein Nutzer bereits explizit verbunden war, z. B. ein Heimnetzwerk. Nutzer bevorzugen solche Netzwerke möglicherweise gegenüber öffentlichen Netzwerken, auch wenn die Leistung geringer ist, da sie zusätzliche Dienste wie die Steuerung von Smart-Home-Geräten bieten.

Die bevorzugte Netzwerkeinstellung des Nutzers wird erfasst, indem alle sichtbaren WLAN-Konfigurationen und ihre Signalstärken zu dem Zeitpunkt markiert werden, zu dem der Nutzer ein Netzwerk auswählt. Wenn während der automatischen Auswahl eine der markierten WLAN-Konfigurationen ausgewählt wird und ein vom Nutzer ausgewähltes Netzwerk verfügbar ist, überschreibt der Algorithmus zur Auswahl der Nutzerverbindung die Auswahl mit dem vom Nutzer ausgewählten Netzwerk, wenn die folgenden Bedingungen erfüllt sind:

  • Das vom Nutzer ausgewählte Netzwerk hatte beim letzten Gebrauch Internetzugriff.
  • Die Signalstärke der vom Nutzer ausgewählten Verbindung ist nicht schlechter als bei der ursprünglichen Auswahl, wobei eine Fehlermarge berücksichtigt wird. Diese Fehlermarge kann mit dem Overlay config_wifiEstimateRssiErrorMarginDb konfiguriert werden.

Die Auswahl des Netzwerks für die Nutzerverbindung bleibt nach einem Neustart bestehen. Die Option „Verbinden“ funktioniert für gespeicherte Netzwerke, Passpoint-Netzwerke und vorgeschlagene Netzwerke.

Zwei gleichzeitige Sender

In diesem Abschnitt wird die Auswahl des WLAN beschrieben, wenn ein Gerät die gleichzeitige Verbindung mit zwei WLANs unterstützt.

Make-before-break

Wenn die Make-before-Break-Funktion aktiviert ist, versucht das Gerät, eine Verbindung zum neuen Netzwerk herzustellen, bevor es die Verbindung zum alten Netzwerk trennt. Beim Make-before-Break-Ablauf wird derselbe Netzwerkauswahlalgorithmus wie beim Break-before-Make-Netzwerkwechsel verwendet. Bei Letzterem trennt das Gerät die Verbindung zum alten Netzwerk, bevor es sich mit dem neuen Netzwerk verbindet. Wenn der Algorithmus zur Netzwerkauswahl ein Netzwerk auswählt, das nicht mit Make-before-Break umgeschaltet werden kann, wechselt das Gerät automatisch zu Break-before-Make.

Gleichzeitige eingeschränkte und Internetverbindung

Wenn die Funktion Gleichzeitige eingeschränkte und Internetverbindung aktiviert ist, kann das Gerät eine Verbindung zu einem sekundären eingeschränkten WLAN herstellen, das nur für ausgewählte Apps verfügbar ist, die vom Gerätehersteller konfiguriert wurden. Eine Anleitung für Gerätehersteller zum Konfigurieren dieser Funktion finden Sie unter Gleichzeitige eingeschränkte und Internetverbindung.

Wenn der Algorithmus zur Netzwerkauswahl Scanergebnisse erkennt, die mit dem vom OEM bezahlten oder privaten Vorschlag übereinstimmen, wird automatisch eine Verbindung als zweites Netzwerk hergestellt. Die Auswahl des primären WLANs (über das normale Apps eine Internetverbindung herstellen) erfolgt normalerweise parallel.

Häufig gestellte Fragen (FAQs)

  1. Haben sichere Netzwerke immer Priorität gegenüber offenen Netzwerken?

    Nein. „Gespeichert“ im Vergleich zu „Vorgeschlagen“ und „Kostenpflichtig“ im Vergleich zu „Kostenlos“ sind die primären Kategorien, in denen Netzwerke bewertet werden. Innerhalb jeder Kategorie haben sichere Netzwerke eine gewisse Priorität gegenüber offenen Netzwerken, aber die Qualität der Verbindung hat ein viel höheres Gewicht.

    Der Grund dafür ist, dass die Sicherheit der tatsächlichen Nutzerdaten durch die End-to-End-Verschlüsselung (z. B. TLS) gewährleistet wird. Sichere Netzwerke verschlüsseln nur den ersten Teil der Kommunikation. Selbst dann bieten sie bei Netzwerken mit vorab gemeinsam genutzten Schlüsseln nicht viel Datenschutz.

  2. Warum werden gespeicherte Netzwerke gegenüber vorgeschlagenen Netzwerken priorisiert?

    Gespeicherte kostenlose Netzwerke haben Vorrang vor vorgeschlagenen kostenlosen Netzwerken und gespeicherte kostenpflichtige Netzwerke haben Vorrang vor vorgeschlagenen kostenpflichtigen Netzwerken.

    Gespeicherte Netzwerke haben Vorrang vor vorgeschlagenen Netzwerken, da der Nutzer sie dem Gerät explizit hinzugefügt hat. Das bedeutet, dass diese Netzwerke nach Möglichkeit bevorzugt werden.

    Nutzer können das Verhalten der automatischen Verbindung für einzelne gespeicherte Netzwerke deaktivieren. Das heißt, sie können angeben, dass diese Netzwerke nur manuell verwendet werden sollen und das Gerät sie nicht automatisch berücksichtigen soll.

  3. Kann ich die strikte Prioritätsreihenfolge ändern oder ganz entfernen?

    Sie können die Entscheidungen zur Netzwerkauswahl ändern, indem Sie die Bonus-Overlays anpassen, die in den vorherigen Abschnitten aufgeführt sind. Es wird jedoch nicht empfohlen, die Standardwerte zu ändern, da sie nach sorgfältiger Prüfung mehrerer Anwendungsfälle ausgewählt wurden.