ํธ๋์คํฌํธ ๊ณ์ธต
- ๊ฐ๊ธฐ ๋ค๋ฅธ ํธ์คํธ์์ ๋์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค ๊ฐ์ ๋ ผ๋ฆฌ์ ํต์ ์ ๊ณต (ํธ๋์คํฌํธ ๊ณ์ธต์ ํ๋ก์ธ์ค ๊ฐ์ ํต์ ์ด๊ณ , ๋คํธ์ํฌ ๊ณ์ธต์ ํธ์คํธ ๊ฐ์ ํต์ ์ด๋ค.)
- ๋ค์คํ์ ์ญ๋ค์คํ
- ์ญ๋ค์คํ : ํธ๋์คํฌํธ ๊ณ์ธต ์ธ๊ทธ๋จผํธ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅธ ์์ผ์ผ๋ก ์ ๋ฌ, ํธ๋์คํฌํธ ํค๋ ์์ฑ
- ํธ์คํธ๋ IP ๋ฐ์ดํฐ๊ทธ๋จ์ ์์ ํ๊ณ , IP ์ฃผ์์ ํฌํธ ๋๋ฒ๋ฅผ ์ฌ์ฉํด ์ธ๊ทธ๋จผํธ๋ฅผ ์ฌ๋ฐ๋ฅธ ์์ผ์ผ๋ก ์ ๋ฌํ๋ค.
- ๋น์ฐ๊ฒฐ ์ญ๋ค์คํ์ ์ฐ๊ฒฐ์งํฅ์ ์ญ๋ค์คํ๊ฐ ์๋ค.
- ๋ค์คํ : ์ถ๋ฐ์ง ํธ์คํธ์์ ์์ผ์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ผ๊ณ , ์ด์ ๋ํ ์ธ๊ทธ๋จผํธ๋ฅผ ์์ฑํ๊ธฐ ์ํด ๊ฐ ๋ฐ์ดํฐ์ ํค๋ ์ ๋ณด๋ก ์บก์ํํ๊ณ , ๊ทธ ์ธ๊ทธ๋จผํธ๋ค์ ๋คํธ์ํฌ ๊ณ์ธต์ผ๋ก ์ ๋ฌํ๋ ์์
- ๋ค์คํ์ 2๊ฐ์ง ์๊ฑด
1. ์์ผ์ ์ ์ผํ ์๋ณ์๋ฅผ ๊ฐ๋๋ค
2. ๊ฐ ์ธ๊ทธ๋จผํธ๋ ์ธ๊ทธ๋จผํธ๊ฐ ์ ๋ฌ๋ ์ ์ ํ ์์ผ์ ๊ฐ๋ฆฌํค๋ ํน๋ณํ ํ๋๋ฅผ ๊ฐ๋๋ค. (์ถ๋ฐ์ง ํฌํธ๋ฒํธ ํ๋) ๋ฐ ๋ชฉ์ ์ง ํฌํธ ๋ฒํธ ํ๋
- ๋ค์คํ์ 2๊ฐ์ง ์๊ฑด
- ์ธ๊ทธ๋จผํธ์ ๋ฐ์ดํฐ๊ทธ๋จ ํค๋ ํ๋ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค.
- ๋ค์คํ์ ์ญ๋ค์คํ๋ ๋ชจ๋ ๊ณ์ธต์์ ์ผ์ด๋๋ค.
- ์ญ๋ค์คํ : ํธ๋์คํฌํธ ๊ณ์ธต ์ธ๊ทธ๋จผํธ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅธ ์์ผ์ผ๋ก ์ ๋ฌ, ํธ๋์คํฌํธ ํค๋ ์์ฑ
UDP
- ์ญ๋ค์คํ๋ ๋ชฉ์ ์ง์ ํฌํธ๋ฒํธ๋ง ์ฌ์ฉํ๋ค.
- ํธ๋์์ดํน์ด ์๋ค. -> RTT๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
- UDP ์ฒดํฌ์ฌ : ์ค๋ฅ ๊ฒ์ถ์ ์ํ ๊ฒ์ด๋ค. ์ธ๊ทธ๋จผํธ๊ฐ ์ถ๋ฐ์ง๋ก๋ถํฐ ๋ชฉ์ ์ง๋ก ์ด๋ํ์ ๋, UDP ์ธ๊ทธ๋จผํธ ์์ ๋นํธ์ ๋ํ ๋ณ๊ฒฝ์ฌํญ์ด ์๋์ง ๊ฒ์ฌํ๋ ๊ฒ์ด๋ค.
TCP
- ์ญ๋ค์คํ๋ 4๊ฐ์ง๋ฅผ ์ฌ์ฉํ๋ค.
- ์ธ๊ทธ๋จผํธ ์์ ์ถ๋ฐ์ง ํฌํธ ๋ฒํธ
- ์ถ๋ฐ์ง ํธ์คํธ์ IP ์ฃผ์
- ์ธ๊ทธ๋จผํธ ์์ ๋ชฉ์ ์ง ํฌํธ ๋ฒํธ
- ๋ชฉ์ ์ง IP ์ฃผ์
- point-to-point
- ๋จ์ผ ์ก์ ์์ ๋จ์ผ ์์ ์
- in-order byte stream
- ์์๋๋ก ๋ฐ์ดํธ๊ฐ ๋์ฐฉํ๋ค.
- full duplex data
- ์ธ๊ทธ๋จผํธ๋ก ๋ชจ์ ๋ด์ ์ ์๋ ์ต๋ ๋ฐ์ดํฐ์ ์์ ์ต๋ ์ธ๊ทธ๋จผํธ ํฌ๊ธฐ(maximum segment size, MSS)๋ก ์ ํ๋๋ค.
- ์๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ก์ฐ
- timeout
- timeout interval์ EstimatedRTT + "safety margin"์ด๋ค.
- TimeoutInterval = EstimatedRTT + 4*DevRTT
- fast retransmit
- 3๊ฐ์ ์ค๋ณต ACK๋ฅผ ์์ ํ ๋, TCP๋ ์ธ๊ทธ๋จผํธ์ ํ์ด๋จธ๊ฐ ๋ง๋ฃ๋๊ธฐ ์ด์ ์ ์์ค ์ธ๊ทธ๋จผํธ๋ฅผ ์ฌ์ ์กํ๋ค. -> ํ์์์์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ๋ณด๋ค ๋น ๋ฆ.
- flow control
- ์์ ์๊ฐ ์ก์ ์์๊ฒ ๋ฒํผ์ ์ผ๋ง๋งํผ์ ์๋ฆฌ๊ฐ ๋จ์๋์ง, ์์ ์๋(receive window)๋ฅผ ์๋ ค์ฃผ๋ฉด ์ก์ ์๋ ๊ทธ ์ ๋ณด์ ๋ง๊ฒ ์๋ ์ฌ์ด์ฆ๋ฅผ ์กฐ์ ํด์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ธ๋ค. ์ด๋ ๊ฒ ํจ์ผ๋ก์จ ์ก์ ์๋ ์์ ์์ ๋ฒํผ๋ฅผ ์ค๋ฒํ๋ก์ํค๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์๋ค. (์๋๋ฅผ ์ผ์น์ํด)
- 3-way-handshake
- 1๋จ๊ณ : ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต ๋ฐ์ดํฐ๋ฅผ ํฌํจํ์ง ์๋ ํน๋ณํ ์ธ๊ทธ๋จผํธ, SYN์ ๋ณด๋ธ๋ค. ์ด ์ธ๊ทธ๋จผํธ๋ IP ๋ฐ์ดํฐ๊ทธ๋จ ์์์ ์บก์ํ๋๊ณ ์๋ฒ๋ก ์ก์ ๋๋ค.
- SYN=1, seq=client_isn
- 2๋จ๊ณ : ์๋ฒ๋ ํด๋ผ์ด์ธํธ TCP๋ก ์ฐ๊ฒฐ ์น์ธ ์ธ๊ทธ๋จผํธ๋ฅผ ์ก์ ํ๋ค. ์ด๋ ์ธ๊ทธ๋จผํธ๋ SYNACK๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
- SYN1, seq=server_isn, ack=client_isn + 1
- 3๋จ๊ณ : ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ ์ฐ๊ฒฐ ์น์ธ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ์๋ค๋ ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ด๊ณ , ์ด๋ ์ฐ๊ฒฐ์ด ์ค์ ๋์๊ธฐ ๋๋ฌธ์ SYN ๋นํธ๋ 0์ด ๋๊ณ , ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ธ๊ทธ๋จผํธ ํ์ด๋ก๋์ ๋ด์ ๋ณด๋ผ ์ ์๋ค.
- SYN=0, seq=client_isn + 1, ack=server_isn+1
- 1๋จ๊ณ : ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต ๋ฐ์ดํฐ๋ฅผ ํฌํจํ์ง ์๋ ํน๋ณํ ์ธ๊ทธ๋จผํธ, SYN์ ๋ณด๋ธ๋ค. ์ด ์ธ๊ทธ๋จผํธ๋ IP ๋ฐ์ดํฐ๊ทธ๋จ ์์์ ์บก์ํ๋๊ณ ์๋ฒ๋ก ์ก์ ๋๋ค.
- congestion control algorithm
- 1. ์ฌ๋ก ์คํ๋, 2. ํผ์ก ํํผ, 3. ๋น ๋ฅธ ํ๋ณต
- AIMD(additive-increase, multiplicative decrease) : 3๊ฐ์ ์ค๋ณต ACK ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๊น์ง ์ ํ์ผ๋ก ํผ์ก ์๋ ํฌ๊ธฐ(์ ์ก๋ฅ )๋ฅผ ์ฆ๊ฐ์ํค๋ค๊ฐ ํผ์ก ์๋ ํฌ๊ธฐ๋ฅผ ๋ฐ์ผ๋ก ์ค์ธ๋ค. ๊ทธ๋ฌ๊ณ ๋์ ๋ค์ ์ถ๊ฐ์ ์ธ ๊ฐ์ฉ ๋์ญํญ์ด ์๋์ง ํ์ํ๊ธฐ ์ํด ์ ํ์ผ๋ก ์ฆ๊ฐ์ํจ๋ค.
๋๊ธ