
نسخة آمنة (باستخدام AEAD) من USTP، تُسمى USTP-Secure (ustps://)
USTP تعني UDP Speedy Transmission Protocol.
يحافظ USTP على نفس نموذج النقل الموثّق، لكن اسم المشروع أصبح الآن ببساطة USTP مجددًا.
بشكل افتراضي، يستخدم USTP تشفير AEAD لبيانات DATA.
كما يدعم أيضًا وضعًا اختياريًا متفقًا عليه هو cleartext + HMAC لبيانات DATA، حيث تكون بايتات الحمولة مرئية على الشبكة لكن يتم اكتشاف التلاعب ورفضه.
يدعم USTP الآن متحكمًا اختياريًا في الازدحام يُسمى USTP Congestion. لا يزال UDP هو الخيار الأول، لكنه يمكنه اختياريًا الإبطاء ثم التسريع مجددًا عندما يبدأ المسار في إظهار إشارات الازدحام.
الحالة: Beta
لم يعد USTP مجرد إثبات مفهوم. إنه حاليًا في مرحلة Beta.
يمكن استخدام USTP للعديد من أنواع التطبيقات ووسائل النقل.
مع ذلك، يركّز هذا المستودع تحديدًا على البث المباشر عبر USTP.
02/08/2026: عاد USTP-Secure الآن إلى USTP.
USTP-Secure اسمًا قديمًا للمشروع ولم يعد مناسبًا له.USTP أصبح مفضلًا مجددًا.UDP Speedy Transmission Protocol، دون Secure في العنوان.2026-07-18: تمت إزالة USTP/2 Beta من الشجرة الحالية.
Codex مع GPT-5.4 (Low).--loss 33.Brazil -> Canada بزمن استجابة RTT يبلغ حوالي 140ms.chacha20 = CHACHA20_POLY1305aes-256-gcm = AES_256_GCMaes-128-gcm = AES_128_GCMchacha20DATA هو AEAD.DATA هو cleartext + HMAC لكل حزمة.HELLO، ACK، RETRANSMIT_REQUEST، CLOSE) نصية صريحة عن قصد.ACK وNACK/RETRANSMIT_REQUEST نصية صريحة، لكنها موثّقة بوسم HMAC لكل جلسة.DATA تنسيق إطار ثنائي يُسمى UPACK (UPAK على الشبكة).IP:port المصدر.--cipher على الخادم، يستخدم الخادم تلك الشفرة بالضبط.--cipher أو تعيينه إلى auto، يستخدم الخادم الشفرة التي يطلبها العميل.DATA بشكل منفصل عن اختيار الشفرة:
--cleartext auto|on|off--cleartext on|offautooffauto في الخادم، يتبع الخادم طلب العميل.on في الخادم، يفرض الخادم cleartext + HMAC.off في الخادم، يفرض الخادم AEAD.~/.ustps_host_key بشكل افتراضي حتى يبقى TOFU مستقرًا عبر إعادة الاتصال وإعادة التشغيل.--regen-key على الخادم فقط عندما تريد عمدًا تدوير مفتاح المضيف هذا.ACK: وNACK: وHELLO: وCLOSE: هي بادئات سجلات التحكم النصية الصريحة.USS1 تعني UDP Speedy Secure، الإصدار 1.USC1 تعني UDP Speedy Clear، الإصدار 1.UPAK هو علامة إطار UPACK الثنائي الخاص بـ DATA.ACK: 10 وNACK: 42 وHELLO: ... وCLOSE:.UPAK حزم DATA الثنائية بعد فك التشفير.USS1 هو تنسيق الغلاف الآمن الخارجي AEAD.USC1 هو تنسيق غلاف DATA الخارجي للنص الصريح مع HMAC.USS1... لـ DATA المحمي بـ AEADUSC1... لـ DATA بالنص الصريح مع HMACUSTP Congestion الاختياري، الذي يُتفاوض عليه أثناء المصافحة.seq الخاص بالنقل وstream_pos الموجّه للتطبيق.seq في ACK، واكتشاف الفقد، وإعادة الإرسال، وأخذ عينات RTT.stream_pos التطبيق بمكان انتماء الحمولة في تدفق البايتات المنطقي.seq هو عدّاد 32 بت يبدأ من 1 لكل جلسة جديدة.stream_pos هو عدّاد بايتات 64 بت يبدأ من 0 لكل تدفق منطقي جديد.HELLO نصي صريح في طبقة النقل يحمل مفتاحه العام X25519، والتشفير المطلوب، ووضع التحكم في الازدحام المطلوب (on أو off)، ووضع حماية DATA المطلوب (cleartext on|off).session_id مولّد بترميز Base64DATA المتفاوض عليهDATA.IP:port الذي أكمل التحدي.session_id يُستخدم كتسمية للجلسة، لكنه لا يُقبل من IP:port مختلف.HELLOUSTPS-CHALLENGE1 حاملًا token وsession_id والتشفير المختار ووضع التحكم في الازدحام المتفاوض عليه ووضع حماية DATA المتفاوض عليه والمفتاح العام للخادمUSTPS-CHALLENGE-REPLY1USTPS-SESSION1IP:port ذلك قادر فعليًا على استقبال الحزم هناكUSTP، لكن عدة معرّفات ASCII على الشبكة لا تزال تستخدم البادئة التاريخية USTPS-*.USTPS-KEX1USTPS-CHALLENGE1USTPS-CHALLENGE-REPLY1USTPS-SESSION1USTPS-RESUME1USTPS-RTT1USTP، لكن معرّفات الشبكة التاريخية تلك لم تُعد تسميتها في بايتات البروتوكول.UPACK DATA: 900 بايت.UPACK الثابت: 20 بايت.USS1 في وضع AEAD:
4 بايت magic1 بايت معرّف التشفير12 بايت nonce لـAEAD16 بايت وسم AEAD953 بايت قبل رؤوس UDP/IP.USC1 في وضع النص الصريح:
4 بايت magic16 بايت وسم HMAC940 بايت قبل رؤوس UDP/IP.981 بايت على الشبكة في وضع AEAD وحوالي 968 بايت في وضع النص الصريح.1001 بايت على الشبكة في وضع AEAD وحوالي 988 بايت في وضع النص الصريح.