ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Mozilla ΡΠΎΠΎΠ±ΡΠΈΠ»Π° ΠΎ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΡΡΠ°ΠΏΠ½ΠΎΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² HTTP/3 ΠΈ QUIC Π² Π²ΡΠΏΡΡΠΊΠ΅ Firefox 88, Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΌ Π½Π° 19 Π°ΠΏΡΠ΅Π»Ρ (ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ, ΡΠ΅Π»ΠΈΠ· ΠΎΠΆΠΈΠ΄Π°Π»ΡΡ 20 Π°ΠΏΡΠ΅Π»Ρ, Π½ΠΎ, ΡΡΠ΄Ρ ΠΏΠΎ Π³ΡΠ°ΡΠΈΠΊΡ, ΡΠ΄Π²ΠΈΠ½ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ Π΄Π΅Π½Ρ). ΠΠ½Π°ΡΠ°Π»Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° HTTP/3 Π±ΡΠ΄Π΅Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π° Π»ΠΈΡΡ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅Π½ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ, Π΅ΡΠ»ΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΎ Π²ΡΠ΅Ρ ΠΊ ΠΊΠΎΠ½ΡΡ ΠΌΠ°Ρ. Π Π½ΠΎΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ ΠΈ Π±Π΅ΡΠ°-Π²Π΅ΡΡΠΈΡΡ HTTP/3 Π±ΡΠ» Π²ΠΊΠ»ΡΡΡΠ½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΌΠ°ΡΡΠ°.
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ HTTP/3 Π² Firefox ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Mozilla ΠΏΡΠΎΠ΅ΠΊΡΠ΅ neqo, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° QUIC. ΠΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ HTTP/3 ΠΈ QUIC Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust. ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ HTTP/3 Π² about:config ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΎΠΏΡΠΈΡ Β«network.http.http3.enabledΒ». ΠΠ· ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΠ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° HTTP/3 ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² Chrome ΠΈ curl, Π° Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ½Π° Π² nginx, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠΎΡΠΌΠ΅ nginx-ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Cloudflare. ΠΠ° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ°ΠΉΡΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° HTTP/3 ΡΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ Google ΠΈ Facebook.
ΠΡΠΎΡΠΎΠΊΠΎΠ» HTTP/3 ΠΏΠΎΠΊΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΡΠ΅ΡΠ½ΠΎΠ²ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π² IETF. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ HTTP/3 ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅ΡΠ½ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ° QUIC ΠΈ HTTP/3, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Alt-Svc (Firefox ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Ρ 27 ΠΏΠΎ 32).
HTTP/3 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° QUIC Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° Π΄Π»Ρ HTTP/2. ΠΡΠΎΡΠΎΠΊΠΎΠ» QUIC (Quick UDP Internet Connections) c 2013 Π³ΠΎΠ΄Π° ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΠ²ΡΠ·ΠΊΠ΅ TCP+TLS Π΄Π»Ρ Web, ΡΠ΅ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² TCP ΠΈ ΡΡΡΡΠ°Π½ΡΡΡΠ΅ΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΡΠ΅ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ . QUIC ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΡ Π½Π°Π΄ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ UDP, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠ΅ TLS/SSL. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² IETF ΡΡΠ°Π½Π΄Π°ΡΡΠ° Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π±ΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π΄Π²ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π²Π΅ΡΠΎΠΊ, ΠΎΠ΄Π½Π° Π΄Π»Ρ HTTP/3, Π° Π²ΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠ°Ρ Google (Chrome ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°).
Mga pangunahing tampok ng 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 maipadala 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);
- Paggamit ng ibang 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;
- Malaking pagtaas sa performance 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