Cloudflare NGINX-də HTTP / 3-ü dəstəkləmək üçün modul tətbiq etdi

Cloudflare şirkəti hazırlanmışdır modul 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.

Əsas xüsusiyyətləri QUIC:

  • 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.
  • Mənbə: opennet.ru

Добавить комментарий