يو فلو
UFlow عبارة عن مكتبة Rust وبروتوكول شبكة UDP لنقل بيانات الإنترنت في الوقت الفعلي، مع التركيز على البساطة والقوة. على الرغم من أنه قد تم تصميمه من الألف إلى الياء، إلا أن واجهة UFlow ووظائفه مستوحاة من مكتبة ENet الموقرة.
سمات
- نقل البيانات الموجهة نحو الحزمة بين مضيفين
- تجزئة الحزمة وإعادة تجميعها تلقائيًا وفقًا لوحدة MTU للإنترنت (1500 بايت)
- مصافحة اتصال ثلاثية الاتجاهات لإدارة الاتصال بشكل سليم
- ما يصل إلى 64 تدفقات حزم متسلسلة بشكل مستقل
- 4 أوضاع بديهية لنقل الحزم: حساسة للوقت ، وغير موثوقة ، ومستمرة ، وموثوقة
- يتم تطبيق التحكم في ازدحام البث المتوافق مع TCP وفقًا لـ RFC 5348
- بروتوكول ترميز ونقل فعال للإطارات مع الحد الأدنى من الحمل الزائد للحزم
- التحقق من صحة CRC لجميع الإطارات المرسلة (متعدد الحدود: 0x132c00699)
- إنتاجية حزم بنسبة 100% وأمر تسليم غير متأثر في ظل ظروف الشبكة المثالية
- إدارة معرف التسلسل المحكم للماء لتحقيق أقصى قدر من التخفيف من الازدواج
- حدود ذاكرة جهاز الاستقبال القابلة للتكوين بواسطة التطبيق (لمنع هجمات تخصيص الذاكرة)
- إقرارات البيانات التي لم يتم التحقق من صحتها (لمنع معدل الخسارة / انتحال النطاق الترددي)
- مرونة في مواجهة هجمات DDoS (نسبة الطلب إلى الرد ≈ 28:1)
- تم تصميمها بدقة واختبارها لضمان سلوك خالٍ من المماطلة
- تنفيذ بدون خيوط وغير معوق
التوثيق
يمكن العثور على الوثائق على docs.rs.
بنيان
على الرغم من وصف الإصدار السابق في المستند التقني، فقد تغير الكثير بشأن المكتبة في هذه الأثناء (بما في ذلك الاسم!). يحتوي الإصدار الحالي على التحسينات التالية:
- يتم تنفيذ التحكم في الازدحام الصديق لـ TCP وفقًا لـ RFC 5348
- حدود ذاكرة جهاز الاستقبال (لإعادة تجميع الحزمة)
- لا توجد حزم أو إطارات الحارس
- وضع إرسال حزم إضافي يتسبب في إسقاط الحزم إذا تعذر إرسالها على الفور (حساس للوقت)
- لا يوجد تكرار على عدد القنوات
سيتم تلخيص التصميم الجديد قريبًا في مستند تقني محدث.