HTTP/3.0
๐ŸŒ

HTTP/3.0

Description
Published
2024-01-05
Tags

HTTP/3.0์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ

HTTP/2.0์€ TCP ์ž์ฒด์˜ HOLB ๋ฌธ์ œ์™€ ์ดˆ๊ธฐ ์—ฐ๊ฒฐ ์„ค์ •์œผ๋กœ ์ธํ•œ ์‹œ๊ฐ„ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•œ๋‹ค.
ย 
๐Ÿ’ก
TCP์˜ HOLB ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์›์ธ
TCP์˜ ์—ฐ์†์„ฑ๊ณผ ์ˆœ์„œ ๋ณด์žฅ ๊ธฐ๋Šฅ ๋•Œ๋ฌธ์— ์†ก์‹ ์ธก์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ „์†กํ•˜๊ณ  ์ˆ˜์‹ ์ธก์€ ํŒจํ‚ท์˜ ์ˆœ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์กฐ๋ฆฝํ•ด์•ผ ํ•œ๋‹ค.
ย 
์ˆœ์„œ ๋ณด์žฅ ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด ํŒจํ‚ท ์ง€์—ฐ๊ณผ ์†์‹ค์ด ๋ฐœ์ƒํ•œ๋‹ค.
  • ํŒจํ‚ท ์ง€์—ฐ: ํ•œ ํŒจํ‚ท์—์„œ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ ์ดํ›„์˜ ๋ชจ๋“  ํŒจํ‚ท๋„ ์ง€์—ฐ๋œ๋‹ค.
  • ํŒจํ‚ท ์†์‹ค: ์ค‘๊ฐ„์— ํŒจํ‚ท์ด ์†์‹ค๋˜๋ฉด ์ดํ›„์˜ ํŒจํ‚ท์€ ์žฌ์ „์†ก์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค.
ย 
ํŒจํ‚ท ์ง€์—ฐ๊ณผ ์†์‹ค์ด ๋ฐœ์ƒ์œผ๋กœ ์ธํ•ด TCP์˜ HOLB ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.
ย 
๐Ÿ’ก
TCP ์—ฐ๊ฒฐ๊ณผ TLS handshake
TCP๋กœ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  3-way handshake ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค.
3-way handshake๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์œผ๋กœ 1-RTT๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
ย 
์ดํ›„ ๋ณด์•ˆ ์—ฐ๊ฒฐ์„ ์œ„ํ•ด TLS handshake ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. (TLS 1.2)
TLS handshake ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์„ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค.
  1. ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌ ๋ฐ›์€ ์„œ๋ฒ„๋Š” ์ธ์ฆ์„œ, ๊ณต๊ฐœ ํ‚ค ๋“ฑ์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ธ๋‹ค. (1-RTT)
  1. ํด๋ผ์ด์–ธํŠธ๋Š” ๊ณต๊ฐœ ํ‚ค๋ฅผ ๊ฐœ์ธ ํ‚ค๋กœ ๋ณตํ˜ธํ™”ํ•œ ํ›„ ๊ทธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ์•”ํ˜ธํ™”๋œ ํ•ธ๋“œ์‰์ดํฌ ์™„๋ฃŒ ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์„œ ์„œ๋ฒ„์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.
  1. ์™„๋ฃŒ ๊ฐ’์„ ์ „๋‹ฌ ๋ฐ›์€ ์„œ๋ฒ„๋Š” ๊ฐ’์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ๊ฒ€์ฆํ•˜๊ณ  ํ™•์ธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค. (2-RTT)
ย 
์œ„์™€ ๊ฐ™์ด 2๋ฒˆ์˜ handshake ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•˜๋ฉด 3-RTT๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
ย 
๊ฒฐ๊ตญ TCP๋กœ ํ†ต์‹ ํ•˜๋Š” ํ–‰์œ„ ์ž์ฒด๊ฐ€ ๋ฌธ์ œ์˜€๋˜ ๊ฒƒ!
ย 

HTTP/3.0์ด๋ž€?

HTTP/2.0์˜ ์žฅ์ ์„ ๊ฐ€์ ธ๊ฐ€๋ฉฐ TCP์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.
ย 
notion image
ย 

QUIC

HTTP/3.0์€ UDP ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ์ธ QUIC์„ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ํ•œ๋‹ค.
QUIC์€ TCP์™€ TLS์˜ ๊ธฐ๋Šฅ์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜์˜ ํ”„๋กœํ† ์ฝœ๋กœ ์ œ๊ณตํ•œ๋‹ค.
QUIC handshake ๊ณผ์ •์€ ๊ธฐ์กด์˜ TCP 3-way handshake์™€ TLS handshake๋ฅผ ํ•ฉ์นœ ๊ฒƒ๊ณผ ์œ ์‚ฌํ•˜๋ฉฐ 1-RTT๋งŒ์— ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
ย 

๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ

HTTP/3.0์˜ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ์€ QUIC์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ ๋…๋ฆฝ ์ŠคํŠธ๋ฆผ ๋ฐฉ์‹์œผ๋กœ HTTP/2.0์˜ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ์„ ๊ฐœ์„ ํ–ˆ๋‹ค.
notion image
ย 

0-RTT

ํ•œ ๋ฒˆ HTTP ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง„ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๋Š” ์ด์ „ ์„ค์ •๊ฐ’์„ ๊ฐ€์ ธ์™€์„œ handshake ๊ณผ์ •์„ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๋‹ค.
ย 

์•”ํ˜ธํ™”

QUIC์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ „์†ก ๊ณ„์ธต์—์„œ ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ญ์ƒ ์•”ํ˜ธํ™”๋œ๋‹ค.
ย 

์—ฐ๊ฒฐ ์œ ์ง€

์Šค๋งˆํŠธ ํฐ์ด WiFi์—์„œ ์…€๋ฃฐ๋Ÿฌ ๋ฐ์ดํ„ฐ๋กœ ์ „ํ™˜๋  ๋•Œ HTTP/2.0์—์„œ๋Š” handshake ๊ณผ์ •์„ ๋‹ค์‹œ ๊ฑฐ์ณ์„œ ์—ฐ๊ฒฐํ•ด์•ผํ•˜์ง€๋งŒ HTTP/3.0์—์„œ๋Š” Connection ID๋ฅผ ํ†ตํ•ด handshake ๊ณผ์ •์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.
ย