Cloudflare NGINX-də HTTP / 3-ü dəstəkləmək üçün modul tətbiq etdi
Cloudflare şirkəti hazırlanmışdırmodul NGINX-də HTTP/3 protokolu üçün dəstək təmin etmək. Modul Cloudflare-də hazırlanmış kitabxana üzərində əlavə olaraq hazırlanmışdır hic QUIC və HTTP/3 nəqliyyat protokolunun tətbiqi ilə. Kiş kodu Rust-da yazılmışdır, lakin NGINX modulunun özü C-də yazılmışdır və dinamik keçiddən istifadə edərək kitabxanaya daxil olur. İnkişaflar açıq BSD lisenziyası altında.
Yığmaq üçün sadəcə yükləyin yamaq nginx 1.16 və kod quiche kitabxanalarını seçin və sonra "--with-http_v3_module --with-quiche=../quiche" seçimləri ilə nginx-i yenidən qurun. Qurarkən TLS dəstəyi BoringSSL kitabxanasına əsaslanmalıdır ("-with-openssl=../quiche/deps/boringssl"), OpenSSL-dən istifadə hələ dəstəklənmir. Bağlantıları qəbul etmək üçün parametrlərə “quic” bayrağı ilə dinləmə direktivini əlavə etməlisiniz (məsələn, “dinləmək 443 quic reuseport”).
Müştəri tərəfdən HTTP/3 dəstəyi artıq Chrome Canary-nin eksperimental quruluşlarına və curl yardım proqramına əlavə edilib. Server tərəfində indiyə qədər tək başına istifadə etmək tələb olunurdu sınaq tətbiqləri. HTTP/3-ü nginx-də emal etmək imkanı HTTP/3 dəstəyi ilə serverlərin yerləşdirilməsini xeyli asanlaşdıracaq və yeni protokolun sınaq tətbiqini daha əlçatan edəcək. Nginx-də HTTP / 3 üçün müntəzəm dəstəyin görünüşü gözləniləndir 1.17.x filialında 6-12 ay müddətində.
Xatırladaq ki, HTTP/3 HTTP/2 üçün nəqliyyat kimi QUIC protokolunun istifadəsini standartlaşdırır. Protokol QUIC (Quick UDP Internet Connections) 2013-cü ildən İnternet üçün TCP + TLS-ə alternativ olaraq Google tərəfindən hazırlanmışdır, TCP-də bağlantılar üçün uzun quraşdırma və danışıqlar vaxtları ilə bağlı problemləri həll edir və məlumat ötürülməsi zamanı paket itkisi zamanı gecikmələri aradan qaldırır. QUIC, birdən çox əlaqənin multipleksləşdirilməsini dəstəkləyən və TLS/SSL-ə ekvivalent şifrələmə üsullarını təmin edən UDP protokoluna əlavədir.
TLS-ə bənzər yüksək təhlükəsizlik (əslində QUIC UDP üzərindən TLS-dən istifadə etmək imkanı verir);
Paket itkisinin qarşısını almaq üçün axın bütövlüyünə nəzarət;
Dərhal əlaqə yaratmaq imkanı (0-RTT, təxminən 75% hallarda, məlumat bağlantı quraşdırma paketi göndərildikdən dərhal sonra ötürülə bilər) və sorğunun göndərilməsi ilə cavabın alınması arasında minimal gecikmələri təmin etmək (RTT, Gediş-gəliş vaxtı) ;
Paketi təkrar ötürərkən eyni ardıcıllıq nömrəsindən istifadə etməyin, bu, qəbul edilən paketlərin müəyyən edilməsində qeyri-müəyyənlikdən qaçmağa və fasilələrdən qurtulmağa imkan verir;
Paket itkisi yalnız onunla əlaqəli axının çatdırılmasına təsir göstərir və cari əlaqə üzərindən paralel olaraq ötürülən axınlarda məlumatların çatdırılmasını dayandırmır;
İtirilmiş paketlərin təkrar ötürülməsi səbəbindən gecikmələri minimuma endirən səhvlərin düzəldilməsi vasitələri. İtirilmiş paket məlumatlarının təkrar ötürülməsini tələb edən vəziyyətləri azaltmaq üçün paket səviyyəsində xüsusi xətaların düzəldilməsi kodlarından istifadə.
Kriptoqrafik blokların sərhədləri QUIC paketlərinin sərhədləri ilə üst-üstə düşür ki, bu da paket itkisinin aşağıdakı paketlərin məzmununun dekodlanmasına təsirini azaldır;
TCP növbəsinin bloklanması ilə bağlı heç bir problem yoxdur;
Mobil müştərilər üçün yenidən qoşulma vaxtını azaltmaq üçün Bağlantı ID dəstəyi;
Bağlantının həddindən artıq yüklənməsinə nəzarət üçün qabaqcıl mexanizmləri birləşdirmək imkanı;
Paketlərin göndərilməsinin optimal intensivliyini təmin etmək, paketlərin itkisi olan tıxac vəziyyətinə düşmənin qarşısını almaq üçün hər bir istiqamətdə bant genişliyinin proqnozlaşdırılması üsullarından istifadə etmək;
Hiss olunan artım TCP ilə müqayisədə performans və ötürmə qabiliyyəti. YouTube kimi video xidmətləri üçün QUIC-in video rebufer əməliyyatlarını 30% azaltdığı göstərilmişdir.