این صفحه الگوریتمها و رویههای مورد استفاده در اندروید ۱۲ برای انتخاب و جابجایی بین شبکههای وایفای را شرح میدهد. اندروید بهطور مداوم کیفیت شبکه متصل و کیفیت شبکههای موجود را ارزیابی میکند.
طول عمر یک اتصال خودکار
این بخش نحوه ارزیابی و اتصال دستگاههای اندروید به شبکههای وایفای موجود را شرح میدهد.
دستگاه بسته به روشن یا خاموش بودن صفحه نمایش، به یکی از روشهای زیر شبکههای موجود را اسکن میکند.
- صفحه نمایش روشن (متصل): زیرسیستم اتصال اندروید مرتباً ارزیابی میکند که آیا اتصال فعلی به اندازه کافی خوب است تا از اسکن صرف نظر شود (همانطور که در اسکنهای روی صفحه تعریف شده است). اگر اتصال به اندازه کافی خوب نباشد که از اسکن صرف نظر شود، زیرسیستم اتصال اسکن را برای شناسایی شبکههای موجود آغاز میکند. این اسکنها همچنین میتوانند توسط سایر اجزای سیستم، مانند سیستم مکان یا یک برنامه (از جمله برنامه تنظیمات) آغاز شوند.
- صفحه نمایش روشن (قطع اتصال): زیرسیستم اتصال اندروید، اسکنهای دورهای را طبق یک برنامهی زمانی بازگشت نمایی انجام میدهد. این ماژول تمام نتایج اسکن دریافتی را ارزیابی کرده و سعی میکند بهترین شبکه را برای اتصال انتخاب کند.
- صفحه نمایش خاموش (قطع اتصال): پردازنده میزبان، به محض خاموش شدن صفحه نمایش، با استفاده از اسکنهای «تخلیه بار شبکه ترجیحی» (PNO)، میانافزار را با فهرستی از شبکههای ترجیحی برنامهریزی میکند. در صورت یافتن هر یک از شبکههای ترجیحی، میانافزار میزبان را بیدار میکند. AOSP فرض میکند که PNO در دستگاه پشتیبانی میشود.
متد
WifiManager#allowAutojoinGlobal(boolean)میتواند برای غیرفعال کردن اتصالات خودکار استفاده شود. این یک API ممتاز است که تولیدکنندگان دستگاه میتوانند در شرایط محدود (به عنوان مثال، یک دستگاه غیرموبایل و از پیش پیکربندی شده) از آن استفاده کنند.اگر دستگاه متصل باشد و پوشش
config_wifi_framework_enable_associated_network_selectionرویfalseتنظیم شده باشد، هیچ اسکن اتصالی انجام نمیشود و نتایج اسکن باعث انتخاب شبکه نمیشوند. این تنظیم هنگام قطع اتصال دستگاه هیچ تاثیری ندارد، به این معنی که اسکن اتصال و انتخاب شبکه همچنان رخ میدهد.نتایج اسکن ارزیابی میشوند.
اگر دستگاه به یک شبکه Wi-Fi متصل باشد، چارچوب ارزیابی میکند که آیا شبکه فعلی به اندازه کافی خوب است که از انتخاب شبکه صرف نظر کند یا خیر .
یک شبکه در صورتی به اندازه کافی خوب تعریف میشود که از انتخاب شبکه صرف نظر کند که هر یک از شرایط زیر را داشته باشد:
- کمتر از 10 ثانیه از آخرین انتخاب شبکه گذشته است.
- کاربر اخیراً به صورت دستی به شبکه متصل شده است (که recently با استفاده از پوشش
config_wifiSufficientDurationAfterUserSelectionMillisecondsقابل تنظیم است). - دستگاه به یک اتصال ثبت نام آنلاین (OSU) متصل است.
تمام الزامات زیر رعایت شده است:
- نشانگر قدرت سیگنال دریافتی (RSSI) بزرگتر از آستانه RSSI مورد نیاز است یا ترافیک کافی از طریق اتصال در جریان است (برای RSSI و آستانههای ترافیک به اسکنهای روی صفحه مراجعه کنید).
- شبکه اعتبارسنجی شده است (به اینترنت متصل است) یا برای استفاده بدون دسترسی به اینترنت توسط کاربر تأیید شده است.
- شبکه بدون محدودیت حجمی است.
اگر شبکه به اندازه کافی خوب باشد که از انتخاب شبکه صرف نظر شود ، اقدام دیگری انجام نمیشود.
اگر شبکه وایفای متصل به اندازه کافی خوب نباشد، یا اگر دستگاه به شبکهای متصل نباشد، این چارچوب، پیشنهاددهندگان شبکه را فرا میخواند تا بر اساس نتایج اسکن فیلتر شده، فهرستی از شبکههای وایفای کاندید برای اتصال ایجاد کنند. پیشنهاددهندگان شبکه، پیکربندیهای وایفای موجود را پیدا میکنند یا پیکربندیهای جدیدی برای شبکههای کاندید ایجاد میکنند.
نتایج اسکن فیلتر میشوند تا BSSIDهایی که RSSI کمتر از RSSI ورودی دارند (با استفاده از پوششهای
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz،config_wifi_framework_wifi_score_entry_rssi_threshold_5GHzوconfig_wifiFrameworkScoreEntryRssiThreshold6ghzقابل تنظیم هستند) حذف شوند. علاوه بر این، BSSIDهای مسدود شده فیلتر میشوند. BSSIDها را میتوان بر اساس خرابیهای مکرر اتصال، قطع مکرر اتصال و درخواستهای صریح از AP برای عدم تلاش برای اتصال برای مدت زمان مشخصی (MBO-OCE) مسدود کرد. مسدود کردن BSSID در بخش SSID و مسدود کردن BSSID توضیح داده شده است.وقتی دستگاه به سرعت در حال حرکت است، نتایج اسکن به صورت اختیاری بیشتر فیلتر میشوند تا BSSIDهایی که RSSI آنها به سرعت تغییر میکند (نشانهای از اینکه آنها همراه با دستگاه حرکت نمیکنند) حذف شوند. این بهینهسازی با استفاده از
config_wifiHighMovementNetworkSelectionOptimizationEnabled(فعال یا غیرفعال کردن بهینهسازی) و همپوشانیهایconfig_wifiHighMovementNetworkSelectionOptimizationScanDelayMsوconfig_wifiHighMovementNetworkSelectionOptimizationRssiDeltaقابل تنظیم است که الزام پایداری در نتایج اسکن را پیکربندی میکنند (تغییر RSSI در نتایج اسکن به اندازه کافی از نظر زمانی جدا باشد).
این چارچوب ، امتیازدهندهی کاندید را اجرا میکند تا برای هر کاندید SSID امتیازی ایجاد کند. کاندیدهای SSID میتوانند شامل چندین کاندید BSSID (تولید شده توسط نامزدکنندگان شبکه) باشند. کاندیدی که بالاترین امتیاز را داشته باشد، کاندید برنده است.
این چارچوب، الگوریتم انتخاب اتصال کاربر را اجرا میکند که ممکن است به جای استفاده از کاندیدای برنده از امتیازدهنده کاندیدا، یک شبکه انتخاب شده توسط کاربر را به عنوان کاندیدای برنده جدید انتخاب کند.
این چارچوب تعیین میکند که آیا کاندیدای برنده با شبکه متصل مطابقت دارد یا خیر. برای اینکه تطابق در نظر گرفته شود، باید یکی از موارد زیر را داشته باشد:
- کاندیدای برنده و شبکه وایفای متصل، BSSID یکسانی دارند.
- اگر رومینگ میانافزار (از جمله قابلیت مسدود کردن BSSID) در دسترس باشد، نامزد برنده و شبکه متصل، SSID و نوع امنیتی یکسانی دارند.
اگر کاندید برنده با شبکه متصل مطابقت داشته باشد، هیچ اقدام دیگری انجام نمیشود. اگر کاندید برنده با شبکه مطابقت نداشته باشد، دستگاه به کاندید برنده متصل میشود.
ارزیابی یک شبکه متصل
چارچوب یا میانافزار اندروید به صورت دورهای کیفیت شبکه متصل را ارزیابی میکند. این بخش نحوه ارزیابی شبکه متصل را هنگام روشن یا خاموش بودن صفحه نمایش شرح میدهد.
این ارزیابی علاوه بر انتخاب شبکه که در بخشهای قبلی مورد بحث قرار گرفت، انجام میشود.
صفحه نمایش روشن
چارچوب اندروید شبکه متصل را به روش زیر ارزیابی میکند:
سرویس وایفای هر ۳ ثانیه آمار RSSI و لایه پیوند را بررسی میکند (با استفاده از پوشش
config_wifiPollRssiIntervalMillisecondsقابل تنظیم است).اگر تنظیم پویای فاصله زمانی با استفاده از پوشش
config_wifiAdjustPollRssiIntervalEnabledفعال باشد، فاصله زمانی رایگیری به صورت پویا بر اساس وضعیت تحرک دستگاه و RSSI تغییر میکند.- وقتی دستگاه ثابت باشد و RSSI بیشتر از -۶۸ dBm باشد (که توسط لایههای
config_wifiClientRssiMonitorThresholdDbmوconfig_wifiClientRssiMonitorHysteresisDbپیکربندی میشود)، فاصلهی رایگیری به ۶ ثانیه افزایش مییابد (که توسط لایهیconfig_wifiPollRssiLongIntervalMillisecondsپیکربندی میشود). - وقتی دستگاه ثابت نباشد یا RSSI کمتر از -73 dBm باشد (که توسط
config_wifiClientRssiMonitorThresholdDbmپیکربندی شده است)، فاصلهی نظرسنجی به 3 ثانیه کاهش مییابد (که توسط پوششconfig_wifiPollRssiIntervalMillisecondsپیکربندی شده است).
- وقتی دستگاه ثابت باشد و RSSI بیشتر از -۶۸ dBm باشد (که توسط لایههای
سرویس وایفای، امتیاز اتصال را بر اساس RSSI و آمار لایه پیوند محاسبه میکند.
سرویس وایفای امتیاز را به سرویس اتصال منتقل میکند، که از این امتیاز برای تعیین اتصال به یک شبکه وایفای یا نوع دیگری از شبکه موجود، مانند شبکه تلفن همراه، استفاده میکند.
صفحه نمایش خاموش
این چارچوب ارزیابی را روی شبکه متصل آغاز نمیکند، اما اگر اسکنها توسط سایر اجزا (مثلاً سرویسهای موقعیت مکانی) آغاز شوند، ممکن است فرآیند انتخاب شبکه همچنان رخ دهد. میانافزار کیفیت شبکه را ارزیابی میکند و اگر کیفیت شبکه بد باشد، میانافزار ممکن است در شبکه پرسه بزند یا (در نهایت) از شبکه جدا شود و میزبان را بیدار کند.
اسکنهای اتصال
اسکنها به طور خودکار بر اساس اینکه آیا صفحه نمایش دستگاه روشن است، صفحه نمایش خاموش است و به Wi-Fi متصل است، یا صفحه نمایش خاموش است و به Wi-Fi متصل نیست، انجام میشوند.
صفحه نمایش روشن
این چارچوب، هنگام روشن شدن صفحه نمایش، تصمیمات اسکن را در فواصل زمانی افزایشی آغاز میکند. فواصل تصمیمگیری اسکن با همپوشانیهای config_wifiDisconnectedScanIntervalScheduleSec ، config_wifiConnectedScanIntervalScheduleSec و config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec (که آرایههایی از اعداد صحیح هستند) پیکربندی شدهاند. به طور پیشفرض، اسکنها با استفاده از فواصل زمانی بازگشت نمایی 20، 40، 80 و 160 ثانیهای انجام میشوند و اسکنهای بعدی احتمالاً در فواصل زمانی 160 ثانیهای انجام میشوند (اینها مقادیر پیشفرض این همپوشانیها هستند).
فواصل اسکن برگشتی نمایی، هر زمان که وضعیت صفحه نمایش تغییر کند، یعنی وقتی صفحه روشن یا خاموش میشود، در 20 ثانیه مجدداً راهاندازی میشوند.
(اندروید ۱۳+) اگر در زمان اجرا به فواصل اسکن متفاوتی نیاز باشد، یک برنامهی دارای مجوز OEM میتواند API WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) را فراخوانی کند تا برنامهی اسکن هنگام روشن بودن صفحه نمایش را به صورت پویا تنظیم کند.
تصمیم گیری در مورد اجرا یا رد کردن اسکن به این بستگی دارد که آیا اتصال شبکه فعلی برای رد کردن اسکن به اندازه کافی خوب است یا خیر. اتصالی برای رد کردن اسکن به اندازه کافی خوب است که هر یک از شرایط زیر را داشته باشد:
- دستگاه به یک اتصال ثبت نام آنلاین (OSU) متصل است.
- ترافیک کافی از طریق اتصال در جریان است (بعداً به آستانههای ترافیک مراجعه کنید).
- RSSI بزرگتر از آستانه RSSI مورد نیاز است (به آستانههای RSSI بعداً مراجعه کنید) و انتخاب شبکه اخیراً انجام شده است (به طور پیشفرض ۱۰ دقیقه طول میکشد، اما میتوان آن را با استفاده از پوشش
config_wifiConnectedHighRssiScanMinimumWindowSizeSecپیکربندی کرد) و شبکه یا اعتبارسنجی شده است (به اینترنت متصل است) یا برای استفاده بدون دسترسی به اینترنت توسط کاربر تأیید شده است.
RSSI و آستانههای ترافیک عبارتند از:
- RSSI برای باند ۲.۴ گیگاهرتز که با لایهی
config_wifi_framework_wifi_score_low_rssi_threshold_24GHzپیکربندی شده است، بیشتر از -۷۳ dBm است، یا برای باندهای ۵ گیگاهرتز و ۶ گیگاهرتز که با لایههایconfig_wifi_framework_wifi_score_low_rssi_threshold_5GHzوconfig_wifiFrameworkScoreLowRssiThreshold6ghzپیکربندی شدهاند، -۷۰ dBm است. - ترافیک (ارسال یا دریافت) بیش از ۱۶ بسته در ثانیه (pps) است که با پوشش
config_wifiFrameworkMinPacketPerSecondActiveTrafficپیکربندی شده است.
وقتی دستگاه متصل است و صفحه نمایش روشن است، یک امتیازدهنده متصل به صورت دورهای کیفیت Wi-Fi را با بررسی سیگنالهایی مانند RSSI و تعداد بستههای منتقل شده رصد میکند. اگر کیفیت Wi-Fi بد تشخیص داده شود (همانطور که بعداً مشخص میشود) و دستگاه از دو ایستگاه همزمان پشتیبانی میکند، اسکن آغاز میشود. پوشش config_wifiLowConnectedScoreThresholdToTriggerScanForMbb میتواند برای پیکربندی آستانه امتیازی که اسکن را آغاز میکند، استفاده شود. پوشش config_wifiLowConnectedScoreScanPeriodSeconds میتواند برای پیکربندی دوره این اسکنها استفاده شود.
صفحه نمایش خاموش و به وای فای متصل است
وقتی صفحه نمایش خاموش است و دستگاه به یک شبکه Wi-Fi متصل است، میانافزار (Wi-Fi SoC) اسکنهای رومینگ را انجام میدهد. این چارچوب وقتی صفحه نمایش خاموش است هیچ اسکنی انجام نمیدهد.
صفحه نمایش خاموش است و به وای فای متصل نیست (وضعیت قطع اتصال)
وقتی صفحه نمایش خاموش است و وایفای قطع شده است، فریمور اسکنهای PNO را برای SSIDها انجام میدهد. فریمورک، فریمور را با فهرستی از SSIDها برای اسکن و فهرستی از کانالهایی که باید اسکن شوند، پیکربندی میکند. اگر SSID پیکربندیشدهای پیدا شود، فریمور فریمورک را بیدار میکند.
این چارچوب همچنین فاصله زمانی که میانافزار باید اسکنهای PNO را انجام دهد، با استفاده از وضعیت تحرک دستگاه برای انتخاب فواصل اسکن مختلف، پیکربندی میکند. در حالت تحرک کم (دستگاه ثابت است)، فاصله زمانی برای سه اسکن اول ۶۰ ثانیه (کنترل شده توسط پوشش config_wifiStationaryPnoScanIntervalMillis ) و برای اسکنهای بعدی ۱۸۰ ثانیه (ضریب ثابت ۳x پوشش) است. در حالت تحرک بالا، فاصله زمانی برای سه اسکن اول ۲۰ ثانیه (کنترل شده توسط پوشش config_wifiMovingPnoScanIntervalMillis ) و برای اسکنهای بعدی ۶۰ ثانیه (ضریب ثابت ۳x پوشش) است.
نامزدکنندگان شبکه
نامگذاران شبکه، پیکربندیهایی ( WifiConfiguration ) را برای شبکههایی که عبارتند از:
- موجود (بر اساس نتایج اسکن) یا شبکه متصل (که گاهی اوقات در نتایج اسکن ناقص وجود ندارد).
- حداقل RSSI داشته باشید. حداقل RSSI برای باند ۲.۴ گیگاهرتز -۸۰ dBm و برای باندهای ۵ گیگاهرتز و ۶ گیگاهرتز -۷۷ dBm است که با استفاده از همپوشانیهای
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz،config_wifi_framework_wifi_score_entry_rssi_threshold_5GHzوconfig_wifiFrameworkScoreEntryRssiThreshold6ghzقابل تنظیم است. - مثلاً به دلیل خرابیهای اتصال قبلی مسدود نشده باشد.
- شبکه نشان نمیدهد که غیرقابل استفاده است (برای مثال، با استفاده از MBO/OCE).
- میتواند با استفاده از اعتبارنامههای موجود در دستگاه مرتبط باشد.
از نامگذارهای شبکه زیر استفاده میشود:
- نامگذار شبکه ذخیره شده: تمام شبکههای ذخیره شده (از جمله اشتراکهای Passpoint ذخیره شده) را ارزیابی میکند.
- نامزدکننده شبکه پیشنهادی: تمام شبکههای ارائه شده توسط برنامهها را با استفاده از API پیشنهادی (از جمله اشتراکهای Passpoint پیشنهادی) ارزیابی میکند.
گلزنان نامزدها
امتیازدهندگان کاندیداها، هر کاندیدا را ارزیابی و امتیازی ارائه میدهند. امتیاز ThroughputScorer (امتیازدهنده پیشفرض) بر اساس موارد زیر است:
- یک امتیاز پایه بر اساس RSSI محاسبه میشود که در آن RSSI برای باند ۲.۴ گیگاهرتز در -۷۳ dBm یا برای باندهای ۵ گیگاهرتز و ۶ گیگاهرتز در -۷۰ dBm محدود شده است (با پوششهای
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پیکربندی میشود. - شبکههای غیرقابل اعتماد (که میتوانند به عنوان بخشی از API پیشنهاد درخواست شوند) امتیاز کمتری نسبت به سایر شبکهها دریافت میکنند.
- شبکهای که قبلاً به دلیل عدم دسترسی به اینترنت شناسایی شده بود، اگر دستگاه به شبکه دیگری که به اینترنت دسترسی دارد متصل شود، امتیاز ۰ میگیرد.
امتیاز پیشفرض برای ذخیرهشده در مقابل پیشنهاد و بدون اندازهگیری در مقابل اندازهگیریشده (یعنی مقادیر پیشفرض همپوشانی) یک ترتیب اولویت دقیق برای ذخیرهشده، پیشنهادی، اندازهگیریشده و بدون اندازهگیری ایجاد میکند:
- شبکههای ذخیرهشدهی بدون محدودیت حجمی
- شبکههای پیشنهادی بدون محدودیت حجمی
- شبکههای اندازهگیریشده ذخیرهشده
- شبکههای پیشنهادی با محدودیت اندازه
این یعنی یک شبکه ذخیره شده بدون محدودیت زمانی (رایگان) همیشه قبل از یک شبکه ذخیره شده با محدودیت زمانی (پولی) انتخاب میشود. امتیاز اضافی که اخیراً (توسط کاربر یا برنامه) انتخاب شده است، ممکن است این اولویت سختگیرانه را نادیده بگیرد.
این چارچوب میتواند چندین امتیازدهنده کاندید نصب شده داشته باشد، اما فقط یکی از آنها میتواند در یک زمان فعال باشد. امتیازدهندههای دیگر میتوانند برای معیارها (برای بررسی الگوریتمهای جایگزین) استفاده شوند. در اندروید ۱۱، امتیازدهنده پیشفرض ThroughputScorer است.
مسدود کردن SSID و BSSID
این چارچوب ممکن است SSIDها یا BSSIDها را مسدود کند، به این معنی که آنها را برای اتصالات، چه به طور موقت و چه به طور دائم، در نظر نمیگیرد.
مسدود کردن BSSID
مسدود کردن BSSID با نگه داشتن دو شمارنده خطا، یک شمارنده خطای پیوسته و یک شمارنده خطای رگه، برای هر نوع خطای خاص کار میکند (برای فهرستی از انواع خطا، بعداً مراجعه کنید). وقتی یک خطا رخ میدهد:
- شمارنده مربوط به نوع خرابی مربوطه افزایش مییابد.
- اگر آستانه خرابی برای آن نوع خرابی حاصل شود:
- BSSID مسدود شده است.
- شمارندهی رگه برای خرابی افزایش مییابد.
مدت زمانی که یک BSSID مسدود میشود از یک مقدار پایه قابل تنظیم شروع میشود. این مقدار پایه توسط همپوشانیهای config_wifiBssidBlocklistMonitorBaseBlockDurationMs یا config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs ، بسته به RSSI، مشخص میشود. سپس مدت زمان به صورت نمایی تا یک حد بالایی قابل تنظیم که توسط همپوشانی config_wifiBssidBlocklistMonitorFailureStreakCap مشخص میشود، افزایش مییابد. اگر خرابیها به طور مداوم در همان BSSID رخ دهند، مدت زمان افزایش مییابد. مدت زمان، مدت زمان پایه است که به صورت نمایی توسط ردیف خرابی افزایش مییابد. به عنوان مثال، ردیف خرابی ۲ به معنای ۴ برابر شدن مدت زمان بلوک پایه است.
آستانههای مسدود کردن BSSID به دلیل خرابی بستگی دارد و هر کدام با استفاده از پوششها قابل تنظیم هستند:
- نقطه دسترسی (AP) ارتباط با استفاده از 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 زمانی از لیست سیاه پاک میشود که:
- وقتی وایفای فعال باشد، تمام BSSIDها از لیست سیاه حذف میشوند.
- وقتی کاربری در انتخابگر وایفای روی یک شبکه ضربه میزند، تمام BSSIDهای شبکه انتخابشده توسط کاربر از لیست مسدود شده حذف میشوند.
- وقتی مدت زمان بلاک (timeout) فرا برسد، 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 | ۵ | ۵ دقیقه | موقت |
DISABLED_NO_INTERNET_TEMPORARY | اعتبارسنجی شبکه ناموفق بود اما کاربر اعلام میکند که میخواهد در آینده به این شبکه متصل بماند | ۱ | ۱۰ دقیقه | موقت |
DISABLED_AUTHENTICATION_NO_CREDENTIALS | متقاضی فاقد اعتبارنامه برای اتصال به شبکه است | ۱ | ناموجود | دائمی |
DISABLED_NO_INTERNET_PERMANENT | پیشفرض برای خطای اعتبارسنجی شبکه | ۱ | ناموجود | دائمی |
DISABLED_BY_WIFI_MANAGER | منسوخ و بلااستفاده | ۱ | ناموجود | دائمی |
DISABLED_BY_WRONG_PASSWORD | رمز عبور نادرست است و این شبکه هرگز با موفقیت به آن متصل نشده است | ۱ | ناموجود | دائمی |
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION | خرابی EAP در جایی که سیم کارت مشترک نیست | ۱ | ناموجود | دائمی |
DISABLED_ASSOCIATION_REJECTION | شکستهای رد ارتباط | ۵ | ۵ دقیقه | موقت |
DISABLED_AUTHENTICATION_FAILURE | سایر خطاهای احراز هویت (یعنی نه رمز عبور اشتباه یا خطای EAP) | ۵ | ۵ دقیقه | موقت |
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR | خرابی EAP (خصوصی) مختص ارائه دهنده. | ۱ | ناموجود | دائمی |
DISABLED_NETWORK_NOT_FOUND | درخواستکننده نتوانست شبکهای را در نتایج اسکن پیدا کند که با شبکه درخواستشده توسط چارچوب برای اتصال (از جمله قابلیتهای شبکه) مطابقت داشته باشد. | ۲ | ۵ دقیقه | موقت |
DISABLED_CONSECUTIVE_FAILURES | شبکه پنج بار یا بیشتر متوالی نتوانست متصل شود. نوع خرابی برای این خرابیها شامل انواع خرابی ذکر شده در این جدول میشود، اما محدود به آنها نیست. | ۵ | ۵ دقیقه | موقت |
یک شبکه موقتاً غیرفعال، زمانی دوباره فعال میشود که:
- مدت زمان غیرفعالسازی گذشته است.
- کاربر به صورت دستی شبکه مورد نظر برای اتصال را انتخاب میکند.
- کاربر Wi-Fi را فعال یا غیرفعال میکند.
- سیستم دوباره راه اندازی می شود.
- شبکه در RSSI بسیار پایین غیرفعال شد، اما بعداً شبکه دوباره در RSSI متوسط یا بالاتر شناسایی شد.
یک شبکه که به طور دائم غیرفعال شده است، زمانی دوباره فعال میشود که:
- کاربر به صورت دستی شبکه مورد نظر برای اتصال را انتخاب میکند.
شمارندههای خطا برای یک شبکه زمانی ریست میشوند که:
- شبکه حذف میشود.
- دستگاه با موفقیت به شبکه متصل شده است.
- شبکه پس از پایان مدت زمان غیرفعال بودن، دوباره فعال شده است.
- کاربر به صورت دستی شبکه مورد نظر برای اتصال را انتخاب میکند.
- سیستم دوباره راه اندازی می شود.
کارتهای امتیاز
کارتهای امتیاز که در اندروید ۱۰ معرفی شدهاند، آمار مربوط به BSSIDها را روی دستگاه ثبت میکنند. کارتهای امتیاز با استفاده از سرویس IpMemoryStore ذخیره میشوند.
کارتهای امتیازدهی در انتخاب شبکه اندروید ۱۱ استفاده نمیشوند.
انتخاب اتصال کاربر
اندروید یک الگوریتم انتخاب اتصال کاربر دارد که به فرآیند انتخاب اجازه میدهد شبکههای وایفای را که کاربر صریحاً به آنها متصل شده است، مثلاً یک شبکه خانگی، ترجیح دهد. کاربران ممکن است چنین شبکههایی را به شبکههای عمومی ترجیح دهند، حتی زمانی که عملکرد آنها پایینتر از یک شبکه عمومی باشد، زیرا آنها خدمات اضافی مانند امکان کنترل دستگاههای خانگی را ارائه میدهند.
ترجیح کاربر برای یک شبکه با علامتگذاری تمام پیکربندیهای Wi-Fi قابل مشاهده و قدرت سیگنال آنها در زمان انتخاب شبکه توسط کاربر، ثبت میشود. اگر یکی از پیکربندیهای Wi-Fi علامتگذاری شده در طول فرآیند انتخاب خودکار انتخاب شود و شبکه انتخابی کاربر در دسترس باشد، الگوریتم انتخاب اتصال کاربر در صورت برآورده شدن شرایط زیر، انتخاب را با شبکه انتخابی کاربر لغو میکند:
- شبکه انتخاب اتصال کاربر، آخرین باری که استفاده شد، به اینترنت دسترسی داشت.
- گزینه اتصال کاربر، قدرت سیگنالی دارد که بدتر از زمانی که در ابتدا انتخاب شده بود، نیست و حاشیه خطا نیز دارد. این حاشیه خطا را میتوان با استفاده از پوشش
config_wifiEstimateRssiErrorMarginDbپیکربندی کرد.
شبکه انتخاب اتصال کاربر پس از راهاندازی مجدد همچنان پابرجا میماند. انتخاب اتصال کاربر برای شبکههای ذخیرهشده، شبکههای Passpoint و شبکههای پیشنهادی کار میکند.
دو ایستگاه همزمان
این بخش انتخاب شبکه Wi-Fi را زمانی که دستگاه از اتصال همزمان به دو شبکه Wi-Fi پشتیبانی میکند، شرح میدهد.
قبل از شکست، بسازید
اگر عملکرد make-before-break فعال باشد، دستگاه قبل از قطع ارتباط از شبکه قدیمی، سعی میکند به شبکه جدید متصل شود. جریان make-before-break از همان الگوریتم انتخاب شبکهای استفاده میکند که برای سوئیچینگ شبکه break-before-make استفاده میشود (که زمانی است که دستگاه قبل از اتصال به شبکه جدید، از شبکه قدیمی جدا میشود). اگر الگوریتم انتخاب شبکه، شبکهای را انتخاب کند که نتوان آن را با استفاده از make-before-break سوئیچ کرد، دستگاه به طور خودکار به break-before-make برمیگردد.
اتصال همزمان محدود و اینترنت
اگر عملکرد اتصال همزمان محدود و اینترنت فعال باشد، دستگاه میتواند به یک شبکه Wi-Fi ثانویه محدود متصل شود که فقط برای برنامههای منتخب پیکربندی شده توسط سازنده دستگاه در دسترس است. دستورالعملهای مربوط به سازندگان دستگاه برای پیکربندی این مورد در بخش اتصال همزمان محدود و اینترنت آمده است.
وقتی الگوریتم انتخاب شبکه، نتایج اسکن را با پیشنهاد پولی یا خصوصی OEM مطابقت دهد، به طور خودکار به عنوان شبکه دوم به آن متصل میشود. انتخاب شبکه برای شبکه وایفای اصلی (که اتصال اینترنت را برای برنامههای معمولی فراهم میکند) معمولاً به صورت موازی انجام میشود.
سوالات متداول (FAQ)
آیا شبکههای امن همیشه نسبت به شبکههای باز اولویت دارند؟
خیر. شبکهها بر اساس معیارهای ذخیرهشده در مقابل پیشنهادی و اندازهگیریشده در مقابل اندازهگیرینشده، دستهبندیهای اصلی ارزیابی شبکهها هستند. در هر دستهبندی، شبکههای امن نسبت به شبکههای باز اولویت دارند، اما کیفیت اتصال اهمیت بسیار بیشتری دارد.
دلیل این امر این است که امنیت واقعی دادههای کاربر توسط رمزگذاری سرتاسری (مثلاً TLS) تأمین میشود. شبکههای امن فقط مرحله اول ارتباط را رمزگذاری میکنند و حتی در آن صورت، برای شبکههایی با کلیدهای از پیش اشتراکی، حریم خصوصی زیادی ارائه نمیدهند.
چرا شبکههای ذخیرهشده نسبت به شبکههای پیشنهادی در اولویت قرار دارند؟
شبکههای رایگان (بدون محدودیت) ذخیرهشده نسبت به شبکههای رایگان پیشنهادی اولویت دارند و شبکههای محدودیتدار ذخیرهشده نسبت به شبکههای محدودیتدار پیشنهادی اولویت دارند.
شبکههای ذخیرهشده نسبت به شبکههای پیشنهادی اولویت دارند، زیرا این شبکهها توسط کاربر به دستگاه اضافه شدهاند. این به معنای ترجیح اتصال به این شبکهها در صورت امکان است.
توجه داشته باشید که کاربران میتوانند رفتار اتصال خودکار را برای شبکههای ذخیرهشدهی منفرد غیرفعال کنند؛ یعنی میتوانند مشخص کنند که این شبکهها فقط باید بهصورت دستی استفاده شوند و بهطور خودکار توسط دستگاه در نظر گرفته نشوند.
آیا میتوانم ترتیب اولویت دقیق را تغییر دهم یا آن را به طور کامل حذف کنم؟
شما میتوانید با تغییر پوششهای جایزه ذکر شده در بخشهای قبلی، تصمیمات انتخاب شبکه را تغییر دهید. با این حال، تغییر مقادیر پیشفرض توصیه نمیشود، زیرا آنها پس از بررسی دقیق موارد استفاده متعدد انتخاب شدهاند.