์น์ด์ TCP/UDP๋ฅผ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์
๋๋ค.
โ ์ ์์์ผ ํ ๊น?
์น ์ดํ๋ฆฌ์ผ์ด์
์ ์ฑ๋ฅ ์ต์ ํ์ ์ ๋ขฐ์ฑ ํ๋ณด๋ฅผ ์ํด ๋ฐ๋์ ์์์ผ ํ ๊ฐ๋
์
๋๋ค.
- ๐ฆ ๋ฐ์ดํฐ์ ์์ค ๋ฐฉ์ง
- ๐ ์์ ๋ณด์ฅ
- ๐ HTTP 3.0์์ ์ฌ์ฉ๋๋ QUIC๋ UDP ๊ธฐ๋ฐ
๐ TCP/IP 4๊ณ์ธต ๋ชจ๋ธ
| ๊ณ์ธต | ์ค๋ช
|
|---|
| Application | ๋ธ๋ผ์ฐ์ , ๋ฉ์ผ ํด๋ผ์ด์ธํธ ๋ฑ |
| Transport | TCP, UDP - ์ค๋์ ์ฃผ์ ! |
| Internet | IP (๋ผ์ฐํ
) |
| Network Access | ์ด๋๋ท ๋ฑ |
๐ TCP ๋์ ๊ณผ์
1๏ธโฃ ์์ผ ์์ฑ
- ๋ธ๋ผ์ฐ์ ๊ฐ ๋๋ฉ์ธ๊ณผ TCP ํ์
์ผ๋ก ์์ผ ์์ฒญ
- OS์ ํ๋กํ ์ฝ ์คํ์ด ์์ผ ์์ฑ โ ์์ผ ๋์คํฌ๋ฆฝํฐ ๋ฐํ
- ๋์คํฌ๋ฆฝํฐ = ์์ผ์ ๋ฒํธํ

2๏ธโฃ 3-Way Handshake (์ฐ๊ฒฐ ์ค์ )

- ๋ธ๋ผ์ฐ์ ์์ ๋์คํฌ๋ฆฝํฐ + ์๋ฒ IP ์ฃผ์ + ํฌํธ ๋ฒํธ๋ฅผ ๋ฃ์ด์ ํธ์ถ
- ํ๋กํ ์ฝ ์คํ์ด ์์ฒญ์ ๋ฐ์์ ์น์๋ฒ๋ก ์์ฒญ ์ ๋ฌ

- ํด๋ผ์ด์ธํธ์์ ์ํ์ค ๋ฒํธ๋ฅผ ์ด๊ธฐํ
- ์ด๊ธฐํํ ๋ฒํธ๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด์ SYN์ ์ค์ ํด์ ์๋ฒ๋ก ์ ์ก
- SYN: ์ํ์ค ๋ฒํธ๋ฅผ ๊ณต์ ํจ์ ๋ํ๋ด๋ ์ปจํธ๋กค ๋นํธ
์ด๊ธฐ Sequence Number๋ ๋์๋ก ์ค์ ๋์ด ์ฌ์ ์ก ์ถฉ๋ ๋ฐฉ์ง

- ์๋ฒ์์ ์ํ์ค ๋ฒํธ๋ฅผ ์ด๊ธฐํํด์ ๊ณต์
- ์ํ์ค ๋ฒํธ ์์ ์ ์๋ฆฌ๊ธฐ ์ํด์ ACK ๋ฒํธ๋ฅผ ์ค์ ํด ํด๋ผ์ด์ธํธ๋ก ๋ฐ์ดํฐ ์ก์

- ํด๋ผ์ด์ธํธ์์ ACK๋ฒํธ๋ฅผ ์ค์ ํด์ ์๋ฒ๋ก ๋ฐ์ดํฐ ์ก์
์ด๋ฐ ๊ณผ์ ์ ๊ฑฐ์ณ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ๋จ!!!
3๏ธโฃ ๋ฐ์ดํฐ ์ก์์

- ํด๋ผ์ด์ธํธ๋
write()๋ก ๋ฐ์ดํฐ ์ ์ก

- ์๋ฒ๋
read()๋ก ์์ ํ write()๋ก ์๋ต

- ํด๋ผ์ด์ธํธ๋
read()๋ก ์์
๐ ํจํท ์์ค ์:
- ์ฌ์ ์ก ์ํ
- ์ฌ์๋ ์คํจ ์ ์ค๋ฅ ๋ฐํ
4๏ธโฃ 4-Way Handshake (์ฐ๊ฒฐ ์ข
๋ฃ)

- ํด๋ผ์ด์ธํธ์์ close ํธ์ถ
- FIN์ ์ค์ ํด์ ์๋ฒ๋ก ์ก์

- ACK๋ฅผ ์ค์ ํด์ ์๋ต
- ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก๋ถํฐ FIN ์๋ต์ด ์ฌ ๋๊น์ง ๋๊ธฐ

- ์๋ฒ์์ ๋ณด๋ผ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด closeํธ์ถ
- FIN์ ์ค์ ํด ํด๋ผ์ด์ธํธ๋ก ์ก์

- ํด๋ผ์ด์ธํธ์์๋ ์์ ์ ์๋ฏธ๋ก ACK๋ฒํธ๋ฅผ ์ค์ ํด์ ์๋ฒ๋ก ์ ์ก
- ํด๋ผ์ด์ธํธ์ ์์ผ์ด ๋ง์๋๊ณ ์ฐ๊ฒฐ์ด ๋๊น
๐ ์์ผ์ ๋ฐ๋ก ๋ง์๋์ง ์๊ณ ์ผ์ ์๊ฐ ์ ์ง (TIME_WAIT ์๋ฒ๊ฐ ACKํจํท์ ๋ฐ์ง ๋ชปํ์ ๊ฒฝ์ฐ์ ๋ค์ ์ฌ์์ฒญ์ ํ ์ ์๊ธฐ ๋๋ฌธ์)
๐ TCP ์ฃผ์ ํ๋ ์์ฝ
| ํ๋ | ์ค๋ช
|
|---|
| SYN | ์ฐ๊ฒฐ ์์ |
| ACK | ์์ ํ์ธ |
| FIN | ์ฐ๊ฒฐ ์ข
๋ฃ |
| Seq Number | ํ์ฌ ํจํท์ ์์น |
| ACK Number | ๋ช ๋ฐ์ดํธ๊น์ง ๋ฐ์๋์ง |
โก UDP ๋์ ๊ณผ์

- ์์ผ ์์ฑ ์ TCP ๋์ UDP ํ์
์ง์

sendto()๋ก ๋ฐ์ดํฐ ์ ์ก

recvfrom()์ผ๋ก ์์
- ํธ๋์
ฐ์ดํฌ ์์, ์์/์ฌ์ ์ก ์์
๐ ์๋๋ ๋น ๋ฅด์ง๋ง ์ ๋ขฐ์ฑ ๋ฎ์ โ ์ฃผ๋ก ์คํธ๋ฆฌ๋ฐ/๊ฒ์์ ์ฌ์ฉ
๐งพ TCP vs UDP ๋น๊ต ์ ๋ฆฌ
| ํญ๋ชฉ | TCP | UDP |
|---|
| ์ฐ๊ฒฐ ๋ฐฉ์ | 3/4-Way Handshake | ์ฐ๊ฒฐ ์์ |
| ์ ๋ขฐ์ฑ | ๋์ | ๋ฎ์ |
| ์ ์ก ์์ ๋ณด์ฅ | O | X |
| ํจํท ์์ค ์ | ์ฌ์ ์ก | ๋ฌด์ |
| ์๋ | ๋๋ฆผ | ๋น ๋ฆ |
| ์ฉ๋ | ์น, ํ์ผ ์ ์ก | ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ, ๊ฒ์ |
โจ ๋ง๋ฌด๋ฆฌ
- TCP: ์ ํ์ฑ ์ฐ์
- UDP: ์๋ ์ฐ์
- ๋คํธ์ํฌ ์ค๊ณ ๋ฐ ์๋น์ค ๋ชฉ์ ์ ๋ฐ๋ผ ์ ์ ํ ํ๋กํ ์ฝ์ ์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.