בחירת רשת Wi-Fi

בדף הזה מפורטים האלגוריתמים והנהלים שמשמשים ב-Android 12 לבחירה של רשתות Wi-Fi ולמעבר ביניהן. מערכת Android מעריכה באופן רציף את האיכות של הרשת המחוברת, וגם את האיכות של הרשתות הזמינות.

מחזור החיים של חיבור אוטומטי

בקטע הזה מוסבר איך מכשיר עם Android מעריך את רשתות ה-Wi-Fi הזמינות ומתחבר אליהן.

  1. המכשיר סורק רשתות זמינות באחת מהדרכים הבאות, בהתאם למצב המסך (פועל או כבוי).

    • המסך פועל (מחובר): מערכת המשנה לקישוריות ב-Android בודקת באופן קבוע אם החיבור הנוכחי מספיק טוב כדי לדלג על הסריקה (כפי שמוגדר בסריקות כשהמסך פועל). אם החיבור לא מספיק טוב כדי לדלג על הסריקה, מערכת המשנה של הקישוריות מפעילה סריקה כדי לזהות רשתות זמינות. סריקות כאלה יכולות להיות מופעלות גם על ידי רכיבי מערכת אחרים, כמו מערכת המיקום או אפליקציה (כולל אפליקציית ההגדרות).
    • המסך מופעל (מנותק): מערכת המשנה של הקישוריות ב-Android מבצעת סריקות תקופתיות לפי לוח זמנים של נסיגה אקספוננציאלית. המודול מעריך את כל תוצאות הסריקה שהתקבלו ומנסה לבחור את הרשת הטובה ביותר להתחבר אליה.
    • המסך כבוי (מנותק): מעבד המארח מתכנת את הקושחה עם רשימה של רשתות מועדפות באמצעות סריקות של העברת נתונים לרשת מועדפת (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 על סמך כשלים חוזרים בחיבור, ניתוקים תכופים ובקשות מפורשות מנקודת הגישה לא לנסות שיוך למשך תקופה מסוימת (MBO-OCE). הסבר על חסימת BSSID מופיע בקטע בנושא חסימת SSID ו-BSSID.

    • כשהמכשיר נע במהירות, אפשר לסנן עוד את תוצאות הסריקה כדי להסיר מזהי BSSID שערכי ה-RSSI שלהם משתנים במהירות (סימן לכך שהם לא נעים יחד עם המכשיר). אפשר להגדיר את האופטימיזציה הזו באמצעות config_wifiHighMovementNetworkSelectionOptimizationEnabled (הפעלה או השבתה של האופטימיזציה), והשכבות config_wifiHighMovementNetworkSelectionOptimizationScanDelayMs ו-config_wifiHighMovementNetworkSelectionOptimizationRssiDelta, שקובעות את דרישת היציבות בתוצאות הסריקה (שינוי RSSI בתוצאות הסריקה שמרווחות מספיק בזמן).

  3. המסגרת מריצה את הכלי לדירוג מועמדים כדי ליצור ציון לכל מועמד SSID. ה-SSID המועמדים יכול לכלול כמה BSSID מועמדים (שנוצרו על ידי מועמדי הרשת). המועמד עם הציון הכי גבוה הוא המועמד המנצח.

  4. המסגרת מפעילה את האלגוריתם user connect choice, שיכול להפוך רשת שנבחרה על ידי המשתמש למועמדת החדשה המובילה במקום להשתמש במועמדת המובילה מתוך המועמדות שקיבלו ניקוד.

  5. המסגרת קובעת אם המועמד המנצח תואם לרשת המחוברת. כדי שיהיה אפשר להגדיר התאמה, צריך לעמוד באחד מהתנאים הבאים:

    • למועמד המנצח ולרשת ה-Wi-Fi המחוברת יש אותו BSSID.
    • אם יש אפשרות לנדידת קושחה (כולל יכולת של רשימת חסימה של BSSID), המועמד שנבחר והרשת שאליה מחוברים הם בעלי אותו SSID וסוג אבטחה.

    אם המועמד המנצח תואם לרשת המקושרת, לא מתבצעת פעולה נוספת. אם המועמד הזוכה לא תואם לרשת, המכשיר משויך למועמד הזוכה.

הערכה של רשת מחוברת

מסגרת Android או הקושחה מעריכות מעת לעת את איכות הרשת המחוברת. בקטע הזה מוסבר איך הרשת המחוברת מוערכת כשהמסך מופעל או מושבת.

ההערכה הזו מתבצעת בנוסף לבחירת הרשת שמוסברת בקטעים הקודמים.

מסך מופעל

מסגרת Android מעריכה את הרשת המחוברת באופן הבא:

  1. שירות ה-Wi-Fi מבצע סקר של נתוני RSSI ושל שכבת הקישור כל 3 שניות (אפשר להגדיר את זה באמצעות שכבת העל config_wifiPollRssiIntervalMilliseconds).

    אם ההתאמה הדינמית של מרווח הזמן מופעלת באמצעות שכבת העל config_wifiAdjustPollRssiIntervalEnabled, מרווח הזמן של הסקר משתנה באופן דינמי על סמך מצב הניידות של המכשיר ו-RSSI.

    • מרווח התשאול מורחב ל-6 שניות (מוגדר על ידי שכבת העל config_wifiPollRssiLongIntervalMilliseconds) כשהמכשיר נייח ו עוצמת האות (RSSI) גדולה מ-68- dBm (מוגדר על ידי שכבות העל config_wifiClientRssiMonitorThresholdDbm ו-config_wifiClientRssiMonitorHysteresisDb).
    • מרווח התשאול מצטמצם בחזרה ל-3 שניות (מוגדר על ידי שכבת העל config_wifiPollRssiIntervalMilliseconds) כשהמכשיר לא נייח או כשעוצמת האות (RSSI) נמוכה מ-73- dBm (מוגדר על ידי שכבת העל 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 dBm בתדר ‎2.4 GHz, שהוגדר עם שכבת העל config_wifi_framework_wifi_score_low_rssi_threshold_24GHz, או מ-‎-70 dBm בתדרים ‎5 GHz ו-‎6 GHz, שהוגדרו עם שכבות העל config_wifi_framework_wifi_score_low_rssi_threshold_5GHz ו-config_wifiFrameworkScoreLowRssiThreshold6ghz.
  • התנועה (שידור או קבלה) גדולה מ-16 חבילות לשנייה (pps) שהוגדרו עם שכבת העל config_wifiFrameworkMinPacketPerSecondActiveTraffic.

כשהמכשיר מחובר והמסך פועל, מערכת ניקוד מחוברת עוקבת באופן תקופתי אחרי איכות ה-Wi-Fi על ידי בדיקת אותות כמו RSSI ומספר החבילות שהועברו. אם איכות ה-Wi-Fi נמוכה (כפי שמפורט בהמשך) והמכשיר תומך בתחנות כפולות בו-זמנית, תופעל סריקה. אפשר להשתמש בשכבת העל config_wifiLowConnectedScoreThresholdToTriggerScanForMbb כדי להגדיר את ערך הסף של הדירוג שמפעיל את הסריקה. אפשר להשתמש בשכבת העל config_wifiLowConnectedScoreScanPeriodSeconds כדי להגדיר את התקופה של הסריקות האלה.

המסך כבוי והמכשיר מחובר ל-Wi-Fi

כשהמסך כבוי והמכשיר מחובר לרשת Wi-Fi, הקושחה (Wi-Fi SoC) מבצעת סריקות של נדידה. המסגרת לא מבצעת סריקות כשהמסך כבוי.

המסך כבוי ואין חיבור ל-Wi-Fi (מצב מנותק)

כשהמסך כבוי וה-Wi-Fi מנותק, הקושחה מבצעת סריקות PNO של מזהי SSID. המסגרת מגדירה את הקושחה עם רשימה של רשתות SSID לסריקה ורשימה של ערוצים לסריקה. אם נמצא SSID מוגדר, הקושחה מעירה את המסגרת.

ה-framework גם מגדיר את המרווח שבו הקושחה צריכה לבצע סריקות PNO, ומשתמש במצב הניידות של המכשיר כדי לבחור מרווחי סריקה שונים. במצב של ניידות נמוכה (המכשיר נייח), המרווח הוא 60 שניות לסריקות הראשונות (נשלט על ידי שכבת העל config_wifiStationaryPnoScanIntervalMillis) ו-180 שניות (מכפיל קבוע של 3x של שכבת העל) לסריקות הבאות. במצב ניידות גבוהה, המרווח הוא 20 שניות בשלושת הסריקות הראשונות (נשלט על ידי שכבת העל config_wifiMovingPnoScanIntervalMillis) ו-60 שניות (מכפיל קבוע של 3x של שכבת העל) בסריקות הבאות.

מועמדים לרשת

המועמדים לרשת מוצאים או יוצרים תצורות (WifiConfiguration) לרשתות שהן:

  • זמינה (על סמך תוצאות הסריקה) או הרשת שאליה המכשיר מחובר (שלפעמים חסרה בתוצאות סריקה לא יציבות).
  • רמת האות (RSSI) צריכה להיות מינימלית. עוצמת האות המינימלית (RSSI) היא ‎-80 dBm לתדר ‎2.4 GHz ו-‎-77 dBm לתדרים ‎5 GHz ו-‎6 GHz. אפשר להגדיר את העוצמה באמצעות שכבות העל 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).

משתמשים שהשיגו את הניקוד הגבוה ביותר

הבודקים של המועמדים מעריכים כל מועמד ונותנים לו ציון. הציון של ThroughputScorer (הכלי לחישוב הציון שמוגדר כברירת מחדל) מבוסס על:

  • ציון הבסיס מחושב על סמך RSSI, כאשר ה-RSSI מוגבל ל-‎-73 dBm עבור תחום התדרים של ‎2.4 GHz או ל-‎-70 dBm עבור תחום התדרים של ‎5 GHz ו-‎6 GHz (מוגדר באמצעות שכבות העל 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) מקבלות ניקוד נמוך יותר מכל רשת אחרת.
  • רשת שזוהה בעבר שאין לה גישה לאינטרנט מקבלת ציון 0 אם המכשיר מחובר לרשת אחרת שיש לה גישה לאינטרנט.

בונוס ברירת המחדל שמוגדר לשימוש בנתונים שמורים לעומת נתונים שמוצעים, ולשימוש בנתונים לא מדויקים לעומת נתונים מדויקים (כלומר, ערכי ברירת המחדל של שכבת העל) יוצר סדר עדיפויות ברור לנתונים שמורים, לנתונים מוצעים, לנתונים מדויקים ולנתונים לא מדויקים:

  1. רשתות ללא הגבלת נפח נתונים שנשמרו
  2. הצעות לרשתות לשימוש חופשי
  3. רשתות עם חיוב לפי שימוש בנתונים שנשמרו
  4. הצעות לרשתות עם חיוב לפי שימוש בנתונים

המשמעות היא שרשת שמורה ללא הגבלה (בחינם) תמיד תיבחר לפני רשת שמורה עם הגבלה (בתשלום). יכול להיות שבונוס הניקוד שנבחר לאחרונה (על ידי המשתמש או האפליקציה) יבטל את העדיפות המחמירה הזו.

יכולות להיות כמה מערכות לדירוג מועמדים שמותקנות במסגרת, אבל רק אחת יכולה להיות פעילה בכל פעם. אפשר להשתמש בשיטות הניקוד האחרות למדדים (כדי לבדוק אלגוריתמים חלופיים). ב-Android 11, ברירת המחדל של הדירוג היא ThroughputScorer.

חסימת SSID ו-BSSID

יכול להיות שהמסגרת תחסום את ה-SSID או ה-BSSID, כלומר היא לא תביא אותם בחשבון לצורך חיבורים, באופן זמני או קבוע.

חסימת BSSID

חסימת BSSID פועלת באמצעות שני מוני כישלונות: מונה כישלונות רציפים ומונה רצף, לכל סוג כישלון ספציפי (בהמשך מופיעה רשימה של סוגי כישלונות). כשמתרחשת שגיאה:

  • המונה של סוג הכשל המתאים גדל.
  • אם מגיעים לסף הכשלים של סוג הכשל הזה:
    • ה-BSSID חסום.
    • מונה הרצף של הכשל גדל.

משך הזמן שבו מזהה BSSID חסום מתחיל בערך בסיס שניתן להגדרה. ערך הבסיס הזה מצוין בשכבות העל config_wifiBssidBlocklistMonitorBaseBlockDurationMs או config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs, בהתאם ל-RSSI. משך ההשהיה גדל באופן אקספוננציאלי עד למגבלה עליונה שניתנת להגדרה ומצוינת על ידי שכבת העל config_wifiBssidBlocklistMonitorFailureStreakCap. המשך מתארך אם הכישלונות מתרחשים ברציפות באותו BSSID. המשך הוא משך הבסיס שגדל באופן אקספוננציאלי בהתאם לרצף הכשלים. לדוגמה, רצף של 2 כשלים מרמז על משך חסימה שהוא פי 4 ממשך הבסיס.

הסף לחסימת BSSID תלוי בסיבת הכשל, ואפשר להתאים אותו באמצעות שכבות-על:

  • נקודת הגישה דוחה את השיוך באמצעות MBO/OCE Unable to handle new STA code: 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 דקות. אם היא נכשלת בפעם השישית, היא מושבתת למשך 10 דקות. אם היא נכשלת בפעם השביעית, היא מושבתת למשך 20 דקות, וכן הלאה, עד למגבלה המקסימלית של 18 שעות.

קוד הכשל תיאור סף משך הזמן הבסיסי להשבתה* סוג ההשבתה
DISABLED_DHCP_FAILURE הקצאת DHCP נכשלה 5 5 דקות זמני
DISABLED_NO_INTERNET_TEMPORARY האימות של הרשת נכשל, אבל המשתמש רוצה להמשיך להתחבר לרשת הזו בעתיד 1 10 דקות זמני
DISABLED_AUTHENTICATION_NO_CREDENTIALS ל-Supplicant אין פרטי כניסה להתחברות לרשת 1 לא רלוונטי קבועה
DISABLED_NO_INTERNET_PERMANENT ברירת המחדל לכשל באימות הרשת 1 לא רלוונטי קבועה
DISABLED_BY_WIFI_MANAGER הוצאה משימוש ולא נמצאת בשימוש 1 לא רלוונטי קבועה
DISABLED_BY_WRONG_PASSWORD הסיסמה שגויה, ולא היה חיבור מוצלח לרשת הזו 1 לא רלוונטי קבועה
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION כשל ב-EAP כשאין מינוי לכרטיס ה-SIM 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 דקות זמני

רשת שהושבתה באופן זמני מופעלת מחדש במקרים הבאים:

  • משך ההשבתה הסתיים.
  • המשתמש בוחר ידנית את הרשת שאליה הוא רוצה להתחבר.
  • המשתמש מעביר את המתג של ה-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 משנית מוגבלת שזמינה רק לאפליקציות נבחרות שהוגדרו על ידי יצרן המכשיר. הוראות ליצרני מכשירים להגדרת האפשרות הזו מופיעות במאמר בנושא חיבור מוגבל וחיבור לאינטרנט בו-זמנית.

כשהאלגוריתם לבחירת רשת מזהה תוצאות סריקה שתואמות להצעה בתשלום או להצעה פרטית של יצרן ציוד מקורי, הוא מתחבר אליה באופן אוטומטי כרשת שנייה. בחירת הרשת עבור רשת ה-Wi-Fi הראשית (שמספקת חיבור לאינטרנט לאפליקציות רגילות) מתבצעת בדרך כלל במקביל.

שאלות נפוצות

  1. האם לרשתות מאובטחות תמיד יש עדיפות על פני רשתות פתוחות?

    לא. 'שמורה' לעומת 'מוצעת' ו'בחיוב לפי צריכת נתונים' לעומת 'לשימוש חופשי' הן קטגוריות עיקריות שבהן הרשתות נבדקות. בכל קטגוריה, לרשתות מאובטחות יש עדיפות מסוימת על פני רשתות פתוחות, אבל משקל גבוה בהרבה ניתן לאיכות החיבור.

    הסיבה לכך היא שאבטחת נתוני המשתמשים בפועל מסופקת על ידי הצפנה מקצה לקצה (לדוגמה, TLS). רשתות מאובטחות מצפינות רק את החלק הראשון של התקשורת, וגם אז, ברשתות עם מפתחות משותפים מראש, הן לא מספקות פרטיות רבה.

  2. למה יש עדיפות לרשתות שמורות על פני הצעות לרשתות?

    רשתות שמורות בחינם (ללא הגבלת נפח) מקבלות עדיפות על פני הצעות לרשתות בחינם, ורשתות שמורות בחיוב לפי צריכת נתונים מקבלות עדיפות על פני הצעות לרשתות בחיוב לפי צריכת נתונים.

    לרשתות שמורות יש עדיפות על פני רשתות מוצעות, כי אלה רשתות שהמשתמש הוסיף למכשיר באופן מפורש. המשמעות היא שיש העדפה להתחבר לרשתות האלה כשזה אפשרי.

    שימו לב: משתמשים יכולים להשבית את ההתנהגות של חיבור אוטומטי לרשתות שמורות ספציפיות. כלומר, הם יכולים לציין שצריך להשתמש ברשתות האלה רק באופן ידני, ולא להתחבר אליהן באופן אוטומטי במכשיר.

  3. האם אפשר לשנות את סדר העדיפות המחמיר או להסיר אותו לגמרי?

    כדי לשנות את ההחלטות לגבי בחירת הרשת, אפשר לשנות את שכבות העל של הבונוס שמופיעות בקטעים הקודמים. עם זאת, לא מומלץ לשנות את ערכי ברירת המחדל, כי הם נבחרו אחרי בחינה מדוקדקת של תרחישי שימוש רבים.