مسار البيانات السريع

XDP ( مسار البيانات السريع ) هو مسار بيانات شبكي عالي الأداء قائم على eBPF ، يُستخدم لإرسال واستقبال حزم البيانات الشبكية بسرعات عالية عن طريق تجاوز معظم طبقات الشبكة في نظام التشغيل . تم دمجه في نواة لينكس منذ الإصدار 4.8. [ 2 ] هذا التطبيق مرخص بموجب رخصة جنو العمومية (GPL) . تدعم شركات تقنية كبرى، بما في ذلك أمازون وجوجل وإنتل، تطويره. أصدرت مايكروسوفت تطبيقها المجاني والمفتوح المصدر XDP لنظام ويندوز في مايو 2022. [ 1 ] وهو مرخص بموجب رخصة MIT . [ 3 ]

مسار البيانات

مسارات تدفق الحزم في نواة لينكس . يتجاوز بروتوكول XDP مكدس الشبكة وتخصيص الذاكرة لبيانات تعريف الحزم .

تعتمد فكرة XDP على إضافة نقطة ربط مبكرة في مسار الاستقبال (RX) لنواة النظام، والسماح لبرنامج eBPF مُقدّم من المستخدم بتحديد مصير الحزمة. تُوضع نقطة الربط في برنامج تشغيل وحدة تحكم واجهة الشبكة (NIC) مباشرةً بعد معالجة المقاطعة ، وقبل أي تخصيص للذاكرة يحتاجه مكدس الشبكة نفسه، لأن تخصيص الذاكرة قد يكون عملية مُكلفة. بفضل هذا التصميم، تستطيع XDP إسقاط 26 مليون حزمة في الثانية لكل نواة باستخدام أجهزة قياسية . [ 4 ]

يجب أن يجتاز برنامج eBPF اختبار التحقق المسبق [ 5 ] قبل تحميله، وذلك لتجنب تنفيذ تعليمات برمجية خبيثة في مساحة النواة. يتحقق هذا الاختبار من خلو البرنامج من أي عمليات وصول خارج النطاق، أو حلقات تكرارية، أو متغيرات عامة.

يُسمح للبرنامج بتعديل بيانات الحزمة، وبعد أن يعود برنامج eBPF، يحدد رمز الإجراء ما يجب فعله بالحزمة:

  • XDP_PASSدع الحزمة تستمر عبر طبقات الشبكة
  • XDP_DROP: قم بإسقاط الحزمة بصمت
  • XDP_ABORTED: إسقاط الحزمة مع استثناء نقطة التتبع
  • XDP_TXأعد توجيه الحزمة إلى نفس بطاقة الشبكة التي وصلت عليها
  • XDP_REDIRECTإعادة توجيه الحزمة إلى بطاقة شبكة أخرى أو مقبس مساحة المستخدم عبر عائلة عناوين AF_XDP

يتطلب بروتوكول XDP دعمًا في برنامج تشغيل بطاقة الشبكة، ولكن نظرًا لعدم دعم جميع برامج التشغيل له، فإنه يمكن اللجوء إلى تطبيق عام يقوم بمعالجة eBPF في حزمة الشبكة، وإن كان ذلك بأداء أبطأ. [ 6 ]

يمتلك XDP بنية تحتية لنقل برنامج eBPF إلى وحدة تحكم واجهة الشبكة التي تدعمه، مما يقلل من حمل وحدة المعالجة المركزية. في عام 2023، كانت بطاقات Netronome [ 7 ] فقط هي التي تدعمه.

تتعاون مايكروسوفت مع شركات أخرى وتضيف دعمًا لـ XDP في تطبيقها MsQuic لبروتوكول QUIC . [ 1 ]

AF_XDP

إلى جانب XDP، أُضيفت عائلة عناوين جديدة إلى نواة لينكس بدءًا من الإصدار 4.18. [ 8 ] AF_XDP، المعروفة سابقًا باسم AF_PACKETv4 (والتي لم تُضمّن أبدًا في النواة الرئيسية)، [ 9 ] هي مقبس خام مُحسَّن لمعالجة الحزم عالية الأداء، وتسمح بنسخ البيانات دون أي نسخ بين النواة والتطبيقات. وبما أن المقبس يُمكن استخدامه للاستقبال والإرسال، فإنه يدعم تطبيقات الشبكة عالية الأداء في مساحة المستخدم فقط. [ 10 ]

انظر أيضاً

مراجع

  1. 1 2 3 جواد، أسامة (25 مايو 2022). "مايكروسوفت تُطلق مشروع XDP لنظام لينكس على ويندوز" . نيوين . تاريخ الاسترجاع: 26 مايو 2022 .
  2. " [ GIT ] الشبكات - ديفيد ميلر" . lore.kernel.org . تم الاطلاع عليه بتاريخ 14-05-2019 .
  3. ياسر، إردم (25 مايو 2022). "أعلنت مايكروسوفت عن برنامج XDP مفتوح المصدر لنظام ويندوز" . cloud7 . مؤرشف من الأصل في 25 مايو 2022. تم الاطلاع عليه في 26 مايو 2022 .
  4. ^ Høiland-Jørgensen، Toke (2019-05-03)، النص المصدر والبيانات التجريبية لورقتنا التي تصف XDP: tohojo/xdp-paper ، استرجاعها 2019-05-21
  5. "مقدمة شاملة لـ eBPF [ LWN.net ] " . lwn.net . تم الاطلاع عليه بتاريخ 14-05-2019 .
  6. "net: Generic XDP" . www.mail-archive.com . تم الاطلاع عليه بتاريخ 14-05-2019 .
  7. "BPF، وeBPF، وXDP، وBpfilter... ما هي هذه المصطلحات وماذا تعني للمؤسسات؟ - نيترونوم" . www.netronome.com . مؤرشف من الأصل بتاريخ 24 سبتمبر 2020. تم الاطلاع عليه بتاريخ 14 مايو 2019 .
  8. "kernel/git/torvalds/linux.git - شجرة مصدر نواة لينكس" . git.kernel.org . تم الاطلاع عليه بتاريخ 16-05-2019 .
  9. "أسئلة حول AF_PACKET V4 وAF_XDP" . Kernel.org .
  10. كوربيت، جوناثان (9 أبريل 2018). "تسريع الشبكات باستخدام AF_XDP [ LWN.net ] " . lwn.net . تم الاطلاع عليه بتاريخ 16 مايو 2019 .