TCP/IP๋ผ๊ณ ์ธ๊ธํ ์ด์ ?
ํ๋ฆ์ ์ด์ ํผ์ก์ ์ด๊ฐ TCP์ ์ฃผ์ ๊ธฐ๋ฅ์ด๊ธดํ์ง๋ง IPํ๋กํ ์ฝ์ ์์์ ๋์ํ๊ธฐ ๋๋ฌธ
์ฆ, IPํ๋กํ ์ฝ์ ๋ฐ์ดํฐ๊ทธ๋จ์ ๋ชฉ์ ์ง๊น์ง ์ ์กํ๋ ์ญํ ์ ๋ด๋นํ๊ธฐ ๋๋ฌธ์ TCP๋ ๊ทธ ์์ ํ๋ฆ์ ์ด์ ํผ์ก์ ์ด, ์ ๋ขฐ์ฑ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ TCP/IP๋ผ๊ณ ์ธ๊ธํ ๊ฒ์ ๋๋ค.
ํ๋ฆ ์ ์ด(Flow Control)๋?
- EndSystem ๋ EndSystem
- ์ก์ ์ธก๊ณผ ์์ ์ธก์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋ ์ฐจ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ธฐ๋ฒ
- ์์ ์ธก์ด ์ก์ ์ธก๋ณด๋ค ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋๊ฐ ๋น ๋ฅด๋ฉด ๋ฌธ์ ์์ง๋ง, ์ก์ ์ธก์ ์๋๊ฐ ๋น ๋ฅผ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์๊น๋๋ค.
- Flow Control์ receiver๊ฐ packet์ ์ง๋์น๊ฒ ๋ง์ด ๋ฐ์ง์๋๋ก ์กฐ์ ํ๋ ๊ฒ
- ์์ ์ธก์์ ์ ํ๋ ์ ์ฅ ์ฉ๋์ ์ด๊ณผํ ์ดํ์ ๋์ฐฉํ๋ ๋ฐ์ดํฐ๋ ์์ค ๋ ์ ์์ผ๋ฉฐ, ๋ง์ฝ ์์ค๋๋ค๋ฉด ๋ถํ์ํ๊ฒ ์๋ต๊ณผ ๋ฐ์ดํฐ ์ ์ก์ด ์ก/์์ ์ธก ๊ฐ์ ๋น๋ฒ์ด ๋ฐ์ํ๋ค.
- ๊ธฐ๋ณธ ๊ฐ๋ ์ receiver๊ฐ sender์๊ฒ ํ์ฌ ์์ ์ ์ํ๋ฅผ feedback ํฉ๋๋ค.
์ด๋ ๊ฒ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ์ ์ ์ค์ด๊ธฐ ์ํด ์ก์ ์ธก์ ๋ฐ์ดํฐ ์ ์ก๋์ ์์ ์ธก์ ๋ฐ๋ผ ์กฐ์ ํด์ผ ํฉ๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
Stop and Wait
: ๋งค๋ฒ ์ ์กํ ํจํท์ ๋ํด ํ์ธ ์๋ต์ ๋ฐ์์ผ๋ง ๊ทธ ๋ค์ ํจํท์ ์ ์กํ๋ ๋ฐฉ๋ฒ
Sliding Window (Go Back N ARQ)
- ์์ ์ธก์์ ์ค์ ํ ์๋์ฐ ํฌ๊ธฐ๋งํผ ์ก์ ์ธก์์ ํ์ธ์๋ต์์ด ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ ์ ์๊ฒ ํ์ฌ ๋ฐ์ดํฐ ํ๋ฆ์ ๋์ ์ผ๋ก ์กฐ์ ํ๋ ์ ์ด๊ธฐ๋ฒ
- ๋ชฉ์ ์ ์ ์ก์ ๋์์ง๋ง, acked๋ฅผ ๋ฐ์ง ๋ชปํ byte์ ์ซ์๋ฅผ ํ์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ
- LastByteSent - LastByteAcked ≤ ReceivercWindowAdvertised
(๋ง์ง๋ง์ ๋ณด๋ด์ง ๋ฐ์ดํธ - ๋ง์ง๋ง์ ํ์ธ๋ ๋ฐ์ดํธ ≤ ๋จ์์๋ ๊ณต๊ฐ) - ๋์ ๋ฐฉ์ : ๋จผ์ ์๋์ฐ์ ํฌํจ๋๋ ๋ชจ๋ ํจํท์ ์ ์กํ๊ณ , ๊ทธ ํจํท๋ค์ ์ ๋ฌ์ด ํ์ธ๋๋๋๋ก ์ด ์๋์ฐ๋ฅผ ์์ผ๋ก ์ฎ๊น์ผ๋ก์จ ๊ทธ ๋ค์ ํจํท๋ค์ ์ ์ก
- Window : TCP/IP๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ํธ์คํธ๋ค์ ์ก์ ํ๊ธฐ ์ํ ๊ฒ๊ณผ ์์ ํ๊ธฐ ์ํ 2๊ฐ์ window๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํธ์คํธ๋ค์ ์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ ์
3 Way Handshaking
์ ํตํด ์์ ํธ์คํธ์ receive window size์ ์์ ์ send window size๋ฅผ ๋ง์ถ๊ฒ ๋ฉ๋๋ค.
์ธ๋ถ ๊ตฌ์กฐ
1. ์ก์ ๋ฒํผ
- 200์ด์ (200 ์ค๋ฅธ์ชฝ)์ ๋ฐ์ดํธ๋ ์ด๋ฏธ ์ ์ก๋์๊ณ , ํ์ธ์๋ต์ ๋ฐ์ ์ํ
- 200~202๋ฐ์ดํธ๋ ์ ์ก๋์์ผ๋, ACK(ํ์ธ์๋ต)์ ๋ฐ์ง ๋ชปํ ์ํ
- 203~211 ๋ฐ์ดํธ๋ ์์ง ์ ์ก์ด ์๋ ์ํ
2. ์์ ์๋์ฐ
- ์์ ํ๋ก์ธ์ค๊ฐ ์ฒ๋ฆฌํ ๋ฐ์ดํธ๋ 194๋ฐ์ดํธ ๋ถํฐ์ ๋๋ค.
- ์์ ์๋์ฐ๋ 200์ ์์ ์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
3. ์ก์ ์๋์ฐ
- ์์ ์๋์ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ํฌ๊ธฐ๋ก ์ก์ ์๋์ฐ๋ฅผ ์ง์ ํ๊ฒ ๋๋ฉด ํ๋ฆ์ ์ด๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
4. ์ก์ ์๋์ฐ ์ด๋
- Before ์ํ์์ 203~204๋ฅผ ์ ์กํ๋ฉด ์์ ์ธก์์ ํ์ธ์๋ต์ผ๋ก 203์ ๋ณด๋ด์ค๋ค.
- ์ก์ ์ธก์ ์ด๋ฅผ ํ์ธ ์๋ต์ ๋ฐ์ After ์ํ์ ๊ฐ์ด ์์ ์๋์ฐ๋ฅผ 203~209๋ฒ์๋ ์ด๋ํ๋ค.
- 205~209๊ฐ ์ ์กํ ์ํ๊ฐ ๋๋ค.
ํผ์ก์ ์ด๋?
ํผ์ก์ ์ด๋ ๋คํธ์ํฌ๊ฐ ๊ณผ๋ถํ๋์ง ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ์๋๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์
๋๋ค. ๋คํธ์ํฌ์ ๊ณผ๋ถํ๋ ๋ผ์ฐํฐ์ ์ค์์น ๋ฑ ์ฌ๋ฌ ๊ณณ์์ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ์ ์ก์๋๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ์ฌ ๋คํธ์ํฌ ํผ์ก์ ์๋ฐฉํ๊ณ ํด๊ฒฐํ๋๋ฐ ์ฌ์ฉํ๋ AIMD
- Addtive Increase, Multiplicative Decrease
(์ ํ ์ฆ๊ฐ, ๊ธฐํ๊ธ์์ ๊ฐ์)์ ์ฝ์
- Addtive Increase, Multiplicative Decrease
- TCP๋ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฒ์ฒํ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ค๊ฐ ์๋๋ฅผ ์ฌ๋ฆฌ๋ Slow Start
- ํผ์กํด์ง๊ธฐ ์ ์ ์๋๋ฅผ ์ฒ์ฒํ ์ฆ๊ฐ์ํค๋ Congestion Avoidance
- ๋ฐ์ดํฐ ์์ค์ ๋น ๋ฅด๊ฒ ๊ฐ์งํ๊ณ ์ฌ์ ์กํ๋ Fast Retransmit
- ์์ค ํ ์ ์ก ์๋๋ฅผ ์ค์๋ค๊ฐ ํ๋ณตํ๋ Fast Recovery
1. AIMD
- ํจํท์ ํ๋์ฉ ๋ณด๋ด๊ณ ๋ฌธ์ ์์ด ๋์ฐฉํ๋ฉด ์๋์ฐ ํฌ๊ธฐ(๋จ์์๊ฐ ๋ด์ ๋ณด๋ด๋ ํจํท์ ์)๋ฅผ 1์ฉ ์ฆ๊ฐ์์ผ๊ฐ๋ฉฐ ์ ์กํ๋ ๋ฐฉ๋ฒ
- ๋ง์ฝ ํจํท์ ์ก์ ์คํจํ๊ฑฐ๋ ์ผ์ ์๊ฐ์ด ๋์ผ๋ฉด ํจํท์ ๋ณด๋ด๋ ์๋๋ฅผ ์ ๋ฐ์ผ๋ก ์ค์ด๊ฒ๋๋ค.
- ๋งค์ฐ ๊ณตํํ ๋ฐฉ์์ผ๋ก, ์ฌ๋ฌ ํธ์คํธ๊ฐ ํ ๋คํธ์ํฌ๋ฅผ ๊ณต์ ํ๊ณ ์์ผ๋ฉด ๋์ค์ ์ง์ ํ๋ ์ชฝ์ด ๋ถ๋ฆฌํ์ง๋ง, ์๊ฐ์ด ์ง๋ ์๋ก ํํ์ํ๋ก ์๋ ดํ๋ ํน์ง์ด ์์ต๋๋ค.
- ๋ฌธ์ ์ ์ผ๋ก๋ ์ด๊ธฐ ๋คํธ์ํฌ์ ๋์ ๋์ญํญ์ ์ฌ์ฉ ๋ชปํ์ฌ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ณ , ํผ์กํด์ง๋ ์ํฉ์ ๋ฏธ๋ฆฌ ๊ฐ์งํ์ง ๋ชปํด ๋คํธ์ํฌ ํผ์ก์ ๊ฒฝํํ ํ ๋์ญํญ์ ์กฐ์ ํ๋ ๋ฐฉ์์
๋๋ค.
2. Slow Start
- AIMD ๋ฐฉ์์ด ๋คํธ์ํฌ์ ์์ฉ๋ ์ฃผ๋ณ์์๋ ํจ์จ์ ์ผ๋ก ์๋ํ์ง๋ง, ์ฒ์์ ์ ์ก ์๋๋ฅผ ์ฌ๋ฆฌ๋๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๋จ์ ์ด ์กด์ฌํฉ๋๋ค.
- Slow Start ๋ฐฉ์์ AIMD์ ๋ง์ฐฌ๊ฐ์ง๋ก ํจํท์ ํ๋์ฉ ๋ณด๋ด๋ฉด์ ์์ํ๊ณ , ํจํท์ด ๋ฌธ์ ์์ด ๋์ฐฉํ๋ฉด ๊ฐ๊ฐ์ ACK ํจํท๋ง๋ค Window Size๋ฅผ 1์ฉ ๋๋ ค์ค๋๋ค. ์ฆ. ํ ์ฃผ๊ธฐ๊ฐ ์ง๋๋ฉด Window Size๊ฐ 2๋ฐฐ๋ก ๋ฉ๋๋ค.
- ์ ์ก์๋๋ AIMD์ ๋ฐํด ์ง์ ํจ์ ๊ผด๋ก ์ฆ๊ฐํฉ๋๋ค. ๋์ ์ ํผ์ก ํ์์ด ๋ฐ์ํ๋ฉด Window Size๋ฅผ 1๋ก ๋จ์ด๋จ๋ฆฌ๊ฒ ๋ฉ๋๋ค.
- ์ฒ์์๋ ๋คํธ์ํฌ์ ์์ฉ๋์ ์์ํ ์ ์๋ ์ ๋ณด๊ฐ ์์ง๋ง, ํ ๋ฒ ํผ์ก ํ์์ด ๋ฐ์ํ๊ณ ๋๋ฉด ๋คํธ์ํฌ์ ์์ฉ๋์ ์ด๋ ์ ๋ ์์ํ ์ ์์ต๋๋ค.
- ๊ทธ๋ฌ๋ฏ๋ก ํผ์ก ํ์์ด ๋ฐ์ํ์๋ Window Size์ ์ ๋ฐ๊น์ง๋ ์ด์ ์ฒ๋ผ ์ง์ ํจ์ ๊ผด๋ก ์ฐฝ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ ์ํค๊ณ ๊ทธ ์ดํ๋ถํฐ๋ ์๋งํ๊ฒ 1์ฉ ์ฆ๊ฐ์ํต๋๋ค.
3. Fast Retransmit
- ๋น ๋ฅธ ์ฌ์ ์ก์ TCP์ ํผ์ก ์กฐ์ ์ ์ถ๊ฐ๋ ์ ์ฑ ์ ๋๋ค.
- ํจํท์ ๋ฐ๋ ์ชฝ์์ ๋จผ์ ๋์ฐฉํด์ผํ ํจํท์ด ๋์ฐฉํ์ง ์๊ณ ๋ค์ ํจํท์ด ๋์ฐฉํ ๊ฒฝ์ฐ์๋ ACK ํจํท์ ๋ณด๋ด๊ฒ ๋ฉ๋๋ค.
- ๋จ, ์์๋๋ก ์ ๋์ฐฉํ ๋ง์ง๋ง ํจํท์ ๋ค์ ํจํท์ ์๋ฒ์ ACK ํจํท์ ์ค์ด์ ๋ณด๋ด๊ฒ ๋๋ฏ๋ก, ์ค๊ฐ์ ํ๋๊ฐ ์์ค๋๋ฉด ์ก์ ์ธก์์๋ ์๋ฒ์ด ์ค๋ณต๋ ACKํจํท์ ๋ฐ๊ฒ ๋ฉ๋๋ค. ์ด๊ฒ์ ๊ฐ์งํ๋ ์์ฐ ๋ฌธ์ ๊ฐ ๋๋ ์๋ฒ์ ํจํท์ ์ฌ์ ์ก ํด์ค ์ ์์ต๋๋ค.
- ์ค๋ณต๋ ์๋ฒ์ ํจํท์ 3๊ฐ ๋ฐ์ผ๋ฉด ์ฌ์ ์กํ๊ฒ ๋ฉ๋๋ค. ์ฝ๊ฐ ํผ์กํ ์ํฉ์ด ์ผ์ด๋ ๊ฒ์ด๋ฏ๋ก ํผ์ก์ ๊ฐ์งํ๊ณ Window Size๋ฅผ ์ค์ด๊ฒ ๋ฉ๋๋ค.
4. Fast Recovery
- ํผ์กํ ์ํ๊ฐ ๋๋ฉด Window Size๋ฅผ 1๋ก ์ค์ด์ง ์๊ณ ๋ฐ์ผ๋ก ์ค์ด๊ณ ์ ํ์ฆ๊ฐ์ํค๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด ์ ์ฑ ๊น์ง ์ ์ฉํ๋ฉด ํผ์ก ์ํฉ์ ํ ๋ฒ ๊ฒช๊ณ ๋์๋ถํฐ๋ ์์ํ AIMD๋ฐฉ์์ผ๋ก ๋์ํ๊ฒ ๋ฉ๋๋ค.
์ถ์ฒ : gyoogle.dev
'๐์คํฐ๋ > ๋คํธ์ํฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TCP 3way & 4way (0) | 2024.06.03 |
---|---|
TCP, UDP (0) | 2024.05.29 |
OSI 7 ๊ณ์ธต (0) | 2024.05.29 |