تفريغ الموارد في الأجهزة للربط

تتيح ميزة "تخفيف حِمل التوصيل" للأجهزة توفير الطاقة وتحسين الأداء من خلال تخفيف حِمل بيانات التوصيل (عبر USB أو Wi-Fi) إلى الأجهزة. يتم تخفيف الحمل عن حركة بيانات الربط عبر توفير مسار مباشر بين المودم والأجهزة الطرفية، مع تجاوز معالج التطبيقات.

المواصفات

بدءًا من الإصدار 8.1 من نظام التشغيل Android، يمكن للأجهزة استخدام ميزة "تفريغ الربط" لتفريغ عملية إعادة توجيه IPv4 أو IPv6 أو IPv4+IPv6 إلى الأجهزة.

لا تحتاج ميزة تخفيف الحِمل إلى تخفيف الحِمل عن جميع الحِزم. يمكن للإطار التعامل مع أي حزمة في البرنامج. تتم عادةً معالجة حِزم التحكّم في البرامج. بما أنّ منافذ IPv4 مشترَكة بين حركة البيانات المرتبطة بالربط وحركة بيانات الجهاز، يجب معالجة حِزم إعداد/إيقاف جلسة IPv4 (مثل SYN/SYN+ACK وFIN) في البرامج حتى يتمكّن النواة من إنشاء حالة التدفق. يوفر إطار العمل مستوى التحكّم وآلات الحالة. ويوفّر أيضًا للأجهزة معلومات عن الواجهات/البادئات المتّجهة إلى المصدر والمتّجهة إلى الوجهة.

بالنسبة إلى الإصدار الرابع من بروتوكول الإنترنت (IPv4)، تتيح الأجهزة لحِزم إعداد جلسة ترجمة عنوان الشبكة (NAT) الخاصة بالإصدار الرابع من بروتوكول الإنترنت (IPv4) الوصول إلى وحدة المعالجة المركزية. ينشئ النواة إدخالات NAT، وتراقب عملية تنفيذ HAL الإدخالات من واصفات الملفات التي يوفّرها إطار العمل، وتتعامل مع عمليات النقل هذه في الأجهزة. وهذا يعني أنّ تنفيذ HAL لا يتطلّب CAP_NET_* لأنّ HAL يحصل على مقابس 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) الخاصة بتخفيف الحِمل عبر التوصيل.