Cloudflare, NGINX'te HTTP/3'ü destekleyecek bir modül uyguladı

Cloudflare Şirketi tedarikli modül NGINX'te HTTP/3 protokolüne destek sağlamak. Modül Cloudflare tarafından geliştirilen kütüphaneye eklenti olarak tasarlanmıştır. kiş QUIC ve HTTP/3 aktarım protokolünün uygulanmasıyla. Kiş kodu Rust'ta yazılmıştır, ancak NGINX modülünün kendisi C'de yazılmıştır ve kütüphaneye dinamik bağlantı kullanarak erişir. Gelişmeler açık BSD lisansı altında.

Birleştirmek için indirmeniz yeterli yama nginx 1.16'ya ve kod kiş kitaplıklarını oluşturun, ardından “—with-http_v3_module —with-quiche=../quiche” seçenekleriyle nginx'i yeniden oluşturun. Oluştururken TLS desteği BoringSSL kütüphanesini temel almalıdır (“--with-openssl=../quiche/deps/boringssl”), OpenSSL kullanımı henüz desteklenmemektedir. Bağlantıları kabul etmek için, “quic” bayrağını içeren dinleme yönergesini ayarlara eklemeniz gerekir (örneğin, “443 quic yeniden kullanımını dinle”).

İstemci yazılımında, Chrome Canary'nin deneysel sürümlerine ve curl yardımcı programına HTTP/3 desteği zaten eklenmiştir. Sunucu tarafında şu ana kadar ayrı, sınırlı sayıda kullanım gerekiyordu. test uygulamaları. Nginx'te HTTP/3'ü işleyebilme yeteneği, HTTP/3 desteğine sahip sunucuların dağıtımını önemli ölçüde basitleştirecek ve yeni protokolün test uygulamasını daha erişilebilir hale getirecek. Nginx'te HTTP/3 için standart desteğin ortaya çıkışı bekleniyor 1.17.x şubesinde 6-12 ay süreyle.

HTTP/3'ün, HTTP/2 için aktarım olarak QUIC protokolünün kullanımını standartlaştırdığını hatırlayın. Protokol QUIC (Hızlı UDP İnternet Bağlantıları), 2013 yılından bu yana Google tarafından Web için TCP+TLS kombinasyonuna alternatif olarak geliştirilmiştir; TCP'deki bağlantılarda uzun kurulum ve anlaşma süreleri ile ilgili sorunları çözer ve veri aktarımı sırasında paketler kaybolduğunda ortaya çıkan gecikmeleri ortadan kaldırır. QUIC, birden fazla bağlantının çoğullanmasını destekleyen ve TLS/SSL'ye eşdeğer şifreleme yöntemleri sağlayan UDP protokolünün bir uzantısıdır.

Ana özellikler Hızlı:

  • TLS'ye benzer yüksek güvenlik (aslında QUIC, TLS'yi UDP üzerinden kullanma yeteneği sağlar);
  • Paket kaybını önlemek için akış bütünlüğü kontrolü;
  • Anında bağlantı kurma yeteneği (0-RTT, vakaların yaklaşık %75'inde, veriler bir bağlantı kurulum paketi gönderildikten hemen sonra iletilebilir) ve bir istek gönderme ile yanıt alma (RTT, Gidiş Dönüş Süresi) arasında minimum gecikme sağlama ;
  • Bir paketi yeniden iletirken aynı sıra numarasını kullanmayın, bu, alınan paketlerin belirlenmesinde belirsizliği önlemenizi ve zaman aşımlarından kurtulmanızı sağlar;
  • Paket kaybı, yalnızca kendisiyle ilişkili akışın teslimini etkiler ve mevcut bağlantı üzerinden paralel olarak iletilen akışlardaki verilerin teslimini durdurmaz;
  • Kayıp paketlerin yeniden iletilmesinden kaynaklanan gecikmeleri en aza indiren hata düzeltme araçları. Kayıp paket verilerinin yeniden iletilmesini gerektiren durumları azaltmak için paket düzeyinde özel hata düzeltme kodlarının kullanılması.
  • Kriptografik blok sınırları, QUIC paket sınırlarıyla hizalanır; bu, paket kayıplarının sonraki paketlerin içeriğinin kodunun çözülmesi üzerindeki etkisini azaltır;
  • TCP sırasını engellemede sorun yok;
  • Mobil istemciler için yeniden bağlanma süresini azaltmak için Bağlantı Kimliği desteği;
  • Bağlantı aşırı yükü kontrolü için gelişmiş mekanizmaları bağlama imkanı;
  • Paket göndermenin optimum yoğunluğunu sağlamak için her yönde bant genişliği tahmin tekniklerini kullanmak, paket kaybının olduğu bir tıkanıklık durumuna yuvarlanmayı önlemek;
  • algılanabilir büyüme TCP'ye kıyasla performans ve verim. YouTube gibi video hizmetleri için QUIC'in video yeniden ara belleğe alma işlemlerini %30 oranında azalttığı görülmüştür.
  • Kaynak: opennet.ru

Yorum ekle