Auswahl des Android-WLAN-Netzwerks

Auf dieser Seite werden die in Android 12 verwendeten Algorithmen und Verfahren für die Auswahl und den Wechsel zwischen Wi-Fi-Netzwerken beschrieben. Android bewertet kontinuierlich die Qualität des verbundenen Netzwerks und bewertet die Qualität der verfügbaren Netzwerke.

Lebensdauer einer automatischen Verbindung

Dies beschreibt den Prozess, wie ein Android-Gerät verfügbare Wi-Fi-Netzwerke erkennt 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.

    • Bildschirm eingeschaltet (verbunden): Das Android-Konnektivitätssubsystem prüft regelmäßig, ob die aktuelle Verbindung gut genug ist, um den Scanvorgang zu überspringen (wie in Screen-on-Scans definiert). Wenn die Verbindung nicht gut genug ist, um den Scanvorgang zu überspringen, löst das Konnektivitätssubsystem einen Scan aus, um verfügbare Netzwerke zu erkennen. Diese Scans können auch durch andere Systemkomponenten wie das Ortungssystem oder eine App (einschließlich der Einstellungen-App) ausgelöst werden.
    • Bildschirm an (nicht verbunden): Das Android-Konnektivitätssubsystem führt regelmäßige Scans nach einem exponentiellen Backoff-Zeitplan durch. Das Modul wertet alle empfangenen Scan-Ergebnisse aus und versucht, das beste Netzwerk für die Verbindung auszuwählen.
    • Bildschirm aus (nicht verbunden): Die Host-CPU programmiert die Firmware mit einer Liste bevorzugter Netzwerke mithilfe von PNO-Scans (Preferred Network Offload), sobald der Bildschirm 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. Hierbei handelt es sich um eine privilegierte API, die von Geräteherstellern unter bestimmten Umständen verwendet werden kann (z. B. bei einem nicht mobilen, vorkonfigurierten Gerät).

    Wenn das Gerät verbunden ist und das Overlay config_wifi_framework_enable_associated_network_selection auf false gesetzt ist, werden keine Konnektivitätsscans durchgeführt und die Scanergebnisse lösen keine Netzwerkauswahl aus. Diese Einstellung hat keine Auswirkung, wenn das Gerät nicht angeschlossen ist, was bedeutet, dass weiterhin Konnektivitätsscans und Netzwerkauswahlen durchgeführt werden.

  2. Scanergebnisse werden ausgewertet.

    • Wenn das Gerät mit einem Wi-Fi-Netzwerk verbunden ist, bewertet das Framework, ob das aktuelle Netzwerk gut genug ist, um die Netzwerkauswahl zu überspringen .

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

      • Seit der letzten Netzwerkauswahl sind weniger als 10 Sekunden vergangen.
      • Der Benutzer, der sich kürzlich manuell mit dem Netzwerk verbunden hat (wobei „zuletzt“ mithilfe des Overlays config_wifiSufficientDurationAfterUserSelectionMilliseconds “ konfigurierbar ist).
      • Das Gerät ist mit einer Online-Anmeldeverbindung (OSU) verbunden.
      • Alle folgenden Anforderungen sind erfüllt:

        • Der RSSI liegt über dem erforderlichen RSSI-Schwellenwert oder es fließt ausreichend Datenverkehr über die Verbindung (siehe Screen-On-Scans für RSSI- und Datenverkehrsschwellenwerte).
        • Das Netzwerk ist validiert (mit dem Internet verbunden) oder vom Benutzer für die Verwendung ohne Internetzugang freigegeben.
        • Das Netzwerk ist nicht gemessen.
    • Wenn das Netzwerk gut genug ist, um die Netzwerkauswahl zu überspringen , werden keine weiteren Maßnahmen ergriffen.

    • Wenn das verbundene Wi-Fi-Netzwerk nicht gut genug ist oder wenn das Gerät nicht mit einem Netzwerk verbunden ist, ruft das Framework die Netzwerknominatoren auf, um basierend auf den gefilterten Scanergebnissen eine Liste mit möglichen Wi-Fi-Netzwerken zu erstellen, mit denen eine Verbindung hergestellt werden soll. Die Netzwerknominatoren suchen nach vorhandenen WLAN-Konfigurationen oder erstellen neue Konfigurationen für die Kandidatennetzwerke.

    • Die Scanergebnisse werden gefiltert , um BSSIDs zu entfernen, deren RSSI unter dem Eintrag RSSI liegt (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 ). Zusätzlich werden blockierte BSSIDs gefiltert. BSSIDs können aufgrund wiederholter Verbindungsfehler, häufiger Verbindungsabbrüche und expliziter Anforderungen des AP, für einen bestimmten Zeitraum keine Verbindung herzustellen (MBO-OCE), blockiert werden. Die BSSID-Blockierung wird weiter unten unter 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 (ein Hinweis darauf, dass sie sich nicht mit dem Gerät bewegen). Diese Optimierung kann mit config_wifiHighMovementNetworkSelectionOptimizationEnabled (Aktivieren/Deaktivieren der Optimierung) und den Overlays config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs und config_wifiHighMovementNetworkSelectionOptimizationRssiDelta konfiguriert werden, die die Stabilitätsanforderung an Scanergebnisse konfigurieren (RSSI-Änderung über Scanergebnisse, die zeitlich ausreichend voneinander getrennt sind).

  3. Das Framework führt den Kandidaten-Scorer aus, um für jeden Service-Set-Identifier (SSID)-Kandidaten eine Bewertung zu generieren. Zu den SSID-Kandidaten können mehrere BSSID-Kandidaten (Basic Service Set Identifier) ​​gehören (von den Netzwerk-Nominatoren generiert). Der Kandidat mit der höchsten Punktzahl ist der Siegerkandidat .

  4. Das Framework führt den Benutzer-Verbindungsauswahlalgorithmus aus, der möglicherweise ein vom Benutzer ausgewähltes Netzwerk zum neuen Gewinnerkandidaten macht, anstatt den Gewinnerkandidaten aus dem Kandidaten-Scorer zu verwenden.

  5. Das Framework bestimmt, ob der Gewinnerkandidat mit dem aktuell verbundenen Netzwerk übereinstimmt. Um als Übereinstimmung zu gelten, muss eine der folgenden Bedingungen erfüllt sein:

    • Der Gewinnerkandidat und das verbundene Wi-Fi-Netzwerk haben dieselbe BSSID.
    • Wenn Firmware-Roaming verfügbar ist (einschließlich BSSID-Blacklist-Funktion), haben der Gewinnerkandidat und das verbundene Netzwerk dieselbe SSID und denselben Sicherheitstyp.

    Wenn der Gewinnerkandidat mit dem aktuell verbundenen Netzwerk übereinstimmt, werden keine weiteren Maßnahmen ergriffen. Wenn der Gewinnerkandidat nicht mit dem Netzwerk übereinstimmt, wird das Gerät dem Gewinnerkandidaten zugeordnet.

Beachten Sie, dass die automatische Netzwerkverbindung deaktiviert ist, während eine App die Wi-Fi Network Request API verwendet, die das System außer Kraft setzt und ein LAN ohne Internet erstellt, außer auf Geräten, die zwei gleichzeitige Stationen unterstützen.

Bewertung eines angeschlossenen Netzwerks

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

Diese Bewertung erfolgt zusätzlich zur oben besprochenen Netzwerkauswahl .

Bildschirm An

Das Android-Framework wertet das verbundene Netzwerk folgendermaßen aus:

  1. Der Wi-Fi-Dienst fragt alle 3 Sekunden RSSI- und Link-Layer-Statistiken ab (konfigurierbar mit dem Overlay config_wifiPollRssiIntervalMilliseconds ).

    Wenn die dynamische Intervallanpassung mithilfe des Overlays config_wifiAdjustPollRssiIntervalEnabled aktiviert ist, ändert sich das Abfrageintervall dynamisch basierend auf dem Gerätemobilitätsstatus und RSSI.

    • Das Abfrageintervall wird auf 6 Sekunden verlängert (konfiguriert durch das Overlay config_wifiPollRssiLongIntervalMilliseconds ), wenn das Gerät stationär ist und der RSSI über -68 dBm liegt (konfiguriert durch die Overlays config_wifiClientRssiMonitorThresholdDbm und config_wifiClientRssiMonitorHysteresisDb ).
    • Das Abfrageintervall wird wieder auf 3 Sekunden reduziert (konfiguriert durch das Overlay config_wifiPollRssiIntervalMilliseconds ), wenn das Gerät nicht stationär ist oder der RSSI unter -73 dBm liegt (konfiguriert durch das Overlay config_wifiClientRssiMonitorThresholdDbm ).
  2. Der Wi-Fi-Dienst berechnet einen Verbindungswert basierend auf den RSSI- und Link-Layer-Statistiken.

  3. Der Wi-Fi-Dienst übergibt die Punktzahl an den Konnektivitätsdienst, der anhand der Punktzahl bestimmt, ob eine Verbindung zu einem Wi-Fi-Netzwerk oder zu einem anderen verfügbaren Netzwerktyp, beispielsweise einem Mobilfunknetz, hergestellt werden soll.

Abblenden

Das Framework initiiert keine Auswertung im verbundenen Netzwerk, aber der Netzwerkauswahlprozess kann dennoch stattfinden, wenn Scans von anderen Komponenten (z. B. Standortdiensten) initiiert werden. Die Firmware wertet die Netzwerkqualität aus und wenn die Netzwerkqualität schlecht ist, kann es sein, dass die Firmware wandert oder sich (irgendwann) vom Netzwerk trennt und den Host aufweckt.

Konnektivitätsscans

Scans werden automatisch durchgeführt, je nachdem, ob der Bildschirm des Geräts eingeschaltet ist, der Bildschirm ausgeschaltet und mit WLAN verbunden ist oder ob der Bildschirm ausgeschaltet und nicht mit WLAN verbunden ist.

Bildschirm An

Das Framework löst Scan-Entscheidungen in zunehmenden Abständen aus, wenn der Bildschirm eingeschaltet wird. Die Scan-Entscheidungsintervalle werden mit den Overlays config_wifiDisconnectedScanIntervalScheduleSec , config_wifiConnectedScanIntervalScheduleSec und config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec (Arrays aus Ganzzahlen) konfiguriert. Standardmäßig erfolgen Scans mit exponentiellen Backoff-Intervallen von 20, 40, 80 und 160 Sekunden, wobei nachfolgende Scans möglicherweise in 160-Sekunden-Intervallen durchgeführt werden (dies sind die Standardwerte der oben genannten Overlays).

Die exponentiellen Backoff-Scan-Intervalle werden jedes Mal, wenn sich der Bildschirmstatus ändert, d. h. wenn der Bildschirm ein- oder ausgeschaltet wird, zurückgesetzt und alle 20 Sekunden neu gestartet.

(Android 13+) Wenn zur Laufzeit unterschiedliche Scan-Intervalle erforderlich sind, kann eine OEM-privilegierte App die API WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) aufrufen, um den Screen-On-Scan-Zeitplan dynamisch festzulegen.

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

  • Das Gerät ist mit einer Online-Anmeldeverbindung (OSU) verbunden.
  • Es fließt ausreichend Datenverkehr über die Verbindung (siehe Datenverkehrsschwellenwerte unten).
  • Der RSSI liegt über dem erforderlichen RSSI-Schwellenwert (siehe RSSI-Schwellenwerte unten) und die Netzwerkauswahl wurde kürzlich durchgeführt (standardmäßig 10 Minuten, kann aber mit dem Overlay config_wifiConnectedHighRssiScanMinimumWindowSizeSec konfiguriert werden) und entweder ist das Netzwerk validiert (mit dem Internet verbunden) oder der Benutzer -zugelassen für die Nutzung ohne Internetzugang.

Die RSSI- und Verkehrsschwellenwerte sind:

  • RSSI liegt über -73 dBm für das 2,4-GHz-Band, konfiguriert mit dem Overlay config_wifi_framework_wifi_score_low_rssi_threshold_24GHz , oder -70 dBm für die 5-GHz- und 6-GHz-Bänder, konfiguriert mit den Overlays config_wifi_framework_wifi_score_low_rssi_threshold_5GHz und config_wifiFrameworkScoreLowRssiThreshold6ghz .
  • Der Datenverkehr (Senden oder Empfangen) liegt über 16 Paketen pro Sekunde (pps), konfiguriert mit dem Overlay config_wifiFrameworkMinPacketPerSecondActiveTraffic .

Wenn das Gerät angeschlossen ist und der Bildschirm eingeschaltet ist. Ein angeschlossener Scorer überwacht regelmäßig die WLAN-Qualität anhand von Signalen wie RSSI und der Anzahl der übertragenen Pakete. Wenn festgestellt wird, dass die WLAN-Qualität schlecht ist (wie unten angegeben) und das Gerät zwei gleichzeitige Stationen unterstützt, wird ein Scan ausgelöst. Das Overlay config_wifiLowConnectedScoreThresholdToTriggerScanForMbb kann zum Konfigurieren des Bewertungsschwellenwerts verwendet werden, der das Scannen auslöst. Mit dem Overlay config_wifiLowConnectedScoreScanPeriodSeconds kann der Zeitraum dieser Scans konfiguriert werden.

Bildschirm ausgeschaltet und mit WLAN verbunden

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

Bildschirm ausgeschaltet und nicht mit WLAN verbunden (getrennter Zustand)

Wenn der Bildschirm ausgeschaltet und die WLAN-Verbindung getrennt ist, führt die Firmware PNO- Scans nach SSIDs durch. Das Framework konfiguriert die Firmware mit einer Liste der zu scannenden SSIDs und einer Liste der zu scannenden Kanäle. 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, und verwendet dabei den Gerätemobilitätsstatus, um verschiedene Scanintervalle auszuwählen. In einem Zustand mit geringer Mobilität (das Gerät ist stationär) beträgt das Intervall 60 Sekunden für die ersten drei Scans (gesteuert durch das Overlay config_wifiStationaryPnoScanIntervalMillis ) und 180 Sekunden (ein fester 3-facher Multiplikator des Overlays) für nachfolgende Scans. In einem Zustand mit hoher Mobilität beträgt das Intervall 20 Sekunden für die ersten drei Scans (gesteuert durch das Overlay config_wifiMovingPnoScanIntervalMillis ) und 60 Sekunden (ein fester 3-facher Multiplikator des Overlays) für nachfolgende Scans.

Nominatoren des Netzwerks

Die Netzwerknominatoren suchen oder erstellen Konfigurationen ( WifiConfiguration ) für Netzwerke, die:

  • Derzeit verfügbar (basierend auf Scan-Ergebnissen) oder das aktuell verbundene Netzwerk (das manchmal in unregelmäßigen Scan-Ergebnissen fehlt).
  • Haben Sie einen minimalen RSSI. Der minimale RSSI beträgt -80 dBm für das 2,4-GHz-Band und -77 dBm für die 5-GHz- und 6-GHz-Bänder und 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, beispielsweise aufgrund früherer Verbindungsausfälle.
  • Das Netzwerk zeigt nicht an, dass es unbrauchbar ist (z. B. bei Verwendung von MBO/OCE).
  • Kann mit der Verwendung der auf dem Gerät verfügbaren Anmeldeinformationen verknüpft werden.

Die folgenden Netzwerknominatoren werden verwendet:

  • Nominator für gespeicherte Netzwerke: Wertet alle gespeicherten Netzwerke aus (einschließlich gespeicherter Passpoint-Abonnements).
  • Nominator für vorgeschlagene Netzwerke: Bewertet alle Netzwerke, die von Apps mithilfe der Vorschlags-API bereitgestellt werden (einschließlich empfohlener Passpoint-Abonnements).
  • Extern bewerteter Netzwerknominator: OEM-Mechanismus zur Bereitstellung von Netzwerkkonnektivitätsoptionen für das Gerät. Weitere Informationen finden Sie unter Externer Netzwerkbewertungsanbieter .

Kandidaten-Torschützen

Kandidatenbewerter bewerten jeden Kandidaten und geben ihm eine Punktzahl. Die Bewertung für ThroughputScorer (der Standard-Scorer) basiert auf Folgendem:

  • Ein Basiswert wird basierend auf RSSI berechnet, wobei RSSI auf -73 dBm für das 2,4-GHz-Band oder -70 dBm für die 5-GHz- und 6-GHz-Bänder begrenzt ist (konfiguriert mit config_wifi_framework_wifi_score_low_rssi_threshold_24GHz , config_wifi_framework_wifi_score_low_rssi_threshold_5GHz und config_wifiFrameworkScoreLowRssiThreshold6ghz -Overlays).
  • Ein Score-Boost wird auf der Grundlage einer Durchsatzschätzung berechnet, die aus der Technologie, der Kanalfrequenz, der Bandbreite, dem RSSI, den Kanalbedingungen, der maximalen Anzahl räumlicher Streams und anderen Parametern abgeleitet wird. Der Score-Boost ist mit den Overlays config_wifiFrameworkThroughputBonusNumerator und config_wifiFrameworkThroughputBonusDenominator konfigurierbar und auf einen Maximalwert begrenzt, der mit dem Overlay config_wifiFrameworkThroughputBonusLimit angegeben wird.
  • Ein Kandidatennetzwerk, das kürzlich vom Benutzer oder von einer App ausgewählt wurde, erhält für eine mit dem config_wifiFrameworkLastSelectionMinutes -Overlay konfigurierbare Dauer einen großen Punkteschub (für diese Dauer wird das Netzwerk garantiert gegenüber nicht vom Benutzer ausgewählten Netzwerken ausgewählt).
  • Ein Kandidat, der mit dem aktuellen Netzwerk übereinstimmt, erhält einen Punkteschub, der durch die Overlays config_wifiFrameworkCurrentNetworkBonusMin und config_wifiFrameworkCurrentNetworkBonusPercent konfiguriert wird (er erhält einen zusätzlichen Bonus basierend auf einem Prozentsatz seines RSSI- und durchsatzbasierten Punktestands bis zum konfigurierbaren Minimum).
  • Ein sicheres Netzwerk wird höher bewertet als ein offenes Netzwerk. Der Bonus wird mithilfe des Overlays config_wifiFrameworkSecureNetworkBonus konfiguriert.
  • Ein nicht gemessenes (kostenloses) Netzwerk wird höher bewertet als ein getaktetes (kostenpflichtiges) Netzwerk. Der Bonus wird mithilfe des Overlays config_wifiFrameworkUnmeteredNetworkBonus konfiguriert.
  • Ein gespeichertes Netzwerk erhält eine höhere Bewertung als ein mithilfe der Suggestion API vorgeschlagenes Netzwerk. Der Bonus wird mithilfe des Overlays config_wifiFrameworkSavedNetworkBonus konfiguriert.
  • Nicht vertrauenswürdige Netzwerke (die als Teil der Suggestion API angefordert werden können) werden schlechter bewertet als alle anderen Netzwerke.
  • Ein Netzwerk, bei dem zuvor festgestellt wurde, dass es kein Internet hat, erhält den Wert 0, wenn das Gerät derzeit mit einem anderen Netzwerk verbunden ist, das über einen Internetzugang verfügt.

Der Standardbonus für „Gespeichert“ gegenüber „Vorschlag“ und „Nicht gemessen“ gegenüber „Gemessen“ (d. h. die Standardüberlagerungswerte) ergibt eine strikte Prioritätsreihenfolge für „Gespeichert“, „Vorgeschlagen“, „Gemessen“ und „Nicht gemessen“:

  1. Gespeicherte nicht gemessene Netzwerke
  2. Empfohlene nicht gemessene Netzwerke
  3. Gespeicherte gemessene Netzwerke
  4. Empfohlene gemessene Netzwerke

Dies bedeutet, dass ein gespeichertes, nicht gemessenes (kostenloses) Netzwerk immer vor einem gespeicherten, gemessenen (kostenpflichtigen) Netzwerk ausgewählt wird. Der kürzlich (vom Benutzer oder der App) ausgewählte Punktebonus kann diese strenge Priorität außer Kraft setzen.

Im Framework können mehrere Kandidaten-Scorer installiert sein, es kann jedoch jeweils nur einer aktiv sein. Die anderen Scorer können für Metriken (zur Untersuchung alternativer Algorithmen) verwendet werden. In Android 11 ist ThroughputScorer der Standard-Scorer.

SSID- und BSSID-Blockierung

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

BSSID-Blockierung

Die BSSID-Blockierung funktioniert, indem zwei Fehlerzähler, ein kontinuierlicher Fehlerzähler und ein Streak-Zähler, pro spezifischem Fehlertyp geführt werden (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 Fehlerschwellenwert für diesen Fehlertyp erreicht ist:
    • Die BSSID ist blockiert.
    • Der Streifenzähler für den Fehler wird erhöht.

Die Dauer, für die eine BSSID blockiert wird, beginnt bei einem (konfigurierbaren) Basiswert (angegeben durch die Overlays config_wifiBssidBlocklistMonitorBaseBlockDurationMs oder config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs , je nach RSSI) und steigt exponentiell bis zu einer konfigurierbaren Obergrenze an (angegeben durch das Overlay config_wifiBssidBlocklistMonitorFailureStreakCap ). Die Dauer erhöht sich, wenn ständig Fehler auf derselben BSSID auftreten. Die Dauer ist die Basisdauer, die durch die Fehlerserie exponentiell erhöht wird, d. h. eine Fehlerserie von 2 impliziert die 4-fache Basisblockdauer.

Die Schwellenwerte für die BSSID-Blockierung hängen von der Fehlerursache ab und können jeweils mithilfe von Overlays angepasst werden:

  • AP lehnt Zuordnung über MBO/OCE ab . Neuer STA-Code kann nicht verarbeitet werden : config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold .
  • Die Internetvalidierung über dieses Netzwerk ist fehlgeschlagen: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold .
  • Falscher Passwortauthentifizierungsfehlercode: config_wifiBssidBlocklistMonitorWrongPasswordThreshold .
  • EAP-Fehlerauthentifizierungsfehlercode für EAP-Netzwerke: config_wifiBssidBlocklistMonitorEapFailureThreshold .
  • Assoziationsablehnung, andere allgemeine Assoziationsablehnungen: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold .
  • Zeitüberschreitung der Zuordnung: config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold .
  • Authentifizierungsfehler, andere allgemeine Authentifizierungsfehler: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold .
  • DHCP-Fehler, Fehler bei der Bereitstellung von DHCP: config_wifiBssidBlocklistMonitorDhcpFailureThreshold .
  • Abnormale Trennung, das Gerät hat innerhalb einer sehr kurzen Zeit nach der Verbindung die Verbindung zum Netzwerk getrennt: config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold . Das Zeitfenster ist mit config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs konfigurierbar.

Bedingungen zum Löschen der BSSID-Blocklist

Eine BSSID wird aus der Sperrliste gelöscht, wenn:

  • WLAN ist umgeschaltet: Alle BSSIDs werden aus der Sperrliste entfernt.
  • Der Benutzer tippt in der WLAN-Auswahl auf ein Netzwerk: Alle BSSIDs des vom Benutzer ausgewählten Netzwerks werden aus der Sperrliste entfernt.
  • Timeout: BSSIDs werden aus der Blockliste entfernt, wenn die Blockdauer erreicht ist.
  • Neustart: Alle Blocklisten werden gelöscht.
  • Netzwerk entfernt: Alle mit diesem Netzwerk verknüpften BSSIDs werden aus der Sperrliste entfernt.

Bedingungen für das Zurücksetzen der Fehler- und Streifenzähler:

  • Neustart: Für alle BSSIDs zurücksetzen.
  • Netzwerk entfernt: Zurücksetzen für mit dem Netzwerk verknüpfte BSSIDs.
  • L2-Verbindung erfolgreich: Zurücksetzen für die folgenden Fehlercodes.

    • 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 (nur bedingt gelöscht, wenn die letzte Verbindung des Geräts mit dieser BSSID mehr als 3 Stunden zurückliegt)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • Netzwerkvalidierung erfolgreich: Wird für den folgenden Fehlercode zurückgesetzt.

    • REASON_NETWORK_VALIDATION_FAILURE
  • DHCP-Bereitstellung erfolgreich: Wird für den folgenden Fehlercode zurückgesetzt.

    • REASON_DHCP_FAILURE

SSID-Blockierung

Die SSID-Blockierung funktioniert ähnlich wie die BSSID-Blockierung. Ein Fehlerzähler pro Fehlertyp und Netzwerk wird erhöht, wenn Verbindungsfehler (dieser Art) auftreten. Wenn die Fehleranzahl eines bestimmten Typs einen Schwellenwert überschreitet, wird die SSID je nach Konfiguration dauerhaft oder vorübergehend blockiert. Die Konfiguration für jeden Fehlertyp ist in WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS codiert und unten zusammengefasst.

* Bei vorübergehend deaktivierten Netzwerken ändert sich die Deaktivierungsdauer dynamisch basierend auf der Anzahl aufeinanderfolgender Verbindungsfehler im Netzwerk. Wenn die Verbindung eines Netzwerks fünfmal hintereinander fehlschlägt, führt jeder weitere Ausfall zu einer Deaktivierungsdauer, die doppelt so lang ist wie die vorherige. Beispielsweise wird ein Netzwerk mit fünf aufeinanderfolgenden Ausfällen für 5 Minuten deaktiviert, dann für 10 Minuten beim sechsten Ausfall, für 20 Minuten beim siebten Ausfall usw. bis zur Höchstgrenze von 18 Stunden.

Fehlercode Beschreibung Schwelle Dauer der Basisdeaktivierung* Typ deaktivieren
DISABLED_DHCP_FAILURE Fehler bei der Bereitstellung von DHCP 5 5 Minuten Vorübergehend
DISABLED_NO_INTERNET_TEMPORARY Die Netzwerkvalidierung ist fehlgeschlagen, aber der Benutzer gibt an, dass er in Zukunft weiterhin eine Verbindung zu diesem Netzwerk herstellen möchte 1 10 Minuten Vorübergehend
DISABLED_AUTHENTICATION_NO_CREDENTIALS Dem Antragsteller fehlen die Anmeldeinformationen, um eine Verbindung zum Netzwerk herzustellen 1 N / A Dauerhaft
DISABLED_NO_INTERNET_PERMANENT Standard für Netzwerkvalidierungsfehler 1 N / A Dauerhaft
DISABLED_BY_WIFI_MANAGER Veraltet und unbenutzt 1 N / A Dauerhaft
DISABLED_BY_WRONG_PASSWORD Das Passwort ist falsch und es wurde nie erfolgreich eine Verbindung zu diesem Netzwerk hergestellt 1 N / A Dauerhaft
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION EAP-Fehler, bei dem die SIM-Karte nicht angemeldet ist 1 N / A Dauerhaft
DISABLED_ASSOCIATION_REJECTION Fehler bei der Ablehnung von Verbänden 5 5 Minuten Vorübergehend
DISABLED_AUTHENTICATION_FAILURE Andere Authentifizierungsfehler (d. h. kein falsches Passwort oder EAP-Fehler) 5 5 Minuten Vorübergehend
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR Anbieterspezifischer (privater) EAP-Fehler. 1 N / A Dauerhaft
DISABLED_NETWORK_NOT_FOUND Der Antragsteller konnte in den Scan-Ergebnissen kein Netzwerk finden, das mit dem Netzwerk übereinstimmt, das vom Framework für die Verbindung angefordert wurde (einschließlich Netzwerkfunktionen). 2 5 Minuten Vorübergehend
DISABLED_CONSECUTIVE_FAILURES Das Netzwerk konnte fünf oder mehr Mal hintereinander keine Verbindung herstellen. Der Fehlertyp für diese Fehler umfasst unter anderem die in dieser Tabelle aufgeführten Fehlertypen.
5 5 Minuten Vorübergehend

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

  • Die Deaktivierungsdauer ist abgelaufen.
  • Der Benutzer wählt manuell das zu verbindende Netzwerk aus.
  • Der Benutzer schaltet WLAN um.
  • Das System wird neu gestartet.
  • Das Netzwerk wurde bei einem sehr niedrigen RSSI deaktiviert, aber das Netzwerk wird später bei einem mittleren oder höheren RSSI wieder erkannt.

Ein dauerhaft deaktiviertes Netzwerk wird wieder aktiviert, wenn:

  • Der Benutzer wählt manuell das zu verbindende Netzwerk 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 der Deaktivierungsdauer wieder aktiviert.
  • Der Benutzer wählt manuell das Netzwerk aus, mit dem eine Verbindung hergestellt werden soll.
  • Das System wird neu gestartet.

Wertungslisten

Mit Android 10 eingeführte Scorekarten zeichnen Statistiken über BSSIDs auf dem Gerät auf. Scorekarten werden mithilfe des IpMemoryStore -Dienstes gespeichert.

Bewertungskarten werden bei der Android 11-Netzwerkauswahl nicht verwendet.

Auswahl der Benutzerverbindung

Android verfügt über einen Benutzerverbindungsauswahlalgorithmus, der es dem Auswahlprozess ermöglicht, Wi-Fi-Netzwerke zu bevorzugen, mit denen ein Benutzer explizit eine Verbindung hergestellt hat, beispielsweise ein Heimnetzwerk. Benutzer bevorzugen solche Netzwerke möglicherweise gegenüber öffentlichen Netzwerken, selbst wenn die Leistung geringer ist als die eines öffentlichen Netzwerks, da sie zusätzliche Dienste bereitstellen, beispielsweise die Möglichkeit, Heimgeräte zu steuern.

Die Präferenz des Benutzers für ein Netzwerk wird erfasst, indem alle sichtbaren WLAN-Konfigurationen und deren Signalstärken markiert werden, wenn der Benutzer ein Netzwerk auswählt. Wenn während des automatischen Auswahlvorgangs eine der markierten WLAN-Konfigurationen ausgewählt wird und ein vom Benutzer ausgewähltes Netzwerk verfügbar ist, überschreibt der Algorithmus zur Auswahl der Benutzerverbindung die Auswahl mit dem vom Benutzer ausgewählten Netzwerk, wenn die folgenden Bedingungen erfüllt sind:

  • Das User Connect Choice-Netzwerk verfügte bei der letzten Nutzung über einen Internetzugang
  • Die vom Benutzer ausgewählte Verbindungsoption hat eine Signalstärke, die nicht schlechter ist als bei der ursprünglichen Auswahl mit einer Fehlermarge. Diese Fehlermarge kann mit dem Overlay config_wifiEstimateRssiErrorMarginDb konfiguriert werden.

Das Benutzerverbindungsauswahlnetzwerk bleibt nach einem Neustart bestehen. Die Benutzerverbindungsauswahl funktioniert für gespeicherte Netzwerke, Passpoint-Netzwerke und Vorschlagsnetzwerke.

Zwei gleichzeitige Stationen

In diesem Abschnitt wird die Auswahl des Wi-Fi-Netzwerks beschrieben, wenn ein Gerät die gleichzeitige Verbindung mit zwei Wi-Fi-Netzwerken unterstützt.

Machen Sie vor der Pause

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. Der Make-before-Break-Flow verwendet denselben Netzwerkauswahlalgorithmus wie der Break-before-Make-Netzwerkwechsel (bei dem das Gerät die Verbindung zum alten Netzwerk trennt, bevor es eine Verbindung zum neuen herstellt). Wenn der Netzwerkauswahlalgorithmus ein Netzwerk auswählt, das nicht mit „Make-before-break“ umgeschaltet werden kann, greift das Gerät automatisch auf „Break-before-make“ zurück.

Gleichzeitige eingeschränkte Internetverbindung

Wenn die gleichzeitige eingeschränkte und Internetverbindungsfunktion aktiviert ist, kann das Gerät eine Verbindung zu einem sekundären eingeschränkten Wi-Fi-Netzwerk herstellen, das nur für ausgewählte, vom Gerätehersteller konfigurierte Apps verfügbar ist. Anweisungen für Gerätehersteller zur Konfiguration finden Sie unter „Gleichzeitige eingeschränkte Verbindung und Internetverbindung“ .

Wenn der Netzwerkauswahlalgorithmus Scanergebnisse erkennt, die mit dem kostenpflichtigen/privaten OEM-Vorschlag übereinstimmen, stellt er automatisch eine Verbindung zu diesem als zweites Netzwerk her. Die Netzwerkauswahl für das primäre Wi-Fi-Netzwerk (das die Internetverbindung zu regulären Apps bereitstellt) erfolgt normalerweise parallel.

Häufig gestellte Fragen (FAQ)

  1. Haben sichere Netzwerke immer Vorrang vor offenen Netzwerken?

    Nein. Gespeichert versus vorgeschlagen und gemessen versus nicht gemessen sind die Hauptkategorien, in denen Netzwerke bewertet werden. Innerhalb jeder Kategorie haben sichere Netzwerke eine gewisse Priorität gegenüber offenen Netzwerken, die Qualität der Verbindung wird jedoch viel stärker gewichtet.

    Der Grund dafür ist, dass die eigentliche Sicherheit der Nutzerdaten durch eine Ende-zu-Ende-Verschlüsselung (z. B. TLS) gewährleistet ist. Sichere Netzwerke verschlüsseln nur die erste Phase der Kommunikation, und selbst dann bieten Netzwerke mit vorinstallierten Schlüsseln nicht viel Datenschutz.

  2. Warum haben gespeicherte Netzwerke Vorrang vor vorgeschlagenen Netzwerken?

    Gespeicherte freie (nicht gemessene) Netzwerke haben Vorrang vor vorgeschlagenen freien Netzwerken und gespeicherte getaktete Netzwerke haben Vorrang vor vorgeschlagenen getakteten Netzwerken.

    Gespeicherte Netzwerke haben Vorrang vor vorgeschlagenen Netzwerken, da es sich bei gespeicherten Netzwerken um Netzwerke handelt, die der Benutzer explizit zum Gerät hinzugefügt hat. Das impliziert, dass man nach Möglichkeit lieber eine Verbindung zu diesen Netzwerken herstellen möchte.

    Beachten Sie, dass Benutzer das automatische Verbindungsverhalten für einzelne gespeicherte Netzwerke deaktivieren können, d. h. angeben, dass diese Netzwerke nur manuell verwendet werden sollen und nicht automatisch vom Gerät berücksichtigt werden sollen.

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

    Der Gerätehersteller kann die Netzwerkauswahlentscheidungen ändern, indem er die in den obigen Abschnitten aufgeführten Bonus- Overlays ändert. Es wird jedoch nicht empfohlen, die Standardwerte zu ändern, da sie nach sorgfältiger Prüfung mehrerer Anwendungsfälle ausgewählt wurden.