๐ค๋ฐฐ์ ์์ฝํ๊ธฐ
์ธํฐ๋ท ํ๋กํ ์ฝ ์คํ์ 4๊ณ์ธต์ด๋?
์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต(HTTP, FTP), ์ ์ก ๊ณ์ธต (TCP, UDP), ์ธํฐ๋ท ๊ณ์ธต (IP), ๋คํธ์ํฌ ์ธํฐํ์ด์ค ๊ณ์ธต (LAN ๋ฑ๋ฑ)์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ๊ฒ์ ๋งํฉ๋๋ค.
TCP๋?
TCP๋ IP ํ๋กํ ์ฝ์ ํ๊ณ๋ฅผ ๋ณด์ํด์ฃผ๋ ์ญํ ์ ํ๋๋ฐ TCP 3 way handshake๋ก ๋์์ด ์๋น์ค ๊ฐ๋ฅ ์ํ์ผ ๋๋ง ํจํท์ ์ ์กํ๊ณ , ๋ฐ์ดํฐ ์ ๋ฌ์ ๋ณด์ฆํด์ฃผ๊ณ , ๋ฐ์ดํฐ ์ ์ก ์์๋ ๋ณด์ฆํด์ฃผ๋ ์ ๋ขฐํ ํ ์ ์๋ ํ๋กํ ์ฝ์ด๊ณ , ํ์ฌ๋ ๋๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ TCP ์ฌ์ฉํฉ๋๋ค.
UDP๋?
IP์์ PORT์ ์ฒดํฌ์ฌ์ด ์ถ๊ฐ๋์ด ์๋ ํ๋กํ ์ฝ์ ๋งํฉ๋๋ค. ์ต๊ทผ์๋ ์น๋ธ๋ผ์ฐ์ ์์ HTTP ํต์ ํ ๋ HTTP 3 way handshake์์ UDP๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ฌ์ฉ์ฑ์ด ๋์ฑ๋ ๊ฐ์กฐ๋๊ณ ์์ต๋๋ค.
TCP, UDP๋ IP ํ๋กํ ์ฝ์์ ๋ฐ์ํ๋ ๋ง์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํด์ค๋ค.
(IP ํ๋กํ ์ฝ์์ ๋ฐ์ํ๋ ๋ฌธ์ : ํจํท ์์ค, ๋์์ด ์๋น์ค ๋ถ๋ฅ์ด์ฌ๋ ํจํท ์ ์ก, ํจํท ์ ์ก ์์ ๋ฌธ์ )
(UDP๋ ๊ทธ๋ฐ ๋ฌธ์ ๋ ํด๊ฒฐํด์ฃผ์ง๋ ์์ง๋ง ๊ทธ๋๋ ๋์์ด ๋๋๊ฒ ์๋ค. )
์ธํฐ๋ท ํ๋กํ ์ฝ ์คํ์ 4๊ณ์ธต
์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต - HTTP, FTP
์ ์ก ๊ณ์ธต - TCP, UDP
์ธํฐ๋ท ๊ณ์ธต - IP
๋คํธ์ํฌ ์ธํฐํ์ด์ค ๊ณ์ธต - LAN ๋ฑ๋ฑ
์๋ฅผ๋ค์ด ๋ด๊ฐ "Hello world!" ๋ฉ์ธ์ง๋ฅผ ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋ณด๋ธ๋ค๊ณ ํ๋ฉด
1. ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์ ์๋ ํ๋ก๊ทธ๋จ(์น๋ธ๋ผ์ฐ์ , ์ฑํ ํ๋ก๊ทธ๋จ ๋ฑ)์ด ๋ฉ์ธ์ง๋ฅผ ์์ฑํ๋ค.
2. SOCKET ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ์ ๋ฌํ๋ค.
3. TCP ์ ๋ณด๋ฅผ ์์ฑํด์ ๋ฉ์ธ์ง ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ค.
4. IP ํจํท์ ์์ฑํ๋ค. (TCP ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ค.)
5. ๋คํธ์ํฌ ์ธํฐํ์ด์ค(LAN์นด๋)๋ฅผ ํตํด์ ๋๊ฐ ๋ Ethernet frame์ด๋ผ๋๊ฒ ํฌํจ๋์ ๋๊ฐ๋ค.
- IP ํจํท์ ์ถ๋ฐ์ง IP, ๋ชฉ์ ์ง IP๊ฐ ํฌํจ๋์ด ์๋ค.
- TCP ์ ๋ณด์ ์ถ๋ฐ์ง PORT, ๋ชฉ์ ์ง PORT, ์ ์ก ์ ์ด, ์์, ๊ฒ์ฆ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์๋ค. => ๊ทธ๋์ IP๋ง์ผ๋ก ํด๊ฒฐ๋์ง ์์๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ ๊ฑฐ๋ค!
TCP ํน์ง
์ ์ก ์ ์ด ํ๋กํ ์ฝ (Transmission Control Protocol)
- ์ฐ๊ฒฐ์งํฅ - TCP 3 way handshake (๊ฐ์ ์ฐ๊ฒฐ) ๐ ๋์๊ณผ ์ฐ๊ฒฐํ์ ์ ์ก์ ํ๊ธฐ ๋๋ฌธ์ ๋์์ด ์๋น์ค ๋ถ๋ฅ์ด๋ฉด ํจํท ์ ์ก ์ํจ!!
- ๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ ๐ ๋ด๊ฐ ๋ฉ์์ง๋ฅผ ๋ณด๋๋๋ฐ ์ค๊ฐ์ ํจํท์ด ๋๋ฝ๋๋ฉด ์ด ์ ๋ณด๋ฅผ ๋์๊ฒ ์๋ ค์ค๋ค.
- ์์ ๋ณด์ฅ ๐ ํจํท์ ๋ณด๋ด๋ ์์๋ฅผ ๋ณด์ฅํด์ค๋ค.
๊ทธ๋์ TCP๋ ์ ๋ขฐํ ์ ์๋ ํ๋กํ ์ฝ์ด๊ณ ํ์ฌ๋ ๋๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ TCP ์ฌ์ฉํ๋ค!
TCP ํน์ง 1. ์ฐ๊ฒฐ์งํฅ - TCP 3 way handshake (๊ฐ์ ์ฐ๊ฒฐ)
TCP/IP ํ๋กํ ์ฝ๋ก ๋ญ๊ฐ๋ฅผ ์ฐ๊ฒฐํ๋ฉด, ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ SYN: ์ ์ ์์ฒญ์ ํ๊ณ , ์๋ฒ๋ ACK: ์์ฒญ ์๋ฝ๊ณผ ํจ๊ป SYN์ ๋ณด๋ธ๋ค. ์ด๋ฅผ ๋ฐ์ ํด๋ผ์ด์ธํธ๋ ACK์ ๋ณด๋ด์ ์ฐ๊ฒฐํ๋ค. (ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๊ฐ์๋ฅผ ๋ฏฟ์ ์ ์๊ฒ ๋๋ค.) ์ด๋ ๊ฒ ์ฐ๊ฒฐ์ด ๋๊ณ ๋๋ฉด ๊ทธ์ ์์ผ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ธ๋ค.
์ค์!
TCP 3 way handshake๊ฐ ์ฐ๊ฒฐ๋์๋ค๊ณ ํด์ ์ง์ง๋ก ์ฐ๊ฒฐ๋ ๊ฒ์ด ์๋๊ณ ๊ฐ๋ ์ ์ผ๋ก ์ฐ๊ฒฐ์ด ๋๊ฑฐ๋ค!
(ํด๋ผ์ด์ธํธ์์ ์๋ฒ๊น์ง ์ฐ๊ฒฐ๋์ด ์๋ ์๋ง์ ๋ ธ๋๋ค์ ์ํ๋ ๋ชจ๋ฅด๋๊ฑฐ๋ค.)
TCP ํน์ง 2. ๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ
ํด๋ผ์ด์ธํธ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉด, ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์๋ค๊ณ ์๋ ค์ค๋ค.
TCP ํน์ง 3. ์์ ๋ณด์ฅ
ํด๋ผ์ด์ธํธ๊ฐ ํจํท1, ํจํท2, ํจํท3 ์์๋ก ์ ์กํ๋๋ฐ ํจํท1, ํจํท3, ํจํท2 ์์๋ก ๋์ฐฉํ๋ค๋ฉด?
์๋ฒ์์ ํจํท2๋ถํฐ ๋ค์ ๋ณด๋ด๋ผ๊ณ ์๋ ค์ค๋ค.
UDP ํน์ง
์ฌ์ฉ์ ๋ฐ์ดํฐ๊ทธ๋จ ํ๋กํ ์ฝ (User Datagram Protocol)
ํ์ ๋ํ์ง์ ๋น์ ํ ๋งํผ ๊ธฐ๋ฅ์ด ๊ฑฐ์ ์๋ค!
- ์ฐ๊ฒฐ์งํฅ - TCP 3 way handshake X
- ๋ฐ์ดํฐ ์ ๋ฌ ๋ณด์ฆ X
- ์์ ๋ณด์ฅ X
- ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐ ์์๊ฐ ๋ณด์ฅ๋์ง ์์ง๋ง, ๋จ์ํ๊ณ ๋น ๋ฅด๋ค.
- IP์ ๊ฑฐ์ ๊ฐ๋ค. + PORT* + ์ฒดํฌ์ฌ* ์ ๋๋ง ์ถ๊ฐ
- ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ถ๊ฐ ์์ ํ์
โ PORT = ๊ฐ์์ ์ปดํจํฐ์๋ IP๊ฐ ํ๋์ฉ ํ ๋น๋์ด ์๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ์ฉ์๊ฐ ๋คํธ์ํฌ๋ก ๊ฒ์๋ ํ๊ณ , ์์ ๋ ๋ฃ๊ณ ์๋ค๋ฉด ์ฌ์ฉ์์ IP๋ก ์ฌ๋ฌ๊ฐ์ง ํจํท์ด ์ค๊ฒ ๋๋ค. ์ด๊ฑด ๊ฒ์์ฉ ํจํท์ด๊ณ ์์ ์ฉ ํจํท์ ๊ตฌ๋ถํ ๋ ์ฐ๋ ๊ฒ์ด PORT์ด๋ค.
โ ์ฒดํฌ์ฌ = ๋ฉ์ธ์ง์ ๋ํด์ ์ ๋๋ก ๋ง๋์ง ๊ฒ์ฆํด์ฃผ๋ ๋ฐ์ดํฐ์ด๋ค.
UDP๋ IP์ PORT์ ์ฒดํฌ์ฌ ์ ๋๋ง ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ด ๊ฑฐ์ ์๋๋ฐ ์ ์ฌ์ฉํ ๊น???
TCP๋ ๋ค ์ข์๋ฐ 3 way handshakeํ๋ ค๋ฉด ์๊ฐ์ด ์์๋๊ณ , ๋ฐ์ดํฐ ์๋ ๋ง์์ง๊ณ , ์ ์ก ์๋๋ ๋ ๋น ๋ฅด๊ฒ ๋ง๋ค๊ธฐ ์ด๋ ต๋ค.
์ด๋ฐ TCP๋ฅผ ์ต์ ํํ๊ธฐ ์ํด UDP๋ฅผ ์ฌ์ฉํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ต๊ทผ์๋ ์น๋ธ๋ผ์ฐ์ ์์ HTTP ํต์ ํ ๋ HTTP 3 way handshake ํ ๋ UDP๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ฌ์ฉ์ฑ์ด ๋์ฑ๋ ๊ฐ์กฐ๋๊ณ ์๋ค!
TCP์ UDP ๋ฐฉ์์ ์ฐจ์ด์
TCP์ UDP๋ ๋ชจ๋ ์ ์ก ๊ณ์ธต์ ํ๋กํ ์ฝ์ ๋๋ค.
TCP๋ 3 way handshake ๋ฐฉ์์ ์ฌ์ฉํด์ ๋ฐ์ดํฐ ์ ์ก ์์ฒด์ ๋ฐ์ดํฐ ์ ์ก ์์๋ฅผ ๋ณด์ฆํ๋ ์ ๋ขฐํ ์ ์๋ ํ๋กํ ์ฝ์ ๋๋ค.
UDP๋ ๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ๋ก TCP์๋ ๋ค๋ฅด๊ฒ ์ฐ๊ฒฐ ์ค์ ์ด ์๊ณ TCP๋ณด๋ค ์ ์ก ์๋๊ฐ ๋น ๋ฅด๊ณ ๋คํธ์ํฌ ๋ถํ๊ฐ ์ ๋ค๋ ์ฅ์ ์ด ์์ง๋ง ๋ฐ์ดํฐ ์ ์ก์ ๋ณด์ฅํ์ง๋ ์์ต๋๋ค. ๊ทธ๋์ ์ ๋ขฐ์ฑ๋ณด๋ค๋ ์ฐ์์ฑ์ด ์ค์ํ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ๊ณผ ๊ฐ์ ์๋น์ค์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.
๐ ์๋ชป๋ ๊ฐ๋ ์ ๋ฌ์ด ์๋ค๋ฉด ๋๊ธ ๋ถํ๋๋ฆฝ๋๋ค. ์ ์ ์ฑ์ฅ์ ํฐ ๋์์ด ๋ฉ๋๋ค๐ค
'๐ฌComputer Science > ๋คํธ์ํฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] DNS๋? ์ธํฐ๋ท ๋คํธ์ํฌ ์ ๋ฆฌ (0) | 2023.01.03 |
---|---|
[TIL] PORT๋ ๋ฌด์์ด๊ณ ์ด๋ค ์ญํ ์ ํ๋์? (0) | 2023.01.03 |
[TIL] IP (์ธํฐ๋ท ํ๋กํ ์ฝ)์ด๋? HTTP ์น ๊ธฐ๋ณธ ์ง์ (0) | 2023.01.02 |
axios instance๋ก ์จ๋ณด๊ธฐ (0) | 2022.09.14 |
AWS๋ฅผ ์ด์ฉํ ์๋ฒ ๋ฐฐํฌ ์๋ํ ํ์ดํ๋ผ์ธ ๊ตฌ์ถํ๊ธฐ, EC2 ๊ธฐ๋ณธ ์ธํ ๋ถํฐ, AWS๋ก ์๋ฒ ๋ฐฐํฌ (0) | 2022.08.09 |