בדף הזה מפורטים האלגוריתמים והנהלים שבהם נעשה שימוש ב-Android 12 כדי לבחור רשתות Wi-Fi ולעבור ביניהן. מערכת Android בודקת באופן שוטף את האיכות של הרשת שמחוברת ומעריכה את האיכות של הרשתות הזמינות.
מחזור החיים של חיבור אוטומטי
כאן מתואר התהליך שבו מכשיר Android מעריך רשתות Wi-Fi זמינות ומתחבר אליהן.
המכשיר סורק רשתות זמינות באחת מהדרכים הבאות, בהתאם למצב המסך.
- מסך דלוק (מחובר): מערכת המשנה של קישוריות Android מבצעת הערכה סדירה כדי לקבוע אם החיבור הנוכחי מספיק טוב כדי לדלג על הסריקה (כפי שמוגדר בסריקות במסך דלוק). אם החיבור לא מספיק טוב כדי לדלג על הסריקה, תת-המערכת של הקישוריות מפעילה סריקה כדי לזהות רשתות זמינות. רכיבי מערכת אחרים, כמו מערכת המיקום או אפליקציה (כולל אפליקציית ההגדרות), יכולים גם הם להפעיל את הסריקה.
- מסך דלוק (לא מחובר): תת-המערכת של קישוריות Android מבצעת סריקות תקופתיות לפי לוח זמנים של זמן אחזור מעריכי. המודול מעריך את כל תוצאות הסריקה שהתקבלו ומנסה לבחור את הרשת הטובה ביותר להתחברות אליה.
- המסך כבוי (לא מחובר): מעבד המארח מתכנת את הקושחה עם רשימת רשתות מועדפות באמצעות סריקות של העברת עומסים לרשת מועדפת (PNO) ברגע שהמסך נכבה. הקושחה מעוררת את המארח אם היא מוצאת אחת מהרשתות המועדפות. ב-AOSP מניחים שהמכשיר תומך ב-PNO.
אפשר להשתמש בשיטה
WifiManager#allowAutojoinGlobal(boolean)
כדי להשבית חיבורים אוטומטיים. זהו ממשק API בעל הרשאות שאפשר להשתמש בו על ידי יצרני מכשירים בנסיבות מוגבלות (לדוגמה, מכשיר לא נייד שהוגדרה לו הגדרה מראש).אם המכשיר מחובר והשכבה
config_wifi_framework_enable_associated_network_selection
מוגדרת ל-false
, לא מתבצעות סריקות קישוריות ותוצאות הסריקה לא גורמות לבחירת רשת. ההגדרה הזו לא משפיעה כשהמכשיר מנותק, כלומר סריקות החיבור ובחירת הרשת עדיין מתבצעות.תוצאות הסריקה נבדקות.
אם המכשיר מחובר לרשת 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
, שמגדירות את דרישת היציבות בתוצאות הסריקה (שינוי RSSI בתוצאות הסריקה שמרוחקות מספיק בזמן).
המסגרת מפעילה את הכלי למתן ציונים למועמד כדי ליצור ציון לכל מועמדת למזהה קבוצת שירות (SSID). המועמדים ל-SSID יכולים לכלול כמה מועמדים למזהה של מערך שירות בסיסי (BSSID) (שנוצרו על ידי המגישים של הרשת). המועמד/ת עם הציון הגבוה ביותר הוא/היא המועמד/ת המנצח/ת.
המסגרת מפעילה את האלגוריתם user connect choice, שעלול להפוך ערוץ שנבחר על ידי המשתמש למועמד הזוכה החדש במקום להשתמש במועמד הזוכה ממערכת הניקוד של המועמדים.
המסגרת קובעת אם המועמד המנצח תואם לרשת שמחוברת כרגע. כדי להיחשב כתאמה, צריך להתקיים אחד מהתנאים הבאים:
- למועמד המנצח ולרשת ה-Wi-Fi המחובר יש אותו BSSID.
- אם זמין נדידה של קושחת קלט/פלט (כולל יכולת להוסיף רשתות BSSID לרשימת השחור), לאפשרות הזו ולרשת המקושרת יש את אותו SSID וסוג אבטחה.
אם המועמד המנצח תואם לרשת שמחוברת כרגע, לא מתבצעת פעולה נוספת. אם המועמד המנצח לא תואם לרשת, המכשיר משויך למועמד המנצח.
חשוב לזכור שחיבורי הרשת האוטומטיים מושבתים כשאפליקציה משתמשת ב-Wi-Fi Network Request API, שמבטל את ההגדרות של המערכת ויוצר רשת LAN ללא אינטרנט, מלבד במכשירים שתומכים בשתי תחנות בו-זמנית.
הערכה של רשת מחוברת
מערך ה-Android או הקושחה מעריכים מדי פעם את איכות הרשת המחוברת. בקטע הזה מוסבר איך מתבצעת ההערכה של הרשת המחוברת כשהמסך מופעל או כבוי.
ההערכה הזו מתבצעת בנוסף לבחירת הרשת שצוינה למעלה.
מסך מופעל
מסגרת Android מעריכה את הרשת המקושרת באופן הבא:
שירות ה-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
).
- מרווח הזמן בין הסקרים מוארך ל-6 שניות (בהגדרה של שכבת-העל
שירות ה-Wi-Fi מחשב ציון חיבור על סמך ה-RSSI ונתונים סטטיסטיים של שכבת הקישור.
שירות ה-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) מבצעת סריקות נדידה. המסגרת לא מבצעת סריקות כשהמסך כבוי.
המסך כבוי ואין חיבור ל-Wi-Fi (מצב מנותק)
כשהמסך כבוי וה-Wi-Fi מנותק, הקושחה מבצעת סריקות PNO לאיתור מזהי SSID. המסגרת מגדירה את הקושחה עם רשימת מזהי SSID שרוצים לסרוק ועם רשימת הערוצים שרוצים לסרוק. אם נמצא SSID שהוגדר, הקושחה מעוררת את המסגרת.
המסגרת מגדירה גם את המרווח שבו הקושחה תבצע סריקות 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 אם המכשיר מחובר כרגע לרשת אחרת שיש לה גישה לאינטרנט.
בונוס ברירת המחדל של מודעות שמורות לעומת מודעות שהוצעו, ושל מודעות ללא מדידה לעומת מודעות עם מדידה (כלומר, ערכי שכבת-העל שמוגדרים כברירת מחדל) יוצר סדר עדיפויות קפדני של מודעות שמורות, מודעות שהוצעו, מודעות עם מדידה ומודעות ללא מדידה:
- רשתות שמורות ללא חיוב
- הצעות לרשתות ללא חיוב לפי נפח נתונים
- רשתות עם חיוב לפי שימוש בנתונים שנשמרו
- הצעות לרשתות עם חיוב לפי שימוש בנתונים
כלומר, רשת שמורה ללא חיוב (בחינם) תמיד תיבחר לפני רשת שמורה עם חיוב (בתשלום). הבונוס על ציון שנבחר לאחרונה (על ידי משתמש או אפליקציה) עשוי לבטל את העדיפות המחמירה הזו.
אפשר להתקין כמה מודלים של ניקוד ב-framework, אבל רק אחד מהם יכול להיות פעיל בכל רגע נתון. אפשר להשתמש במודלים האחרים למתן ניקוד למדדים (כדי לבדוק אלגוריתמים חלופיים). ב-Android 11, המערכת משתמשת ב-ThroughputScorer
כברירת מחדל.
חסימת SSID ו-BSSID
המסגרת עשויה לחסום SSID או BSSID, כלומר לא להביא אותם בחשבון לחיבורים באופן זמני או לתמיד.
חסימה של BSSID
חסימת BSSID פועלת על ידי שמירה של שני מונים של כשלים, מונה של כשלים רצופים ומונה של רצף כשלים, לכל סוג של כשל ספציפי (רשימת סוגי הכשלים מופיעה בהמשך). כשמתרחשת כשל:
- המונה של סוג הכישלון התואם מתווסף.
- אם מגיעים לסף הכשל של סוג הכשל הזה:
- ה-BSSID חסום.
- מונה הרצף של הכשל מתווסף.
משך החסימה של BSSID מתחיל בערך בסיס (שאפשר להגדיר) (שצוין על ידי שכבות-העל config_wifiBssidBlocklistMonitorBaseBlockDurationMs
או config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs
, בהתאם ל-RSSI), ועולה באופן מעריכי עד למגבלה עליונה שניתן להגדיר (שצוינה על ידי שכבת-העל config_wifiBssidBlocklistMonitorFailureStreakCap
). משך הזמן גדל אם מתרחשים כשלים רצופיים באותו BSSID. משך החסימה הוא משך החסימה הבסיסי, כפול מספר הפעמים שסדרת הבקשות נכשלה. כלומר, אם סדרת הבקשות נכשלה פעמיים, משך החסימה יהיה פי 4 ממשך החסימה הבסיסי.
ערכי הסף לחסימת BSSID תלויים בסיבה לכישלון, וניתן להתאים אישית כל אחד מהם באמצעות שכבות-על:
- AP דוחה את השיוך באמצעות קוד MBO/OCE Unable to handle new 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.
- הרשת הוסרה: איפוס של 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 כשלים רצופים תושבת למשך 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 מופעלת, המכשיר ינסה להתחבר לרשת החדשה לפני שהוא יתנתק מהרשת הישנה. בתהליך יצירת החיבור לפני ניתוק החיבור הקודם נעשה שימוש באותו אלגוריתם לבחירת רשת כמו בתהליך החלפת הרשת לפני ניתוק החיבור הקודם (שבו המכשיר מתנתק מהרשת הישנה לפני שהוא מתחבר לרשת החדשה). אם אלגוריתם בחירת הרשת בוחר רשת שלא ניתן לעבור אליה באמצעות 'יצירה לפני ניתוק', המכשיר עובר באופן אוטומטי ל'ניתוק לפני יצירה'.
חיבור לאינטרנט וחיבורים מוגבלים בו-זמנית
אם הפונקציה חיבור בו-זמנית לאינטרנט ולרשת מוגבלת מופעלת, המכשיר יכול להתחבר לרשת Wi-Fi משנית מוגבלת שזמינה רק לאפליקציות נבחרות שהוגדרו על ידי יצרן המכשיר. ההוראות ליצרני המכשירים להגדרה הזו מפורטות בקטע חיבור בו-זמנית לאינטרנט ולרשת מוגבלת.
כשאלגוריתם בחירת הרשת מזהה תוצאות סריקה שתואמות להצעה בתשלום או הפרטית של יצרן הציוד המקורי, הוא מתחבר אליה באופן אוטומטי כרשת שנייה. בחירת הרשת של רשת ה-Wi-Fi הראשית (שמספקת חיבור לאינטרנט לאפליקציות רגילות) מתבצעת בדרך כלל במקביל.
שאלות נפוצות
האם לרשתות מאובטחות תמיד יש עדיפות על פני רשתות פתוחות?
לא. רשתות שמורות לעומת רשתות מוצעות, ורשתות בחיוב לפי צריכת נתונים לעומת רשתות ללא חיוב לפי צריכת נתונים הן הקטגוריות הראשיות שבהן הרשתות נבדקות. בכל קטגוריה, לרשתות מאובטחות יש עדיפות מסוימת על פני רשתות פתוחות, אבל איכות החיבור מקבלת משקל גבוה בהרבה.
הסיבה לכך היא שאבטחת נתוני המשתמשים בפועל מתבצעת באמצעות הצפנה מקצה לקצה (למשל, TLS). ברשתות מאובטחות מתבצעת הצפנה רק של שלב התקשורת הראשון, וגם אז, ברשתות עם מפתחות משותפים מראש, אין הרבה פרטיות.
למה רשתות שמורות מקבלות עדיפות על פני רשתות מוצעות?
רשתות חינמיות (ללא חיוב לפי שימוש בנתונים) שמורות מקבלות עדיפות על פני רשתות חינמיות מוצעות, ורשתות שמורות עם חיוב לפי שימוש בנתונים מקבלות עדיפות על פני רשתות מוצעות עם חיוב לפי שימוש בנתונים.
רשתות שמורות מקבלות עדיפות על פני רשתות מוצעות, כי רשתות שמורות הן רשתות שהמשתמש הוסיף למכשיר באופן מפורש. המשמעות היא שהמכשיר יעדיף להתחבר לרשתות האלה כשהדבר אפשרי.
לתשומת ליבכם, משתמשים יכולים להשבית את התנהגות החיבור האוטומטי לרשתות שמורות מסוימות. כלומר, הם יכולים לציין שהרשתות האלה נועדו לשימוש ידני בלבד, ולא להיכלל בבחירה האוטומטית של המכשיר.
האם אפשר לשנות את סדר העדיפות המחמיר או להסיר אותו לגמרי?
יצרן המכשיר יכול לשנות את ההחלטות לגבי בחירת הרשת על ידי שינוי שכבות-העל של הבונוס שמפורטות בקטעים שלמעלה. עם זאת, לא מומלץ לשנות את ערכי ברירת המחדל כי הם נבחרו לאחר בדיקה יסודית של מספר תרחישים לדוגמה.