برنامج AC قمت بإنشائه لإرسال حزم UDP إلى عنوان IP ومنفذ محددين للوجهة عبر مآخذ التوصيل الأولية. هذا البرنامج يدعم ما يلي:
pthreads
(خيوط متعددة).ملاحظة - هذا البرنامج لا يدعم تجزئة الحزم وليس هناك أي فائدة لإضافة هذا الدعم لأن هذا ليس الغرض من إنشاء البرنامج.
أتعلم حاليًا المزيد عن فحص الحزم المتعمق بالإضافة إلى تعلم كيفية عمل هجمات (D)DoS. لقد صنعت هذا البرنامج واستخدمه فقط على شبكتي المحلية. أخطط لإنشاء تطبيق خادم UDP قادر على تصفية هجمات (D) DoS وحظرها باستخدام XDP بمجرد اكتشافها. سيتم استخدام هذه الأداة لاختبار تطبيق الخادم الذي سأقوم بإنشائه. في النهاية سأصنع برنامجًا سيتم تشغيله على شبكة Anycast الخاصة بي والذي سيكون قادرًا على إسقاط هجمات DoS (D) المكتشفة عبر XDP على جميع خوادم POP.
لقد استخدمت دول مجلس التعاون الخليجي لتجميع هذا البرنامج. يجب عليك إضافة -lpthread
في نهاية الأمر عند التحويل عبر مجلس التعاون الخليجي.
هنا مثال:
gcc -g UDP_Sender.c -o UDP_Sender -lpthread
الاستخدام هو كما يلي:
Usage: ./UDP_Sender <Source IP> <Destination IP> <Destination IP> [<Max> <Min> <Interval> <Thread Count>]
يرجى ملاحظة أن الفاصل الزمني بالميكروثانية . الحمولات Min وMax بالبايت . إذا قمت بتعيين الفاصل الزمني إلى 0، فلن ينتظر بين إرسال الحزم على كل مؤشر ترابط.
هنا مثال:
./UDP_Sender 192.168.80.10 10.50.0.4 27015 1000 1200 1000 3
ما ورد أعلاه يرسل الحزم باستمرار إلى 10.50.0.4
(المنفذ 27015
) ويظهر من 192.168.80.10
(في حالتي، مخادع). فهو يرسل ما بين 1000
إلى 1200
بايت من بيانات الحمولة النافعة كل 1000
ميكروثانية. وسوف ترسل هذه الحزم من 3
المواضيع.
لقد تمكنت من دفع حوالي 300 ميجابت في الثانية (~ 23 كيلو بايت في الثانية) باستخدام هذا البرنامج على شبكتي المحلية حتى أدى إلى زيادة تحميل جهاز التوجيه الخاص بي وجهاز VM (لدي جهاز توجيه منخفض الطرف). كان هذا مع عدم وجود فاصل زمني محدد وباستخدام مؤشر ترابط واحد. يحتوي الجهاز الافتراضي الذي يرسل المعلومات على 6 وحدات معالجة مركزية افتراضية وكان المعالج من طراز Intel Xeon الأقدم الذي يعمل بسرعة 2.4 جيجا هرتز. كان هذا الجهاز الافتراضي يستخدم أيضًا حوالي 90 - 95٪ من وحدة المعالجة المركزية عند تشغيل هذا البرنامج.
ما زلت جديدًا إلى حد ما على لغة C وبرمجة الشبكات. ولذلك، أنا متأكد من أن هناك تحسينات يمكن القيام بها. إذا رأيت أي شيء يمكن تحسينه، واسمحوا لي أن أعرف :)