„Cloudflare“ įdiegė modulį, palaikantį HTTP/3 NGINX

Cloudflare kompanija paruoštas modulis teikti HTTP/3 protokolo palaikymą NGINX. Modulis sukurtas kaip „Cloudflare“ sukurtos bibliotekos priedas Quiche įdiegus QUIC ir HTTP/3 transportavimo protokolus. Quiche kodas parašytas Rust, bet pats NGINX modulis parašytas C ir pasiekia biblioteką naudodamas dinaminį susiejimą. Vystymai atviras pagal BSD licenciją.

Norėdami surinkti, tiesiog atsisiųskite pleistras į nginx 1.16 ir kodas quiche bibliotekas, tada atkurkite nginx naudodami parinktis „—with-http_v3_module —with-quiche=../quiche“. Kuriant TLS palaikymas turėtų būti pagrįstas BoringSSL biblioteka („--with-openssl=../quiche/deps/boringssl“), OpenSSL naudojimas dar nepalaikomas. Norėdami priimti ryšius, prie nustatymų turite pridėti klausymo direktyvą su žyma „quic“ (pavyzdžiui, „klausykite 443 quic reuseport“).

Kliento programinėje įrangoje HTTP/3 palaikymas jau buvo pridėtas prie eksperimentinių „Chrome Canary“ versijų ir „curl“ paslaugų programos. Serverio pusėje iki šiol reikėjo naudoti atskirą, ribotą bandymų įgyvendinimai. Galimybė apdoroti HTTP/3 naudojant „nginx“ žymiai supaprastins serverių su HTTP/3 palaikymu diegimą ir leis lengviau pasiekti testuojamą naujojo protokolo įgyvendinimą. Standartinio HTTP/3 palaikymo atsiradimas nginx tikimasi 1.17.x filiale 6-12 mėn.

Prisiminkite, kad HTTP/3 standartizuoja QUIC protokolo naudojimą kaip HTTP/2 perdavimą. protokolas QUIC (Quick UDP Internet Connections) buvo sukurta Google nuo 2013 m. kaip alternatyvą TCP + TLS deriniui žiniatinkliui, sprendžiant problemas, susijusias su ilgo TCP ryšio sąrankos ir derybų laiku, ir pašalinant vėlavimus, kai paketai prarandami perduodant duomenis. QUIC yra UDP protokolo plėtinys, kuris palaiko kelių jungčių multipleksavimą ir suteikia šifravimo metodus, lygiaverčius TLS/SSL.

pagrindinis Įranga QUIC:

  • Aukštas saugumas, panašus į TLS (iš tikrųjų QUIC suteikia galimybę naudoti TLS per UDP);
  • Srauto vientisumo kontrolė, kad būtų išvengta paketų praradimo;
  • Galimybė akimirksniu užmegzti ryšį (0-RTT, apie 75% atvejų duomenis galima perduoti iš karto po ryšio nustatymo paketo išsiuntimo) ir užtikrinti minimalų uždelsimą nuo užklausos išsiuntimo iki atsakymo gavimo (RTT, Round Trip Time) ;
  • Persiunčiant paketą nenaudokite to paties eilės numerio, kuris leidžia išvengti dviprasmybių nustatant gautus paketus ir atsikratyti skirtojo laiko;
  • Paketų praradimas turi įtakos tik su juo susieto srauto pristatymui ir nesustabdo duomenų pristatymo srautuose, perduodamuose lygiagrečiai esamu ryšiu;
  • Klaidų taisymo įrankiai, kurie sumažina vėlavimą dėl prarastų paketų pakartotinio perdavimo. Specialių klaidų taisymo kodų naudojimas paketo lygiu, siekiant sumažinti situacijas, kai reikia pakartotinai perduoti prarastus paketinius duomenis.
  • Kriptografinių blokų ribos sulygiuotos su QUIC paketų ribomis, o tai sumažina paketų praradimo įtaką vėlesnių paketų turinio dekodavimui;
  • Jokių problemų blokuojant TCP eilę;
  • Ryšio ID palaikymas, siekiant sumažinti mobiliųjų klientų prisijungimo laiką;
  • Galimybė prijungti pažangius mechanizmus prijungimo perkrovos kontrolei;
  • Pralaidumo numatymo metodų naudojimas kiekviena kryptimi, siekiant užtikrinti optimalų paketų siuntimo intensyvumą, neleidžiant patekti į perkrovos būseną, kai prarandami paketai;
  • Pastebima augimas našumas ir pralaidumas, palyginti su TCP. Įrodyta, kad naudojant QUIC vaizdo įrašų paslaugoms, tokioms kaip „YouTube“, vaizdo įrašų buferio atkūrimo operacijas sumažėja 30%.
  • Šaltinis: opennet.ru

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