UDP๋ฅผ ํ†ตํ•œ HTTP - QUIC ํ”„๋กœํ† ์ฝœ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉ

UDP๋ฅผ ํ†ตํ•œ HTTP - QUIC ํ”„๋กœํ† ์ฝœ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉ

QUIC(๋น ๋ฅธ UDP ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ)๋Š” TCP, TLS ๋ฐ HTTP/2์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” UDP ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ข…์ข… ์ƒˆ๋กœ์šด ๋˜๋Š” "์‹คํ—˜์ " ํ”„๋กœํ† ์ฝœ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ์ง€๋งŒ ์‹คํ—˜ ๋‹จ๊ณ„๋ณด๋‹ค ์˜ค๋ž˜ ์ง€์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์€ 7๋…„ ์ด์ƒ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ํ”„๋กœํ† ์ฝœ์€ ํ‘œ์ค€์ด ๋˜์ง€ ๋ชปํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋„๋ฆฌ ๋ณด๊ธ‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, QUIC๋Š” Google ๋ฐ Facebook๊ณผ ๊ฐ™์€ ๊ฑฐ๋Œ€ ๊ธฐ์—…์—์„œ ๋ชจ๋ฐ”์ผ ๋„คํŠธ์›Œํฌ์˜ ํŠธ๋ž˜ํ”ฝ ์†๋„๋ฅผ ๋†’์ด๊ณ  ์ง€์—ฐ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ IETF๋Š” ์ด ํ”„๋กœํ† ์ฝœ ํฌํฌ๋ฅผ HTTP/3 ํ‘œ์ค€์˜ ๊ธฐ์ดˆ๋กœ ์„ ์–ธํ–ˆ์Šต๋‹ˆ๋‹ค(HTTP/2๊ฐ€ 44.8%์— ๋ถˆ๊ณผ ์‚ฌ์ดํŠธ).

๊ฐœ๋…

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

UDP๋ฅผ ํ†ตํ•œ HTTP - QUIC ํ”„๋กœํ† ์ฝœ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉ

QUIC๋Š” TCP ๋Œ€์ฒด์™€ TLS 1.3 ๊ตฌํ˜„์„ ๊ฒฐํ•ฉํ•˜๋ฏ€๋กœ ๋ชจ๋“  ์—ฐ๊ฒฐ์€ ํ•ญ์ƒ ์•”ํ˜ธํ™”๋˜๋ฉฐ ์ด๋Ÿฌํ•œ ํŠธ๋ž˜ํ”ฝ์„ ํ•ด๋…ํ•˜๋Š” ๊ฒƒ์€ HTTPS๋ฅผ ํ†ตํ•ด ์ง„ํ–‰๋˜๋Š” ๊ฒฝ์šฐ๋ณด๋‹ค ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ QUIC๋Š” TCP ์Šคํƒ์„ ์™„์ „ํžˆ ๊ต์ฒดํ•˜๋ ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€์—์„œ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์˜์›.

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

UDP๋ฅผ ํ†ตํ•œ HTTP - QUIC ํ”„๋กœํ† ์ฝœ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉ

์‚ฌ์šฉ

์ฒ˜์Œ์— QUIC์€ Google ๋‚ด์—์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ ์ฃผ๋กœ ํšŒ์‚ฌ ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ๋งž์ถคํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 2013๋…„์—๋Š” ํ‘œ์ค€ํ™”๋ฅผ ์œ„ํ•ด IETF๋กœ ์ด๊ด€๋˜์—ˆ์œผ๋ฉฐ(์•„์ง ์ง„ํ–‰ ์ค‘), ์ด์ œ๋Š” ๋ˆ„๊ตฌ๋‚˜ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์„ ์ œ์•ˆํ•˜์—ฌ ํ”„๋กœํ† ์ฝœ ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. IETF ์ž‘์—… ๊ทธ๋ฃน์€ ์ƒˆ๋กœ์šด ํ‘œ์ค€์ด ์Šน์ธ๋˜๊ณ  ํ˜์‹ ์ด ๋…ผ์˜๋˜๋Š” ์—ฐ๋ก€ ํšŒ์˜๋ฅผ ์กฐ์งํ•ฉ๋‹ˆ๋‹ค. ์ด QUIC ๊ตฌํ˜„์€ ์ฃผ์š” ๊ตฌํ˜„์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ฉฐ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ HTTP/3 ํ‘œ์ค€์ด ์ธ์ฆ๋ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ HTTP/3์„ ๊ธฐ๋ณธ ํ”„๋กœํ† ์ฝœ๋กœ ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋…ผ์˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์•„์ง ์™„์„ฑ๋˜์ง€ ์•Š์•˜๊ณ  ๊ฑฐ์˜ ์ง€์›๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

UDP๋ฅผ ํ†ตํ•œ HTTP - QUIC ํ”„๋กœํ† ์ฝœ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉ

๊ทธ๋Ÿฌ๋‚˜ QUIC๋Š” Uber์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์„œ๋ฒ„ ๊ฐ„์˜ ์ „์†ก์œผ๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

QUIC ๋„์ž…์— ๋Œ€ํ•œ Uber์˜ ์˜๊ฒฌ

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 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์—์„œ ๊ฐ€์ ธ์˜จ ์ด ๋ฒˆ์—ญ Uber ๊ธฐ์‚ฌ

๋ฐฑ์—”๋“œ์—์„œ๋Š” Google Cloud lb๋ฅผ ํ†ตํ•ด QUIC ์—ฐ๊ฒฐ์„ ํฌ์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค 2018๋…„ ์ค‘๋ฐ˜๋ถ€ํ„ฐ.

Google Cloud๊ฐ€ Google์—์„œ ๊ฐœ๋ฐœํ•œ ํ”„๋กœํ† ์ฝœ๊ณผ ์ž˜ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋†€๋ผ์šด ์ผ์ด ์•„๋‹ˆ์ง€๋งŒ ๋Œ€์•ˆ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Nginx์—

์–ผ๋งˆ ์ „ CloudFlare ๊ฑด๋„ˆ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ Quiche ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” nginx(๊ธฐ๋ณธ์ ์œผ๋กœ HTTP/3์„ ์ง€์›ํ•˜์ง€ ์•Š์Œ) ๊ตฌํ˜„์€ ์„ค์น˜ ํŠœํ† ๋ฆฌ์–ผ๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋‹จ์ผ .patch ํŒŒ์ผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

curl -O https://nginx.org/download/nginx-1.16.1.tar.gz
tar xvzf nginx-1.16.1.tar.gz
git clone --recursive https://github.com/cloudflare/quiche
cd nginx-1.16.1
patch -p01 < ../quiche/extras/nginx/nginx-1.16.patch

ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์—ฌ๊ธฐ์—์„œ ๋ชจ๋“ˆ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

./configure                          	
   	--prefix=$PWD                       	
   	--with-http_ssl_module              	
   	--with-http_v2_module               	
   	--with-http_v3_module               	
   	--with-openssl=../quiche/deps/boringssl 
   	--with-quiche=../quiche
 make

์ด์ œ ๋‚จ์€ ๊ฒƒ์€ HTTP/3 ์ง€์›์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

events {
    worker_connections  1024;
}

http {
    server {
        # Enable QUIC and HTTP/3.
        listen 443 quic reuseport;

        # Enable HTTP/2 (optional).
        listen 443 ssl http2;

        ssl_certificate      cert.crt;
        ssl_certificate_key  cert.key;

        # Enable all TLS versions (TLSv1.3 is required for QUIC).
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

        # Request buffering in not currently supported for HTTP/3.
        proxy_request_buffering off;

        # Add Alt-Svc header to negotiate HTTP/3.
        add_header alt-svc 'h3-27=":443"; ma=86400';
    }
}

์ผ๋ฐ˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์•„์ง HTTP/3์„ ํ†ตํ•ด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์ง€๋งŒ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ๋กฌ ์นด๋‚˜๋ฆฌ์•„ ๊ทธ๋ฆฌ๊ณ  ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ ์‹คํ–‰ --enable-quic, ์„œ๋ฒ„๋‚˜ quic.rocks ์‚ฌ์ดํŠธ ๋“ฑ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ ์—ฐ๊ฒฐ ์œ ํ˜•์„ ํ™•์ธํ•˜์„ธ์š”.
UDP๋ฅผ ํ†ตํ•œ HTTP - QUIC ํ”„๋กœํ† ์ฝœ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉ
HTTP/3 ๋Œ€์‹ ์— ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. http2+quic/99, ํ•˜์ง€๋งŒ ๋ณธ์งˆ์ ์œผ๋กœ ๊ฐ™์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ธฐํƒ€ ๊ธฐ์ˆ 

  • QUIC๋„ ์ง€์› LiteSpeed (ํ›Œ๋ฅญํ•œ ํŒกํŒŒ๋ฅด์™€ ํ•จ๊ป˜ HTTP/3์„ ํ†ตํ•ด Facebook์— ์—ฐ๊ฒฐ๋จ) ๋ฐ ํ”„๋กœ๊ทธ๋ ˆ์‹œ๋ธŒ ์บ๋””. Apache๋Š” ์•„์ง ํ•  ์ˆ˜ ์—†์ง€๋งŒ ์ž‘์—…์ด ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๋ณธ๊ฒฉ์ ์œผ๋กœ.
  • 21์›” XNUMX์ผ ์—…๋ฐ์ดํŠธ๋จ WebRTC ํ‘œ์ค€ ์ดˆ์•ˆ
  • ๋ฐ”๋กœ ์–ผ๋งˆ ์ „ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๊ฐ€ ๋ฌธ์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. msquic ๊ตฌํ˜„ ์ฝ”๋“œ, ์•„์ง IETF ํ‘œ์ค€์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ์ด๋Š” ์ด๋ฏธ ํฐ ํ˜์‹ ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

UDP๋ฅผ ํ†ตํ•œ HTTP - QUIC ํ”„๋กœํ† ์ฝœ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉ

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

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

UDP๋ฅผ ํ†ตํ•œ HTTP - QUIC ํ”„๋กœํ† ์ฝœ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉ

์ถœ์ฒ˜ : habr.com

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