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 Verbindung 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 periodische Scans nach einem exponentiellen Backoff-Zeitplan durch. 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. Das bedeutet, dass weiterhin Konnektivitätsscans und die Auswahl von Netzwerken erfolgen.

  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 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 Netzwerknominatoren suchen nach vorhandenen WLAN-Konfigurationen oder erstellen neue Konfigurationen für die Kandidatennetzwerke.

    • Die Scanergebnisse werden gefiltert, um BSSIDs mit einem RSSI unter dem Entry-RSSI zu entfernen (konfigurierbar mit den Overlays config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz und config_wifiFrameworkScoreEntryRssiThreshold6ghz). 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 ist ein Hinweis darauf, 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 eine Punktzahl 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 Gewinnerkandidaten werden, anstatt den Gewinnerkandidaten 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 Gewinnerkandidat 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 verknüpft.

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. Für diese Berechnung sind zwei Modelle verfügbar, die mit config_internalScorerType konfiguriert werden können:

    • Standard: Ein auf maschinellem Lernen basierender Scorer, der mit Statistiken der Link-Ebene trainiert wurde.
    • Alternative: Ein älterer Scorer, der auf Grundlage von Änderungen des RSSI-Werts bewertet.
  3. Optional: OEMs können die Logik zur Bewertung verbundener Netzwerke anpassen, indem sie eine externe Scorer-App implementieren. Dazu müssen sie die WifiConnectedNetworkScorer-Schnittstelle implementieren und mit der WifiManager#setWifiConnectedNetworkScorer(executor, scorer)-API registrieren.

    Wenn der externe Scorer registriert ist, interagiert er über den folgenden bidirektionalen Ablauf mit dem Framework:

    • Eingaben (Framework → Scorer)
      Das Framework benachrichtigt den Scorer über wichtige Ereignisse im Lebenszyklus und in Bezug auf die Qualität:

      • Sitzungslebenszyklus:onStart() und onStop() geben an, wann eine WLAN-Verbindung gestartet oder beendet wird.
      • WLAN-Statistiken:Der Scorer erhält regelmäßig Updates zu Statistiken der Verbindungsschicht (z. B. RSSI, Verbindungsgeschwindigkeit und Paketanzahl) über OnWifiUsabilityStatsListener#onWifiUsabilityStats(). Damit der Scorer diese Updates empfangen kann, muss er einen Listener mit WifiManager#addOnWifiUsabilityStatsListener() registrieren.
    • Aktionen (Scorer → Framework)
      Der Scorer weist den WLAN-Dienst an, indem er Methoden für das ScoreUpdateObserver-Callback-Objekt aufruft:

      • Nutzbarkeitsstatus:Der Aufruf von notifyStatusUpdate(sessionId, isUsable) ist der primäre Mechanismus zur Steuerung der Netzwerkauswahl.
        • isUsable = true: Das Netzwerk ist gültig. Das Framework stuft es zum Standardnetzwerk für Systemtraffic hoch.
        • isUsable = false: Das Netzwerk ist ungültig. Das Framework vermeidet die Verwendung als Standard und löst einen Fallback auf mobile Daten aus.
      • Erreichbarkeitsprüfungen:Durch Aufrufen von requestNudOperation() wird eine aktive NUD-Prüfung (Neighbor Unreachability Detection, Erkennung nicht erreichbarer Nachbarn) ausgelöst, z. B. ein ARP- oder ND-Probe, um zu prüfen, ob das Gateway erreichbar ist.
      • BSSID-Sperrliste:Wenn blocklistCurrentBssid() aufgerufen wird, wird verhindert, dass das Gerät sich wieder mit dem aktuellen Zugangspunkt (AP) verbindet. Das ist hilfreich, wenn der Scorer AP-spezifische Probleme erkennt.
  4. Wenn ein OEM seinen eigenen Scorer wie in Schritt 3 beschrieben implementiert hat, überlässt der WLAN-Dienst Entscheidungen im Zusammenhang mit der Bewertung des verbundenen Netzwerks dem OEM-Scorer.
    Wenn ein OEM keinen eigenen Scorer implementiert hat, wird anhand des in Schritt 2 berechneten Werts bestimmt, ob für die Internetverbindung zu mobilen Daten gewechselt 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 Scanentscheidungsintervalle 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 und 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 Overlay config_wifiConnectedHighRssiScanMinimumWindowSizeSec 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 config_wifi_framework_wifi_score_low_rssi_threshold_24GHz-Overlay konfiguriert wurde, oder -70 dBm für das 5‑GHz- und 6‑GHz-Band, das mit dem config_wifi_framework_wifi_score_low_rssi_threshold_5GHz- und config_wifiFrameworkScoreLowRssiThreshold6ghz-Overlay konfiguriert wurde.
  • 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 können Sie den Grenzwert für die Punktzahl konfigurieren, der das Scannen auslöst. Mit dem config_wifiLowConnectedScoreScanPeriodSeconds-Overlay kann der Zeitraum dieser Scans konfiguriert werden.

Display aus und mit WLAN verbunden

Wenn der Bildschirm aus ist 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 ist 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, wird das Framework durch die Firmware aktiviert.

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

Netzwerk-Nominierer

Die Nominatoren für Netzwerke suchen oder erstellen Konfigurationen (WifiConfiguration) für Netzwerke, die folgende Kriterien erfüllen:

  • 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 verknüpft werden.

Die folgenden Netzwerk-Nominatoren werden verwendet:

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

Kandidatenbewertung

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 anhand 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 Höchstwert 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 mit dem 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 höher 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) ergibt eine strenge Prioritätsreihenfolge für gespeicherte, vorgeschlagene, gemessene und nicht gemessene:

  1. Gespeicherte Netzwerke mit unbegrenztem Datenvolumen
  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 Kandidatenbewertungen installiert sein, aber jeweils nur eine 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 Zähler für die Anzahl aufeinanderfolgender 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 Dauer beispielsweise viermal so lang wie die Basisblockierungsdauer.

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.
  • Zeitüberschreitung bei der 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 sich innerhalb sehr kurzer Zeit nach der Verbindung vom Netzwerk 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 Sperrdauer 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 ist, 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

Die SSID-Blockierung funktioniert ähnlich wie die BSSID-Blockierung. 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 Dauer. 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 weiterhin 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 Veraltet 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 bei der Ablehnung 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:

  • Die Deaktivierungsdauer 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.

Auswahl der 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 Netzwerk, das der Nutzer für die Verbindung ausgewählt hat, hatte beim letzten Mal, als es verwendet wurde, 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, sich mit dem neuen Netzwerk zu verbinden, 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 Netzwerks für das primäre WLAN (das regulären Apps eine Internetverbindung bietet) 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 wird viel stärker gewichtet.

    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 bei Netzwerken mit vorab gemeinsam genutzten Schlüsseln bieten sie 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 bedeutet, dass diese Netzwerke nur manuell verwendet und nicht automatisch vom Gerät berücksichtigt werden.

  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.