DatagramTuneler

يقوم برنامج العميل/الخادم البسيط عبر الأنظمة الأساسية بإعادة توجيه مخططات بيانات UDP من خلال اتصال TCP (المعروف أيضًا باسم النفق). ينضم العميل إلى مجموعة البث المتعدد ويعيد توجيه مخططات البيانات المستلمة إلى الخادم، والذي يقوم بدوره ببثها على شبكته الفرعية الخاصة.
- مصممة مع وضع البساطة في الاعتبار
- تم الاختبار على OSX 10.13.3 و Ubuntu 16.04 و Centos 7.4
- غير متوافق مع نظام التشغيل Windows
محتوى
متطلبات
تثبيت
ملخص
أمثلة
كيف يعمل؟
بروتوكول DTEP
الترخيص
متطلبات
- جهاز كمبيوتر يعمل بتوزيع Linux أو Mac OS
- مترجم C ++
التثبيت في 10 ثانية
- قم بتنزيل المستودع أو استنساخه.
- اذهب إلى المستودع:
cd <path_to_the_repo>/DatagramTunneler
- قم ببناء DatagramTunneler ببساطة عن طريق تشغيل make:
- أنت جاهز لتشغيل الملف الثنائي DatagramTunneler:
./bin/DatagramTunneler -h
لمزيد من المعلومات حول كيفية تشغيله، قم بمراجعة الملخص أدناه
ملخص
من أجل استخدام DatagramTunneler، تحتاج إلى تشغيل جانب الخادم أولاً، ثم جانب العميل. إذا لم تقم بذلك، فسيفشل العميل في الاتصال بالخادم والخروج على الفور.
الخادم
dgramtunneler --server -i <udp_iface_ip> -t <tcp_listen_port> [-u <udp_dst_ip>:<port>]
- <udp_iface_ip> : الواجهة المستخدمة لنشر مخططات البيانات المعاد توجيهها
- <tcp_listen_port> : منفذ TCP يستخدم للاستماع إلى اتصالات العميل
- <udp_dst_ip>:<port> : (اختياري) عنوان IP الخاص بوجهة udp والمنفذ الذي ينشر فيه الخادم مخططات البيانات المُعاد توجيهها. إذا لم يتم توفيرها، فسيتم نشر مخططات البيانات على نفس القناة التي انضم إليها العميل.
عميل
dgramtunneler --client -i <udp_iface_ip> -t <tcp_srv_ip>:<tcp_srv_port> -u <udp_dst_ip>:<port>
- <udp_iface_ip> : الواجهة المستخدمة للانضمام إلى قناة البث المتعدد التي يوفرها -u
- <tcp_srv_ip>:<port> : عنوان IP ومنفذ الخادم الذي سيتم إعادة توجيه مخطط البيانات إليه
- <udp_dst_ip> : <port> : عنوان IP الخاص بوجهة udp ومنفذ القناة التي نريد الانضمام إليها
أمثلة
(لا تنسَ إعطاء نجمة صغيرة إذا كانت هذه الأداة مفيدة لك:]) جانب الخادم:
./bin/datagramtunneler --server -i 192.168.0.104 -u 228.14.28.52:1234 -t 28052
جانب العميل:
./bin/datagramtunneler --client -i 192.168.0.105 -u 228.1.2.3:7437 -t 192.168.0.104:28052
كيف يعمل؟
الغرض من DatagramTunneler هو نقل بيانات البث المتعدد من شبكة فرعية A إلى شبكة فرعية أخرى B حيث لا تتوفر قناة البث المتعدد هذه. ولتحقيق ذلك، يتم تقسيم DatagramTunneler إلى جانبين: جانب العميل وجانب الخادم، كما هو موضح في الرسم البياني أدناه: 
جانب العميل
يجب أن يعمل جانب العميل في الشبكة الفرعية حيث يمكن الانضمام إلى قناة البث المتعدد. بمجرد البدء سوف يقوم بما يلي:
- الاتصال بخادم DatagramListener (TCP)
- الانضمام إلى قناة البث المتعدد (UDP)
- قم بإعادة توجيه كافة مخططات البيانات المستلمة إلى الخادم باستخدام اتصال TCP الذي تم إنشاؤه. يتم إرسال مخططات البيانات عبر TCP باستخدام بروتوكول تغليف نفق مخطط البيانات (أو DTEP).
جانب الخادم
يجب أن يعمل جانب الخادم في الشبكة الفرعية حيث لا يتوفر البث المتعدد. بمجرد البدء سوف يقوم بما يلي:
- الاستماع لاتصال العميل (لاحظ أنه يتم قبول اتصال واحد فقط طوال عمر مثيلات الخادم/العميل. وبمجرد قطع اتصال النفق، يخرج كلا الطرفين.
- بمجرد إنشاء اتصال مع العميل، سيتم نشر كافة مخططات البيانات التي أرسلها العميل إلى قناة البث المتعدد. يمكن أن تكون هذه القناة أي شيء محدد عند تشغيل الخادم، أو إذا لم يتم تحديدها، فسوف تستخدم نفس قناة البث المتعدد المشفرة مع مخطط البيانات الذي تلقته (راجع DTEP).
بروتوكول تغليف نفق مخطط البيانات (DTEP)
بروتوكول نفق مخطط البيانات أو DTEP هو بروتوكول ثنائي بسيط، وهو موضح في الرسم البياني التالي: 
تحتوي حزمة DTEP على رأس بايت واحد يحدد نوع الحمولة النافعة التي تحتوي عليها.
نوع الحزمة 0x00 = نبضات القلب
هذا النوع من الحزم لا يحتوي على حمولة. يتم إرساله بواسطة العميل إلى الخادم ويساعد في التأكد من معرفة طرفي الاتصال ما إذا كان الطرف الآخر على قيد الحياة.
نوع الحزمة 0x01 = مخطط البيانات
تحتوي هذه الحزمة على مخطط البيانات الذي لاحظه العميل. وهنا وصفها الكامل: 
على الرغم من أن هذا المخطط يجب أن يكون واضحًا بذاته، إلا أنه يوجد تفصيل لجميع المجالات:
- طول مخطط البيانات : عدد بايتات مخطط البيانات المغلف (لا يتم تضمين طول رأس DTEP)
- عنوان قناة UDP : عنوان الوجهة لمجموعة البث المتعدد التي انضم إليها العميل لتلقي مخطط البيانات هذا
- منفذ قناة UDP : منفذ الوجهة لمجموعة البث المتعدد التي انضم إليها العميل لتلقي مخطط البيانات هذا
- مخطط بيانات UDP المغلف : مخطط البيانات الفعلي الذي يتلقاه العميل من قناة البث المتعدد
الترخيص
ترخيص CF