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

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

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

    • 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.

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

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

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

שאלות נפוצות

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

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

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

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

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

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

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

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

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