টিথারিং

অ্যান্ড্রয়েড ১৩-এর আপডেট

আপডেট আরও তথ্য
ক্রসডিভাইস চালু করা হয়েছে ক্রসডিভাইস
স্প্লিট টানেলিং চালু করা হয়েছে বিভক্ত টানেলিং

সংক্ষিপ্ত বিবরণ

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

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

  • মডিউল আপডেটের মাধ্যমে ব্যবহারকারীরা বিভিন্ন অ্যান্ড্রয়েড ডিভাইসে একটি সামঞ্জস্যপূর্ণ অভিজ্ঞতা এবং আন্তঃকার্যক্ষমতার সমস্যার সমাধান পান।

  • OEM-রা ক্যারিয়ারের প্রয়োজনীয়তা পূরণ করার পাশাপাশি স্বতন্ত্র কাস্টমাইজেশনের খরচও কমাতে পারে (কারণ তাদের একই প্রয়োজনীয়তার ভিন্ন ভিন্ন বাস্তবায়নের প্রয়োজন হয় না)।

বিভক্ত টানেলিং

স্প্লিট টানেলিং ব্যবহারের ক্ষেত্রগুলোকে সমর্থন করার জন্য, অ্যান্ড্রয়েড ১৩-এ এক্সক্লুড রুট নির্দিষ্ট করার জন্য একটি নতুন এপিআই যোগ করা হয়েছে।

স্প্লিট টানেলিং বলতে এমন একটি কনফিগারেশনকে বোঝায় যেখানে নির্দিষ্ট কিছু ট্র্যাফিক ভিপিএন-এর মধ্য দিয়ে যায়, কিন্তু অন্য ট্র্যাফিক যায় না। এর একটি সাধারণ উদাহরণ হলো, যখন কোনো সংস্থা চায় যে সাধারণ ওয়েব সার্ফিং, বেশি ব্যান্ডউইথ ব্যবহারকারী অ্যাপ্লিকেশন (যেমন, ইউটিউব, নেটফ্লিক্স) বা লেটেন্সি-সংবেদনশীল অ্যাপ্লিকেশন (যেমন, অফিস ৩৬৫ ) ভিপিএন বাইপাস করুক। স্প্লিট টানেলিং উপলব্ধ হওয়ার আগে, VpnService.Builder ভিপিএন ক্লায়েন্টকে নির্দেশ করার সুযোগ দিত যে শুধুমাত্র কিছু সাবনেট এর মাধ্যমে রাউট করা হবে ( include routes)। স্প্লিট টানেলিং-এর মাধ্যমে, আপনি এর বিপরীতটি নির্দিষ্ট করতে পারেন: অর্থাৎ, নির্দিষ্ট কিছু সাবনেট ছাড়া বাকি সব ট্র্যাফিক ভিপিএন-এর মাধ্যমে রাউট করা ( exclude routes)।

নতুন স্প্লিট টানেলিং এপিআই-এর সিগনেচারটি হলো:

public Builder excludeRoute(@NonNull IpPrefix prefix)

ক্রসডিভাইস

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

ক্রসডিভাইস অনুপ্রেরণা

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

ক্রসডিভাইস মডিউল সীমানা

ক্রসডিভাইস এপিআই packages/modules/CrossDevice/framework
  • NearbyManager
  • AccountProviderBase
ক্রসডিভাইস পরিষেবা packages/modules/CrossDevice/service
  • NearbyService - এপিআই স্ক্যান করা হচ্ছে

ক্রসডিভাইস প্যাকেজ ফরম্যাট

এই মডিউলের প্রধান ফাংশনটি একটি APEX প্যাকেজে অন্তর্ভুক্ত রয়েছে। রিসোর্সগুলো একটি APK-তে প্যাকেজ করা থাকে।

ক্রসডিভাইস নির্ভরতা

CrossDevice নিম্নলিখিত বিষয়গুলির উপর নির্ভর করে:

  • ওয়াইফাই
  • ব্লুটুথ
  • ইউডব্লিউবি
  • মডিউল-ইউটিল-পূর্বশর্ত
  • প্রোটো লাইব্রেরি

ক্রসডিভাইস কাস্টমাইজেশন বিকল্পগুলি

আমরা RRO-এর মাধ্যমে OEMS-দের হাফ শিটের জন্য UI কাস্টমাইজ করার সুযোগ দেওয়ার পরিকল্পনা করছি। এর কার্যকারিতা কাস্টমাইজ করার কোনো পরিকল্পনা নেই।

ক্রসডিভাইস টেস্টিং কৌশল

আমরা ক্রসডিভাইস কার্যকারিতা যাচাই করার জন্য অ্যান্ড্রয়েড কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) টেস্ট এবং MTS-এ ক্রস ডিভাইস টেস্টিং যুক্ত করার পরিকল্পনা করছি।

eBPF টিথারিং অফলোড

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

অ্যান্ড্রয়েড ১২ থেকে, এই কার্যকারিতা (eBPF প্রোগ্রাম কোড সহ) সম্পূর্ণরূপে টিথারিং মডিউল দ্বারা সরবরাহ করা হয়, যা নিম্নলিখিত বিষয়গুলো সমর্থন করে:

  • IPv6 ডাউনলোড (টেদারড ডিভাইসে প্রবাহিত ট্র্যাফিক)
  • IPv6 আপলোড (টেদারড ডিভাইস থেকে প্রবাহিত ট্র্যাফিক)
  • IPv4 TCP/UDP আপলোড এবং ডাউনস্ট্রিম (টেদারড ডিভাইসে আসা-যাওয়ার ট্র্যাফিক)
  • eBPF অফলোড

এই ফিচারটি ডিফল্টরূপে সক্রিয় থাকে, ব্যবহারকারীরা RRO-এর মাধ্যমে config_tether_enable_bpf_offload কনফিগারেশনটি false-এ ওভাররাইড করতে পারেন। আরও তথ্যের জন্য কাস্টমাইজেশন দেখুন।

IPv4 এবং IPv6 সমর্থন

টিথারিং মডিউলটি IPv4 এবং IPv6 ডুয়াল স্ট্যাক সমর্থন করে।

  • IPv4 নেটওয়ার্কের জন্য, মডিউলটি নেটওয়ার্ক অ্যাড্রেস ট্রান্সলেশন (NAT) সেট আপ করে এবং আইপি অ্যাড্রেস বরাদ্দের জন্য ডাইনামিক হোস্ট কনফিগারেশন প্রোটোকল (DHCP) ব্যবহার করে।

  • IPv6 নেটওয়ার্কের জন্য, মডিউলটি আইপি অ্যাড্রেস বরাদ্দ করতে IPv6 স্টেটলেস অ্যাড্রেস অটোকনফিগারেশন (SLAAC) পদ্ধতি গ্রহণ করে।

মডিউল সীমানা

অ্যান্ড্রয়েড ১২ এবং এর পরবর্তী সংস্করণগুলোতে, packages/modules/Connectivity এর অধীনে থাকা সমস্ত ফাইল/ফোল্ডার Tethering মডিউলের আওতাভুক্ত।

অ্যান্ড্রয়েড ১১ এবং এর নিচের সংস্করণগুলোর জন্য, Tethering মডিউলের packages/modules/Tethering ফোল্ডারে নিম্নলিখিত অ্যান্ড্রয়েড ১০ ফাইলগুলো রয়েছে।

  • frameworks/base/services/core/java/com/android/server/connectivity/Tethering.java
  • frameworks/base/services/core/java/com/android/server/connectivity/tethering/
  • frameworks/base/services/core/java/com/android/server/NetworkManagementService.java
  • frameworks/base/services/net/java/android/net/ip/{InterfaceController,IpServer,RouterAdvertisementDaemon}.java
  • frameworks/base/services/net/java/android/net/{netlink,dhcp}/*
  • frameworks/base/services/net/java/android/net/util/{InterfaceSet,InterfaceParams,NetdService,PrefixUtils,SharedLog,VersionedBroadcastListener}.java
  • frameworks/base/core/java/android/net/{ITetheringEventCallback,ITetheringStatsProvider}.aidl
  • frameworks/base/core/java/android/net/{NetworkUtils,util/IpUtils}.java
  • frameworks/base/core/java/com/android/internal/util/{BitUtils,IndentingPrintWriter,State,StateMachine}.java
  • frameworks/base/core/java/com/android/server/connectivity/MockableSystemProperties.java
  • frameworks/base/core/java/android/os/INetworkManagementService.aidl
  • frameworks/base/core/java/android/bluetooth/BluetoothPan.java
  • frameworks/base/services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp
  • packages/apps/Settings/src/com/android/settings/wifi/tether/TetherService.java
  • packages/apps/Settings/src/com/android/settings/network/TetherProvisioningActivity.java

মডিউল ফরম্যাট

টিথারিং মডিউল ( com.android.tethering ) APEX ফরম্যাটে রয়েছে এবং এটি Android 11 বা তার পরবর্তী সংস্করণে চালিত ডিভাইসগুলোর জন্য উপলব্ধ।

কানেক্টিভিটিসার্ভিস অন্তর্ভুক্ত করুন

অ্যান্ড্রয়েড ১২ থেকে, L3+ কানেক্টিভিটির মূল উপাদান বাস্তবায়নকারী ConnectivityService কোডটি Tethering APEX-এ যুক্ত করা হয়েছে। এর ফলে Tethering-এর পরিধি একটি Connectivity মডিউলে প্রসারিত হয়।

মডিউল নির্ভরতা

টেথারিং মডিউলটির নিম্নলিখিত নির্ভরতাগুলো রয়েছে:

  • সিস্টেম সার্ভারে পাবলিক এবং সিস্টেম এপিআই পদ্ধতিসমূহ
  • স্থিতিশীল AIDL IPC-গুলি সিস্টেম সার্ভারের সাথে ইন্টারফেস করে।
  • tetheroffload HIDL ( hardware/interfaces/tetheroffload/ সংজ্ঞায়িত)
  • ডিএইচসিপি সার্ভার (নেটওয়ার্ক স্ট্যাক মডিউলের একটি অংশ)

কাস্টমাইজেশন

টিথারিং মডিউলটি কাস্টমাইজেশন সমর্থন করে না।

পরীক্ষা

অ্যান্ড্রয়েড কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) টিথারিং মডিউলের কার্যকারিতা যাচাই করে।