Android Wi-Fi 네트워크 선택

이 페이지에서는 Android 12에서 Wi-Fi 네트워크 선택 및 전환에 사용하는 알고리즘과 절차를 설명합니다. Android는 연결된 네트워크의 품질을 지속적으로 평가하고 사용 가능한 네트워크의 품질을 평가합니다.

자동 연결의 수명

Android 기기에서 사용할 수 있는 Wi-Fi 네트워크를 평가하고 연결하는 과정을 설명합니다.

  1. 화면이 켜져 있는지 여부에 따라 기기에서 다음 방법 중 하나로 사용 가능한 네트워크를 검사합니다.

    • 화면 켜짐(연결됨): Android 연결 하위 시스템이 현재 연결이 검사를 건너뛰어도 될 만큼 양호한지를 정기적으로 평가합니다(화면 켜짐 검사에 정의된 방법에 따름). 연결이 검사를 건너뛰어도 될 만큼 양호하지 않은 경우 연결 하위 시스템이 사용 가능한 네트워크를 감지하기 위해 검사를 트리거합니다. 이러한 검사는 위치 시스템이나 앱(설정 앱 포함)과 같은 다른 시스템 구성요소에 의해서도 트리거될 수 있습니다.
    • 화면 켜짐(연결 끊김): Android 연결 하위 시스템이 지수 백오프 일정에 따라 주기적으로 검사를 실행하고, 수신된 모든 검사 결과를 평가하여 연결할 최적의 네트워크를 선택하려고 시도합니다.
    • 화면 꺼짐(연결 끊김): 화면이 꺼지면 바로 호스트 CPU가 기본 네트워크 오프로드(PNO) 검사를 사용하여 기본 네트워크 목록으로 펌웨어를 프로그래밍합니다. 펌웨어가 기본 네트워크를 찾은 경우 호스트의 절전 모드를 해제합니다. AOSP는 기기에서 PNO가 지원된다고 가정합니다.

    WifiManager#allowAutojoinGlobal(boolean) 메서드는 자동 연결을 사용 중지하는 데 사용할 수 있습니다. 이 메서드는 권한이 있는 API로, 기기 제조업체가 제한적인 상황(예: 사전 구성된 비모바일 기기)에서 사용할 수 있습니다.

    기기가 연결되어 있고 config_wifi_framework_enable_associated_network_selection 오버레이가 false로 설정되어 있으면 연결 검사가 실행되지 않기 때문에 검사 결과가 네트워크 선택을 트리거하지 않습니다. 기기가 연결 해제된 경우에는 이 설정은 아무런 영향을 미치지 않습니다. 즉, 연결 검사와 네트워크 선택이 계속 발생하게 됩니다.

  2. 검사 결과가 평가됩니다.

    • 기기가 Wi-Fi 네트워크에 연결되어 있으면 프레임워크는 현재 네트워크가 네트워크 선택을 건너뛸 만큼 양호한지 평가합니다.

      네트워크는 다음 요구사항 중 하나라도 충족하는 경우 네트워크 선택을 건너뛰어도 될 만큼 양호한 것으로 정의됩니다.

      • 마지막 네트워크 선택 후 10초가 채 지나지 않았습니다.
      • 사용자가 최근에 네트워크에 수동으로 연결했습니다(여기서 '최근'은 config_wifiSufficientDurationAfterUserSelectionMilliseconds 오버레이를 사용하여 구성 가능).
      • 기기가 온라인 가입(OSU) 연결에 연결되어 있습니다.
      • 다음 요구사항이 모두 충족됩니다.

        • RSSI가 필수 RSSI 임곗값을 초과했거나 연결을 통해 충분한 트래픽이 전달되고 있습니다(RSSI 및 트래픽 임곗값은 화면 켜짐 검사 참고).
        • 네트워크가 인증(인터넷에 연결됨)되었거나 인터넷 액세스 없이 사용할 수 있도록 사용자의 승인을 받았습니다.
        • 네트워크가 무제한입니다.
    • 네트워크가 네트워크 선택을 건너뛰어도 될 만큼 양호한 경우 추가 작업이 취해지지 않습니다.

    • 연결된 Wi-Fi 네트워크가 양호한 상태가 아니거나 기기가 네트워크에 연결되지 않은 경우 프레임워크는 네트워크 후보를 호출하여, 필터링된 검사 결과에 따라 연결할 후보 Wi-Fi 네트워크 목록을 생성합니다. 네트워크 후보는 기존 Wi-Fi 구성을 찾거나 후보 네트워크의 새 구성을 만듭니다.

    • 엔트리 RSSI 이하의 RSSI(config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz, config_wifiFrameworkScoreEntryRssiThreshold6ghz 오버레이를 사용하여 구성 가능함)를 갖는 BSSID를 삭제하도록 검사 결과가 필터링됩니다. 또한 차단된 BSSID도 필터링됩니다. BSSID는 반복되는 연결 실패, 빈번한 연결 끊김, 특정 시간 동안 연결을 시도하지 말라는 AP의 명시적 요청(MBO-OCE)에 따라 차단될 수 있습니다. BSSID 차단은 아래 SSID 및 BSSID 차단에 설명되어 있습니다.

    • 기기가 빠르게 움직이는 경우 빠르게 변하는 RSSI를 갖는 BSSID를 삭제하도록 검사 결과가 선택적으로 추가 필터링됩니다(즉, BSSID는 기기에 따라 움직이지 않음). 이 최적화는 config_wifiHighMovementNetworkSelectionOptimizationEnabled(최적화 사용 설정/사용 중지)과 config_wifiHighMovementNetworkSelectionOptimizationScanDelayMsconfig_wifiHighMovementNetworkSelectionOptimizationRssiDelta 오버레이를 사용하여 구성할 수 있습니다. 이러한 오버레이에 의해 검사 결과의 안정성 요구사항이 구성됩니다(RSSI는 충분한 시간 간격을 두고 검사 결과에 따라 변경됨).

  3. 프레임워크는 후보 채점자를 실행하여 각 SSID(서비스 세트 식별자) 후보의 점수를 생성합니다. SSID 후보에는 여러 BSSID(기본 서비스 세트 식별자) 후보(네트워크 후보에 의해 생성됨)가 포함될 수 있습니다. 점수가 가장 높은 후보가 우승 후보가 됩니다.

  4. 프레임워크가 (후보 채점자가 산정한 우승 후보를 사용하는 대신 사용자가 선택한 네트워크를 새로운 우승 후보로 만들 수 있는) 사용자 연결 선택 알고리즘을 실행합니다.

  5. 프레임워크는 우승 후보가 현재 연결된 네트워크와 일치하는지 확인합니다. 일치하는 것으로 간주되려면 다음 중 하나를 충족해야 합니다.

    • 우승 후보와 연결된 Wi-Fi 네트워크의 BSSID가 동일합니다.
    • BSSID 블랙리스트 기능을 포함한 펌웨어 로밍이 지원되는 경우 우승 후보와 연결된 네트워크의 SSID 및 보안 유형이 동일합니다.

    우승 후보가 현재 연결된 네트워크와 일치하면 추가 작업이 취해지지 않습니다. 우승 후보가 현재 연결된 네트워크와 일치하지 않으면 기기가 우승 후보에 연결됩니다.

시스템을 재정의하고 오프라인 LAN을 만드는 Wi-Fi 네트워크 요청 API를 앱에서 사용하는 동안에는 자동 네트워크 연결이 사용 중지됩니다(듀얼 동시 스테이션을 지원하는 기기에서는 제외).

연결된 네트워크의 평가

Android 프레임워크 또는 펌웨어는 연결된 네트워크의 품질을 주기적으로 평가합니다. 이 섹션에서는 화면이 켜지거나 꺼진 상태일 때 연결된 네트워크가 평가되는 방식을 설명합니다.

이 평가는 위에서 설명한 네트워크 선택과는 별도로 수행됩니다.

화면 켜짐

Android 프레임워크는 연결된 네트워크를 다음과 같은 방법으로 평가합니다.

  1. Wi-Fi 서비스는 3초마다 RSSI 및 링크 레이어 통계를 폴링합니다(config_wifiPollRssiIntervalMilliseconds 오버레이를 사용하여 구성 가능함).
  2. Wi-Fi 서비스는 RSSI 및 링크 레이어 통계를 기반으로 연결 점수를 계산합니다.
  3. Wi-Fi 서비스는 점수를 연결 서비스에 전달하고, 연결 서비스는 점수를 사용하여 Wi-Fi 네트워크에 연결할지 아니면 셀룰러 네트워크 같은 다른 사용 가능한 네트워크 유형에 연결할지를 결정합니다.

화면 꺼짐

프레임워크는 연결된 네트워크에 관한 평가를 시작하지 않지만, 다른 구성요소(예: 위치 서비스)가 검사를 시작한 경우에는 네트워크 선택 프로세스가 계속 발생할 수 있습니다. 펌웨어가 네트워크 품질을 평가합니다. 네트워크 품질이 나쁘면 로밍이 실행되거나 궁극적으로 네트워크에서 분리되어 호스트의 절전 모드가 해제될 수 있습니다.

연결 검사

기기의 화면이 켜져 있는지, 화면이 꺼져 있고 Wi-Fi에 연결되어 있는지, 또는 화면이 꺼져 있고 Wi-Fi에 연결되어 있지 않은지를 기반으로 검사가 자동 실행됩니다.

화면 켜짐

프레임워크는 화면이 켜져 있을 때 간격을 점점 늘리면서 검사 결정을 트리거합니다. 검사 결정 간격은 config_wifiDisconnectedScanIntervalScheduleSec, config_wifiConnectedScanIntervalScheduleSec, config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec 오버레이(정수로 구성된 배열)로 구성됩니다. 기본적으로 검사는 20, 40, 80, 160초의 지수 백오프 간격으로 발생하며 이후 검사는 160초 간격으로 수행될 수 있습니다(이러한 값은 위 오버레이의 기본값임).

화면 상태가 바뀔 때마다, 즉 화면이 켜지거나 꺼질 때마다 20초 간격으로 지수 백오프 검사가 재설정되고 다시 시작됩니다.

(Android 13 이상) 런타임에 검사 간격이 여러 개 필요한 경우 OEM 권한이 있는 앱이 WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) API를 호출하여 화면 켜짐 검사 일정을 동적으로 설정할 수 있습니다.

검사를 수행할지 아니면 건너뛸지 여부는 현재 네트워크 연결이 검사를 건너뛰어도 될 만큼 양호한지에 따라 결정됩니다. 다음 요구사항 중 하나라도 충족하는 경우 연결이 검사를 건너뛰어도 될 만큼 양호한 것으로 간주됩니다.

  • 기기가 온라인 가입(OSU) 연결에 연결되어 있습니다.
  • 충분한 트래픽이 연결을 통해 전달되고 있습니다(아래 트래픽 임계값 참조).
  • RSSI가 필수 RSSI 임계값을 초과(아래 RSSI 임계값 참조)하고 동시에 네트워크 선택이 최근(10분이 기본값이지만 config_wifiConnectedHighRssiScanMinimumWindowSizeSec 오버레이를 사용하여 구성 가능함)에 수행되었으며, 동시에 네트워크가 인증(인터넷에 연결됨)되었거나 인터넷 액세스 없이 사용할 수 있도록 사용자 승인되었습니다.

RSSI 및 트래픽 임계값은 다음과 같습니다.

  • RSSI는 config_wifi_framework_wifi_score_low_rssi_threshold_24GHz 오버레이로 구성된 2.4GHz 대역의 경우에는 -73dBm 이상이고, config_wifi_framework_wifi_score_low_rssi_threshold_5GHzconfig_wifiFrameworkScoreLowRssiThreshold6ghz 오버레이로 구성된 5GHz 및 6GHz 대역의 경우에는 -70dBm 이상임.
  • 트래픽(전송 또는 수신)은 config_wifiFrameworkMinPacketPerSecondActiveTraffic 오버레이로 구성된 초당 패킷 수(pps)가 16개가 넘음.

기기가 연결되어 있고 화면이 켜져 있는 경우. 연결된 채점자가 RSSI와 같은 신호와 전송된 패킷 수를 확인하여 Wi-Fi 품질을 주기적으로 모니터링합니다. Wi-Fi 품질이 (아래에 지정된 바에 따라) 낮은 것으로 확인되고 기기가 이중 동시 스테이션을 지원하는 경우 검사가 트리거됩니다. config_wifiLowConnectedScoreThresholdToTriggerScanForMbb 오버레이를 사용하여 검사를 트리거하는 점수 임계값을 구성할 수 있습니다. config_wifiLowConnectedScoreScanPeriodSeconds 오버레이를 사용하여 이러한 검사의 기간을 구성할 수 있습니다.

화면이 꺼져 있고 Wi-Fi에 연결됨

화면이 꺼져 있고 기기가 Wi-Fi 네트워크에 연결되었으면 펌웨어(Wi-Fi SoC)는 로밍 검사를 실행합니다. 프레임워크는 화면이 꺼져 있을 때 검사를 실행하지 않습니다.

화면이 꺼져 있고 Wi-Fi에 연결되지 않음(연결 해제 상태)

화면이 꺼져 있고 Wi-Fi 연결이 해제되어 있으면 펌웨어는 SSID에 PNO 검사를 수행합니다. 프레임워크는 검사할 SSID 목록과 검사할 채널 목록을 사용하여 펌웨어를 구성합니다. 구성된 SSID가 발견되면 펌웨어가 프레임워크의 절전 모드를 해제합니다.

프레임워크는 다른 검사 간격을 선택하기 위해 기기 이동성 상태를 사용하여 펌웨어의 PNO 검사 간격도 구성합니다. 낮은 이동성 상태(기기가 정지되어 있음)에서 간격은 처음 3회 검사(config_wifiStationaryPnoScanIntervalMillis 오버레이에 의해 조정됨)에서는 60초이고, 이후 검사에서는 180초(그 오버레이의 3배수로 고정됨)입니다. 높은 이동성 상태에서 간격은 처음 3회 검사(config_wifiMovingPnoScanIntervalMillis 오버레이에 의해 조정됨)에서는 20초이고, 이후 검사에서는 60초(그 오버레이의 3배수로 고정됨)입니다.

네트워크 후보

네트워크 후보는 다음과 같은 네트워크에 알맞은 구성(WifiConfiguration)을 찾거나 만듭니다.

  • 현재 사용 가능(검사 결과를 따름)하거나 현재 연결된 네트워크(신뢰할 수 없는 검사 결과에서 누락되기도 함)
  • 최소 RSSI가 있음. 최소 RSSI는 2.4GHz 대역에서는 -80dBm이고, 5GHz와 6GHz 대역에서는 -77dBm임. 이러한 대역은 config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz, config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz, config_wifiFrameworkScoreEntryRssiThreshold6ghz 오버레이로 구성 가능함.
  • 이전 연결 실패 등으로 인해 차단되지 않음.
  • 네트워크에 사용 불가(예: MBO/OCE 사용)로 표시되지 않음
  • 기기에서 제공되는 사용자 인증 정보를 사용하여 연결 가능함.

다음과 같은 네트워크 후보가 사용됩니다.

  • 저장된 네트워크 후보: 저장된 Passpoint 구독을 포함하여 저장된 모든 네트워크를 평가합니다.
  • 추천 네트워크 후보: Suggestion API를 사용하여 앱에서 제공하는 모든 네트워크를 평가합니다(추천 Passpoint 구독 포함).
  • 외부에서 점수를 매기는 네트워크 후보: 기기에 네트워크 연결 옵션을 제공하는 OEM 메커니즘입니다. 자세한 내용은 외부 네트워크 평가 제공업체를 참조하세요.

후보 채점자

후보 채점자는 각 후보를 평가하고 점수를 제공합니다. ThroughputScorer(기본 채점자)의 점수는 다음을 기초로 합니다.

  • 기본 점수는 RSSI를 기반으로 계산됩니다. 여기서 RSSI는 2.4GHz 대역의 경우에는 -73dBm으로, 5GHz 및 6GHz 대역의 경우에는 -70dBm으로 제한됩니다(이러한 대역은 config_wifi_framework_wifi_score_low_rssi_threshold_24GHz, config_wifi_framework_wifi_score_low_rssi_threshold_5GHz, config_wifiFrameworkScoreLowRssiThreshold6ghz 오버레이로 구성됨).
  • 추가 점수는 관련 기술에서 얻는 예상 처리량, 채널 주파수, 대역폭, RSSI, 채널 조건, 최대 공간 스트림 개수 및 기타 매개변수를 기준으로 계산됩니다. 추가 점수는 config_wifiFrameworkThroughputBonusNumeratorconfig_wifiFrameworkThroughputBonusDenominator 오버레이를 사용하여 구성할 수 있으며 config_wifiFrameworkThroughputBonusLimit 오버레이를 사용하여 지정된 최댓값으로 제한됩니다.
  • 최근에 사용자 또는 앱이 선택한 후보 네트워크는 config_wifiFrameworkLastSelectionMinutes 오버레이를 사용하여 구성 가능한 기간 동안 비교적 큰 점수를 받습니다. 이 기간 동안 관련 네트워크는 사용자에 의해 선택되지 않은 네트워크보다 우선 선택되도록 보장됩니다.
  • 현재 네트워크와 일치하는 후보는 config_wifiFrameworkCurrentNetworkBonusMinconfig_wifiFrameworkCurrentNetworkBonusPercent 오버레이로 구성된 추가 점수를 받습니다. RSSI의 비율과 처리량 기반 점수에 따라 추가 보너스 점수(구성 가능한 최솟값까지)를 받기도 합니다.
  • 보안 네트워크는 개방형 네트워크보다 높은 점수를 받습니다. 보너스는 config_wifiFrameworkSecureNetworkBonus 오버레이를 사용하여 구성됩니다.
  • 무제한 (무료) 네트워크는 데이터 전송량 제한이 있는 (유료) 네트워크보다 높은 점수를 받습니다. 보너스는 config_wifiFrameworkUnmeteredNetworkBonus 오버레이를 사용하여 구성됩니다.
  • 저장된 네트워크는 Suggestion API를 사용하여 추천된 네트워크보다 높은 점수를 받습니다. 보너스는 config_wifiFrameworkSavedNetworkBonus 오버레이를 사용하여 구성됩니다.
  • (Suggestion API의 일부로 요청될 수 있는) 신뢰할 수 없는 네트워크는 다른 어떤 네트워크보다 낮은 점수를 받습니다.
  • 기기가 현재 인터넷 액세스가 있는 다른 네트워크에 연결되어 있는 경우, 이전에 오프라인인 것으로 감지된 네트워크는 0점을 받습니다.

저장된 네트워크와 추천된 네트워크, 무제한 네트워크와 전송량 제한이 있는 네트워크를 서로 비교하여 부과되는 기본 추가 점수(기본 오버레이 값)로 인해 저장된 네트워크, 추천된 네트워크, 전송량 제한이 있는 네트워크, 무제한 네트워크에 다음과 같은 엄격한 우선순위 순서가 적용됩니다.

  1. 저장된 무제한 네트워크
  2. 추천된 무제한 네트워크
  3. 데이터 전송량 제한이 있는 저장된 네트워크
  4. 데이터 전송량 제한이 있는 추천된 네트워크

즉, 항상 무제한의 저장된 (무료) 네트워크가 데이터 전송량 제한이 있는 저장된 (유료) 네트워크보다 먼저 선택됩니다. 사용자 또는 앱이 최근에 선택한 점수 보너스가 이 엄격한 우선순위보다 우선 적용될 수 있습니다.

프레임워크에 여러 후보 채점자가 설치되어 있을 수 있지만 한 번에 하나만 활성화될 수 있습니다. 다른 채점자는 대체 알고리즘 조사를 위해 측정항목에 사용될 수 있습니다. Android 11에서 기본 채점자는 ThroughputScorer입니다.

SSID 및 BSSID 차단

프레임워크는 SSID 및/또는 BSSID를 차단할 수 있습니다. 따라서 이들을 일시적인 연결이나 영구적인 연결에는 고려하지 마세요.

BSSID 차단

BSSID 차단은 특정 실패 유형별로 두 번의 실패 카운터와 한 번의 연속 실패 카운터, 한 번의 연속 카운터가 계속되면 작동합니다(실패 유형 목록은 아래 참조). 실패가 발생하면:

  • 관련 실패 유형의 카운터가 증가합니다.
  • 그 실패 유형의 실패 임계값에 도달하면:
    • BSSID가 차단됩니다.
    • 관련 실패의 연속 카운터가 증가합니다.

BSSID가 차단되는 기간이 (구성 가능한) 기본 값(RSSI에 따라 config_wifiBssidBlocklistMonitorBaseBlockDurationMs 또는 config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs 오버레이에 의해 지정됨)에서 시작되고, 구성 가능한 상한값(config_wifiBssidBlocklistMonitorFailureStreakCap 오버레이에 의해 지정됨)까지 기하급수적으로 증가합니다. 동일한 BSSID에서 실패가 계속 발생하면 그 기간이 늘어납니다. 이 기간은 기본 기간으로, 실패가 연속되면 기하급수적으로 늘어납니다. 즉 실패가 2번 연속 일어나면 기본 차단 기간은 4배가 됩니다.

BSSID 차단 임계값은 실패 원인에 따라 다르며 오버레이를 사용하여 각각 맞춤설정할 수 있습니다.

  • AP가 MBO/OCE Unable to handle new STA 코드를 사용하여 연결을 거부함: config_wifiBssidBlocklistMonitorApUnableToHandleNewStaThreshold
  • 이 네트워크를 통한 인터넷 인증에 실패함: config_wifiBssidBlocklistMonitorNetworkValidationFailureThreshold
  • 잘못된 비밀번호 인증 실패 코드임: config_wifiBssidBlocklistMonitorWrongPasswordThreshold
  • EAP 네트워크의 EAP 실패 인증 실패 코드: config_wifiBssidBlocklistMonitorEapFailureThreshold
  • 연결 거부됨, 기타 일반적인 연결 거부됨: config_wifiBssidBlocklistMonitorAssociationRejectionThreshold
  • 연결 시간 초과: config_wifiBssidBlocklistMonitorAssociationTimeoutThreshold.
  • 인증 실패, 기타 일반적인 인증 실패: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold
  • DHCP 실패, DHCP 프로비저닝 실패: config_wifiBssidBlocklistMonitorDhcpFailureThreshold
  • 비정상적인 연결 끊김. 연결된 후 기기가 아주 짧은 시간 내에 네트워크와 연결이 끊김: config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold. 기간은 config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs로 구성할 수 있습니다.

BSSID 차단 목록 삭제 조건

BSSID는 다음과 같은 경우에 차단 목록에서 삭제됩니다.

  • Wi-Fi가 전환됨: 모든 BSSID가 차단 목록에서 삭제됩니다.
  • 사용자가 Wi-Fi 선택 도구에서 네트워크를 탭하는 경우: 사용자가 선택한 네트워크의 모든 BSSID가 차단 목록에서 삭제됩니다.
  • 시간 초과: 차단 기간에 도달하면 BSSID가 차단 목록에서 삭제됩니다.
  • 재부팅: 모든 차단 목록이 삭제됩니다.
  • 네트워크 삭제됨: 이 네트워크와 연결된 모든 BSSID가 차단 목록에서 삭제됩니다.

실패 카운터 및 연속 카운터 재설정 조건:

  • 재부팅: 모든 BSSID가 재설정됩니다.
  • 네트워크 삭제됨: 네트워크와 연결된 BSSID가 재설정됩니다.
  • L2 연결 성공: 다음 오류 코드가 재설정됩니다.

    • 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(기기가 이 BSSID에 마지막으로 연결된 시간이 3시간 넘은 경우에만 조건부로 삭제됨)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • 네트워크 인증 성공: 다음 오류 코드가 재설정됩니다.

    • REASON_NETWORK_VALIDATION_FAILURE
  • DHCP 프로비저닝 성공: 다음 오류 코드가 재설정됩니다.

    • REASON_DHCP_FAILURE

SSID 차단

SSID 차단은 BSSID 차단과 유사하게 작동합니다. 관련 유형의 연결 실패가 발생하면 각 네트워크의 실패 유형별 실패 카운터가 증가합니다. 특정 유형의 실패 횟수가 임계값을 초과하면 구성에 따라 SSID가 영구적으로 또는 일시적으로 차단됩니다. 각 실패 유형의 구성은 WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS에 코딩되며 아래에 요약되어 있습니다.

* 일시적으로 사용 중지된 네트워크의 경우 네트워크에서 발생한 연속 연결 실패 횟수에 따라 사용 중지 기간이 동적으로 변경됩니다. 네트워크 연결이 연속해서 5번 실패한 후에는 이후 후속 실패가 발생할 때마다 사용 중지 기간이 직전 기간에 비해 두 배로 길어집니다. 예를 들어, 네트워크 연결이 연속해서 5번 실패하면 5분간 사용 중지되고, 6번째에는 10분간, 7번째에는 20분간 사용 중지됩니다. 사용 중지 기간의 최대 한도는 18시간입니다.

실패 코드 설명 임계값 기본 사용 중지 기간* 사용 중지 유형
DISABLED_DHCP_FAILURE DHCP 프로비저닝에 실패 5 5분 임시
DISABLED_NO_INTERNET_TEMPORARY 네트워크 인증에 실패했지만 사용자가 나중에 이 네트워크에 계속 연결하고 싶다고 밝힘 1 10분 임시
DISABLED_AUTHENTICATION_NO_CREDENTIALS 네트워크 연결을 위한 사용자 인증 정보가 서플리컨트에 없음 1 없음 영구적
DISABLED_NO_INTERNET_PERMANENT 네트워크 인증 실패의 기본값 1 없음 영구적
DISABLED_BY_WIFI_MANAGER 지원 중단됨 및 사용되지 않음 1 없음 영구적
DISABLED_BY_WRONG_PASSWORD 비밀번호가 올바르지 않으며 이전에 이 네트워크에 제대로 연결된 적이 없음 1 없음 영구적
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION SIM 카드가 구독되지 않은 경우에 발생하는 EAP 오류 1 없음 영구적
DISABLED_ASSOCIATION_REJECTION 연결 거부 오류 5 5분 임시
DISABLED_AUTHENTICATION_FAILURE 기타 인증 오류(비밀번호가 잘못되었거나 EAP 오류가 아님) 5 5분 임시
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR 공급업체별(비공개) EAP 오류 1 없음 영구
DISABLED_NETWORK_NOT_FOUND 서플리컨트가 검사 결과에서 프레임워크 또는 연결(네트워크 기능 포함)이 요청한 네트워크와 일치하는 네트워크를 찾지 못함 2 5분 임시
DISABLED_CONSECUTIVE_FAILURES 네트워크가 연속 5회 이상 연결에 실패함. 이러한 실패의 실패 유형에는 이 표에 나와 있는 실패 유형이 포함되나 이에 국한되지 않습니다.
5 5분 임시

다음과 같은 경우 일시적으로 사용 중지된 네트워크가 다시 사용 설정됩니다.

  • 사용 중지 기간이 지남.
  • 사용자가 연결할 네트워크를 수동으로 선택함.
  • 사용자가 Wi-Fi를 전환함.
  • 시스템이 재부팅됨.
  • 네트워크가 매우 낮은 RSSI에서 사용 중지되었으나 이후 중간 또는 그보다 높은 RSSI에서 네트워크가 다시 감지됨.

다음과 같은 경우 영구적으로 사용 중지된 네트워크가 다시 사용 설정됩니다.

  • 사용자가 연결할 네트워크를 수동으로 선택함.

다음과 같은 경우 네트워크의 실패 카운터가 초기화됩니다.

  • 네트워크가 삭제됨.
  • 기기가 네트워크에 제대로 연결됨.
  • 사용 중지 기간이 지나 네트워크가 다시 사용 설정됨.
  • 사용자가 연결할 네트워크를 수동으로 선택함.
  • 시스템이 재부팅됨.

스코어카드

Android 10에 도입된 스코어카드는 BSSID에 관한 기기 통계를 기록합니다. 스코어카드는 IpMemoryStore 서비스를 사용하여 유지됩니다.

스코어카드는 Android 11 네트워크 선택 시 사용되지 않습니다.

사용자 연결 선택

Android는 사용자가 명시적으로 연결한 Wi-Fi 네트워크(예: 홈 네트워크)가 선택 프로세스에서 우선권을 갖는 사용자 연결 선택 알고리즘을 사용합니다. 홈 네트워크가 가정용 기기를 제어하는 기능 등의 추가 서비스를 제공하기 때문에 공용 네트워크보다 성능이 낮더라도 사용자는 홈 네트워크를 선호할 수 있습니다.

사용자의 네트워크 선호도는 사용자가 네트워크를 선택한 시점에 보이는 모든 Wi-Fi 구성 및 신호 강도를 표시하여 캡처됩니다. 표시된 Wi-Fi 구성 중 하나가 자동 선택 프로세스에서 선택되었고 사용자가 선택한 네트워크를 사용할 수 있다면 다음 조건이 충족되는 경우 사용자 연결 선택 알고리즘이 선택 항목을 사용자가 선택한 네트워크로 재정의합니다.

  • 사용자 연결 선택 네트워크가 마지막으로 사용된 시점에 인터넷에 액세스할 수 있었습니다.
  • 사용자 연결 선택 네트워크의 신호 강도가 이 네트워크가 처음 선택되었을 때의 신호 강도보다 오차 범위 안에서 높거나 같습니다. 오차 범위는 오버레이 config_wifiEstimateRssiErrorMarginDb를 사용하여 구성할 수 있습니다.

사용자 연결 선택 네트워크가 재부팅 후에도 유지됩니다. 사용자 연결 선택 네트워크가 저장된 네트워크, Passpoint 네트워크, 추천 네트워크로 작동합니다.

듀얼 동시 스테이션

이 섹션에서는 기기에서 두 개의 Wi-Fi 네트워크 동시 연결을 지원하는 경우의 Wi-Fi 네트워크 선택을 설명합니다.

Make-before-break

make-before-break 기능이 사용 설정된 경우, 기기가 기존 네트워크에서 연결 해제하기 전에 먼저 새 네트워크에 연결하려고 시도합니다. make-before-break 흐름은 break-before-make 네트워크 전환(기기가 새 네트워크에 연결하기 전에 먼저 기존 네트워크에서 연결 해제)과 동일한 네트워크 선택 알고리즘을 사용합니다. 네트워크 선택 알고리즘이 make-before-break를 사용하여 전환할 수 없는 네트워크를 선택하는 경우, 기기가 자동으로 break-before-make로 폴백됩니다.

제한된 연결 및 인터넷 연결 동시 실행

동시 제한 연결 및 인터넷 연결 기능이 사용 설정된 경우, 기기 제조업체가 구성한 일부 앱에서만 사용 가능한 제한된 보조 Wi-Fi 네트워크에 기기를 연결할 수 있습니다. 기기 제조업체를 위한 이 기능의 구성법은 동시 제한 연결 및 인터넷 연결을 참조하세요.

네트워크 선택 알고리즘이 OEM 유료/비공개 추천과 일치하는 검사 결과를 감지하면 자동으로 이 네트워크에 보조 네트워크로 연결합니다. 일반 앱에 인터넷 연결을 제공하는 기본 Wi-Fi 네트워크의 네트워크 선택은 일반적으로 동시에 진행됩니다.

자주 묻는 질문(FAQ)

  1. 보안 네트워크가 개방형 네트워크보다 항상 우선순위가 높나요?

    아니요. 저장된 네트워크과 추천된 네트워크의 비교, 무제한 네트워크와 데이터 전송량 제한이 있는 네트워크의 비교는 네트워크가 평가되는 기본 카테고리입니다. 각 카테고리 내에서 보안 네트워크가 개방형 네트워크보다 우선순위는 높지만 연결 품질에 훨씬 더 높은 가중치가 부여됩니다.

    엔드 투 엔드 암호화(예: TLS)에 의해 실제 사용자 데이터 보안이 제공되기 때문입니다. 보안 네트워크는 통신의 첫 구간만 암호화하며 사전 공유된 키를 갖는 네트워크이더라도 개인정보 보호를 크게 제공하지 않습니다.

  2. 저장된 네트워크가 추천된 네트워크보다 우선순위가 높은 이유가 무엇인가요?

    저장된 무료 (무제한) 네트워크가 추천된 무료 네트워크보다 우선순위가 높으며, 데이터 전송량 제한이 있는 저장된 네트워크가 데이터 전송량 제한이 있는 추천된 네트워크보다 우선순위가 높습니다.

    저장된 네트워크가 추천된 네트워크보다 우선순위가 높은 이유는 저장된 네트워크가 사용자가 기기에 명시적으로 추가한 네트워크이기 때문입니다. 즉, 가능하면 사용자가 명시적으로 추가한 네트워크에 연결하려는 것입니다.

    사용자는 저장된 개별 네트워크에 자동 연결되는 동작을 사용 중지할 수 있습니다. 즉, 이러한 네트워크는 수동으로만 사용되며 기기에 자동으로 사용되도록 고려되지는 않습니다.

  3. 엄격한 우선순위 순서를 변경하거나 완전히 삭제할 수 있나요?

    기기 제조업체가 위 섹션에 나열된 보너스 오버레이를 수정하여 네트워크 선택 결정을 수정할 수 있습니다. 하지만 기본값은 여러 사용 사례를 신중하게 고려하여 선택한 것이므로 기본값 변경은 권장되지 않습니다.