์ต์ ๋ฐ์ดํฐ ์ผํฐ์๋ ๋ค์ํ ์ ํ์ ๋ชจ๋ํฐ๋ง์ด ์ ์ฉ๋๋ ์๋ฐฑ ๊ฐ์ ํ์ฑ ์ฅ์น๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋ฒฝํ ๋ชจ๋ํฐ๋ง์ ๊ฐ์ถ ์๋ฒฝํ ์์ง๋์ด๋ผ๋ ๋ช ๋ถ ์์ ๋คํธ์ํฌ ์ฅ์ ์ ์ ์ ํ๊ฒ ๋์ํ ์ ์์ต๋๋ค. Next Hop 2020 ์ปจํผ๋ฐ์ค ๋ณด๊ณ ์์์ ์ ๋ ๋ฐ์ดํฐ ์ผํฐ๊ฐ ๋ฐ๋ฆฌ์ด ์์ ์์ฒด์ ์ผ๋ก ์น์ ๋๋ค๋ ๊ณ ์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ง ๋ฐ์ดํฐ ์ผํฐ ๋คํธ์ํฌ ์ค๊ณ ๋ฐฉ๋ฒ๋ก ์ ์ ์ํ์ต๋๋ค. ๋ณด๋ค ์ ํํ๊ฒ๋ ์์ง๋์ด๊ฐ ๋ฌธ์ ๋ฅผ ์นจ์ฐฉํ๊ฒ ํด๊ฒฐํ๋ ๋ฐ๋ฉด ์๋น์ค๋ ๋จ์ํ ๋ฌธ์ ๋ฅผ ์ธ์ํ์ง ๋ชปํฉ๋๋ค.
๋ง์ ๋คํธ์ํฌ ์์ง๋์ด์๊ฒ ๋ฐ์ดํฐ ์ผํฐ ๋คํธ์ํฌ๋ ๋ฌผ๋ก ๋์ ์ค์์น๊ฐ ์๋ ToR๋ก ์์๋ฉ๋๋ค. ToR์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ ๊ฐ์ง ์ ํ์ ๋งํฌ๊ฐ ์์ต๋๋ค. ์์ ๊ฒ๋ค์ ์๋ฒ๋ก ์ด๋ํ๊ณ ๋ค๋ฅธ ๊ฒ๋ค์ N ๋ฐฐ ๋ ๋ง์ต๋๋ค-์ฒซ ๋ฒ์งธ ์์ค ์คํ์ธ, ์ฆ ์ ๋งํฌ๋ก ์ด๋ํฉ๋๋ค. ์ ๋งํฌ๋ ์ผ๋ฐ์ ์ผ๋ก ๋์ผํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ฉฐ ์ ๋งํฌ ๊ฐ์ ํธ๋ํฝ์ proto, src_ip, dst_ip, src_port, dst_port๋ฅผ ํฌํจํ๋ 5ํํ ํด์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ท ํ์ ์ด๋ฃน๋๋ค. ์ฌ๊ธฐ์๋ ๋๋ผ์์ด ์์ต๋๋ค.
๋ค์์ผ๋ก ๋นํ๊ธฐ์ ๊ตฌ์กฐ๋ ์ด๋ป๊ฒ ์๊ฒผ์ต๋๊น? ์ฒซ ๋ฒ์งธ ์์ค์ ์ฒ์ถ๋ ์๋ก ์ฐ๊ฒฐ๋์ด ์์ง ์์ง๋ง ์ํผ ์คํ์ ํตํด ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋ฌธ์ X๋ ์ํผ์คํ์ ๋ด๋นํ๋ฉฐ ๊ฑฐ์ ๊ต์ฐจ ์ฐ๊ฒฐ๊ณผ ๊ฐ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ๋ฉด์ ํ ๋ฆฌ๋๋ ์ฒซ ๋ฒ์งธ ์์ค์ ๋ชจ๋ ์ฒ์ถ์ ์ฐ๊ฒฐ๋์ด ์์์ด ๋ถ๋ช ํฉ๋๋ค. ์ด ๊ทธ๋ฆผ์์ ์ค์ํ ๊ฒ์ ๋ฌด์์ ๋๊น? ๋ ๋ด๋ถ์ ์ํธ ์์ฉ์ด ์๋ ๊ฒฝ์ฐ ์ํธ ์์ฉ์ ๋ฌผ๋ก ToR์ ๊ฑฐ์นฉ๋๋ค. ์ธํฐ๋์ ์ด ๋ชจ๋ ๋ด๋ถ๋ก ์ด๋ํ๋ฉด ์ธํฐ๋์ ์ ์ฒซ ๋ฒ์งธ ์์ค์ ์คํ์ธ์ ํต๊ณผํฉ๋๋ค. ์ํธ์์ฉ์ด ์ํธ ๋ชจ๋์์ธ ๊ฒฝ์ฐ(์ฌ๊ธฐ์ ToR 1 ๋ฐ ToR 2) ์ํธ์์ฉ์ ์ฒซ ๋ฒ์งธ ๋ฐ ๋ ๋ฒ์งธ ์์ค์ ์คํ์ธ์ ํต๊ณผํฉ๋๋ค.
์ด๋ก ์ ์ผ๋ก ์ด๋ฌํ ์ํคํ ์ฒ๋ ์ฝ๊ฒ ํ์ฅํ ์ ์์ต๋๋ค. ํฌํธ ์ฉ๋, ๋ฐ์ดํฐ ์ผํฐ์ ์๋น ๊ณต๊ฐ ๋ฐ ์ฌ์ ๋ฐฐ์น๋ ๊ด์ฌ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ํ๋ ์ธ ์๋ฅผ ํญ์ ๋๋ฆด ์ ์์ผ๋ฏ๋ก ์์คํ ์ ์ ์ฒด ์ฉ๋์ด ์ฆ๊ฐํฉ๋๋ค. ์ข ์ด์ ์ด๊ฒ์ ๋งค์ฐ ์ฝ์ต๋๋ค. ์ค์ํ์์๋ ๊ทธ๋ ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ค๋์ ์ด์ผ๊ธฐ๋ ๊ทธ๊ฒ์ ๊ดํ ๊ฒ์ด ์๋๋๋ค.
๋๋ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๋ก ์ด ๋์ถ๋๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๋ฐ์ดํฐ ์ผํฐ ๋ด๋ถ์๋ ๋ง์ ๊ฒฝ๋ก๊ฐ ์์ต๋๋ค. ์กฐ๊ฑด๋ถ ๋ ๋ฆฝ์ ๋๋ค. ๋ฐ์ดํฐ ์ผํฐ ๋ด๋ถ์ ํธ๋๋ ToR ๋ด๋ถ์์๋ง ๊ฐ๋ฅํฉ๋๋ค. ๋ชจ๋ ๋ด๋ถ์๋ ํ๋ฉด ์์ ๋์ผํ ์์ ๊ฒฝ๋ก๊ฐ ์์ต๋๋ค. ๋ชจ๋ ์ฌ์ด์ ๊ฒฝ๋ก ์๋ ํ๋ฉด ์์ ๊ฐ ํ๋ฉด์ ์ํผ์คํ ์๋ฅผ ๊ณฑํ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๋ ๋ช ํํ๊ฒํ๊ธฐ ์ํด ๊ท๋ชจ๋ฅผ ๋๋ผ๊ธฐ ์ํด Yandex ๋ฐ์ดํฐ ์ผํฐ ์ค ํ๋์ ์ ํจํ ์ซ์๋ฅผ ์ ๊ณตํ๊ฒ ์ต๋๋ค.
32๊ฐ์ ํ๋ฉด์ด ์์ผ๋ฉฐ ๊ฐ ํ๋ฉด์๋ 256๊ฐ์ ์ํผ์คํ์ด ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ชจ๋ ๋ด๋ถ์ XNUMX๊ฐ์ ๊ฒฝ๋ก๊ฐ ์๊ณ ๋ชจ๋ ๊ฐ ์ํธ ์์ฉ์ ํตํด ์ด๋ฏธ XNUMX๊ฐ์ ๊ฒฝ๋ก๊ฐ ์์์ด ๋ฐํ์ก์ต๋๋ค.
์ฆ, ์ฐ๋ฆฌ๊ฐ ์๋ฆฌ์ฑ
์ ๊ฐ๋ฐํ๊ณ ์๊ฐ ์น๋ฃํ๋ ๋ด๊ฒฐํจ์ฑ ๋ฐ์ดํฐ ์ผํฐ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ค๋ ๊ฒฝ์ฐ ํ๋ฉด ์ํคํ
์ฒ๊ฐ ์ฌ๋ฐ๋ฅธ ์ ํ์
๋๋ค. ์ค์ผ์ผ๋ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ผ๋ฉฐ ์ด๋ก ์ ์ผ๋ก๋ ์ฝ์ต๋๋ค. ๋
๋ฆฝ์ ์ธ ๊ฒฝ๋ก๊ฐ ๋ง์ด ์์ต๋๋ค. ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌํ ์ํคํ
์ฒ๊ฐ ์ฅ์ ๋ฅผ ๊ฒฌ๋๋ด๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น? ๋ค์ํ ์ถฉ๋์ด ์์ต๋๋ค. ์ด์ ์ด์ ๋ํด ๋
ผ์ํ๊ฒ ์ต๋๋ค.
์ํผ ์คํ ์ค ํ๋๊ฐ ์ํ๊ฒํ์ญ์์ค. ์ฌ๊ธฐ์ ๋๋ ๋ ํ๋ฉด์ ๊ตฌ์กฐ๋ก ๋์๊ฐ๋ค. ๋ ์ ์ ์์ง์ด๋ ๋ถ๋ถ์ผ๋ก ์ฌ๊ธฐ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋ ์ฝ๊ฒ ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ๋ค์ ์๋ก ๋ค๊ฒ ์ต๋๋ค. X11์ด ์ํ๊ฒ ๋๋์ธ์. ์ด๊ฒ์ด ๋ฐ์ดํฐ ์ผํฐ ๋ด๋ถ์ ์๋ ์๋น์ค์ ์ด๋ค ์ํฅ์ ๋ฏธ์นฉ๋๊น? ์คํจ๊ฐ ์ค์ ๋ก ์ด๋ป๊ฒ ๋ณด์ด๋์ง์ ๋ฐ๋ผ ๋ง์ ๊ฒ์ด ๋ฌ๋ผ์ง๋๋ค.
์คํจ๊ฐ ์ํธํ๋ฉด ๋์ผํ BFD์ ์๋ํ ์์ค์์ ํฌ์ฐฉ๋๊ณ ์๋ํ๊ฐ ๊ธฐ๊บผ์ด ๋ฌธ์ ๊ด์ ์ ๋๊ณ ๋ฌธ์ ๋ฅผ ๊ฒฉ๋ฆฌํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์์
๋๋ค. ์ฐ๋ฆฌ์๊ฒ๋ ๋ง์ ๊ฒฝ๋ก๊ฐ ์๊ณ ํธ๋ํฝ์ ์ฆ์ ๋์ฒด ๊ฒฝ๋ก๋ก ๋ค์ ๋ผ์ฐํ
๋๋ฉฐ ์๋น์ค๋ ์๋ฌด ๊ฒ๋ ์์์ฐจ๋ฆฌ์ง ๋ชปํ ๊ฒ์
๋๋ค. ์ด๊ฒ์ ์ข์ ์๋๋ฆฌ์ค์
๋๋ค.
๋์ ์๋๋ฆฌ์ค๋ ์ง์์ ์ธ ์์ค์ด ๋ฐ์ํ๊ณ ์๋ํ๊ฐ ๋ฌธ์ ๋ฅผ ์ธ์ํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ์
๋๋ค. ์ด๊ฒ์ด ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฏธ์น๋ ์ํฅ์ ์ดํดํ๋ ค๋ฉด TCP ํ๋กํ ์ฝ์ด ์๋ํ๋ ๋ฐฉ์์ ๋ํด ์ ์ ๋
ผ์ํด์ผ ํฉ๋๋ค.
์ด ์ ๋ณด๋ก ๋๊ตฌ์๊ฒ๋ ์ถฉ๊ฒฉ์ ์ฃผ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. TCP๋ ํธ๋์
ฐ์ดํฌ ํ๋กํ ์ฝ์
๋๋ค. ์ฆ, ๊ฐ์ฅ ๊ฐ๋จํ ๊ฒฝ์ฐ ๋ฐ์ ์๋ ๋ ๊ฐ์ ํจํท์ ๋ณด๋ด๊ณ "๋ ๊ฐ์ ํจํท์ ๋ฐ์์ต๋๋ค."๋ผ๋ ๋์ ack๋ฅผ ์์ ํฉ๋๋ค.
๊ทธ ํ ๊ทธ๋ ๋ ๊ฐ์ ํจํท์ ๋ ๋ณด๋ด๋ฉฐ ์ํฉ์ ๋ฐ๋ณต๋ฉ๋๋ค. ์ฝ๊ฐ์ ๋จ์ํ์ ๋ํด ๋ฏธ๋ฆฌ ์ฌ๊ณผ๋๋ฆฝ๋๋ค. ์ด ์๋๋ฆฌ์ค๋ ์๋์ฐ(์ ์ก ์ค์ธ ํจํท ์)๊ฐ XNUMX์ธ ๊ฒฝ์ฐ์ ๋ง์ต๋๋ค. ๋ฌผ๋ก ์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ๋์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค. ๊ทธ๋ฌ๋ ํจํท ์ ๋ฌ ์ปจํ
์คํธ๋ ์ฐฝ ํฌ๊ธฐ์ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค.
ํจํค์ง 3์ ๋ถ์คํ๋ฉด ์ด๋ป๊ฒ ๋๋์? ์ด ๊ฒฝ์ฐ ์์ ์๋ ํจํท 1, 2, 4๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ SACK ์ต์
์ ์ฌ์ฉํ์ฌ ๋ฐ์ ์์๊ฒ ๋ช
์์ ์ผ๋ก ์๋ฆด ๊ฒ์
๋๋ค. ๊ทธ๋ "Ack 2, SACK 4"๋ผ๊ณ ๋งํฉ๋๋ค.
์ด๋ ๋ณด๋ธ ์ฌ๋์ ์์ค๋ ํจํท์ ์๋ฌด ๋ฌธ์ ์์ด ์ ํํ๊ฒ ๋ฐ๋ณตํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฐฝ์ ๋ง์ง๋ง ํจํท์ด ์์ค๋๋ฉด ์ํฉ์ด ๋งค์ฐ ๋ฌ๋ผ์ง๋๋ค.
์์ ์๋ ์ฒ์ XNUMX๊ฐ์ ํจํท์ ์์ ํ๊ณ ์ฐ์ ๊ธฐ๋ค๋ฆฌ๊ธฐ ์์ํฉ๋๋ค. Linux ์ปค๋ TCP ์คํ์ ์ผ๋ถ ์ต์ ํ ๋๋ถ์ ์ด๊ฒ์ด ๋ง์ง๋ง ํจํท์ด๋ผ๋ ํ๋๊ทธ์ ๋ช
์์ ์ธ ํ์๊ฐ ์๋ ํ ์์ ์ด๋ฃฌ ํจํท์ ๊ธฐ๋ค๋ฆฝ๋๋ค. ์ง์ฐ๋ ACK ์๊ฐ ์ ํ์ด ๋ง๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ ๋ค์ ์ฒ์ ์ธ ํจํท์ ๋ํ ์น์ธ์ ๋ณด๋
๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ๋ณด๋ธ ์ฌ๋์ด ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ๊ทธ๋ ๋ค ๋ฒ์งธ ํจํค์ง๊ฐ ๋ถ์ค๋์๋์ง ๋๋ ๊ณง ๋์ฐฉํ ์ง ์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋คํธ์ํฌ์ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฌ์ง ์๋๋ก ํ๊ธฐ ์ํด ํจํท์ด ์์ค๋์๋ค๋ ๋ช
์์ ํ์ ๋๋ RTO ์๊ฐ ์ด๊ณผ ๋ง๋ฃ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ค๊ณ ํฉ๋๋ค.
RTO ์๊ฐ ์ ํ์ด๋ ๋ฌด์์
๋๊น? ์ด๊ฒ์ TCP ์คํ๊ณผ ์ผ๋ถ ์์์ ์ํด ๊ณ์ฐ๋ RTT์ ์ต๋๊ฐ์
๋๋ค. ์ด ์์๋ ๋ฌด์์
๋๊น? ์ด์ ๋
ผ์ํ๊ฒ ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๊ฐ ๋ค์ ์ด์ด ์ข์ง ์๊ณ ๋ค ๋ฒ์งธ ํจํท์ด ๋ค์ ์์ค๋๋ฉด RTO๊ฐ ๋ ๋ฐฐ๊ฐ ๋๋ค๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฆ, ์๋๊ฐ ์คํจํ ๋๋ง๋ค ์๊ฐ ์ ํ์ด ๋ ๋ฐฐ๊ฐ ๋ฉ๋๋ค.
์ด์ ์ด ๋ฐ์ด ๋ฌด์์ธ์ง ๋ด
์๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ RTO๋ 200ms์
๋๋ค. ์ด๊ฒ์ ๋ฐ์ดํฐ ํจํท์ ์ต์ RTO์
๋๋ค. SYN ํจํท์ ๊ฒฝ์ฐ 1์ด๋ก ๋ค๋ฆ
๋๋ค. ๋ณด์๋ค์ํผ ํจํท ์ฌ์ ์ก์ ์ฒ์ ์๋ํ๋๋ผ๋ ๋ฐ์ดํฐ ์ผํฐ ๋ด๋ถ์์ RTT๋ณด๋ค 100๋ฐฐ ๋ ์ค๋ ๊ฑธ๋ฆฝ๋๋ค.
์ด์ ์๋๋ฆฌ์ค๋ก ๋์๊ฐ๋๋ค. ์๋น์ค๋ ์ด๋ป๊ฒ ๋๋์? ์๋น์ค๊ฐ ํจํท ์์ค์ ์์ํฉ๋๋ค. ์๋น์ค๊ฐ ์ฒ์์๋ ์ด์ด ์ข์๊ณ ์ฐฝ ์ค๊ฐ์์ ๋ฌด์ธ๊ฐ๋ฅผ ์์ด๋ฒ๋ฆฌ๋ฉด SACK์ ๋ฐ๊ณ ์์ค๋ ํจํท์ ๋ค์ ๋ณด๋
๋๋ค.
๊ทธ๋ฌ๋ ๋ถ์ด์ด ๋ฐ๋ณต๋๋ฉด RTO๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์ ๋ฌด์์
๋๊น? ์, ๋คํธ์ํฌ์๋ ๋ง์ ๊ฒฝ๋ก๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ๋์ ํน์ TCP ์ฐ๊ฒฐ์ TCP ํธ๋ํฝ์ ๊ณ์ํด์ ๋์ผํ ๋์ด์ง ์คํ์ ํต๊ณผํฉ๋๋ค. Magic X11์ด ์์ฒด์ ์ผ๋ก ๋๊ฐ์ง ์๋ ํ ํจํท ์์ค์ ๋ฌธ์ ๊ฐ ์๋ ์์ญ์ผ๋ก ํธ๋ํฝ์ด ํ๋ฅด์ง ์๋๋ก ํฉ๋๋ค. ๋์ผํ ๋์ด์ง ์คํ์ ํตํด ํจํท์ ์ ๋ฌํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋ก ์ธํด ๊ณ๋จ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฐ์ดํฐ ์ผํฐ๋ ์ํธ ์์ฉํ๋ ์์ฉ ํ๋ก๊ทธ๋จ ์งํฉ์ด๋ฉฐ ์ด๋ฌํ ๋ชจ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ผ๋ถ TCP ์ฐ๊ฒฐ์ด ์ ํ๋๊ธฐ ์์ํฉ๋๋ค. ์ํผ ์คํ์ด DC ๋ด๋ถ์ ์๋ ๋ชจ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์
๋๋ค. ์๋ด์์์ ๊ฐ์ด ๋ง์ ์ ๋ฐ์ ์ ์ง ์์ผ๋ฉด ๋ง์ด ์ ๋ ๊ฑฐ๋ฆฝ๋๋ค. ๋ง ์ ๋ ๊ฑฐ๋ฆผ-๋ณด๊ณ ์๊ฐ ์ ๋ฌ๋์ง ์์์ต๋๋ค. ๋ฉ์์ง๊ฐ ์ ๋ฌ๋์ง ์์์ต๋๋ค. ๊ทธ๋ค์ ์ ์์์์ก์ต๋๋ค. ์ฌ๊ธฐ์๋ง ์นด์ดํธ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์๊ฐ๋ถํฐ ์๋น์ค๊ฐ ๋๋ผ๊ธฐ ์์ํ๋ ์ ํ ๋จ๊ณ๊น์ง ๋ช ์ด ๋์ ๊ฐ๋๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ์ด๋๊ฐ์์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฐ์ง ๋ชปํ ์๋ ์์์ ์๋ฏธํฉ๋๋ค.
์๋ก๋ฅผ ๋ณด์ํ๋ ๋ ๊ฐ์ง ๊ณ ์ ์ ์ธ ์๋ฃจ์
์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ ๋นจ๋๋ฅผ ๊น๊ณ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ ์๋น์ค์
๋๋ค. โTCP ์คํ์์ ๋ฌด์ธ๊ฐ๋ฅผ ์กฐ์ ํฉ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด๋ถ ์ํ ํ์ธ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์
์์ค ์๊ฐ ์ด๊ณผ ๋๋ ์๋ช
์ด ๊ธด TCP ์ธ์
์ ๋ง๋ค์ด ๋ด
์๋ค. ๋ฌธ์ ๋ ๊ทธ๋ฌํ ์๋ฃจ์
์ด ๋ค์๊ณผ ๊ฐ๋ค๋ ๊ฒ์
๋๋ค. a) ์ ํ ํ์ฅ๋์ง ์์ต๋๋ค. b) ๋งค์ฐ ์ด์
ํ ํ
์คํธ. ์ฆ, ์๋น์ค๊ฐ ์ค์๋ก TCP ์คํ์ ๊ตฌ์ฑํ์ฌ ๋ ์ข์์ง๋๋ผ๋ ์ฒซ์งธ๋ก ์ด๊ฒ์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๋ชจ๋ ๋ฐ์ดํฐ ์ผํฐ์ ์ ์ฉํ ๊ฐ๋ฅ์ฑ์ด ๋ฎ๊ณ ๋์งธ๋ก ๋ฌด์์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ํ๋์๊ณ ๋ฌด์์ ์ํํ๋์ง ์ดํดํ์ง ๋ชปํ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค. ์๋๋ค. ์ฆ, ์๋ํ์ง๋ง ์ ๋๋ก ์๋ํ์ง ์์ผ๋ฉฐ ํ์ฅ๋์ง ์์ต๋๋ค. ๋คํธ์ํฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋๊ตฌ์ ์ฑ
์์
๋๊น? ๋ฌผ๋ก NOC. NOC๋ ๋ฌด์์ ํ๋์?
๋ง์ ์๋น์ค๋ NOC์์ ์์
์ด ์ด์ ๊ฐ์ด ์งํ๋๋ค๊ณ ๋ฏฟ์ต๋๋ค. ํ์ง๋ง ์์งํ ๋งํด์ ๊ทธ ๋ฟ๋ง์ด ์๋๋๋ค.
๊ณ ์ ์ ์ธ ๊ณํ์ NOC๋ ๋ง์ ๋ชจ๋ํฐ๋ง ๊ฐ๋ฐ์ ์ฐธ์ฌํ๊ณ ์์ต๋๋ค. ๋ธ๋๋ฐ์ค ๋ชจ๋ํฐ๋ง๊ณผ ํ์ดํธ๋ฐ์ค ๋ชจ๋ํฐ๋ง์ด ๊ทธ๊ฒ์ด๋ค. ์ฒ์ถ์ ๋ธ๋๋ฐ์ค ๋ชจ๋ํฐ๋ง ์์์ ๋ํด
๋ฌด์์ ๋ฐ๊ณ ์ถ์ต๋๊น? ์ฐ๋ฆฌ์๊ฒ๋ ๊ธธ์ด ๋๋ฌด ๋ง์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ด ์ข์ง ์์ TCP ํ๋ฆ์ด ๊ณ์ํด์ ๋์ผํ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋จ์ผ TCP ์ฐ๊ฒฐ ๋ด์์ ์ฌ๋ฌ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ฌด์ธ๊ฐ๊ฐ ํ์ํฉ๋๋ค. ํด๊ฒฐ์ฑ
์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์์ ๋ค์ค ๊ฒฝ๋ก TCP, ์ฆ ๋ง์ ๊ฒฝ๋ก์ ๋ํ TCP๋ผ๊ณ ํ๋ TCP๊ฐ ์์ต๋๋ค. ์ฌ์ค, ์ฌ๋ฌ ๋คํธ์ํฌ ์ฅ์น๊ฐ ์๋ ์ค๋งํธํฐ์ ์ํด ์์ ํ ๋ค๋ฅธ ์์
์ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค. ์ ์ก์ ์ต๋ํํ๊ฑฐ๋ ๊ธฐ๋ณธ/๋ฐฑ์
๋ชจ๋๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํ ์ฌ๋ฌ ์ค๋ ๋(์ธ์
)๋ฅผ ํฌ๋ช
ํ๊ฒ ์์ฑํ๊ณ ์ค๋ฅ ๋ฐ์ ์ ์ ํํ ์ ์๋ ๋ฉ์ปค๋์ฆ์ด ๊ฐ๋ฐ๋์์ต๋๋ค. ๋๋ ๋ด๊ฐ ๋งํ๋ฏ์ด ๋์ญํญ์ ์ต๋ํํ์ญ์์ค.
๊ทธ๋ฌ๋ ์ฌ๊ธฐ์๋ ๋์์ค๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ฌด์์ธ์ง ์ดํดํ๋ ค๋ฉด ์คํธ๋ฆผ์ด ์ด๋ป๊ฒ ์ค์ ๋๋์ง ์ดํด๋ด์ผ ํฉ๋๋ค.
์ค๋ ๋๋ ์์ฐจ์ ์ผ๋ก ์ค์ ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์คํธ๋ฆผ์ด ๋จผ์ ์ค์น๋ฉ๋๋ค. ํ์ ํ๋ฆ์ ํด๋น ์ค๋ ๋ ๋ด์์ ์ด๋ฏธ ํฉ์๋ ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ฌธ์ ๋ ์ฒซ ๋ฒ์งธ ์ค๋ ๋๊ฐ ์ค์น๋์ง ์์ผ๋ฉด ๋ ๋ฒ์งธ ๋ฐ ์ธ ๋ฒ์งธ ์ค๋ ๋๊ฐ ๋ํ๋์ง ์๋๋ค๋ ๊ฒ์
๋๋ค. ์ฆ, ๋ค์ค ๊ฒฝ๋ก TCP๋ ์ฒซ ๋ฒ์งธ ์คํธ๋ฆผ์์ SYN ํจํท์ ์์ค์ ํด๊ฒฐํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ SYN์ด ์์ค๋๋ฉด ๋ค์ค ๊ฒฝ๋ก TCP๊ฐ ์ผ๋ฐ TCP๊ฐ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ ์ผํฐ ํ๊ฒฝ์์๋ ๊ณต์ฅ์์์ ์์ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ฅ์ ๋ฐ์ ์ ์ฌ๋ฌ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๋ฐ ๋์์ด ๋์ง ์์ต๋๋ค.
๋ฌด์์ด ์ฐ๋ฆฌ๋ฅผ ๋์ธ ์ ์์ต๋๊น? ์ฌ๋ฌ๋ถ ์ค ์ผ๋ถ๋ ์ด๋ฆ์์ ์ด๋ฏธ ์ฐ๋ฆฌ์ ์ถ๊ฐ ์ด์ผ๊ธฐ์์ ์ค์ํ ํ๋๊ฐ IPv6 ํ๋ฆ ๋ ์ด๋ธ ํค๋ ํ๋๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ์ถ์ธกํ์ต๋๋ค. ์ค์ ๋ก ์ด๊ฒ์ v6์ ๋ฑ์ฅํ๋ ํ๋์ด๊ณ , v4์๋ ์๋ ํ๋์ด๊ณ , 20๋นํธ๋ฅผ ์ฐจ์งํ๋ฉฐ, ๊ทธ ์ฌ์ฉ์ ๋ํด ์ค๋ซ๋์ ๋
ผ๋์ด ์์์ต๋๋ค. ์ด๊ฒ์ ๋งค์ฐ ํฅ๋ฏธ ๋กญ์ต๋๋ค. ๋ถ์์ด ์์๊ณ RFC ํ๋ ์ ์ํฌ ๋ด์์ ๋ฌด์ธ๊ฐ๊ฐ ์์ ๋์์ผ๋ฉฐ ๋์์ ์ด๋์๋ ๋ฌธ์ํ๋์ง ์์ ๊ตฌํ์ด Linux ์ปค๋์ ๋ํ๋ฌ์ต๋๋ค.
์ ์ ํจ๊ป ์ฝ๊ฐ์ ์กฐ์ฌ๋ฅผ ํด๋ณด๋ผ๊ณ ์ ์ํฉ๋๋ค. ์ง๋ ๋ช ๋
๋์ Linux ์ปค๋์์ ๋ฌด์จ ์ผ์ด ์์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
2014๋
. ํฌ๊ณ ํํ์ด ์ข์ ํ์ฌ์ ์์ง๋์ด๊ฐ ์์ผ ํด์์ ๋ํ ํ๋ฆ ๋ ์ด๋ธ ๊ฐ์ ์ข
์์ฑ์ Linux ์ปค๋์ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ค์ ์ฌ๊ธฐ์ ๋ฌด์์ ๊ณ ์น๋ ค๊ณ ํฉ๋๊น? ์ด๊ฒ์ ๋ค์ ๋ฌธ์ ๋ฅผ ๋
ผ์ํ RFC 6438๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ๋ฐ์ดํฐ ์ผํฐ ๋ด๋ถ์์ IPv4๋ IPv6 ํจํท์ผ๋ก ์บก์ํ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ณต์ฅ ์์ฒด๊ฐ IPv6์ด์ง๋ง IPv4๋ ์ด๋ป๊ฒ๋ ์ ๊ณต๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ค๋ซ๋์ TCP ๋๋ UDP์ ๋๋ฌํ์ฌ ๊ฑฐ๊ธฐ์์ src_ports, dst_ports๋ฅผ ์ฐพ๊ธฐ ์ํด ๋ ๊ฐ์ IP ํค๋ ์๋๋ฅผ ๋ณผ ์ ์๋ ์ค์์น์ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ฒ์ ๋ ๊ฐ์ IP ํค๋๋ฅผ ๋ณด๋ฉด ํด์๊ฐ ๊ฑฐ์ ๊ณ ์ ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ด ์บก์ํ๋ ํธ๋ํฝ์ ๊ท ํ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋๋ก 5ํํ ์บก์ํ๋ ํจํท์ ํด์๋ฅผ ํ๋ฆ ๋ ์ด๋ธ ํ๋์ ๊ฐ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ ์๋์์ต๋๋ค. ๋ค๋ฅธ ์บก์ํ ์ฒด๊ณ, UDP, GRE์ ๋ํด์๋ ๊ฑฐ์ ๋์ผํ๊ฒ ์ํ๋์์ผ๋ฉฐ ํ์์์๋ GRE ํค ํ๋๊ฐ ์ฌ์ฉ๋์์ต๋๋ค. ์ด๋ค ์์ผ๋ก๋ ์ฌ๊ธฐ์์ ๋ชฉํ๋ ๋ถ๋ช
ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ด๋ ๊ทธ ์์ ์์ ๊ทธ๋ค์ ์ ์ฉํ์ต๋๋ค.
2015๋
์๋ ๋์ผํ ์กด๊ฒฝ๋ฐ๋ ์์ง๋์ด๊ฐ ์ ํจ์น๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ ๋งค์ฐ ํฅ๋ฏธ ๋กญ์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ถ์ ์ ์ธ ๋ผ์ฐํ
์ด๋ฒคํธ์ ๊ฒฝ์ฐ ํด์๋ฅผ ๋ฌด์์๋ก ์ง์ ํฉ๋๋ค. ๋ถ์ ์ ์ธ ๋ผ์ฐํ
์ด๋ฒคํธ๋ ๋ฌด์์
๋๊น? ์ด๊ฒ์ ์์์ ๋
ผ์ํ RTO์
๋๋ค. ์ฆ, ์๋์ฐ ํ
์ผ์ ์์ค์ ์ ๋ง ๋ถ์ ์ ์ธ ์ด๋ฒคํธ์
๋๋ค. ์ฌ์ค, ๊ทธ๊ฒ์ด ๋ฌด์์ธ์ง ์ถ์ธกํ๋ ๊ฒ์ ์๋์ ์ผ๋ก ์ด๋ ต์ต๋๋ค.
2016๋
, ๋ ๋ค๋ฅธ ์กด๊ฒฝ๋ฐ๋ ํ์ฌ๋ ํฐ ํ์ฌ์
๋๋ค. ๊ทธ๊ฒ์ ๋ง์ง๋ง ๋ชฉ๋ฐ์ ํ์ฑํ๊ณ ์ฐ๋ฆฌ๊ฐ ์ด์ ์ ๋ฌด์์๋ก ๋ง๋ ํด์๊ฐ ์ด์ ๋ชจ๋ SYN ์ฌ์ ์ก๊ณผ ๋ชจ๋ RTO ์๊ฐ ์ด๊ณผ ํ์ ๋ณ๊ฒฝ๋๋๋ก ๋ง๋ญ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ํธ์ง์์ ์ฒ์์ด์ ๋ง์ง๋ง์ผ๋ก ์ฑ๋์ ์์ค ๋๋ ๊ณผ๋ถํ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํธ๋ํฝ์ด ์ฌ๋ฌ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ฌ ์ํํธ ๊ฒฝ๋ก ์ฌ์ง์ ๊ฐ๋ฅ์ฑ์ ๊ฐ๋๋ก ํ๋ ๊ถ๊ทน์ ์ธ ๋ชฉํ๊ฐ ๋ค๋ฆฝ๋๋ค. ๋ฌผ๋ก ๊ทธ ์ดํ์ ๋ง์ ์ถํ๋ฌผ์ด ์์๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ์ฐพ์ ์ ์์ต๋๋ค.
์๋์, ํ ์ ์์ต๋๋ค. ์ด ์ฃผ์ ์ ๋ํ ๋จ์ผ ์ถํ๋ฌผ์ด ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์๊ณ ์์ต๋๋ค!
๋ฌด์จ ์ผ์ด ์์๋์ง ์์ ํ ์ดํดํ์ง ๋ชปํ๋ฉด ์ง๊ธ ๋ง์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ฌด์์ด ์๋ฃ๋์์ผ๋ฉฐ Linux ์ปค๋์ ์ด๋ค ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๊น? txhash๋ ๊ฐ RTO ์ด๋ฒคํธ ํ ์์์ ๊ฐ์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด๊ฒ์ ๋์ผํ ๋ถ์ ์ ์ธ ๋ผ์ฐํ
๊ฒฐ๊ณผ์
๋๋ค. ํด์๋ ์ด txhash์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ณ ํ๋ฆ ๋ ์ด๋ธ์ skb ํด์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ฌ๊ธฐ์๋ ํจ์์ ๋ํ ๋ช ๊ฐ์ง ๊ณ์ฐ์ด ์์ผ๋ฉฐ ๋ชจ๋ ์ธ๋ถ ์ ๋ณด๋ฅผ ํ๋์ ์ฌ๋ผ์ด๋์ ๋ฐฐ์นํ ์ ์์ต๋๋ค. ๊ถ๊ธํ ์ฌ๋์ ์ปค๋ ์ฝ๋๋ฅผ ํตํด ํ์ธํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์ ๋ฌด์์
๋๊น? ํ๋ฆ ๋ ์ด๋ธ ํ๋์ ๊ฐ์ ๊ฐ RTO ํ์ ์์์ ์ซ์๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด๊ฒ์ด ๋ถํํ TCP ์คํธ๋ฆผ์ ์ด๋ค ์ํฅ์ ๋ฏธ์นฉ๋ ๊น?
SACK์ ๊ฒฝ์ฐ ์๋ ค์ง ์์ค ํจํท์ ๋ค์ ๋ณด๋ด๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. ์ฌํ๊น์ง๋ ๊ทธ๋ฐ๋๋ก ์๋๋ค.
๊ทธ๋ฌ๋ RTO์ ๊ฒฝ์ฐ ToR์ ํด์ ํจ์์ ํ๋ฆ ๋ ์ด๋ธ์ ์ถ๊ฐํ๋ค๋ฉด ํธ๋ํฝ์ด ๋ค๋ฅธ ๊ฒฝ๋ก๋ฅผ ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋นํ๊ธฐ๊ฐ ๋ง์์๋ก ํน์ ์ฅ์น์ ์ถฉ๋์ ์ํด ์ํฅ์ ๋ฐ์ง ์๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋๋ค.
ํ ๊ฐ์ง ๋ฌธ์ ๊ฐ ๋จ์ ์์ต๋๋ค - RTO. ๋ฌผ๋ก ๋ค๋ฅธ ๊ฒฝ๋ก๊ฐ ์์ง๋ง ๋ง์ ์๊ฐ์ด ์์๋ฉ๋๋ค. 200ms๋ ๋ง์ต๋๋ค. ๋ ๋ฒ์งธ๋ ์ผ๋ฐ์ ์ผ๋ก ์ผ์์
๋๋ค. ์์์ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ๋ ์๊ฐ ์ ํ์ ๋ํด ์ด์ผ๊ธฐํ์ต๋๋ค. ๋ฐ๋ผ์ 1์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์์ค์์ ์๋น์ค๋ฅผ ์ค์ ํ๋ ์๊ฐ ์ ํ์ด๋ฉฐ, ์ด ๊ฒฝ์ฐ ์๋น์ค๊ฐ ์๋์ ์ผ๋ก ์ณ์ ๊ฒ์
๋๋ค. ๋ํ ํ๋ ๋ฐ์ดํฐ ์ผํฐ ๋ด๋ถ์ ์ค์ RTT๋ ์ฝ XNUMX๋ฐ๋ฆฌ์ด์
๋๋ค.
RTO ์๊ฐ ์ด๊ณผ์ ๋ํด ๋ฌด์์ ํ ์ ์์ต๋๊น? ๋ฐ์ดํฐ ํจํท์ด ์์ค๋ ๊ฒฝ์ฐ RTO๋ฅผ ๋ด๋นํ๋ ์๊ฐ ์ด๊ณผ๋ ์ฌ์ฉ์ ๊ณต๊ฐ์์ ๋น๊ต์ ์ฝ๊ฒ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. IP ์ ํธ๋ฆฌํฐ๊ฐ ์๊ณ ํด๋น ๋งค๊ฐ๋ณ์ ์ค ํ๋์ ๋์ผํ rto_min์ด ํฌํจ๋์ด ์์ต๋๋ค. ๋ฌผ๋ก RTO๋ฅผ ์ ์ญ์ ์ผ๋ก ์ ํํด์ผ ํ์ง๋ง ์ฃผ์ด์ง ์ ๋์ฌ์ ๋ํด ์ด๋ฌํ ๋ฉ์ปค๋์ฆ์ด ์๋นํ ์๋ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค.
์ฌ์ค, SYN_RTO๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒ์ด ๋ค์ ๋๋น ์ง๋๋ค. ์์ฐ์ค๋ฝ๊ฒ ์๋๋ก ๊ณ ์ ๋ฉ๋๋ค. ๊ฐ์ ์ฝ์ด์ ๊ณ ์ ๋์ด ์์ต๋๋ค(1์ด). ์ฌ์ฉ์ ๊ณต๊ฐ์์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ๋ฐฉ๋ฒ์ ํ๋๋ฟ์
๋๋ค.
eBPF๊ฐ ๊ตฌ์ถ๋ฉ๋๋ค. ๊ฐ๋จํ ๋งํด์ ์ด๋ค์ ์์ C ํ๋ก๊ทธ๋จ์ด๋ฉฐ ์ปค๋ ์คํ๊ณผ TCP ์คํ ์คํ์ ๋ค๋ฅธ ์์น์ ์๋ ํํฌ์ ์ฝ์
๋ ์ ์์ผ๋ฉฐ ์ด๋ฅผ ํตํด ๋งค์ฐ ๋ง์ ์ค์ ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก eBPF๋ ์ฅ๊ธฐ์ ์ธ ์ถ์ธ์
๋๋ค. ์์ญ ๊ฐ์ ์๋ก์ด sysctl ๋งค๊ฐ๋ณ์๋ฅผ ํ์ธํ๊ณ IP ์ ํธ๋ฆฌํฐ๋ฅผ ํ์ฅํ๋ ๋์ eBPF ๋ฐฉํฅ์ผ๋ก ์ด๋ํ๊ณ ๊ธฐ๋ฅ์ ํ์ฅํฉ๋๋ค. eBPF๋ฅผ ์ฌ์ฉํ๋ฉด ํผ์ก ์ ์ด ๋ฐ ๊ธฐํ ๋ค์ํ TCP ์ค์ ์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋์์ผ๋ก SYN_RTO์ ๊ฐ์ ๋นํ ์ ์๋ค๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ณต๊ฐ์ ์ผ๋ก ๊ฒ์๋ ์๊ฐ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด๋ฏธ ๋ฌด์์ ์๊ณ ์์ต๋๊น? ํ๋ฉด ์ํคํ
์ฒ๊ฐ ํ์ฅ์ ํ์ฉํ๋ค๋ ๊ฒ์ ToR์์ ํ๋ฆ ๋ ์ด๋ธ์ ์ผ๊ณ ๋ฌธ์ ์์ญ ์ฃผ์๋ฅผ ํ๋ฆด ๊ธฐํ๋ฅผ ์ป์ ๋ ์ฐ๋ฆฌ์๊ฒ ๋งค์ฐ ์ ์ฉํ๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. RTO ๋ฐ SYN-RTO ๊ฐ์ ๋ฎ์ถ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ eBPF ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ๋ฌธ์ ๋ ๋จ์ ์์ต๋๋ค. ๋ฐธ๋ฐ์ฑ์ ์ํด ํ๋ฆ ๋ ์ด๋ธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์์ ํ๊ฐ์? ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์๋ ๋์์ค๊ฐ ์์ต๋๋ค.
๋คํธ์ํฌ์ anycast์ ์๋ ์๋น์ค๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์์ฝ๊ฒ๋ ์ ๋์บ์คํธ์ ๋ํด ์์ธํ ์ค๋ช
ํ ์๊ฐ์ด ์์ง๋ง ๋์ผํ IP ์ฃผ์์์ ๋ค์ํ ๋ฌผ๋ฆฌ์ ์๋ฒ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ถ์ฐ ์๋น์ค์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ๊ฐ๋ฅํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. RTO ์ด๋ฒคํธ๋ ํธ๋ํฝ์ด ๊ณต์ฅ์ ํต๊ณผํ ๋๋ง ๋ฐ์ํ ์ ์๋ ๊ฒ์ด ์๋๋๋ค. ToR ๋ฒํผ ์์ค์์๋ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ธ์บ์คํธ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ํธ์คํธ๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ์ ์ถํ ๋ ํธ์คํธ์์๋ ๋ฐ์ํ ์ ์์ต๋๋ค. RTO ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ณ ํ๋ฆ ๋ ์ด๋ธ์ด ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ. ์ด ๊ฒฝ์ฐ ํธ๋ํฝ์ ๋ค๋ฅธ ์ ๋์บ์คํธ ์ธ์คํด์ค๋ก ์ด๋ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์ํ ์ ์ฅ ์ ๋์บ์คํธ์ด๊ณ ์ฐ๊ฒฐ ์ํ๋ฅผ ํฌํจํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. L3 Balancer ๋๋ ๋ค๋ฅธ ์๋น์ค์ผ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ RTO ํ์ TCP ์ฐ๊ฒฐ์ด ์ด TCP ์ฐ๊ฒฐ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๋ ์๋ฒ์ ๋์ฐฉํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋์บ์คํธ ์๋ฒ ๊ฐ์ ์ํ ๊ณต์ ๊ฐ ์์ผ๋ฉด ์ด๋ฌํ ํธ๋ํฝ์ด ์ญ์ ๋๊ณ TCP ์ฐ๊ฒฐ์ด ๋์ด์ง๋๋ค.
์ฌ๊ธฐ์ ๋ฌด์์ ํ ์ ์์ต๋๊น? ํ๋ฆ ๋ ์ด๋ธ ๋ฐธ๋ฐ์ฑ์ ํ์ฑํํ๋ ์ ์ด๋ ํ๊ฒฝ ๋ด์์ ์ ๋์บ์คํธ ์๋ฒ์ ์ก์ธ์คํ ๋ ํ๋ฆ ๋ ์ด๋ธ ๊ฐ์ ์์ ํด์ผ ํฉ๋๋ค. ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋์ผํ eBPF ํ๋ก๊ทธ๋จ์ ํตํด ์ํํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ธฐ์ ๋งค์ฐ ์ค์ํ ์ ์ด ์์ต๋๋ค. ๋ฐ์ดํฐ ์ผํฐ ๋คํธ์ํฌ๋ฅผ ์ด์ํ์ง ์๊ณ ํต์ ์ฌ์
์๋ผ๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ์ด๊ฒ์ ๊ทํ์ ๋ฌธ์ ์ด๊ธฐ๋ ํฉ๋๋ค. ํน์ ๋ฒ์ ์ Juniper ๋ฐ Arista๋ถํฐ ์์ํ์ฌ ๊ธฐ๋ณธ์ ์ผ๋ก ํด์ ํจ์์ ํ๋ฆ ๋ ์ด๋ธ์ ํฌํจํฉ๋๋ค. ์์งํ ๋งํด์ ์ดํดํ ์ ์๋ ์ด์ ๊ฐ ์์ต๋๋ค. ์ด๋ก ์ธํด ๋คํธ์ํฌ๋ฅผ ํต๊ณผํ๋ ์ฌ์ฉ์์ TCP ์ฐ๊ฒฐ์ด ๋์ด์ง ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด ์์น์์ ๋ผ์ฐํฐ ์ค์ ์ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด์จ๋ ์คํ์ผ๋ก ๋์ด๊ฐ ์ค๋น๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
ToR์์ ํ๋ฆ ๋ ์ด๋ธ์ ์ผ๊ณ ํ์ฌ ํธ์คํธ์ ์๋ ์์ด์ ํธ์ eBPF๋ฅผ ์ค๋นํ์ ๋ ์ฐ๋ฆฌ๋ ๋ค์ ํฐ ์คํจ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ํต์ ๋ ํญ๋ฐ์ ์ํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ 75๊ฐ์ ์
๋งํฌ๊ฐ ์๋ ToR์ ์ ํํ์ฌ ๊ทธ ์ค ํ๋์ ๋๋กญํ์ต๋๋ค. ๊ทธ๋ค์ ๊ท์น์ ์ธ์ ๋ค๊ณ ๊ทธ๋ค์ ๋งํ์ต๋๋ค. ์ด์ ๋น์ ์ ๋ชจ๋ ํจํท์ ์๊ณ ์์ต๋๋ค. ์ผ์ชฝ์์ ๋ณผ ์ ์๋ฏ์ด ํจํท๋น ๋ชจ๋ํฐ๋ง์ด 25%๋ก ๋จ์ด์ก์ต๋๋ค. ์ฆ, ํจํท์ 25%๊ฐ ์์ค๋์์ต๋๋ค. ์ค๋ฅธ์ชฝ์๋ ์ด ToR ๋ค์ ์๋ ์๋น์ค ๊ทธ๋ํ๊ฐ ์์ต๋๋ค. ์ฌ์ค ์ด๊ฒ์ ๋ ๋ด๋ถ์ ์๋ฒ์ ์กฐ์ธํธ์ ํธ๋ํฝ ๊ทธ๋ํ์
๋๋ค. ๋ณด์๋ค์ํผ ๊ทธ๋ค์ ๋ ๋ฎ์์ก์ต๋๋ค. 3%๊ฐ ์๋๋ผ ์ด๋ค ๊ฒฝ์ฐ์๋ 4-XNUMX๋ฐฐ ๋ ๋ฎ์์ง ์ด์ ๋ ๋ฌด์์
๋๊น? TCP ์ฐ๊ฒฐ์ด ์ด์ด ์ข์ง ์์ผ๋ฉด ๋์ด์ง ์ธํฐํ์ด์ค๋ฅผ ํตํด ๊ณ์ ์ฐ๊ฒฐ์ ์๋ํฉ๋๋ค. ์ด๋ DC ๋ด๋ถ ์๋น์ค์ ์ผ๋ฐ์ ์ธ ๋์์ผ๋ก ์ธํด ์
ํ๋ฉ๋๋ค. ํ๋์ ์ฌ์ฉ์ ์์ฒญ์ ๋ํด ๋ด๋ถ ์๋น์ค์ ๋ํ N๊ฐ์ ์์ฒญ์ด ์์ฑ๋๊ณ ๋ชจ๋ ๋ฐ์ดํฐ ์์ค๊ฐ ์๋ตํ๊ฑฐ๋ ์๊ฐ ์ด๊ณผ๊ฐ ํธ๋ฆฌ๊ฑฐ๋ ๋ ์๋ต์ด ์ฌ์ฉ์์๊ฒ ์ ๋ฌ๋ฉ๋๋ค. ์ฌ์ ํ ๊ตฌ์ฑํด์ผ ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์์ค. ์ฆ, ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ๋์๋ค.
์ด์ ๋์ผํ ์คํ์ด์ง๋ง ํ๋ฆ ๋ ์ด๋ธ์ด ํ์ฑํ๋์์ต๋๋ค. ์ผ์ชฝ์์ ๋ณผ ์ ์๋ฏ์ด ์ผ๊ด ๋ชจ๋ํฐ๋ง์ด 25% ๊ฐ์ํ์ต๋๋ค. ์ด๊ฒ์ ์ฌ์ ์ก์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ์ ๋์ ์ผ๋ก ์ ํํฉ๋๋ค. ํจํท์ ๋ณด๋ด๊ณ ๋จ์ํ ์ ๋ฌ๋ ํจํท๊ณผ ์์ค๋ ํจํท ์์ ๋น์จ์ ๊ณ์ฐํฉ๋๋ค.
์ค๋ฅธ์ชฝ์๋ ์๋น์ค ์ผ์ ์ด ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ๊ด์ ์ ํจ๊ณผ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋์ผํ ๋ฐ๋ฆฌ์ด์ ํธ๋ํฝ์ด ๋ฌธ์ ์์ญ์์ ๋ฌธ์ ์ ์ํฅ์ ๋ฐ์ง ์์ ๋๋จธ์ง XNUMX๊ฐ์ ์ ๋งํฌ๋ก ์ด๋ํ์ต๋๋ค. ์ค์ค๋ก ์น์ ํ๋ ๋คํธ์ํฌ๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ด ๋ด ๋ง์ง๋ง ์ฌ๋ผ์ด๋์
๋๋ค. ๊ฒํ ํ ์๊ฐ์
๋๋ค. ์ด์ ์๊ฐ ์น์ ๋ฐ์ดํฐ ์ผํฐ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ์์
จ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. Linux ์ปค๋ ์์นด์ด๋ธ๋ฅผ ์ดํด๋ณด๊ณ ๊ฑฐ๊ธฐ์์ ํน๋ณํ ํจ์น๋ฅผ ์ฐพ์ ํ์๊ฐ ์์ต๋๋ค. Flow ๋ ์ด๋ธ์ด ์ด ๊ฒฝ์ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ด ๋ฉ์ปค๋์ฆ์ ์ ์คํ๊ฒ ์ ๊ทผํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํต์ ์ฌ๋ผ๋ฉด ํ๋ก์ฐ ๋ ์ด๋ธ์ ํด์ ํจ์๋ก ์ฌ์ฉํด์๋ ์ ๋๋ค๋ ์ ์ ๋ค์ ํ ๋ฒ ๊ฐ์กฐํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ์ฉ์ ์ธ์
์ด ์ค๋จ๋ฉ๋๋ค.
๋คํธ์ํฌ ์์ง๋์ด์ ๊ฒฝ์ฐ ๊ฐ๋ ์ ์ ํ์ด ํ์ํฉ๋๋ค. ๋คํธ์ํฌ๋ ๋คํธ์ํฌ ์ฅ์น๊ฐ ์๋๋ผ ํธ์คํธ์์ ToR๋ก ์์ํ์ง ์์ต๋๋ค. ๊ฝค ๋๋ผ์ด ์๋ eBPF๋ฅผ ์ฌ์ฉํ์ฌ RTO๋ฅผ ๋ณ๊ฒฝํ๊ณ ํ๋ฆ ๋ ์ด๋ธ์ ์ ๋์บ์คํธ ์๋น์ค๋ก ์์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
ํ๋ฆ ๋ ์ด๋ธ ๋ฉ์ปค๋์ฆ์ ์ ์ด๋ ๊ด๋ฆฌ ์ธ๊ทธ๋จผํธ ๋ด์ ๋ค๋ฅธ ์ฉ๋์ ํ์คํ ์ ํฉํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ์ผํฐ ๊ฐ์ ํธ๋ํฝ์ผ ์๋ ์๊ณ ๋๊ฐ๋ ํธ๋ํฝ์ ์ ์ดํ๊ธฐ ์ํด ์ด๋ฌํ ๋ฉ์ปค๋์ฆ์ ํน๋ณํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ด๊ฒ์ ๋ํด ๋ค์์ ์ด์ผ๊ธฐ ํ ๊ฒ์
๋๋ค. ๋ง์ ๊ด์ฌ ๋ถํ๋๋ฆฝ๋๋ค.
์ถ์ฒ : habr.com