نفذت Cloudflare وحدة لدعم HTTP / 3 في NGINX

شركة Cloudflare أعدت وحدة لتقديم الدعم لبروتوكول HTTP / 3 في NGINX. تم إنشاء الوحدة في شكل إضافة فوق المكتبة التي تم تطويرها في Cloudflare كيشي مع تنفيذ بروتوكول النقل QUIC و HTTP / 3. تمت كتابة كود quiche في Rust ، لكن وحدة NGINX نفسها مكتوبة بلغة C وتصل إلى المكتبة باستخدام الارتباط الديناميكي. التطورات افتح تحت رخصة BSD.

للتجميع ، فقط قم بالتنزيل رقعة قماشية إلى nginx 1.16 و رمز مكتبات quiche ، ثم أعد بناء nginx بالخيارات "- with-http_v3_module --with-quiche = .. / quiche". عند البناء ، يجب أن يعتمد دعم TLS على مكتبة BoringSSL ("--with-openssl = .. / quiche / deps / boringssl") ، استخدام OpenSSL غير مدعوم حتى الآن. لقبول الاتصالات ، تحتاج إلى إضافة الأمر listen مع علامة "quic" إلى الإعدادات (على سبيل المثال ، "listen 443 quic reuseport").

من جانب العميل ، تمت إضافة دعم HTTP / 3 بالفعل إلى الإصدارات التجريبية من Chrome Canary والأداة المساعدة curl. على جانب الخادم ، حتى الآن ، كان مطلوبًا استخدام قائمة بذاتها تطبيقات الاختبار. ستعمل القدرة على معالجة HTTP / 3 في nginx على تبسيط نشر الخوادم مع دعم HTTP / 3 وجعل تنفيذ اختبار البروتوكول الجديد أكثر سهولة. ظهور دعم منتظم لـ HTTP / 3 في nginx متوقع في الفرع 1.17.x لمدة 6-12 شهرًا.

تذكر أن HTTP / 3 يوحّد استخدام بروتوكول QUIC كوسيلة نقل لـ HTTP / 2. بروتوكول QUIC (Quick UDP Internet Connections) تم تطويره بواسطة Google منذ عام 2013 كبديل لـ TCP + TLS للويب ، وحل المشكلات المتعلقة بأوقات الإعداد والتفاوض الطويلة للاتصالات في TCP والقضاء على التأخير في حالة فقدان الحزمة أثناء نقل البيانات. QUIC هي وظيفة إضافية لبروتوكول UDP تدعم تعدد إرسال اتصالات متعددة وتوفر طرق تشفير مكافئة لـ TLS / SSL.

رئيسي ملامح كويك:

  • الأمان العالي ، على غرار TLS (في الواقع ، يوفر QUIC القدرة على استخدام TLS عبر UDP) ؛
  • التحكم في تكامل الدفق لمنع فقدان الحزمة ؛
  • القدرة على إنشاء اتصال على الفور (0-RTT ، في حوالي 75٪ من الحالات ، يمكن إرسال البيانات فورًا بعد إرسال حزمة إعداد الاتصال) وضمان الحد الأدنى من التأخير بين إرسال طلب وتلقي استجابة (RTT ، ذهاب وإياب وقت) ؛
  • لا تستخدم نفس رقم التسلسل عند إعادة إرسال حزمة ، مما يسمح لك بتجنب الغموض في تحديد الحزم المستلمة والتخلص من المهلات ؛
  • يؤثر فقدان الحزمة فقط على تسليم الدفق المرتبط به ولا يوقف تسليم البيانات في التدفقات المرسلة بالتوازي عبر الاتصال الحالي ؛
  • أدوات تصحيح الأخطاء التي تقلل التأخير بسبب إعادة إرسال الحزم المفقودة. استخدام أكواد خاصة لتصحيح الأخطاء على مستوى الحزمة لتقليل المواقف التي تتطلب إعادة إرسال بيانات الحزمة المفقودة.
  • تتم محاذاة حدود كتل التشفير مع حدود حزم QUIC ، مما يقلل من تأثير فقدان الحزمة على فك تشفير محتويات الحزم التالية ؛
  • لا توجد مشاكل مع حظر قائمة انتظار TCP ؛
  • دعم معرف الاتصال لتقليل وقت إعادة الاتصال للعملاء المتنقلين ؛
  • إمكانية توصيل الآليات المتقدمة للتحكم في الحمل الزائد للاتصال ؛
  • استخدام تقنيات التنبؤ بعرض النطاق الترددي في كل اتجاه لضمان الكثافة المثلى للحزم المرسلة ، ومنع التدحرج في حالة الازدحام التي يحدث فيها فقد للحزم ؛
  • محسوس نمو الأداء والإنتاجية مقارنةً بـ TCP. بالنسبة لخدمات الفيديو مثل YouTube ، فقد ثبت أن QUIC يقلل من عمليات إعادة تخزين الفيديو بنسبة 30٪.
  • المصدر: opennet.ru

إضافة تعليق