
์ฌ์ด ์ข๊ฒ ๋คํธ์ํฌ๋ฅผ ๋๋ ์ฐ๋ ๋ฐฉ๋ฒ, TCP์ ํผ์ก ์ ์ด
ํผ์ก ์ ์ด๋, ๋ง ๊ทธ๋๋ก ๋คํธ์ํฌ์ ํผ์ก ์ํ๋ฅผ ํ์ ํ๊ณ ๊ทธ ์ํ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฐ์ดํฐ ์ ์ก์ ์ ์ดํ๋ ๊ฒ์ ์ด์ผ๊ธฐํ๋ค.
๋คํธ์ํฌ๋ ์๋ ๊ด๋ํ ๋ธ๋๋ฐ์ค์ด๊ธฐ ๋๋ฌธ์ ์ ํํ ์ด๋์ ์ด๋ค ์ด์ ๋ก ์ ์ก์ด ๋๋ ค์ง๋์ง๋ ํ์
ํ๊ธฐ ํ๋ค์ง๋ง, ๋จ์ํ ๋๋ ค์ง๊ณ ์๋ค
์ ๋๋ ๊ฐ ์ข
๋จ์์๋ ์ถฉ๋ถํ ํ์
ํ ์ ์๋ค. ๊ทธ๋ฅ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋๋๋ฐ ์๋๋ฐฉ์ผ๋ก๋ถํฐ ์๋ต์ด ๋ฆ๊ฒ ์ค๊ฑฐ๋ ์์ค๋ฉด ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ด๋ ๋ง์ด๋ค.
์ด๋ ์์์ ์ด์ผ๊ธฐํ ํ๋ฆ ์ ์ด๋ ์ค๋ฅ ์ ์ด ๊ธฐ๋ฒ๋ค๋ง์ ์ฌ์ฉํ๋ค๋ณด๋ฉด ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ ์ก
์ด๋ผ๋ ์์
์ด ๊ณ์ ๋ฐ๋ณต๋ ์ ๋ฐ์ ์๋ค.
์ด๊ฒ ํ ๋ ๋
์์ด ๊ทธ๋ฌ๋ฉด ๋ณ ๋ฌธ์ ๊ฐ ์๋ ์ง๋ ๋ชจ๋ฅด์ง๋ง, ๋คํธ์ํฌ๋ ์๋ ๋ค์ํ ์น๊ตฌ๋ค์ด ํจ๊ป ์ด์ฉํ๋ ๊ณต๊ฐ์ด๋ค๋ณด๋๊น ํ๋ฒ ๋คํธ์ํฌ๊ฐ ๋ป๋๊ธฐ ์์ํ๋ฉด ์ฌ๊ธฐ์ ๊ธฐ์ ๋๋ ์ฌ์ ์กํ ๊บผ์ผ!
๊ฐ ๋ฐ๋ณต๋๋ฉด์ ๋ฌธ์ ๊ฐ ์ ์ ์
ํ๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ๋คํธ์ํฌ์ ํผ์ก ๋ถ๊ดด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๊ทธ๋์ ์ด๋ฐ ์์ผ๋ก ๋คํธ์ํฌ์ ํผ์ก ์ํ๊ฐ ๊ฐ์ง๋๋ฉด, ์ด๋ฐ ์ต์
์ ์ํฉ์ ์ต๋ํ ํํผํ๊ธฐ ์ํด ์ก์ ์ธก์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ์ฌ ๋ฐ์ดํฐ์ ์ ์ก๋์ ๊ฐ์ ์ ์ผ๋ก ์ค์ด๊ฒ ๋๋๋ฐ, ์ด๊ฒ์ด ๋ฐ๋ก ํผ์ก ์ ์ด
์ธ ๊ฒ์ด๋ค.
ํผ์ก ์๋์ฐ(Congestion Window, CWND)
ํ์๋ ํจํท์ ํ๋ฆ๊ณผ ์ค๋ฅ๋ฅผ ์ ์ดํ๋ TCP ํฌ์คํ ์์ TCP์ ํ๋ฆ ์ ์ด๋ฅผ ์ค๋ช ํ ๋ ์ก์ ์ธก์ ์๋์ฐ ํฌ๊ธฐ๋ ์์ ์ธก์ด ๋ณด๋ด์ค ์๋์ฐ ํฌ๊ธฐ์ ๋คํธ์ํฌ ์ํฉ์ ํจ๊ป ๊ณ ๋ คํด์ ์ ํด์ง๋ค๋ ์ด์ผ๊ธฐ๋ฅผ ํ์๋ค.
์ก์ ์ธก์ ์์ ์ ์ต์ข
์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ ํ ๋ ์์ ์ธก์ด ๋ณด๋ด์ค ์๋์ฐ ํฌ๊ธฐ์ธ ์์ ์ ์๋์ฐ(RWND)
, ๊ทธ๋ฆฌ๊ณ ์์ ์ด ๋คํธ์ํฌ์ ์ํฉ์ ๊ณ ๋ คํด์ ์ ํ ์๋์ฐ ํฌ๊ธฐ์ธ ํผ์ก ์๋์ฐ(CWND)
์ค์์ ๋ ์์ ๊ฐ์ ์ฌ์ฉํ๋ค.
์ฆ, ์๋ ํ์ ํ ํผ์ก ์ ์ด ๊ธฐ๋ฒ๋ค์ด ๋์๋ค ์ค์๋ค ํ๋ ์๋์ฐ ํฌ๊ธฐ๋ ์ก์ ์๋์ฐ๊ฐ ์๋๋ผ ์ก์ ์ธก์ด ๊ฐ์ง๊ณ ์๋ ํผ์ก ์๋์ฐ ํฌ๊ธฐ
์ธ ๊ฒ์ด๋ค.
์ฐธ๊ณ ๋ก RWND๋ CWND๊ฐ ๊ทธ๋ฅ ์๋์ฐ๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์, ์ฌ๋ผ์ด๋ฉ ์๋์ฐ์์ ์ฌ์ฉํ๋ ์๋์ฐ์ ๊ฐ์ ๊ฐ๋ ์ด๋ผ๊ณ ์๊ฐํ ์ ์๋๋ฐ, ์๋ค๋ ๊ฐ๊ฐ ์์ ์ ์๋์ฐ ํฌ๊ธฐ์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์๋ฏธํ๋ ์ซ์๋ค.
๊ทธ๋ผ ํต์ ์ค์๋ ์ด๋ป๊ฒ๋ ๋คํธ์ํฌ์ ํผ์ก๋๋ฅผ ํ์ ํด์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ ์ฐํ๊ฒ ๋ณ๊ฒฝํ๋ค๊ณ ํด๋, ํต์ ์ ์์ํ๊ธฐ ์ ์๋ ์ด ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ด๋ป๊ฒ ์ด๊ธฐํํ๋ ๊ฒ์ผ๊น?
ํผ์ก ์๋์ฐ ํฌ๊ธฐ ์ด๊ธฐํํ๊ธฐ
ํต์ ์ ํ๋ ์ค๊ฐ์๋ ACK๊ฐ ์ ์ค๋๋ค๊ฑฐ๋ ํ์์์์ด ๋๋ค๊ฑฐ๋ ํ๋ ๋ฑ์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ์ ํผ์ก ์ํฉ์ ์ ์ถํ ์ ์์ง๋ง, ํต์ ์ ์์ํ๊ธฐ ์ ์๋ ๊ทธ๋ฐ ์ ๋ณด๊ฐ ํ๋๋ ์๊ธฐ ๋๋ฌธ์ ํผ์ก ์๋์ฐ์ ํฌ๊ธฐ๋ฅผ ์ ํ๊ธฐ๊ฐ ์กฐ๊ธ ์ ๋งคํ๋ค. ์ฌ๊ธฐ์ ๋ฑ์ฅํ๋ ๊ฒ์ด ๋ฐ๋ก MSS(Maximum Segement Size)
์ด๋ค.
MSS๋ ํ ์ธ๊ทธ๋จผํธ์ ์ต๋๋ก ๋ณด๋ผ ์ ์๋ ๋ฐ์ดํฐ์ ์์ ๋ํ๋ด๋ ๊ฐ์ธ๋ฐ, ๋๋ต ๋ค์๊ณผ ๊ฐ์ ๊ณ์ฐ์ ํตํด ๊ตฌํ ์ ์๋ค.
MSS = MTU - (IPํค๋๊ธธ์ด + IP์ต์ ๊ธธ์ด) - (TCPํค๋๊ธธ์ด + TCP์ต์ ๊ธธ์ด)
์ฌ๊ธฐ์ ๋ฑ์ฅํ๋ MTU(Maximum Transmission Unit)
๋ผ๋ ์น๊ตฌ๋ ํ๋ฒ ํต์ ๋ ๋ณด๋ผ ์ ์๋ ์ต๋ ๋จ์
๋ฅผ ์๋ฏธํ๋ค.
์ฆ, MSS๋ ํ๋ฒ ์ ์กํ ๋ ๋ณด๋ผ ์ ์๋ ์ต๋ ๋จ์๊ฐ ์ ํด์ ธ์๋ ์ํฉ์์ IP ํค๋, TCP ํค๋ ๋ฑ ๋ฐ์ดํฐ๊ฐ ์๋ ๋ถ๋ถ์ ์ ๋ถ ๋ฐ๋ผ๋ด๊ณ ์ง์ง ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์๋ ๊ณต๊ฐ์ด ์ผ๋ง๋ ๋จ์๋์ง๋ฅผ ๋ํ๋ด๋ ๊ฒ์ด๋ค.

OSX ๊ฐ์ ๊ฒฝ์ฐ๋ MTU ๊ธฐ๋ณธ ๊ฐ์ผ๋ก ์ด๋๋ท ํ์ค์ธ 1500 bytes
๊ฐ ์ค์ ๋์ด์๋ค. ์ด๋ TCP์ IP์ ํค๋ํฌ๊ธฐ๊ฐ ๊ฐ๊ฐ 20 bytes๋ผ๊ณ ํ๋ฉด MSS๋ 1500 - 40 = 1460 bytes
๊ฐ ๋๋ ๊ฒ์ด๋ค.
์ก์ ์ธก์ ์ฒ์ ํต์ ์ ์์ํ ๋ ์ด๋ ๊ฒ ๊ณ์ฐํ MSS๋ฅผ ์ฌ์ฉํ์ฌ ํผ์ก ์๋์ฐ์ ํฌ๊ธฐ๋ฅผ 1 MSS
๋ก ์ค์ ํ๋ค. ์ดํ ํต์ ์ ํ๋ฉด์ ๋คํธ์ํฌ์ ํผ์ก ์ํฉ์ ๊ณ ๋ คํ๋ฉฐ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ์ํค๊ฑฐ๋ ๊ฐ์์ํค๋ ๊ฒ์ด๋ค.
ํผ์ก ํํผ ๋ฐฉ๋ฒ
ํ ๋ฐฐ ํ๋กํ ์ฝ์ธ TCP๋ ์ง๋ 50๋ ๋์ ์ง์์ ์ผ๋ก ๊ฐ์ ๋ ๋ค์ํ ํผ์ก ์ ์ด ์ ์ฑ ๋ค์ ๊ฐ์ง๊ณ ์๋ค.
๊ฐ ํผ์ก ์ ์ด ์ ์ฑ
์ ์ด๋ค ์์ ์ ํผ์กํ ์ํ๋ผ๊ณ ํ์
ํ ๊ฒ์ธ์ง, ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ฑฐ๋ ํค์ฐ๋ ๋ฐฉ๋ฒ์ ๊ฐ์ ํ์ฌ ์ ์ ๋ฐ์ ํด์์ง๋ง, ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํผ์ก ์ ์ด ๋ฐฉ๋ฒ์AIMD
์ Slow Start
๋ผ๋ ํผ์ก ํํผ ๋ฐฉ๋ฒ์ ์ํฉ์ ๋ง๊ฒ ์กฐํฉํ๋ ๊ฒ์ด๋ค.
๊ทธ๋์ ์ด ํฌ์คํ
์์๋ ๊ธฐ๋ณธ์ ์ธ ํผ์ก ํํผ ๋ฐฉ๋ฒ์ธ AIMD
์ Slow Start
๋ฅผ ๋จผ์ ์ค๋ช
ํ๊ณ ๋์ ๋ํ์ ์ธ ํผ์ก ์ ์ด ์ ์ฑ
์ธ Tahoe
์ Reno
๋ฅผ ์ด์ผ๊ธฐํ ๊ฒ์ด๋ค.
AIMD
AIMD(Additive Increase / Multicative Decrease)
๋ฐฉ์์ ์ฐ๋ฆฌ ๋ง๋ก ์ง์ญํ๋ฉด ํฉ ์ฆ๊ฐ / ๊ณฑ ๊ฐ์ ๋ฐฉ์์ด๋ผ๋ ๋ป์ด๋ค. ์ฆ, ๋คํธ์ํฌ์ ์์ง ๋ณ ๋ฌธ์ ๊ฐ ์์ด์ ์ ์ก ์๋๋ฅผ ๋ ๋น ๋ฅด๊ฒ ํ๊ณ ์ถ๋ค๋ฉด ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ 1์ฉ ์ฆ๊ฐ์ํค์ง๋ง, ์ค๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์ ์ค๋๊ฑฐ๋ ์๋ต์ด ์ค์ง ์๋ ๋ฑ์ ํผ์ก ์ํ๊ฐ ๊ฐ์ง๋๋ฉด ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๋ฐ์ผ๋ก ์ค์ธ๋ค.
๋์ด๋ ๋๋ ws + 1
, ์ค์ด๋ค ๋๋ ws * 0.5
์ด๋ฏ๋ก ๋ง ๊ทธ๋๋ก ํฉ ์ฆ๊ฐ / ๊ณฑ ๊ฐ์
์ธ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ๋์ด๋ ๋๋ ์ ํ์ ์ผ๋ก ์กฐ๊ธ์ฉ ๋์ด๋๊ณ ์ค์ด๋ค ๋๋ ๋ฐ์ผ๋ก ํ ์ค์ด๋๋ AIMD ๋ฐฉ์์ ํน์ฑ ์, ์ด ๋ฐฉ์์ ์ฌ์ฉํ๋ ์ฐ๊ฒฐ์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๊ทธ๋ํ๋ก ๊ทธ๋ ค๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ํฑ๋ ๋ชจ์์ด ๋ํ๋๋ค.

์ด ๋ฐฉ์์ ๊ต์ฅํ ์ฌํํ์ง๋ง ์๊ฐ๋ณด๋ค ๊ณตํํ ๋ฐฉ์์ด๋ค. ์๋ฅผ ๋ค์ด ์ฌ๋ฌ ์น๊ตฌ๋ค์ด ์ด๋ฏธ ๋คํธ์ํฌ๋ฅผ ์ ์ ํ๊ณ ์๋ ์ํ์์ ํ ์น๊ตฌ๊ฐ ๋ค๋ฆ๊ฒ ์ด ๋คํธ์ํฌ์ ํฉ๋ฅํ๋ค๊ณ ์๊ฐํด๋ณด์.
๋น์ฐํ ๋์ค์ ์ง์ ํ ์ชฝ์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฒ์์๋ ๋ถ๋ฆฌํ๋ค. ๊ทธ๋ฌ๋ ๋คํธ์ํฌ๊ฐ ํผ์กํด์ง๋ฉด ํผ์ก ์๋์ฐ ํฌ๊ธฐ๊ฐ ์์ ๋๋ณด๋ค ํผ์ก ์๋์ฐ ํฌ๊ธฐ๊ฐ ํฐ ๋์ด ๋ฌด๋ฆฌํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์์ฐฝ ๋ณด๋ด๋ ค๋ค๊ฐ ์ ์ค๋ ํ๋ฅ ๋ ๋ ํฌ๋ค.
์ด๋ฐ ์ํฉ์ด๋ผ๋ฉด ๋คํธ์ํฌ์ ์ผ์ฐ ์ฐธ์ฌํด์ ์ด๋ฏธ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๊ฐ ํฐ ๋์ ์์ ์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ค์ฌ์ ํผ์ก ์ํฉ์ ํด๊ฒฐํ๋ ค๊ณ ํ ๊ฒ์ด๊ณ , ์ด๋ ๋จ์ ๋์ญํญ์ ํ์ฉํ์ฌ ๋์ค์ ๋ค์ด์จ ๋๋ค์ด ์์ ์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ํค์ธ ์ ์๋ ๊ฒ์ด๋ค.
๊ทธ๋ฐ ์ด์ ๋ก ์๊ฐ์ด ๊ฐ๋ฉด ๊ฐ์๋ก ๋คํธ์ํฌ์ ์ฐธ์ฌํ ์์์ ๊ด๊ณ ์์ด ๋ชจ๋ ํธ์คํธ๋ค์ ์๋์ฐ ํฌ๊ธฐ๊ฐ ํํ ์ํ๋ก ์๋ ดํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ AIMD์ ๋ฌธ์ ์ ์ ๋คํธ์ํฌ ๋์ญ์ด ํํ ๋จ์๋๋ ์ํฉ์๋ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๋๋ฌด ์กฐ๊ธ์ฉ ๋๋ฆฌ๋ฉด์ ์ ๊ทผํ๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ฐ ์ด์ ๋ก AIMD ๋ฐฉ์์ ๋คํธ์ํฌ์ ๋ชจ๋ ๋์ญ์ ํ์ฉํ์ฌ ์ ๋๋ก ๋ ์๋๋ก ํต์ ํ๊ธฐ๊น์ง ์๊ฐ์ด ์กฐ๊ธ ๊ฑธ๋ฆฐ๋ค.
์๋์ฐ ํฌ๊ธฐ๊ฐ ์๋ ดํ๋ค๊ณ ?
์ฌ์ค AIMD๋ ์๋ ๋จ์ํ ๋ฐฉ์์ด๋ค ๋ณด๋ ๊ฐ๋จํ ์์ ๋ฅผ ํตํด ๋คํธ์ํฌ์ ์ํฉ์ ์ฌํํด๋ณผ ์๋ ์๋ค. ์ด๋ ๊ฒ ์ง์ ๊ตฌํํด๋ณด๋ฉด ๋ง๋ก๋ง ๋ค์์ ๋๋ ์ ๋งคํ ํธ์คํธ๋ค์ ์๋์ฐ ํฌ๊ธฐ๊ฐ ํํ์ผ๋ก ์๋ ดํ๋ค๋ ๊ฒ
์ด ์ด๋ค ์๋ฏธ์ธ์ง ์ง์ ๋์ผ๋ก ํ์ธํด๋ณผ ์๋ ์๋ค.
์ฝ๋๋ฅผ ์ง์ ํฌ์คํ ์ ์ฒจ๋ถํ๋ ค๊ณ ํ๋๋ฐ, ์ต๋ํ ์ค์ ๋คํธ์ํฌ์ ๋น์ทํ ํ๊ฒฝ์ ์ฌํํ๋ ค๊ณ ํ๋ค๋ณด๋ ์ฝ๋๊ฐ ์๊ฐ๋ณด๋ค ๊ธธ์ด์ ธ์ ๊ฒฐ๊ณผ๋ง ์ฒจ๋ถํ๋ ค๊ณ ํ๋ค. ์ฐ์ ํ์์ ์คํ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋คํธ์ํฌ์ ํผ์ก๋ ์ต๊ณ ์น๋
50
์ด๋ฉฐ, ์ด ํผ์ก๋๋ ๋คํธ์ํฌ์ ์ฐธ์ฌํ ํธ์คํธ๋ค์ด ๊ฐ์ง ํผ์ก ์๋์ฐ ํฌ๊ธฐ์ ์ดํฉ์ผ๋ก ๊ฒฐ์ ๋๋ค.- ๋คํธ์ํฌ์ ํธ์คํธ๋ฅผ
300ms
์ ํ๋์ฉ ์์ฑํด์ ์ถ๊ฐํ๋ค.- ๊ฐ ํธ์คํธ๋
100 ~ 200ms
๋ง๋ค ๋คํธ์ํฌ์ ํ์ฌ ํผ์ก๋๋ฅผ ๊ณ์ฐํ๊ณ ์์ ์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ค.- ๊ฐ ํธ์คํธ๋ ์๋์ฐ ํฌ๊ธฐ ์กฐ์ ์ 300ํ๊น์ง ์ํํ๊ณ ๋คํธ์ํฌ๋ฅผ ๋น ์ ธ๋๊ฐ๋ค.
์ฐธ๊ณ ๋ก ์ด ํ
์คํธ์๋ ์ฝ๊ฐ์ ํ์ ์ด ์๋ค. ํ์๋ ํธ์คํธ๋ค์ ์ฐ์ฐ์ ๋์์ฑ์ ๋ถ์ฌํ๊ธฐ ์ํด setInterval
์ ์ฌ์ฉํ๋๋ฐ, setInterval
์ ์ฝ๋ฐฑ๋ ์ด๋ฒคํธ ๋ฃจํ๋ฅผ ๊ฑฐ์น ํ ๊ฒฐ๊ตญ ์ฝ ์คํ์ ์์๊ฐ๋ฉฐ ์ํ๋๊ธฐ ๋๋ฌธ์ ์ค์ ๋คํธ์ํฌ์ฒ๋ผ ํธ์คํธ๋ค์ ์ฐ์ฐ์ ์์ ํ ๋ณ๋ ฌ์ฑ์ด ๋ณด์ฅ๋์ง๋ ์๋๋ค.
๊ทธ๋์ ํ ์คํธ์ ๋ชฉ์ ์ธ ๋คํธ์ํฌ์ ๋ฆ๊ฒ ์ฐธ์ฌํ ํธ์คํธ๋ค๋ ์ถฉ๋ถํ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ์ ์๋์ง ํ์ธํ๋ ์ฉ๋๋ก๋ ๋ฑํ ๋ณ ๋ฌธ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋๋ก ์งํํ๋ค.
์ด์ ๋ํ ์์ธํ ๊ฐ๋ ์ ๋ก์ฐ ๋ ๋ฒจ๋ก ์ดํด๋ณด๋ Node.js ์ด๋ฒคํธ ๋ฃจํ์ ์์ธํ ์ค๋ช ๋์ด์์ผ๋ ํ์ธํด๋ณด๋๋ก ํ์.
์ด์จ๋ ์ด๋ ๊ฒ ํ ์คํธ๋ฅผ ํด๋ณด๊ณ ๋์จ ๋ฐ์ดํฐ๋ค์ ์๊ณ์ด ๊ทธ๋ํ๋ก ์๊ฐํํด๋ณด์๋ค. ๋จผ์ ๊ฐ ํธ์คํธ๋ค์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ ๋ณํ๋ฅผ ์ดํด๋ณด์.

๊ทธ๋ํ๋ฅผ ์ดํด๋ณด๋ ๋จผ์ ๋คํธ์ํฌ์ ๋ค์ด์์๋ ํธ์คํธ๋ค๊ณผ ๋ค๋ฆ๊ฒ ๋คํธ์ํฌ์ ํฉ๋ฅํ ํธ์คํธ๋ค์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ์ ๊ทธ๋ ๊ฒ ํฐ ์ฐจ์ด๊ฐ ์๋ ๋ชจ์ต์ ํ์ธํ ์ ์์๋ค. ๋ง์ง๋ง์ ํผ์ ์น์๊ณ ์๋ ์น๊ตฌ๋ ๋ค๋ฅธ ํธ์คํธ๋ค์ด ๋ค ๋น ์ ธ๋๊ฐ ํ์ ๋คํธ์ํฌ๊ฐ ํ ํ ๋น์ด์ ๊ทธ๋ฐ ๊ฒ์ด๋ค.
์ด๋ฐ ์์ผ๋ก ์๊ฐํ๋ฅผ ํด๋ณด๋ ๊ฐ ํธ์คํธ๋ค์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๊ฐ ํฐ ์ฐจ์ด ์์ด ์ด๋ ๋ถ๋ถ์ ์๋ ดํ๊ณ ์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค. ๊ทธ๋ ๋ค๋ฉด ๋คํธ์ํฌ์ ๋ค์ด์์๋ ํธ์คํธ๋ค์ ์ ์ฒด ์๋์ฐ ํฌ๊ธฐ๋ ์๊ณ์ด ๊ทธ๋ํ๋ก ์๊ฐํํด๋ณด๋ฉด ์ด๋จ๊น?

ํ์คํ ๋คํธ์ํฌ ๋ด ์ ์ฒด ํธ์คํธ์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๋ณด๋ ํ์๊ฐ ์ค์ ํด๋์ ๋คํธ์ํฌ ํผ์ก๋์ธ 50
์ ๋์ด๊ฐ์ง ์๋ ์ ์์ ์๊ธฐ๋ค๋ผ๋ฆฌ ์์น๋ฝ๋ค์น๋ฝ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๊ณ ์๋ ๋ชจ์ต์ ํ์ธํ ์ ์์๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ์ด ๊ทธ๋ํ๋ฅผ ํ์ธํด๋ณด์๋ ํธ์คํธ๋ค์ด ๋คํธ์ํฌ์ ์ ํด์ฅํ๋ ์ด๋ฐ๋ถ์ ํ๋ฐ๋ถ๋ฅผ ์ ์ธํ๋ฉด ์ค๊ฐ ์ฆ์์์๋ ๊ฐ ํธ์คํธ๋ค์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๊ฐ ํฌ๊ฒ ์ฐจ์ด๋์ง ์๋๋ค.
์ด๋ ๊ฒ ์ง์ ์ํฉ์ ์๋ฎฌ๋ ์ด์
ํด๋ณด๊ณ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๋ ๋ง๋ก๋ง ๋ค์์ ๋๋ ์ ์๋ฟ์ง ์์๋ ์๋์ฐ ํฌ๊ธฐ๊ฐ ํํ ์ํ๋ก ์๋ ดํ๋ค
๋ ์ด์ผ๊ธฐ๋ฅผ ์กฐ๊ธ ๋ ์ ์ดํดํ ์ ์์๋ค.
๋ง์ฝ ์ด ์ฝ๋๋ฅผ ์ง์ ์คํ์์ผ์ ๋ชจ๋ ๊ณผ์ ์ ํ์ธํ๊ณ ์ถ์ ๋ถ๋ค์ ํ์๊ฐ ์ฌ๋ ค๋์ ๊นํ๋ธ ๋ ํ์งํ ๋ฆฌ์์ ํด๋ก ๋ฐ์์ ์คํ์์ผ๋ณด๋ฉด ๋๋ค.
Slow Start
์์์ ์ด์ผ๊ธฐํ๋ฏ์ด AIMD ๋ฐฉ์์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ ํ์ ์ผ๋ก ์ฆ๊ฐ์ํค๊ธฐ ๋๋ฌธ์, ์ ๋๋ก ๋ ์๋๊ฐ ๋์ค๊ธฐ๊น์ง ์๊ฐ์ด ์กฐ๊ธ ๊ฑธ๋ฆฌ๋ ๋จ์ ์ด ์๋ค.
์ฌ์ค ์์ฆ์๋ ๋คํธ์ํฌ์ ๋์ญํญ์ด ์๋ ๋๊ณ ํต์ ์ธํ๋ผ๋ ์ข๋ค๋ณด๋ ์์ ์ ๋นํด์ ๋คํธ์ํฌ์ ํผ์ก ์ํฉ ๋ฐ์ํ๋ ๋น๋๊ฐ ๋ง์ด ์ค์ด๋ค์๊ธฐ ๋๋ฌธ์, ํผ์ก์ด ๋ฐ์ํ์ง๋ ์์๋๋ฐ ์ ๋๋ก ์๋๋ฅผ ๋ด๋๋ฐ๊น์ง ์ค๋๊ฑธ๋ฆฌ๋ AIMD ๋ฐฉ์์ ๋จ์ ์ด ์ ์ ๋ถ๊ฐ๋์๋ค.
๋ฐ๋ฉด, Slow Start
๋ ๊ธฐ๋ณธ์ ์ธ ์๋ฆฌ๋ AIMD์ ๋น์ทํ์ง๋ง ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ์ํฌ ๋๋ ์ง์์ ์ผ๋ก ์ฆ๊ฐ์ํค๋ค๊ฐ ํผ์ก์ด ๊ฐ์ง๋๋ฉด ์๋์ฐ ํฌ๊ธฐ๋ฅผ 1
๋ก ์ค์ฌ๋ฒ๋ฆฌ๋ ๋ฐฉ์์ด๋ค.
์ด ๋ฐฉ์์ ๋ณด๋ธ ๋ฐ์ดํฐ์ ACK๊ฐ ๋์ฐฉํ ๋๋ง๋ค ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ์ํค๊ธฐ ๋๋ฌธ์ ์ฒ์์๋ ์๋์ฐ ํฌ๊ธฐ๊ฐ ์กฐ๊ธ ๋๋ฆฌ๊ฒ ์ฆ๊ฐํ ์ง ๋ชฐ๋ผ๋, ์๊ฐ์ด ๊ฐ๋ฉด ๊ฐ์๋ก ์๋์ฐ ํฌ๊ธฐ๊ฐ ์ ์ ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ๋ค๋ ์ฅ์ ์ด ์๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก AIMD์ ์ด๋ค ๋ฐฉ์์ผ๋ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ์ํค๋, ๊ฐ์์ํค๋์ ์ฐจ์ด๋ง ์กด์ฌํ๊ธฐ ๋๋ฌธ์, ์์์ ์์ฑํ ์์์์ ์๋์ฐ ์ฌ์ด์ฆ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ถ๋ถ๋ง ๋ณ๊ฒฝํ๋ฉด Slow Start์ ์ฐจํธ๋ฅผ ๊ทธ๋ ค๋ณผ ์ ์๋ค.

๋ฐ์ดํฐ๋ฅผ ํ์ธํด๋ณด๋ฉด ํ์๊ฐ ์ ํด๋์ ๋คํธ์ํฌ ํผ์ก๋์ ์ต๊ณ ์น์ธ 50
๋ณด๋ค ํธ์คํธ๋ค์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋๋ฐ, ์ด๊ฑด ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ setInterval
์ ์ฝ๋ฐฑ์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์์ ๋ฐ์ํ ๋ฌธ์ ์ด๋ฏ๋ก ์ค์ ๋คํธ์ํฌ์์๋ ์ด๋ฌ์ง ์๋๋ค. (์ ์ด์ ํผ์ก๋๋ฅผ ์ด๋ ๊ฒ ๊ฐ๋จํ ๊ณ์ฐํ์ง๋ ์๋๋ค)
AIMD์ Slow Start ๊ทธ๋ํ์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๋คํธ์ํฌ ํผ์ก๋์ ์ต๊ณ ์น์ ๋๋ฌํ๋ ์๊ฐ์ด๋ค.
AIMD๋ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ ํ์ ์ผ๋ก ํค์๋๊ฐ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ํธ์คํธ๋ค์ด ์๋ก ๋ค์ด์ฌ ๋ ๋ง์ ๋ถ๋ถ์ ์ ์ ํ ์ ์์์ง๋ง, Slow Start ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ์ฒ์์๋ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๊ฒ ํค์ฐ๋ค๊ฐ ์์ง ์ฌ์ ๊ฐ ์๋ค๊ณ ํ๋จ๋๋ฉด ์ง์์ ์ผ๋ก ํํ ์ฆ๊ฐ์ํฌ ์ ์์ผ๋ฏ๋ก ๊ฒฐ๊ณผ์ ์ผ๋ก AIMD๋ณด๋ค ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๋ ๋น ๋ฅด๊ฒ ํค์ธ ์ ์๋ ๊ฒ์ด๋ค.
์ต๊ทผ์ TCP์์ ์ฌ์ฉํ๊ณ ์๋ Tahoe
๋ Reno
์ ๊ฐ์ ์ ์ฑ
๋ค์ AIMD์ Slow Start๋ฅผ ์ ์ ํ ์์ด์ ์ฌ์ฉํ๋, ๋คํธ์ํฌ ํผ์ก ์ํฉ์ด ๋ฐ์ํ์ ๋ ์ด๋ป๊ฒ ๋์ฒํ๋ ์ง์ ๋ฐ๋ผ์ ๋๋์ด์ง๊ฒ ๋๋ค.
ํผ์ก ์ ์ด ์ ์ฑ
TCP์๋ Tahoe, Reno, New Reno, Cubic, ์ต๊ทผ ๋์จ Elastic-TCP๊น์ง ์ผ์ผํ ๋์ดํ๊ธฐ์๋ ์จ ๊ฐ์ ์ ๋๋ก ๋ค์ํ ํผ์ก ์ ์ด ์ ์ฑ ์ด ์กด์ฌํ๋ค.
์ด๋ฌํ ํผ์ก ์ ์ด ์ ์ฑ
๋ค์ ๊ณตํต์ ์ผ๋ก ํผ์ก์ด ๋ฐ์ํ๋ฉด ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ฑฐ๋, ํน์ ์ฆ๊ฐ์ํค์ง ์์ผ๋ฉฐ ํผ์ก์ ํํผํ๋ค
๋ผ๋ ์ ์ ๋ฅผ ๊น๊ณ ์๊ณ , ์ต๊ทผ์ ๋์จ ๋ฐฉ๋ฒ์ ์์ ๋ฐฉ๋ฒ๋ค์ ๋นํด์ ๋ ๋๋ํ๊ฒ ํผ์ก ์ํฉ์ ๊ฐ์งํ๊ณ ๋คํธ์ํฌ ๋์ญ์ ์ต๋ํ ๋น ๋ฅด๊ณ ์์ ํ๊ฒ ํ์ฉํ ์ ์๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ฐ๋ ๊ฒ์ด๋ค.
ํ์ง๋ง ์ด ์น๊ตฌ๋ค์ ์ด ํฌ์คํ
์์ ์ ๋ถ ์ค๋ช
ํ๊ธฐ๋ ํ๋๋, ์ด ์ค์์ ๊ฐ์ฅ ๋ํ์ ์ด๊ณ ์ ๋ช
ํ ์ ์ฑ
์ธ Tahoe
์ Reno
๋ฅผ ์์ฃผ๋ก ํผ์ก ์ ์ด์ ๊ธฐ๋ณธ ๋ฐฉ์์ ๋ํด์ ์ค๋ช
ํ๋ ค๊ณ ํ๋ค.
Tahoe
์ Reno
๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒ์์๋ Slow Start ๋ฐฉ์์ ์ฌ์ฉํ๋ค๊ฐ ๋คํธ์ํฌ๊ฐ ํผ์กํ๋ค๊ณ ๋๊ปด์ก์ ๋๋ AIMD ๋ฐฉ์์ผ๋ก ์ ํํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ์ ์ฑ
๋ค์ด๋ค.

์ ๊ทธ๋ํ์ Y์ถ์ ํผ์ก ์๋์ฐ, X์ถ์ ์๊ฐ์ผ๋ก ํ์ฌ Tahoe์ Reno์ ์๋ ๋ฐฉ์์ ์ค๋ช ํ๊ณ ์๋ค. ๋ณธ๊ฒฉ์ ์ผ๋ก Tahoe์ Reno๋ฅผ ์์๋ณด๊ธฐ์ ์์, ์ผ๋จ ์ด ๊ทธ๋ํ๊ฐ ๋ญ ์ค๋ช ํ๊ณ ์๋์ง ๋น ๋ฅด๊ฒ ์ดํดํ๊ธฐ ์ํด ๊ฐ๋จํ ์ฉ์ด๋ฅผ ๋ช ๊ฐ์ง๋ง ์ง๊ณ ๋์ด๊ฐ๋๋ก ํ๊ฒ ๋ค.
๊ทธ๋ํ๊ฐ ๊บพ์ด๋ ๊ณณ์ ์ ํ์๋ 3 ACK Duplicated
, Timeout
๊ณผ ๊ทธ๋ํ์ ์์น ํญ์ด ๋ณํ๊ณ ์๋ Threshold
์ ๋ํด์ ์์๋ณด๋๋ก ํ์. (๊ทธ๋ฆผ์ ์ฒ ์๊ฐ ์ด์ํ ์ด์ ๋ ์์ด๊ฐ ์๋๋ผ ์ดํ๋ฆฌ์์ด๋ผ์ ๊ทธ๋ฐ ๊ฒ์ด๋ ์ ๊ฒฝ์ฐ์ง๋ง์)
3 ACK Duplicated, Timeout
์ผ๋จ ๋ ๋ฐฉ์ ๋ชจ๋ 3 ACK Duplicated
์ Timeout
์ด๋ผ๋ ๋ ๊ฐ์ง ์๋๋ฆฌ์ค๊ฐ ๋ฐ์ํ๋ฉด ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๊ฒ์ ํ์ธํด๋ณผ ์ ์๋ค. ์ฆ, ์ด ๋ ์ํฉ์ด ํผ์ก ์ ์ด ์ ์ฑ
๋ค์ด ํผ์ก ๋ฐ์
์ ๊ฐ์งํ๋ ๊ธฐ๋ณธ์ ์ธ ์ํฉ์ธ ๊ฒ์ด๋ค.
ํ์์์์ ๋ง ๊ทธ๋๋ก ์ฌ๋ฌ๊ฐ์ง ์์ธ์ผ๋ก ์ธํด ์ก์ ์ธก์ด ๋ณด๋ธ ๋ฐ์ดํฐ ์์ฒด๊ฐ ์ ์ค๋์๊ฑฐ๋, ์์ ์ธก์ด ์๋ต์ผ๋ก ๋ณด๋ธ ACK๊ฐ ์ ์ค๋๋ ๊ฒฝ์ฐ๋ฅผ ๋ปํ๋ ๊ฒ์ด๋ค.
3 ACK Duplicated
, ์ฆ ์ก์ ์ธก์ด 3๋ฒ ์ด์ ์ค๋ณต๋ ์น์ธ ๋ฒํธ๋ฅผ ๋ฐ์ ์ํฉ ๋ํ ์ ์์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ก๋ ์ํฉ์ ์๋๋ฐ, ์์ ์ธก์ ์์ ์ด ์ ์์ ์ผ๋ก ์ฒ๋ฆฌํ ๋ฐ์ดํฐ์ ๋ํด์๋ง ACK๋ฅผ ๋ณด๋ด๊ธฐ ๋๋ฌธ์ ๋์ผํ ์น์ธ ๋ฒํธ๋ฅผ ์ธ ๋ฒ์ด๋ ๋ฐ์ ์ํฉ์ ์ด๋ค ์ด์ ๋ก ์ธํด ์์ ์ธก์ด ํน์ ์ํ์ค ๋ฒํธ ์ดํ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋๋ก ์ฒ๋ฆฌํ์ง ๋ชปํ ์ํฉ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
๋จ, ํจํท ์ ์ก ๋ฐฉ์์ ์ฌ์ฉํ๋ TCP์ ํน์ฑ ์ ์์ ์ธก์ด ๋ฐ๋ ํจํท์ ์์๊ฐ ๋ ์์๋๋ก ๋ฐ์ผ๋ฆฌ๋ผ๋ ๋ณด์ฅ์ ์์ผ๋ฏ๋ก, ํ ๋๊ฐ์ ์ค๋ณต ์น์ธ ๋ฒํธ๊ฐ ๋ฐ์ํ๋ค๊ณ ํด์ ๋ฐ๋ก ๋คํธ์ํฌ๊ฐ ํผ์กํ๋ค๊ณ ํ๋จํ์ง๋ ์๋๋ค.

TCP๋ ํ์ฌ๊น์ง ๋์ ๋ ์ ์ ๋ฐ์ดํฐ ์ค ๊ฐ์ฅ ๋ง์ง๋ง ๋ฐ์ดํฐ์ ๋ํ ์น์ธ ๋ฒํธ๋ฅผ ๋ณด๋ด์ฃผ๋ ๋์ ์น์ธ ๋ฐฉ์(Cumulative Acknowledgement)
๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ์ก์ ์ธก์ด ๊ฐ์ ์น์ธ ๋ฒํธ๋ฅผ ๊ณ์ ์ค๋ณตํด์ ๋ฐ๋๋ค๋ฉด ํด๋น ๋ฐ์ดํฐ๊น์ง๋ ์ ์์ ์ผ๋ก ์ ์ก๋์์ผ๋ ๊ทธ ์ดํ๋ถํฐ๋ ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๊ณ ์ ์ ์๋ ๊ฒ์ด๋ค.
์ด๋ 3๋ฒ์ ์ค๋ณต ์น์ธ ๋ฒํธ๋ก ์ธํด ์ก์ ์ธก์ด ๋ฐ๋ก ํด๋น ์น์ธ ๋ฒํธ์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ๋๋ฉด ์์ ์ธก์ Go back N์ด๋ Selective Repeat๊ณผ ๊ฐ์ ์ค๋ฅ ์ ์ด ๋ฐฉ์์ ๋ฐ๋ผ์ ๋ค์์ ์ด๋ค ํจํท๋ถํฐ ๋ณด๋ด์ค์ผํ๋์ง ์๋ ค์ค ๊ฒ์ด๋ค.
์ด๋ฐ ์ํฉ์ผ ๊ฒฝ์ฐ, ์ก์ ์ธก์ ์์ ์ด ์ค์ ํ ํ์์์ ์๊ฐ์ด ์ง๋์ง ์์์ด๋ ๋ฐ๋ก ํด๋น ํจํท์ ์ฌ์ ์กํ ์ ์๋๋ฐ, ์ด ๊ธฐ๋ฒ์ ๋น ๋ฅธ ์ฌ์ ์ก(Fast Transmit)
์ด๋ผ๊ณ ํ๋ค.
๋ง์ฝ ๋น ๋ฅธ ์ฌ์ ์ก ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด, ์ก์ ์ธก์ ์์ ์ด ์ค์ ํ ํ์์์ ์๊ฐ์ด ์ง๋ ์ดํ์์ผ ๋์ฒํ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ ์กํ๊ธฐ๊น์ง ์๊ฐ์ด ๋ญ๋น๋๊ฒ ๋ ๊ฒ์ด๋ค.
Slow Start ์๊ณ์ (ssthresh)
Tahoe์ Reno๋ฅผ ๋น๊ตํ๋ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด Threshold(์๊ณ์ )
์ด๋ผ๋ ๋จ์ด๊ฐ ๊ฝค ๋ง์ด ๋ฑ์ฅํ๊ณ ์๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ, ์ด ์๊ณ์ ์ Slow Start Threshold(ssthresh)
๋ฅผ ๋ปํ๋ ๊ฒ์ผ๋ก, ์ฌ๊ธฐ๊น์ง๋ง Slow Start๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค
๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค.

์ด ๊ฐ์ ์ฌ์ฉํ๋ ์ด์ ๋ Slow Start๋ฅผ ์ฌ์ฉํ๋ฉฐ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ง์์ ์ผ๋ก ์ฆ๊ฐ์ํค๋ค๋ณด๋ฉด ์ด๋ ์๊ฐ๋ถํฐ๋ ์๋์ฐ ํฌ๊ธฐ๊ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ๋์ด๋์ ์ ์ด๊ฐ ํ๋ค์ด์ง๊ธฐ๋ ํ๊ณ , ๋คํธ์ํฌ์ ํผ์ก์ด ์์๋๋ ์ํฉ์์๋ ๋น ๋ฅด๊ฒ ๊ฐ์ ์ฆ๊ฐ์ํค๋ ๊ฒ๋ณด๋ค ๋๋ค๋ฆฌ ๋๋ค๊ฒจ ๊ฑด๋๋ฏ์ด ์กฐ๊ธ์ฉ ์ฆ๊ฐ์ํค๋ ํธ์ด ํจ์ฌ ์์ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฝ๊ฒ ์๊ฐํด์ ํ์ฌ ์๋์ฐ ํฌ๊ธฐ๊ฐ 10
์ด๊ณ ํ์ฌ ๋คํธ์ํฌ์ ๋จ์ ๊ณต๊ฐ์ด 15
๋ผ๊ณ ํ ๋, Slow Start ๋ฐฉ์์ผ๋ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ์ํค๋ฉด 20
์ ๋๊ฒจ๋ฒ๋ฆฌ์ง๋ง ํฉ ์ฆ๊ฐ๋ฅผ ํ๊ฒ ๋๋ฉด ์์ผ๋ก ํ 5๋ฒ์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๋ ์ฆ๊ฐ์ํฌ ์ ์๋ค.
๊ทธ๋์ ํน์ ํ ์๊ณ์ (Threshold)
๋ฅผ ์ ํด๋๊ณ , ์๊ณ์ ์ ๋์ด๊ฐ๊ฒ๋๋ฉด AIMD ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ์ ํ์ ์ผ๋ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ์ํจ๋ค. ๊ทธ๋์ ์ด ์๊ณ์ ์ ์นญํ๋ ๋จ์ด๊ฐ ssthresh(Slow Start Threshold)
์ธ ๊ฒ์ด๋ค.
์ก์ ์ธก์ ๋ณธ๊ฒฉ์ ์ธ ํต์ ์ด ์์ํ๊ธฐ ์ ์ ssthresh ๊ฐ์ ์์ ์ ํผ์ก ์๋์ฐ์ ์ ๋ฐ ํฌ๊ธฐ์ธ 0.5 MSS
์ผ๋ก ์ด๊ธฐํํ๊ณ , ์ดํ ์ด๋ค ํผ์ก ์ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋์ฒํ๊ฒ๋๋ค.
TCP Tahoe
TCP Tahoe๋ Slow Start๋ฅผ ์ฌ์ฉํ ํผ์ก ์ ์ด ์ ์ฑ
์ ์ด๊ธฐ ๋ฒ์ ์ผ๋ก, ์์์ ์ค๋ช
ํ ๋น ๋ฅธ ์ฌ์ ์ก(Fast Transmit)
๊ธฐ๋ฒ์ด ์ฒ์์ผ๋ก ๋์
๋ ๋ฐฉ๋ฒ์ด๋ค. Tahoe ์ดํ์ ํผ์ก ์ ์ด ์ ์ฑ
์ Tahoe์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋น ๋ฅธ ์ฌ์ ์ก ๊ธฐ๋ฒ์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๋, ํจ์จ์ ์ํด ๋ช ๊ฐ์ง ์๋
์ ๋ ์น๊ฒ ๋๋ค.
์ฐธ๊ณ ๋ก TCP Tahoe๋ ๋ฏธ๊ตญ ๋ค๋ฐ๋ค์ฃผ์ ์๋ ํํธ ํธ์์ ์ด๋ฆ์ ๋ฐ์ ์ง์ด์ก์ผ๋ฏ๋ก ๊ทธ๋ฅ ํํธ
๋ผ๊ณ ์ฝ์ผ๋ฉด ๋๋ค. (ํํธ์๊ฐ ์๋๋ค!)

Tahoe๋ ์ฒ์์๋ Slow Start๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ง์์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์ฆ๊ฐ์ํค๋ค๊ฐ ssthresh๋ฅผ ๋ง๋ ์ดํ๋ถํฐ๋ AIMD์์ ์ฌ์ฉํ๋ ํฉ ์ฆ๊ฐ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ์ ํ์ ์ผ๋ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ์ํจ๋ค.
๊ทธ๋ฌ๋ค๊ฐ ์์์ ์ธ๊ธํ ACK Duplicated๋ Timeout์ด ๋ฐ์ํ๋ฉด ๋คํธ์ํฌ์ ํผ์ก์ด ๋ฐ์ํ๋ค๊ณ ํ๋จํ๊ณ , ssthresh์ ์์ ์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์์ ํ๊ฒ ๋๋ค. ์กฐ๊ธ ๋ ํธํ ์ดํด๋ฅผ ์ํด Tahoe์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ ๋ณํ ๊ทธ๋ํ๋ฅผ ์ดํด๋ณด๋๋ก ํ์.

์ ๊ทธ๋ํ์์ ์ฒญ๋ก์ ์ ์ ์ก์ ์ธก์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ, ๊ตต์ ๊ฒ์ ์ ์ ssthresh ๊ฐ์ ๋ณด์ฌ์ฃผ๊ณ ์๋ค. ์ด ์๋๋ฆฌ์ค์์ ์ก์ ์ธก์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ 8
๋ก ์ด๊ธฐํ๋์๊ณ , ๊ทธ์ ๋ฐ๋ผ ssthresh๋ 8 * 0.5 = 4
๋ก ์ค์ ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ก์ ์ธก์ ์๊ณ์ ์ ๋ง๋๊ธฐ ์ ๊น์ง Slow Start ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ์์ ์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ์ง์์ ์ผ๋ก ์ฆ๊ฐ์ํค๋ค๊ฐ ssthresh๋ฅผ ๋์ด์ ์ดํ๋ถํฐ๋ ์ ํ์ ์ผ๋ก ์ฆ๊ฐ์ํค๊ณ ์๋ค. ์ด๋ 3 ACK Duplicated
๋ Timeout
๊ณผ ๊ฐ์ ํผ์ก ์ํฉ์ด ๋ฐ์ํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด ๊ฐ์ฅ ์ฒ์ ํผ์ก ์ํฉ์ด ๋ฐ์ํ ์ํ์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ 6
์ด๋ค. ์ด๋ ์ก์ ์ธก์ ssthresh๋ฅผ 6์ ์ ๋ฐ์ธ 3
์ผ๋ก ๋ณ๊ฒฝํ๊ณ , ์์ ์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๋ค์ 1
๋ก ๋ณ๊ฒฝํ๋ ๋ชจ์ต์ ํ์ธํ ์ ์๋ค. ์ดํ ๋ค์ Slow Start๋ก ์์ํ์ฌ ์๊ณ์ ์ ๋๋ฌํ๋ฉด ํฉ ์ฆ๊ฐ๋ก ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ณตํ๊ฒ ๋๋ค.
์ฆ, ์ด์ ์ ํ ๋ ๋ง์๋ ์ง์ ์ ๊ธฐ์ตํ๊ณ ๊ทธ ์ง์ ์ด ๊ฐ๊น์์ง๋ฉด ์กฐ๊ธ์ฉ ๋ชธ์ ์ฌ๋ฆฌ๋ ์๋ฆฌ์ธ ๊ฒ์ด๋ค. ์ด๋ฐ ์ ๊ทผ๋ฒ์ ๋๋ฆ ํฉ๋ฆฌ์ ์ธ ๋ฐฉ๋ฒ์ด๋ค.
๊ทธ๋ฌ๋ ์ค๋ฒ ๋ถ๋ ์ ์๋ ๋ฒ. Tahoe์ ๋จ์ ์ ์ด๋ฐ์ Slow Start ๊ตฌ๊ฐ์์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ ํค์ธ๋ ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฐ๋ค๋ ๊ฒ์ด๋ค. ๋ฌผ๋ก ์ ์ฒด์ ์ผ๋ก ๋ณด์์ ๋ ํฉ ์ฆ๊ฐ ๋ฐฉ์๋ณด๋ค๋ ์ง์ ์ฆ๊ฐ ๋ฐฉ์์ด ๋น ๋ฅด๊ฒ ์ง๋ง, ๊ทธ๋๋ ํผ์ก ์ํฉ์ด ๋ฐ์ํ์ ๋ ๋ค์ ์๋์ฐ ํฌ๊ธฐ๋ฅผ 1
๋ถํฐ ํค์๋๊ฐ์ผ ํ๋ค๋ ์ ์ ์ด์ฐ๋ณด๋ฉด ๋ญ๋น์ผ ์๋ ์๋ค.
๊ทธ๋์ ๋์จ ๋ฐฉ๋ฒ์ด ๋น ๋ฅธ ํ๋ณต(Fast Recovery)
๋ฐฉ์์ ํ์ฉํ TCP Reno
์ด๋ค.
TCP Reno
TCP Reno๋ TCP Tahoe ์ดํ์ ๋์จ ์ ์ฑ ์ผ๋ก, Tahoe์ ๋ง์ฐฌ๊ฐ์ง๋ก Slow Start๋ก ์์ํ์ฌ ์๊ณ์ ์ ๋์ด์๋ฉด ํฉ ์ฆ๊ฐ๋ก ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๊ทธ๋ฌ๋ Tahoe๋ ๋ช
ํํ ์ฐจ์ด๊ฐ ์๋๋ฐ, ๋ฐ๋ก 3 ACK Duplicated
์ Timeout
์ ๊ตฌ๋ถํ๋ค๋ ๊ฒ์ด๋ค. Reno๋ 3๊ฐ์ ์ค๋ณต ACK๊ฐ ๋ฐ์ํ์ ๋, ์๋์ฐ ํฌ๊ธฐ๋ฅผ 1๋ก ์ค์ด๋ ๊ฒ์ด ์๋๋ผ AIMD์ฒ๋ผ ๋ฐ์ผ๋ก๋ง ์ค์ด๊ณ sshthresh๋ฅผ ์ค์ด๋ ์๋์ฐ ๊ฐ์ผ๋ก ์ ํ๊ฒ ๋๋ค.

์ ๊ทธ๋ํ๋ ์์์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฒญ๋ก์์ผ๋ก ์ก์ ์ธก์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ, ๊ตต์ ๊ฒ์ ์ ์ผ๋ก ssthresh๋ฅผ ํํํ๊ณ ์๋ค.
Reno๋ Tahoe์ ๋ค๋ฅด๊ฒ 3๊ฐ์ ์ค๋ณต ACK๊ฐ ๋ฐ์ํ์ ๋๋ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ 1๋ก ์ค์ด๋ ๊ฒ์ด ์๋๋ผ ๋ฐ์ผ๋ก ์ค์ธ ํ ํฉ ์ฆ๊ฐ๋ฅผ ํ๊ฒ ๋๋๋ฐ, ์ด ๋ฐฉ์์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ 1๋ก ์ค์ด๊ณ ์ฒ์๋ถํฐ ๋ค์ ์์ํ๋ Tahoe์ ๋นํด์ ๋น ๋ฅด๊ฒ ์๋ ์๋์ฐ ํฌ๊ธฐ์ ๋๋ฌํ ์ ์๊ธฐ ๋๋ฌธ์ ๋น ๋ฅธ ํ๋ณต(Fast Recovery)
๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
์ด๋ ssthresh๋ ์ค์ด๋ ์๋์ฐ์ ํฌ๊ธฐ์ ๋์ผํ๊ฒ ์ค์ ํ๊ฒ ๋๋ค. ์ ๊ทธ๋ํ์์๋ ํผ์ก ์ํฉ์ด ๋ฐ์ํ์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ 6
์์ 3
์ผ๋ก ์ค์ด๊ณ ssthresh ๋ํ 3
์ผ๋ก ์ค์ ํ๋ ๋ชจ์ต์ ๋ณผ ์ ์๋ค.
๊ทธ๋ฌ๋ ๋ง์ฝ ํ์์์์ ์ํด ๋ฐ์ดํฐ๊ฐ ์์ค๋๋ฉด Tahoe์ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๋ฐ๋ก 1๋ก ์ค์ฌ๋ฒ๋ฆฌ๊ณ Slow Start๋ฅผ ์งํํ๊ณ ์ด๋๋ ssthresh๋ฅผ ๋ณ๊ฒฝํ์ง ์๋๋ค.
์ฆ, ACK๊ฐ ์ค๋ณต๋ ์ํฉ๊ณผ ํ์์์์ด ๋ฐ์ํ ์ํฉ์ ๊ตฌ๋ถํ๋ฉด์ ๋์ฒ๋ฅผ ๋ค๋ฅด๊ฒ ํ๊ณ ์๋ ๊ฒ์ด๋ค. ACK ์ค๋ณต์ ํ์์์์ ๋นํด ๊ทธ๋ฆฌ ํฐ ํผ์ก์ด ์๋๋ผ๊ณ ๊ฐ์ ํ๊ณ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ 1
๋ก ์ค์ด์ง๋ ์๋๋ค๋ ์ ์์ ์ด๋ ์ ๋ ํผ์ก ์ํฉ์ ๊ฒฝ์ค์ ๋ฐ์ง๊ณ ์๋ค๋ ๊ฒ๋ ์ ์ ์๋ค.
๋ง์น๋ฉฐ
์ด๋ฒ์๋ TCP์ ํผ์ก ์ ์ด ์ ์ฑ ์ ๋ํด์ ์์๋ณด์๋ค. ์ฌ์ค ํ์๊ฐ ํฌ์คํ ์์ ์๊ฐํ Taheo์ Reno ๊ฐ์ ํผ์ก ์ ์ด ์ ์ฑ ์ ์ต๊ทผ์๋ ๋ง์ด ์ฌ์ฉ๋์ง ์๋ ๊ตฌ์์ด๋ค.
์์ ์ ๊ฐ๋ฐ๋ Tahoe๋ Reno ๊ฐ์ ๊ฒฝ์ฐ๋ ๋ง ๊ทธ๋๋ก ์์ ์ ๋คํธ์ํฌ ํ๊ฒฝ์ ๊ณ ๋ คํ๋ฉฐ ์ค๊ณ๋ ์น๊ตฌ๋ค์ด๋ผ ์ต๊ทผ์ ๋์ญํญ ๋นต๋นตํ ๋คํธ์ํฌ์๋ ๋ค์ ๋ง์ง ์๋ ๊ฒ์ด ํ์ค์ด๋ค.

์ฌ์ค Tahoe๋ Reno๊ฐ ๊ฐ๋ฐ๋ ์์ ์ ๋คํธ์ํฌ ๋์ญํญ์ ๋น๊ตํ๋ฉด ์ต๊ทผ์ ๋คํธ์ํฌ ๋์ญํญ์ ์ ์ด๋ 1,000๋ฐฐ๋ ๋ ์ฌ์ ๊ฐ ์์ง ์์๊น?
๊ทธ ๋ง์ธ ์ฆ์จ, ์ก์ ์ธก์ด ์์ ์ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ๋ง์ ๋๊ณ ํํ ๋๋ ธ์ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ํ๋ฅ ์ด ์์ ๋ณด๋ค ๋ง์ด ๋ฎ์์ก๋ค๋ ๋ป์ด๋ค. ๊ทธ๋์ ์ต๊ทผ์ ํผ์ก ์ ์ด ์ ์ฑ ๋ค์ ์ผ๋ง๋ ๋ ๋น ๋ฅด๊ฒ ํผ์ก ์๋์ฐ ํฌ๊ธฐ๋ฅผ ํค์ฐ๊ณ , ์ด๋ป๊ฒ ํผ์ก ๊ฐ์ง๋ฅผ ๋ ๋๋ํ๊ฒ ํ ๊ฒ์ด๋์ ๋ํด ์ด์ ์ด ๋ง์ถฐ์ ธ์๋ค.

3차 함수의 특성을 사용하는 TCP CUBIC은
혼잡을 회피할 때는 거의 윈도우 크기를 증가시키지 않다가, 혼잡이 해결되면 다시 폭발적으로 증가시킬 수 있다
๊ทธ๋ฌ๋ ํ์๊ฐ ๊ตณ์ด ์์ ๋ฐฉ์์ธ Tahoe์ Reno๋ฅผ ์๊ฐํ ์ด์ ๋ TCP ์ฌ์ฉ ์ด๋ฐ์ ๊ฐ๋ฐ๋ ํผ์ก ์ ์ด ๋ฐฉ์์ธ ๋งํผ ์๋ฆฌ๊ฐ ๊ฐ๋จํ๊ธฐ๋ ํ๊ณ , ์ดํ ๊ฐ๋ฐ๋ ๋ฐฉ์๋ค๋ ํฐ ํ์ Tahoe์ Reno์ ๊ฐ์ ๋งค์ปค๋์ฆ์์ ํฌ๊ฒ ๋ฒ์ด๋์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด ํฌ์คํ ์ ๋ค์ํ ํผ์ก ์ ์ด ์ ์ฑ ์ ์์๋ณด๋ ๊ฒ์ด ์๋๋ผ, ํผ์ก ์ ์ด๋ผ๋ ๋งค์ปค๋์ฆ ์์ฒด๊ฐ ์ด๋ค ์์ผ๋ก ํ๋ฌ๊ฐ๋์ง ์๋ ๊ฒ์ด ๋ชฉํ์ด๋ฏ๋ก ๊ตณ์ด ๋ค๋ฅธ ํผ์ก ์ ์ด ์ ์ฑ ์ ์๊ฐํ์ง ์์๋ค.
๋ง์ฝ ์ต๊ทผ์ ์ฌ์ฉํ๋ ํผ์ก ์ ์ด ์ ์ฑ ์ด ๊ถ๊ธํ์ ๋ถ๋ค์ ์๋ ์ฒจ๋ถํ ๋งํฌ์์ ์กฐ๊ธ ๋ ์ดํด๋ณด๋๋ก ํ์.
์ด์์ผ๋ก ์ฌ์ด ์ข๊ฒ ๋คํธ์ํฌ๋ฅผ ๋๋ ์ฐ๋ ๋ฐฉ๋ฒ, TCP์ ํผ์ก ์ ์ด ํฌ์คํ ์ ๋ง์น๋ค.
๊ด๋ จ ํฌ์คํ ๋ณด๋ฌ๊ฐ๊ธฐ

ํจํท์ ํ๋ฆ๊ณผ ์ค๋ฅ๋ฅผ ์ ์ดํ๋ TCP
ํ๋ก๊ทธ๋๋ฐ/๋คํธ์ํฌ
TCP๊ฐ ์ฐ๊ฒฐ์ ์์ฑํ๊ณ ์ข ๋ฃํ๋ ๋ฐฉ๋ฒ, ํธ๋์์ดํฌ
ํ๋ก๊ทธ๋๋ฐ/๋คํธ์ํฌ
TCP์ ํค๋์๋ ์ด๋ค ์ ๋ณด๋ค์ด ๋ด๊ฒจ์๋๊ฑธ๊น?
ํ๋ก๊ทธ๋๋ฐ/๋คํธ์ํฌ
HTTP/3๋ ์ UDP๋ฅผ ์ ํํ ๊ฒ์ผ๊น?
ํ๋ก๊ทธ๋๋ฐ/๋คํธ์ํฌ
์ฐ๋ฆฌ ์ง์์ ๊ตฌ๊ธ๊น์ง ๊ฐ๋ ๊ธธ
ํ๋ก๊ทธ๋๋ฐ/๋คํธ์ํฌ