20180418 8 : TCP, Congestion control
๋คํธ์ํฌ/๋คํธ์ํฌ ๊ฐ์ ๋ค์ ๊ฒ ์ ๋ฆฌ 2018. 4. 18. 22:50window size ๋ฅผ ์กฐ์ ํ๋ ๊ฒ์, ์ฌ์ค์ ์๋๋ฅผ ์กฐ์ ํ๋ ๊ฒ์ด๋ฉฐ ๋คํธ์ํฌ ์ํฉ๊ณผ ๋ฆฌ์๋ฒ ๋ฒํผ์ ๊ฐ์ ๋ํด์ ์ด ๋๊ฐ์ ๋ด์ฉ์ ๋ํด์ ์ต์๊ฐ์ window size ๋ฅผ ๊ฒฐ์ ํ๋ค.
์ด๋ป๊ฒ network condition ์ ๋ฐ๋ผ์ ์ด๋ ํ ๋ฐฉ์์ผ๋ก ์กฐ์ ํ๋๊ฐ์ ๋ฐ๋ฅธ Congestion control ์ ์๊ธฐ.
Congestion control
๋คํธ์ํฌ์ ํผ์ก ์ฌ๋ถ๋ฅผ ์ด๋ป๊ฒ ์ ๊ฒ์ธ๊ฐ?
๋ถํน์ ๋ค์์ด๋ฉฐ ๊ตฐ์ง์ ํํ์ธ๋ฐ ์ด๋ป๊ฒ ์ ์ ์๋๊ฐ?
congestion control ์ ์๋ฆฌ
๋คํธ์ํฌ ์ปจ์ ์ ์ด ๋ฐ์ํ๊ฒ ๋๋ฉด ๋ ๊ฐ์ง ํ์์ด ๋ฐ์
1) ํจํท ์ ์ค
2) ๋๋ ์ด๊ฐ ๋ฐ์
- ๋นํ์ค์ ์ธ ์ํฉ 1
- ๋ ์ผ๋๊ฐ ์กด์ฌ, ๋ ๋ฆฌ์๋ฒ๊ฐ ์กด์ฌ
- ๋ ์ผ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ก
- ํ๋์ ๋ผ์ฐํฐ๊ฐ ์กด์ฌํ๋ฉฐ ๋ฌดํ๋์ ๋ฒํผ, ์ฆ ํ๋ฅผ ์์
- ์ฌ ์ ์ก์ ์๋ค
- ๋์ญํญ์ R ์ด๋ค.
- throughput : ๋จ์์๊ฐ๋น ์ผ๋ง๋งํผ์ ๋ฐ์ดํฐ๊ฐ ์ ๋ฌ๋๋๊ฐ, ์ฆ ์ฒ๋ฆฌ๋์ ํ์ธํ์.
- ์๋ฌด๋ฆฌ ๋น ๋ฅธ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ , ๋ฌดํ๋์ ํ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ํ๋๋ผ๋ ์ฒ๋ฆฌ๋์ ๊ฐ์ ์๋ ดํ๊ฒ ๋๋ฉด ๋ ์ด์์ ๊ฐ์ ๋น ๋ฅด๊ฒ ๋ณด๋ผ ์ ์๊ฒ ๋๋ค.
- ๋นํ์ค์ ์ธ ์ํฉ 2
- ํ๋์ ๋ผ์ฐํฐ๊ฐ ์กด์ฌํ๋ฉฐ, ๋ฌดํ๋์ ํ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- ์ผ๋๋ ์ ์ค๋ ํจํท์ ์ฌ์ ์กํ๋ค.
- ํน์ ๋์ญํญ๊น์ง ์ฌ๋ผ๊ฐ๋ค๋ฉด ์ดํ์ ๋คํธ์ํฌ ์ํฉ์ ๋์์ง์ง ์๋๋ค.
- ์ค์ ํธ๋์คํฌํธ ๋ ์ด์ด์์๋ ํจํท ์ ์ค์ด ๋ฐ์ํ๋๋ฐ, ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ฌ์ ์ก์ ์ค์ํ๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ธฐ์กด ๋ฐ์ดํฐ๋ณด๋ค ๋ ๋ง์ ์์ ๋ณด๋ธ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ก ์ธํด congestion ์ด ๋ฐ์ํ๊ณ ์ด ๊ฒฐ๊ณผ ํจํท ์ ์ค์ด ๋ฐ์ํ๊ณ ์ฒ๋ฆฌ๋(throughput)์ ๋ฎ์์ง๋ ๊ฒ์ด๋ค. ๊ฒฐ๊ตญ congestion ์ผ๋ก ์ธํด ์
์ํ์ด ๋ฐ๋ณต๋๊ณ ๋ณธ๋์ ๋ฐ์ดํฐ๋ ์ ๋๋ก ๋ณด๋ด์ง ๋ชปํ๋ค.
์ฌ๊ธฐ์ network congestion ์์ ํจํท์ด ์ ์ค๋์ง ์์์์๋ ํ์์์์ด ๋๊ณ ๋ ๋ค์ ํจํท์ ๋ณด๋ด๊ฒ ๋๋ฏ๋ก congesion ์ ๋์ฑ ์ ํ์ํจ๋ค. - Source ์์ Destination ๊น์ง ๋ฌผ์ด ํ๋ฅธ๋ค๊ณ ํด์ ์ ์คํธ๋ฆผ์ด๋ผ๊ณ ํํํ๋ค. ๋ฐ๋๋ ๋ค์ด ์คํธ๋ฆผ์ด๋ผ๊ณ ํํํ๋ค. ์ ์คํธ๋ฆผ์์ ์์์ด ์๋ชจ๋๋ฉด ์ดํ์๋
- ์ฌ๊ธฐ์ Congestion ๋๋ฌธ์ re-transmition ์ด ๋ฐ์
- re-transmition ์ผ๋ก ์ธํด ์๋ฏธ์๊ฒ ๋ณด๋ธ ๋ฐ์ดํฐ ๋ ๊ฐ์
- ์ ์คํธ๋ฆผ์์ ์ฌ์ฉ๋ ์์์ ๋ญ๋น, ๋ค์ Congestion ๋ฐ์
- ์
์ํ์ ๋ฐ๋ณต
- TCP ์ ๋์์ผ๋ก ์ธํ congestion
- ๋ฆฌ์๋ฒ ์ธก์ผ๋ก ACKs๊ฐ ์ ์จ ๊ฒฝ์ฐ, ๋ ๋ค์ ํจํท์ ๋ณด๋ธ๋ค. (์ ์ค์ ๋ฌด๋ฅผ ๋ชจ๋ฅด๋ ์ํ) - reliable ์ด์ง๋ง reliable ๋ก ์ธํด์ congestion ์ด ๋์ฑ ๋ ํฌ๊ฒ ๋ฐ์๋๋ ๊ฒฝ์ฐ
- ์ง์์ ์ธ ์ฌ์ ์ก์ผ๋ก ์ธํด์ reliable ์ ํน์ฑ์ ์ ๊ณตํ์ง๋ง TCP์ ๋์์ congestion ์ ์ํฉ์ ์์ง ๋ชปํ๋ค.
- ์์) ์ฐจ๋์ ๋๋ก๊ฐ ์ ์ฒด๋์ด ์์์๋ ๋ถ๊ตฌํ๊ณ ๋๋ก์ ์ฐจ๋ค์ด ๊ณ์ ์ ์ ๋์ ์ฐจ๋์ ์ฒด๋ฅผ ์ผ์ผํค๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
- ๋ฐ๋ผ์ ๋คํธ์ํฌ ์ํฉ์ ํ๋จํด์ ํจํท์ ์ ์กํ ์ง ๋ง์ง๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋ค.
- ๋คํธ์ํฌ์ ์ํฉ์ ์ด๋ป๊ฒ ํ๋จํ ๊ฒ์ธ๊ฐ? (TCP congestion control)
- ํ์ฌ ์ค์ง์ ์ผ๋ก ํ๋จ๋๋ ์ํฉ
- 1) end 2 end : ์์ชฝ์ TCP ์ฐ๊ฒฐ์ ๋งบ์ ํฌ์ธํธ๋ผ๋ฆฌ ๋คํธ์ํฌ ์ํฉ์ ์ง๋ ์ง์ํ๋ ํํ.
์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๋ฉด, ACKs๊ฐ ์๋ค๋ฉด ์ค๊ฐ์ ํจํท์ด ์ ์ค๋์ง ์๊ณ ์ ๋๋ก ์ ๋ฌ๋์์์ ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๊ณ , ACKs๊ฐ ์ค์ง ์์๋ค๋ฉด, ํ์์์์ด ๋์๋ค๋ฉด ๋คํธ์ํฌ ์ํฉ์ด ์ข์ง ์์์์ ํ์ธ์ด ๊ฐ๋ฅํ๋ค. - additive increase & multiple decrease
- ์๋์ฐ ์ฌ์ด์ฆ๋งํผ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๋ค.
- ํด๋น ์ธ๊ทธ๋จผํธ์ ๋ํ ACKs๊ฐ ์ ์์ ์ผ๋ก ์๋ค๋ฉด, ์ดํ์ ๋ณด๋ด๋ ์ธ๊ทธ๋จผํธ์ ์ ์ก๋์ +1 ์ฉ ๋๋ ค๊ฐ๋ค. : additive increase, ์ดํ์ ๊ณ์ ์ ์ก๋์ ๋๋ ค๋๊ฐ๋ค๊ฐ ACKs๊ฐ ์ค์ง ์์๋ค๋ฉด ์ธ๊ทธ๋จผํธ ์ ์ก๋์ ์ ๋ฐ์ผ๋ก ์ค์ธ๋ค. : multiple decrease. ์๋ํ๋ฉด ๋ค๋ฅธ ์๋ํฌ์ธํธ๋ค ๋ํ ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ ์ํฉ์ด ๋งค์ฐ ์
ํ๋์์์ ์์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ๋คํธ์ํฌ ์ํฉ์ด ๋์์ง๋ฉด ๋ค์ ๋๋ ค๋๊ฐ๋ค. : additive increase ์ด ๊ณผ์ ์ ๊ณ์ํด์ ๋ฐ๋ณตํ๋ค.
์ต๋ํ ๋ง์ ์์ ๋ณด๋ด์ฃผ๊ธฐ ์ํจ. ๋คํธ์ํฌ ์ํฉ์ด ํด๋น ์ธ๊ทธ๋จผํธ ์ ์ก๋์ ๋ฒํธ ์ ์์ ๋งํผ ์ ์ ํ ์์ผ๋ก ๋ณด๋ด์ค๋ค. ์ต์ ์ ์์ ์ฐพ์๊ฐ๋ ๊ณผ์ . - Bottle-Neck
- ๋คํธ์ํฌ๊ฐ ๋งํ์๋ค๋ฉด ์ ์ ํ ๋์ญํญ (Bandwidth) ๋ฅผ ์ฐพ๋ ๊ฒ์ด ์ค์ํ๋ค.
- congestion window size (=window size)
- ํด๋น ์๋์ฐ ์ฌ์ด์ฆ๋ ๋คํธ์ํฌ์ ์ํฉ์ ๋ฐ๋ผ์ ๋ค์ด๋ด๋ฏนํ๊ฒ ๋ณํ๋ค.
- TCP์ sending rate ๋ ์ด๋ป๊ฒ ๋๋๊ฐ?
- TCP๋ ๊ฐ์ง ์๋์ฐ ์ฌ์ด์ฆ ๋งํผ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ค.
- rate = CongWin / RTT
- Slow-Start
- ๊ฒธ์ํ๊ฒ ์์ํ๋ค.
- ํ๋์ ์ธ๊ทธ๋จผํธ๋ง ์ ์กํ๋ค.
- ACKs๊ฐ ์ ๋์ฐฉํ๋ฉด ์ดํ์ ํ๋์ฉ ์ฆ๊ฐ์ํค๋ฉด์ ACKs์ ๋์ฐฉ์ ๋ฌด๋ฅผ ํ์ธํ๋ค.
- ํ๋์ฉ ์ฆ๊ฐํ๋ค๋ ๊ฒ์ expotential ํ๊ฒ ์ฆ๊ฐํ๋ค๋ ๋ง.
- ํ์ง๋ง ๊ธฐํ๊ธ์์ ์ผ๋ก ๋๋ฆด ์ ์๊ธฐ ๋๋ฌธ์ ์๊ณ์น(threshold)๋ฅผ ์ค์ ํด๋๋๋ค.
- ์๊ณ์น๋งํผ ์ ์ก ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ๊ฐ๋ฉด ์ดํ์๋ ๋ฐ์ดํฐ ์ ์ก๋์ ํ๋์ฉ ์ฆ๊ฐ์ํจ๋ค.
- X์ถ์ ์๊ฐ์ด๊ณ , Y์ถ์ ์๊ฐ์ ๋ฐ๋ฅธ ์๋์ฐ ์ฌ์ด์ฆ๋ฅผ ๋ํ๋ธ๋ค.
- ์ ์ผ ์ฒ์ ์์ํ ๋์๋ ๊ฒธ์ํ๊ฒ ํ๋๋ฅผ ๋ณด๋ด๊ณ ์ดํ์ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐ์ํจ๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ณ์น๋ฅผ ๋ง๋๋ฉด ํ๋์ฉ ์ฆ๊ฐ์ํจ๋ค.
- ์์ ๊ทธ๋ฆผ์์ ์๋์ฐ ์ฌ์ด์ฆ๊ฐ 12๊ฐ ๋๋ ์์ ์์ ๋ฌธ์ ๊ฐ ํฐ์ง๊ณ , ํจํท ์ ์ค์ด๋ผ๊ณ ํ๋จ๋๋ค. ์๋ํ๋ฉด ACKs๊ฐ ์ค์ง ์์ ํ์์์์ด ๋์๋ค๊ฑฐ๋ 3-duplicate packet ์ด ๋ฐ์๋ ๊ฒฝ์ฐ
- timeout ์ผ๋ก ์ธํ ํจํท ์ ์ค
์ ์กํ ์ธ๊ทธ๋จผํธ๊ฐ ๋คํธ์ํฌ ์ํฉ์์ ๋ค ์ ์ค๋๊ณ ์ ๋๋ก ์ ๋ฌ๋์ง ๋ชปํ ๊ฒฝ์ฐ
์์) ๊ตฐ๋ถ๋๋ก ๋ฐ์ง๋ฉด ์ง๋๊ฐ ํ๋ (๋งค์ฐ ์ํํ ์ํ) - 3-duplicate ์ผ๋ก ์ธํ ํจํท ์ ์ค
๋คํธ์ํฌ๋ ๋์ํ์ง๋ง, ์ผ๋ถ ์ธ๊ทธ๋จผํธ๋ง ์ ์ก๋์ง ์์ ๊ฒฝ์ฐ
์์) ๊ตฐ๋ถ๋๋ก ๋ฐ์ง๋ฉด ์ง๋๊ฐ ๋ (์กฐ๊ธ ์ํํ ์ํ) - 3-duplicate ACKs ์ธ ๊ฒฝ์ฐ
- TCP์ ์ด๊ธฐ๋ฒ์ ์ TCP Tahoe ๊ทธ๋ฆผ์ฒ๋ผ ์ผ์ด๋ฌ๋ค.
- TCP์ ์ดํ๋ฒ์ ์ TCP Reno ๊ทธ๋ฆผ์ฒ๋ผ Threshold ์ ํ์ฌ congestion window size์ ์ ๋ฐ์ผ๋ก ์ค์ด๊ณ ํด๋น ์๋์ฐ ์ฌ์ด์ฆ๋ถํฐ linear ํ๊ฒ ์ฆ๊ฐ์ํจ๋ค.
- timeout ์ผ๋ก ์ธํ ํจํท ์ ์ค์ธ ๊ฒฝ์ฐ
- TCP์ ์ด๊ธฐ๋ฒ์ TCP Tahoe ๊ทธ๋ฆผ์ฒ๋ผ ์ผ์ด๋๋ค.
- ์ด๋ ๊ฒฝ์ฐ๋ slow start threshold ๋ congestion ์ด ์ผ์ด๋๋ ๊ทธ ์ํฉ์์ ์ ๋ฐ์ผ๋ก ์ค์ธ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ threshold ์ดํ ๊ฐ๋ถํฐ๋ ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์๋ ์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฆฌ๋์ดํ๊ฒ ์กฐ์ฌ์ค๋ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.
TCP Tahoe & TCP Reno ์ฐจ์ด์๊ธฐ.
- TCP throughput
๋ฆฌ์๋ฒ๊ฐ ๋จ์ผ์๊ฐ๋์ ๋ฐ๋ ์ ํน์ ์ผ๋๊ฐ ๋ณด๋ธ ๋ฐ์ดํฐ์ ์ ์ก๋ - TCP Fairness
A๋ผ๋ ์ ์ ๊ฐ TCP ๋ฅผ ์ฌ์ฉ, ํ์ผ์ ๋ณด๋ธ๋ค.
B๋ผ๋ ์ ์ ๊ฐ TCP ๋ฅผ ์ฌ์ฉ, ํ์ผ์ ๋ณด๋ธ๋ค.
TCP ์ ๋ํ ๋์์ ๋ ๋ฆฝ์ ์ผ๋ก ์ํํ๋ค. ์ด๋ฐ ์ํฉ์์ ๊ฐ์ ๋ผ์ฐํฐ๋ฅผ ์ด์ฉํ๋ค๋ฉด, ๊ฐ์ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ํด๋น bottle neck ์ capacity ๊ฐ R์ด๋ผ๊ณ ํ๋ค๋ฉด ๊ณตํํ๊ฒ R/2์ฉ ์์์ ์ฌ์ฉํ๋๊ฐ?
capacity R์ ๊ฐ๊ฐ ์ผ๋ง๋งํผ ๊ณตํํ๊ฒ ๋๋ ๊ฐ์ง ๊ฒ์ธ๊ฐ.
TCP ๋ ๊ฒฐ๊ณผ์ ์ผ๋ก 2/R์ฉ ์๋ ดํ๋๋ก ๋ง๋ ๋ค. ์ ๋๋์ด ๊ฐ์ง๋๊ฐ ? - X ์ถ๊ณผ Y ์ถ์ ํฉํด์ ์ต๋ R์ capacity ๋ฅผ ๊ฐ์ง ์ ๋ฐ์ ์๋ค.
- ํจํท ์ ์ค์ด ๋ฐ์๋๋ฉด ์ด์ congestion ์ ๋ฐ๋ผ์ ํจํท ์ ์ก๋์ 1/2๋ก ์ค์ด๊ณ ์ดํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ๋ค์ ํจํท ์ ์ค์ด ๋ฐ์๋๊ณ 1/2๋ก ์ค์ฌ์ง๋ฉฐ ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉฐ ๊ฒฐ๊ณผ์ ์ผ๋ก 2/R ๋ก ๊ฐ๊ฐ์ capacity ๋ฅผ ๊ฐ๋๋ก ์๋ ดํ๊ฒ ๋๋ค.
TCP ๋ Connection Level ์์ ๋งค์ฐ ๊ณตํํจ์ ์ด์ผ๊ธฐํ ์ ์๋ค. - UDP ๋ ๋ณด์ฅ ์์ด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค.
์ ๋ฆฌ )
- window size ์ ์ญํ
- Congestion Control ์ด๋
- Congestion Control ๋ก ์ธํด ๋ฐ์๋๋ ํ์ ๋ ๊ฐ์ง
- ํจํท ์ ์ค
- ํจํท ๋๋ ์ด
- Congestion Control ์ ์ ์ํ์ธ๊ฐ ์ ์ํ์ด๊ฐ
- ๋คํธ์ํฌ ์ํฉ์ ํ๋จํ๊ธฐ ์ํ ๋ฐฉ๋ฒ
- end-to-end ๋ฐฉ์
์์ชฝ์ TCP ์ฐ๊ฒฐ์ ๋งบ์ ์๋ํฌ์ธํธ๋ผ๋ฆฌ ๋คํธ์ํฌ ์ํฉ์ ์ง๋ ์ง์ํ๋ ํํ์ด๋ค. ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๊ณ ์ดํ์ ACKs๊ฐ ์๋ค๋ฉด ์ค๊ฐ์ ํจํท์ด ์ ์ค๋์ง ์๊ณ ์ ๋๋ก ์ ๋ฌ๋์์์ ์๋ฏธํ๋ค. ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ๊ณ ACKs ๊ฐ ์ค์ง ์์ผ๋ฉด ํ์์์์ด ๋ฐ๋๋๊ณ ๋คํธ์ํฌ ์ํฉ์ด ์ข์ง์์์ ํ๋จํ ์ ์๋ค. - additive increae & multiple decrease ๋ ๋ฌด์์ธ๊ฐ
- congestion window size (= window size) : ๋คํธ์ํฌ ์ํฉ์ ๋ฐ๋ผ์ ๋ค์ด๋ด๋ฏนํ๊ฒ ๋ณํ
- TCP sending rate ๋
- Slow-Start ๋ ๋ฌด์์ธ๊ฐ
- TCP Tahoe & TCP Reno ์ ๊ฐ๋ ๋ฐ ์ฐจ์ด์
- 3-Duplicate ACKs ๋ ๋ฌด์์ธ๊ฐ
- TCP Fairness ๋ ๋ฌด์์ธ๊ฐ
'๋คํธ์ํฌ > ๋คํธ์ํฌ ๊ฐ์ ๋ค์ ๊ฒ ์ ๋ฆฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
20180422 10 : Network Layer (์์ : 2020-06-28) (0) | 2018.04.22 |
---|---|
20180421 9 : (1) ~ (8) ๊น์ง ์ ์ฒด ์ค๋ช ํ๋ ๋๋ (0) | 2018.04.21 |
20180416 7 : TCP ์์ธ์ค๋ช (0) | 2018.04.16 |
20180415 6 : TCP, sender & receiver (0) | 2018.04.15 |
20180414 5 : Transport Layer, ๋ฉํฐ ํ๋ ์ฑ & ๋๋ฉํฐ ํ๋ ์ฑ (0) | 2018.04.14 |