Ang Cloudflare ay nagpatupad ng isang module upang suportahan ang HTTP / 3 sa NGINX

Cloudflare Company pinaghandaan module upang magbigay ng suporta para sa HTTP/3 protocol sa NGINX. Ang module ay idinisenyo bilang isang add-on sa library na binuo ng Cloudflare quiche sa pagpapatupad ng QUIC at HTTP/3 transport protocol. Ang quiche code ay nakasulat sa Rust, ngunit ang NGINX module mismo ay nakasulat sa C at ina-access ang library gamit ang dynamic na pag-link. Mga Pag-unlad bukas sa ilalim ng lisensya ng BSD.

Para mag-assemble, i-download lang tambalan sa nginx 1.16 at kodigo quiche library, pagkatapos ay muling buuin ang nginx gamit ang mga opsyon na β€œβ€”with-http_v3_module β€”with-quiche=../quiche”. Kapag nagtatayo, ang suporta sa TLS ay dapat na nakabatay sa library ng BoringSSL (β€œ--with-openssl=../quiche/deps/boringssl”), hindi pa sinusuportahan ang paggamit ng OpenSSL. Upang tanggapin ang mga koneksyon, kailangan mong idagdag ang listen directive na may flag na "quic" sa mga setting (halimbawa, "listen 443 quic reuseport").

Sa software ng kliyente, naidagdag na ang suporta ng HTTP/3 sa mga eksperimental na build ng Chrome Canary at ng curl utility. Sa panig ng server, hanggang ngayon ay kinakailangan na gumamit ng hiwalay, limitado mga pagpapatupad ng pagsubok. Ang kakayahang magproseso ng HTTP/3 sa nginx ay makabuluhang magpapasimple sa pag-deploy ng mga server na may suporta sa HTTP/3 at gagawing mas madaling ma-access ang pagsubok na pagpapatupad ng bagong protocol. Ang paglitaw ng karaniwang suporta para sa HTTP/3 sa nginx inaasahan na sa 1.17.x branch sa loob ng 6-12 buwan.

Alalahanin na ang HTTP/3 ay nag-standardize sa paggamit ng QUIC protocol bilang transport para sa HTTP/2. Protocol QUIC (Quick UDP Internet Connections) ay binuo ng Google mula noong 2013 bilang isang alternatibo sa kumbinasyon ng TCP+TLS para sa Web, paglutas ng mga problema sa mahabang setup at mga oras ng negosasyon para sa mga koneksyon sa TCP at pag-aalis ng mga pagkaantala kapag nawala ang mga packet sa panahon ng paglilipat ng data. Ang QUIC ay isang extension ng UDP protocol na sumusuporta sa multiplexing ng maraming koneksyon at nagbibigay ng mga paraan ng pag-encrypt na katumbas ng TLS/SSL.

Ang pangunahing mga tampok QUIC:

  • Mataas na seguridad na katulad ng TLS (talagang nagbibigay ang QUIC ng kakayahang gumamit ng TLS sa UDP);
  • Kontrol sa integridad ng daloy, na pumipigil sa pagkawala ng packet;
  • Ang kakayahang agad na magtatag ng koneksyon (0-RTT, sa humigit-kumulang 75% ng mga kaso, ang data ay maaaring ipadala kaagad pagkatapos ipadala ang packet ng pag-setup ng koneksyon) at magbigay ng kaunting mga pagkaantala sa pagitan ng pagpapadala ng kahilingan at pagtanggap ng tugon (RTT, Round Trip Time);
  • Hindi gumagamit ng parehong sequence number kapag muling nagpapadala ng packet, na nag-iwas sa kalabuan sa pagtukoy ng mga natanggap na packet at inaalis ang mga timeout;
  • Ang pagkawala ng isang packet ay nakakaapekto lamang sa paghahatid ng stream na nauugnay dito at hindi humihinto sa paghahatid ng data sa parallel stream na ipinadala sa pamamagitan ng kasalukuyang koneksyon;
  • Mga feature sa pagwawasto ng error na nagpapaliit ng mga pagkaantala dahil sa muling pagpapadala ng mga nawawalang packet. Paggamit ng mga espesyal na code sa pagwawasto ng error sa antas ng packet upang mabawasan ang mga sitwasyon na nangangailangan ng muling pagpapadala ng nawalang packet data.
  • Ang mga hangganan ng cryptographic block ay nakahanay sa mga hangganan ng QUIC packet, na binabawasan ang epekto ng mga pagkawala ng packet sa pag-decode ng mga nilalaman ng kasunod na mga packet;
  • Walang mga problema sa TCP queue blocking;
  • Suporta para sa pagkakakilanlan ng koneksyon, na binabawasan ang oras na kinakailangan upang magtatag ng muling pagkonekta para sa mga mobile client;
  • Posibilidad ng pagkonekta ng mga advanced na koneksyon sa congestion control mechanism;
  • Gumagamit ng per-direction throughput forecasting techniques upang matiyak na ang mga packet ay naipadala sa pinakamainam na mga rate, na pinipigilan ang mga ito na maging masikip at magdulot ng packet loss;
  • Nahahalata paglaki pagganap at throughput kumpara sa TCP. Para sa mga serbisyo ng video gaya ng YouTube, ipinakita ng QUIC na bawasan ang mga operasyon ng rebuffering kapag nanonood ng mga video ng 30%.
  • Pinagmulan: opennet.ru

Magdagdag ng komento