Wi-Fi নেটওয়ার্ক নির্বাচন

এই পৃষ্ঠায় অ্যান্ড্রয়েড ১২-এ ওয়াই-ফাই নেটওয়ার্ক নির্বাচন এবং সেগুলোর মধ্যে পরিবর্তন করার জন্য ব্যবহৃত অ্যালগরিদম ও পদ্ধতিগুলো বর্ণনা করা হয়েছে। অ্যান্ড্রয়েড ক্রমাগত সংযুক্ত নেটওয়ার্কের মান মূল্যায়ন করে এবং উপলব্ধ নেটওয়ার্কগুলোর মান যাচাই করে।

একটি স্বয়ংক্রিয় সংযোগের জীবনকাল

এই অংশে বর্ণনা করা হয়েছে, কীভাবে একটি অ্যান্ড্রয়েড-চালিত ডিভাইস উপলব্ধ ওয়াই-ফাই নেটওয়ার্কগুলো শনাক্ত করে এবং সেগুলোর সাথে সংযুক্ত হয়।

  1. স্ক্রিন চালু আছে নাকি বন্ধ আছে, তার উপর নির্ভর করে ডিভাইসটি নিম্নলিখিত উপায়গুলোর কোনো একটিতে উপলব্ধ নেটওয়ার্ক স্ক্যান করে।

    • স্ক্রিন অন (সংযুক্ত): অ্যান্ড্রয়েড কানেক্টিভিটি সাবসিস্টেম নিয়মিতভাবে মূল্যায়ন করে যে বর্তমান সংযোগটি স্ক্যানিং এড়িয়ে যাওয়ার জন্য যথেষ্ট ভালো কিনা ( স্ক্রিন-অন স্ক্যান- এ সংজ্ঞায়িত)। যদি সংযোগটি স্ক্যানিং এড়িয়ে যাওয়ার জন্য যথেষ্ট ভালো না হয়, তবে কানেক্টিভিটি সাবসিস্টেম উপলব্ধ নেটওয়ার্কগুলি সনাক্ত করার জন্য একটি স্ক্যান শুরু করে। এই স্ক্যানগুলি অন্যান্য সিস্টেম উপাদান, যেমন লোকেশন সিস্টেম বা কোনো অ্যাপ (সেটিংস অ্যাপ সহ) দ্বারাও শুরু হতে পারে।
    • স্ক্রিন চালু (সংযোগ বিচ্ছিন্ন): অ্যান্ড্রয়েড কানেক্টিভিটি সাবসিস্টেম একটি এক্সপোনেনশিয়াল ব্যাকঅফ শিডিউল অনুসরণ করে পর্যায়ক্রমিক স্ক্যান চালায়। মডিউলটি প্রাপ্ত সমস্ত স্ক্যান ফলাফল মূল্যায়ন করে এবং সংযোগ করার জন্য সেরা নেটওয়ার্কটি বেছে নেওয়ার চেষ্টা করে।
    • স্ক্রিন বন্ধ (সংযোগ বিচ্ছিন্ন): স্ক্রিন বন্ধ হওয়ার সাথে সাথেই হোস্ট সিপিইউ প্রিফার্ড নেটওয়ার্ক অফলোড (PNO) স্ক্যান ব্যবহার করে পছন্দের নেটওয়ার্কগুলোর একটি তালিকা দিয়ে ফার্মওয়্যারকে প্রোগ্রাম করে। ফার্মওয়্যারটি যদি পছন্দের নেটওয়ার্কগুলোর কোনোটি খুঁজে পায়, তবে এটি হোস্টকে জাগিয়ে তোলে। AOSP ধরে নেয় যে ডিভাইসটিতে PNO সমর্থিত।

    স্বয়ংক্রিয় সংযোগ নিষ্ক্রিয় করতে WifiManager#allowAutojoinGlobal(boolean) মেথডটি ব্যবহার করা যেতে পারে। এটি একটি বিশেষাধিকারপ্রাপ্ত এপিআই যা ডিভাইস নির্মাতারা সীমিত পরিস্থিতিতে (উদাহরণস্বরূপ, একটি নন-মোবাইল, পূর্ব-কনফিগার করা ডিভাইস) ব্যবহার করতে পারে।

    যদি ডিভাইসটি সংযুক্ত থাকে এবং config_wifi_framework_enable_associated_network_selection ওভারলে-টি false এ সেট করা থাকে, তাহলে কোনো কানেক্টিভিটি স্ক্যান করা হয় না এবং স্ক্যানের ফলাফল নেটওয়ার্ক সিলেকশন শুরু করে না। ডিভাইসটি সংযোগ বিচ্ছিন্ন থাকলে এই সেটিংটির কোনো প্রভাব থাকে না, অর্থাৎ কানেক্টিভিটি স্ক্যান এবং নেটওয়ার্ক সিলেকশন তখনও সম্পন্ন হয়।

  2. স্ক্যানের ফলাফল মূল্যায়ন করা হয়।

    • ডিভাইসটি কোনো ওয়াই-ফাই নেটওয়ার্কের সাথে সংযুক্ত থাকলে, ফ্রেমওয়ার্কটি মূল্যায়ন করে দেখে যে নেটওয়ার্ক নির্বাচন প্রক্রিয়াটি এড়িয়ে যাওয়ার জন্য বর্তমান নেটওয়ার্কটি যথেষ্ট ভালো কি না।

      যদি নিম্নলিখিত শর্তগুলির মধ্যে যেকোনো একটি পূরণ হয়, তাহলে একটি নেটওয়ার্ককে নেটওয়ার্ক নির্বাচন এড়িয়ে যাওয়ার জন্য যথেষ্ট ভালো বলে সংজ্ঞায়িত করা হয়:

      • সর্বশেষ নেটওয়ার্ক নির্বাচনের পর ১০ সেকেন্ডেরও কম সময় অতিবাহিত হয়েছে।
      • ব্যবহারকারী সম্প্রতি ম্যানুয়ালি নেটওয়ার্কে সংযুক্ত হয়েছেন (যেখানে 'সম্প্রতি' বিষয়টি config_wifiSufficientDurationAfterUserSelectionMilliseconds ' ওভারলে ব্যবহার করে কনফিগার করা যায়)।
      • ডিভাইসটি একটি অনলাইন সাইন আপ (OSU) সংযোগের সাথে সংযুক্ত।
      • নিম্নলিখিত সকল শর্ত পূরণ করা হয়েছে:

        • প্রাপ্ত সংকেত শক্তি নির্দেশক (RSSI) প্রয়োজনীয় RSSI থ্রেশহোল্ডের চেয়ে বেশি অথবা সংযোগটির মাধ্যমে পর্যাপ্ত ট্র্যাফিক প্রবাহিত হচ্ছে (RSSI এবং ট্র্যাফিক থ্রেশহোল্ডের জন্য স্ক্রিন-অন স্ক্যান দেখুন)।
        • নেটওয়ার্কটি যাচাইকৃত (ইন্টারনেটের সাথে সংযুক্ত) অথবা ইন্টারনেট সংযোগ ছাড়াই ব্যবহারের জন্য ব্যবহারকারী কর্তৃক অনুমোদিত।
        • নেটওয়ার্কটি আনমিটারড।
    • নেটওয়ার্ক নির্বাচন এড়িয়ে যাওয়ার মতো যথেষ্ট ভালো হলে, আর কোনো পদক্ষেপ নেওয়া হয় না।

    • যদি সংযুক্ত ওয়াই-ফাই নেটওয়ার্কটি যথেষ্ট ভালো না হয়, অথবা ডিভাইসটি কোনো নেটওয়ার্কের সাথে সংযুক্ত না থাকে, তবে ফ্রেমওয়ার্কটি ফিল্টার করা স্ক্যান ফলাফলের উপর ভিত্তি করে সংযোগ করার জন্য সম্ভাব্য ওয়াই-ফাই নেটওয়ার্কের একটি তালিকা তৈরি করতে নেটওয়ার্ক নমিনেটরদের আহ্বান করে। নেটওয়ার্ক নমিনেটররা বিদ্যমান ওয়াই-ফাই কনফিগারেশন খুঁজে বের করে অথবা সম্ভাব্য নেটওয়ার্কগুলোর জন্য নতুন কনফিগারেশন তৈরি করে।

    • স্ক্যান ফলাফল থেকে সেইসব BSSID বাদ দেওয়া হয় যাদের RSSI এন্ট্রি RSSI-এর চেয়ে কম (যা config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz , config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz , এবং config_wifiFrameworkScoreEntryRssiThreshold6ghz ওভারলে ব্যবহার করে কনফিগার করা যায়)। এছাড়াও, ব্লক করা BSSID-গুলোও ফিল্টার করা হয়। বারবার সংযোগ ব্যর্থতা, ঘন ঘন সংযোগ বিচ্ছিন্ন হওয়া, এবং একটি নির্দিষ্ট সময়ের জন্য অ্যাসোসিয়েশন করার চেষ্টা না করার জন্য AP-এর পক্ষ থেকে সুস্পষ্ট অনুরোধের (MBO-OCE) ভিত্তিতে BSSID ব্লক করা যেতে পারে। BSSID ব্লক করার বিষয়টি SSID এবং BSSID ব্লকিং বিভাগে বর্ণনা করা হয়েছে।

    • ডিভাইসটি যখন চলমান থাকে (কম বা বেশি গতিতে), তখন স্ক্যান ফলাফল থেকে সমস্ত ক্যারিয়ার নেটওয়ার্ক ফিল্টার হয়ে যায়। config_wifiMobilityFilterCarrierIdBlocklist এ নির্দিষ্ট ক্যারিয়ারের ক্যারিয়ার আইডি যোগ করে এই ফিল্টার থেকে তাদের বাদ দেওয়া যেতে পারে।

    • যখন ডিভাইসটি দ্রুত চলমান থাকে, তখন স্ক্যানের ফলাফল থেকে সেইসব BSSID-কে ঐচ্ছিকভাবে আরও ফিল্টার করা হয় যাদের RSSI দ্রুত পরিবর্তিত হয় (যা নির্দেশ করে যে তারা ডিভাইসের সাথে সাথে চলছে না)। এই অপটিমাইজেশনটি config_wifiHighMovementNetworkSelectionOptimizationEnabled (অপটিমাইজেশনটি চালু বা বন্ধ করার জন্য), এবং config_wifiHighMovementNetworkSelectionOptimizationScanDelayMsconfig_wifiHighMovementNetworkSelectionOptimizationRssiDelta ওভারলে ব্যবহার করে কনফিগার করা যায়, যা স্ক্যানের ফলাফলের স্থিতিশীলতার প্রয়োজনীয়তা (যথেষ্ট সময় ব্যবধানে স্ক্যানের ফলাফলগুলোতে RSSI-এর পরিবর্তন) নির্ধারণ করে।

  3. ফ্রেমওয়ার্কটি প্রতিটি SSID ক্যান্ডিডেটের জন্য একটি স্কোর তৈরি করতে ক্যান্ডিডেট স্কোরার চালায়। SSID ক্যান্ডিডেটগুলোর মধ্যে একাধিক BSSID ক্যান্ডিডেট (নেটওয়ার্ক নমিনেটরদের দ্বারা তৈরি) অন্তর্ভুক্ত থাকতে পারে। সর্বোচ্চ স্কোরধারী ক্যান্ডিডেটটিই বিজয়ী ক্যান্ডিডেট

  4. ফ্রেমওয়ার্কটি ইউজার কানেক্ট চয়েস অ্যালগরিদম কার্যকর করে, যা ক্যান্ডিডেট স্কোরার থেকে বিজয়ী ক্যান্ডিডেট ব্যবহার করার পরিবর্তে ব্যবহারকারী-নির্বাচিত একটি নেটওয়ার্ককে নতুন বিজয়ী ক্যান্ডিডেট হিসেবে ঘোষণা করতে পারে।

  5. এই কাঠামোটি নির্ধারণ করে যে বিজয়ী প্রার্থী সংযুক্ত নেটওয়ার্কের সাথে মেলে কিনা। মিলে গেছে বলে বিবেচিত হতে হলে, নিম্নলিখিত শর্তগুলোর মধ্যে একটি অবশ্যই পূরণ করতে হবে:

    • বিজয়ী প্রার্থী এবং সংযুক্ত ওয়াই-ফাই নেটওয়ার্কের বিএসএসআইডি (BSSID) একই।
    • যদি ফার্মওয়্যার রোমিং উপলব্ধ থাকে (বিএসএসআইডি ব্লক লিস্ট সক্ষমতা সহ), তাহলে বিজয়ী প্রার্থী এবং সংযুক্ত নেটওয়ার্কের এসএসআইডি এবং নিরাপত্তার ধরণ একই হবে।

    যদি বিজয়ী ক্যান্ডিডেট সংযুক্ত নেটওয়ার্কের সাথে মিলে যায়, তবে আর কোনো পদক্ষেপ নেওয়া হয় না। যদি বিজয়ী ক্যান্ডিডেট নেটওয়ার্কের সাথে না মেলে, তবে ডিভাইসটি বিজয়ী ক্যান্ডিডেটের সাথে সংযুক্ত হয়।

একটি সংযুক্ত নেটওয়ার্কের মূল্যায়ন

অ্যান্ড্রয়েড ফ্রেমওয়ার্ক বা ফার্মওয়্যার পর্যায়ক্রমে সংযুক্ত নেটওয়ার্কের মান মূল্যায়ন করে। স্ক্রিন চালু বা বন্ধ থাকা অবস্থায় সংযুক্ত নেটওয়ার্কটি কীভাবে মূল্যায়ন করা হয়, তা এই অংশে বর্ণনা করা হয়েছে।

পূর্ববর্তী অধ্যায়গুলোতে আলোচিত নেটওয়ার্ক নির্বাচনের পাশাপাশি এই মূল্যায়নটি করা হয়।

স্ক্রিন চালু

অ্যান্ড্রয়েড ফ্রেমওয়ার্ক সংযুক্ত নেটওয়ার্কটিকে নিম্নলিখিত উপায়ে মূল্যায়ন করে:

  1. ওয়াই-ফাই পরিষেবাটি প্রতি ৩ সেকেন্ডে RSSI এবং লিঙ্ক-লেয়ার পরিসংখ্যান সংগ্রহ করে (যা config_wifiPollRssiIntervalMilliseconds ওভারলে ব্যবহার করে কনফিগার করা যায়)।

    যদি config_wifiAdjustPollRssiIntervalEnabled ওভারলে ব্যবহার করে ডাইনামিক ইন্টারভ্যাল অ্যাডজাস্টমেন্ট সক্রিয় করা হয়, তাহলে ডিভাইসের গতিশীলতার অবস্থা এবং RSSI-এর উপর ভিত্তি করে পোলিং ইন্টারভ্যাল গতিশীলভাবে পরিবর্তিত হয়।

    • যখন ডিভাইসটি স্থির থাকে এবং RSSI -68 dBm-এর বেশি হয় (যা config_wifiClientRssiMonitorThresholdDbm এবং config_wifiClientRssiMonitorHysteresisDb ওভারলে দ্বারা কনফিগার করা হয়), তখন পোলিং ব্যবধান 6 সেকেন্ড পর্যন্ত বাড়ানো হয় (যা config_wifiPollRssiLongIntervalMilliseconds ওভারলে দ্বারা কনফিগার করা হয়)।
    • যখন ডিভাইসটি স্থির থাকে না অথবা RSSI -73 dBm-এর কম হয় (যা config_wifiClientRssiMonitorThresholdDbm ওভারলে দ্বারা কনফিগার করা হয়), তখন পোলিং ব্যবধান কমিয়ে আবার 3 সেকেন্ড করা হয় (যা config_wifiPollRssiIntervalMilliseconds ওভারলে দ্বারা কনফিগার করা হয়)।
  2. ওয়াই-ফাই পরিষেবাটি আরএসএসআই (RSSI) এবং লিঙ্ক-লেয়ার পরিসংখ্যানের উপর ভিত্তি করে একটি সংযুক্ত স্কোর গণনা করে। এই গণনার জন্য দুটি মডেল উপলব্ধ রয়েছে, যা config_internalScorerType দিয়ে কনফিগার করা যায়:

    • ডিফল্ট: লিঙ্ক লেয়ারের পরিসংখ্যানের উপর প্রশিক্ষিত একটি মেশিন-লার্নিং-ভিত্তিক স্কোরার।
    • বিকল্প: একটি পুরোনো স্কোরার যা RSSI মানের পরিবর্তনের উপর ভিত্তি করে মূল্যায়ন করে।
  3. ঐচ্ছিক: OEM-রা একটি বাহ্যিক স্কোরার অ্যাপ প্রয়োগ করে সংযুক্ত নেটওয়ার্ক মূল্যায়ন লজিকটি কাস্টমাইজ করতে পারে। এটি করার জন্য WifiConnectedNetworkScorer ইন্টারফেসটি ইমপ্লিমেন্ট করতে হয় এবং WifiManager#setWifiConnectedNetworkScorer(executor, scorer) API ব্যবহার করে এটিকে রেজিস্টার করতে হয়।

    নিবন্ধিত হলে, বহিরাগত স্কোরার নিম্নলিখিত দ্বিমুখী প্রবাহের মাধ্যমে ফ্রেমওয়ার্কের সাথে যোগাযোগ করে:

    • ইনপুট (ফ্রেমওয়ার্ক → স্কোরার)
      ফ্রেমওয়ার্কটি স্কোরারকে গুরুত্বপূর্ণ লাইফসাইকেল এবং কোয়ালিটি ইভেন্টগুলো সম্পর্কে অবহিত করে:

      • সেশন লাইফসাইকেল: onStart() এবং onStop() নির্দেশ করে কখন একটি Wi-Fi সংযোগ শুরু বা বন্ধ হয়।
      • ওয়াই-ফাই পরিসংখ্যান: স্কোরার OnWifiUsabilityStatsListener#onWifiUsabilityStats() ব্যবহার করে লিঙ্ক লেয়ার পরিসংখ্যানের (যেমন RSSI, লিঙ্ক স্পিড এবং প্যাকেট সংখ্যা) পর্যায়ক্রমিক আপডেট গ্রহণ করে। এই আপডেটগুলি গ্রহণ করার জন্য, স্কোরারকে অবশ্যই WifiManager#addOnWifiUsabilityStatsListener() ব্যবহার করে একটি লিসেনার রেজিস্টার করতে হবে।
    • ক্রিয়াকলাপ (স্কোরার → ফ্রেমওয়ার্ক)
      স্কোরার ScoreUpdateObserver কলব্যাক অবজেক্টের মেথডগুলো কল করার মাধ্যমে ওয়াই-ফাই সার্ভিসকে নির্দেশনা দেয়:

      • ব্যবহারযোগ্যতার অবস্থা: নেটওয়ার্ক নির্বাচন নিয়ন্ত্রণের প্রধান উপায় হলো notifyStatusUpdate(sessionId, isUsable) কল করা।
        • isUsable = true : নেটওয়ার্কটি বৈধ। ফ্রেমওয়ার্কটি সিস্টেম ট্র্যাফিকের জন্য এটিকে ডিফল্ট নেটওয়ার্ক হিসেবে উন্নীত করে।
        • isUsable = false : নেটওয়ার্কটি অবৈধ। ফ্রেমওয়ার্কটি এটিকে ডিফল্ট হিসেবে ব্যবহার করা এড়িয়ে চলে এবং মোবাইল ডেটাতে ফিরে যায়।
      • নাগালের মধ্যে আছে কিনা তা যাচাই: requestNudOperation() কল করলে গেটওয়েটি নাগালের মধ্যে আছে কিনা তা যাচাই করার জন্য একটি সক্রিয় নেইবার আনরিচেবিলিটি ডিটেকশন (NUD) চেক (যেমন, ARP বা ND প্রোব) চালু হয়।
      • BSSID ব্লকলিস্টিং: blocklistCurrentBssid() কল করলে ডিভাইসটি বর্তমান অ্যাক্সেস পয়েন্টের (AP) সাথে পুনরায় যুক্ত হতে পারে না। স্কোরার যদি AP-নির্দিষ্ট কোনো সমস্যা শনাক্ত করে, তবে এটি কার্যকর।
  4. যদি কোনো OEM ধাপ ৩-এ বর্ণিত অনুযায়ী তাদের নিজস্ব স্কোরার প্রয়োগ করে থাকে, তাহলে Wi-Fi পরিষেবা সংযুক্ত নেটওয়ার্ক মূল্যায়ন সম্পর্কিত সিদ্ধান্তগুলি OEM স্কোরারের উপর ছেড়ে দেয়।
    যদি কোনো OEM তাদের নিজস্ব স্কোরার প্রয়োগ না করে থাকে, তাহলে ওয়াই-ফাই পরিষেবা ইন্টারনেটের জন্য মোবাইল ডেটাতে স্যুইচ করবে কিনা তা নির্ধারণ করতে ধাপ ২-এ গণনা করা স্কোরটি ব্যবহার করে।

স্ক্রিন বন্ধ

ফ্রেমওয়ার্কটি সংযুক্ত নেটওয়ার্কে কোনো মূল্যায়ন শুরু করে না, কিন্তু অন্যান্য কম্পোনেন্ট (যেমন, লোকেশন সার্ভিস) দ্বারা স্ক্যান শুরু করা হলে নেটওয়ার্ক নির্বাচন প্রক্রিয়াটি তখনও ঘটতে পারে। ফার্মওয়্যারটি নেটওয়ার্কের মান মূল্যায়ন করে এবং নেটওয়ার্কের মান খারাপ হলে, ফার্মওয়্যারটি রোম করতে পারে অথবা (অবশেষে) নেটওয়ার্ক থেকে বিচ্ছিন্ন হয়ে হোস্টকে জাগিয়ে তুলতে পারে।

সংযোগ স্ক্যান

ডিভাইসটির স্ক্রিন চালু আছে, স্ক্রিন বন্ধ রেখে ওয়াই-ফাই-এর সাথে সংযুক্ত আছে, অথবা স্ক্রিন বন্ধ রেখে ওয়াই-ফাই-এর সাথে সংযুক্ত নেই—এইসবের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে স্ক্যান করা হয়।

স্ক্রিন চালু

স্ক্রিন চালু হলে ফ্রেমওয়ার্কটি ক্রমবর্ধমান বিরতিতে স্ক্যানের সিদ্ধান্ত গ্রহণ করে। স্ক্যানের সিদ্ধান্তের বিরতিগুলো config_wifiDisconnectedScanIntervalScheduleSec , config_wifiConnectedScanIntervalScheduleSec , এবং config_wifiSingleSavedNetworkConnectedScanIntervalScheduleSec ওভারলে (যা পূর্ণসংখ্যার অ্যারে) দ্বারা কনফিগার করা হয়। ডিফল্টরূপে, স্ক্যানগুলো ২০, ৪০, ৮০, এবং ১৬০ সেকেন্ডের এক্সপোনেনশিয়াল ব্যাকঅফ বিরতি ব্যবহার করে সম্পন্ন হয়, এবং পরবর্তী স্ক্যানগুলো সম্ভবত ১৬০ সেকেন্ডের বিরতিতে সম্পাদিত হতে পারে (এগুলো এই ওভারলেগুলোর ডিফল্ট মান)।

যখনই স্ক্রিনের অবস্থার পরিবর্তন হয়, অর্থাৎ যখন স্ক্রিনটি চালু বা বন্ধ করা হয়, তখন এক্সপোনেনশিয়াল ব্যাকঅফ স্ক্যান ব্যবধানগুলি রিসেট হয়ে ২০ সেকেন্ডে পুনরায় শুরু হয়।

(অ্যান্ড্রয়েড ১৩+) রানটাইমে যদি ভিন্ন ভিন্ন স্ক্যান ব্যবধানের প্রয়োজন হয়, তাহলে একটি OEM প্রিভিলেজড অ্যাপ ডায়নামিকভাবে স্ক্রিন-অন স্ক্যান শিডিউল সেট করার জন্য WifiManager#setScreenOnScanSchedule(screenOnScanSchedule) API-টি কল করতে পারে।

স্ক্যান চালানো হবে নাকি এড়িয়ে যাওয়া হবে, সেই সিদ্ধান্ত নির্ভর করে বর্তমান নেটওয়ার্ক সংযোগটি স্ক্যান এড়িয়ে যাওয়ার জন্য যথেষ্ট ভালো কিনা তার উপর। একটি সংযোগ স্ক্যান এড়িয়ে যাওয়ার জন্য যথেষ্ট ভালো বলে বিবেচিত হয় যদি নিম্নলিখিত শর্তগুলির মধ্যে যেকোনো একটি পূরণ হয়:

  • ডিভাইসটি একটি অনলাইন সাইন আপ (OSU) সংযোগের সাথে সংযুক্ত।
  • সংযোগটির মাধ্যমে পর্যাপ্ত ট্র্যাফিক প্রবাহিত হচ্ছে (ট্র্যাফিকের সীমা পরে দেখুন)।
  • RSSI প্রয়োজনীয় RSSI থ্রেশহোল্ডের চেয়ে বেশি (RSSI থ্রেশহোল্ড সম্পর্কে পরে দেখুন), এবং নেটওয়ার্ক নির্বাচন সম্প্রতি করা হয়েছে (ডিফল্টরূপে ১০ মিনিট, তবে config_wifiConnectedHighRssiScanMinimumWindowSizeSec ওভারলে ব্যবহার করে এটি কনফিগার করা যায়), এবং নেটওয়ার্কটি হয় যাচাইকৃত (ইন্টারনেটের সাথে সংযুক্ত) অথবা ইন্টারনেট সংযোগ ছাড়াই ব্যবহারের জন্য ব্যবহারকারী-অনুমোদিত।

আরএসএসআই এবং ট্র্যাফিক থ্রেশহোল্ডগুলো হলো:

  • config_wifi_framework_wifi_score_low_rssi_threshold_24GHz ওভারলে দিয়ে কনফিগার করা 2.4 GHz ব্যান্ডের জন্য RSSI -73 dBm-এর চেয়ে বেশি, অথবা config_wifi_framework_wifi_score_low_rssi_threshold_5GHz এবং config_wifiFrameworkScoreLowRssiThreshold6ghz ওভারলে দিয়ে কনফিগার করা 5 GHz এবং 6 GHz ব্যান্ডের জন্য RSSI -70 dBm-এর চেয়ে বেশি।
  • config_wifiFrameworkMinPacketPerSecondActiveTraffic ওভারলে দিয়ে কনফিগার করা ট্র্যাফিক (প্রেরণ বা গ্রহণ) প্রতি সেকেন্ডে ১৬ প্যাকেটের (pps) বেশি।

যখন ডিভাইসটি সংযুক্ত থাকে এবং স্ক্রিনটি চালু থাকে, তখন একটি সংযুক্ত স্কোরার পর্যায়ক্রমে RSSI এবং স্থানান্তরিত প্যাকেটের সংখ্যার মতো সংকেতগুলো দেখে ওয়াই-ফাই-এর মান পর্যবেক্ষণ করে। যদি ওয়াই-ফাই-এর মান খারাপ বলে নির্ধারিত হয় (যেমনটি পরে উল্লেখ করা হয়েছে) এবং ডিভাইসটি একই সাথে দুটি স্টেশন সমর্থন করে, তাহলে একটি স্ক্যান চালু করা হয়। স্ক্যানিং চালু করার জন্য স্কোর থ্রেশহোল্ড কনফিগার করতে config_wifiLowConnectedScoreThresholdToTriggerScanForMbb ওভারলেটি ব্যবহার করা যেতে পারে। এই স্ক্যানগুলোর সময়কাল কনফিগার করতে config_wifiLowConnectedScoreScanPeriodSeconds ওভারলেটি ব্যবহার করা যেতে পারে।

স্ক্রিন বন্ধ এবং ওয়াই-ফাই এর সাথে সংযুক্ত

যখন স্ক্রিন বন্ধ থাকে এবং ডিভাইসটি একটি ওয়াই-ফাই নেটওয়ার্কের সাথে সংযুক্ত থাকে, তখন ফার্মওয়্যার (ওয়াই-ফাই এসওসি) রোমিং স্ক্যান করে। স্ক্রিন বন্ধ থাকলে ফ্রেমওয়ার্ক কোনো স্ক্যান করে না।

স্ক্রিন বন্ধ এবং ওয়াই-ফাই এর সাথে সংযুক্ত নয় (সংযোগ বিচ্ছিন্ন অবস্থা)

যখন স্ক্রিন বন্ধ থাকে এবং ওয়াই-ফাই সংযোগ বিচ্ছিন্ন থাকে, তখন ফার্মওয়্যারটি এসএসআইডি (SSID)-এর জন্য পিএনও (PNO) স্ক্যান করে। ফ্রেমওয়ার্কটি স্ক্যান করার জন্য এসএসআইডি-র একটি তালিকা এবং স্ক্যান করার জন্য চ্যানেলের একটি তালিকা দিয়ে ফার্মওয়্যারটিকে কনফিগার করে দেয়। যদি কোনো কনফিগার করা এসএসআইডি খুঁজে পাওয়া যায়, তাহলে ফার্মওয়্যারটি ফ্রেমওয়ার্কটিকে জাগিয়ে তোলে।

ফ্রেমওয়ার্কটি ডিভাইসের গতিশীলতার অবস্থা ব্যবহার করে বিভিন্ন স্ক্যান ব্যবধান নির্বাচন করার মাধ্যমে, ফার্মওয়্যারটি কত ব্যবধানে PNO স্ক্যান করবে তাও নির্ধারণ করে। কম গতিশীলতার অবস্থায় (ডিভাইসটি স্থির থাকলে), প্রথম তিনটি স্ক্যানের জন্য ব্যবধান হয় ৬০ সেকেন্ড (যা config_wifiStationaryPnoScanIntervalMillis ওভারলে দ্বারা নিয়ন্ত্রিত), এবং পরবর্তী স্ক্যানগুলোর জন্য তা হয় ১৮০ সেকেন্ড (ওভারলেটির একটি নির্দিষ্ট ৩x গুণক)। বেশি গতিশীলতার অবস্থায়, প্রথম তিনটি স্ক্যানের জন্য ব্যবধান হয় ২০ সেকেন্ড (যা config_wifiMovingPnoScanIntervalMillis ওভারলে দ্বারা নিয়ন্ত্রিত), এবং পরবর্তী স্ক্যানগুলোর জন্য তা হয় ৬০ সেকেন্ড (ওভারলেটির একটি নির্দিষ্ট ৩x গুণক)।

নেটওয়ার্ক মনোনীতকারীরা

নেটওয়ার্ক নমিনেটররা সেইসব নেটওয়ার্কের জন্য কনফিগারেশন ( WifiConfiguration ) খুঁজে বের করে বা তৈরি করে, যেগুলো হলো:

  • উপলব্ধ (স্ক্যান ফলাফলের উপর ভিত্তি করে) অথবা সংযুক্ত নেটওয়ার্ক (যা কখনও কখনও ত্রুটিপূর্ণ স্ক্যান ফলাফলে অনুপস্থিত থাকে)।
  • সর্বনিম্ন RSSI রাখুন। ২.৪ গিগাহার্টজ ব্যান্ডের জন্য সর্বনিম্ন RSSI হলো -৮০ dBm এবং ৫ ও ৬ গিগাহার্টজ ব্যান্ডের জন্য -৭৭ dBm, যা config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz , config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz , এবং config_wifiFrameworkScoreEntryRssiThreshold6ghz ওভারলে ব্যবহার করে কনফিগার করা যায়।
  • উদাহরণস্বরূপ, পূর্ববর্তী সংযোগ ব্যর্থতার কারণে অবরুদ্ধ নয়।
  • নেটওয়ার্কটি যে ব্যবহারযোগ্য নয়, তা নির্দেশ করে না (উদাহরণস্বরূপ, MBO/OCE ব্যবহার করে)।
  • ডিভাইসে উপলব্ধ পরিচয়পত্র ব্যবহার করে সংযুক্ত করা যেতে পারে।

নিম্নলিখিত নেটওয়ার্ক মনোনীতকারীগুলো ব্যবহৃত হয়:

  • সংরক্ষিত নেটওয়ার্ক মনোনীতকারী: সমস্ত সংরক্ষিত নেটওয়ার্ক (সংরক্ষিত পাসপয়েন্ট সাবস্ক্রিপশন সহ) মূল্যায়ন করে।
  • প্রস্তাবিত নেটওয়ার্ক মনোনীতকারী: সাজেশন এপিআই ব্যবহার করে অ্যাপগুলো দ্বারা প্রদত্ত সমস্ত নেটওয়ার্ক মূল্যায়ন করে (প্রস্তাবিত পাসপয়েন্ট সাবস্ক্রিপশন সহ)।

প্রার্থী স্কোরাররা

ক্যান্ডিডেট স্কোরাররা প্রতিটি ক্যান্ডিডেটকে মূল্যায়ন করে একটি স্কোর প্রদান করে। ThroughputScorer (ডিফল্ট স্কোরার)-এর স্কোর নিম্নলিখিত বিষয়গুলির উপর ভিত্তি করে নির্ধারিত হয়:

  • RSSI-এর উপর ভিত্তি করে একটি বেস স্কোর গণনা করা হয়, যেখানে 2.4 GHz ব্যান্ডের জন্য RSSI-এর সর্বোচ্চ সীমা -73 dBm অথবা 5 GHz এবং 6 GHz ব্যান্ডের জন্য -70 dBm নির্ধারণ করা হয়েছে (যা config_wifi_framework_wifi_score_low_rssi_threshold_24GHz , config_wifi_framework_wifi_score_low_rssi_threshold_5GHz , এবং config_wifiFrameworkScoreLowRssiThreshold6ghz ওভারলেগুলির মাধ্যমে কনফিগার করা হয়েছে)।
  • প্রযুক্তি, চ্যানেল ফ্রিকোয়েন্সি, ব্যান্ডউইথ, আরএসএসআই, চ্যানেলের অবস্থা, স্পেশিয়াল স্ট্রিমের সর্বোচ্চ সংখ্যা এবং অন্যান্য প্যারামিটার থেকে প্রাপ্ত থ্রুপুট অনুমানের উপর ভিত্তি করে একটি স্কোর বুস্ট গণনা করা হয়। স্কোর বুস্টটি config_wifiFrameworkThroughputBonusNumerator এবং config_wifiFrameworkThroughputBonusDenominator ওভারলে ব্যবহার করে কনফিগার করা যায় এবং এটি config_wifiFrameworkThroughputBonusLimit ওভারলে ব্যবহার করে নির্দিষ্ট করা একটি সর্বোচ্চ মানে সীমাবদ্ধ থাকে।
  • ব্যবহারকারী বা কোনো অ্যাপ দ্বারা সম্প্রতি নির্বাচিত একটি সম্ভাব্য নেটওয়ার্ক, config_wifiFrameworkLastSelectionMinutes ওভারলে ব্যবহার করে কনফিগারযোগ্য একটি নির্দিষ্ট সময়কালের জন্য বড় অঙ্কের স্কোর বৃদ্ধি পায় (এই সময়কাল পর্যন্ত, ব্যবহারকারী-নির্বাচিত নয় এমন নেটওয়ার্কগুলোর চেয়ে নেটওয়ার্কটিকে নির্বাচিত হিসেবে যাচাই করা হয়)।
  • যে ক্যান্ডিডেট বর্তমান নেটওয়ার্কের সাথে মিলে যায়, সে config_wifiFrameworkCurrentNetworkBonusMin এবং config_wifiFrameworkCurrentNetworkBonusPercent ওভারলে দ্বারা কনফিগার করা একটি স্কোর বুস্ট পায় (এটি তার RSSI এবং থ্রুপুট-ভিত্তিক স্কোরের একটি শতাংশের উপর ভিত্তি করে একটি অতিরিক্ত বোনাস পায়, যা কনফিগারযোগ্য সর্বনিম্ন সীমা পর্যন্ত প্রযোজ্য)।
  • একটি সুরক্ষিত নেটওয়ার্ক একটি উন্মুক্ত নেটওয়ার্কের চেয়ে বেশি স্কোর পায়। এই বোনাসটি config_wifiFrameworkSecureNetworkBonus ওভারলে ব্যবহার করে কনফিগার করা হয়।
  • একটি আনমিটারড (ফ্রি) নেটওয়ার্ককে একটি মিটারড (পেইড) নেটওয়ার্কের চেয়ে বেশি স্কোর দেওয়া হয়। এই বোনাসটি config_wifiFrameworkUnmeteredNetworkBonus ওভারলে ব্যবহার করে কনফিগার করা হয়।
  • সাজেশন এপিআই (Suggestion API) ব্যবহার করে প্রস্তাবিত নেটওয়ার্কের চেয়ে সংরক্ষিত নেটওয়ার্ককে বেশি স্কোর দেওয়া হয়। এই বোনাসটি config_wifiFrameworkSavedNetworkBonus ওভারলে ব্যবহার করে কনফিগার করা হয়।
  • অবিশ্বস্ত নেটওয়ার্কগুলোকে (যেগুলোর জন্য সাজেশন এপিআই-এর অংশ হিসেবে অনুরোধ করা যায়) অন্য যেকোনো নেটওয়ার্কের চেয়ে কম স্কোর দেওয়া হয়।
  • যে নেটওয়ার্কে আগে ইন্টারনেট সংযোগ ছিল না বলে শনাক্ত করা হয়েছিল, ডিভাইসটি যদি ইন্টারনেট সংযোগসহ অন্য কোনো নেটওয়ার্কে সংযুক্ত হয়, তাহলে সেটির স্কোর ০ হয়ে যায়।

সংরক্ষিত বনাম সাজেশন এবং আনমিটারড বনাম মিটারড-এর জন্য ডিফল্ট বোনাস (অর্থাৎ, ডিফল্ট ওভারলে মানগুলি) সংরক্ষিত, সাজেস্টেড, মিটারড এবং আনমিটারড-এর জন্য একটি কঠোর অগ্রাধিকার ক্রম তৈরি করে:

  1. সংরক্ষিত সীমাহীন নেটওয়ার্ক
  2. প্রস্তাবিত আনমিটারড নেটওয়ার্ক
  3. সংরক্ষিত মিটারযুক্ত নেটওয়ার্ক
  4. প্রস্তাবিত মিটারযুক্ত নেটওয়ার্কগুলি

এর মানে হলো, একটি সংরক্ষিত মিটারড (পেইড) নেটওয়ার্কের আগে সর্বদা একটি সংরক্ষিত আনমিটারড (ফ্রি) নেটওয়ার্ক নির্বাচিত হয়। ব্যবহারকারী বা অ্যাপের মাধ্যমে সম্প্রতি নির্বাচিত স্কোর বোনাস এই কঠোর অগ্রাধিকারকে অগ্রাহ্য করতে পারে।

ফ্রেমওয়ার্কটিতে একাধিক সম্ভাব্য স্কোরার ইনস্টল করা থাকতে পারে, কিন্তু একবারে কেবল একটিই সক্রিয় থাকতে পারে। অন্যান্য স্কোরারগুলো মেট্রিক্সের জন্য (বিকল্প অ্যালগরিদম যাচাই করার জন্য) ব্যবহার করা যেতে পারে। অ্যান্ড্রয়েড ১১-এ, ডিফল্ট স্কোরার হলো ThroughputScorer

SSID এবং BSSID ব্লক করা

ফ্রেমওয়ার্কটি SSID বা BSSID ব্লক করতে পারে, যার অর্থ হলো এটি সংযোগের জন্য সেগুলোকে সাময়িকভাবে বা স্থায়ীভাবে বিবেচনা করবে না।

BSSID ব্লক করা

BSSID ব্লকিং প্রতিটি নির্দিষ্ট ব্যর্থতার ধরণ অনুযায়ী দুটি ব্যর্থতা কাউন্টার—একটি ধারাবাহিক ব্যর্থতা কাউন্টার এবং একটি স্ট্রিক কাউন্টার—রাখার মাধ্যমে কাজ করে (ব্যর্থতার ধরণগুলোর তালিকার জন্য পরে দেখুন)। যখন কোনো ব্যর্থতা ঘটে:

  • সংশ্লিষ্ট ব্যর্থতার ধরনের জন্য কাউন্টারটি বৃদ্ধি করা হয়।
  • যদি সেই ব্যর্থতার ধরণটির জন্য ব্যর্থতার সীমা অতিক্রম করা হয়:
    • BSSID-টি ব্লক করা হয়েছে।
    • ব্যর্থতার জন্য স্ট্রিক কাউন্টারটি বৃদ্ধি করা হয়।

একটি BSSID যে সময়ের জন্য ব্লক থাকে, তা একটি কনফিগারযোগ্য বেস ভ্যালু থেকে শুরু হয়। এই বেস ভ্যালুটি RSSI-এর উপর নির্ভর করে config_wifiBssidBlocklistMonitorBaseBlockDurationMs অথবা config_wifiBssidBlocklistMonitorBaseLowRssiBlockDurationMs ওভারলে দ্বারা নির্দিষ্ট করা হয়। এরপর এই সময়কাল config_wifiBssidBlocklistMonitorFailureStreakCap ওভারলে দ্বারা নির্দিষ্ট একটি কনফিগারযোগ্য ঊর্ধ্বসীমা পর্যন্ত সূচকীয়ভাবে বৃদ্ধি পায়। যদি একই BSSID-তে ক্রমাগত ব্যর্থতা ঘটতে থাকে, তাহলে এই সময়কাল আরও বৃদ্ধি পায়। এই সময়কাল হলো বেস ডিউরেশনের সাথে ফেইলর স্ট্রিকের সূচকীয় বৃদ্ধি; উদাহরণস্বরূপ, ২ বারের ফেইলর স্ট্রিকের অর্থ হলো বেস ব্লক ডিউরেশনের ৪ গুণ।

BSSID ব্লক করার থ্রেশহোল্ডগুলো ব্যর্থতার কারণের উপর নির্ভর করে এবং ওভারলে ব্যবহার করে প্রতিটিই কাস্টমাইজ করা যায়:

  • MBO/OCE ব্যবহার করে AP অ্যাসোসিয়েশন প্রত্যাখ্যান করেছে। নতুন 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 ব্লক তালিকা থেকে মুছে ফেলা হয় যখন:

  • যখন ওয়াই-ফাই চালু করা হয়, তখন ব্লক তালিকা থেকে সমস্ত 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-তে ৩ ঘণ্টার বেশি সময় আগে সংযুক্ত হয়ে থাকে)
    • REASON_NONLOCAL_DISCONNECT_CONNECTING
  • নেটওয়ার্ক যাচাইকরণ সফল হলে, নিম্নলিখিত ত্রুটি কোডের জন্য কাউন্টারগুলি রিসেট করা হয়:

    • REASON_NETWORK_VALIDATION_FAILURE
  • যখন DHCP প্রোভিশনিং সফল হয়, তখন নিম্নলিখিত এরর কোডের জন্য কাউন্টারগুলি রিসেট করা হয়:

    • REASON_DHCP_FAILURE

এসএসআইডি ব্লক করা

এসএসআইডি (SSID) ব্লকিং বিএসএসআইডি (BSSID) ব্লকিং-এর মতোই কাজ করে। যখন কোনো নির্দিষ্ট ধরনের সংযোগ ব্যর্থ হয়, তখন নেটওয়ার্ক প্রতি ব্যর্থতার ধরনের জন্য একটি ফেইলর কাউন্টার বৃদ্ধি পায়। যখন কোনো নির্দিষ্ট ধরনের ব্যর্থতার সংখ্যা একটি নির্দিষ্ট সীমা অতিক্রম করে, তখন কনফিগারেশনের উপর ভিত্তি করে এসএসআইডি-টি স্থায়ীভাবে বা অস্থায়ীভাবে ব্লক করা হয়। প্রতিটি ব্যর্থতার ধরনের জন্য কনফিগারেশনটি WifiConfiguration.NetworkSelectionStatus.DISABLE_REASON_INFOS এ কোড করা থাকে এবং নিম্নলিখিত সারণীতে তার সারসংক্ষেপ দেওয়া হয়েছে।

সাময়িকভাবে নিষ্ক্রিয় নেটওয়ার্কের ক্ষেত্রে, নিষ্ক্রিয়তার সময়কাল নেটওয়ার্কে পরপর সংযোগ ব্যর্থতার সংখ্যার উপর ভিত্তি করে গতিশীলভাবে পরিবর্তিত হয়। একটি নেটওয়ার্ক পরপর পাঁচবার সংযোগ করতে ব্যর্থ হওয়ার পর, পরবর্তী প্রতিটি ব্যর্থতার ফলে নিষ্ক্রিয়তার সময়কাল আগেরটির দ্বিগুণ হয়। উদাহরণস্বরূপ, পরপর পাঁচবার ব্যর্থ হওয়া একটি নেটওয়ার্ক ৫ মিনিটের জন্য নিষ্ক্রিয় হয়, তারপর ষষ্ঠ ব্যর্থতার জন্য ১০ মিনিট, সপ্তম ব্যর্থতার জন্য ২০ মিনিট, এবং এভাবেই সর্বোচ্চ ১৮ ঘণ্টা পর্যন্ত নিষ্ক্রিয় থাকে।

ব্যর্থতার কোড বর্ণনা থ্রেশহোল্ড ভিত্তি নিষ্ক্রিয় সময়কাল* অক্ষম প্রকার
DISABLED_DHCP_FAILURE ডিএইচসিপি প্রদানে ব্যর্থতা ৫ মিনিট অস্থায়ী
DISABLED_NO_INTERNET_TEMPORARY নেটওয়ার্ক যাচাইকরণ ব্যর্থ হয়েছে, কিন্তু ব্যবহারকারী জানিয়েছেন যে তিনি ভবিষ্যতেও এই নেটওয়ার্কে সংযুক্ত থাকতে চান। ১০ মিনিট অস্থায়ী
DISABLED_AUTHENTICATION_NO_CREDENTIALS আবেদনকারীর নেটওয়ার্কে সংযোগ করার জন্য প্রয়োজনীয় পরিচয়পত্র নেই। প্রযোজ্য নয় স্থায়ী
DISABLED_NO_INTERNET_PERMANENT নেটওয়ার্ক যাচাইকরণ ব্যর্থতার জন্য ডিফল্ট প্রযোজ্য নয় স্থায়ী
DISABLED_BY_WIFI_MANAGER অপ্রচলিত এবং অব্যবহৃত প্রযোজ্য নয় স্থায়ী
DISABLED_BY_WRONG_PASSWORD পাসওয়ার্ডটি ভুল, এবং এই নেটওয়ার্কে কখনও সফলভাবে সংযোগ করা যায়নি। প্রযোজ্য নয় স্থায়ী
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION যেখানে সিম কার্ডটি সাবস্ক্রাইব করা নেই, সেখানে EAP ব্যর্থতা। প্রযোজ্য নয় স্থায়ী
DISABLED_ASSOCIATION_REJECTION অ্যাসোসিয়েশন প্রত্যাখ্যান ব্যর্থতা ৫ মিনিট অস্থায়ী
DISABLED_AUTHENTICATION_FAILURE অন্যান্য প্রমাণীকরণ ব্যর্থতা (অর্থাৎ, ভুল পাসওয়ার্ড বা EAP ব্যর্থতা নয়) ৫ মিনিট অস্থায়ী
DISABLED_AUTHENTICATION_PRIVATE_EAP_ERROR প্রদানকারী-নির্দিষ্ট (ব্যক্তিগত) EAP ব্যর্থতা। প্রযোজ্য নয় স্থায়ী
DISABLED_NETWORK_NOT_FOUND আবেদনকারী স্ক্যান ফলাফলে এমন কোনো নেটওয়ার্ক খুঁজে পেতে ব্যর্থ হয়েছে যা সংযোগের জন্য ফ্রেমওয়ার্ক কর্তৃক অনুরোধকৃত নেটওয়ার্কের (নেটওয়ার্ক সক্ষমতা সহ) সাথে মেলে। ৫ মিনিট অস্থায়ী
DISABLED_CONSECUTIVE_FAILURES নেটওয়ার্কটি পরপর পাঁচ বা ততোধিক বার সংযোগ স্থাপন করতে ব্যর্থ হয়েছে। এই ব্যর্থতাগুলোর ধরনের মধ্যে এই সারণিতে তালিকাভুক্ত ব্যর্থতার ধরনগুলো অন্তর্ভুক্ত, তবে তা শুধু এগুলোর মধ্যেই সীমাবদ্ধ নয়।
৫ মিনিট অস্থায়ী

সাময়িকভাবে নিষ্ক্রিয় করা নেটওয়ার্ক নিম্নলিখিত ক্ষেত্রে পুনরায় সক্রিয় করা হয়:

  • নিষ্ক্রিয় থাকার সময়কাল শেষ হয়েছে।
  • ব্যবহারকারী নিজে সংযোগ করার জন্য নেটওয়ার্ক নির্বাচন করেন।
  • ব্যবহারকারী ওয়াই-ফাই চালু বা বন্ধ করেন।
  • সিস্টেমটি রিবুট করা হয়েছে।
  • খুব কম আরএসএসআই-তে নেটওয়ার্কটি নিষ্ক্রিয় হয়ে গিয়েছিল, কিন্তু পরে মাঝারি বা তার চেয়ে বেশি আরএসএসআই-তে নেটওয়ার্কটি আবার শনাক্ত হয়।

একটি স্থায়ীভাবে নিষ্ক্রিয় নেটওয়ার্ক পুনরায় সক্রিয় হয় যখন:

  • ব্যবহারকারী নিজে সংযোগ করার জন্য নেটওয়ার্ক নির্বাচন করেন।

একটি নেটওয়ার্কের ব্যর্থতা কাউন্টারগুলি রিসেট করা হয় যখন:

  • নেটওয়ার্কটি সরিয়ে ফেলা হয়েছে।
  • ডিভাইসটি সফলভাবে নেটওয়ার্কের সাথে সংযুক্ত হয়েছে।
  • নিষ্ক্রিয় থাকার সময়সীমা শেষ হয়ে যাওয়ায় নেটওয়ার্কটি পুনরায় সক্রিয় করা হয়েছে।
  • ব্যবহারকারী নিজে সংযোগ করার জন্য নেটওয়ার্ক নির্বাচন করেন।
  • সিস্টেমটি রিবুট করা হয়েছে।

স্কোর কার্ড

অ্যান্ড্রয়েড ১০-এ প্রবর্তিত স্কোর কার্ড, BSSID-গুলো সম্পর্কে ডিভাইসের পরিসংখ্যান রেকর্ড করে। IpMemoryStore সার্ভিস ব্যবহার করে স্কোর কার্ডগুলো স্থায়ীভাবে সংরক্ষণ করা হয়।

অ্যান্ড্রয়েড ১১-এ নেটওয়ার্ক নির্বাচনের ক্ষেত্রে স্কোর কার্ড ব্যবহার করা হয় না।

ব্যবহারকারীর সংযোগ পছন্দ

অ্যান্ড্রয়েডে একটি ইউজার কানেক্ট চয়েস অ্যালগরিদম রয়েছে, যা ব্যবহারকারীর দ্বারা স্পষ্টভাবে সংযুক্ত ওয়াই-ফাই নেটওয়ার্কগুলোকে (যেমন, হোম নেটওয়ার্ক) অগ্রাধিকার দেয়। ব্যবহারকারীরা পাবলিক নেটওয়ার্কের চেয়ে এই ধরনের নেটওয়ার্ক বেশি পছন্দ করতে পারেন, এমনকি যখন এর পারফরম্যান্স পাবলিক নেটওয়ার্কের চেয়ে কম হয়, কারণ এগুলো বাড়ির ডিভাইস নিয়ন্ত্রণের মতো অতিরিক্ত পরিষেবা প্রদান করে।

ব্যবহারকারী যখন একটি নেটওয়ার্ক নির্বাচন করেন, তখন দৃশ্যমান সমস্ত ওয়াই-ফাই কনফিগারেশন এবং তাদের সিগন্যাল শক্তি চিহ্নিত করার মাধ্যমে ব্যবহারকারীর পছন্দের নেটওয়ার্কটি নথিভুক্ত করা হয়। স্বয়ংক্রিয় নির্বাচন প্রক্রিয়ার সময় যদি চিহ্নিত ওয়াই-ফাই কনফিগারেশনগুলোর মধ্যে কোনো একটি নির্বাচিত হয় এবং ব্যবহারকারী-নির্বাচিত কোনো নেটওয়ার্ক উপলব্ধ থাকে, তবে নিম্নলিখিত শর্তগুলো পূরণ হলে ইউজার কানেক্ট চয়েস অ্যালগরিদম সেই নির্বাচনটিকে বাতিল করে ব্যবহারকারী-নির্বাচিত নেটওয়ার্কটি নির্বাচন করে দেয়:

  • ইউজার কানেক্ট চয়েস নেটওয়ার্কটিতে শেষবার ব্যবহারের সময় ইন্টারনেট সংযোগ ছিল।
  • ব্যবহারকারীর নির্বাচিত সংযোগের সিগন্যাল শক্তি, একটি ত্রুটির মার্জিন সহ, প্রথমবার নির্বাচনের সময়ের চেয়ে খারাপ নয়। এই ত্রুটির মার্জিনটি config_wifiEstimateRssiErrorMarginDb ওভারলে ব্যবহার করে কনফিগার করা যায়।

ব্যবহারকারীর পছন্দের সংযোগ নেটওয়ার্কটি রিবুটের পরেও অক্ষুণ্ণ থাকে। এই সংযোগ পছন্দটি সংরক্ষিত নেটওয়ার্ক, পাসপয়েন্ট নেটওয়ার্ক এবং সাজেশন নেটওয়ার্কের ক্ষেত্রে কাজ করে।

দ্বৈত সমান্তরাল স্টেশন

এই অংশে বর্ণনা করা হয়েছে, যখন কোনো ডিভাইস একই সাথে দুটি ওয়াই-ফাই নেটওয়ার্কে সংযোগ সমর্থন করে, তখন কীভাবে ওয়াই-ফাই নেটওয়ার্ক নির্বাচন করতে হয়।

বিরতির আগে তৈরি করুন

যদি মেক-বিফোর-ব্রেক ফাংশনটি সক্রিয় করা থাকে, তাহলে ডিভাইসটি পুরানো নেটওয়ার্ক থেকে সংযোগ বিচ্ছিন্ন করার আগে নতুন নেটওয়ার্কে সংযোগ করার চেষ্টা করে। মেক-বিফোর-ব্রেক প্রক্রিয়াটি ব্রেক-বিফোর-মেক নেটওয়ার্ক সুইচিং-এর মতোই একই নেটওয়ার্ক নির্বাচন অ্যালগরিদম ব্যবহার করে (যেখানে ডিভাইসটি নতুন নেটওয়ার্কে সংযোগ করার আগে পুরানো নেটওয়ার্ক থেকে সংযোগ বিচ্ছিন্ন করে)। যদি নেটওয়ার্ক নির্বাচন অ্যালগরিদম এমন একটি নেটওয়ার্ক বেছে নেয় যা মেক-বিফোর-ব্রেক ব্যবহার করে সুইচ করা যায় না, তাহলে ডিভাইসটি স্বয়ংক্রিয়ভাবে ব্রেক-বিফোর-মেক পদ্ধতিতে ফিরে যায়।

একই সাথে সীমাবদ্ধ এবং ইন্টারনেট সংযোগ

যদি ‘ একযোগে সীমাবদ্ধ এবং ইন্টারনেট সংযোগ ’ ফাংশনটি সক্রিয় করা থাকে, তাহলে ডিভাইসটি একটি দ্বিতীয় সীমাবদ্ধ ওয়াই-ফাই নেটওয়ার্কে সংযোগ করতে পারে যা শুধুমাত্র ডিভাইস প্রস্তুতকারকের দ্বারা কনফিগার করা নির্বাচিত অ্যাপগুলির জন্য উপলব্ধ। ডিভাইস প্রস্তুতকারকদের জন্য এটি কনফিগার করার নির্দেশাবলী ‘একযোগে সীমাবদ্ধ এবং ইন্টারনেট সংযোগ’ অংশে রয়েছে।

যখন নেটওয়ার্ক সিলেকশন অ্যালগরিদম OEM-এর পেইড বা প্রাইভেট সাজেশনের সাথে মিলে যাওয়া স্ক্যান রেজাল্ট শনাক্ত করে, তখন এটি স্বয়ংক্রিয়ভাবে সেটিকে দ্বিতীয় নেটওয়ার্ক হিসেবে সংযুক্ত করে। প্রাইমারি ওয়াই-ফাই নেটওয়ার্কের (যা সাধারণ অ্যাপগুলোতে ইন্টারনেট সংযোগ সরবরাহ করে) জন্য নেটওয়ার্ক সিলেকশন সাধারণত সমান্তরালভাবে সম্পন্ন হয়।

প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী (FAQ)

  1. সুরক্ষিত নেটওয়ার্কগুলো কি সবসময় উন্মুক্ত নেটওয়ার্কের চেয়ে অগ্রাধিকার পায়?

    না। সংরক্ষিত বনাম প্রস্তাবিত এবং মিটারযুক্ত বনাম মিটারবিহীন হলো প্রধান বিভাগ, যার ভিত্তিতে নেটওয়ার্ক মূল্যায়ন করা হয়। প্রতিটি বিভাগের মধ্যে, সুরক্ষিত নেটওয়ার্কগুলো উন্মুক্ত নেটওয়ার্কের চেয়ে কিছুটা অগ্রাধিকার পায়, কিন্তু সংযোগের গুণমানকে অনেক বেশি গুরুত্ব দেওয়া হয়।

    এর কারণ হলো, ব্যবহারকারীর ডেটার প্রকৃত নিরাপত্তা এন্ড-টু-এন্ড এনক্রিপশনের (যেমন, TLS) মাধ্যমে প্রদান করা হয়। সুরক্ষিত নেটওয়ার্কগুলো যোগাযোগের কেবল প্রথম ধাপটি এনক্রিপ্ট করে, এবং এমনকি তখনও, প্রিশেয়ার্ড কী-যুক্ত নেটওয়ার্কগুলোর ক্ষেত্রে, সেগুলো খুব বেশি গোপনীয়তা প্রদান করে না।

  2. কেন প্রস্তাবিত নেটওয়ার্কের চেয়ে সংরক্ষিত নেটওয়ার্কগুলোকে অগ্রাধিকার দেওয়া হয়?

    সংরক্ষিত বিনামূল্যের (আনমিটারড) নেটওয়ার্কগুলোকে প্রস্তাবিত বিনামূল্যের নেটওয়ার্কগুলোর চেয়ে অগ্রাধিকার দেওয়া হয়, এবং সংরক্ষিত মিটারড নেটওয়ার্কগুলোকে প্রস্তাবিত মিটারড নেটওয়ার্কগুলোর চেয়ে অগ্রাধিকার দেওয়া হয়।

    সংরক্ষিত নেটওয়ার্কগুলোকে প্রস্তাবিত নেটওয়ার্কের চেয়ে অগ্রাধিকার দেওয়া হয়, কারণ এগুলো এমন নেটওয়ার্ক যা ব্যবহারকারী নিজে ডিভাইসে যুক্ত করেছেন। এর থেকে বোঝা যায় যে, সম্ভব হলে তিনি এই নেটওয়ার্কগুলোর সাথেই সংযোগ করতে বেশি আগ্রহী।

    উল্লেখ্য যে, ব্যবহারকারীরা পৃথকভাবে সংরক্ষিত নেটওয়ার্কগুলোর জন্য স্বয়ংক্রিয় সংযোগ ব্যবস্থাটি নিষ্ক্রিয় করতে পারেন; অর্থাৎ, তারা নির্দেশ দিতে পারেন যে এই নেটওয়ার্কগুলো শুধুমাত্র ম্যানুয়ালি ব্যবহার করা হবে এবং ডিভাইসটি এগুলোকে স্বয়ংক্রিয়ভাবে বিবেচনা করবে না।

  3. আমি কি কঠোর অগ্রাধিকার ক্রম পরিবর্তন করতে বা এটি সম্পূর্ণরূপে মুছে ফেলতে পারি?

    পূর্ববর্তী বিভাগগুলিতে তালিকাভুক্ত বোনাস ওভারলেগুলি পরিবর্তন করে আপনি নেটওয়ার্ক নির্বাচনের সিদ্ধান্তগুলি সংশোধন করতে পারেন। তবে, ডিফল্ট মানগুলি পরিবর্তন করার পরামর্শ দেওয়া হয় না, কারণ একাধিক ব্যবহারের ক্ষেত্র সতর্কভাবে বিবেচনা করে সেগুলি বেছে নেওয়া হয়েছে।