TCP ํต์ ๋จ๊ณ
- TCP๋ ํต์ (๋ฐ์ดํฐ ์ก์์ )ํ๊ธฐ ์ ์ ์ฐ๊ฒฐ์ ์๋ฆฝํ๊ณ ํต์ ์ด ๋๋๋ฉด ์ฐ๊ฒฐ์ ์ข ๋ฃ
โ MSS(Maximum Segment Size)
- MSS: TCP๋ก ์ ์กํ ์ ์๋ ์ต๋ ํ์ด๋ก๋ ํฌ๊ธฐ
- TCP ํค๋ ํฌ๊ธฐ๋ ์ ์ธ
TCP ์ธ๊ทธ๋จผํธ ๊ตฌ์กฐ
โ ์ก์ ์ง ํฌํธ, ์์ ์ง ํฌํธ
- ์ก์์ ํ๋ ํฌํธ ๋ฒํธ
โ ์์ ๋ฒํธ(sequence number)
- ์์ ๋ฒํธ๊ฐ ๋ช ์๋๋ ํ๋
- ์์ ๋ฒํธ: ์ก์์ ๋๋ ์ธ๊ทธ๋จผํธ ๋ฐ์ดํฐ์ ์ฒซ ๋ฐ์ดํธ์ ๋ถ์ฌ๋๋ ๋ฒํธ
- ์ธ๊ทธ๋จผํธ์ ์ฌ๋ฐ๋ฅธ ์ก์์ ์์๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํ ๋ฒํธ
โ ์์ ๋ฒํธ = ์ด๊ธฐ ์์ ๋ฒํธ + ์ก์ ํ ๋ฐ์ดํธ ์
- (์์) ์ด๊ธฐ ์์ ๋ฒํธ(ISN, Initial Sequence Number)๋ ๋ฌด์์ ๊ฐ
- ์ธ๊ทธ๋จผํธ B์ ์์ ๋ฒํธ๋ ์ด๊ธฐ ์์ ๋ฒํธ์ธ 100์์ 500๋ฐ์ดํธ ๋จ์ด์ง ์ ์ด๋ฏ๋ก 600
- ์ธ๊ทธ๋จผํธ C์ ์์ ๋ฒํธ๋ ์ด๊ธฐ ์์ ๋ฒํธ๋ก๋ถํฐ 1000๋ฐ์ดํธ ๋จ์ด์ง 1100
- ์ธ๊ทธ๋จผํธ D์ ์์ ๋ฒํธ๋ ์ด๊ธฐ ์์ ๋ฒํธ๋ก๋ถํฐ 1500๋ฐ์ดํธ ๋จ์ด์ง 1600
โ ํ์ธ ์๋ต ๋ฒํธ(acknowledgment number)
- ์๋ ํธ์คํธ๊ฐ ๋ณด๋ธ ์ธ๊ทธ๋จผํธ์ ๋ํ ์๋ต
- ๋ค์์ผ๋ก ์์ ํ๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ์์ ๋ฒํธ๊ฐ ๋ช ์
์์ ์๊ฐ ๋ค์์ผ๋ก ๋ฐ๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ์์ ๋ฒํธ (์ผ๋ฐ์ ์ผ๋ก '์์ ํ ์์ ๋ฒํธ + 1')
ํ์ธ ์๋ต ๋ฒํธ ๊ฐ์ ๋ณด๋ด๊ธฐ ์ํด์๋ ์ ์ด ๋นํธ์์ ์น์ธ์ ๋ํ๋ด๋ ๋นํธ์ธ ACK ํ๋๊ทธ๋ฅผ 1๋ก ์ค์
โ ์ ์ด ๋นํธ(control bits) / ํ๋๊ทธ ๋นํธ(flag bits)
- ํ์ฌ ์ธ๊ทธ๋จผํธ์ ๋ํ ๋ถ๊ฐ ์ ๋ณด
- ๊ธฐ๋ณธ์ ์ผ๋ก 8๋นํธ๋ก ๊ตฌ์ฑ
- ACK: ์ธ๊ทธ๋จผํธ์ ์น์ธ์ ๋ํ๋ด๊ธฐ ์ํ ๋นํธ
- SYN: ์ฐ๊ฒฐ์ ์๋ฆฝํ๊ธฐ ์ํ ๋นํธ
- FIN: ์ฐ๊ฒฐ์ ์ข ๋ฃํ๊ธฐ ์ํ ๋นํธ
โ ์๋์ฐ(window)
- ์์ ์๋์ฐ(ํ ๋ฒ์ ์์ ํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์)์ ํฌ๊ธฐ๊ฐ ๋ช ์
TCP ์ฐ๊ฒฐ ์๋ฆฝ๊ณผ ์ข ๋ฃ
โ ์ฐ๊ฒฐ ์๋ฆฝ: ์ฐ๋ฆฌ ์จ์ด ํธ๋์ ฐ์ดํฌ
- ์ฐ๋ฆฌ ์จ์ด ํธ๋์
ฐ์ดํฌ(three-way handshake): ์ธ ๊ฐ์ ๋จ๊ณ๋ก ์ด๋ฃจ์ด์ง TCP์ ์ฐ๊ฒฐ ์๋ฆฝ ๊ณผ์
e.g.) ํธ์คํธ A์ B๊ฐ ์ฐ๋ฆฌ ์จ์ด ํธ๋์ ฐ์ดํฌ๋ฅผ ํ๋ค๊ณ ๊ฐ์
- ์กํฐ๋ธ ์คํ(active open): ์ฐ๊ฒฐ ์์ ํธ์คํธ์ ์ฐ๊ฒฐ ์๋ฆฝ ๊ณผ์
- ํจ์๋ธ ์คํ(passive open): ์ฐ๊ฒฐ ์๋ฝ ํธ์คํธ์ ์ฐ๊ฒฐ ์๋ฆฝ ๊ณผ์
โ ์ฐ๊ฒฐ ์ข ๋ฃ
- ์ก์์ ํธ์คํธ๊ฐ ๊ฐ์ ํ ๋ฒ์ฉ FIN๊ณผ ACK๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ TCP ์ฐ๊ฒฐ ์ข ๋ฃ
- ๋ค ๋จ๊ณ๋ก ์ฐ๊ฒฐ์ ์ข ๋ฃํ๋ค๋ ์ ์์ ํฌ ์จ์ด ํธ๋์ ฐ์ดํฌ(four-way handshake)๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํจ
- ์กํฐ๋ธ ํด๋ก์ฆ(active close): ์ข ๋ฃ ์์ ํธ์คํธ์ ์ข ๋ฃ ๊ณผ์
- ํจ์๋ธ ํด๋ก์ฆ(passive close): ์ข ๋ฃ ์๋ฝ ํธ์คํธ์ ์ข ๋ฃ ๊ณผ์
TCP ์ํ
- ์ํ(state): ํ์ฌ ์ด๋ค ํต์ ๊ณผ์ ์ ์๋์ง๋ฅผ ๋ํ๋ด๋ ์ ๋ณด
- ์ํ๋ฅผ ์ ์งํ๊ณ ํ์ฉํ๋ TCP: ์คํ ์ดํธํ(stateful) ํ๋กํ ์ฝ
TCP ์ํ์ ์ ํ
โ ์ฐ๊ฒฐ์ด ์๋ฆฝ๋์ง ์์ ์ํ
โก ์ฐ๊ฒฐ ์๋ฆฝ ๊ณผ์ ์์ ์ฃผ๋ก ๋ณผ ์ ์๋ ์ํ
โข ์ฐ๊ฒฐ ์ข ๋ฃ ๊ณผ์ ์์ ์ฃผ๋ก ๋ณผ ์ ์๋ ์ํ
โ ์ฐ๊ฒฐ์ด ์๋ฆฝ๋์ง ์์ ์ํ
- CLOSED: ์๋ฌด๋ฐ ์ฐ๊ฒฐ์ด ์๋ ์ํ
- LISTEN: ์ผ์ข
์ ์ฐ๊ฒฐ ๋๊ธฐ ์ํ (SYN ์ธ๊ทธ๋จผํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ)
- ์๋ฒ๋ก์ ๋์ํ๋ ํจ์๋ธ ์คํ ํธ์คํธ๋ ์ผ๋ฐ์ ์ผ๋ก LISTEN ์ํ ์ ์ง
- LISTEN ํธ์คํธ์๊ฒ SYN ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ด๋ฉด ์ฐ๋ฆฌ ์จ์ด ํธ๋์ ฐ์ดํฌ ์์
โ ์ฐ๊ฒฐ ์๋ฆฝ ์ํ
- SYN-SENT
- ์ฐ๊ฒฐ ์์ฒญ์ ๋ณด๋ธ ๋ค ๋๊ธฐํ๋ ์ํ
- ์กํฐ๋ธ ์คํ ํธ์คํธ๊ฐ SYN ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ธ ๋ค ๊ทธ์ ๋ํ ์๋ต์ธ SYN + ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ
- SYN-RECEIVED
- ํจ์๋ธ ์คํ ํธ์คํธ๊ฐ SYN + ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ธ ๋ค ๊ทธ์ ๋ํ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ
- ESTABLISHED
- ์ฐ๊ฒฐ์ด ํ๋ฆฝ๋์์์ ๋ํ๋ด๋ ์ํ
โ ์ฐ๊ฒฐ ์ข ๋ฃ ์ํ
- FIN-WAIT-1
- ์ผ๋ฐ์ ์ธ TCP ์ฐ๊ฒฐ ์ข ๋ฃ ๊ณผ์ ์ ์์ด FIN-WAIT-1์ ์ฐ๊ฒฐ ์ข ๋ฃ์ ์ฒซ ๋จ๊ณ
- CLOSE-WAIT
- ์ข ๋ฃ ์์ฒญ์ธ FIN ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ์ ํจ์๋ธ ํด๋ก์ฆ ํธ์คํธ๊ฐ ๊ทธ์ ๋ํ ์๋ต์ผ๋ก ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๋ณด๋ธ ํ ๋๊ธฐํ๋ ์ํ
- FIN-WAIT-2
- FIN-WAIT-1 ์ํ์์ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๋ฐ๊ณ ์๋ ํธ์คํธ์ FIN ์ธ๊ทธ๋จผํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ
- LAST-ACK
- CLOSE-WAIT ์ํ์์ FIN ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ ๋ค ์ด์ ๋ํ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ
- TIME-WAIT
- ์กํฐ๋ธ ํด๋ก์ฆ ํธ์คํธ๊ฐ FIN ์ธ๊ทธ๋จผํธ๋ฅผ ์์ ํ ๋ค, ์ด์ ๋ํ ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์ ์กํ ๋ค ์ ์ด๋๋ ์ํ
- ํจ์๋ธ ํด๋ก์ฆ ํธ์คํธ๋ ๋ง์ง๋ง ACK ์ธ๊ทธ๋จผํธ๋ฅผ ์์ ํ๋ฉด CLOSED ์ํ๋ก ์ ์ด
- TIME-WAIT ์ํ์ ์กํฐ๋ธ ํด๋ก์ฆ ํธ์คํธ๋ ์ผ์ ์๊ฐ์ ๊ธฐ๋ค๋ฆฐ ๋ค CLOSED ์ํ๋ก ์ ์ด
โ UDP
UDP ๋ฐ์ดํฐ๊ทธ๋จ์ ๊ตฌ์กฐ
- UDP๋ TCP์ ๋ฌ๋ฆฌ ๋น์ฐ๊ฒฐํ ํต์ ์ ์ํํ๋ ์ ๋ขฐํ ์ ์๋ ํ๋กํ ์ฝ
- ์ฐ๊ฒฐ ์๋ฆฝ ๋ฐ ํด์ , ์ฌ์ ์ก์ ํตํ ์ค๋ฅ ์ ์ด, ํผ์ก ์ ์ด, ํ๋ฆ ์ ์ด ๋ฑ์ ์ํ X
- ์ํ๋ฅผ ์ ์งํ์ง๋ ์์: ์คํ ์ดํธ๋ฆฌ์ค(stateless) ํ๋กํ ์ฝ
- UDP๋ TCP์ ๋นํด ์ ์ ์ค๋ฒํค๋๋ก ํจํท์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ
- ์ฃผ๋ก ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ์๋น์ค, ์ธํฐ๋ท ์ ํ์ฒ๋ผ ์ค์๊ฐ์ฑ์ด ๊ฐ์กฐ๋๋ ์ํฉ์์ TCP๋ณด๋ค ๋ ๋ง์ด ์ฐ์
์ถ์ฒ
'network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TCP์ ์ค๋ฅ ยท ํ๋ฆ ยท ํผ์ก ์ ์ด (0) | 2025.05.06 |
---|---|
IP์ ํ๊ณ / ํฌํธ / NAPT / ICMP (0) | 2025.04.21 |
๋ผ์ฐํ ๋ถ๋ฅ / ๋ผ์ฐํ ํ๋กํ ์ฝ (0) | 2025.04.15 |
๋ผ์ฐํฐ / ๋ผ์ฐํ ํ ์ด๋ธ (0) | 2025.04.15 |
๊ณต์ธยท์ฌ์ค IP ์ฃผ์ / ์ ์ ยท๋์ IP ์ฃผ์ (0) | 2025.04.07 |