์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- HTTP
- API
- kotlin
- Community-App
- log
- Firebase
- ๊น์ํ
- ์์ฒญ
- ์ฑ๊ฐ๋ฐ
- Mapping
- Security
- springboot
- MVC
- BPM
- MySQL
- docker
- PROJECT
- Spring
- Logging
- JPA
- BBangting
- Inflearn
- Today
- Total
yeon's blog
[HTTP ์น ๊ธฐ๋ณธ ์ง์] ์ธํฐ๋ท ๋คํธ์ํฌ - TCP, UDP ๋ณธ๋ฌธ
๐ฑ TCP, UDP
ํ๋กํ ์ฝ 4๊ณ์ธต
IP ํ๋กํ ์ฝ์ ํ๊ณ์ ์ TCP ํ๋กํ ์ฝ์ด ํด๊ฒฐํด์ค
1) ํ๋ก๊ทธ๋จ์ด ‘Hello, World!’ ๋ผ๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค.
2) SOCKET ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด OS ๊ณ์ธต์์ TCP ์ ๋ณด๋ฅผ ๊ฐ์ผ๋ค.
3) ๊ทธ ๋ฐ์ IP ํจํท์ด ์์ฑ๋์ IP์ ๊ด๋ จ๋ ์ ๋ณด๋ ์๊ณ , ๊ทธ ์์ TCP์ ๊ด๋ จ๋ ์ ๋ณด๊ฐ ์๋ค.
4) ์ด ๋ฉ์์ง๊ฐ LAN ์นด๋๋ฅผ ํตํด์ ์๋ฒ๋ก ๋๊ฐ ๋ Ethernet frame์ ํฌํจํด์ ๋๊ฐ๊ฒ ๋๋ค.
→ Ethernet frame: LAN ์นด๋์ ๋ฑ๋ก๋ ๋งฅ ์ฃผ์์ ๋ฌผ๋ฆฌ์ ์ธ ์ ๋ณด
TCP/IP ํจํท ์ ๋ณด
- ์ถ๋ฐ์ง/๋ชฉ์ ์ง PORT
- ์ ์ก ์ ์ด
- ์์ ์ ๋ณด
- ๊ฒ์ฆ ์ ๋ณด
→ IP ํ๋กํ ์ฝ์์ ํด๊ฒฐ์ด ์๋ ์์ ์ ์ด ๋ฌธ์ ๋ค์ ํด๊ฒฐํ ์ ์์!โจ โจ โจ
TCP(Transmission Control Protocol: ์ ์ก ์ ์ด ํ๋กํ ์ฝ)์ ํน์ง
1. ์ฐ๊ฒฐ์งํฅ - TCP 3 way handshake (๊ฐ์ ์ฐ๊ฒฐ)
- SYN(Synchronize): ์ ์ ์์ฒญ
- ACK(Acknowledge): ์์ฒญ ์๋ฝ
1) ํด๋ผ์ด์ธํธ -> ์๋ฒ๋ก `SYN`์ด๋ผ๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ด์ ์ ์์ ์์ฒญํ๋ค.
2) ์๋ฒ -> ํด๋ผ์ด์ธํธ๋ก `ACK`๋ผ๋ ๋ฉ์์ง๋ฅผ ํตํด ์ ์ ์์ฒญ์ ๋ํ ์๋ต์ ํด์ฃผ๊ณ ๋ค์ ์๋ฒ์ชฝ์์ ์์ฒญ์ ํ๊ธฐ ์ํด `SYN`์ ๋ณด๋ธ๋ค. ์ฆ, ์ด๋๋ `SYN+ACK` ์ด๋ ๊ฒ ๋ฉ์์ง๋ฅผ ๋ณด๋ ๋๋ค.
3) ํด๋ผ์ด์ธํธ -> ์๋ฒ๋ก ์๋ฒ์ ๋ํ ์์ฒญ์ ์๋ตํด์ฃผ๊ธฐ ์ํ `ACK` ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค.
2. ๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ก
- ์๋ฒ์์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์๋ค๊ณ ์ ์ก
→ ์ ๊ณผ์ ์ด ์ด๋ฃจ์ด์ ธ์ผ ์ ๋ขฐ์ฑ ์๋ ํต์ ์ด ๊ฐ๋ฅํ๋ค.
๋ง์ฝ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋๋ฐ ๊ทธ์ ๋ํ ์๋ต์ด ์์ผ๋ฉด ์ ์์ ์ผ๋ก ์ฐ๊ฒฐ๋์ง ์์์ ๋ปํ๋ค.
3. ์์ ๋ณด์ฅ
- ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ํจํท1, ํจํท2, ํจํท3, … ์์๋ก ์ ์ก
- ๋ง์ฝ ์๋ฒ์์ ํจํท1, ํจํท3, ํจํท2 ์์๋ก ๋ฐ์๋ค๋ฉด, ์์๊ฐ ๋ง์ง ์์ผ๋ฏ๋ก ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ๋ค์ ํจํท2๋ถํฐ ๋ณด๋ด๋ผ๊ณ ์์ฒญ
→ TCP๋ ์ ๋ขฐ์ฑ ์๋ ํ๋กํ ์ฝ์ด๋ค!!โจ โจ โจ
UDP(User Datagram Protocol: ์ฌ์ฉ์ ๋ฐ์ดํฐ๊ทธ๋จ ํ๋กํ ์ฝ)์ ํน์ง
- ํ์ ๋ํ์ง์ ๋น์ (๊ธฐ๋ฅ์ด ๊ฑฐ์ ์์)
- TCP 3 way handshake X
- ๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ X
- ์์ ๋ณด์ฅ X
→ ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐ ์์๊ฐ ๋ณด์ฅ๋์ง ์์ง๋ง, ๋จ์ํ๊ณ ๋น ๋ฆ!