Cloudflare има имплементирано модул за поддршка на HTTP/3 во NGINX

Компанијата Cloudflare подготвени модул да обезбеди поддршка за протоколот HTTP/3 во NGINX. Модулот е дизајниран како додаток на библиотеката развиена од Cloudflare quiche со имплементација на транспортниот протокол QUIC и HTTP/3. Киш-кодот е напишан во Rust, но самиот модул NGINX е напишан во C и пристапува до библиотеката користејќи динамично поврзување. Случувања отворени под лиценцата BSD.

За да се собере, само преземете лепенка до nginx 1.16 и код quiche библиотеки, потоа обновете го nginx со опциите „—with-http_v3_module —with-quiche=../quiche“. Кога се гради, поддршката за TLS треба да се базира на библиотеката BoringSSL („--with-openssl=../quiche/deps/boringssl“), употребата на OpenSSL сè уште не е поддржана. За да прифатите врски, треба да ја додадете директивата за слушање со ознаката „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.

Главните Карактеристики QUIC:

  • Висока безбедност слична на TLS (во суштина QUIC обезбедува можност за користење на TLS преку UDP);
  • Контрола на интегритетот на протокот, спречување на загуба на пакети;
  • Способност за моментално воспоставување врска (0-RTT, приближно во 75% од случаите податоците може да се пренесат веднаш по испраќањето на пакетот за поставување конекција) и да се обезбедат минимални доцнења помеѓу испраќањето барање и примањето одговор (RTT, време на повратен пат);
  • Некористење на истиот секвенциски број при реемитување пакет, со што се избегнува двосмисленост во идентификувањето на примените пакети и се ослободува од тајмаутите;
  • Губењето на пакетот влијае само на испораката на протокот поврзан со него и не ја запира испораката на податоци во паралелни текови што се пренесуваат преку тековната врска;
  • Карактеристики за корекција на грешки кои ги минимизираат одложувањата поради реемитување на изгубени пакети. Употреба на специјални шифри за корекција на грешки на ниво на пакет за да се намалат ситуациите кои бараат повторно пренос на изгубени податоци за пакети.
  • Границите на криптографските блокови се усогласени со границите на пакетите QUIC, што го намалува влијанието на загубите на пакетите врз декодирањето на содржината на следните пакети;
  • Нема проблеми со блокирање на редот на TCP;
  • Поддршка за идентификатор за конекција, што го намалува времето потребно за воспоставување повторно поврзување за мобилните клиенти;
  • Можност за поврзување напредни механизми за контрола на застојот на приклучокот;
  • Користи техники за прогнозирање на пропусната моќ по насока за да се осигура дека пакетите се испраќаат со оптимални стапки, спречувајќи ги да станат преоптоварени и да предизвикаат загуба на пакети;
  • Воочливо раст перформанси и пропусната моќ во споредба со TCP. За видео-услугите како YouTube, QUIC се покажа дека ги намалува операциите за ребаферирање при гледање видеа за 30%.
  • Извор: opennet.ru

Додадете коментар