ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π—Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ QUIC Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ интСрСсно Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, поэтому ΠΌΡ‹ любим ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎ Π½Π΅ΠΌ. Но Ссли ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎ QUIC носили большС историчСский (краСвСдчСский, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅) Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ ΠΈ ΠΌΠ°Ρ‚Ρ‡Π°ΡΡ‚ΡŒ, Ρ‚ΠΎ сСгодня ΠΌΡ‹ Ρ€Π°Π΄Ρ‹ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΎΠ»ΠΊΠ° – Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π² 2019 Π³ΠΎΠ΄Ρƒ. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Ρ€Π΅Ρ‡ΡŒ Π½Π΅ ΠΏΡ€ΠΎ ΠΌΠ°Π»ΡƒΡŽ инфраструктуру, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽΡΡ Π² условном Π³Π°Ρ€Π°ΠΆΠ΅, Π° ΠΏΡ€ΠΎ Uber, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ. Как ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ QUIC Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈ тСсты ΠΈ Ρ‡Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ послС раскатки Π² ΠΏΡ€ΠΎΠ΄ – под ΠΊΠ°Ρ‚ΠΎΠΌ.

ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΊΠ»ΠΈΠΊΠ°Π±Π΅Π»ΡŒΠ½Ρ‹. ΠŸΡ€ΠΈΡΡ‚Π½ΠΎΠ³ΠΎ чтСния!

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Uber – это ΠΌΠΈΡ€ΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π±, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ 600 Π³ΠΎΡ€ΠΎΠ΄ΠΎΠ² присутствия, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ полагаСтся Π½Π° бСспроводной ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 4500 сотовых ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ просто быстро, Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ – Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ это, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Uber Π½ΡƒΠΆΠ½Ρ‹ Π½ΠΈΠ·ΠΊΠΈΠ΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ соСдинСниС. Π£Π²Ρ‹, Π½ΠΎ стСк HTTP/2 ΠΏΠ»ΠΎΡ…ΠΎ сСбя чувствуСт Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Ρ‹Ρ… ΠΈ склонных ΠΊ потСрям бСспроводных сСтях. ΠœΡ‹ уяснили, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС низкая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ связана с рСализациями TCP Π² ядрах ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ QUIC, соврСмСнный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» с ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°Π½Π°Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ большС контроля Π½Π°Π΄ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ транспортного ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ рабочая Π³Ρ€ΡƒΠΏΠΏΠ° IETF стандартизируСт QUIC ΠΊΠ°ΠΊ HTTP/3.

ПослС ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… тСстов, ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ QUIC Π² нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ сдСлаСт «хвостовыС» Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ мСньшС ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с TCP. ΠœΡ‹ наблюдали сниТСниС Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 10-30% для HTTPS-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΈ пассаТирского ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΆΠ΅ QUIC Π΄Π°Π» Π½Π°ΠΌ сквозной ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ дСлимся ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ TCP для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Uber с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стСка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ QUIC.

ПослСднСС слово Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ: TCP

БСгодня TCP – самый ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ транспортный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» для доставки HTTPS-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² сСти Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. TCP обСспСчиваСт Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ², Ρ‚Π΅ΠΌ самым ΡΠΏΡ€Π°Π²Π»ΡΡΡΡŒ с ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ сСти ΠΈ потСрями канального уровня. Π¨ΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ TCP для HTTPS-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π²Π΅Π·Π΄Π΅ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ (ΠΏΠΎΡ‡Ρ‚ΠΈ каТдая ОБ содСрТит TCP), Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ Π½Π° бОльшСй части инфраструктуры (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° балансировщиках Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, HTTPS-прокси ΠΈ CDN) ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ», которая доступна ΠΏΠΎΡ‡Ρ‚ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ сСтСй.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ…ΠΎΠ΄Ρƒ, ΠΈ «хвостовыС» Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ TCP Π±Ρ‹Π»ΠΈ Π΄Π°Π»Π΅ΠΊΠΈ ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ нашСго HTTPS-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΡ€ΠΎΡ‰Π΅ говоря, с этим ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ – Π½Π° РисункС 1 ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… Π³ΠΎΡ€ΠΎΠ΄Π°Ρ…:

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Рисунок 1. Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Π° «хвостовых» Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π² основных Π³ΠΎΡ€ΠΎΠ΄Π°Ρ… присутствия Uber.

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² индийских ΠΈ Π±Ρ€Π°Π·ΠΈΠ»ΡŒΡΠΊΠΈΡ… сСтях Π±Ρ‹Π»ΠΈ большС, Ρ‡Π΅ΠΌ Π² БША ΠΈ Π’Π΅Π»ΠΈΠΊΠΎΠ±Ρ€ΠΈΡ‚Π°Π½ΠΈΠΈ, хвостовыС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большС Ρ‡Π΅ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² срСднСм. И это Ρ‚Π°ΠΊ Π΄Π°ΠΆΠ΅ для БША ΠΈ Π’Π΅Π»ΠΈΠΊΠΎΠ±Ρ€ΠΈΡ‚Π°Π½ΠΈΠΈ.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ TCP ΠΏΠΎ Π²ΠΎΠ·Π΄ΡƒΡ…Ρƒ

TCP Π±Ρ‹Π» создан для ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½Ρ‹Ρ… сСтСй, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ с ΡƒΠΏΠΎΡ€ΠΎΠΌ Π½Π° Ρ…ΠΎΡ€ΠΎΡˆΠΎ прСдсказуСмыС ссылки. Однако Ρƒ бСспроводных сСтСй свои особСнности ΠΈ трудности. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, бСспроводныС сСти Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ потСрям ΠΈΠ·-Π·Π° ΠΏΠΎΠΌΠ΅Ρ… ΠΈ затухания сигнала. НапримСр, сСти Wi-Fi Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠ²ΠΎΠ»Π½Π°ΠΌ, bluetooth ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ Ρ€Π°Π΄ΠΈΠΎΠ²ΠΎΠ»Π½Π°ΠΌ. Π‘ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ сСти ΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‚ ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ сигнала (ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΏΡƒΡ‚ΠΈ) ΠΈΠ·-Π·Π° отраТСния/поглощСния сигнала ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°ΠΌΠΈ ΠΈ строСниями, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ ΠΏΠΎΠΌΠ΅Ρ… ΠΎΡ‚ сосСдних сотовых Π²Ρ‹ΡˆΠ΅ΠΊ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ (Π² 4-10 Ρ€Π°Π·) ΠΈ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΊΡ€ΡƒΠ³ΠΎΠ²Ρ‹ΠΌ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ (RTT) ΠΈ потСрям ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½Ρ‹ΠΌ соСдинСниСм.

Π§Ρ‚ΠΎΠ±Ρ‹ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с флуктуациями Π² полосС пропускания ΠΈ потСрях, сотовыС сСти ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ большиС Π±ΡƒΡ„Π΅Ρ€Ρ‹ для всплСсков Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠΉ очСрСдности, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ бОльшиС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ. ΠžΡ‡Π΅Π½ΡŒ часто TCP Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΡ‚Π΅Ρ€ΡŽ ΠΈΠ·-Π·Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°, поэтому TCP склонСн Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ ΠΈ Ρ‚Π΅ΠΌ самым Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° извСстна ΠΊΠ°ΠΊ bufferbloat (излишняя сСтСвая буфСризация, распуханиС Π±ΡƒΡ„Π΅Ρ€Π°), ΠΈ это ΠΎΡ‡Π΅Π½ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° соврСмСнного ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°.

НаконСц, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сотовой сСти мСняСтся Π² зависимости ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° связи, Ρ€Π΅Π³ΠΈΠΎΠ½Π° ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. На РисункС 2 ΠΌΡ‹ собрали ΠΌΠ΅Π΄ΠΈΠ°Π½Π½Ρ‹Π΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ HTTPS-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΏΠΎ сотам Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 2 ΠΊΠΈΠ»ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π”Π°Π½Π½Ρ‹Π΅ собраны для Π΄Π²ΡƒΡ… ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сотовой связи Π² Π”Π΅Π»ΠΈ, Индия. Как ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ мСняСтся ΠΎΡ‚ соты ΠΊ сотС. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° отличаСтся ΠΎΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ. На это Π²Π»ΠΈΡΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΊΠ°ΠΊ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ Π²Ρ…ΠΎΠ΄Π° Π² ΡΠ΅Ρ‚ΡŒ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ, ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ сСтСвая инфраструктура с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ плотности Π²Ρ‹ΡˆΠ΅ΠΊ ΠΈ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ² сСти (LTE, 3G ΠΈ Ρ‚.Π΄.).

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Рисунок 2. Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 2-ΠΊΠΈΠ»ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠ²ΠΎΠ³ΠΎ радиуса. Π”Π΅Π»ΠΈ, Индия.

Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сотовых сСтСй мСняСтся Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. На РисункС 3 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° мСдианная Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎ дням Π½Π΅Π΄Π΅Π»ΠΈ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ наблюдали Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² Π±ΠΎΠ»Π΅Π΅ малСньком ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅ – Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ дня ΠΈ часа.

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Рисунок 3. Π₯востовыС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Π΅ Π΄Π½ΠΈ, Π½ΠΎ Ρƒ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

ВсС Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΠΎΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ TCP нСэффСктивна Π² бСспроводных сСтях. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ TCP, ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌ:

  • являСтся Π»ΠΈ TCP Π³Π»Π°Π²Π½Ρ‹ΠΌ Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠΎΠΌ хвостовых Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π² Π½Π°ΡˆΠΈΡ… прилоТСниях?
  • Π˜ΠΌΠ΅ΡŽΡ‚ Π»ΠΈ соврСмСнныС сСти Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΡ€ΡƒΠ³ΠΎΠ²Ρ‹Π΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ (RTT)?
  • Каково влияниС RTT ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ TCP?

Анализ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ TCP

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ TCP, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ вспомним, ΠΊΠ°ΠΊ TCP ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ отправитСля ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŽ. Π’Π½Π°Ρ‡Π°Π»Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ устанавливаСт TCP-соСдинСниС, выполняя трСхсторонний Ρ…Π΅Π½Π΄ΡˆΠ΅ΠΉΠΊ: ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ отправляСт SYN-ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΆΠ΄Π΅Ρ‚ SYN-ACK-ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΡ‚ получатСля, Π·Π°Ρ‚Π΅ΠΌ ΡˆΠ»Π΅Ρ‚ ACK-ΠΏΠ°ΠΊΠ΅Ρ‚. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Ρ‹ уходят Π½Π° созданиС TCP-соСдинСния. ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° (ACK), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΡƒΡŽ доставку.

Если потСрян ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ ACK, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ рСтрансмит послС Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π° (RTO, retransmission timeout). RTO рассчитываСтся динамичСски, Π½Π° основании Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ΅ RTT ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΌ.

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Рисунок 4. ОбмСн ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ΠΏΠΎ TCP/TLS Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° рСтрансмита.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ TCP Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² Π½Π°ΡˆΠΈΡ… прилоТСниях, ΠΌΡ‹ отслСТивали TCP-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ tcpdump Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅Π΄Π΅Π»ΠΈ Π½Π° Π±ΠΎΠ΅Π²ΠΎΠΌ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ΅, ΠΈΠ΄ΡƒΡ‰Π΅ΠΌ с индийских ΠΏΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… сСрвСров. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ TCP-соСдинСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ tcptrace. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΡ‹ создали Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡˆΠ»Π΅Ρ‚ эмулированный Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° тСстовый сСрвСр, максимально подраТая Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡƒ. Π‘ΠΌΠ°Ρ€Ρ‚Ρ„ΠΎΠ½Ρ‹ с этим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π±Ρ‹Π»ΠΈ Ρ€ΠΎΠ·Π΄Π°Π½Ρ‹ нСскольким сотрудникам, ΠΊΡ‚ΠΎ собирал Π»ΠΎΠ³ΠΈ Π½Π° протяТСнии Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π½Π΅ΠΉ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΎΠ±ΠΎΠΈΡ… экспСримСнтов Π±Ρ‹Π»ΠΈ сообразны Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ. ΠœΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ высокиС RTT-Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ; хвостовыС значСния Π±Ρ‹Π»ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π² 6 Ρ€Π°Π· Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Π΄ΠΈΠ°Π½Π½ΠΎΠ³ΠΎ значСния; срСднСС арифмСтичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ – Π±ΠΎΠ»Π΅Π΅ 1 сСкунды. МногиС соСдинСния Π±Ρ‹Π»ΠΈ с потСрями, Ρ‡Ρ‚ΠΎ заставляло TCP Ρ€Π΅Ρ‚Ρ€Π°Π½ΡΠΌΠΈΡ‚ΠΈΡ‚ΡŒ 3,5% всСх ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π’ Ρ€Π°ΠΉΠΎΠ½Π°Ρ… с ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, аэропорты ΠΈ Π²ΠΎΠΊΠ·Π°Π»Ρ‹, ΠΌΡ‹ наблюдали 7%-Π½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ. Π’Π°ΠΊΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ставят ΠΏΠΎΠ΄ сомнСниС расхоТСС ΠΌΠ½Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² сотовых сСтях ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ схСмы рСтрансмиссии Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π½Π° транспортном ΡƒΡ€ΠΎΠ²Π½Π΅. НиТС – Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстов ΠΈΠ· прилоТСния-«симулянта»:

Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ
ЗначСния

RTT, миллисСкунды [50%,75%, 95%,99%]
[350, 425, 725, 2300]

RTT-расхоТдСниС, сСкунды
Π’ срСднСм ~1,2 с

ΠŸΠΎΡ‚Π΅Ρ€Ρ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² нСустойчивых соСдинСниях
Π’ срСднСм ~3.5% (7% Π² Ρ€Π°ΠΉΠΎΠ½Π°Ρ… с ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ)

ΠŸΠΎΡ‡Ρ‚ΠΈ Π² ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ этих соСдинСний Π±Ρ‹Π»Π° ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄Π½Π° потСря ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΏΠΎ большСй части это Π±Ρ‹Π»ΠΈ SYN ΠΈ SYN-ACK-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ TCP ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ RTO Π² 1 сСкунду для SYN-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ увСличиваСтся ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΡ‚Π΅Ρ€ΡŒ. ВрСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ прилоТСния ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ Π·Π° счСт Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ TCP потрСбуСтся большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° установку соСдинСний.

Π’ случаС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, высокиС значСния RTO сильно ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΡŽ сСти ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π² бСспроводных сСтях. ΠœΡ‹ выяснили, Ρ‡Ρ‚ΠΎ срСднСС врСмя рСтрансмита – ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 1 сСкунда с хвостовой Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠΎΡ‡Ρ‚ΠΈ Π² 30 сСкунд. Π’Π°ΠΊΠΈΠ΅ высокиС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ TCP Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ HTTPS-Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ запросы, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ большС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π»ΠΎ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ Π½Π΅ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ сСти.

Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ 75-ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»ΡŒ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹Ρ… RTT Π±Ρ‹Π» Π² Ρ€Π°ΠΉΠΎΠ½Π΅ 425 мс, 75-ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»ΡŒ для TCP Π±Ρ‹Π» ΠΏΠΎΡ‡Ρ‚ΠΈ 3 сСкунды. Π­Ρ‚ΠΎ Π½Π°ΠΌΠ΅ΠΊΠ°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ заставляли TCP Π΄Π΅Π»Π°Ρ‚ΡŒ 7-10 ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠ² Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слСдствиСм нСэффСктивного расчСта RTO, нСвозмоТности TCP быстро Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΠΎΡ‚Π΅Ρ€ΡŽ послСдних ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² ΠΎΠΊΠ½Π΅ ΠΈ нСэффСктивности Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° управлСния ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚ бСспроводныС ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ·-Π·Π° сСтСвой ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ. НиТС – Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстов ΠΏΠΎΡ‚Π΅Ρ€ΡŒ TCP:

Бтатистика ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² TCP
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚ соСдинСний с ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 1 ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π°
45%

ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚ соСдинСний с потСрями Π²ΠΎ врСмя установлСния соСдинСния
30%

ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚ соСдинСний с потСрями Π²ΠΎ врСмя ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ
76%

РаспрСдСлСниС Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π² рСтрансмиссии, сСкунды [50%, 75%, 95%,99%] [1, 2.8, 15, 28]

РаспрСдСлСниС количСства рСтрансмиссий для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ»ΠΈ TCP-сСгмСнта
[1,3,6,7]

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ QUIC

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ спроСктированный ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google, QUIC – это ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ соврСмСнный транспортный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ²Π΅Ρ€Ρ… UDP. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ QUIC Π² процСссС стандартизации (ΠΌΡ‹ ΡƒΠΆΠ΅ писали, Ρ‡Ρ‚ΠΎ сущСствуСт ΠΊΠ°ΠΊ Π±Ρ‹ Π΄Π²Π΅ вСрсии QUIC, Π»ΡŽΠ±ΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ ссылкС – ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°). Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° РисункС 5, QUIC размСстился ΠΏΠΎΠ΄ HTTP/3 (собствСнно, HTTP/2 ΠΏΠΎΠ²Π΅Ρ€Ρ… QUIC – это ΠΈ Π΅ΡΡ‚ΡŒ HTTP/3, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сСйчас усилСнно ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚). Он частично замСняСт ΡƒΡ€ΠΎΠ²Π½ΠΈ HTTPS ΠΈ TCP, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ UDP для формирования ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². QUIC ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ TLS ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ встроСн Π² QUIC.

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Рисунок 5: QUIC Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ΄ HTTP/3, замСняя TLS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π½ΡŒΡˆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΏΠΎΠ΄ HTTP/2.

НиТС ΠΌΡ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ±Π΅Π΄ΠΈΠ»ΠΈ нас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ QUIC для усилСния TCP:

  • 0-RTT установка соСдинСния. QUIC позволяСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… соСдинСний, сниТая количСство Ρ…Π΅Π½Π΄ΡˆΠ΅ΠΉΠΊΠΎΠ² бСзопасности. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ TLS1.3 Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ 0-RTT, ΠΎΠ΄Π½Π°ΠΊΠΎ трСхсторонний TCP-Ρ…Π΅Π½Π΄ΡˆΠ΅ΠΉΠΊ всС Π΅Ρ‰Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.
  • ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Π½ΠΈΠ΅ HoL-Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. HTTP/2 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎ TCP-соСдинСниС для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ HoL (head-of-line) Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅. QUIC ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ доставляСт запросы Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.
  • ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ. QUIC находится Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, позволяя ΠΏΡ€ΠΎΡ‰Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π³Π»Π°Π²Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ транспорта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ управляСт ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… сСти (количСство ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΈΠ»ΠΈ RTT). Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ TCP-Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ CUBIC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½ для Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ. НСдавно Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π²Ρ€ΠΎΠ΄Π΅ BBR, Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‚ ΡΠ΅Ρ‚ΡŒ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ. QUIC позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ BBR ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ этот Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π΅Π³ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ.
  • восполнСниС ΠΏΠΎΡ‚Π΅Ρ€ΡŒ. QUIC Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Π²Π° TLP (tail loss probe) Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ сработаСт RTO – Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΡ‹. Π­Ρ‚ΠΎ отличаСтся ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ TCP. TLP рСтрансмитит Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ послСдний ΠΏΠ°ΠΊΠ΅Ρ‚ (ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ, Ссли Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ быстроС восполнСниС. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° хвостовых Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ особо ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Uber Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΡΠ΅Ρ‚ΡŒΡŽ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ для ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ…, эпизодичСских ΠΈ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ Π΄Π°Π½Π½Ρ‹Ρ….
  • ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ACK. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€, Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° различСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΈΡ… рСтрансмитС. ACK-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ содСрТат врСмя для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ACK Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π­Ρ‚ΠΈ особСнности Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎ QUIC Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ рассчитываСт RTT. ACK Π² QUIC ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎ 256 Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² NACK, помогая ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŽ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ устойчивым ΠΊ пСрСстановкС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мСньшС Π±Π°ΠΉΡ‚ΠΎΠ² Π² процСссС. Π’Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½Ρ‹ΠΉ ACK (SACK) Π² TCP Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π²ΠΎ всСх случаях.
  • миграция соСдинСния. БоСдинСния QUIC ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 64-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ ID, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ссли ΠΊΠ»ΠΈΠ΅Π½Ρ‚ мСняСт IP-адрСса, ΠΌΠΎΠΆΠ½ΠΎ дальшС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ID старого соСдинСния Π½Π° Π½ΠΎΠ²ΠΎΠΌ IP-адрСсС, Π±Π΅Π· ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ частая ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Wi-Fi ΠΈ сотовыми соСдинСниями.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ QUIC

ΠœΡ‹ рассматривали Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ QUIC.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΌΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ TPC PoPs (Points of Presence), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ TCP-соСдинСния Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. По сути, PoPs Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ TCP-соСдинСниС с ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ устройством Π±Π»ΠΈΠΆΠ΅ ΠΊ сотовой сСти ΠΈ проксируСт Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π΄ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ инфраструктуры. Π—Π°Π²Π΅Ρ€ΡˆΠ°Ρ TCP Π±Π»ΠΈΠΆΠ΅, ΠΌΡ‹ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ RTT ΠΈ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ TCP Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎΠ΅ бСспроводноС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅. Однако наши экспСримСнты ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ большСй части RTT ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ приходят ΠΈΠ· сотовых сСтСй ΠΈ использованиС PoPs Π½Π΅ обСспСчиваСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ смотрСли Π² сторону Ρ‚ΡŽΠ½ΠΈΠ½Π³Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² TCP. Настройка TCP-стСка Π½Π° Π½Π°ΡˆΠΈΡ… Π½Π΅ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… сСрвСрах Π±Ρ‹Π»Π° Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ TCP ΠΈΠΌΠ΅Π΅Ρ‚ нСсопоставимыС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях ОБ. Π‘Ρ‹Π»ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ сСтСвыС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Настройка TCP нСпосрСдствСнно Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах Π±Ρ‹Π»Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΈΠ·-Π·Π° отсутствия ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ. Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, Ρ„ΠΈΡˆΠΊΠΈ Π²Ρ€ΠΎΠ΄Π΅ соСдинСний с 0-RTT ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΌ прСдсказаниСм RTT ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ Π²Π°ΠΆΠ½Ρ‹ для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΈ поэтому Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ сущСствСнного прСимущСства, лишь настраивая TCP.

НаконСц, ΠΌΡ‹ ΠΎΡ†Π΅Π½ΠΈΠ»ΠΈ нСсколько основанных Π½Π° UDP ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΊΠΈ Π² видСостримингС – ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π»ΠΈ эти ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ Π² нашСм случаС. Π£Π²Ρ‹, Π² Π½ΠΈΡ… сильно Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… настроСк бСзопасности, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ TCP-ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ для ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Наши изыскания ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ QUIC – Π΅Π΄Π²Π° Π»ΠΈ Π½Π΅ СдинствСнный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΏΡ€ΠΈ этом учитывая ΠΊΠ°ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ QUIC Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ QUIC ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прилоТСния Π² условиях ΠΏΠ»ΠΎΡ…ΠΎΠΉ связи, ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ старый стСк (HTTP/2 ΠΏΠΎΠ²Π΅Ρ€Ρ… TLS/TCP) Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC. ΠœΡ‹ задСйствовали ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Cronet ΠΈΠ· Chromium Projects, которая содСрТит ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ, Π³ΡƒΠ³Π»ΠΎΠ²ΡΠΊΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° – gQUIC. Π­Ρ‚Π° рСализация Ρ‚Π°ΠΊΠΆΠ΅ постоянно ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ послСднСй спСцификации IETF.

Π‘ΠΏΠ΅Ρ€Π²Π° ΠΌΡ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Cronet Π² наши Android-прилоТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ QUIC. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Π±Ρ‹Π»Π° осущСствлСна Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ максимально ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ старый сСтСвой стСк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ использовал Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ OkHttp, ΠΌΡ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Cronet ΠŸΠžΠ” Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ OkHttp API. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ Ρ‚Π°ΠΊΠΈΠΌ способом, ΠΌΡ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½Π°ΡˆΠΈΡ… сСтСвых Π²Ρ‹Π·ΠΎΠ²Π°Ρ… (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Retrofit) Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ API.

Подобно ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ ΠΊ Android-устройствам, ΠΌΡ‹ Π²Π½Π΅Π΄Ρ€ΠΈΠ»ΠΈ Cronet Π² прилоТСния Uber ΠΏΠΎΠ΄ iOS, пСрСхватывая HTTP-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈΠ· сСтСвых API, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ NSURLProtocol. Π­Ρ‚Π° абстракция, прСдоставлСнная iOS Foundation, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»-спСцифичныС URL-Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Cronet Π² наши iOS-прилоТСния Π±Π΅Π· сущСствСнных ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚.

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ QUIC Π½Π° балансировщиках Google Cloud

На сторонС бэкСнда Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ QUIC обСспСчСно инфраструктурой Google Cloud Load balancing, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ alt-svc Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π² ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ QUIC. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС, ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ HTTP-запросу балансировщик добавляСт Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ alt-svc ΠΈ ΡƒΠΆΠ΅ ΠΎΠ½ Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ QUIC для Π΄ΠΎΠΌΠ΅Π½Π°. Когда ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Cronet ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ HTTP-ΠΎΡ‚Π²Π΅Ρ‚ с Ρ‚Π°ΠΊΠΈΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ QUIC для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… HTTP-запросов ΠΊ этому Π΄ΠΎΠΌΠ΅Π½Ρƒ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ балансировщик Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ QUIC, наша инфраструктура явно отправляСт это дСйствиС ΠΏΠΎ HTTP2/TCP Π² наши Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Ρ‹.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

ВыдаваСмая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ – это главная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° нашСго поиска Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Для Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ создали стСнд с эмуляциСй сСти, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ сСбя вСсти QUIC ΠΏΡ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… сСтСвых профилях. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ QUIC Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… сСтях, ΠΌΡ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈ экспСримСнты, ΠΊΠ°Ρ‚Π°ΡΡΡŒ ΠΏΠΎ Нью Π”Π΅Π»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΈ этом эмулированный сСтСвой Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° HTTP-Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ пассаТира.

ЭкспСримСнт 1

Π˜Π½Π²Π΅Π½Ρ‚Π°Ρ€ΡŒ для экспСримСнта:

  • тСстовыС устройства Π½Π° Android со стСками OkHttp ΠΈ Cronet, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ пускаСм HTTPS-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎ TCP ΠΈ QUIC соотвСтствСнно;
  • сСрвСр эмуляции Π½Π° Π±Π°Π·Π΅ Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡˆΠ»Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Π΅ HTTPS-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π² ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ… ΠΈ Π½Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ клиСнтскиС устройства, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚ Π½ΠΈΡ… запросы;
  • ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ прокси, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ физичСски располоТСны Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ Индии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ TCP ΠΈ QUIC-соСдинСния. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ TCP ΠΌΡ‹ использовали ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ прокси Π½Π° NGINX, Π±Ρ‹Π»ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π½Π°ΠΉΡ‚ΠΈ опСнсорсный ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ прокси для QUIC. ΠœΡ‹ собрали ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ прокси для QUIC сами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ стСк QUIC ΠΈΠ· Chromium ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ Π² Ρ…Ρ€ΠΎΠΌΠΈΡƒΠΌ ΠΊΠ°ΠΊ опСнсорсный.

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Рисунок 6. Π”ΠΎΡ€ΠΎΠΆΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ для тСстов TCP vs QUIC состоял ΠΈΠ· Android-устройств с OkHttp ΠΈ Cronet, ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… прокси для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ соСдинСний ΠΈ сСрвСра эмуляции.

ЭкспСримСнт 2

Когда Google сдСлал QUIC доступным с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Google Cloud Load Balancing, ΠΌΡ‹ использовали Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€ΡŒ, Π½ΠΎ с ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ: вмСсто NGINX, ΠΌΡ‹ взяли гугловскиС балансировщики для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ TCP ΠΈ QUIC-соСдинСний ΠΎΡ‚ устройств, Π° Ρ‚Π°ΠΊΠΆΠ΅ для направлСния HTTPS-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² сСрвСр эмуляции. Балансировщики распрСдСлСны ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ блиТайший ΠΊ устройству PoP-сСрвСр (спасибо Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠΈ).

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Рисунок 7. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ экспСримСнтС ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π» ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ TCP ΠΈ QUIC: с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Google Cloud ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нашСго ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ прокси.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ нас ΠΆΠ΄Π°Π»ΠΎ нСсколько ΠΎΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½ΠΈΠΉ:

  • Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· PoP ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ TCP. Π’Π°ΠΊ ΠΊΠ°ΠΊ балансировщики Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ TCP-соСдинСниС Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, это Π΄Π°Π΅Ρ‚ мСньшиС RTT, Ρ‡Ρ‚ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ TCP. И хотя Π½Π° QUIC это сказалось мСньшС, ΠΎΠ½ всС Ρ€Π°Π²Π½ΠΎ обошСл TCP Π² ΠΏΠ»Π°Π½Π΅ сниТСния хвостовых Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ (Π½Π° 10-30 ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ²).
  • Π½Π° хвосты Π²Π»ΠΈΡΡŽΡ‚ сСтСвыС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ (hops). Π₯отя наш QUIC-прокси Π±Ρ‹Π» дальшС ΠΎΡ‚ устройств (Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° 50 мс Π²Ρ‹ΡˆΠ΅), Ρ‡Π΅ΠΌ гугловскиС балансировщики, ΠΎΠ½ Π²Ρ‹Π΄Π°Π²Π°Π» ΡΡ…ΠΎΠΆΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ – 15%-Π½ΠΎΠ΅ сниТСниС Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΏΡ€ΠΎΡ‚ΠΈΠ² 20%-Π½ΠΎΠ³ΠΎ сниТСния Π² 99 ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»Π΅ Ρƒ TCP. Π­Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° послСднСй ΠΌΠΈΠ»Π΅ – это ΡƒΠ·ΠΊΠΎΠ΅ мСсто (bottleneck) Π² Ρ€Π°Π±ΠΎΡ‚Π΅ сСти.

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Рисунок 8. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π΄Π²ΡƒΡ… экспСримСнтов ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ QUIC Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прСвосходит TCP.

Π‘ΠΎΠ΅Π²ΠΎΠΉ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ

Π’Π΄ΠΎΡ…Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ экспСримСнтами, ΠΌΡ‹ Π²Π½Π΅Π΄Ρ€ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ QUIC Π² наши Android ΠΈ iOS-прилоТСния. ΠœΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ A/B тСстированиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ влияниС QUIC Π² Π³ΠΎΡ€ΠΎΠ΄Π°Ρ… присутствия Uber. Π’ Ρ†Π΅Π»ΠΎΠΌ, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ΅ сниТСниС хвостовых Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ ΠΊΠ°ΠΊ Ρ€Π΅Π³ΠΈΠΎΠ½ΠΎΠ², Ρ‚Π°ΠΊ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² связи ΠΈ Ρ‚ΠΈΠΏΠ° сСти.

На Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ… Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ хвостов (95 ΠΈ 99 ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»ΠΈ) ΠΏΠΎ ΠΌΠ°ΠΊΡ€ΠΎΡ€Π΅Π³ΠΈΠΎΠ½Π°ΠΌ ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ сСти – LTE, 3G, 2G.
ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC Π² Π΄Π΅Π»Π΅: ΠΊΠ°ΠΊ Π΅Π³ΠΎ внСдрял Uber, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
Рисунок 9. Π’ Π±ΠΎΠ΅Π²Ρ‹Ρ… тСстах QUIC ΠΏΡ€Π΅Π²Π·ΠΎΡˆΠ΅Π» TCP ΠΏΠΎ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ.

Волько Π²ΠΏΠ΅Ρ€Π΅Π΄

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΠΎ – Π²Ρ‹ΠΊΠ°Ρ‚ΠΊΠ° QUIC Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½ Π΄Π°Π»Π° ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΠ΅ возмоТности ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ Π² ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… сСтях, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:

Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ покрытия

ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ΅, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 80% сСссий ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ использовали QUIC для всСх запросов, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ 15% сСссий использовали сочСтаниС QUIC ΠΈ TCP. ΠœΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ сочСтаниС появилось ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Cronet ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° TCP ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ UDP-сбои ΠΈ ΠΏΠ»ΠΎΡ…ΠΈΠ΅ условия сСти. БСйчас ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°Π΄ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ QUIC.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ QUIC

Π’Ρ€Π°Ρ„ΠΈΠΊ ΠΈΠ· ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ чувствитСлСн ΠΊ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ, Π½ΠΎ Π½Π΅ ΠΊ полосС пропускания. Π’Π°ΠΊΠΆΠ΅ наши прилоТСния прСимущСствСнно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² сотовых сСтях. ΠžΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° экспСримСнтах, хвостовыС Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ всС Π΅Ρ‰Π΅ Π²Π΅Π»ΠΈΠΊΠΈ, Π΄Π°ΠΆΠ΅ нСсмотря Π½Π° использованиС прокси для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ TCP ΠΈ QUIC Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. ΠœΡ‹ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡ‰Π΅ΠΌ способы ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ QUIC-Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² восполнСния ΠΏΠΎΡ‚Π΅Ρ€ΡŒ.

Π‘ этими ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠΏΡ‹Ρ‚ Π²Π½Π΅ зависимости ΠΎΡ‚ сСти ΠΈ Ρ€Π΅Π³ΠΈΠΎΠ½Π°, сдСлав ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΈ Π±Π΅ΡΡˆΠΎΠ²Π½Ρ‹ΠΉ транспорт ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π±ΠΎΠ»Π΅Π΅ доступным ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ