تتيح ميزة "تفريغ الربط" للأجهزة توفير الطاقة وتحسين الأداء من خلال تفريغ حركة بيانات الربط (عبر USB أو Wi-Fi) إلى الأجهزة. يتم تخفيف عبء نقل بيانات الربط عن طريق توفير مسار مباشر بين المودم والأجهزة الطرفية، مع تجاوز معالج التطبيقات.
المواصفات
بدءًا من الإصدار 8.1 من نظام التشغيل Android، يمكن للأجهزة استخدام ميزة "تفريغ الربط" لتفريغ عملية إعادة توجيه IPv4 أو IPv6 أو IPv4+IPv6 إلى الأجهزة.
لا تحتاج ميزة نقل البيانات إلى نقل جميع الحِزم. يمكن للإطار التعامل مع أي حزمة في البرنامج. عادةً ما تتم معالجة حِزم التحكّم في البرامج. بما أنّ منافذ IPv4 تتم مشاركتها بين حركة البيانات المرتبطة بالربط وحركة بيانات الجهاز، يجب معالجة حِزم إعداد/إيقاف جلسة IPv4 (مثل SYN/SYN+ACK وFIN) في البرامج حتى يتمكّن النواة من إنشاء حالة التدفق. يوفر إطار العمل مستوى التحكّم وآلات الحالة. ويوفّر أيضًا للأجهزة معلومات عن الواجهات/البادئات المتّجهة إلى المصدر والمتّجهة إلى الوجهة.
بالنسبة إلى الإصدار الرابع من بروتوكول الإنترنت (IPv4)، تتيح الأجهزة لحِزم إعداد جلسة ترجمة عنوان الشبكة (NAT) للإصدار الرابع من بروتوكول الإنترنت (IPv4) الوصول إلى وحدة المعالجة المركزية. ينشئ النواة إدخالات NAT، ويراقب تنفيذ طبقة تجريد الأجهزة (HAL) الإدخالات من واصفات الملفات التي يوفّرها إطار العمل، ويتعامل مع هذه التدفقات في الأجهزة. وهذا يعني أنّ تنفيذ طبقة تجريد الأجهزة (HAL) لا يتطلّب CAP_NET_*
لأنّ طبقة تجريد الأجهزة تفتح مقابس NF_NETLINK_CONNTRACK
من إطار العمل. ترسل الأجهزة بشكل دوري تحديثات لحالة NAT بشأن التدفقات النشطة حاليًا إلى إطار العمل، ما يؤدي إلى إعادة تحميل إدخالات حالة تتبُّع الاتصال المطابقة في النواة.
بالنسبة إلى IPv6، يبرمج الإطار قائمة من بادئات وجهات IPv6 التي يجب عدم نقل حركة البيانات إليها. ويمكن نقل جميع الحِزم الأخرى المرتبطة بالربط.
بالنسبة إلى احتساب استخدام البيانات، تتسبّب استطلاعات استخدام البيانات NetworkStatsService
في أن يطلب إطار العمل إحصاءات الزيارات من الأجهزة. يُبلغ إطار العمل أيضًا الجهاز بحدود استخدام البيانات من خلال طبقة HAL.
متطلبات الأجهزة
لتنفيذ ميزة "تفريغ بيانات الربط"، يجب أن يكون جهازك قادرًا على إعادة توجيه حِزم بروتوكول الإنترنت بين المودم وشبكة Wi-Fi أو USB بدون إرسال الزيارات عبر المعالج الرئيسي.
التنفيذ
لتفعيل ميزة نقل بيانات الربط، يجب تنفيذ كل من HAL للإعدادات (IOffloadConfig
) وHAL للتحكّم (IOffloadControl
).
Config HAL: IOffloadConfig
يبدأ
IOffloadConfig
HAL عملية تنفيذ نقل بيانات الربط. يوفّر إطار العمل تنفيذ HAL مع مقابس NF_NETLINK_CONNTRACK
متصلة مسبقًا يمكن أن يستخدمها التنفيذ لمراقبة عمليات نقل بيانات IPv4. يجب تسريع التدفقات التي تمت إعادة توجيهها فقط.
طبقة تجريد الأجهزة الخاصة بالتحكّم: IOffloadControl
تتحكّم طبقة تجريد الأجهزة (HAL) في عملية تنفيذ ميزة "التنزيل".
IOffloadControl
يجب تنفيذ الطرق التالية:
- بدء/إيقاف إمكانية نقل البيانات إلى أجهزة خارجية: استخدِم
initOffload/stopOffload
واستثنِ عناوين IP المحلية أو الشبكات الأخرى من عملية نقل البيانات باستخدامsetLocalPrefixes
. - اضبط واجهة المصدر وعنوان IPv4 وبوابات IPv6: استخدِم
setUpstreamParameters
واضبط نطاقات عناوين IP الخاصة بالمصب باستخدامaddDownstream/removeDownstream
. - محاسبة استخدام البيانات: استخدِم
getForwardedStats/setDataLimit
.
يجب أن يرسل HAL الخاص بالمورّد أيضًا عمليات رد الاتصال من خلال واجهة ITetheringOffloadCallback
، التي تُعلم إطار العمل بما يلي:
- الأحداث غير المتزامنة، مثل بدء إيقاف عملية النقل (OffloadCallbackEvent)
- تعديلات مهلة NAT، والتي يجب إرسالها بشكل دوري للإشارة إلى أنّ تدفق IPv4 معيّن يتضمّن زيارات ويجب ألا يتم إغلاقه بواسطة النواة
التحقُّق
للتحقّق من صحة تنفيذ ميزة نقل البيانات عبر الربط، استخدِم اختبارًا يدويًا أو آليًا للتحقّق من أنّ ميزة الربط ونقطة اتصال Wi-Fi تعملان على النحو المتوقّع. تحتوي مجموعة اختبارات المورّد (VTS) على اختبارات لطبقات HAL الخاصة بنقل البيانات عبر الربط.