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

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

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

  4. תוכנת ה-framework מפעילה את האלגוריתם של בחירת חיבור המשתמשים, שעשויה להפוך רשת שנבחרה על ידי המשתמש למועמד החדש במקום להשתמש במועמד הזוכה של המועמד הזוכה.

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

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

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

חשוב לזכור שחיבור אוטומטי לרשת מושבת בזמן שאפליקציה משתמשת ב-Wi-Fi Network Request API, שמבטל את ההגדרות של המערכת ויוצר רשת LAN ללא אינטרנט, מלבד במכשירים שתומכים בשתי תחנות בו-זמנית.

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

מערך ה-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 (שהן מערכי מספרים שלמים). כברירת מחדל, הסריקה מתבצעת במרווחי זמן של השהיה מעריכית לפני ניסיון חוזר (exponential backoff) של 20, 40, 80 ו-160 שניות, וייתכן שהסריקות הבאות יתבצעו במרווחי זמן של 160 שניות (אלה ערכי ברירת המחדל של שכבות-העל האלה).

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

(Android 13 ואילך) אם יש צורך במרווחי סריקה שונים בזמן הריצה, אפליקציה שיש לה הרשאה מה-OEM (יצרן הציוד המקורי) יכולה לקרוא ל-API WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) כדי להגדיר באופן דינמי את לוח הזמנים לסריקה על המסך.

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

  • המכשיר מחובר לחיבור של הרשמה אונליין (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) מבצעת סריקות נדידה. ה-framework לא מבצע סריקות כשהמסך כבוי.

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

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

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

גורמים שמציעים רשתות

גורמים שמציעים רשתות מחפשים או יוצרים הגדרות (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).
  • מציין רשת בדירוג חיצוני: מנגנון של ה-OEM (יצרן הציוד המקורי) שמספק אפשרויות לקישוריות רשת למכשיר. למידע נוסף, ראו ספק חיצוני של דירוג רשתות.

גורמים שמעניקים ניקוד למועמד

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

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

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

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

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

אפשר להתקין כמה מודלים של ניקוד ב-framework, אבל רק אחד מהם יכול להיות פעיל בכל רגע נתון. אפשר להשתמש במודלים האחרים למתן ניקוד למדדים (כדי לבדוק אלגוריתמים חלופיים). ב-Android 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.
  • Authentication failure, other general authentication failures: config_wifiBssidBlocklistMonitorAuthenticationFailureThreshold.
  • שגיאת DHCP, נכשל הקצאת DHCP: config_wifiBssidBlocklistMonitorDhcpFailureThreshold.
  • ניתוק לא תקין, המכשיר התנתק מהרשת תוך פרק זמן קצר מאוד אחרי החיבור: config_wifiBssidBlocklistMonitorAbnormalDisconnectThreshold. אפשר להגדיר את חלון הזמן באמצעות config_wifiBssidBlocklistAbnormalDisconnectTimeWindowMs.

תנאי המחיקה של רשימת החסימות של BSSID

כתובת BSSID נמחקת מרשימת החסימות במקרים הבאים:

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

התנאים לאיפוס של ספירת הכשלונות ושל רצף ההצלחות:

  • הפעלה מחדש: איפוס לכל מזהי ה-BSSID.
  • הרשת הוסרה: איפוס של BSSIDs המשויכים לרשת.
  • חיבור 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 Provisioning של DHCP נכשל 5 5 דקות זמני
DISABLED_NO_INTERNET_TEMPORARY אימות הרשת נכשל, אבל המשתמש מצהיר שהוא רוצה להמשיך להתחבר לרשת הזו בעתיד 1 10 דקות זמני
DISABLED_AUTHENTICATION_NO_CREDENTIALS למגיש הבקשה אין פרטי כניסה כדי להתחבר לרשת 1 לא רלוונטי תמידית
DISABLED_NO_INTERNET_PERMANENT ברירת המחדל לכשלים באימות הרשת 1 לא רלוונטי תמידית
DISABLED_BY_WIFI_MANAGER הוצאו משימוש ולא בשימוש 1 לא רלוונטי תמידית
DISABLED_BY_WRONG_PASSWORD הסיסמה שגויה, והרשת הזו אף פעם לא הצליחה להתחבר אל 1 לא רלוונטי תמידית
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION כשל 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 מופעלת, המכשיר ינסה להתחבר לרשת החדשה לפני שהוא יתנתק מהרשת הישנה. בתהליך 'יצירה לפני ניתוק' נעשה שימוש באותו אלגוריתם לבחירת רשת כמו בתהליך 'ניתוק לפני יצירה' (שבו המכשיר מתנתק מהרשת הישנה לפני שהוא מתחבר לרשת החדשה). אם אלגוריתם בחירת הרשת בוחר רשת שלא ניתן לעבור אליה באמצעות 'יצירה לפני ניתוק', המכשיר עובר באופן אוטומטי ל'ניתוק לפני יצירה'.

חיבור לאינטרנט והגבלה בו-זמנית

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

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

שאלות נפוצות

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

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

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

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

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

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

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

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

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