انتخاب شبکه 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 متصل باشد، چارچوب ارزیابی می‌کند که آیا شبکه فعلی برای رد کردن انتخاب شبکه به‌اندازه کافی خوب است یا نه.

      شبکه‌ای به‌عنوان به‌اندازه کافی خوب برای رد شدن از انتخاب شبکه تعریف می‌شود که هریک از شرایط زیر را داشته باشد:

      • کمتر از ۱۰ ثانیه از آخرین انتخاب شبکه گذشته است.
      • کاربر اخیراً به‌صورت دستی به شبکه متصل شده است (که اخیراً بااستفاده از هم‌پوشانی config_wifiSufficientDurationAfterUserSelectionMilliseconds قابل‌پیکربندی است).
      • دستگاه به اتصال ثبت‌نام آنلاین (OSU) متصل است.
      • همه الزامات زیر برآورده شده باشد:

        • «نشانگر قدرت سیگنال دریافتی» (RSSI) بیشتر از آستانه RSSI موردنیاز باشد یا ترافیک کافی ازطریق اتصال جریان داشته باشد (آستانه‌های RSSI و ترافیک را در اسکن‌های صفحه‌روشن ببینید).
        • شبکه اعتبارسنجی شده باشد (به اینترنت متصل باشد) یا کاربر آن را برای استفاده بدون دسترسی به اینترنت تأیید کرده باشد.
        • شبکه محدودشده نباشد.
    • اگر شبکه به‌اندازه کافی خوب باشد که بتوان از انتخاب شبکه صرف‌نظر کرد، اقدام دیگری انجام نمی‌شود.

    • اگر شبکه Wi-Fi متصل‌شده به‌اندازه کافی خوب نباشد، یا اگر دستگاه به شبکه‌ای متصل نباشد، چارچوب نامزدهای شبکه را فرا می‌خواند تا براساس نتایج اسکن فیلترشده، فهرستی از شبکه‌های Wi-Fi نامزد برای اتصال ایجاد کند. نامزدهای شبکه پیکربندی‌های Wi-Fi موجود را پیدا می‌کنند یا پیکربندی‌های جدیدی برای شبکه‌های نامزد ایجاد می‌کنند.

    • نتایج اسکن فیلتر می‌شوند تا BSSIDهایی که RSSI آن‌ها کمتر از RSSI ورودی است برداشته شوند (بااستفاده از رونهادهای config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz، config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz، و config_wifiFrameworkScoreEntryRssiThreshold6ghz قابل پیکربندی است). علاوه‌براین، BSSIDهای مسدودشده فیلتر می‌شوند. «شناسه‌های مجموعه خدمات پایه» براساس عدم موفقیت‌های مکرر در اتصال، قطع‌های مکرر، و درخواست‌های صریح از «نقطه دسترسی» برای تلاش نکردن برای ارتباط در یک دوره زمانی خاص (MBO-OCE) مسدود می‌شوند. مسدود کردن BSSID در بخش مسدود کردن SSID و BSSID شرح داده شده است.

    • وقتی دستگاه درحال حرکت است (با سرعت کم یا زیاد)، همه شبکه‌های شرکت مخابراتی از نتایج اسکن فیلتر می‌شوند. با افزودن شناسه شرکت مخابراتی به config_wifiMobilityFilterCarrierIdBlocklist، می‌توان شرکت‌های مخابراتی خاصی را از این فیلتر مستثنا کرد.

    • وقتی دستگاه به‌سرعت درحال حرکت است، نتایج اسکن به‌صورت اختیاری بیشتر فیلتر می‌شود تا «شناسه مجموعه خدمات پایه» (BSSID) که «شاخص قدرت سیگنال دریافتی» (RSSI) آن به‌سرعت تغییر می‌کند (نشانه‌ای از اینکه همراه با دستگاه حرکت نمی‌کند) برداشته شود. این بهینه‌سازی بااستفاده از config_wifiHighMovementNetworkSelectionOptimizationEnabled (فعال یا غیرفعال کردن بهینه‌سازی) و هم‌پوشانی‌های config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs و config_wifiHighMovementNetworkSelectionOptimizationRssiDelta پیکربندی می‌شود که الزامات پایداری را در نتایج اسکن پیکربندی می‌کنند (تغییر RSSI در نتایج اسکن به‌اندازه کافی در زمان جدا شده است).

  3. چارچوب امتیازدهنده نامزد را اجرا می‌کند تا برای هر نامزد SSID امتیازی تولید کند. نامزدهای SSID می‌توانند شامل چندین نامزد BSSID (تولیدشده توسط نامزدهای شبکه) باشند. نامزدی که بیشترین امتیاز را کسب کرده باشد نامزد برنده است.

  4. چارچوب الگوریتم انتخاب اتصال کاربر را اجرا می‌کند که ممکن است به‌جای استفاده از نامزد برنده از امتیازدهنده نامزد، شبکه انتخاب‌شده توسط کاربر را نامزد برنده جدید کند.

  5. چارچوب تعیین می‌کند که آیا نامزد برنده با شبکه متصل مطابقت دارد یا خیر. برای اینکه یک ویدیو به‌عنوان مطابقت درنظر گرفته شود، باید یکی از موارد زیر برآورده شود:

    • نامزد برنده و شبکه Wi-Fi متصل‌شده دارای BSSID یکسانی هستند.
    • اگر رومینگ سفت‌افزار دردسترس باشد (ازجمله قابلیت فهرست غیرمجازها BSSID)، نامزد برنده و شبکه متصل‌شده SSID و نوع امنیتی یکسانی دارند.

    اگر نامزد برنده با شبکه متصل مطابقت داشته باشد، اقدام دیگری انجام نمی‌شود. اگر نامزد برنده با شبکه مطابقت نداشته باشد، دستگاه با نامزد برنده مرتبط می‌شود.

ارزیابی شبکه متصل

چارچوب یا سفت‌افزار Android به‌طور دوره‌ای کیفیت شبکه متصل را ارزیابی می‌کند. این بخش نحوه ارزیابی شبکه متصل را وقتی صفحه روشن یا خاموش است شرح می‌دهد.

این ارزیابی علاوه‌بر انتخاب شبکه که در بخش‌های قبلی مورد بحث قرار گرفت انجام می‌شود.

صفحه‌نمایش روشن

چارچوب Android شبکه متصل را به این روش ارزیابی می‌کند:

  1. سرویس Wi-Fi هر ۳ ثانیه آمار RSSI و لایه پیوند را نمونه‌برداری می‌کند (بااستفاده از رونهاد config_wifiPollRssiIntervalMilliseconds قابل پیکربندی است).

    اگر تنظیم پویای فاصله بااستفاده از رونهاد config_wifiAdjustPollRssiIntervalEnabled فعال باشد، فاصله نظرسنجی براساس وضعیت تحرک دستگاه و RSSI به‌صورت پویا تغییر می‌کند.

    • وقتی دستگاه ثابت باشد و RSSI بیشتر از ۶۸- دسی‌بل باشد (پوشش‌های config_wifiClientRssiMonitorThresholdDbm و config_wifiClientRssiMonitorHysteresisDb پیکربندی کرده باشند)، فاصله زمانی نمونه‌برداری به ۶ ثانیه افزایش می‌یابد (پوشش config_wifiPollRssiLongIntervalMilliseconds پیکربندی کرده باشد).
    • وقتی دستگاه ثابت نباشد یا RSSI کمتر از ‎-۷۳ دسی‌بل میلی‌وات باشد (پیکربندی‌شده توسط config_wifiClientRssiMonitorThresholdDbm overlay)، فاصله نظرسنجی به ۳ ثانیه کاهش می‌یابد (پیکربندی‌شده توسط config_wifiPollRssiIntervalMilliseconds overlay).
  2. سرویس Wi-Fi امتیاز متصل را براساس RSSI و آمار لایه پیوند محاسبه می‌کند. دو مدل دردسترس برای این محاسبه وجود دارد، که با config_internalScorerType قابل‌پیکربندی است:

    • پیش‌فرض: امتیازدهنده‌ای مبتنی بر یادگیری ماشین که براساس آمار لایه پیوند آموزش دیده است.
    • جایگزین: امتیازدهنده قدیمی‌تری که براساس تغییرات در مقدار RSSI ارزیابی می‌کند.
  3. اختیاری: تولیدکنندگان تجهیزات اصلی می‌توانند با پیاده‌سازی برنامه امتیازدهنده خارجی، منطق ارزیابی شبکه متصل را سفارشی‌سازی کنند. این کار با پیاده‌سازی رابط WifiConnectedNetworkScorer و ثبت آن بااستفاده از میانای برنامه‌سازی کاربردی WifiManager#setWifiConnectedNetworkScorer(executor, scorer) انجام می‌شود.

    پس‌از ثبت، امتیازدهنده خارجی ازطریق جریان دوطرفه زیر با چارچوب تعامل برقرار می‌کند:

    • ورودی‌ها (چارچوب → امتیازدهنده)
      چارچوب امتیازدهنده را از رویدادهای کلیدی چرخه حیات و کیفیت مطلع می‌کند:

      • چرخه حیات جلسه: onStart() و onStop() نشان می‌دهند که اتصال Wi-Fi چه زمانی شروع یا متوقف شده است.
      • آمار Wi-Fi: امتیازدهنده به‌روزرسانی‌های دوره‌ای از آمار لایه پیوند (مثل RSSI، سرعت پیوند، و تعداد بسته‌ها) بااستفاده از OnWifiUsabilityStatsListener#onWifiUsabilityStats() دریافت می‌کند. برای دریافت این به‌روزرسانی‌ها، امتیازدهنده باید شنونده‌ای را بااستفاده از WifiManager#addOnWifiUsabilityStatsListener() ثبت کند.
    • کنش‌ها (امتیازدهنده ← چارچوب)
      امتیازدهنده سرویس Wi-Fi را با فراخوانی روش‌ها در ScoreUpdateObserver شیء فراخوانی متقابل هدایت می‌کند:

      • وضعیت قابلیت استفاده: «تماس گرفتن» notifyStatusUpdate(sessionId, isUsable)مکانیزم اصلی برای کنترل انتخاب شبکه است.
        • ‫isUsable = true: شبکه معتبر است. چارچوب آن را به شبکه پیش‌فرض برای ترافیک سیستم ارتقا می‌دهد.
        • isUsable = false: شبکه نامعتبر است. چارچوب از استفاده از آن به‌عنوان پیش‌فرض اجتناب می‌کند و باعث بازگشت به داده تلفن همراه می‌شود.
      • بررسی‌های دسترسی‌پذیری: تماس با requestNudOperation() باعث راه‌اندازی بررسی فعال تشخیص عدم دسترسی همسایه (NUD) (برای مثال، کاوشگر ARP یا ND) می‌شود تا دسترسی‌پذیری درگاه را تأیید کند.
      • قرار دادن BSSID در فهرست غیرمجازها: فراخوانی blocklistCurrentBssid() مانع از ارتباط مجدد دستگاه با نقطه دسترسی (AP) فعلی می‌شود. این کار درصورتی مفید است که امتیازدهنده مشکلات مختص AP را تشخیص دهد.
  4. اگر سازنده اصلی محصول امتیازدهنده خود را همان‌گونه که در مرحله ۳ توضیح داده شده است پیاده‌سازی کرده باشد، سرویس Wi-Fi تصمیمات مربوط به ارزیابی شبکه متصل را به امتیازدهنده سازنده اصلی محصول واگذار می‌کند.
    اگر سازنده تجهیزات اصلی امتیازدهنده خود را پیاده‌سازی نکرده باشد، سرویس Wi-Fi از امتیاز محاسبه‌شده در مرحله ۲ برای تعیین اینکه آیا باید برای اینترنت به داده تلفن همراه سوئیچ کند یا نه استفاده می‌کند.

صفحه‌نمایش خاموش است

چارچوب ارزیابی را در شبکه متصل‌شده شروع نمی‌کند، اما اگر اسکن‌ها توسط مؤلفه‌های دیگر (برای مثال، خدمات مکان) شروع شود، ممکن است فرایند انتخاب شبکه همچنان رخ دهد. میان‌افزار کیفیت شبکه را ارزیابی می‌کند و اگر کیفیت شبکه بد باشد، میان‌افزار ممکن است رومینگ کند یا (درنهایت) از شبکه جدا شود و میزبان را بیدار کند.

اسکن‌های اتصال‌پذیری

اسکن‌ها به‌طور خودکار براساس روشن بودن صفحه‌نمایش دستگاه، خاموش بودن صفحه‌نمایش و متصل بودن به Wi-Fi، یا خاموش بودن صفحه‌نمایش و متصل نبودن به Wi-Fi انجام می‌شوند.

صفحه‌نمایش روشن

وقتی صفحه‌نمایش روشن است، چارچوب تصمیم‌های اسکن را در فواصل زمانی افزایشی راه‌اندازی می‌کند. فاصله‌های تصمیم اسکن با رونهادهای config_wifiDisconnectedScanIntervalScheduleSec، config_wifiConnectedScanIntervalScheduleSec، و config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec پیکربندی می‌شوند (که آرایه‌هایی از اعداد صحیح هستند). به‌طور پیش‌فرض، اسکن‌ها بااستفاده از وقفه‌های نمایی ۲۰، ۴۰، ۸۰، و ۱۶۰ ثانیه انجام می‌شوند، و اسکن‌های بعدی احتمالاً در وقفه‌های ۱۶۰ ثانیه انجام می‌شوند (این‌ها مقادیر پیش‌فرض این رونهادها هستند).

هرگاه وضعیت صفحه‌نمایش تغییر کند، یعنی وقتی صفحه‌نمایش روشن یا خاموش شود، فاصله‌های اسکن عقب‌نشینی نمایی بازنشانی می‌شود و از ۲۰ ثانیه دوباره شروع می‌شود.

(Android 13 و بالاتر) اگر در زمان اجرا به فاصله‌های زمانی اسکن متفاوتی نیاز باشد، برنامه ممتاز OEM می‌تواند میانای برنامه‌سازی کاربردی WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) را فراخوانی کند تا برنامه زمانی اسکن صفحه روشن را به‌طور پویا تنظیم کند.

تصمیم‌گیری درباره اجرای اسکن یا رد کردن آن براساس این است که آیا اتصال شبکه فعلی به‌اندازه کافی خوب است که اسکن رد شود یا نه. اگر هریک از شرایط زیر برآورده شود، اتصال به‌اندازه کافی برای رد شدن از اسکن خوب است:

  • دستگاه به اتصال ثبت‌نام آنلاین (OSU) متصل است.
  • ترافیک کافی ازطریق اتصال جریان داشته باشد (آستانه‌های ترافیک را در ادامه ببینید).
  • «نشانگر قدرت سیگنال دریافتی» از آستانه موردنیاز «نشانگر قدرت سیگنال دریافتی» بیشتر باشد (در ادامه، آستانه‌های «نشانگر قدرت سیگنال دریافتی» را ببینید)، و انتخاب شبکه اخیراً انجام شده باشد (به‌طور پیش‌فرض ۱۰ دقیقه، اما بااستفاده از رونهاد config_wifiConnectedHighRssiScanMinimumWindowSizeSec قابل پیکربندی است)، و یا شبکه اعتبارسنجی شده باشد (به اینترنت متصل باشد) یا کاربر استفاده از آن را بدون دسترسی به اینترنت تأیید کرده باشد.

آستانه‌های RSSI و ترافیک عبارت‌اند از:

  • «شاخص قدرت سیگنال دریافتی» برای باند ۲٫۴ گیگاهرتز بیشتر از ۷۳- دسی‌بل میلی‌وات باشد، که با رونهاد config_wifi_framework_wifi_score_low_rssi_threshold_24GHz پیکربندی شده است، یا برای باندهای ۵ گیگاهرتز و ۶ گیگاهرتز بیشتر از ۷۰- دسی‌بل میلی‌وات باشد، که با رونهادهای config_wifi_framework_wifi_score_low_rssi_threshold_5GHz و config_wifiFrameworkScoreLowRssiThreshold6ghz پیکربندی شده است.
  • ترافیک (ارسال یا دریافت) بیشتر از ۱۶ بسته در ثانیه (pps) است که با config_wifiFrameworkMinPacketPerSecondActiveTraffic پیکربندی شده است.

وقتی دستگاه متصل باشد و صفحه‌نمایش روشن باشد، امتیازدهنده متصل به‌طور دوره‌ای کیفیت Wi-Fi را با بررسی نشان‌هایی مثل RSSI و تعداد بسته‌های منتقل‌شده پایش می‌کند. اگر کیفیت Wi-Fi بد تشخیص داده شود (همان‌طور که بعداً مشخص می‌شود) و دستگاه از ایستگاه‌های هم‌زمان دوگانه پشتیبانی کند، اسکن راه‌اندازی می‌شود. از هم‌پوشانی config_wifiLowConnectedScoreThresholdToTriggerScanForMbb می‌توان برای پیکربندی آستانه امتیازی که اسکن را راه‌اندازی می‌کند استفاده کرد. از رونهاد config_wifiLowConnectedScoreScanPeriodSeconds می‌توان برای پیکربندی دوره این اسکن‌ها استفاده کرد.

صفحه خاموش و به Wi-Fi متصل است

وقتی صفحه‌نمایش خاموش باشد و دستگاه به شبکه Wi-Fi متصل باشد، میان‌افزار (Wi-Fi SoC) اسکن‌های گردشی انجام می‌دهد. وقتی صفحه‌نمایش خاموش است، چارچوب هیچ اسکنی انجام نمی‌دهد.

صفحه‌نمایش خاموش است و به Wi-Fi متصل نیست (وضعیت قطع اتصال)

وقتی صفحه‌نمایش خاموش باشد و Wi-Fi قطع باشد، میان‌افزار برای شناسه‌های مجموعه خدمات (SSID) اسکن PNO انجام می‌دهد. چارچوب، میان‌افزار را با فهرستی از SSID-ها برای اسکن و فهرستی از کانال‌ها برای اسکن پیکربندی می‌کند. اگر «شناسه مجموعه خدمات» پیکربندی‌شده‌ای پیدا شود، میان‌افزار چارچوب را بیدار می‌کند.

این چارچوب همچنین فاصله زمانی را که میان‌افزار باید اسکن‌های PNO را انجام دهد پیکربندی می‌کند و از وضعیت تحرک دستگاه برای انتخاب فاصله‌های اسکن مختلف استفاده می‌کند. در حالت تحرک پایین (دستگاه ثابت است)، فاصله زمانی برای سه اسکن اول ۶۰ ثانیه (تحت کنترل رونهاد config_wifiStationaryPnoScanIntervalMillis) و برای اسکن‌های بعدی ۱۸۰ ثانیه (ضریب ثابت ۳ برابر رونهاد) است. در حالت جابه‌جایی زیاد، فاصله زمانی برای سه اسکن اول ۲۰ ثانیه است (که توسط config_wifiMovingPnoScanIntervalMillis overlay کنترل می‌شود)، و برای اسکن‌های بعدی ۶۰ ثانیه (ضریب ثابت ۳ برابری overlay) است.

نامزدهای شبکه

نامزدهای شبکه پیکربندی‌ها (WifiConfiguration) را برای شبکه‌هایی که شرایط زیر را دارند پیدا یا ایجاد می‌کنند:

  • «دردسترس» (براساس نتایج اسکن) یا شبکه متصل (که گاهی اوقات در نتایج اسکن ناپایدار وجود ندارد).
  • حداقل RSSI را داشته باشد. حداقل RSSI برای باند ۲٫۴ گیگاهرتز ۸۰- دسی‌بل میلی‌وات و برای باندهای ۵ گیگاهرتز و ۶ گیگاهرتز ۷۷- دسی‌بل میلی‌وات است که بااستفاده از رونهادهای config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz،‏ config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz، و config_wifiFrameworkScoreEntryRssiThreshold6ghz قابل پیکربندی است.
  • مسدود نشد، برای مثال، به‌دلیل ناموفق بودن اتصال‌های قبلی.
  • شبکه نشان نمی‌دهد که غیرقابل‌استفاده است (برای مثال، بااستفاده از MBO/OCE).
  • می‌تواند به استفاده از اطلاعات اعتباری دردسترس در دستگاه مرتبط شود.

از نامزدهای شبکه زیر استفاده می‌شود:

  • نامزد شبکه ذخیره‌شده: همه شبکه‌های ذخیره‌شده (ازجمله اشتراک‌های Passpoint ذخیره‌شده) را ارزیابی می‌کند.
  • پیشنهاددهنده شبکه پیشنهادی: همه شبکه‌های ارائه‌شده توسط برنامه‌ها را بااستفاده از میانای برنامه‌سازی کاربردی پیشنهاد (ازجمله اشتراک‌های پیشنهادی Passpoint) ارزیابی می‌کند.

گل‌زن‌های نامزد

امتیازدهندگان نامزدها هر نامزد را ارزیابی و برای او امتیازی تعیین می‌کنند. امتیاز برای ThroughputScorer (امتیازدهنده پیش‌فرض) براساس موارد زیر است:

  • امتیاز پایه براساس RSSI محاسبه می‌شود که در آن RSSI برای باند ۲٫۴ گیگاهرتز به ‎-۷۳ دسی‌بل میلی‌وات یا برای باندهای ۵ گیگاهرتز و ۶ گیگاهرتز به ‎-۷۰ دسی‌بل میلی‌وات محدود شده است (با هم‌پوشانی‌های config_wifi_framework_wifi_score_low_rssi_threshold_24GHz، config_wifi_framework_wifi_score_low_rssi_threshold_5GHz، و config_wifiFrameworkScoreLowRssiThreshold6ghz پیکربندی شده است).
  • افزایش امتیاز براساس تخمین توان عملیاتی محاسبه می‌شود که از فناوری، فرکانس کانال، پهنای باند، RSSI، شرایط کانال، حداکثر تعداد جریان‌های فضایی، و پارامترهای دیگر به‌دست می‌آید. بااستفاده از رونهادهای config_wifiFrameworkThroughputBonusNumerator و config_wifiFrameworkThroughputBonusDenominator می‌توان تقویت امتیاز را پیکربندی کرد و این تقویت به حداکثر مقدار مشخص‌شده بااستفاده از رونهاد config_wifiFrameworkThroughputBonusLimit محدود می‌شود.
  • شبکه نامزدی که اخیراً توسط کاربر یا برنامه‌ای انتخاب شده است، برای مدت‌زمانی که بااستفاده از config_wifiFrameworkLastSelectionMinutes قابل‌پیکربندی است، امتیاز زیادی دریافت می‌کند (برای آن مدت‌زمان، شبکه تأیید می‌شود که نسبت‌به شبکه‌هایی که کاربر انتخاب نکرده است انتخاب شود).
  • نامزدی که با شبکه فعلی مطابقت داشته باشد، تقویت امتیاز پیکربندی‌شده توسط config_wifiFrameworkCurrentNetworkBonusMin و config_wifiFrameworkCurrentNetworkBonusPercent رونهادها را دریافت می‌کند (براساس درصدی از RSSI و امتیاز مبتنی بر توان عملیاتی، تا حداقل پیکربندی‌پذیر، پاداش اضافی دریافت می‌کند).
  • شبکه ایمن نسبت به شبکه باز امتیاز بالاتری دارد. پاداش بااستفاده از رونهاد config_wifiFrameworkSecureNetworkBonus پیکربندی می‌شود.
  • شبکه بدون حجم محدود (رایگان) نسبت به شبکه با حجم محدود (پولی) امتیاز بالاتری دارد. پاداش بااستفاده از پوشش config_wifiFrameworkUnmeteredNetworkBonus پیکربندی می‌شود.
  • امتیاز شبکه ذخیره‌شده بالاتر از شبکه‌ای است که بااستفاده از Suggestion API پیشنهاد شده است. پاداش بااستفاده از رونهاد config_wifiFrameworkSavedNetworkBonus پیکربندی می‌شود.
  • شبکه‌های غیرقابل‌اعتماد (که می‌توانند به‌عنوان بخشی از Suggestion API درخواست شوند) امتیاز کمتری نسبت به هر شبکه دیگری دارند.
  • اگر دستگاه به شبکه دیگری که دسترسی به اینترنت دارد متصل شود، شبکه‌ای که قبلاً تشخیص داده شده بود اینترنت ندارد امتیاز ۰ می‌گیرد.

پاداش پیش‌فرض برای ذخیره‌شده درمقابل پیشنهادی و نامحدود درمقابل محدود (یعنی مقادیر هم‌پوشانی پیش‌فرض) ترتیب اولویت دقیقی برای ذخیره‌شده، پیشنهادی، محدود، و نامحدود ایجاد می‌کند:

  1. شبکه‌های ذخیره‌شده بدون محدودیت داده
  2. شبکه‌های غیرسنجشی پیشنهادی
  3. شبکه‌های محدودشده ذخیره‌شده
  4. شبکه‌های محدود پیشنهادی

این یعنی شبکه ذخیره‌شده غیرحجمی (رایگان) همیشه قبل‌از شبکه ذخیره‌شده حجمی (پولی) انتخاب می‌شود. امتیاز تشویقی که اخیراً انتخاب شده است (توسط کاربر یا برنامه) ممکن است این اولویت سخت‌گیرانه را ملغی کند.

این چارچوب می‌تواند چندین امتیازدهنده نامزد نصب‌شده داشته باشد اما در هر زمان فقط یک امتیازدهنده می‌تواند فعال باشد. از امتیازدهندگان دیگر می‌توان برای معیارها (برای بررسی الگوریتم‌های جایگزین) استفاده کرد. در Android 11، امتیازدهنده پیش‌فرض ThroughputScorer است.

مسدود کردن SSID و BSSID

چارچوب ممکن است SSID یا BSSID را مسدود کند، یعنی آن‌ها را به‌طور موقت یا دائم برای اتصال درنظر نخواهد گرفت.

مسدود کردن شناسه مجموعه سرویس‌های اصلی

مسدود کردن BSSID با نگهداری دو شمارنده خرابی، شمارنده خرابی پیوسته و شمارنده خرابی متوالی، برای هر نوع خرابی خاص کار می‌کند (برای فهرست انواع خرابی، به ادامه مراجعه کنید). وقتی خرابی رخ می‌دهد:

  • شمارنده برای نوع خطای مربوطه افزایش می‌یابد.
  • اگر آستانه خرابی برای آن نوع خرابی رسیده باشد:
    • BSSID مسدود شده است.
    • شمارشگر متوالی برای خطا افزایش می‌یابد.

مدت زمانی که یک BSSID مسدود می‌شود از مقدار پایه قابل‌تنظیمی شروع می‌شود. این مقدار پایه توسط هم‌پوشانی‌های config_wifiBssidBlocklistMonitorBaseBlockDurationMs یا config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs، بسته به RSSI، مشخص می‌شود. سپس مدت به‌صورت تصاعدی تا یک حد بالای قابل‌پیکربندی که توسط رونهاد config_wifiBssidBlocklistMonitorFailureStreakCap مشخص شده است، افزایش می‌یابد. اگر خرابی‌ها به‌طور مداوم در همان BSSID رخ دهد، مدت افزایش می‌یابد. مدت زمان، مدت زمان پایه است که به‌صورت نمایی براساس رشته شکست افزایش می‌یابد؛ برای مثال، رشته شکست ۲ به معنای ۴ برابر مدت زمان پایه است.

آستانه‌های مسدود کردن BSSID به دلیل خرابی بستگی دارد و هرکدام بااستفاده از رونهادها قابل‌سفارشی‌سازی است:

  • نقطه دسترسی ارتباط را بااستفاده از کد MBO/OCE رد می‌کند نمی‌تواند کد 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 متصل شده است بیش‌از ۳ ساعت پیش باشد)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • وقتی اعتبارسنجی شبکه موفقیت‌آمیز باشد، شمارنده‌ها برای کد خطای زیر بازنشانی می‌شوند:

    • REASON_NETWORK_VALIDATION_FAILURE
  • وقتی آماده‌سازی DHCP موفقیت‌آمیز باشد، شمارنده‌ها برای کد خطای زیر بازنشانی می‌شوند:

    • REASON_DHCP_FAILURE

مسدود کردن SSID

مسدود کردن SSID عملکردی مشابه مسدود کردن BSSID دارد. وقتی خطاهای اتصال از آن نوع در شبکه روی می‌دهد، شمارنده خطا برای هر نوع خطا در هر شبکه افزایش می‌یابد. وقتی تعداد خرابی از نوع خاصی از آستانه فراتر رود، براساس پیکربندی، SSID به‌طور دائمی یا موقت مسدود می‌شود. پیکربندی برای هر نوع خرابی در WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS کدبندی شده است و در جدول زیر خلاصه شده است.

* برای شبکه‌های موقتاً غیرفعال‌شده، مدت غیرفعال‌سازی به‌صورت پویا براساس تعداد خطاهای اتصال متوالی که در شبکه تجربه شده است تغییر می‌کند. پس‌از اینکه شبکه‌ای پنج بار متوالی نتواند متصل شود، هر بار که اتصال ناموفق باشد، مدت غیرفعال شدن دو برابر مدت قبلی خواهد بود. برای مثال، شبکه‌ای با پنج خرابی متوالی به‌مدت ۵ دقیقه غیرفعال می‌شود، سپس در خرابی ششم به‌مدت ۱۰ دقیقه، در خرابی هفتم به‌مدت ۲۰ دقیقه ، و به همین ترتیب تا حداکثر حد ۱۸ ساعت غیرفعال می‌شود.

کد خرابی شرح آستانه مدت غیرفعال‌سازی پایه* نوع ناتوانی
DISABLED_DHCP_FAILURE آماده‌سازی DHCP ناموفق بود 5 ‫۵ دقیقه موقت
DISABLED_NO_INTERNET_TEMPORARY اعتبارسنجی شبکه ناموفق بود اما کاربر اعلام می‌کند که می‌خواهد در آینده به این شبکه متصل بماند 1 ‏۱۰ دقیقه موقت
DISABLED_AUTHENTICATION_NO_CREDENTIALS درخواست‌کننده اعتبارنامه لازم برای اتصال به شبکه را ندارد 1 موجود نیست دائمی
DISABLED_NO_INTERNET_PERMANENT پیش‌فرض برای ناموفق بودن اعتبارسنجی شبکه 1 موجود نیست دائمی
DISABLED_BY_WIFI_MANAGER منسوخ و استفاده‌نشده 1 موجود نیست دائمی
DISABLED_BY_WRONG_PASSWORD گذرواژه نادرست است و این شبکه هرگز با موفقیت متصل نشده است 1 موجود نیست دائمی
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION خطای EAP که در آن سیم‌کارت مشترک نیست 1 موجود نیست دائمی
DISABLED_ASSOCIATION_REJECTION خطاهای رد کردن ارتباط 5 ‫۵ دقیقه موقت
DISABLED_AUTHENTICATION_FAILURE سایر موارد ناموفق بودن اصالت‌سنجی (یعنی گذرواژه اشتباه یا ناموفق بودن EAP نیست) 5 ‫۵ دقیقه موقت
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR خطای EAP مختص ارائه‌دهنده (خصوصی). 1 موجود نیست دائمی
DISABLED_NETWORK_NOT_FOUND درخواست‌کننده نتوانست شبکه‌ای را در نتایج اسکن پیدا کند که با شبکه درخواستی چارچوب برای اتصال (ازجمله قابلیت‌های شبکه) مطابقت داشته باشد. 2 ‫۵ دقیقه موقت
DISABLED_CONSECUTIVE_FAILURES شبکه پنج بار یا بیشتر به‌طور متوالی متصل نشد. نوع خرابی برای این خرابی‌ها شامل انواع خرابی‌های فهرست‌شده در این جدول می‌شود، اما به آن‌ها محدود نمی‌شود.
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 پشتیبانی می‌کند توضیح می‌دهد.

ساختن-پیش‌از-شکستن

اگر عملکرد اتصال قبل‌از قطع فعال باشد، دستگاه تلاش می‌کند قبل‌از قطع اتصال از شبکه قدیمی، به شبکه جدید متصل شود. جریان «اتصال قبل‌از قطع» از همان الگوریتم انتخاب شبکه استفاده می‌کند که تعویض شبکه «قطع قبل‌از اتصال» استفاده می‌کند (یعنی زمانی که دستگاه قبل‌از اتصال به شبکه جدید، از شبکه قدیمی قطع می‌شود). اگر الگوریتم انتخاب شبکه شبکه‌ای را انتخاب کند که نمی‌تواند بااستفاده از «اتصال قبل‌از قطع» به آن تغییر کند، دستگاه به‌طور خودکار به «قطع قبل‌از اتصال» برمی‌گردد.

اتصال اینترنت و محدودیت هم‌زمان

اگر عملکرد اتصال اینترنت و محدودشده هم‌زمان فعال باشد، دستگاه می‌تواند به شبکه Wi-Fi محدودشده ثانویه‌ای متصل شود که فقط برای برنامه‌های منتخب پیکربندی‌شده توسط سازنده دستگاه دردسترس است. دستورالعمل‌های مربوط به پیکربندی این ویژگی برای سازندگان دستگاه در اتصال اینترنت و محدودیت هم‌زمان آمده است.

وقتی الگوریتم انتخاب شبکه نتایج اسکن منطبق با پیشنهاد خصوصی یا پولی سازنده اصلی محصول را تشخیص دهد، به‌طور خودکار به‌عنوان شبکه دوم به آن متصل می‌شود. انتخاب شبکه برای شبکه Wi-Fi اصلی (که اتصال اینترنت را برای برنامه‌های معمولی فراهم می‌کند) به‌طور معمول به‌صورت موازی انجام می‌شود.

پرسشگان

  1. آیا شبکه‌های ایمن همیشه نسبت‌به شبکه‌های باز اولویت دارند؟

    نه. ذخیره‌شده دربرابر پیشنهادی و با حجم محدود دربرابر بدون حجم محدود دسته‌های اصلی هستند که شبکه‌ها در آن‌ها ارزیابی می‌شوند. در هر دسته، شبکه‌های امن نسبت به شبکه‌های عمومی اولویت دارند، اما کیفیت اتصال وزن بسیار بیشتری دارد.

    دلیل آن این است که امنیت واقعی داده‌های کاربر توسط رمزگذاری سرتاسر (برای مثال، TLS) ارائه می‌شود. شبکه‌های امن فقط بخش اول ارتباط را رمزگذاری می‌کنند و حتی در شبکه‌هایی با کلیدهای ازپیش‌هم‌رسانی‌شده، حریم خصوصی چندانی ارائه نمی‌دهند.

  2. چرا شبکه‌های ذخیره‌شده نسبت‌به شبکه‌های پیشنهادی در اولویت قرار دارند؟

    شبکه‌های رایگان (بدون حجم محدود) ذخیره‌شده بر شبکه‌های رایگان پیشنهادی اولویت دارند، و شبکه‌های با حجم محدود ذخیره‌شده بر شبکه‌های با حجم محدود پیشنهادی اولویت دارند.

    شبکه‌های ذخیره‌شده نسبت به شبکه‌های پیشنهادی اولویت دارند زیرا این شبکه‌ها شبکه‌هایی هستند که کاربر به‌طور صریح به دستگاه اضافه کرده است. این یعنی درصورت امکان، ترجیح می‌دهید به این شبکه‌ها متصل شوید.

    توجه داشته باشید که کاربران می‌توانند عملکرد اتصال خودکار را برای هریک از شبکه‌های ذخیره‌شده غیرفعال کنند؛ یعنی می‌توانند مشخص کنند که این شبکه‌ها فقط باید به‌صورت دستی استفاده شوند و دستگاه نباید آن‌ها را به‌طور خودکار درنظر بگیرد.

  3. آیا می‌توانم ترتیب اولویت سخت‌گیرانه را تغییر دهم یا آن را به‌طور کامل حذف کنم؟

    می‌توانید تصمیمات انتخاب شبکه را با اصلاح کردن هم‌پوشانی‌های پاداش فهرست‌شده در بخش‌های قبلی اصلاح کنید. بااین‌حال، تغییر مقادیر پیش‌فرض توصیه نمی‌شود، زیرا این مقادیر پس‌از بررسی دقیق چندین مورد استفاده انتخاب شده‌اند.