Cloudflare ํ์ฌ NGINX์์ HTTP/3 ํ๋กํ ์ฝ์ ๋ํ ์ง์์ ์ ๊ณตํฉ๋๋ค. ์ด ๋ชจ๋์ Cloudflare์์ ๊ฐ๋ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ถ๊ฐ ๊ธฐ๋ฅ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. QUIC ๋ฐ HTTP/3 ์ ์ก ํ๋กํ ์ฝ์ ๊ตฌํํฉ๋๋ค. quiche ์ฝ๋๋ Rust๋ก ์์ฑ๋์์ง๋ง NGINX ๋ชจ๋ ์์ฒด๋ C๋ก ์์ฑ๋์์ผ๋ฉฐ ๋์ ์ฐ๊ฒฐ์ ์ฌ์ฉํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ก์ธ์คํฉ๋๋ค. ๊ฐ๋ฐ BSD ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ.
์กฐ๋ฆฝํ๋ ค๋ฉด ๋ค์ด๋ก๋ํ์ธ์. nginx 1.16 ๋ฐ quiche ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ ๋ค์ "โwith-http_v3_module โwith-quiche=../quiche" ์ต์ ์ ์ฌ์ฉํ์ฌ nginx๋ฅผ ๋ค์ ๋น๋ํ์ธ์. ๋น๋ ์ TLS ์ง์์ BoringSSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ("--with-openssl=../quiche/deps/boringssl")๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด์ผ ํ์ง๋ง OpenSSL ์ฌ์ฉ์ ์์ง ์ง์๋์ง ์์ต๋๋ค. ์ฐ๊ฒฐ์ ์๋ฝํ๋ ค๋ฉด "quic" ํ๋๊ทธ๊ฐ ํฌํจ๋ Listen ์ง์๋ฌธ์ ์ค์ ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค(์: "listen 443 quic restartport").
ํด๋ผ์ด์ธํธ ์ํํธ์จ์ด์์๋ Chrome Canary ๋ฐ ์ปฌ ์ ํธ๋ฆฌํฐ์ ์คํ์ ๋น๋์ HTTP/3 ์ง์์ด ์ด๋ฏธ ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฒ์ธก์์๋ ์ง๊ธ๊น์ง ๋ณ๋์ ์ ํ์ ์ธ ์ฌ์ฉ์ด ํ์ํ์ต๋๋ค. . nginx์์ HTTP/3์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ HTTP/3 ์ง์์ด ํฌํจ๋ ์๋ฒ ๋ฐฐํฌ๋ฅผ ํฌ๊ฒ ๋จ์ํํ๊ณ ์ ํ๋กํ ์ฝ์ ํ ์คํธ ๊ตฌํ์ ๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๊ฒ ํด์ค๋๋ค. nginx์์ HTTP/3์ ๋ํ ํ์ค ์ง์ ๋ฑ์ฅ 1.17~6๊ฐ์ ๋์ 12.x ๋ถ๊ธฐ์์.
HTTP/3์ HTTP/2์ ๋ํ ์ ์ก์ผ๋ก QUIC ํ๋กํ ์ฝ ์ฌ์ฉ์ ํ์คํํ๋ค๋ ์ ์ ๊ธฐ์ตํ์ธ์. ๊ท์ฝ (๋น ๋ฅธ UDP ์ธํฐ๋ท ์ฐ๊ฒฐ)์ ์น์ฉ TCP+TLS ์กฐํฉ์ ๋์์ผ๋ก 2013๋ ๋ถํฐ Google์์ ๊ฐ๋ฐํ์ฌ TCP ์ฐ๊ฒฐ์ ๊ธด ์ค์ ๋ฐ ํ์ ์๊ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๋ฐ์ดํฐ ์ ์ก ์ค ํจํท ์์ค ์ ์ง์ฐ์ ์ ๊ฑฐํฉ๋๋ค. QUIC๋ ๋ค์ค ์ฐ๊ฒฐ์ ๋ค์คํ๋ฅผ ์ง์ํ๊ณ TLS/SSL๊ณผ ๋๋ฑํ ์ํธํ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ UDP ํ๋กํ ์ฝ์ ํ์ฅ์ ๋๋ค.
์ฃผ์ ๋น ๋ฅธ:
- TLS์ ์ ์ฌํ ๋์ ๋ณด์(๊ธฐ๋ณธ์ ์ผ๋ก QUIC๋ UDP๋ฅผ ํตํด TLS๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค)
- ํ๋ฆ ๋ฌด๊ฒฐ์ฑ ์ ์ด, ํจํท ์์ค ๋ฐฉ์ง
- ์ฆ์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ (0-RTT, ์ฝ 75%์ ๊ฒฝ์ฐ ์ฐ๊ฒฐ ์ค์ ํจํท์ ๋ณด๋ธ ํ ์ฆ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์์) ์์ฒญ ์ ์ก๊ณผ ์๋ต ์์ ์ฌ์ด์ ์ง์ฐ์ ์ต์ํํ๋ ๊ธฐ๋ฅ(RTT, ์๋ณต ์๊ฐ)
- ํจํท์ ์ฌ์ ์กํ ๋ ๋์ผํ ์ํ์ค ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ง ์์์ผ๋ก์จ ์์ ๋ ํจํท ์๋ณ์ ๋ชจํธ์ฑ์ ๋ฐฉ์งํ๊ณ ์๊ฐ ์ด๊ณผ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
- ํจํท ์์ค์ ํด๋น ํจํท๊ณผ ๊ด๋ จ๋ ์คํธ๋ฆผ์ ์ ๋ฌ์๋ง ์ํฅ์ ๋ฏธ์น๋ฉฐ ํ์ฌ ์ฐ๊ฒฐ์ ํตํด ์ ์ก๋๋ ๋ณ๋ ฌ ์คํธ๋ฆผ์ ๋ฐ์ดํฐ ์ ๋ฌ์ ์ค๋จํ์ง ์์ต๋๋ค.
- ์์ค๋ ํจํท์ ์ฌ์ ์ก์ผ๋ก ์ธํ ์ง์ฐ์ ์ต์ํํ๋ ์ค๋ฅ ์์ ๊ธฐ๋ฅ์ ๋๋ค. ์์ค๋ ํจํท ๋ฐ์ดํฐ์ ์ฌ์ ์ก์ด ํ์ํ ์ํฉ์ ์ค์ด๊ธฐ ์ํด ํจํท ์์ค์์ ํน์ ์ค๋ฅ ์์ ์ฝ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ํธํ ๋ธ๋ก ๊ฒฝ๊ณ๋ QUIC ํจํท ๊ฒฝ๊ณ์ ์ ๋ ฌ๋์ด ํ์ ํจํท์ ๋ด์ฉ์ ๋์ฝ๋ฉํ ๋ ํจํท ์์ค์ด ๋ฏธ์น๋ ์ํฅ์ ์ค์ ๋๋ค.
- TCP ๋๊ธฐ์ด ์ฐจ๋จ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
- ๋ชจ๋ฐ์ผ ํด๋ผ์ด์ธํธ์ ๋ํ ์ฌ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ค์ด๋ ์ฐ๊ฒฐ ์๋ณ์ ์ง์
- ๊ณ ๊ธ ์ฐ๊ฒฐ ์ ์ฒด ์ ์ด ๋ฉ์ปค๋์ฆ ์ฐ๊ฒฐ ๊ฐ๋ฅ์ฑ
- ๋ฐฉํฅ๋ณ ์ฒ๋ฆฌ๋ ์์ธก ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ํจํท์ด ์ต์ ์ ์๋๋ก ์ ์ก๋๋๋ก ๋ณด์ฅํ์ฌ ํจํท์ด ์ ์ฒด๋๊ฑฐ๋ ํจํท ์์ค์ด ๋ฐ์ํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
- ์ธ์ง ๊ฐ๋ฅ TCP์ ๋น๊ตํ ์ฑ๋ฅ ๋ฐ ์ฒ๋ฆฌ๋. YouTube์ ๊ฐ์ ๋์์ ์๋น์ค์ ๊ฒฝ์ฐ QUIC์ ๋์์ ์์ฒญ ์ ๋ฆฌ๋ฒํผ๋ง ์์ ์ 30%๊น์ง ์ค์ด๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
์ถ์ฒ : opennet.ru
