์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•

QUIC ํ”„๋กœํ† ์ฝœ์€ ๋ณด๊ธฐ์— ๋งค์šฐ ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์šฐ๋ฆฌ๊ฐ€ ์ด์— ๋Œ€ํ•ด ๊ธ€์„ ์“ฐ๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ QUIC์— ๋Œ€ํ•œ ์ด์ „ ์ถœํŒ๋ฌผ์ด ์—ญ์‚ฌ์ (์›ํ•œ๋‹ค๋ฉด ์ง€์—ญ ์—ญ์‚ฌ) ์„ฑ๊ฒฉ๊ณผ ํ•˜๋“œ์›จ์–ด์— ๋” ๊ฐ€๊น๋‹ค๋ฉด ์˜ค๋Š˜ ์šฐ๋ฆฌ๋Š” ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ๋ฒˆ์—ญ์„ ์ถœํŒํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” 2019๋…„์— ํ”„๋กœํ† ์ฝœ์˜ ์‹ค์ œ ์ ์šฉ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์šฐ๋ฆฌ๋Š” ์†Œ์œ„ ์ฐจ๊ณ ์— ๊ธฐ๋ฐ˜์„ ๋‘” ์†Œ๊ทœ๋ชจ ์ธํ”„๋ผ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฑฐ์˜ ์ „ ์„ธ๊ณ„์—์„œ ์šด์˜๋˜๋Š” Uber์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํšŒ์‚ฌ์˜ ์—”์ง€๋‹ˆ์–ด๋“ค์ด ํ”„๋กœ๋•์…˜์—์„œ QUIC๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๋ฐฉ๋ฒ•, ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ ๋ฐฉ๋ฒ• ๋ฐ ํ”„๋กœ๋•์…˜์—์„œ ์ถœ์‹œํ•œ ํ›„ ๋ณธ ๋‚ด์šฉ์„ ์•„๋ž˜์—์„œ ํ™•์ธํ•˜์„ธ์š”.

์‚ฌ์ง„์€ ํด๋ฆญ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ฆ๊ฒ๊ฒŒ ์ฝ์œผ์„ธ์š”!

์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•

Uber๋Š” ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ๊ทœ๋ชจ๊ฐ€ 600๊ฐœ์— ๋‹ฌํ•˜๋Š” ๋„์‹œ๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ฐ ๋„์‹œ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ 4500๊ฐœ ์ด์ƒ์˜ ์ด๋™ํ†ต์‹  ์‚ฌ์—…์ž๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฌด์„  ์ธํ„ฐ๋„ท์— ์ „์ ์œผ๋กœ ์˜์กดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์•ฑ์ด ๋‹จ์ง€ ๋น ๋ฅด๊ธฐ๋งŒ ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ž‘๋™ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋‹ฌ์„ฑํ•˜๋ ค๋ฉด Uber ์•ฑ์˜ ์ง€์—ฐ ์‹œ๊ฐ„์ด ์งง๊ณ  ๋งค์šฐ ์•ˆ์ •์ ์ธ ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์•„์•„, ํ•˜์ง€๋งŒ ์Šคํƒ HTTP / 2 ๋™์ ์ด๋ฉฐ ์†์‹ค์ด ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฌ์šด ๋ฌด์„  ๋„คํŠธ์›Œํฌ์—์„œ๋Š” ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋‚ฎ์€ ์„ฑ๋Šฅ์€ ์šด์˜ ์ฒด์ œ ์ปค๋„์˜ TCP ๊ตฌํ˜„๊ณผ ์ง์ ‘์ ์ธ ๊ด€๋ จ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” QUIC, ์ „์†ก ํ”„๋กœํ† ์ฝœ์˜ ์„ฑ๋Šฅ์„ ๋” ํšจ๊ณผ์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์‹  ์ฑ„๋„ ๋‹ค์ค‘ํ™” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์›Œํ‚น๊ทธ๋ฃน IETF QUIC๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์ค€ํ™”ํ•ฉ๋‹ˆ๋‹ค. HTTP / 3.

๊ด‘๋ฒ”์œ„ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์นœ ํ›„ ์šฐ๋ฆฌ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— QUIC๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด TCP์— ๋น„ํ•ด ๊ผฌ๋ฆฌ ์ง€์—ฐ ์‹œ๊ฐ„์ด ๋‚ฎ์•„์ง„๋‹ค๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ ธ์Šต๋‹ˆ๋‹ค. ์šด์ „์ž ๋ฐ ์Šน๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ HTTPS ํŠธ๋ž˜ํ”ฝ์ด 10~30% ๋ฒ”์œ„๋กœ ๊ฐ์†Œํ•˜๋Š” ๊ฒƒ์„ ๊ด€์ฐฐํ–ˆ์Šต๋‹ˆ๋‹ค. QUIC์€ ๋˜ํ•œ ์‚ฌ์šฉ์ž ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์—”๋“œํˆฌ์—”๋“œ ์ œ์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ์‚ฌ์—์„œ๋Š” QUIC๋ฅผ ์ง€์›ํ•˜๋Š” ์Šคํƒ์„ ์‚ฌ์šฉํ•˜์—ฌ Uber ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ TCP๋ฅผ ์ตœ์ ํ™”ํ•œ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

์ตœ์‹  ๊ธฐ์ˆ : TCP

์˜ค๋Š˜๋‚  TCP๋Š” ์ธํ„ฐ๋„ท์—์„œ HTTPS ํŠธ๋ž˜ํ”ฝ์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ „์†ก ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. TCP๋Š” ์•ˆ์ •์ ์ธ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๋„คํŠธ์›Œํฌ ์ •์ฒด ๋ฐ ๋งํฌ ๊ณ„์ธต ์†์‹ค์— ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HTTPS ํŠธ๋ž˜ํ”ฝ์— TCP๊ฐ€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ด์œ ๋Š” ์ „์ž์˜ ํŽธ์žฌ์„ฑ(๊ฑฐ์˜ ๋ชจ๋“  OS์— TCP๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Œ), ๋Œ€๋ถ€๋ถ„์˜ ์ธํ”„๋ผ(์˜ˆ: ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ, HTTPS ํ”„๋ก์‹œ ๋ฐ CDN)์—์„œ์˜ ๊ฐ€์šฉ์„ฑ ๋ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์˜ ํ”Œ๋žซํผ๊ณผ ๋„คํŠธ์›Œํฌ์—์„œ.

๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๋Š” ์ด๋™ ์ค‘์—๋„ ์šฐ๋ฆฌ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ฉฐ TCP ํ…Œ์ผ ์ง€์—ฐ ์‹œ๊ฐ„์€ ์‹ค์‹œ๊ฐ„ HTTPS ํŠธ๋ž˜ํ”ฝ ์š”๊ตฌ์— ๋ฏธ์น˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ, ์ „ ์„ธ๊ณ„ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฅผ ๊ฒฝํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆผ 1์€ ์ฃผ์š” ๋„์‹œ์˜ ์ง€์—ฐ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•
๊ทธ๋ฆผ 1: ๊ผฌ๋ฆฌ ์ง€์—ฐ ์‹œ๊ฐ„์€ Uber์˜ ์ฃผ์š” ๋„์‹œ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์ธ๋„์™€ ๋ธŒ๋ผ์งˆ ๋„คํŠธ์›Œํฌ์˜ ๋Œ€๊ธฐ ์‹œ๊ฐ„์€ ๋ฏธ๊ตญ๊ณผ ์˜๊ตญ๋ณด๋‹ค ๋†’์•˜์ง€๋งŒ ๊ผฌ๋ฆฌ ๋Œ€๊ธฐ ์‹œ๊ฐ„์€ ํ‰๊ท  ๋Œ€๊ธฐ ์‹œ๊ฐ„๋ณด๋‹ค ํ›จ์”ฌ ๋†’์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Š” ๋ฏธ๊ตญ๊ณผ ์˜๊ตญ์˜ ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

TCP OTA ์„ฑ๋Šฅ

TCP๋Š” ๋‹ค์Œ์„ ์œ„ํ•ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ด๊ด‘ํ•œ ์ฆ‰, ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ ๋งํฌ์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๋ฌด์„  ์ „ํ™” ๋„คํŠธ์›Œํฌ์—๋Š” ๊ณ ์œ ํ•œ ํŠน์„ฑ๊ณผ ์–ด๋ ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ, ๋ฌด์„  ๋„คํŠธ์›Œํฌ๋Š” ๊ฐ„์„ญ ๋ฐ ์‹ ํ˜ธ ๊ฐ์‡ ๋กœ ์ธํ•ด ์†์‹ค๋˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Wi-Fi ๋„คํŠธ์›Œํฌ๋Š” ์ „์ž๋ ˆ์ธ์ง€, ๋ธ”๋ฃจํˆฌ์Šค ๋ฐ ๊ธฐํƒ€ ์ „ํŒŒ์— ๋ฏผ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์…€๋ฃฐ๋Ÿฌ ๋„คํŠธ์›Œํฌ๋Š” ์‹ ํ˜ธ ์†์‹ค๋กœ ์ธํ•ด ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์žƒ์–ด๋ฒ„๋ฆฐ ๊ธธ) ๋ฌผ์ฒด์™€ ๊ฑด๋ฌผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹ ํ˜ธ์˜ ๋ฐ˜์‚ฌ/ํก์ˆ˜๋กœ ์ธํ•ด ๊ฐ„์„ญ ์ด์›ƒ์—์„œ ์…€ ํƒ€์›Œ. ์ด๋Š” ๋” ์ค‘์š”ํ•˜๊ณ (4~10๋ฐฐ) ๋” ๋‹ค์–‘ํ•ด์ง‘๋‹ˆ๋‹ค. ์™•๋ณต ์‹œ๊ฐ„(RTT) ์œ ์„  ์—ฐ๊ฒฐ์— ๋น„ํ•ด ํŒจํ‚ท ์†์‹ค์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋Œ€์—ญํญ ๋ณ€๋™ ๋ฐ ์†์‹ค์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์…€๋ฃฐ๋Ÿฌ ๋„คํŠธ์›Œํฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํŠธ๋ž˜ํ”ฝ ๋ฒ„์ŠคํŠธ์— ๋Œ€ํ•ด ๋Œ€๊ทœ๋ชจ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๊ณผ๋„ํ•œ ๋Œ€๊ธฐ์—ด์ด ๋ฐœ์ƒํ•˜์—ฌ ์ง€์—ฐ ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. TCP๋Š” ์—ฐ์žฅ๋œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ์ธํ•ด ์ด ๋Œ€๊ธฐ์—ด์„ ๋‚ญ๋น„๋กœ ๊ฐ„์ฃผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ TCP๋Š” ๋ฆด๋ ˆ์ดํ•˜์—ฌ ๋ฒ„ํผ๋ฅผ ์ฑ„์šฐ๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„ํผ๋ธ”๋กœํŠธ (๊ณผ๋„ํ•œ ๋„คํŠธ์›Œํฌ ๋ฒ„ํผ๋ง, ๋ฒ„ํผ ํŒฝ์ฐฝ) ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ๋งค์šฐ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ ํ˜„๋Œ€ ์ธํ„ฐ๋„ท.

๋งˆ์ง€๋ง‰์œผ๋กœ ์…€๋ฃฐ๋Ÿฌ ๋„คํŠธ์›Œํฌ ์„ฑ๋Šฅ์€ ์ด๋™ํ†ต์‹ ์‚ฌ, ์ง€์—ญ, ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋ฆผ 2์—์„œ๋Š” 2km ๋ฒ”์œ„ ๋‚ด์˜ ์…€ ์ „์ฒด์—์„œ HTTPS ํŠธ๋ž˜ํ”ฝ์˜ ํ‰๊ท  ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ˆ˜์ง‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธ๋„ ๋ธ๋ฆฌ์— ์žˆ๋Š” ๋‘ ๊ฐœ์˜ ์ฃผ์š” ์ด๋™ํ†ต์‹  ์‚ฌ์—…์ž์— ๋Œ€ํ•ด ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ๋ณด์‹œ๋‹ค์‹œํ”ผ ์„ฑ๋Šฅ์€ ์…€๋งˆ๋‹ค ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋˜ํ•œ ํ•œ ์ž‘์—…์ž์˜ ์ƒ์‚ฐ์„ฑ์€ ๋‘ ๋ฒˆ์งธ ์ž‘์—…์ž์˜ ์ƒ์‚ฐ์„ฑ๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ด๋Š” ์‹œ๊ฐ„๊ณผ ์œ„์น˜๋ฅผ ๊ณ ๋ คํ•œ ๋„คํŠธ์›Œํฌ ์ง„์ž… ํŒจํ„ด, ์‚ฌ์šฉ์ž ์ด๋™์„ฑ์„ ๊ณ ๋ คํ•œ ๋„คํŠธ์›Œํฌ ์ธํ”„๋ผ, ํƒ€์›Œ โ€‹โ€‹๋ฐ€๋„, ๋„คํŠธ์›Œํฌ ์œ ํ˜•(LTE, 3G ๋“ฑ) ๋น„์œจ์„ ๊ณ ๋ คํ•œ ๋„คํŠธ์›Œํฌ ์ธํ”„๋ผ ๋“ฑ์˜ ์š”์ธ์— ์˜ํ•ด ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•
๊ทธ๋ฆผ 2. 2km ๋ฐ˜๊ฒฝ์„ ์˜ˆ๋กœ ์‚ฌ์šฉํ•œ ์ง€์—ฐ. ์ธ๋„ ๋ธ๋ฆฌ.

๋˜ํ•œ ์…€๋ฃฐ๋Ÿฌ ๋„คํŠธ์›Œํฌ์˜ ์„ฑ๋Šฅ์€ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ฆผ 3์€ ์š”์ผ๋ณ„ ํ‰๊ท  ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ํ•˜๋ฃจ, ํ•œ ์‹œ๊ฐ„ ๋‚ด์— ๋” ์ž‘์€ ๊ทœ๋ชจ๋กœ ์ฐจ์ด๋ฅผ ๊ด€์ฐฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•
๊ทธ๋ฆผ 3. ๊ผฌ๋ฆฌ ์ง€์—ฐ์€ ๋‚ ์งœ๋ณ„๋กœ ํฌ๊ฒŒ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์ง€๋งŒ ๋™์ผํ•œ ์šด์˜์ž์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์œ„์˜ ๋ชจ๋“  ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ๋ฌด์„  ๋„คํŠธ์›Œํฌ์—์„œ๋Š” TCP ์„ฑ๋Šฅ์ด ๋น„ํšจ์œจ์ ์œผ๋กœ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ TCP์— ๋Œ€ํ•œ ๋Œ€์•ˆ์„ ์ฐพ๊ธฐ ์ „์— ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ์ดํ•ด๋ฅผ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์šฐ๋ฆฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ผฌ๋ฆฌ ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ฃผ๋ฒ”์€ TCP์ž…๋‹ˆ๊นŒ?
  • ์ตœ์‹  ๋„คํŠธ์›Œํฌ์—๋Š” ์ค‘์š”ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์™•๋ณต ์ง€์—ฐ(RTT)์ด ์žˆ์Šต๋‹ˆ๊นŒ?
  • RTT์™€ ์†์‹ค์ด TCP ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

TCP ์„ฑ๋Šฅ ๋ถ„์„

TCP ์„ฑ๋Šฅ์„ ๋ถ„์„ํ•œ ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด TCP๊ฐ€ ๋ฐœ์‹ ์ž์—์„œ ์ˆ˜์‹ ์ž๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์†ก์‹ ์ž๋Š” TCP ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜์—ฌ XNUMX๋ฐฉํ–ฅ ํ†ต์‹ ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์•…์ˆ˜: ์†ก์‹ ์ž๋Š” SYN ํŒจํ‚ท์„ ๋ณด๋‚ด๊ณ  ์ˆ˜์‹ ์ž๋กœ๋ถ€ํ„ฐ SYN-ACK ํŒจํ‚ท์„ ๊ธฐ๋‹ค๋ฆฐ ํ›„ ACK ํŒจํ‚ท์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๋‘ ๋ฒˆ์งธ ๋ฐ ์„ธ ๋ฒˆ์งธ ํŒจ์Šค๋Š” TCP ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜์‹ ์ž๋Š” ์•ˆ์ •์ ์ธ ์ „๋‹ฌ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ํŒจํ‚ท(ACK)์˜ ์ˆ˜์‹ ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

ํŒจํ‚ท์ด๋‚˜ ACK๊ฐ€ ์†์‹ค๋˜๋ฉด ๋ณด๋‚ธ ์‚ฌ๋žŒ์€ ์‹œ๊ฐ„ ์ดˆ๊ณผ(RTO, ์žฌ์ „์†ก ์‹œ๊ฐ„ ์ดˆ๊ณผ). RTO๋Š” ๋ฐœ์‹ ์ž์™€ ์ˆ˜์‹ ์ž ๊ฐ„์˜ ์˜ˆ์ƒ RTT ์ง€์—ฐ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์š”์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ ์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•
๊ทธ๋ฆผ 4. TCP/TLS๋ฅผ ํ†ตํ•œ ํŒจํ‚ท ๊ตํ™˜์—๋Š” ์žฌ์ „์†ก ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ TCP๊ฐ€ ์–ด๋–ป๊ฒŒ ์ˆ˜ํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ TCP ํŒจํ‚ท์„ ๋ชจ๋‹ˆํ„ฐ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. TCP ๋คํ”„ ์ธ๋„ ์—ฃ์ง€ ์„œ๋ฒ„์—์„œ ์˜ค๋Š” ์ „ํˆฌ ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•ด ์ผ์ฃผ์ผ ๋™์•ˆ. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ TCP ์—ฐ๊ฒฐ์„ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค. TCP ์ถ”์ . ๋˜ํ•œ, ์‹ค์ œ ํŠธ๋ž˜ํ”ฝ์„ ์ตœ๋Œ€ํ•œ ๋ชจ๋ฐฉํ•˜์—ฌ ์—๋ฎฌ๋ ˆ์ดํŠธ๋œ ํŠธ๋ž˜ํ”ฝ์„ ํ…Œ์ŠคํŠธ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋Š” 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 ๊ตฌํ˜„์—์„œ๋Š” SYN ํŒจํ‚ท์— ๋Œ€ํ•ด 1์ดˆ์˜ RTO ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ด๋Š” ํ›„์† ์†์‹ค์— ๋Œ€ํ•ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. TCP๊ฐ€ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ๋” ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๋“œ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํŒจํ‚ท์˜ ๊ฒฝ์šฐ ๋†’์€ RTO ๊ฐ’์€ ๋ฌด์„  ๋„คํŠธ์›Œํฌ์—์„œ ์ผ์‹œ์ ์ธ ์†์‹ค์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ์˜ ์œ ์šฉํ•œ ํ™œ์šฉ๋„๋ฅผ ํฌ๊ฒŒ ๊ฐ์†Œ์‹œํ‚ต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ‰๊ท  ์žฌ์ „์†ก ์‹œ๊ฐ„์ด ์•ฝ 1์ดˆ์ด๊ณ  ๊ผฌ๋ฆฌ ์ง€์—ฐ์ด ๊ฑฐ์˜ 30์ดˆ๋ผ๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. TCP ์ˆ˜์ค€์˜ ์ด๋Ÿฌํ•œ ๋†’์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„์œผ๋กœ ์ธํ•ด HTTPS ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐ ์žฌ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ๋Œ€๊ธฐ ์‹œ๊ฐ„๊ณผ ๋น„ํšจ์œจ์„ฑ์ด ๋”์šฑ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ธก์ •๋œ RTT์˜ 75๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜๋Š” ์•ฝ 425ms์ธ ๋ฐ˜๋ฉด, TCP์˜ 75๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜๋Š” ๊ฑฐ์˜ 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 ์•„๋ž˜์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค(์‚ฌ์‹ค QUIC ์œ„์— ์žˆ๋Š” HTTP/2๋Š” HTTP/3์ด๋ฉฐ ํ˜„์žฌ ์ง‘์ค‘์ ์œผ๋กœ ํ‘œ์ค€ํ™”๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค). UDP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ท์„ ํ˜•์„ฑํ•จ์œผ๋กœ์จ HTTPS ๋ฐ TCP ๊ณ„์ธต์„ ๋ถ€๋ถ„์ ์œผ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. TLS๊ฐ€ QUIC์— ์™„์ „ํžˆ ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ QUIC๋Š” ๋ณด์•ˆ ๋ฐ์ดํ„ฐ ์ „์†ก๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•
๊ทธ๋ฆผ 5: QUIC๋Š” ์ด์ „์— HTTP/3์—์„œ ์‹คํ–‰๋˜์—ˆ๋˜ TLS๋ฅผ ๋Œ€์ฒดํ•˜์—ฌ HTTP/2์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์šฐ๋ฆฌ๊ฐ€ TCP ์ฆํญ์„ ์œ„ํ•ด QUIC๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ ์ด์œ ์ž…๋‹ˆ๋‹ค.

  • 0-RTT ์—ฐ๊ฒฐ ์„ค์ •. QUIC์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด์ „ ์—ฐ๊ฒฐ์˜ ์ธ์ฆ์„ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ ํ•ธ๋“œ์…ฐ์ดํฌ ํšŸ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋Š” TLS1.3 0-RTT๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ XNUMX๋ฐฉํ–ฅ TCP ํ•ธ๋“œ์…ฐ์ดํฌ๊ฐ€ ์—ฌ์ „ํžˆ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • HoL ์ฐจ๋‹จ์„ ๊ทน๋ณตํ•ฉ๋‹ˆ๋‹ค. HTTP/2๋Š” ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ๋‹น ํ•˜๋‚˜์˜ TCP ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ด๋กœ ์ธํ•ด HoL(head-of-line) ์ฐจ๋‹จ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. QUIC์€ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์š”์ฒญ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋…๋ฆฝ์ ์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • ํ˜ผ์žก ํ†ต์ œ. QUIC์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์— ์ƒ์ฃผํ•˜๋ฏ€๋กœ ๋„คํŠธ์›Œํฌ ๋งค๊ฐœ๋ณ€์ˆ˜(์†์‹ค ์ˆ˜ ๋˜๋Š” RTT)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ „์†ก์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ธฐ๋ณธ ์ „์†ก ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋” ์‰ฝ๊ฒŒ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ TCP ๊ตฌํ˜„์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ๋น…์ด๋Š” ์ง€์—ฐ ์‹œ๊ฐ„์— ๋ฏผ๊ฐํ•œ ํŠธ๋ž˜ํ”ฝ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ๊ฐœ๋ฐœ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ BBR, ๋„คํŠธ์›Œํฌ๋ฅผ ๋ณด๋‹ค ์ •ํ™•ํ•˜๊ฒŒ ๋ชจ๋ธ๋งํ•˜๊ณ  ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. QUIC์„ ์‚ฌ์šฉํ•˜๋ฉด BBR์„ ์‚ฌ์šฉํ•˜๊ณ  ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉ๋˜๋Š” ๋Œ€๋กœ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™„๋ฒฝ.
  • ์†์‹ค ๋ณด์ถฉ. QUIC๋Š” ๋‘ ๊ฐœ์˜ TLP๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค(๊ผฌ๋ฆฌ ์†์‹ค ํ”„๋กœ๋ธŒ) RTO๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „ - ์†์‹ค์ด ๋งค์šฐ ๋ˆˆ์— ๋„๋Š” ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ด๋Š” TCP ๊ตฌํ˜„๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. TLP๋Š” ๋น ๋ฅธ ๋ณด์ถฉ์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ๋กœ ๋งˆ์ง€๋ง‰ ํŒจํ‚ท(๋˜๋Š” ์žˆ๋Š” ๊ฒฝ์šฐ ์ƒˆ ํŒจํ‚ท)์„ ์žฌ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ๊ผฌ๋ฆฌ ์ง€์—ฐ ์ฒ˜๋ฆฌ๋Š” Uber๊ฐ€ ๋„คํŠธ์›Œํฌ๋ฅผ ์šด์˜ํ•˜๋Š” ๋ฐฉ์‹, ์ฆ‰ ์งง๊ณ  ์‚ฐ๋ฐœ์ ์ด๋ฉฐ ์ง€์—ฐ ์‹œ๊ฐ„์— ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก์— ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ์ ํ™”๋œ ACK. ๊ฐ ํŒจํ‚ท์—๋Š” ๊ณ ์œ ํ•œ ์‹œํ€€์Šค ๋ฒˆํ˜ธ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ตฌ๋ณ„ ํŒจํ‚ท์ด ์žฌ์ „์†ก๋  ๋•Œ. ACK ํŒจํ‚ท์—๋Š” ํŒจํ‚ท์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ACK๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์‹œ๊ฐ„๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด QUIC์ด RTT๋ฅผ ๋” ์ •ํ™•ํ•˜๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. QUIC์˜ ACK๋Š” ์ตœ๋Œ€ 256๊ฐœ ๋Œ€์—ญ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. NACK, ๋ฐœ์‹ ์ž๊ฐ€ ํŒจํ‚ท ์…”ํ”Œ๋ง์— ๋Œ€ํ•œ ํƒ„๋ ฅ์„ฑ์„ ๋†’์ด๊ณ  ํ”„๋กœ์„ธ์Šค์—์„œ ๋” ์ ์€ ๋ฐ”์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ์„ ํƒ์  ACK(SACK) TCP์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๊ฒฝ์šฐ์— ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
  • ์—ฐ๊ฒฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜. QUIC ์—ฐ๊ฒฐ์€ 64๋น„ํŠธ ID๋กœ ์‹๋ณ„๋˜๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ IP ์ฃผ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ ์ค‘๋‹จ ์—†์ด ์ƒˆ IP ์ฃผ์†Œ์—์„œ ์ด์ „ ์—ฐ๊ฒฐ ID๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ Wi-Fi์™€ ์…€๋ฃฐ๋Ÿฌ ์—ฐ๊ฒฐ ๊ฐ„์— ์ „ํ™˜ํ•˜๋Š” ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋งค์šฐ ์ผ๋ฐ˜์ ์ธ ๊ด€ํ–‰์ž…๋‹ˆ๋‹ค.

QUIC์˜ ๋Œ€์•ˆ

์šฐ๋ฆฌ๋Š” QUIC๋ฅผ ์„ ํƒํ•˜๊ธฐ ์ „์— ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ๋Œ€์ฒด ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ณ ๋ คํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์‹œ๋„ํ•œ ์ฒซ ๋ฒˆ์งธ ์ผ์€ TPC PoP(Points of Presence)๋ฅผ ๋ฐฐํฌํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋” ๊ฐ€๊นŒ์šด TCP ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ PoP๋Š” ์…€๋ฃฐ๋Ÿฌ ๋„คํŠธ์›Œํฌ์— ๋” ๊ฐ€๊นŒ์šด ๋ชจ๋ฐ”์ผ ์žฅ์น˜์™€์˜ TCP ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ณ  ํŠธ๋ž˜ํ”ฝ์„ ์›๋ž˜ ์ธํ”„๋ผ๋กœ ๋‹ค์‹œ ํ”„๋ก์‹œํ•ฉ๋‹ˆ๋‹ค. TCP๋ฅผ ๋” ๊ฐ€๊น๊ฒŒ ์ข…๋ฃŒํ•จ์œผ๋กœ์จ ์ž ์žฌ์ ์œผ๋กœ RTT๋ฅผ ์ค„์ด๊ณ  TCP๊ฐ€ ๋™์  ๋ฌด์„  ํ™˜๊ฒฝ์— ๋” ์ž˜ ๋ฐ˜์‘ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ์˜ ์‹คํ—˜์— ๋”ฐ๋ฅด๋ฉด RTT์™€ ์†์‹ค์˜ ๋Œ€๋ถ€๋ถ„์€ ์…€๋ฃฐ๋Ÿฌ ๋„คํŠธ์›Œํฌ์—์„œ ๋ฐœ์ƒํ•˜๋ฉฐ PoP๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ TCP ๋งค๊ฐœ๋ณ€์ˆ˜ ์กฐ์ •๋„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. TCP๋Š” ์„œ๋กœ ๋‹ค๋ฅธ OS ๋ฒ„์ „์— ๊ฑธ์ณ ์„œ๋กœ ๋‹ค๋ฅธ ๊ตฌํ˜„์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ธฐ์ข… ์—์ง€ ์„œ๋ฒ„์— TCP ์Šคํƒ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ๊ถŒํ•œ ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ๋ชจ๋ฐ”์ผ ์žฅ์น˜์—์„œ ์ง์ ‘ TCP๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ 0-RTT ์—ฐ๊ฒฐ ๋ฐ ๊ฐœ์„ ๋œ RTT ์˜ˆ์ธก๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ํ”„๋กœํ† ์ฝœ ์•„ํ‚คํ…์ฒ˜์— ๋งค์šฐ ์ค‘์š”ํ•˜๋ฏ€๋กœ TCP๋งŒ ์กฐ์ •ํ•˜์—ฌ ์ƒ๋‹นํ•œ ์ด์ ์„ ์–ป๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ๋น„๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์—ฌ๋Ÿฌ UDP ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ์„ ํ‰๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋กœํ† ์ฝœ์ด ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์— ๋„์›€์ด ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ๋งŽ์€ ๋ณด์•ˆ ์„ค์ •์ด ์‹ฌ๊ฐํ•˜๊ฒŒ ๋ถ€์กฑํ–ˆ์œผ๋ฉฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฐ ์ œ์–ด ์ •๋ณด์— ๋Œ€ํ•œ ์ถ”๊ฐ€ TCP ์—ฐ๊ฒฐ๋„ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ์—ฐ๊ตฌ์— ๋”ฐ๋ฅด๋ฉด QUIC๋Š” ์•„๋งˆ๋„ ๋ณด์•ˆ๊ณผ ์„ฑ๋Šฅ์„ ๋ชจ๋‘ ๊ณ ๋ คํ•˜๋ฉด์„œ ์ธํ„ฐ๋„ท ํŠธ๋ž˜ํ”ฝ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ํ”„๋กœํ† ์ฝœ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

QUIC๋ฅผ ํ”Œ๋žซํผ์— ํ†ตํ•ฉ

QUIC๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๋‚ด์žฅํ•˜๊ณ  ์—ด์•…ํ•œ ์—ฐ๊ฒฐ ํ™˜๊ฒฝ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ด์ „ ์Šคํƒ(TLS/TCP๋ฅผ ํ†ตํ•œ HTTP/2)์„ QUIC ํ”„๋กœํ† ์ฝœ๋กœ ๊ต์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋„คํŠธ์›Œํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค ํฌ๋กœ๋„ท ์œผ๋กœ ํฌ๋กฌ ํ”„๋กœ์ ํŠธ, ์—ฌ๊ธฐ์—๋Š” ์›๋ž˜ Google ๋ฒ„์ „์˜ ํ”„๋กœํ† ์ฝœ์ธ gQUIC๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌํ˜„์€ ์ตœ์‹  IETF ์‚ฌ์–‘์„ ๋”ฐ๋ฅด๋„๋ก ์ง€์†์ ์œผ๋กœ ๊ฐœ์„ ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋จผ์ € Cronet์„ Android ์•ฑ์— ํ†ตํ•ฉํ•˜์—ฌ QUIC์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋น„์šฉ์„ ์ตœ๋Œ€ํ•œ ์ค„์ด๋Š” ๋ฐฉ์‹์œผ๋กœ ํ†ตํ•ฉ์ด ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ๋˜ ๊ธฐ์กด ๋„คํŠธ์›Œํ‚น ์Šคํƒ์„ ์™„์ „ํžˆ ๊ต์ฒดํ•˜๋Š” ๋Œ€์‹  ์•Œ์•˜์–ดHttp, ์šฐ๋ฆฌ๋Š” OkHttp API ํ”„๋ ˆ์ž„์›Œํฌ ์•„๋ž˜์— Cronet์„ ํ†ตํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ํ†ตํ•ฉ์„ ์ˆ˜ํ–‰ํ•จ์œผ๋กœ์จ ์šฐ๋ฆฌ๋Š” ๋„คํŠธ์›Œํฌ ํ˜ธ์ถœ(์—์„œ ์‚ฌ์šฉ๋˜๋Š”)์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์„ ๋ฐฉ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์กฐ) API ์ˆ˜์ค€์—์„œ.

Android ๊ธฐ๊ธฐ์˜ ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ iOS์˜ Uber ์•ฑ์— Cronet์„ ๊ตฌํ˜„ํ•˜์—ฌ ๋„คํŠธ์›Œํฌ์—์„œ HTTP ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€๋กœ์ฑ„์—ˆ์Šต๋‹ˆ๋‹ค. API์‚ฌ์šฉ NSURLํ”„๋กœํ† ์ฝœ. iOS Foundation์—์„œ ์ œ๊ณตํ•˜๋Š” ์ด ์ถ”์ƒํ™”๋Š” ํ”„๋กœํ† ์ฝœ๋ณ„ URL ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ƒ๋‹นํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋น„์šฉ ์—†์ด Cronet์„ iOS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

Google Cloud Balancer์—์„œ QUIC ์™„๋ฃŒ

๋ฐฑ์—”๋“œ ์ธก์—์„œ QUIC ์™„๋ฃŒ๋Š” Google Cloud ๋ถ€ํ•˜ ๋ถ„์‚ฐ ์ธํ”„๋ผ์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Alt-svc QUIC ์ง€์›์„ ์œ„ํ•œ ์‘๋‹ต ํ—ค๋”. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐธ๋Ÿฐ์„œ๋Š” ๊ฐ HTTP ์š”์ฒญ์— alt-svc ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉฐ ์ด๋Š” ์ด๋ฏธ ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ QUIC ์ง€์›์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. Cronet ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด ํ—ค๋”๊ฐ€ ํฌํ•จ๋œ HTTP ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ํ•ด๋‹น ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ํ›„์† HTTP ์š”์ฒญ์— QUIC๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐธ๋Ÿฐ์„œ๊ฐ€ QUIC๋ฅผ ์™„๋ฃŒํ•˜๋ฉด ์ธํ”„๋ผ๋Š” HTTP2/TCP๋ฅผ ํ†ตํ•ด ์ด ์ž‘์—…์„ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋กœ ๋ช…์‹œ์ ์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

์„ฑ๊ณผ: ๊ฒฐ๊ณผ

์ถœ๋ ฅ ์„ฑ๋Šฅ์€ ์šฐ๋ฆฌ๊ฐ€ ๋” ๋‚˜์€ ํ”„๋กœํ† ์ฝœ์„ ์ฐพ๋Š” ์ฃผ๋œ ์ด์œ ์ž…๋‹ˆ๋‹ค. ์šฐ์„  ์šฐ๋ฆฌ๋Š” ์Šคํƒ ๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์—๋ฎฌ๋ ˆ์ด์…˜QUIC๊ฐ€ ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ•„์—์„œ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์„ธ์š”. ์‹ค์ œ ๋„คํŠธ์›Œํฌ์—์„œ QUIC์˜ ์„ฑ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์Šน๊ฐ ์•ฑ์˜ HTTP ํ˜ธ์ถœ๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•œ ์—๋ฎฌ๋ ˆ์ดํŠธ๋œ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‰ด๋ธ๋ฆฌ๋ฅผ ์šด์ „ํ•˜๋ฉด์„œ ์‹คํ—˜์„ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹คํ—˜ 1

์‹คํ—˜ ์žฅ๋น„:

  • OkHttp ๋ฐ Cronet ์Šคํƒ์œผ๋กœ Android ์žฅ์น˜๋ฅผ ํ…Œ์ŠคํŠธํ•˜์—ฌ TCP ๋ฐ QUIC๋ฅผ ํ†ตํ•œ HTTPS ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ๊ฐ ํ—ˆ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ๋™์ผํ•œ ์œ ํ˜•์˜ HTTPS ํ—ค๋”๋ฅผ ์‘๋‹ต์œผ๋กœ ๋ณด๋‚ด๊ณ  ํด๋ผ์ด์–ธํŠธ ์žฅ์น˜๋ฅผ ๋กœ๋“œํ•˜์—ฌ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜๋Š” Java ๊ธฐ๋ฐ˜ ์—๋ฎฌ๋ ˆ์ด์…˜ ์„œ๋ฒ„
  • TCP ๋ฐ QUIC ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์ธ๋„์— ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ฐ€๊นŒ์šด ๊ณณ์— ์œ„์น˜ํ•œ ํด๋ผ์šฐ๋“œ ํ”„๋ก์‹œ. TCP ์ข…๋ฃŒ๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์—ญ๋ฐฉํ–ฅ ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. NGINX, QUIC์šฉ ์˜คํ”ˆ ์†Œ์Šค ์—ญ๋ฐฉํ–ฅ ํ”„๋ก์‹œ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Chromium์˜ ๊ธฐ๋ณธ QUIC ์Šคํƒ์„ ์‚ฌ์šฉํ•˜์—ฌ QUIC์šฉ ์—ญ๋ฐฉํ–ฅ ํ”„๋ก์‹œ๋ฅผ ์ง์ ‘ ๊ตฌ์ถ•ํ–ˆ์œผ๋ฉฐ ์ถœํŒํ•˜๋‹ค ์˜คํ”ˆ ์†Œ์Šค๋กœ ํฌ๋กฌ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•
๊ทธ๋ฆผ 6. TCP ๋ฐ QUIC ๋กœ๋“œ ํ…Œ์ŠคํŠธ ์ œํ’ˆ๊ตฐ์€ OkHttp ๋ฐ Cronet์ด ํฌํ•จ๋œ Android ์žฅ์น˜, ์—ฐ๊ฒฐ ์ข…๋ฃŒ๋ฅผ ์œ„ํ•œ ํด๋ผ์šฐ๋“œ ํ”„๋ก์‹œ, ์—๋ฎฌ๋ ˆ์ด์…˜ ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์‹คํ—˜ 2

Google์ด QUIC์„ ์ œ๊ณตํ–ˆ์„ ๋•Œ ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ, ๋™์ผํ•œ ์ธ๋ฒคํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ํ•œ ๊ฐ€์ง€ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. NGINX ๋Œ€์‹  Google ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žฅ์น˜์—์„œ TCP ๋ฐ QUIC ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ณ  HTTPS ํŠธ๋ž˜ํ”ฝ์„ ์—๋ฎฌ๋ ˆ์ด์…˜ ์„œ๋ฒ„๋กœ ๋ผ์šฐํŒ…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐธ๋Ÿฐ์„œ๋Š” ์ „ ์„ธ๊ณ„์— ๋ถ„์‚ฐ๋˜์–ด ์žˆ์ง€๋งŒ ์ง€๋ฆฌ์  ์œ„์น˜ ๋•๋ถ„์— ์žฅ์น˜์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด PoP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•
๊ทธ๋ฆผ 7. ๋‘ ๋ฒˆ์งธ ์‹คํ—˜์—์„œ๋Š” Google Cloud์™€ ํด๋ผ์šฐ๋“œ ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ TCP์™€ QUIC์˜ ์™„๋ฃŒ ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋น„๊ตํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ๊ฒฐ๊ณผ, ๋ช‡ ๊ฐ€์ง€ ๊ณ„์‹œ๊ฐ€ ์šฐ๋ฆฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • PoP๋ฅผ ํ†ตํ•œ ์ข…๋ฃŒ๋กœ ์ธํ•ด TCP ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐธ๋Ÿฐ์„œ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋” ๊ฐ€๊นŒ์šด ๊ณณ์—์„œ TCP ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜๊ณ  ๊ณ ๋„๋กœ ์ตœ์ ํ™”๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ RTT๊ฐ€ ๋‚ฎ์•„์ ธ TCP ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค. QUIC๋Š” ์˜ํ–ฅ์„ ๋œ ๋ฐ›์•˜์ง€๋งŒ ๊ผฌ๋ฆฌ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ์ธก๋ฉด์—์„œ ์—ฌ์ „ํžˆ TCP๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค(10-30%).
  • ๊ผฌ๋ฆฌ๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›์Œ ๋„คํŠธ์›Œํฌ ํ™‰. QUIC ํ”„๋ก์‹œ๋Š” Google์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ณด๋‹ค ์žฅ์น˜์—์„œ ๋” ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ์ง€๋งŒ(์•ฝ 50ms ๋” ๋†’์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„) ๋น„์Šทํ•œ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด 15% ๊ฐ์†Œํ•œ ๋ฐ˜๋ฉด TCP์˜ 20๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜๋Š” 99% ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ผ์ŠคํŠธ ๋งˆ์ผ ์ „ํ™˜์ด ๋„คํŠธ์›Œํฌ์˜ ๋ณ‘๋ชฉ ํ˜„์ƒ์ž„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•
๊ทธ๋ฆผ 8: ๋‘ ๊ฐ€์ง€ ์‹คํ—˜์˜ ๊ฒฐ๊ณผ๋Š” QUIC๊ฐ€ TCP๋ณด๋‹ค ํ›จ์”ฌ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ณด์ธ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ „ํˆฌ ๊ตํ†ต

์‹คํ—˜์—์„œ ์˜๊ฐ์„ ๋ฐ›์•„ Android ๋ฐ iOS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— QUIC ์ง€์›์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Uber๊ฐ€ ์šด์˜๋˜๋Š” ๋„์‹œ์—์„œ QUIC์˜ ์˜ํ–ฅ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด A/B ํ…Œ์ŠคํŠธ๋ฅผ ์‹ค์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ์ง€์—ญ, ํ†ต์‹  ์‚ฌ์—…์ž ๋ฐ ๋„คํŠธ์›Œํฌ ์œ ํ˜• ๋ชจ๋‘์—์„œ ๊ผฌ๋ฆฌ ์ง€์—ฐ์ด ํฌ๊ฒŒ ๊ฐ์†Œํ•œ ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ๊ทธ๋ž˜ํ”„๋Š” ๊ฑฐ์‹œ ์ง€์—ญ ๋ฐ ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ ์œ ํ˜•(LTE, 95G, 99G)๋ณ„ ๊ผฌ๋ฆฌ(3 ๋ฐ 2 ๋ฐฑ๋ถ„์œ„์ˆ˜)์˜ ๊ฐœ์„  ๋น„์œจ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•์‹ค์ œ ์ž‘๋™ ์ค‘์ธ QUIC ํ”„๋กœํ† ์ฝœ: Uber๊ฐ€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ ๋ฐฉ๋ฒ•
๊ทธ๋ฆผ 9. ์ „ํˆฌ ํ…Œ์ŠคํŠธ์—์„œ QUIC๋Š” ์ง€์—ฐ ์‹œ๊ฐ„ ์ธก๋ฉด์—์„œ TCP๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค.

์•ž์œผ๋กœ ๋งŒ

์•„๋งˆ๋„ ์ด๊ฒƒ์€ ์‹œ์ž‘์— ๋ถˆ๊ณผํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. QUIC์˜ ํ”„๋กœ๋•์…˜ ์ถœ์‹œ๋Š” ์•ˆ์ •์ ์ธ ๋„คํŠธ์›Œํฌ์™€ ๋ถˆ์•ˆ์ •ํ•œ ๋„คํŠธ์›Œํฌ ๋ชจ๋‘์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋†€๋ผ์šด ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰:

์ ์šฉ ๋ฒ”์œ„ ์ฆ๊ฐ€

์‹ค์ œ ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•œ ํ”„๋กœํ† ์ฝœ ์„ฑ๋Šฅ์„ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ ์•ฝ 80%์˜ ์„ธ์…˜์ด QUIC๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ–ˆ์œผ๋ฉฐ ์„ธ์…˜์˜ 15%๋Š” QUIC์™€ TCP์˜ ์กฐํ•ฉ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ UDP ์˜ค๋ฅ˜์™€ ์—ด์•…ํ•œ ๋„คํŠธ์›Œํฌ ์ƒํƒœ๋ฅผ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— Cronet ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ TCP๋กœ ๋‹ค์‹œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์กฐํ•ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ QUIC์˜ ํ›„์† ๊ตฌํ˜„์„ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๋ฉด์„œ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋น ๋ฅธ ์ตœ์ ํ™”

๋ชจ๋ฐ”์ผ ์•ฑ์˜ ํŠธ๋ž˜ํ”ฝ์€ ์ง€์—ฐ ์‹œ๊ฐ„์— ๋ฏผ๊ฐํ•˜์ง€๋งŒ ๋Œ€์—ญํญ์—๋Š” ๋ฏผ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹น์‚ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ฃผ๋กœ ์…€๋ฃฐ๋Ÿฌ ๋„คํŠธ์›Œํฌ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‹คํ—˜์— ๋”ฐ๋ฅด๋ฉด ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ฐ€๊นŒ์ด์—์„œ TCP ๋ฐ QUIC๋ฅผ ์ข…๋ฃŒํ•˜๋”๋ผ๋„ ๊ผฌ๋ฆฌ ์ง€์—ฐ ์‹œ๊ฐ„์ด ์—ฌ์ „ํžˆ ๋†’์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ˜ผ์žก ๊ด€๋ฆฌ๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  QUIC ์†์‹ค ๋ณต๊ตฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ์ ๊ทน์ ์œผ๋กœ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฐœ์„  ์‚ฌํ•ญ๊ณผ ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ฐœ์„  ์‚ฌํ•ญ์„ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ๋„คํŠธ์›Œํฌ ๋ฐ ์ง€์—ญ์— ๊ด€๊ณ„์—†์ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜์—ฌ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ํŽธ๋ฆฌํ•˜๊ณ  ์›ํ™œํ•œ ํŒจํ‚ท ์ „์†ก์— ๋” ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€