Binuksan ng Microsoft ang pagpapatupad nito ng QUIC protocol na ginagamit sa HTTP/3

Microsoft inihayag ang tungkol sa pagbubukas ng code ng library msquic sa pagpapatupad ng network protocol QUIC. Ang code ay nakasulat sa C at ipinamahagi ni sa ilalim ng lisensya ng MIT. Ang library ay cross-platform at maaaring gamitin hindi lamang sa Windows, kundi pati na rin sa Linux gamit Channel o OpenSSL para sa TLS 1.3. Sa hinaharap, ito ay binalak na suportahan ang iba pang mga platform.

Ang library ay batay sa msquic.sys driver code na ibinigay sa Windows 10 kernel (Insider Preview) upang paganahin ang HTTP at SMB sa ibabaw ng QUIC. Ginagamit din ang code upang ipatupad ang HTTP/3 sa panloob na Windows stack at sa .NET Core. Ang pagbuo ng MsQuic library ay ganap na isasagawa sa GitHub gamit ang pampublikong peer review, pull request, at Mga Isyu sa GitHub. Isang imprastraktura ang inihanda na sumusuri sa bawat commit at pull request sa isang hanay ng higit sa 4000 pagsubok. Matapos i-stabilize ang development environment, pinlano itong tumanggap ng mga pagbabago mula sa mga third-party na developer.

Magagamit na ang MsQuic upang lumikha ng mga server at kliyente, ngunit hindi lahat ng functionality na tinukoy sa detalye ng IETF ay kasalukuyang magagamit. Halimbawa, walang suporta para sa 0-RTT, paglilipat ng kliyente, Path MTU Discovery, o kontrol ng Server Preferred Address. Kabilang sa mga ipinatupad na feature, nabanggit ang pag-optimize upang makamit ang maximum na throughput at pinakamababang pagkaantala, suporta para sa asynchronous na input/output, RSS (Receive Side Scaling), at ang kakayahang pagsamahin ang input at output UDP stream. Ang pagpapatupad ng MsQuic ay sinubukan para sa pagiging tugma sa mga pang-eksperimentong bersyon ng mga browser ng Chrome at Edge.

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 1.3 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);
    Binuksan ng Microsoft ang pagpapatupad nito ng QUIC protocol na ginagamit sa HTTP/3

  • 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