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

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

المواصفات

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

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

بالنسبة إلى IPv4، يسمح الجهاز لحِزم إعداد جلسة ترجمة عنوان الشبكة (NAT) في IPv4 بالوصول إلى وحدة المعالجة المركزية. ينشئ kernel إدخالات NAT، ويرصد تنفيذ HAL إدخالات من أوصاف الملفات المقدَّمة من إطار العمل ويعالج هذه التدفقات في الأجهزة. وهذا يعني أنّ تنفيذ HAL لا يتطلب CAP_NET_* لأنّ HAL يفتح NF_NETLINK_CONNTRACK مقبسًا من إطار العمل. تُرسِل الأجهزة بصفة دورية تعديلات على حالة ترجمة عنوان الشبكة (NAT) لعمليات البث النشط حاليًا إلى الإطار العملي، ما يؤدي إلى إعادة تحميل إدخالات حالة تتبُّع اتصال الشبكة الأساسية المقابلة.

بالنسبة إلى IPv6، يبرمج إطار العمل قائمة ببادئات وجهات IPv6 التي يجب عدم نقل الزيارات إليها. يمكن نقل جميع الحِزم الأخرى المرتبطة.

لأغراض احتساب استخدام البيانات، تؤدي استطلاعات استخدام البياناتNetworkStatsService إلى أن يطلب الإطار الإحصائي إحصاءات الزيارات من الأجهزة. يُرسِل الإطار أيضًا حدود استخدام البيانات إلى الجهاز من خلال HAL.

متطلبات الأجهزة

لتنفيذ ميزة "تخفيف الضغط عن شبكة الجوّال"، يجب أن يكون جهازك قادرًا على إعادة توجيه حزم IP بين المودم وشبكة Wi-Fi/USB بدون إرسال عدد الزيارات من خلال المعالج الرئيسي.

التنفيذ

لتفعيل ميزة نقل البيانات عبر شبكة الجوّال، يجب تنفيذ العنصرَين التاليَين: واجهة HAL لضبط الشبكة (IOffloadConfig) وواجهة HAL للتحكّم في الشبكة (IOffloadControl).

واجهة HAL للضبط: IOffloadConfig

يبدأ IOffloadConfig HAL تنفيذ عملية نقل بيانات الربط. يزوِّد إطار العمل عملية تنفيذ HALNF_NETLINK_CONNTRACK ب sockets متصلة مسبقًا يمكن لعملية التنفيذ استخدامها لمراقبة تدفقات IPv4. يجب تسريع عمليات النقل المُعاد توجيهها فقط.

طبقة HAL للتحكّم: IOffloadControl

تتحكّم واجهة برمجة التطبيقات IOffloadControl HAL في تنفيذ ميزة "تخفيف الحمل". يجب تنفيذ الطرق التالية:

  • بدء/إيقاف الأجهزة المخصّصة لتفريغ البيانات: استخدِم initOffload/stopOffload واعفِ عناوين IP المحلية أو الشبكات الأخرى من تفريغ البيانات باستخدام setLocalPrefixes.
  • ضبط واجهة الإرسال وعنوان IPv4 وبوابات IPv6: استخدِم setUpstreamParameters وضبط نطاقات عناوين IP للأجهزة المتلقية باستخدام addDownstream/removeDownstream.
  • احتساب استخدام البيانات: استخدِم getForwardedStats/setDataLimit.

يجب أن يرسل موفِّر HAL أيضًا عمليات استدعاء من خلال واجهة ITetheringOffloadCallback ، التي تُعلم الإطار العمل بما يلي:

  • الأحداث غير المتزامنة، مثل بدء إيقاف ميزة "التخفيف من الحمل" (OffloadCallbackEvent)
  • تعديلات مهلة NAT التي يجب إرسالها بشكل دوري للإشارة إلى أنّ مجرى IPv4 معيّنًا يحتوي على حركة مرور ويجب ألا يغلقه kernel

التحقُّق

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