تتيح ميزة "تخفيف عبء الاتصال بالإنترنت عبر شبكة الجوّال" للأجهزة توفير الطاقة وتحسين الأداء من خلال تخفيف عبء حركة البيانات في عملية الاتصال بالإنترنت عبر شبكة الجوّال (عبر USB أو Wi-Fi) على الجهاز. يتمّ تخفيف عبء معالجة طلبات ربط الشبكات عن طريق توفير مسار مباشر بين المودم والأجهزة الطرفية، مع تخطّي وحدة معالجة التطبيقات.
المواصفات
بدءًا من الإصدار 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.
متطلبات الأجهزة
لتنفيذ ميزة "تخفيف الضغط عن شبكة الجوّال"، يجب أن يكون جهازك قادرًا على إعادة توجيه حزم بروتوكول الإنترنت بين المودم وشبكة 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 لتفريغ عمليات الربط.