انتخاب شبکه وای فای اندروید

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

عمر یک اتصال خودکار

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

  1. دستگاه بسته به روشن یا خاموش بودن صفحه، شبکه های موجود را به یکی از روش های زیر اسکن می کند.

    • صفحه روشن (متصل): زیرسیستم اتصال 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 موجود را پیدا می‌کنند یا پیکربندی‌های جدیدی را برای شبکه‌های نامزد ایجاد می‌کنند.

    • نتایج اسکن برای حذف 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 را می‌توان تنظیم کرد (که نیاز به sclayan sclayan نتایج به اندازه کافی در زمان تفکیک شده اند).

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

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

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

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

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

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

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

فریمورک یا سیستم عامل اندروید به صورت دوره ای کیفیت شبکه متصل را ارزیابی می کند. این بخش نحوه ارزیابی شبکه متصل را هنگام روشن یا خاموش بودن صفحه نمایش می دهد.

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

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

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

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

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

    • زمانی که دستگاه ثابت است و RSSI بالاتر از -68 دسی‌بلم config_wifiClientRssiMonitorThresholdDbm config_wifiPollRssiLongIntervalMilliseconds config_wifiClientRssiMonitorHysteresisDb ) فاصله نظرسنجی به 6 ثانیه افزایش می‌یابد (پیکربندی شده توسط config_wifiPollRssiLongIntervalMilliseconds overlay).
    • زمانی که دستگاه ثابت نیست یا RSSI کمتر از -73 dBm است (که توسط config_wifiPollRssiIntervalMilliseconds پیکربندی شده است) فاصله نظرسنجی به 3 ثانیه کاهش می یابد (پیکربندی شده توسط روکش config_wifiClientRssiMonitorThresholdDbm ).
  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 بالاتر از -73 دسی‌بلمتر برای باند 2.4 گیگاهرتز است، که با config_wifi_framework_wifi_score_low_rssi_threshold_24GHz همپوشانی پیکربندی شده است، یا -70 دسی‌بلمتر برای باندهای 5 گیگاهرتز و 6 گیگاهرتز، پیکربندی شده با config_wifi_framework_wifi_score_low_rssi_threshold_5GHz ، یا -70 dBm برای باندهای 5 گیگاهرتز و 6 گیگاهرتز، پیکربندی شده است. همپوشانی config_wifiFrameworkScoreLowRssiThreshold6ghz .
  • ترافیک (انتقال یا دریافت) بالای 16 بسته در ثانیه (pps) است که با پوشش config_wifiFrameworkMinPacketPerSecondActiveTraffic پیکربندی شده است.

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

صفحه نمایش را خاموش کنید و به Wi-Fi متصل شوید

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

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

هنگامی که صفحه نمایش خاموش است و وای فای قطع می شود، سیستم عامل اسکن PNO را برای SSID انجام می دهد. فریمورک، میان‌افزار را با فهرستی از SSIDها برای اسکن و فهرستی از کانال‌هایی که روی آنها اسکن می‌شود، پیکربندی می‌کند. اگر یک SSID پیکربندی شده پیدا شود، سیستم عامل چارچوب را بیدار می کند.

این چارچوب همچنین فاصله زمانی را که سفت‌افزار قرار است اسکن‌های PNO را انجام دهد، با استفاده از حالت تحرک دستگاه برای انتخاب فواصل مختلف اسکن، پیکربندی می‌کند. در حالت تحرک کم (دستگاه ثابت است) فاصله زمانی برای سه اسکن اول 60 ثانیه (که توسط روکش config_wifiStationaryPnoScanIntervalMillis کنترل می شود) و 180 ثانیه (یک ضریب ثابت 3 برابری همپوشانی) برای اسکن های بعدی است. در حالت تحرک بالا، فاصله زمانی 20 ثانیه برای سه اسکن اول (که توسط روکش config_wifiMovingPnoScanIntervalMillis کنترل می‌شود)، و 60 ثانیه (ضریب 3 برابری ثابت روی همپوشانی) برای اسکن‌های بعدی است.

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

معرفی‌کنندگان شبکه پیکربندی‌هایی ( WifiConfiguration ) را برای شبکه‌هایی که عبارتند از:

  • در حال حاضر در دسترس (بر اساس نتایج اسکن) یا شبکه متصل فعلی (که گاهی اوقات در نتایج اسکن پوسته پوسته وجود ندارد).
  • حداقل RSSI داشته باشید. حداقل RSSI 80-dBm برای باند 2.4 گیگاهرتز و -77 dBm برای باندهای 5 گیگاهرتز و 6 گیگاهرتز است، قابل تنظیم با استفاده از config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz , config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz , config_wifiry_frame. پوشش های config_wifiFrameworkScoreEntryRssiThreshold6ghz .
  • به عنوان مثال، به دلیل نقص اتصال قبلی مسدود نشده است.
  • شبکه نشان نمی‌دهد که غیرقابل استفاده است (مثلاً با استفاده از MBO/OCE).
  • می تواند با استفاده از اعتبارنامه های موجود در دستگاه مرتبط شود.

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

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

گلزنان نامزد

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

  • یک امتیاز پایه بر اساس RSSI محاسبه می‌شود که در آن RSSI روی -73 دسی‌بلمتر برای باند 2.4 گیگاهرتز یا -70 دسی‌بلمتر برای باندهای 5 گیگاهرتز و 6 گیگاهرتز محدود شده config_wifi_framework_wifi_score_low_rssi_threshold_5GHz config_wifi_framework_wifi_score_low_rssi_threshold_24GHz و 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 درخواست شوند) از هر شبکه دیگری امتیاز کمتری دارند.
  • شبکه‌ای که قبلاً تشخیص داده شده بود اینترنت ندارد، اگر دستگاه در حال حاضر به شبکه دیگری که به اینترنت دسترسی دارد متصل باشد، امتیاز 0 می‌گیرد.

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

  1. شبکه های بدون اندازه گیری ذخیره شد
  2. شبکه های بدون اندازه گیری پیشنهادی
  3. شبکه های اندازه گیری شده ذخیره شده
  4. شبکه های اندازه گیری پیشنهادی

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

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

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

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

مسدود کردن BSSID

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

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

مدت زمانی که یک BSSID برای شروع با یک مقدار پایه (قابل تنظیم) مسدود می شود (مشخص شده توسط config_wifiBssidBlocklistMonitorBaseBlockDurationMs یا config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs همپوشانی ها، بسته به RSSI)، و به صورت نمایی با تنظیمات پیکربندی شده پیکربندی می شود. همپوشانی config_wifiBssidBlocklistMonitorFailureStreakCap ). اگر خرابی ها به طور مداوم در همان BSSID رخ دهد، مدت زمان افزایش می یابد. مدت زمان، مدت زمان پایه است که به طور تصاعدی با رگه شکست افزایش می‌یابد، یعنی یک رگه شکست 2 به معنای طول مدت بلوک پایه 4 برابر است.

آستانه های مسدودسازی 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 زمانی از لیست مسدود پاک می شود که:

  • 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 provisioning موفقیت: برای کد خطای زیر بازنشانی می شود.

    • REASON_DHCP_FAILURE

مسدود کردن SSID

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

* برای شبکه هایی که به طور موقت غیرفعال شده اند، مدت زمان غیرفعال کردن به صورت پویا بر اساس تعداد خرابی های اتصال متوالی تجربه شده در شبکه تغییر می کند. پس از اینکه یک شبکه به طور متوالی پنج بار وصل نشد، هر خرابی بعدی منجر به غیرفعال شدن مدت زمان دو برابر مدت زمان قبلی می شود. به عنوان مثال، شبکه ای با پنج خرابی متوالی به مدت 5 دقیقه، سپس 10 دقیقه در خرابی ششم، 20 دقیقه برای خرابی هفتم، و به همین ترتیب تا سقف حداکثر 18 ساعت غیرفعال می شود.

کد خرابی شرح آستانه مدت زمان غیرفعال کردن پایه* غیرفعال کردن نوع
DISABLED_DHCP_FAILURE عدم ارائه DHCP 5 5 دقیقه موقت
DISABLED_NO_INTERNET_TEMPORARY اعتبار سنجی شبکه ناموفق بود اما کاربر اظهار می کند که می خواهد در آینده به این شبکه متصل شود 1 10 دقیقه موقت
DISABLED_AUTHENTICATION_NO_CREDENTIALS درخواست کننده فاقد اعتبار برای اتصال به شبکه است 1 NA دائمی
DISABLED_NO_INTERNET_PERMANENT پیش‌فرض برای خرابی اعتبارسنجی شبکه 1 NA دائمی
DISABLED_BY_WIFI_MANAGER منسوخ و استفاده نشده 1 NA دائمی
DISABLED_BY_WRONG_PASSWORD رمز عبور نادرست است و این شبکه هرگز با موفقیت به آن متصل نشده است 1 NA دائمی
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION خطای EAP در جایی که سیم کارت مشترک نیست 1 NA دائمی
DISABLED_ASSOCIATION_REJECTION شکست های رد انجمن 5 5 دقیقه موقت
DISABLED_AUTHENTICATION_FAILURE سایر خرابی‌های احراز هویت (یعنی رمز عبور اشتباه یا خرابی EAP نیست) 5 5 دقیقه موقت
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR خرابی EAP خاص ارائه دهنده (خصوصی). 1 NA دائمی
DISABLED_NETWORK_NOT_FOUND درخواست کننده نتوانست شبکه ای را در نتایج اسکن پیدا کند که با شبکه درخواست شده توسط چارچوب برای اتصال (از جمله قابلیت های شبکه) مطابقت داشته باشد. 2 5 دقیقه موقت
DISABLED_CONSECUTIVE_FAILURES شبکه پنج بار یا چند بار متوالی وصل نشد. نوع خرابی برای این خرابی ها شامل انواع خرابی های فهرست شده در این جدول است، اما محدود به آن نیست.
5 5 دقیقه موقت

یک شبکه غیرفعال موقت زمانی دوباره فعال می شود که:

  • مدت زمان غیرفعال کردن گذشته است.
  • کاربر به صورت دستی شبکه را برای اتصال انتخاب می کند.
  • کاربر Wi-Fi را تغییر می دهد.
  • سیستم راه اندازی مجدد می شود.
  • شبکه با RSSI بسیار پایین غیرفعال شد، اما شبکه بعداً با RSSI متوسط ​​یا بالاتر دوباره شناسایی می‌شود.

یک شبکه غیرفعال دائمی زمانی دوباره فعال می شود که:

  • کاربر به صورت دستی شبکه را برای اتصال انتخاب می کند.

شمارنده‌های خرابی یک شبکه زمانی بازنشانی می‌شوند که:

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

کارت امتیاز

کارت‌های امتیازی که در Android 10 معرفی شده‌اند، آمار روی دستگاه را در مورد BSSID ثبت می‌کنند. کارت‌های امتیازی با استفاده از سرویس IpMemoryStore ادامه می‌یابند.

کارت‌های امتیاز در انتخاب شبکه Android 11 استفاده نمی‌شوند.

انتخاب اتصال کاربر

اندروید دارای یک الگوریتم انتخاب اتصال کاربر است که به فرآیند انتخاب اجازه می‌دهد شبکه‌های Wi-Fi را ترجیح دهد که کاربر به طور صریح به آن‌ها متصل است، مثلاً یک شبکه خانگی. کاربران ممکن است چنین شبکه‌هایی را بر شبکه‌های عمومی ترجیح دهند، حتی زمانی که عملکرد کمتر از یک شبکه عمومی است، زیرا آنها خدمات اضافی مانند توانایی کنترل دستگاه‌های خانگی را ارائه می‌دهند.

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

  • شبکه انتخابی اتصال کاربر آخرین باری که استفاده شد به اینترنت دسترسی داشت
  • گزینه اتصال کاربر دارای قدرت سیگنالی است که بدتر از زمانی نیست که در ابتدا با حاشیه خطا انتخاب شده بود. این حاشیه خطا را می توان با استفاده از overlay config_wifiEstimateRssiErrorMarginDb پیکربندی کرد.

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

دو ایستگاه همزمان

این بخش انتخاب شبکه Wi-Fi را هنگامی که یک دستگاه از اتصال همزمان به دو شبکه Wi-Fi پشتیبانی می کند، توضیح می دهد.

درست کردن قبل از شکستن

اگر عملکرد make-fore-break فعال باشد، دستگاه سعی می کند قبل از قطع شدن از شبکه قدیمی به شبکه جدید متصل شود. جریان make-fore-break از همان الگوریتم انتخاب شبکه مانند سوئیچینگ شبکه break-before-be استفاده می کند (این زمانی است که دستگاه قبل از اتصال به شبکه جدید از شبکه قدیمی قطع می شود). اگر الگوریتم انتخاب شبکه شبکه‌ای را انتخاب کند که با استفاده از make-before-break قابل تغییر نباشد، دستگاه به طور خودکار به حالت break-before-make برمی‌گردد.

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

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

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

سوالات متداول (سؤالات متداول)

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

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

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

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

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

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

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

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

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