Fairness
๐กย Fairness
์ Fairness๊ฐ ํ์ํ๊ฐ?
์ง๊ธ๊น์ง TCP ํผ์ก ์ ์ด๋ ํ ์ฐ๊ฒฐ์ด ์์ ์ ์๋๋ฅผ ๋คํธ์ํฌ ์ํฉ์ ๋ฐ๋ผ ์กฐ์ ํ๋ ๋ฐฉ์์ ์ง์คํ๋ค. ํ์ง๋ง ํ์ค์์๋ ์๋ง์ TCP ์ฐ๊ฒฐ์ด ๋์์ ๊ฐ์ ๋คํธ์ํฌ ์์์ ์ฌ์ฉํ๋ค. ์ด๋ ๋๊ตฐ๊ฐ ํผ์๋ง ์๋๋ฅผ ์ฌ๋ฆฌ๊ณ , ๋ค๋ฅธ ์ฐ๊ฒฐ์ด ์ํด๋ฅผ ๋ณธ๋ค๋ฉด?
๋ฐ๋ก ์ฌ๊ธฐ์ Fairness(๊ณต์ ์ฑ) ๊ฐ๋ ์ด ํ์ํ๋ค. Fairness๋ ์ฌ๋ฌ ์ฐ๊ฒฐ์ด ๋คํธ์ํฌ๋ฅผ ์๋ก ๋ฐฐ๋ คํ๋ฉฐ ์ฌ์ฉํ๋๋ก ๋ง๋๋ TCP ์ค๊ณ ์ฒ ํ์ด๋ค.
bottleneck link
๋๋ถ๋ถ์ ๋คํธ์ํฌ ๊ฒฝ๋ก์๋ bottleneck link(๋ณ๋ชฉ ๋งํฌ)๊ฐ ์กด์ฌํ๋ค. ๊ฒฝ๋ก ์ค ๊ฐ์ฅ ๋์ญํญ์ด ๋ฎ์ ์ง์ ์ผ๋ก, congestion์ด ๊ฐ์ฅ ์์ฃผ ๋ฐ์ํ๋ ๊ณณ์ด๋ค. bottleneck link๋ฅผ ์ง๋๋ ค๋ ์ฌ๋ฌ TCP ์ฐ๊ฒฐ์ด ์์ ๋, ์ด์์ ์ธ ์ํฉ์ ๋ชจ๋ ์ฐ๊ฒฐ์ด ๋์ญํญ์ ๊ณตํํ๊ฒ ๋๋ ๊ฐ๋ ๊ฒ์ด๋ค.
bottleneck link์ ๋ผ์ฐํฐ์๋ ๊ฑฐ์ ํญ์ ํจํท ํ๊ฐ ํ์ฑ๋๋ค. ์ด ํ๊ฐ ๋์น๋ฉด ํจํท ์์ค์ด ๋ฐ์ํ๋ค. TCP ์ก์ ๋ฅ ์ด bottleneck link์ ์ฉ๋์ ์ด๊ณผํ๋ฉด, ์ด๊ณผ๋ถ์ ํจํท์ ํ์ ์์ด๊ฒ ๋๋ค. ์ด๋ก ์ธํด RTT๋ ์ฆ๊ฐํ์ง๋ง, ์ค์ ์ข ๋จ ๊ฐ ์ฒ๋ฆฌ๋์ ๋ณ๋ชฉ ๋งํฌ์ ์ฉ๋ ์ด์์ผ๋ก ์ฆ๊ฐํ์ง ์๋๋ค.
๋ณ๋ชฉ ๋งํฌ์ ๋์ญํญ์ด 100Mbps์ด๊ณ , 4๊ฐ์ TCP ์ฐ๊ฒฐ์ด ์๋ค๋ฉด ๊ฐ ์ฐ๊ฒฐ์ 25Mbps์ฉ ๊ฐ์ ธ๊ฐ๋ ๊ฒ ๊ณต์ ํ ์ํ์ผ ๊ฒ์ด๋ค.
TCP๋ ์ด๋ฅผ ์ํด cwnd๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ ์ ์ ์ก ์๋๋ฅผ ์กฐ์ ํด ๊ณต์ ํ ์์ ์ฌ์ฉ์ ์ ๋ํ๋ค.
์ด์์ ์ธ ์ํ๋ "pipe just full, but not fuller"์ด๋ค. bottleneck link๋ฅผ ์์ ํ ํ์ฉํ๋, ๊ณผ๋ํ ํ์์ ํผํ๋ ๊ฒ์ด ๋ชฉํ๋ค. ์ด๋ฅผ ๋ฐํ์ผ๋ก ๋ชจ๋ TCP ๊ตฌํ์ ํจํท ์์ค์๋ง ์์กดํ์ง ์๊ณ RTT ๋ณํ๋ ๋ชจ๋ํฐ๋งํด ํผ์ก์ ์กฐ๊ธฐ์ ๊ฐ์งํ๊ณ ๋์ํ๋ ค๊ณ ํ๋ค.
TCP Fairness
TCP ํผ์ก ์ ์ด์ ์ค์ํ ๋ชฉํ ์ค ํ๋๋ ์ฌ๋ฌ TCP ์ฐ๊ฒฐ์ด ๋คํธ์ํฌ ์์์ ๊ณต์ ํ๊ฒ ๋๋์ด ์ฌ์ฉํ๋๋ก ํ๋ ๊ฒ์ด๋ค. ํนํ ๊ฐ์ TCP ์ฐ๊ฒฐ์ด ๋์ผํ ๋ณ๋ชฉ ๋งํฌ(๋์ญํญ )๋ฅผ ๊ณต์ ํ ๋, ์ด์์ ์ผ๋ก๋ ๊ฐ ์ฐ๊ฒฐ์ด ํ๊ท ์ ์ผ๋ก ์ ์ฒ๋ฆฌ๋์ ์ป์ด์ผ ํ๋ค.
TCP์ AIMD ์๊ณ ๋ฆฌ์ฆ์ ๊ณต์ ์ฑ์ ๋ฌ์ฑํ๋ ๋ฐ ๋น์ค์๋ ์ญํ ์ ํ๋ค. ๋ ๊ฐ์ TCP ์ธ์ ์ด ๊ฒฝ์ํ๋ ์ํฉ์ ์๊ฐํด๋ณด์.
- ๊ฐ ์ฐ๊ฒฐ์ ํผ์ก์ด ๊ฐ์ง๋์ง ์์ ๋ ๊ฐ์ฐ์ ์ผ๋ก ํผ์ก ์๋์ฐ๋ฅผ ์ฆ๊ฐ์ํจ๋ค. ์ด๋ ์ฒ๋ฆฌ๋ ์ธก๋ฉด์์ ๋ณผ ๋ 45๋ ๊ฐ๋์ ๊ธฐ์ธ๊ธฐ๋ก ์ฆ๊ฐํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
- ํผ์ก์ด ๋ฐ์ํ๋ฉด(ํจํท ์์ค ๋ฐ์ ์), ๋ ์ฐ๊ฒฐ ๋ชจ๋ ์น๋ฒ์ ์ผ๋ก ์ฒ๋ฆฌ๋์ ๊ฐ์์ํจ๋ค. ๊ตฌ์ฒด์ ์ผ๋ก๋ ํผ์ก ์๋์ฐ๋ฅผ ์ ๋ฐ์ผ๋ก ์ค์ธ๋ค.
์ด๋ฐ ๋ฉ์ปค๋์ฆ์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ ์ฐ๊ฒฐ์ ์ฒ๋ฆฌ๋์ด ๊ณตํํ ๋์ญํญ ๊ณต์ ์ํ, ์ฆ ๋๊ฐ์ (45๋ ์ )์ ์ค์ฌ์ผ๋ก ์ง๋ํ๊ฒ ๋ง๋ ๋ค. ์ด๋ก ์ ์ผ๋ก AIMD๋ ๋ค์๊ณผ ๊ฐ์ ์ด์์ ์ธ ๊ฐ์ ํ์์ ๊ณต์ ์ฑ์ ๋ณด์ฅํ๋ค.
- ๋ชจ๋ ์ฐ๊ฒฐ์ด ๊ฐ์ RTT๋ฅผ ๊ฐ์ง ๋
- ์ฐ๊ฒฐ ์๊ฐ ๊ณ ์ ๋์ด ์์ ๋
- ๋ชจ๋ ์ฐ๊ฒฐ์ด ํผ์ก ํํผ ๋จ๊ณ์ ์์ ๋
ํ์ค์์๋ ๊นจ์ง๋ ๊ณต์ ์ฑ
ํ์ง๋ง ๋ชจ๋ ๋คํธ์ํฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด โ๊ณต์ ํ๊ฒโ ํ๋ํ์ง๋ ์๋๋ค. ๋ฉํฐ๋ฏธ๋์ด ์ฑ๋ค์ ์ข ์ข congestion control์ด ์๋ UDP๋ฅผ ์ฌ์ฉํ๋ค. congestion์ด ๋ฐ์ํด๋ ์ ์ก๋ฅ ์ ์ค์ด์ง ์๊ธฐ ๋๋ฌธ์, ๊ณต์ ํ๊ฒ ๋ฐ์ํ๋ TCP๋ฅผ ๋ฐ์ด๋ธ๋ค.
UDP์๋ ํผ์ก ์ ์ด ๋ฉ์ปค๋์ฆ์ด ๋ด์ฅ๋์ด ์์ง ์์ผ๋ฏ๋ก, UDP ํธ๋ํฝ์ ๋คํธ์ํฌ ํผ์ก ์ํฉ์์๋ ์์ ์ ์ ์ก๋ฅ ์ ์ค์ด์ง ์๋๋ค. ๋ฐ๋ฉด TCP๋ congestion์ ๋์ํด ์ ์ก๋ฅ ์ ๊ฐ์์ํจ๋ค. ์ด๋ ๊ฒ ๋๋ฉด UDP ํธ๋ํฝ์ด TCP ํธ๋ํฝ์ ๋ฐ์ด๋ด๋ ํ์์ด ๋ฐ์ํ ์ ์๋ค. ์ ์งํ TCP๋ง ์ํด๋ฅผ ๋ณธ๋ค. ๋๊ตฐ๊ฐ๊ฐ ๊ด๋ฆฌํ๋ ์ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ congestion control์ ์ฌ์ฉ์ ๊ฐ์ ํ์ง ์๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ํธ์คํธ ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ ๋ณ๋ ฌ TCP ์ฐ๊ฒฐ์ ์ด ์ ์๋ค. ๋ํ์ ์ธ ์๊ฐ ์น ๋ธ๋ผ์ฐ์ ๋ค.
๋์ญํญ์ด ์ธ ๋ณ๋ชฉ ๋งํฌ์ ์ด๋ฏธ 9๊ฐ์ TCP ์ฐ๊ฒฐ์ด ์กด์ฌํ๊ณ , ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ์ด
- 1๊ฐ์ TCP ์ฐ๊ฒฐ์ ์ด๋ฉด
- 11๊ฐ์ TCP ์ฐ๊ฒฐ์ ์ด๋ฉด
๋ฅผ ์ฐจ์งํ๊ฒ ๋๋ค. TCP๊ฐ ์ฐ๊ฒฐ ๋จ์๋ก ๊ณต์ ์ฑ์ ๋ณด์ฅํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๊ตฌ์กฐ์ ํ๊ณ๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ์ง์ ํ ๊ณต์ ์ฑ์ด ๋ฌด๋์ง๋ค.
์์ฝ
- TCP Fairness๋ ๋คํธ์ํฌ ์์์ ๋ชจ๋ ์ฐ๊ฒฐ์ด ๊ณตํํ๊ฒ ๋๋์ด ์ฌ์ฉํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค.
- AIMD ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ฌํ ๊ณต์ ์ฑ์ ์๋ ด์ํค๋ ์ค๊ณ ์๋ฆฌ๋ค.
- ๊ทธ๋ฌ๋ UDP ํธ๋ํฝ๊ณผ ๋ฉํฐ ์ฐ๊ฒฐ ์ ๋ต ๊ฐ์ ํ์ค์ ์์ธ๋ค์ ๊ณต์ ์ฑ์ ์ฝ๊ฒ ๊นจ๋จ๋ฆฐ๋ค.
- TCP๋ ์ฐ๊ฒฐ ๋จ์์ ๊ณต์ ์ฑ์ ์ ๊ณตํ์ง๋ง, ์ ํ๋ฆฌ์ผ์ด์ ๋จ์์ ๊ณต์ ์ฑ์ ๋ณด์ฅํ์ง ์๋๋ค.