Cloudflare Şirkəti HTTP/3 protokolunun desteğini sağlamak için NGINX'te. Modül, Cloudflare'de geliştirilen bir kütüphanenin üzerine inşa edilmiştir. QUIC ve HTTP/3 taşıma protokolü ile uygulanması. Quiche kodu Rust dilinde yazılmıştır, ancak NGINX için modül C dilinde yazılmış ve kütüphaneye dinamik bağlantı ile erişmektedir. Geliştirilen BSD lisenziyası altında yayımlanmışdır.
Kurmak için sadece indirmek yeterlidir nginx 1.16 ve quiche kütüphanesi, ardından nginx'i «—with-http_v3_module —with-quiche=..../quiche» seçenekleri ile derlemek gerekir. Derleme sırasında TLS desteği BoringSSL kütüphanesine dayanmaktadır («—with-openssl=..../quiche/deps/boringssl»); OpenSSL kullanımı henüz desteklenmemektedir. Bağlantıları kabul etmek için ayarlara «quic» bayrağı ile listen direktifini eklemeniz gerekir (örneğin, «listen 443 quic reuseport»).
İstemci yazılımında HTTP/3 desteği, Chrome Canary'nın deneysel sürümlerine ve curl aracına eklenmiştir. Sunucu tarafında hala, sınırlı olan özel NGINX'te HTTP/3 işleme yeteneği, HTTP/3 desteği olan sunucuları dağıtmayı önemli ölçüde kolaylaştıracak ve yeni protokolün test entegrasyonunu daha erişilebilir hale getirecektir. NGINX'te HTTP/3 desteklenmesi 1.17.x dalında 6-12 ay içinde ortaya çıkacaktır.
(Quick UDP Internet Connections) 2013-cü ildən Google şirkəti tərəfindən TCP+TLS bağlantısına alternativ kimi inkişaf etdirilir, bu da TCP-dəki uzun qoşulma və razılaşma vaxtı problemlərini həll edir və məlumatların ötürülməsi zamanı paket itkiləri zamanı gecikməni aradan qaldırır. QUIC, bir neçə qoşulmanın çoxlayıcısını dəstəkləyən və TLS/SSL-ə bərabər şifrələmə üsullarını təmin edən UDP protokolunun üzərində bir qatdır. QUIC:
Əsas Yüksək təhlükəsizlik, TLS-ə bənzər (əslində QUIC, TLS-in UDP üzərində istifadəsini təmin edir);
- Axınların bütövlüyünü qoruma
- paket itkilərinin qarşısını alır;
- Qoşulmanı dərhal qurmaq imkanı (0-RTT, paket quruluşunun göndərilməsindən sonra, təxminən 75% hallarda məlumatlar dərhal ötürülə bilər) və sorğunun göndərilməsi ilə cavabın alınması arasında minimal gecikməni təmin etmək (RTT, Round Trip Time);
- Yenidən paketin eyni ardıcıllıq nömrəsindən istifadə etməməsi, alınan paketlərin müəyyən edilməsində iki mənalı vəziyyətlərin yaranmasının qarşısını alır və zaman aşımı problemlərindən xilas olmağa imkan tanıyır;
- Paket itkiləri yalnız ona bağlı olan axına təsir edir və cari qoşulma vasitəsilə paralel olaraq ötürülən verilənlərin çatdırılmasını dayandırmır;
- Təkrar paketlərin itirilməsi səbəbindən gecikmələri minimuma endirən səhv düzəliş vasitələri. İtmiş paketin məlumatını təkrarlama tələb etmədən minimuma endirmək üçün paket səviyyəsində xüsusi düzəliş kodlarının istifadəsi.
- Kriptoqrafik blokların sərhədləri QUIC paketlərinin sərhədləri ilə uyğunlaşdırılmışdır, bu da paketlərin itirilməsinin sonrakı paketlərin tərkibini deşifr etməyə təsirini azaldır;
- TCP-də sıraya alınma problemi yoxdur;
- Bağlantı identifikatorunun dəstəyi, mobil müştərilərin yenidən qoşulma vaxtını azaltmağa imkan verir;
- Bağlantı yüklənmə kontrolda irəliləmiş mexanizmlərin qoşulma imkanı;
- Hər iki istiqamətdə ötürmə intensivliyinin optimallaşdırılması üçün ötürmə qabiliyyətinin proqnozlaşdırılması texnikasından istifadə, paket itkisinin baş verdiyi yüklənmə vəziyyətinə girməyə mane olur;
- Göze çarpan performans və tutum, TCP ilə müqayisədə. YouTube kimi video xidmətləri üçün QUIC-in tətbiqi, video izlənməsi zamanı təkrar tamponlama əməliyyatlarını 30% azaldığını göstərib.
Mənbə: opennet.ru
