ΠΠΎΠΌΠΈΡΠ΅Ρ IETF (Internet Engineering Task Force), Π·Π°Π½ΠΈΠΌΠ°ΡΡΠΈΠΉΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, Π·Π°Π²Π΅ΡΡΠΈΠ» ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ RFC Π΄Π»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° HTTP/3.0 ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ RFC 9114 (ΠΏΡΠΎΡΠΎΠΊΠΎΠ») ΠΈ RFC 9204 (ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠΆΠ°ΡΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² QPACK Π΄Π»Ρ HTTP/3). Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ HTTP/3.0 ΠΏΠΎΠ»ΡΡΠΈΠ»Π° ΡΡΠ°ΡΡΡ Β«ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ°Β», ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ½ΡΡΡΡ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΏΡΠΈΠ΄Π°Π½ΠΈΡ RFC ΡΡΠ°ΡΡΡΠ° ΡΠ΅ΡΠ½ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ° (Draft Standard), ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»Π½ΡΡ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΈ ΡΡΡΡ Π²ΡΠ΅Ρ Π²ΡΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠΉ. ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ Π΄Π»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² HTTP/1.1 (RFC 9112) ΠΈ HTTP/2.0 (RFC 9113), Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ² (RFC 9110) ΠΈ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (RFC 9111).
ΠΡΠΎΡΠΎΠΊΠΎΠ» HTTP/3 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° QUIC (Quick UDP Internet Connections) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° Π΄Π»Ρ HTTP/2. QUIC ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΡ Π½Π°Π΄ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ UDP, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠ΅ TLS/SSL. ΠΡΠΎΡΠΎΠΊΠΎΠ» Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π² 2013 Π³ΠΎΠ΄Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΠ²ΡΠ·ΠΊΠ΅ TCP+TLS Π΄Π»Ρ Web, ΡΠ΅ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² TCP ΠΈ ΡΡΡΡΠ°Π½ΡΡΡΠ΅ΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΡΠ΅ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ .
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° QUIC ΠΈ HTTP/3.0 ΡΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎ Π²ΡΠ΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ web-Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ (Π² Chrome, Firefox ΠΈ Edge ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° HTTP/3 Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π° Π² Safari ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Β«Advanced > Experimental Features > HTTP/3Β»). ΠΠ° ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ HTTP/3 Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ nginx (Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ ΠΈ Π² ΡΠΎΡΠΌΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ), Caddy, IIS ΠΈ LiteSpeed. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ HTTP/3 ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Cloudflare.
Ciri utama QUIC:
- Keselamatan tinggi, serupa dengan TLS (sebenarnya, QUIC menyediakan keupayaan untuk menggunakan TLS melalui UDP);
- Kawalan integriti aliran untuk mengelakkan kehilangan paket;
- Keupayaan untuk mewujudkan sambungan serta-merta (0-RTT, dalam kira-kira 75% daripada kes, data boleh dihantar serta-merta selepas menghantar paket persediaan sambungan) dan memberikan kelewatan minimum antara menghantar permintaan dan menerima respons (RTT, Masa Pergi Balik);
- Menggunakan nombor urutan yang berbeza apabila menghantar semula paket, yang mengelakkan kekaburan dalam mengenal pasti paket yang diterima dan menyingkirkan tamat masa;
- Kehilangan paket hanya menjejaskan penghantaran aliran yang berkaitan dengannya dan tidak menghentikan penghantaran data dalam aliran yang dihantar selari melalui sambungan semasa;
- Alat pembetulan ralat yang meminimumkan kelewatan akibat penghantaran semula paket yang hilang. Penggunaan kod pembetulan ralat khas pada peringkat paket untuk mengurangkan situasi yang memerlukan penghantaran semula data paket yang hilang.
- Sempadan blok kriptografi diselaraskan dengan sempadan paket QUIC, yang mengurangkan kesan kehilangan paket pada penyahkodan kandungan paket berikutnya;
- Tiada masalah dengan menyekat baris gilir TCP;
- Sokongan ID Sambungan untuk mengurangkan masa penyambungan semula untuk pelanggan mudah alih;
- Kemungkinan untuk menyambungkan mekanisme lanjutan untuk kawalan beban lampau sambungan;
- Menggunakan teknik ramalan jalur lebar dalam setiap arah untuk memastikan keamatan optimum penghantaran paket, menghalang rolling ke dalam keadaan kesesakan, di mana terdapat kehilangan paket;
- Peningkatan ketara dalam prestasi dan daya pengeluaran berbanding TCP. Untuk perkhidmatan video seperti YouTube, QUIC telah ditunjukkan dapat mengurangkan operasi penimbalan semula apabila menonton video sebanyak 30%.
ΠΠ· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ HTTP/1.1 ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π·Π°ΠΏΡΠ΅Ρ Π½Π° ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊΠ°ΡΠ΅ΡΠΊΠΈ (CR) Π²Π½Π΅ ΡΠ΅Π»Π° Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ, Ρ.Π΅. Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΡΠΈΠΌΠ²ΠΎΠ» CR ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ (CRLF). ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ chunked-Π·Π°ΠΏΡΠΎΡΠΎΠ² Π΄ΠΎΡΠ°Π±ΠΎΡΠ°Π½ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΠ½Π½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΡΠ΅ΠΊΡΠΈΠΈ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ. ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°ΡΠ°ΠΊ ΠΊΠ»Π°ΡΡΠ° Β«HTTP Request SmugglingΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ Π²ΠΊΠ»ΠΈΠ½ΠΈΠ²Π°ΡΡΡΡ Π² ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² ΠΏΠΎΡΠΎΠΊΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΎΠ½ΡΡΠ½Π΄ΠΎΠΌ ΠΈ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠΌ.
Π ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ HTTP/2.0 ΡΠ²Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° TLS 1.3. ΠΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ
ΡΡ
Π΅ΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½Π΅ΠΉ ΠΏΠΎΠ»Ρ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ
. ΠΠ±ΡΡΠ²Π»Π΅Π½ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ HTTP/1.1. Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΈΠΌΡΠ½ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π½Π΅Π΅ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΊΠ°Π΄ΡΠΎΠ² ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π·Π°ΠΏΡΠ΅ΡΡΠ½Π½ΡΠ΅ ΠΏΠΎΠ»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
Sumber: opennet.ru