নেটওয়ার্ক স্তর

নেটওয়ার্ক স্ট্যাক হল একটি আপডেটযোগ্য মেইনলাইন মডিউল যা নিশ্চিত করে যে অ্যান্ড্রয়েড বিকশিত নেটওয়ার্ক মানগুলির সাথে খাপ খাইয়ে নিতে পারে এবং নতুন বাস্তবায়নের সাথে আন্তঃক্রিয়াশীলতার অনুমতি দেয়৷ উদাহরণস্বরূপ, ক্যাপটিভ পোর্টাল সনাক্তকরণ এবং লগইন কোডের আপডেটগুলি অ্যান্ড্রয়েডকে ক্যাপটিভ পোর্টাল মডেল পরিবর্তনের সাথে আপ টু ডেট থাকার অনুমতি দেয় এবং APF-এর আপডেটগুলি অ্যান্ড্রয়েডকে Wi-Fi-এ পাওয়ার সঞ্চয় করতে দেয় কারণ নতুন ধরণের প্যাকেটগুলি সাধারণ হয়ে উঠেছে৷

অন্তর্ভুক্ত উপাদান

নেটওয়ার্ক স্ট্যাক মডিউলে নিম্নলিখিত উপাদান রয়েছে। মডিউল ব্যবহার করে ডিভাইসগুলিতে, এই পরিষেবাগুলি একটি ভিন্ন প্রক্রিয়ায় স্থানান্তরিত হয়েছিল এবং একটি স্থিতিশীল AIDL ইন্টারফেসের মাধ্যমে অ্যাক্সেস করা হয়৷

  • আইপি সেবা। IpClient (পূর্বে IpManager ) হল আইপি লেয়ার প্রভিশনিং এবং রক্ষণাবেক্ষণের দায়িত্বে থাকা একটি উপাদান। অ্যান্ড্রয়েড 9-এ, এটি ইতিমধ্যেই ব্লুটুথের মতো উপাদানগুলির দ্বারা ক্রস-প্রসেস এবং Wi-Fi-এর মতো উপাদানগুলির দ্বারা প্রক্রিয়াধীন ব্যবহার করা হয়েছিল৷ DhcpClient DHCP সার্ভার থেকে IP ঠিকানাগুলি পায় যাতে সেগুলি ইন্টারফেসে বরাদ্দ করা যায়।

  • নেটওয়ার্ক মনিটর। NetworkMonitor উপাদানটি একটি নতুন নেটওয়ার্কের সাথে সংযোগ করার সময় বা নেটওয়ার্ক ব্যর্থতার সময়, ক্যাপটিভ পোর্টালগুলি সনাক্ত করার সময় এবং নেটওয়ার্কগুলিকে যাচাই করার সময় ইন্টারনেট অ্যাক্সেসযোগ্যতার জন্য পরীক্ষা করে।

  • ক্যাপটিভ পোর্টাল লগইন অ্যাপ। ক্যাপটিভ পোর্টালে লগইন পরিচালনার দায়িত্বে একটি আগে থেকে ইনস্টল করা অ্যাপ। এটি অ্যান্ড্রয়েড 5.0 থেকে একটি পৃথক অ্যাপ, তবে এটি সিস্টেমে ব্যবহারকারীর কিছু পছন্দ ফরোয়ার্ড করতে NetworkMonitor সাথে যোগাযোগ করে।

প্রভাবিত পাথ

রিফ্যাক্টর দ্বারা নেটওয়ার্ক স্ট্যাক মডিউলে স্থানান্তরিত পাথগুলি নীচে তালিকাভুক্ত করা হয়েছে।

  • আইপি সেবা। frameworks/base/services/net/java/android/net/ :

    • apf
    • dhcp
    • ip
    • netlink
    • util (আংশিক)
  • ক্যাপটিভ পোর্টাল সনাক্তকরণ এবং লগইন। frameworks/base/ :

    • core/java/android/net/captiveportal/
    • services/core/java/com/android/server/connectivity/NetworkMonitor.java
    • packages/CaptivePortalLogin/*

সরানো কোডের নতুন অবস্থান packages/modules/NetworkStack , packages/modules/CaptivePortalLogin এবং অন্যান্য কিছু শেয়ার করা অবস্থানে রয়েছে। উপরের পাথগুলি মেইনলাইনের জন্য সেখানে সরানোর আগে ফাইলগুলির অবস্থান উল্লেখ করে। packages/modules/NetworkStack এবং packages/modules/CaptivePortalLogin ফাইলগুলি মেইনলাইন মডিউলের অংশ এবং সংশোধন করা যায় না।

প্যাকেজ বিন্যাস

নেটওয়ার্ক স্ট্যাক মডিউলে APK ফরম্যাটে নিম্নলিখিত উপাদান রয়েছে:

  • আইপি সেবা
  • ক্যাপটিভ পোর্টাল লগইন ( com.google.android.captiveportallogin )

এই মডিউলটির সাথে নেটওয়ার্ক স্ট্যাক পারমিশন কনফিগার মডিউল রয়েছে, যা একটি পূর্ব-ইনস্টল করা APK ফাইল যা নেটওয়ার্ক স্ট্যাকের উপাদানগুলির জন্য প্রয়োজনীয় অনুমতিগুলিকে সংজ্ঞায়িত করে৷

নির্ভরতা

নেটওয়ার্ক স্ট্যাক মডিউল নিম্নলিখিত উপর নির্ভর করে:

  • সিস্টেম সার্ভারে সুবিধাপ্রাপ্ত @লুকান পদ্ধতি (যেমন, IConnectivityManager.aidl এ)। এই APIগুলিকে @SystemApi তৈরি করা হয়েছে এবং যথাযথভাবে সুরক্ষিত করা হয়েছে যাতে সেগুলি মেইনলাইন মডিউলে অ্যাক্সেসযোগ্য তবে অন্যান্য সুবিধাপ্রাপ্ত অ্যাপ নয় (যেমন, একটি নতুন স্বাক্ষর অনুমতি ব্যবহার করে)।

  • INetd.aidl এ সংজ্ঞায়িত netd বাইন্ডার আইপিসি। এই ইন্টারফেসটি স্থিতিশীল AIDL-এ রূপান্তরিত করা হয়েছে এবং কনফরমেন্স পরীক্ষার বিষয়।