1. TCP / UDP
TCP์ UDP๋ OSI์ 4๊ณ์ธต์ด์ TCP/IP์ ์ ์ก ๊ณ์ธต์์ ์ฌ์ฉํ๋ ํ๋กํ ์ฝ์ด๋ค.
์ ์ก๊ณ์ธต์ ์ก์ ์์ ์์ ์๋ฅผ ์ฐ๊ฒฐํ๋ ํต์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ณ์ธต์ผ๋ก, ์ฝ๊ฒ ๋งํด์ ๋ฐ์ดํฐ์ ์ ๋ฌ์ ๋ด๋นํ๋ค.
TCP (Transmission Control Protocol)
์ ์๋ ์ธํฐ๋ท์์์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ์ธ์ง ํํ๋ก ๋ณด๋ด๊ธฐ ์ํด IP์ ํจ๊ผ ์ฌ์ฉํ๋ ํ๋กํ ์ฝ์ด๋ค.
TCP์ ํน์ง
- ์ฐ๊ฒฐ ์งํฅ ๋ฐฉ์์ผ๋ก ํจํท ๊ตํ ๋ฐฉ์์ ์ฌ์ฉ
- 3-way handshake ๊ณผ์ ์ ํตํด ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ 4-way handshake๋ฅผ ํตํด ํด์
- ํ๋ฆ ์ ์ด ๋ฐ ํผ์ก ์ ์ด
- ๋์ ์ ๋ขฐ์ฑ (IP ํ๋กํ ์ฝ์์๋ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง ์์ผ๋ฏ๋ก TCP์์ ์ ๋ขฐ์ฑ ๋ณด์ฅ)
- UDP๋ณด๋ค ์๋๊ฐ ๋๋ฆผ
TCP์ ์ฐ๊ฒฐ ๊ณผ์ (3-way handshake)
- SYN(synchronize sequence numbers) : ์ฐ๊ฒฐ ํ์ธ์ ๋ณด๋ด๋ ๋ฌด์์์ ์ซ์ ๊ฐ
- ACK(acknowledgements) : Client ํน๋ Server๋ก๋ถํฐ ๋ฐ์ SYN์ 1์ ๋ํด SYN์ ์ ๋ฐ์๋ค๋ ACK
CLOSED :์ฐ๊ฒฐ ์๋ฆฝ์ ์์ํ๊ธฐ ์ ์ ๊ธฐ๋ณธ ์ํ
LISTEN : ํฌํธ๊ฐ ์ด๋ฆฐ ์ํ๋ก ์ฐ๊ฒฐ ์์ฒญ ๋๊ธฐ์ค
SYN-SENT : SYN์ ์์ฒญํ ์ํ
SYN-RECEIVED :SYN ์์ฒญ์ ๋ฐ๊ณ ์๋๋ฐฉ์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ ์ค
ESTABLISHED : ์ฐ๊ฒฐ ์๋ฆฝ์ด ์๋ฃ๋ ์ํ, ์๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์์
1. ํด๋ผ์ด์ธํธ๊ฐ SYN์ ์๋ฒ๋ก ๋ณด๋ด๊ณ SYN-SENT ์ํ๋ก ๋๊ธฐํ๋ค.
2. ์๋ฒ๋ LISTEN์์ SYN-RECEIVED ์ํ๋ก ๋ณ๊ฒฝํ๊ณ SYN๊ณผ ์๋ต ACK๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ธ๋ค.
3. SYN๊ณผ ์๋ต ACK๋ฅผ ๋ฐ์ ํด๋ผ์ด์ธํธ๋ ESTABLISHED ์ํ๋ก ๋ณ๊ฒฝํ๊ณ ์๋ฒ์๊ฒ ์๋ต ACK๋ฅผ ๋ณด๋ธ๋ค.
4. ACK๋ฅผ ๋ฐ์ ์๋ฒ๋ ESTABLISHED ์ํ๋ก ๋ณ๊ฒฝํ๋ฉด ์ฐ๊ฒฐ์ด ์ฑ๊ณต์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
๊ฐ๋จํ ๋งํ๋ฉด ์ด๋ฐ ๊ทธ๋ฆผ์ด๋ผ๊ณ ์ค๋ช ํ ์ ์๋ค.
TCP์ ์ฐ๊ฒฐ ํด์ ๊ณผ์ (4-way handshaking)
ESTABLISHED : ์ฐ๊ฒฐ ์๋ฆฝ์ด ์๋ฃ๋ ์ํ, ์๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์์
FIN-WAIT-1 : ์์ ์ด ๋ณด๋ธ FIN์ ๋ํ ACK๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋ ์๋๋ฐฉ์ FIN์ ๊ธฐ๋ค๋ฆผ
FIN-WAIT-2 : ์์ ์ด ๋ณด๋ธ FIN์ ๋ํ ACK๋ฅผ ๋ฐ์๊ณ , ์๋๋ฐฉ์ FIN์ ๊ธฐ๋ค๋ฆผ
CLOSE-WAIT : ์๋๋ฐฉ์ FIN์ ๋ฐ์ ์ํ. ์๋๋ฐฉ FIN์ ๋ํ ACK๋ฅผ ๋ณด๋ด๊ณ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ข ๋ฃ๋ฅผ ์๋ฆผ
LAST-ACK : CLOSE-WAIT ์ํ๋ฅผ ์ฒ๋ฆฌ ํ FIN ์์ฒญ์ ๋ณด๋ธ ํ FIN์ ๋ํ ACK๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ
TIME-WAIT : ๋ชจ๋ FIN์ ๋ํ ACK๋ฅผ ๋ฐ๊ณ ์ฐ๊ฒฐ ์ข ๋ฃ๊ฐ ์๋ฃ๋ ์ํ, ์ ์ฐ๊ฒฐ๊ณผ ๊ฒน์น์ง ์๋๋ก ์ผ์ ์๊ฐ ๊ธฐ๋ค๋ฆฐ ํ CLOSED๋ก ์ ์ด
CLOSED : ์ฐ๊ฒฐ ์๋ฆฝ์ ์์ํ๊ธฐ ์ ์ ๊ธฐ๋ณธ ์ํ
โป TIME-WAIT : ๋จผ์ ์ฐ๊ฒฐ์ ๋๋ ์ชฝ์์ ์์ฑ๋๋ ์์ผ์ผ๋ก, ํน์ ๋ชจ๋ฅผ ์ ์ก ์คํจ์ ๋๋นํ๊ธฐ ์ํด ์กด์ฌํ๋ ์์ผ์ด๋ฉฐ,
TIME-WAIT์ด ์๋ค๋ฉด, ํจํท์ ์์ค์ด ๋ฐ์ํ๊ฑฐ๋ ํต์ ์ ๊ฐ ์ฐ๊ฒฐ ํด์ ๊ฐ ์ ๋๋ก ๋์ง ์์ ์ ์๋ค.
์ฐ๊ฒฐ์ ํด์ ํ๋๋ฐ ์ด ๊ณผ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ฐ๊ฒฐํ ๋์ ๋ค๋ฅธ ๋ฐฉ์์ด๋ค.
1. ๋จผ์ close๋ฅผ ์คํํ ํด๋ผ์ด์ธํธ๊ฐ FIN์ ๋ณด๋ด๊ณ FIN-WAIT-1์ํ๋ก ๋๊ธฐ
2. ์๋ฒ๋ CLOSE-WAIT์ผ๋ก ๋ฐ๊พธ๊ณ ์๋ต ACK๋ฅผ ์ ๋ฌํ๋ค. ๋์์ ํด๋น ํฌํธ์ ์ฐ๊ฒฐ๋์ด ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์๊ฒ close๋ฅผ ์์ฒญ
3. ACK๋ฅผ ๋ฐ์ ํด๋ผ์ด์ธํธ๋ ์ํ๋ฅผ FIN-WAIT-2๋ก ๋ณ๊ฒฝ
4. close ์์ฒญ์ ๋ฐ์ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ๋ฃ ํ๋ก์ธ์ค๋ฅผ ์งํํ๊ณ FIN์ ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด LAST-ACK ์ํ๋ก ๋ฐ๊ฟ
5. FIN์ ๋ฐ์ ํด๋ผ์ด์ธํธ๋ ACK๋ฅผ ์๋ฒ์ ๋ค์ ์ ์กํ๊ณ TIME-WAIT์ผ๋ก ์ํ๋ฅผ ๋ฐ๊ฟ
TIME-WAIT์์ ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด CLOSE ๋๋ค. ACK๋ฅผ ๋ฐ์ ์๋ฒ๋ ํฌํธ๋ฅผ CLOSED๋ก ๋ซ๋๋ค.
UDP (User Datagram Protocol)
UDP๋ ๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ์ด๋ค. ์ฐ๊ฒฐ์ ์ํด ํ๋๋๋ ๋ ผ๋ฆฌ์ ์ธ ๊ฒฝ๋ก๊ฐ ์๊ณ ๊ฐ๊ฐ์ ํจํท์ ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ์ ์ก๋๋ฉฐ, ๋ ๋ฆฝ์ ์ธ ๊ด๊ณ๋ฅผ ์ง๋๋ค.
UDP์ ํน์ง
- ๋น์ฐ๊ฒฐํ ์๋น์ค๋ก ๋ฐ์ดํฐ๊ทธ๋จ ๋ฐฉ์์ ์ ๊ณต : ๋ฐ์ดํฐ์ ์ ์ก ์์๊ฐ ๋ฐ๋ ์ ์์
- ๋ฐ์ดํฐ์ ์์ ์ฌ๋ถ๋ฅผ ํ์ธํ์ง ์์
- ์ ๋ขฐ์ฑ์ด ๋ฎ์
-TCP๋ณด๋ค ์๋๊ฐ ๋น ๋ฆ
- 1:1, 1:N, N:N ํต์ ์ด ๊ฐ๋ฅ
์ฃผ๋ก ์ค์๊ฐ ์๋น์ค(Streaming)์ ์์ฃผ ์ฌ์ฉ๋๋ค.
'๐ CS [ComputerScience] > ๐ CS ๋ฉด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [ 3์ 2์ฃผ์ฐจ ] (0) | 2024.03.16 |
---|---|
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [18] [์๋ฃ๊ตฌ์กฐ / ์๊ณ ๋ฆฌ์ฆ] (0) | 2024.03.13 |
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [16] [์ด์์ฒด์ ] (0) | 2024.03.11 |
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [ 3์ 1์ฃผ์ฐจ ] [ 1 ] (0) | 2024.03.10 |
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [15] [JPA] (0) | 2024.03.09 |