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

تعتمد فكرة 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 2 3 جواد، أسامة (25 مايو 2022). "مايكروسوفت تُطلق مشروع XDP لنظام لينكس على ويندوز" . نيوين . تاريخ الاسترجاع: 26 مايو 2022 .
- ↑ " [ GIT ] الشبكات - ديفيد ميلر" . lore.kernel.org . تم الاطلاع عليه بتاريخ 14-05-2019 .
- ↑ ياسر، إردم (25 مايو 2022). "أعلنت مايكروسوفت عن برنامج XDP مفتوح المصدر لنظام ويندوز" . cloud7 . مؤرشف من الأصل في 25 مايو 2022. تم الاطلاع عليه في 26 مايو 2022 .
- ^ Høiland-Jørgensen، Toke (2019-05-03)، النص المصدر والبيانات التجريبية لورقتنا التي تصف XDP: tohojo/xdp-paper ، استرجاعها 2019-05-21
- ↑ "مقدمة شاملة لـ eBPF [ LWN.net ] " . lwn.net . تم الاطلاع عليه بتاريخ 14-05-2019 .
- ↑ "net: Generic XDP" . www.mail-archive.com . تم الاطلاع عليه بتاريخ 14-05-2019 .
- ↑ "BPF، وeBPF، وXDP، وBpfilter... ما هي هذه المصطلحات وماذا تعني للمؤسسات؟ - نيترونوم" . www.netronome.com . مؤرشف من الأصل بتاريخ 24 سبتمبر 2020. تم الاطلاع عليه بتاريخ 14 مايو 2019 .
- ↑ "kernel/git/torvalds/linux.git - شجرة مصدر نواة لينكس" . git.kernel.org . تم الاطلاع عليه بتاريخ 16-05-2019 .
- ↑ "أسئلة حول AF_PACKET V4 وAF_XDP" . Kernel.org .
- ↑ كوربيت، جوناثان (9 أبريل 2018). "تسريع الشبكات باستخدام AF_XDP [ LWN.net ] " . lwn.net . تم الاطلاع عليه بتاريخ 16 مايو 2019 .
روابط خارجية
- وثائق XDP على موقع Read the Docs
- وثائق AF_XDP على kernel.org
- xdp-for-windows على GitHub
- عرض توضيحي لتقنية XDP في مؤتمر FOSDEM 2017 من تقديم دانيال بوركمان، سيليوم
- AF_XDP في FOSDEM 2018 بواسطة Magnus Karlsson، Intel
- eBPF.io - مقدمة، دروس تعليمية، وموارد مجتمعية
- L4Drop: إجراءات تخفيف هجمات DDoS بتقنية XDP ، كلاود فلير
- يونيموج: موازن الأحمال الطرفي من كلاود فلير ، كلاود فلير
- طرح برنامج Katran، وهو برنامج مفتوح المصدر لموازنة أحمال الشبكة قابل للتوسع ، من قِبل فيسبوك.
- Cilium's L4LB: موازن تحميل XDP مستقل ، Cilium
- استبدال Kube-proxy في طبقة XDP ، Cilium
- بودكاست eCHO حول XDP وموازنة الأحمال
- برنامج جدار الحماية
- برامج أمان لينكس
- ميزات نواة لينكس
- برامج مايكروسوفت المجانية
- برنامج يستخدم رخصة جنو العمومية العامة
- برنامج مرخص بموجب ترخيص MIT
- برنامج 2016
- برنامج مجاني مكتوب بلغة C
