๐ ์ง๋ฌธ ์ค ์ผ๋ถ๋ WeareSoft๋์ tech-interview๋ฅผ ์ฐธ๊ณ ํ์์ต๋๋ค.
- TCP/IP์ ๊ฐ ๊ณ์ธต์ ์ค๋ช ํด์ฃผ์ธ์.
- OSI 7๊ณ์ธต์ TCP/IP ๊ณ์ธต์ ์ฐจ์ด๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.
- Frame, Packet, Segment, Datagram์ ๋น๊ตํด์ฃผ์ธ์.
- TCP์ UDP์ ์ฐจ์ด๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.
- TCP์ UDP์ ํค๋๋ฅผ ๋น๊ตํด์ฃผ์ธ์.
- TCP์ 3-way-handshake์ 4-way-handshake๋ฅผ ๋น๊ต ์ค๋ช ํด์ฃผ์ธ์.
- TCP์ ์ฐ๊ฒฐ ์ค์ ๊ณผ์ (3๋จ๊ณ)๊ณผ ์ฐ๊ฒฐ ์ข ๋ฃ ๊ณผ์ (4๋จ๊ณ)์ด ๋จ๊ณ๊ฐ ์ฐจ์ด๋๋ ์ด์ ๊ฐ ๋ฌด์์ธ๊ฐ์?
- ๋ง์ฝ Server์์ FIN ํ๋๊ทธ๋ฅผ ์ ์กํ๊ธฐ ์ ์ ์ ์กํ ํจํท์ด Routing ์ง์ฐ์ด๋ ํจํท ์ ์ค๋ก ์ธํ ์ฌ์ ์ก ๋ฑ์ผ๋ก ์ธํด FIN ํจํท๋ณด๋ค ๋ฆ๊ฒ ๋์ฐฉํ๋ ์ํฉ์ด ๋ฐ์ํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
- ์ด๊ธฐ Sequence Number์ธ ISN์ 0๋ถํฐ ์์ํ์ง ์๊ณ ๋์๋ฅผ ์์ฑํด์ ์ค์ ํ๋ ์ด์ ๊ฐ ๋ฌด์์ธ๊ฐ์?
- HTTP์ HTTPS์ ๋ํด์ ์ค๋ช ํ๊ณ ์ฐจ์ด์ ์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
- HTTP ์์ฒญ/์๋ต ํค๋์ ๊ตฌ์กฐ๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.
- HTTP์ HTTPS ๋์ ๊ณผ์ ์ ๋น๊ตํด์ฃผ์ธ์.
- CORS๊ฐ ๋ฌด์์ธ๊ฐ์?
- HTTP GET๊ณผ POST ๋ฉ์๋๋ฅผ ๋น๊ต/์ค๋ช ํด์ฃผ์ธ์.
- ์ฟ ํค(Cookie)์ ์ธ์ (Session)์ ์ค๋ช ํด์ฃผ์ธ์.
- DNS๊ฐ ๋ฌด์์ธ๊ฐ์?
- REST์ RESTful์ ๊ฐ๋ ์ ์ค๋ช ํ๊ณ ์ฐจ์ด๋ฅผ ๋งํด์ฃผ์ธ์.
- ์์ผ(Socket)์ด ๋ฌด์์ธ๊ฐ์? ์์ ์๋ ์ธ์ด๋ก ๊ฐ๋จํ ์์ผ ์์ฑ ์์๋ฅผ ๋ณด์ฌ์ฃผ์ธ์.
- Socket.io์ WebSocket์ ์ฐจ์ด๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.
- IPv4์ IPv6 ์ฐจ์ด๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.
- MAC Address๊ฐ ๋ฌด์์ธ๊ฐ์?
- ๋ผ์ฐํฐ์ ์ค์์น, ํ๋ธ์ ์ฐจ์ด๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.
- SMTP๊ฐ ๋ฌด์์ธ๊ฐ์?
- ๋
ธํธ๋ถ์ผ๋ก
www.google.com
์ ์ ์์ ํ์ต๋๋ค. ์์ฒญ์ ๋ณด๋ด๊ณ ๋ฐ๊ธฐ๊น์ง์ ๊ณผ์ ์ ์์ธํ ์ค๋ช ํด์ฃผ์ธ์. - ์ฌ๋ฌ ๋คํธ์ํฌ topology์ ๋ํด ๊ฐ๋จํ ์๊ฐํด์ฃผ์ธ์.
- subnet mask์ ๋ํด์ ์ค๋ช ํด์ฃผ์ธ์.
- data encapsulation์ด ๋ฌด์์ธ๊ฐ์?
- DHCP๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.
- routing protocol์ ๋ช ๊ฐ์ง ์ค๋ช ํด์ฃผ์ธ์. (ex. link state, distance vector)
- ์ด๋๋ท(ethernet)์ด ๋ฌด์์ธ๊ฐ์?
- client์ server์ ์ฐจ์ด์ ์ ์ค๋ช ํด์ฃผ์ธ์.
- delay, timing(jitter), throughput ์ฐจ์ด๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.
TCP/IP๋ ์ธํฐ๋ท์์ ํ์ค์ผ๋ก ์ฌ์ฉ๋๊ณ ์๋ ๋คํธ์ํฌ ํ๋กํ ์ฝ(๊ท์น)์ ์๋ฏธํ๋ค. TCP/IP๋ IP(Internet Protocol)์ ์ค์ฌ์ผ๋ก ํ ์ฌ๋ฌ ํ๋กํ ์ฝ์ ์งํฉ์ฒด๋ก, TCP/IP 5๊ณ์ธต ํน์ TCP/IP 4๊ณ์ธต(๋งํฌ๊ณ์ธต๊ณผ ๋ฌผ๋ฆฌ๊ณ์ธต์ ํ๋์ ๊ณ์ธต์ผ๋ก ๋ณด๋ ๊ฒฝ์ฐ)์ผ๋ก ๋ถ๋ฆฐ๋ค.
TCP/IP๋ ํฌ๊ฒ 5๊ฐ์ ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต(Application Layer, L5)
๋คํธ์ํฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ํ๋กํ ์ฝ์ด ์๋ ๊ณณ์ด๋ค. HTTP, SMTP, FTP์ ๊ฐ์ ๋ง์ ํ๋กํ ์ฝ์ ํฌํจํ๋ค. ๋๋ฉ์ธ ์ฃผ์๋ฅผ 32๋นํธ ๋คํธ์ํฌ ์ฃผ์๋ก ๋ณํํ๋ ๊ธฐ๋ฅ์ ์ํ DNS(Domain Name Server)๋ฅผ ์ง์ํ๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ํจํท์ ๋ฉ์์ง(message)๋ผ๊ณ ํ๋ค.
ํธ๋์คํฌํธ ๊ณ์ธต(Transport Layer, L4)
๋คํธ์ํฌ ๊ณ์ธต์์ ๋ณด๋ด์จ ๋ฐ์ดํฐ ์ ๋ ฌ, ์ค๋ฅ ์ ์ ๋ฑ์ ์ํํ๊ณ ์ ๋ขฐํ ์ ์๋ ํต์ ์ ํ๋ณดํ๋ค. TCP/UDP ๊ฐ์ ํ๋กํ ์ฝ์ด ์ด ๊ณ์ธต์ ์์นํ๋ค. TCP, UDP์ ๋ํ ๋ด์ฉ์ [#4] TCP์ UDP์ ์ฐจ์ด๋ฅผ ์ค๋ช ํด์ฃผ์ธ์. ์ ์ฐธ๊ณ ํ๋ค. ํธ๋์คํฌํธ ๊ณ์ธต ํจํท์ ์ธ๊ทธ๋จผํธ(segment)๋ผ๊ณ ํ๋ค.
๋คํธ์ํฌ ๊ณ์ธต(Network Layer/IP Layer, L3)
๋ค๋ฅธ ๋คํธ์ํฌ์ ์๋ ๋ชฉ์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ์ญํ ์ ์ํํ๋ค. ์ฆ, ๋คํธ์ํฌ ๊ฐ์ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ์ญํ ์ ์ํํ๋ค. ์ด๋ฅผ ์ํด, ๋ผ์ฐํฐ(router) ์ฅ๋น์ IP ํ๋กํ ์ฝ(์ค์ง ํ๋๋ง ์กด์ฌ), ๋ผ์ฐํ ํ๋กํ ์ฝ์ด ์ฌ์ฉ๋๋ค. ๋ผ์ฐํฐ๋ ๋ค๋ฅธ ๋คํธ์ํฌ์ ํต์ ํ๊ธฐ ์ํด ๊ฒฝ๋ก๋ฅผ ์ค์ ํ๊ณ ๋ ผ๋ฆฌ์ฃผ์๋ฅผ ๊ฒฐ์ ํ๋ ์ญํ ์ ์ํํ๋ค.(๊ฒฝ๋ก์ค์ ) ๋คํธ์ํฌ ๊ณ์ธต์ ํจํท์ ๋ฐ์ดํฐ๊ทธ๋จ(datagram)์ด๋ผ ํ๋ค.
๋งํฌ ๊ณ์ธต(Data Link Layer, L2)
๋คํธ์ํฌ ๊ธฐ๊ธฐ ๊ฐ ๋ฐ์ดํฐ ์ ์ก ๋ฐ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ๊ฒฐ์ ํ๋ ์ญํ ์ ์ํํ๋ค. ์ฃผ๋ก ๊ฑด๋ฌผ์ด๋ ํน์ ์ง์ญ์ ๋ฒ์๋ก ํ๋ ๋คํธ์ํฌ์ธ ๋(LAN)์์ ๋ฐ์ดํฐ๋ฅผ ์ ์์ ์ผ๋ก ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด ํ์ํ ๊ณ์ธต์ด๋ค. ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต์์๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๋๋ท(Ethernet) ํ๋กํ ์ฝ์ด ์ฌ์ฉ๋๋ฉฐ, ์ค์์น(switch) ๊ฐ์ ์ฅ์น๊ฐ ์ฌ์ฉ๋๋ค. ๋งํฌ ๊ณ์ธต ํจํท์ ํ๋ ์(frame)์ด๋ผ ํ๋ค.
๋ฌผ๋ฆฌ ๊ณ์ธต(Physical Layer, L1)
๋ฌผ๋ฆฌ์ ์ธ ์ฐ๊ฒฐ๊ณผ ์ ๊ธฐ ์ ํธ ๋ณํ/์ ์ด๋ฅผ ๋ด๋นํ์ฌ, ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ ๊ธฐ ์ ํธ๋ก ๋ณํํ๋ค. ๋ํ ์ปดํจํฐ์ ๋คํธ์ํฌ ์ฅ๋น๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฐ๊ฒฐํ์ฌ, ํ๋์ ๋ ธ๋์์ ๋ค๋ฅธ ๋ ธ๋๋ก ๋นํธ๋ฅผ ์ด๋์ํค๋ ์ญํ ์ ์ํํ๋ค. ๋ฌผ๋ฆฌ ๊ณ์ธต์ ํ๋กํ ์ฝ๋ค์ ๋งํฌ(์ค์ ์ ์ก๋งค์ฒด ex.๊ด์ผ์ด๋ธ)์ ์์กดํ๋ค.
- CH.01 ์ปดํจํฐ ๋คํธ์ํฌ์ ์ธํฐ๋ท - LandvibeDev/cs-special-forces-headquarters
- [๋คํธ์ํฌ] TCP/IP 5๊ณ์ธต์์ ์ผ์ด๋๋ ์ผ (1) - ์ฝ์๋ผ์ผ๋ฝ's BLOG
(๋คํธ์ํฌ ์ธํฐํ์ด์ค ๊ณ์ธต
: TCP/IP 5๊ณ์ธต์์ ๋ฌผ๋ฆฌ๊ณ์ธต๊ณผ ๋งํฌ๊ณ์ธต์ ํ๋๋ก ๋ฌถ์ ๊ฒ)
OSI 7๊ณ์ธต์ TCP/IP ๊ณ์ธต์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์ ๋ ์ธ๋ถํํ ๊ฒ์ด๋ค. TCP/IP ๊ณ์ธต๊ณผ ๋ค๋ฅธ, ์์ฉ๊ณ์ธต, ํํ๊ณ์ธต๊ณผ ์ธ์ ๊ณ์ธต์ ๋ํด์ ์ค๋ช ํ๊ณ ๋๋จธ์ง๋ [#1] CP/IP์ ๊ฐ ๊ณ์ธต์ ์ค๋ช ํด์ฃผ์ธ์.์ ์ฐธ๊ณ ํ๋ค.
์์ฉ ๊ณ์ธต(Application Layer)
์ฌ์ฉ์ ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋คํธ์ํฌ์ ์ ๊ทผํ ์ ์๋๋ก ํด์ฃผ๋ ๊ณ์ธต์ด๋ค. ์ฌ์ฉ์๋ฅผ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ง์ํ๋ฉฐ, ์ฌ์ฉ์์๊ฒ ๋ณด์ด๋ ์ ์ผํ ๊ณ์ธต์ด๋ค. ๋ฉ์ผ ์ ์ก, ์ธํฐ๋ท ์ ์ ๋ฑ์ ์์ ์ ์ํํ ์ ์๋ค.
ํํ ๊ณ์ธต(Presentation Layer)
์์ฉ๊ณ์ธต์ผ๋ก๋ถํฐ ์ ๋ฌ๋ฐ๊ฑฐ๋ ์ ์กํ๋ ๋ฐ์ดํฐ์ ์ธ์ฝ๋ฉ ๋ฐ ๋์ฝ๋ฉ์ด ์ด๋ฃจ์ด์ง๋ ๊ณ์ธต์ด๋ค. ์์ฉ ๊ณ์ธต์์ ๋ฐ์ดํฐ๋ฅผ ์ดํดํ ์ ์๋๋ก, ์์ฉํ๋ก๊ทธ๋จ์ ๋ง์ถฐ ๋ณํํ๊ฒ ๋๋ค. ์๋ฅผ๋ค์ด, JPEG, TIFF, GIF, MPEG ๋ฑ์ ๋ค์ํ ํฌ๋งท์ ๊ตฌ๋ถํ๊ฒ ๋๋ค.
์ธ์ ๊ณ์ธต(Session Layer)
์์ฉํ๋ก์ธ์ค๊ฐ ํต์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์ ์ํ๋ค. ๋คํธ์ํฌ์ ์์ชฝ์ ์ฐ๊ฒฐ์ ๊ด๋ฆฌ/์ง์์ํค๋ ์ญํ ๊ณผ ์ธ์ ์ ๋ง๋ค๊ฑฐ๋ ์์ ๋ ์ญํ ์ ๋ด๋นํ๋ ๊ณ์ธต์ด๋ค. ํต์ ํ๋ ์ฌ์ฉ์๋ค์ ๋๊ธฐํํ๊ณ ์ค๋ฅ๋ณต๊ตฌ๋ฅผ ์งํํ๋ค. ํต์ ์ฐ๊ฒฐ์ ํฌํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ฑํ์ฌ ์ฐ๊ฒฐ๋๋ฉฐ, OS๊ฐ ์ธ์ ๊ณ์ธต์ ์ํ๋ค.
- ๋คํฌ์ํฌ์ ๊ธฐ๋ณธ OSI7 ๊ณ์ธต - reakwon ํฐ์คํ ๋ฆฌ
- IT๊ด๋ จ ์ฉ์ด - [OSI 7๊ณ์ธต] ์ด๋? - pst8627 ๋ธ๋ก๊ทธ
- Packet: ์ปดํจํฐ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋, ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋๋ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ํจํท์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ก์ ์ธก(์ ํ๋ฆฌ์ผ์ด์ )์ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ํ๋ฒ์ ๋ณด๋ด๋ ๊ฒ์ด ์๋๋ผ, ์ผ์ ๋จ์๋ก ์๋ผ์ ๋ณด๋ธ๋ค. ๊ฐ ๊ณ์ธต์์ ํ์ํ ์ ๋ณด๋ ์บก์ํ/์ญ์บก์ํ๋์ด ์ ๋ฌ๋๊ณ , ์์ ์ธก์ ๋ฐ์ ํจํท์ ๋ค์ ์กฐ๋ฆฝํด์ ์ฌ์ฉํ๋ค.
- Segment: Transport ๊ณ์ธต(L4)์์ ์ ๋ขฐํ ์ ์๋ ํต์ ์ ๊ตฌํํ๊ธฐ ์ํ ํค๋๋ฅผ ๋ฐ์ดํฐ(L5 ๊ณ์ธต ๋ฐ์ดํฐ)์ ๋ถ์ด๋๋ฐ, ์ด๋ ๊ฒ ๋ง๋ค์ด์ง ํจํท์ ์ธ๊ทธ๋จผํธ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- Datagram: Network ๊ณ์ธต(L3)์์ ๋ค๋ฅธ ๋คํธ์ํฌ์ ํต์ ํ๊ธฐ ์ํ ํค๋๋ฅผ ์ธ๊ทธ๋จผํธ(L4 ๊ณ์ธต ๋ฐ์ดํฐ)์ ๋ถ์ธ๊ฒ์ ๋ฐ์ดํฐ๊ทธ๋จ, ๋ฐ์ดํฐ ์ธ๊ทธ๋จผํธ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- Frame: ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต(L2)์์ ๋ฌผ๋ฆฌ์ ์ธ ํต์ ์ฑ๋์ ์ด๊ธฐ ์ํด ํจํท์ ํค๋์ ํธ๋ ์ผ๋ฌ๋ฅผ ๋ถ์ธ๋ค. ํธ๋ ์ผ๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ๋ฐ์ดํฐ ๋ ๋ถ๋ถ์ ๋ถ์ด๋ ์ ๋ณด๋ก, ์ฃผ๋ก ์๋ฌ ๊ฒ์ถ์ ์ฌ์ฉ๋๋ค.
์ ํจํท์ ์๋ผ์ ๋ณด๋ผ๊น?
๋ง์ ๋ฐ์ดํฐ๋ฅผ ํ๋ฒ์ ๋ณด๋ด๊ฒ ๋๋ฉด, ๋ฐ์ดํฐ ์์ค์ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฉฐ, ๋์ญํญ(์ ํธ๋ฅผ ์ ์กํ ์ ์๋ ์ฃผํ์ ๋ฒ์)์ ๋๋ฌด ๋ง์ด ์ฐจ์งํ๊ฒ ๋๋ฏ๋ก, ํจํท์ ํ๋ฆ์ ์ํํ ์กฐ์ ํ๊ธฐ ์ํจ์ด๋ค.
์์ผ(Socket), ํฌํธ(Port), ํจํท(Packet)
Port๋ ํ๋ก์ธ์ค๋ฅผ ์๋ณํ๊ธฐ ์ํด, ํธ์คํธ ๋ด๋ถ์ ์ผ๋ก ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ฐ๋ ๊ณ ์ ํ ๊ฐ์ด๋ค. ๊ฐ์ ํธ์คํธ ๋ด์์ ์๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ํฌํธ ๋๋ฒ๋ฅผ ๊ฐ์ง ์ ์์, ๋์ ๊ฐ์ ์์ผ์ ์ฌ์ฉํ์ง๋ ๋ชปํ๋ค. accept()
๋ฅผ ํตํด ๋ง๋ค์ด์ง๋ ์์ผ์๋ ์๋ก์ด ํฌํธ ๋ฒํธ๊ฐ ํ ๋น๋๋ ๊ฒ์ด ์๋๋ผ, ์๋ฒ๊ฐ ๊ฐ์ง๋ ํฌํธ(์น์๋ฒ ๊ธฐ์ค, 80)์ ๋์ผํ ํฌํธ ๋ฒํธ๋ฅผ ๊ฐ์ง๋ค. ๋ง์ฝ ์ง์ ๋ ํฌํธ ๋ฒํธ๋ฅผ ๋ค๋ฅธ ์์ผ์ด ์ฌ์ฉํ๊ณ ์๋ค๋ฉด, bind()
API๋ ์๋ฌ๋ฅผ ๋ฆฌํดํ๋ค. ํฌํธ๋ ๋
ผ๋ฆฌ์ ์ธ ์ ์์ฅ์์ด๋ค.
Socket์ ํ๋ก์ธ์ค๋ก๋ถํฐ ๋คํธ์ํฌ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ์ถ์
๊ตฌ(์ธํฐํ์ด์ค) ์ญํ ์ ํ๋ค. ํ๋ก์ธ์ค์์ ์์ผ์ ์ฐ๋ค
๊ณ ํํํ๋ฉฐ, ์์ ์ธก ํธ์คํธ์ ํธ๋์คํฌํธ ๊ณ์ธต์ ์ค์ ๋ก ๋ฐ์ดํฐ(์ธ๊ทธ๋จผํธ)๋ฅผ ์ง์ ํ๋ก์ธ์ค๋ก ์ ๋ฌํ์ง ์๊ณ , ์ค๊ฐ ๋งค๊ฐ์์ธ ์์ผ์๊ฒ ์ ๋ฌํ๋ค. ํธ์คํธ์์๋ ํ๋ ์ด์์ ์์ผ์ด ์กด์ฌํ ์ ์์ผ๋ฏ๋ก ์์ผ์ ๊ณ ์ ์ ์๋ณ์๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผํ๋ค. ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ํฌํธ๋ฅผ ๊ฐ์ง๊ณ ๋ ์ฌ๋ฌ ๊ฐ์ ์์ผ์ ์ด ์ ์๊ธฐ ๋๋ฌธ์, ์์ผ๊ณผ ํฌํธ๋ ๋ค๋ฅธ ๊ฐ๋
์ด๋ค.
์์ฝํ์๋ฉด, ์์ผ์ ํ๋ก์ธ์ค๊ฐ ๋คํธ์ํฌ๋ฅผ ํตํด์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ ค๋ฉด ๋ฐ๋์ ์ด์ด์ผ ํ๋ ์ฐฝ๊ตฌ ๊ฐ์ ๊ฒ์ด๊ณ , ํฌํธ๋ ํ๋ก์ธ์ค ์๋ณ์ ์ํด ํ๋์ ํธ์คํธ์์ ํ๋ก์ธ์ค์ ํ ๋นํ๋ ๊ณ ์ ๊ฐ์ด๊ณ , ํจํท์ ๋คํธ์ํฌ ์์ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ๋งํ๋ ๊ฒ์ด๋ค.
์บก์ํ/์ญ์บก์ํ
- ์บก์ํ(Encapsulation): (๋ฐ์ดํฐ ์ก์ ์)ํ์ ๊ณ์ธต์ผ๋ก ํจํท์ ๋ณด๋ผ๋, ํ์๊ณ์ธต์์ ํ์๋กํ๋ ์ถ๊ฐ์ ๋ณด(๋ฉํ๋ฐ์ดํฐ)๋ฅผ ํค๋/ํธ๋ ์ผ๋ฌ์ ์ถ๊ฐํ์ฌ ๋ณด๋ด๊ฒ๋๋ค.
- ์ญ์บก์ํ(Decapsulation): ๋ฐ์ดํฐ ์์ ์, ์์ ๊ณ์ธต์ผ๋ก ํจํท์ ์ ๋ฌํ๊ณ , ์ ๋ฌ๋ ํจํท์ ํค๋๋ฅผ ์ฐจ๋ก๋๋ก ์ ๊ฑฐํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ป๊ฒ ๋๋ค.
- ํจํท์ด๋ ๋ฌด์์ผ๊น? ํจํท์ ์ ์์ ๊ตฌ์กฐ - Jay's Blog
- [๋คํธ์ํฌ] TCP/IP 5๊ณ์ธต์์ ์ผ์ด๋๋ ์ผ (1) - ์ฝ์๋ผ์ผ๋ฝ's BLOG
TCP์ UDP๋ ๋ชจ๋ ํธ๋์คํฌํธ ๊ณ์ธต(4๊ณ์ธต)์ ํ๋กํ ์ฝ์ด๋ค. TCP์ UDP๊ฐ ๊ณตํต์ ์ผ๋ก ๊ฐ์ง๊ณ ์๋ ๊ธฐ๋ฅ์ ์๋์ ๊ฐ๋ค.
- ํธ๋์คํฌํธ ๋ค์คํ/์ญ๋ค์คํ ๊ธฐ๋ฅ(Transport Multiplexing/Demultiplexing):
ํธ์คํธ ๋ ํธ์คํธ ์ ๋ฌ
์ํ๋ก์ธ์ค ๋ ํ๋ก์ธ์ค ์ ๋ฌ
๋ก ํ์ฅ - ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ(์ค๋ฅ๊ฒ์ถ): ํค๋์ ์ค๋ฅ ๊ฒ์ถ ํ๋๋ฅผ ํฌํจ
์ด์ TCP์ UDP ๊ฐ๊ฐ์ ๋ํด ์์๋ณด์.
UDP๋ ์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋๊ฐ์ง ๊ธฐ๋ฅ๋ง์ ์ ๊ณตํ๋ค. UDP๋ ๋น์ ๋ขฐ์ ์ธ ์๋น์ค๋ก์, ํ๋ก์ธ์ค์ ์ํด์ ์ ์ก๋ ๋ฐ์ดํฐ๊ฐ ์์๋์ง ์์์ฑ๋ก ๋ชฉ์ ์ง์ ๋์ฐฉํ๋ ๊ฒ์ ๋ณด์ฅํ์ง ์๋๋ค. ๋ํ ๋น์ฐ๊ฒฐํ ์๋น์ค์ด๋ฉฐ, ์ค๋ฅ๊ฒ์ถ์ ์ ํ์ฌํญ์ด๋ค.
UDP๋ ๋น์ฐ๊ฒฐํ ์๋น์ค์ด๋ฏ๋ก ์ฐ๊ฒฐ์ค์ ์ด ๋ถํ์ํ๊ณ ์ฐ๊ฒฐ์ํ๊ฐ ์๋ค. ๋ฐ๋ผ์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ธฐ์ํ ์ด๋ ํ ์ง์ฐ์ด ์๊ณ , ์ ์งํด์ผํ๋ ์ ๋ณด๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ ๋ง์ ํด๋ผ์ด์ธํธ๋ฅผ ์์ฉํ ์ ์๋ค. ๋ํ UDP์ ํจํท ์ค๋ฒํค๋(8 byte per segment)๊ฐ TCP(20 byte per segment)์ ๋นํด ๋ ์๋ค๋ ์ฅ์ ์ด ์๋ค. ๊ทธ๋ฌ๋ ํผ์ก์ ์ด๋ฅผ ์ฌ์ฉํ์ง ์์, ๋คํธ์ํฌ๊ฐ ํญ์ฃผ์ํ์ ๋น ์ง๋ ๊ฒ์ ๋ง์ ์ ์๋ค๋ ๋จ์ ๊ณผ ์ ๋ขฐ์ ์ด์ง ์์ผ๋ฏ๋ก, ๋ช๋ช์ ์ ๋ณด๋ฅผ ์์ด๋ฒ๋ฆด ์ ์๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ค.
TCP๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋๊ฐ์ง ๊ธฐ๋ฅ๋ ์ ๊ณตํ๋ฉด์, ์ ๋ขฐ์ ์ธ ๋ฐ์ดํฐ ์ ๋ฌ(Reliable Data Transfer) ๊ธฐ๋ฅ, ์ฐ๊ฒฐ์งํฅํ ์๋น์ค, ํผ์ก์ ์ด(Congestion control) ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
์ ๋ขฐ์ ์ธ ๋ฐ์ดํฐ ์ ๋ฌ์ ํ๋ฆ์ ์ด, ์์๋ฒํธ, ํ์ธ์๋ต, ํ์ด๋จธ ๋ฑ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ํ๋ก์ธ์ค์๊ฒ ๋ฐ์ดํฐ๊ฐ ์์๋๋ก ์ ํํ ์ ๋ฌ๋๋๋ก ํ๋ ์ญํ ์ ํ๋ค. ์ข ๋จ ์์คํ ๊ฐ์ IP์ ๋น์ ๋ขฐ์ ์ธ ์๋น์ค๋ฅผ ํ๋ก์ธ์ค ์ฌ์ด์ ์ ๋ขฐ์ ์ธ ๋ฐ์ดํฐ ์ ์ก ์๋น์ค๋ก ๋ง๋ค์ ์์ผ๋ฉฐ, TCP์์์ ์ค๋ฅ๊ฒ์ถ์ ํ์์ฌํญ์ด๋ค. ํผ์ก์ ์ด๋ ๋ณด๋ด๋ ์ชฝ(์ก์ ์ธก)์ ํธ๋ํฝ์ ์กฐ์ ํ์ฌ ์ค์์น/๋งํฌ์ ํผ์ก์ ๋ฐฉ์งํ๋ ์ญํ ์ ํ๋ค. ์ด๋ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด ์ ๊ณตํ๋ ํน์ ์๋น์ค๊ฐ ์๋๋ผ, ์ ์ฒด๋ฅผ ์ํ ์๋น์ค๋ก์, ํผ์กํ ๋คํธ์ํฌ ๋งํฌ์์ ๊ฐ TCP ์ฐ๊ฒฐ์ด ๋งํฌ์ ๋์ญํญ์ ๊ณตํํ๊ฒ ๊ณต์ ํ์ฌ ํต๊ณผํ๋๋ก ํด์ค๋ค.
๋ฐ๋ผ์, UDP๋ ์๋์ฆ๊ฐ์ ์ง์ฐ ๊ฐ์๋ฅผ ์ํด์ ๋ง์ด ์ฌ์ฉ๋๊ณ , TCP๋ ์ ๋ขฐ์ฑ์ด ์ค์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค. ์๋ฅผ๋ค์ด, UDP๋ ๋์์ ์ ์ก๊ณผ ๊ฐ์ด, ๋ช ํ๋ ์ ์ ๋ ์์ค๋์ด๋ ๊ด์ฐฎ์ ๋ฐ์ดํฐ ์ ์ก์ ์ฌ์ฉ๋๊ณ , TCP๋ ๋ช๋ช์ ์ ๋ณด๋ ์์ค๋์ด์๋ ์๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ฉ๋๋ค.
UDP segment์ ๊ฐ๋ตํ ๊ตฌ์กฐ๋ ์๋์ ๊ฐ๋ค.
์ ํ๋ฆฌ์ผ์ด์
๋ฐ์ดํฐ๋ UDP ๋ฐ์ดํฐ๊ทธ๋จ์ ๋ฐ์ดํฐ ํ๋์ ์์นํ๋ค. UDP ํค๋๋ 2๋ฐ์ดํธ(16๋นํธ)์ฉ ๊ตฌ์ฑ๋ 4๊ฐ์ ํ๋๋ฅผ ๊ฐ์ง๋ค. UDP ํค๋๋ ์ถ๋ฐ์ง ํฌํธ๋ฒํธ
, ๋ชฉ์ ์ง ํฌํธ๋ฒํธ
, ์ฒดํฌ์ฌ
, ๊ธธ์ด
๋ก ์ด๋ฃจ์ด์ ธ์๋ค.
- ํฌํธ๋ฒํธ๋ (๋ชฉ์ ์ง) ํธ์คํธ๊ฐ (์ญ๋ค์คํ ๊ธฐ๋ฅ์ ์ํํ๋) ์ ํํ ํ๋ก์ธ์ค์๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐ๊ฒ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
- ์ฒดํฌ์ฌ(checksum)์ ์ธ๊ทธ๋จผํธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง๋ฅผ ๊ฒ์ฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ฉฐ, ์ฒดํฌ์ฌ์ UDP ์ธ๊ทธ๋จผํธ ์ด์ธ์ IP ํค๋์ ์ผ๋ถ ํ๋๋ ๊ณ์ฐํ๋ค.(๊ฐ์ํค๋) UDP ํค๋์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ํฌํจํ์ฌ ์ฒดํฌํ๊ฒ ๋๋ค.
- ๊ธธ์ด๋ ํค๋๋ฅผ ํฌํจํ๋ UDP ์ธ๊ทธ๋จผํธ์ ๊ธธ์ด(๋ฐ์ดํธ ๋จ์)๋ฅผ ๋ํ๋ธ๋ค. UDPํค๋์ ๋ฐ์ดํฐ๋ฅผ ํฉ์น ๊ธธ์ด๋ฅผ ๋ํ๋ธ๋ค.
TCP segment์ ๊ฐ๋ตํ ๊ตฌ์กฐ๋ ์๋์ ๊ฐ๋ค.
TCP ์์ผ์ 4๊ฐ์ ๋ค๋ฅธ ์์๋ค์ ์งํฉ์ ์ํด ์๋ณ๋๋ค.(์ถ๋ฐ์ง IP
, ์ถ๋ฐ์ง ํฌํธ๋ฒํธ
, ๋ชฉ์ ์ง IP
, ๋ชฉ์ ์ง ํฌํธ๋ฒํธ
) ๋ฐ๋ผ์ IP๋ฅผ ์ ์ธํ ์ถ๋ฐ์ง/๋์ฐฉ์ง ํฌํธ๋ฒํธ
(๊ฐ 16 bit)์ sequence number
(32 bit), ack number
(32 bit)๋ฅผ ํฉ์ณ, ๊ธฐ๋ณธ์ ์ผ๋ก 20 byte์ ํค๋๋ฅผ ๊ฐ์ง๊ฒ ๋๋ฉฐ, ์ต์
์ ํฌํจํ๋ฉด ์ต๋ 60 byte์ ํค๋๋ฅผ ๊ฐ์ง ์ ์๋ค. ๋ค๋ฅธ ์ถ๋ฐ์ง ์ฃผ์๋ฅผ ๊ฐ์ง๋ ์ธ๊ทธ๋จผํธ๋, ๋ค๋ฅธ ์์ผ์ ํตํด์ ํ๋ก์ธ์ค์ ์ ๋ฌ๋๋ค. UDP์ ๋ค๋ฅด๊ฒ, TCP ์ธ๊ทธ๋จผํธ๋ ์ถ๋ฐ์ง ์ฃผ์๊ฐ ๋ค๋ฅด๋ฉด, ๋ค๋ฅธ ์์ผ์ผ๋ก ์ ๋ฌ๋๋ค.
- ํฌํธ๋ฒํธ๋ IP ์ ๋ณด์ ๊ฒฐํฉํ์ฌ ์ถ๋ฐ์ง, ๋์ฐฉ์ง๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
- Sequence Number๋ SYN ํจํท์ ๋ณด๋ผ๋, ๋๊ธฐํ๋ฅผ ์ํด ์ฌ์ฉ๋๋ ๋ฒํธ์ด๋ค. ์ด๊ธฐ Sequence Number๋ฅผ ISN์ด๋ผ ๋ถ๋ฅด๋ฉฐ, ์ฌ๊ธฐ์๋ ๋๋คํ ์๊ฐ ๋ด๊ธด๋ค.
- Ack Number๋ ACK ํจํท์ ๋ณด๋ผ ๋ ๋๊ธฐํ๋ฅผ ์ํด ์ฌ์ฉ๋๋ ๋ฒํธ์ด๋ค.
ํธ๋์ ฐ์ดํฌ(Handshake)๋, ํธ์คํธ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ์ ๋จผ์ ์ ํํ ์ ์ก์ ๋ณด์ฅํ๊ธฐ ์ํด ์๋๋ฐฉ ์ปดํจํฐ์ ์ฌ์ ์ ์ธ์ ์ ์๋ฆฝํ๋ ๊ณผ์ ์ ์๋ฏธํ๋ค.
3-way handshake๋ TCP์ ์ฐ๊ฒฐ์ ์ด๊ธฐํ ํ ๋ ์ฌ์ฉํ๋ค. ์์ชฝ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ค๋น๊ฐ ๋์๋ค๋ ๊ฒ์ ๋ณด์ฅํ๊ณ , ์ค์ ๋ก ๋ฐ์ดํฐ ์ ๋ฌ์ด ์์ํ๊ธฐ์ ์ ํ์ชฝ์ด ๋ค๋ฅธ ์ชฝ์ด ์ค๋น๋์๋ค๋ ๊ฒ์ ์์ ์๋๋ก ํ๋ค. ์์ชฝ ๋ชจ๋ ์๋ํธ์ ๋ํ ์ด๊ธฐ ์์ฐจ์ผ๋ จ๋ณํธ๋ฅผ ์ป์ ์ ์๋๋ก ํ๋ค. ์ ์ฐจ๋ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ ์ ์์ฒญ ํ๋ก์ธ์ค๊ฐ ์ฐ๊ฒฐ ์์ฒญ ๋ฉ์์ง ์ ์กํ๋ค.(SYN)
- ์ ์ ์์ฒญ์ ๋ฐ์ ํ๋ก์ธ์ค๊ฐ ์์ฒญ์ ์๋ฝํ๋ค๋ ํ์ธ ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค. (ACK) ๋์์ ์ ์ ์์ฒญ์ ๋ฐ์ ํ๋ก์ธ์ค๋ ์ ์ ์์ฒญ์ ํ ํ๋ก์ธ์ค์ ์ฐ๊ฒฐ ์์ฒญ์ ๋ณด๋ธ๋ค.(SYN) โ (SYN + ACK)
- ๋ง์ง๋ง์ผ๋ก ์ ์ ์์ฒญ ํ๋ก์ธ์ค๊ฐ ์๋ฝ ํ์ธ์ ๋ณด๋ด ์ฐ๊ฒฐ์ ๋งบ๋๋ค.(ACK)
๋จ์ํ ์๋ต์ ์ฃผ๊ณ ๋ฐ๋๋ฐ 2-way Handshake๋ฉด ์ถฉ๋ถํด๋ณด์ด์ง ์๋๊ฐ? ์ 3-way ์ผ๊น? TCP/IP ํต์ ์ ์๋ฐฉํฅ์ฑ connection์ด๋ค. ์์ ๊ทธ๋ฆผ์ 1๋ฒ ๊ณผ์ ์์ ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ ์์ฒญ์ SYN์ผ๋ก ๋ณด๋ด๋ฉด, ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ SYN์ ๋ํ ๋๋ต(ACK)๊ณผ ํจ๊ป, ์์ ๋ ์ฐ๊ฒฐํ๊ฒ ๋ค๋ ์์ฒญ์ ์๋ฏธ๋ก SYN์ ๋ณด๋ด๊ณ , ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์์ฒญ์ ๋ํ ๋๋ต(๊ณผ์ 3)์ ๋ฐ์์ผํ๋ค. ์ด ๊ณผ์ ์ 2-way handshaked์์๋ ์ฑ๋ฆฝ๋ ์ ์๋ค.
4-way handshake๋ ์ธ์ ์ ์ข ๋ฃํ๊ธฐ ์ํด ์ํ๋๋ ์ ์ฐจ์ด๋ค. ๊ตฌ์ฒด์ ์ธ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๊ฒ ๋ค๋ FIN ํ๋๊ทธ๋ฅผ ์ ์กํ๋ค.
- ์๋ฒ๋ ์ผ๋จ ํ์ธ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ์์ ์ ํต์ ์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋๋ฐ, ์ด ์ํ๊ฐ
TIME_WAIT
์ํ์ด๋ค. - ์๋ฒ๊ฐ ํต์ ์ด ๋๋ฌ์ผ๋ฉด ์ฐ๊ฒฐ์ด ์ข ๋ฃ๋์๋ค๊ณ ํด๋ผ์ด์ธํธ์๊ฒ FIN ํ๋๊ทธ๋ฅผ ์ ์กํ๋ค.
- ํด๋ผ์ด์ธํธ๋ ํ์ธํ๋ค๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค.
๐ก
CLOSE_WAIT
์TIME_WAIT
์ํ๋ ๋ฌด์์ผ๊น?
TIME_WAIT
์ํ๋ก ๋๊ธฐํ๋ ์ด์ ๋, ์ธ์ ์ข ๋ฃํ, ํน์๋ ๋คํธ์ํฌ์ ์์ง ๋ผ์ด๋ธ ํจํท์ด ์กด์ฌํ ์๋ ์๊ธฐ๋๋ฌธ์ด๋ค.
๐ก ์ฉ์ด
- SYN(Synchronization): ์ฐ๊ฒฐ์์ฒญ, ์ธ์ ์ ์ค์ ํ๋๋ฐ ์ฌ์ฉ๋๋ฉฐ ์ด๊ธฐ์ ์ํ์ค ๋ฒํธ๋ฅผ ๋ณด๋ธ๋ค.
- ACK(Acknowledgement): ๋ณด๋ธ ์ํ์ค ๋ฒํธ์ TCP ๊ณ์ธต์์์ ๊ธธ์ด ๋๋ ์์ ๋ํ ๊ฒ๊ณผ ๊ฐ์ ๊ฐ์ ACK์ ํฌํจํ์ฌ ์ ์กํ๋ค.
- FIN(Finish) : ์ธ์ ์ ์ข ๋ฃ์ํค๋๋ฐ ์ฌ์ฉ๋๋ฉฐ ๋ ์ด์ ๋ณด๋ธ ๋ฐ์ดํฐ๊ฐ ์์์ ํ์ํ๋ค.
- [๋คํธ์ํฌ] 3-way / 4-way Handshake ๋? - ๋ฐฉ๊ตฌ์ ๊ฐ๋ฐ๋์
- TCP์ 3 way Handshake๊ณผ 4 way Handshake - ์๋น์ค๊ฐ ํ์ํด
- 3-way handshake 4-way handshake๋ ์ ํ์ํ ๊น? - ์ ํ๋ฒํ ๊ฐ๋ฐ์์ ํ๋ฃจ
TCP์ ์ฐ๊ฒฐ ์ค์ ๊ณผ์ (3๋จ๊ณ)๊ณผ ์ฐ๊ฒฐ ์ข ๋ฃ ๊ณผ์ (4๋จ๊ณ)์ด ๋จ๊ณ๊ฐ ์ฐจ์ด๋๋ ์ด์ ๊ฐ ๋ฌด์์ธ๊ฐ์?
์ฐ๊ฒฐ ์ค์ ๊ณผ์ ๊ณผ ๋ค๋ฅด๊ฒ, ์ฐ๊ฒฐ ์ข
๋ฃ ๊ณผ์ ์์ ๊ณ ๋ คํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋๋ฐ, ์ด๋ ์ ์ก์ค์ธ ๋ฐ์ดํฐ์ ๋ํ ๊ฒฝ์ฐ์ด๋ค. ํด๋ผ์ด์ธํธ๋ ์์ง ์๋ฒ๋ก๋ถํฐ ๋ชป ๋ฐ์ ๋ฐ์ดํฐ๊ฐ ์์ ๊ฒ์ ๋๋นํ์ฌ ์ผ์ ์๊ฐ๋์ ์ธ์
์ ๋จ๊ธด๋ค(TIME_WAIT
). ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค ๋ณด๋ด์ ๋ ์ด์ ๋ณด๋ผ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ ์๋ฏธ์ FIN
์ ๋ฐ์ผ๋ฉด, ๋ฐ๋ก ์ฐ๊ฒฐ์ ์ข
๋ฃํ๋ค.
๋ง์ฝ Server์์ FIN ํ๋๊ทธ๋ฅผ ์ ์กํ๊ธฐ ์ ์ ์ ์กํ ํจํท์ด Routing ์ง์ฐ์ด๋ ํจํท ์ ์ค๋ก ์ธํ ์ฌ์ ์ก ๋ฑ์ผ๋ก ์ธํด FIN ํจํท๋ณด๋ค ๋ฆ๊ฒ ๋์ฐฉํ๋ ์ํฉ์ด ๋ฐ์ํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
ํด๋ผ์ด์ธํธ์์ ์ธ์ ์ ์ข ๋ฃ์ํจ ํ ๋ค๋ฆ๊ฒ ๋์ฐฉํ๋ ํจํท์ด ์๋ค๋ฉด ์ด ํจํท์ Drop๋๊ณ ๋ฐ์ดํฐ๋ ์ ์ค๋ ๊ฒ์ด๋ค.
A ํด๋ผ์ด์ธํธ๋ ์ด๋ฌํ ํ์์ ๋๋นํ์ฌ Client๋ Server๋ก๋ถํฐ FIN
์ ์์ ํ๋๋ผ๋ ์ผ์ ์๊ฐ๋์ ์ธ์
์ ๋จ๊ฒจ๋๊ณ ์์ฌ ํจํท์ ๊ธฐ๋ค๋ฆฌ๋ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋๋๋ฐ ์ด ๊ณผ์ ์ TIME_WAIT
๋ผ๊ณ ํ๋ค. ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด, ์ธ์
์ ๋ง๋ฃํ๊ณ ์ฐ๊ฒฐ์ ์ข
๋ฃ์ํค๋ฉฐ, CLOSE
์ํ๋ก ๋ณํํ๋ค.
์ด๊ธฐ Sequence Number์ธ ISN์ 0๋ถํฐ ์์ํ์ง ์๊ณ ๋์๋ฅผ ์์ฑํด์ ์ค์ ํ๋ ์ด์ ๊ฐ ๋ฌด์์ธ๊ฐ์?
Connection์ ๋งบ์ ๋ ์ฌ์ฉํ๋ ํฌํธ๋ ์ ํ ๋ฒ์ ๋ด์์ ์ฌ์ฉํ๊ณ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฌ์ฌ์ฉ๋๋ค.
๋ฐ๋ผ์ ๋ ํต์ ํธ์คํธ๊ฐ ๊ณผ๊ฑฐ์ ์ฌ์ฉ๋ ํฌํธ ๋ฒํธ ์์ ์ฌ์ฉํ๋ ๊ฐ๋ฅ์ฑ์ด ์กด์ฌํ๋ค.
์๋ฒ ์ธก์์๋ ํจํท์ SYN์ ๋ณด๊ณ ํจํท์ ๊ตฌ๋ถํ๊ฒ ๋๋๋ฐ ๋์๊ฐ ์๋ ์์ฐจ์ ์ธ number๊ฐ ์ ์ก๋๋ค๋ฉด ์ด์ ์ connection์ผ๋ก๋ถํฐ ์ค๋ ํจํท์ผ๋ก ์ธ์ํ ์ ์๋ค.
์ด๋ฌํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ธฐ ์ํด์ ๋์๋ก ISN์ ์ค์ ํ๋ ๊ฒ์ด๋ค.
HTTP๋ ์๋ฒ/ํด๋ผ์ด์ธํธ ๋ชจ๋ธ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํ๋กํ ์ฝ์ด๋ค. ์ฆ, HTTP๋ ์ธํฐ๋ท์์ ํ์ดํผํ ์คํธ๋ฅผ ๊ตํํ๊ธฐ ์ํ ํต์ ๊ท์ฝ์ผ๋ก, 80๋ฒ ํฌํธ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค. ๋ฐ๋ผ์ HTTP ์๋ฒ๊ฐ 80๋ฒ ํฌํธ์์ ์์ฒญ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ผ๋ฉฐ, ํด๋ผ์ด์ธํธ๋ 80๋ฒ ํฌํธ๋ก ์์ฒญ์ ๋ณด๋ด๊ฒ ๋๋ค.
HTTP๋ 1989๋ ํ ๋ฒ๋์ค ๋ฆฌ(Tim Berners Lee)์ ์ํด ์ฒ์ ์ค๊ณ๋์์ผ๋ฉฐ, WWW(World-Wide-Web) ๊ธฐ๋ฐ์์ ์ธ๊ณ์ ์ธ ์ ๋ณด๋ฅผ ๊ณต์ ํ๋๋ฐ ํฐ ์ญํ ์ ํ์๋ค.
HTTPS๋ HTTP์ ๋ฐ์ดํฐ ์ํธํ๊ฐ ์ถ๊ฐ๋ ํ๋กํ ์ฝ์ด๋ค. HTTPS๋ HTTP์ ๋ค๋ฅด๊ฒ 443๋ฒ ํฌํธ๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๋คํธ์ํฌ ์์์ ์ค๊ฐ์ ์ 3์๊ฐ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๋๋ก ๊ณต๊ฐํค ์ํธํ๋ฅผ ์ง์ํ๊ณ ์๋ค.
HTTP๋ ์ํธํ๊ฐ ์ถ๊ฐ๋์ง ์์๊ธฐ ๋๋ฌธ์ ๋ณด์์ ์ทจ์ฝํ ๋ฐ๋ฉด, HTTPS๋ ์์ ํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค. ํ์ง๋ง HTTPS๋ฅผ ์ด์ฉํ๋ฉด ์ํธํ/๋ณตํธํ์ ๊ณผ์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ HTTP๋ณด๋ค ์๋๊ฐ ๋๋ฆฌ๋ค. ๋ํ HTTPS๋ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ๊ณ ์ ์งํ๊ธฐ ์ํ ์ถ๊ฐ ๋น์ฉ์ด ๋ฐ์ํ๋ค.
๊ฐ์ธ ์ ๋ณด์ ๊ฐ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ผ ํ๋ค๋ฉด HTTPS๋ฅผ ์ด์ฉํด์ผ ํ์ง๋ง, ๋จ์ํ ์ ๋ณด ์กฐํ ๋ฑ ๋ง์ ์ฒ๋ฆฌํ๊ณ ์๋ค๋ฉด HTTP๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค.
(TODO: ๋ต๋ณ ์์ฑํ๊ธฐ)
- HTTP ๊ตฌ์กฐ ๋ฐ ํต์ฌ ์์ - teddybearjung
- [๋คํธ์ํฌ] http ๋ - ์ธ์์ ๋ก๊ทธ์บฃ
- HTTP ๋ฉ์์ง - MDN Web Docs
(TODO: ๋ต๋ณ ์ถ๊ฐํ๊ธฐ)
- HTTP & DNS & TCP ์ ์ ๋ฐ ๋์์๋ฆฌ - lkh's
- [Web ๊ธฐ์ด] HTTP ํต์ ๊ณผ์ - MYSTERICO BLOG
- [Web ๊ธฐ์ด] HTTPS์ ๋์ ์๋ฆฌ (feat. ์์ด์ด์คํฌ) - MYSTERICO BLOG
๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค ๊ณต์ (Cross-Origin Resource Sharing, CORS)๋ ์ถ๊ฐ HTTP ํค๋๋ฅผ ์ฌ์ฉํ์ฌ, ํ ์ถ์ฒ์์ ์คํ ์ค์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค๋ฅธ ์ถ์ฒ์ ์ ํํ ์์์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํ๋๋ก ๋ธ๋ผ์ฐ์ ์ ์๋ ค์ฃผ๋ ์ฒด์ ์ด๋ค.
CORS ์ฒด์ ๋ ๋ธ๋ผ์ฐ์ ์ ์๋ฒ ๊ฐ์ ์์ ํ ๊ต์ฐจ ์ถ์ฒ ์์ฒญ ๋ฐ ๋ฐ์ดํฐ ์ ์ก์ ์ง์ํ๋ค. ์ต์ ๋ธ๋ผ์ฐ์ ๋ XMLHttpRequest ๋๋ Fetch์ ๊ฐ์ API์์ CORS๋ฅผ ์ฌ์ฉํ์ฌ ๊ต์ฐจ ์ถ์ฒ HTTP ์์ฒญ์ ์ํ์ ์ํํ๋ค.
CORS์ ๋์ ์๋ฆฌ
- ๊ธฐ๋ณธ์ ์ผ๋ก ์น์ ๋ค๋ฅธ ์ถ์ฒ์ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ ๋๋ HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์์ฒญ์ ํ๋๋ฐ, ์ด๋ ๋ธ๋ผ์ฐ์ ๋ ์์ฒญ ํค๋ (request header)์
Origin
ํ๋์ ์์ฒญ์ ๋ณด๋ด๋ ์ถ์ฒ๋ฅผ ๋ด์ ์ ์กํ๋ค. - ์๋ฒ๋ ์์ฒญ์ ๋ํ ์๋ต์ ํ๋๋ฐ, ์๋ต ํค๋(response header)์
Access-Control-Allow-Origin
์ด๋ผ๋ ๊ฐ์ '์ด ๋ฆฌ์์ค๋ฅผ ์ ๊ทผํ๋ ๊ฒ์ด ํ์ฉ๋ ์ถ์ฒ'๋ฅผ ๋ด๋ ค์ค๋ค. - ์ดํ ์๋ต์ ๋ฐ์ ๋ธ๋ผ์ฐ์ ๋ ์์ ์ด ๋ณด๋๋ ์์ฒญ์ Origin๊ณผ ์๋ฒ๊ฐ ๋ณด๋ด์ค ์๋ต์
Access-Control-Allow-Origin
์ ๋น๊ตํด ๋ณธ ํ ์ด ์๋ต์ด ์ ํจํ ์๋ต์ธ์ง ์๋์ง๋ฅผ ๊ฒฐ์ ํ๋ค.
GET
GET์ ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ์ด๋ ํ ๋ฆฌ์์ค๋ก๋ถํฐ ์ ๋ณด๋ฅผ ์์ฒญํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ฉ์๋์ด๋ค. GET์ ํตํ ์์ฒญ์ URL ์ฃผ์ ๋์ ํ๋ผ๋ฏธํฐ๋ก ํฌํจ๋์ด ์ ์ก๋๋ฉฐ, ์ด ๋ถ๋ถ์ ์ฟผ๋ฆฌ ์คํธ๋ง(query string)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ฐฉ์์ URL ๋์ ?
๋ฅผ ๋ถ์ด๊ณ ๊ทธ๋ค์ ๋ณ์๋ช
1=๊ฐ1&๋ณ์๋ช
2=๊ฐ2...
ํ์์ผ๋ก ์ด์ด ๋ถ์ด๋ฉด ๋๋ค. ์๋ฅผ ๋ค๋ฉด www.example.com/show?name1=value1&name2=value2
์ด๋ค. ์๋ฒ์์๋ name1
๊ณผ name2
๋ผ๋ ํ๋ผ๋ฏธํฐ ๋ช
์ผ๋ก ๊ฐ๊ฐ value1
๊ณผ value2
์ ํ๋ผ๋ฏธํฐ ๊ฐ์ ์ ๋ฌ๋ฐ์ ์ ์๋ค.
POST
POST๋ ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฆฌ์์ค๋ฅผ ์์ฑํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋ ์ฌ์ฉ๋๋ ๋ฉ์๋์ด๋ค. POST๋ ์ ์กํ ๋ฐ์ดํฐ๋ฅผ HTTP ๋ฉ์์ง body ๋ถ๋ถ์ ๋ด์์ ์๋ฒ๋ก ๋ณด๋ธ๋ค.(body์ ํ์ ์ Content-Type ํค๋์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋ค.)
GET์์ URL์ ํ๋ผ๋ฏธํฐ๋ก ๋ณด๋๋ name1=value1&name2=value2
๊ฐ body์ ๋ด๊ฒจ ๋ณด๋ด์ง๋ค ์๊ฐํ๋ฉด ๋๋ค. POST๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ๊ธธ์ด ์ ํ์ด ๋ฐ๋ก ์์ด ์ฉ๋์ด ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋ ์ฌ์ฉํ๊ฑฐ๋ GET์ฒ๋ผ ๋ฐ์ดํฐ๊ฐ ์ธ๋ถ์ ์ผ๋ก ๋๋ฌ๋๋ ๊ฑด ์๋๋ผ์ ๋ณด์์ด ํ์ํ ๋ถ๋ถ์ ๋ง์ด ์ฌ์ฉ๋๋ค. POST๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ์ก์ ๋ณดํต HTML form์ ํตํด ์๋ฒ๋ก ์ ์ก๋๋ค.
GET๊ณผ POST์ ์ฐจ์ด์
- ์ฌ์ฉ๋ชฉ์ : GET์ ์๋ฒ์ ๋ฆฌ์์ค์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ๋, POST๋ ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์๋ก ์์ฑํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ ๋ ์ฌ์ฉํ๋ค.
- ์์ฒญ์ body ์ ๋ฌด: GET์ URL ํ๋ผ๋ฏธํฐ์ ์์ฒญํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ๋ณด๋ด๊ธฐ ๋๋ฌธ์ HTTP ๋ฉ์์ง์ body๊ฐ ์๋ค. POST๋ body์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ๋ณด๋ด๊ธฐ ๋๋ฌธ์ ๋น์ฐํ HTTP ๋ฉ์์ง์ body๊ฐ ์กด์ฌํ๋ค.
- ๋ฉฑ๋ฑ์ฑ(idempotent): GET ์์ฒญ์ ๋ฉฑ๋ฑ์ด๋ฉฐ, POST๋ ๋ฉฑ๋ฑ์ด ์๋๋ค.
๐ก๋ฉฑ๋ฑ์ด๋?
๋ฉฑ๋ฑ์ ์ฌ์ ์ ์ ์๋ ์ฐ์ฐ์ ์ฌ๋ฌ ๋ฒ ์ ์ฉํ๋๋ผ๋ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง์ง ์๋ ์ฑ์ง์ ์๋ฏธํ๋ค. GET์ ๋ฆฌ์์ค๋ฅผ ์กฐํํ๋ค๋ ์ ์์ ์ฌ๋ฌ ๋ฒ ์์ฒญํ๋๋ผ๋ ์๋ต์ด ๋๊ฐ์ ๊ฒ์ด๋ค. ๋ฐ๋๋ก POST๋ ๋ฆฌ์์ค๋ฅผ ์๋ก ์์ฑํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ ๋ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ๋ฉฑ๋ฑ์ด ์๋๋ผ๊ณ ๋ณผ ์ ์๋ค.(POST ์์ฒญ์ด ๋ฐ์ํ๋ฉด ์๋ฒ๊ฐ ๋ณ๊ฒฝ๋ ์ ์๋ค.)
์ฟ ํค(Cookie)
์ฟ ํค๋ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ ) ๋ก์ปฌ์ ์ ์ฅ๋๋ ํค์ ๊ฐ์ด ๋ค์ด์๋ ์์ ๋ฐ์ดํฐ ํ์ผ์ด๋ค. ์ฌ์ฉ์ ์ธ์ฆ์ด ์ ํจํ ์๊ฐ์ ๋ช ์ํ ์ ์์ผ๋ฉฐ, ์ ํจ ์๊ฐ์ด ์ ํด์ง๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ข ๋ฃ๋์ด๋ ์ธ์ฆ์ด ์ ์ง๋๋ค๋ ํน์ง์ด ์๋ค.
์ฟ ํค๋ ํด๋ผ์ด์ธํธ์ ์ํ ์ ๋ณด๋ฅผ ๋ก์ปฌ์ ์ ์ฅํ๋ค๊ฐ ์ฐธ์กฐํ๋ฉฐ, Response Header์ Set-Cookie ์์ฑ์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ์ ์ฟ ํค๋ฅผ ๋ง๋ค ์ ์๋ค.
์ฟ ํค๋ ์ฌ์ฉ์๊ฐ ๋ฐ๋ก ์์ฒญํ์ง ์์๋ ๋ธ๋ผ์ฐ์ ๊ฐ Request ์์ Request Header๋ฅผ ๋ฃ์ด์ ์๋์ผ๋ก ์๋ฒ์ ์ ์กํ๋ค.
์ฟ ํค๋ ๋ค์๊ณผ ๊ฐ์ด ๋์ํ๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ํ์ด์ง๋ฅผ ์์ฒญ
- ์๋ฒ์์ ์ฟ ํค๋ฅผ ์์ฑ
- HTTP ํค๋์ ์ฟ ํค๋ฅผ ํฌํจ ์์ผ ์๋ต
- ๋ธ๋ผ์ฐ์ ๊ฐ ์ข ๋ฃ๋์ด๋ ์ฟ ํค ๋ง๋ฃ ๊ธฐ๊ฐ์ด ์๋ค๋ฉด ํด๋ผ์ด์ธํธ์์ ๋ณด๊ด
- ๊ฐ์ ์์ฒญ์ ํ ๊ฒฝ์ฐ HTTP ํค๋์ ์ฟ ํค๋ฅผ ํจ๊ป ๋ณด๋
- ์๋ฒ์์ ์ฟ ํค๋ฅผ ์ฝ์ด ์ด์ ์ํ ์ ๋ณด๋ฅผ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ ๋ ์ฟ ํค๋ฅผ ์ ๋ฐ์ดํธํ์ฌ ๋ณ๊ฒฝ๋ ์ฟ ํค๋ฅผ HTTP ํค๋์ ํฌํจ์์ผ ์๋ต
์ธ์ (Session)
์ธ์ ์ ์ฟ ํค๋ฅผ ๊ธฐ๋ฐํ๊ณ ์์ง๋ง, ์ฌ์ฉ์ ์ ๋ณด ํ์ผ์ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅํ๋ ์ฟ ํค์ ๋ฌ๋ฆฌ ์ธ์ ์ ์๋ฒ ์ธก์์ ๊ด๋ฆฌํ๋ค. ์๋ฒ์์๋ ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ธ์ ID๋ฅผ ๋ถ์ฌํ๋ฉฐ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ์ ์ํด์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํ ๋๊น์ง ์ธ์ฆ ์ํ๋ฅผ ์ ์งํ๋ค.
์ ์ ์๊ฐ์ ์ ํ์ ๋์ด ์ผ์ ์๊ฐ ์๋ต์ด ์๋ค๋ฉด ์ ๋ณด๊ฐ ์ ์ง๋์ง ์๊ฒ ์ค์ ์ด ๊ฐ๋ฅํ๋ค. ์ฌ์ฉ์์ ๋ํ ์ ๋ณด๋ฅผ ์๋ฒ์ ๋๊ธฐ ๋๋ฌธ์ ์ฟ ํค๋ณด๋ค ๋ณด์์ ์ข์ง๋ง, ์ฌ์ฉ์๊ฐ ๋ง์์ง์๋ก ์๋ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฐจ์งํ๊ฒ ๋๋ค. ์ฆ ๋์ ์ ์๊ฐ ๋ง์ ์น ์ฌ์ดํธ์ธ ๊ฒฝ์ฐ ์๋ฒ์ ๊ณผ๋ถํ๋ฅผ ์ฃผ๊ฒ ๋๋ฏ๋ก ์ฑ๋ฅ ์ ํ์ ์์ธ์ด ๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ Request๋ฅผ ๋ณด๋ด๋ฉด, ํด๋น ์๋ฒ์ ์์ง์ด ํด๋ผ์ด์ธํธ์๊ฒ ์ ์ผํ ID๋ฅผ ๋ถ์ฌํ๋ ๋ฐ ์ด๊ฒ์ด ์ธ์ ID๋ค.
์ธ์ ์ ๋์ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ ์ ์ ์ธ์ ID๋ฅผ ๋ฐ๊ธ
- ํด๋ผ์ด์ธํธ๋ ์ธ์ ID์ ๋ํด ์ฟ ํค๋ฅผ ์ฌ์ฉํด์ ์ ์ฅํ๊ณ ๊ฐ์ง๊ณ ์์
- ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์์ฒญํ ๋, ์ด ์ฟ ํค์ ์ธ์ ID๋ฅผ ์๋ฒ์ ์ ๋ฌํด์ ์ฌ์ฉ
- ์๋ฒ๋ ์ธ์ ID๋ฅผ ์ ๋ฌ๋ฐ์์ ๋ณ๋ค๋ฅธ ์์ ์์ด ์ธ์ ID๋ก ์ธ์ ์ ์๋ ํด๋ผ์ธํธ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ด
- ํด๋ผ์ด์ธํธ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ฒ ์์ฒญ์ ์ฒ๋ฆฌํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต
์ฟ ํค์ ์ธ์ ์ ์ฐจ์ด์
- ์ฌ์ฉ์์ ์ ๋ณด๊ฐ ์ ์ฅ๋๋ ์์น: ์ฟ ํค๋ ์๋ฒ์ ์์์ ์ ํ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ, ์ธ์ ์ ์๋ฒ์ ์์์ ์ฌ์ฉํ๋ค.
- ๋ณด์: ์ฟ ํค๋ ํด๋ผ์ด์ธํธ ๋ก์ปฌ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ๋ณ์ง๋๊ฑฐ๋ request์์ ์ค๋ํ ๋นํ ์ฐ๋ ค๊ฐ ์์ด์ ๋ณด์์ ์ทจ์ฝํ๋ค. ๋ฐ๋ฉด ์ธ์ ์ ์ฟ ํค๋ฅผ ์ด์ฉํด์ ์ธ์ ID๋ง ์ ์ฅํ๊ณ ๊ทธ๊ฒ์ผ๋ก ๊ตฌ๋ถํด์ ์๋ฒ์์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋น๊ต์ ๋ณด์์ฑ์ด ์ข๋ค.
- ๋ผ์ดํ ์ฌ์ดํด: ์ฟ ํค๋ ๋ง๋ฃ์๊ฐ์ด ์์ง๋ง ํ์ผ๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํด๋ ๊ณ์ํด์ ์ ๋ณด๊ฐ ๋จ์ ์์ ์ ์๋ค. ๋ํ ๋ง๋ฃ ๊ธฐ๊ฐ์ ๋๋ํ๊ฒ ์ก์๋๋ฉด ์ฟ ํค ์ญ์ ๋ฅผ ํ ๋๊น์ง ์ ์ง๋ ์๋ ์๋ค. ๋ฐ๋ฉด์ ์ธ์ ๋ ๋ง๋ฃ์๊ฐ์ ์ ํ ์ ์์ง๋ง ๋ธ๋ผ์ฐ์ ๊ฐ ์ข ๋ฃ๋๋ฉด ๋ง๋ฃ์๊ฐ์ ์๊ด์์ด ์ญ์ ๋๋ค.
- ์๋: ์ฟ ํค์ ์ ๋ณด๊ฐ ์๊ธฐ ๋๋ฌธ์ ์๋ฒ์ ์์ฒญ ์ ์๋๊ฐ ๋น ๋ฅด๋ค. ๋ฐ๋ฉด ์ธ์ ์ ์ ๋ณด๊ฐ ์๋ฒ์ ์๊ธฐ ๋๋ฌธ์ ์ฒ๋ฆฌ๊ฐ ์๊ตฌ๋์ด ๋น๊ต์ ๋๋ฆฐ ์๋๋ฅผ ๋ธ๋ค.
์ธ์ ์ ์๋ฒ์ ์์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฌด๋ถ๋ณํ๊ฒ ๋ง๋ค๋ค ๋ณด๋ฉด ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋นํ ์ ์์ด์ง ์๊ฐ ์๊ณ ์๋๊ฐ ๋๋ ค์ง ์ ์๊ธฐ ๋๋ฌธ์ ์ฟ ํค๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ค.
๋ชจ๋ ๋คํธ์ํฌ ํต์ ์๋ ๊ณ ์ ์ ์ฃผ์, ์ฆ IP ์ฃผ์๊ฐ ํ์ํ๋ค. ์ด๋ ํต์ ์ ์ฃผ๊ณ ๋ฐ๋ ์ฃผ์ฒด๊ฐ ๋๋ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋์ด ์๋ ๋ชจ๋ ์ฅ์น๋ค์ host๋ผ๊ณ ํ๋ค. IP๋ ์ฌ๋์ด ์ดํดํ๊ณ ๊ธฐ์ตํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ํด์ ๊ฐ ip์ ๋ถ์ฌํ ์ด๋ฆ์ด ๋๋ฉ์ธ(Domain)์ด๋ค. ์๋ฅผ ๋ค์ด 210.89.164.90์ ๋๋ฉ์ธ์ naver.com์ด๋ค.
DNS(Domain Name Server ๋๋ Domain Name Service ๋ชจ๋๋ฅผ ์๋ฏธ)๋ ์ซ์๋ก ์ด๋ฃจ์ด์ง IP ์ฃผ์์ ์ผ์ ํ ํ์์ ๊ฐ์ง ๋๋ฉ์ธ์ ์๋ก ๋งคํ ์ํค๊ณ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์๋ฅผ ๋ค์ด ๋ค์ด๋ฒ์ ์ ์ํ๊ธฐ ์ํด ์ฃผ์์ฐฝ์ ๋๋ฉ์ธ(naver.com)์ ์ ๋ ฅํ๋ฉด, ์ปดํจํฐ๋ ํด๋น ๋๋ฉ์ธ์ด ์ฐ๊ฒฐ๋ DNS๋ก ๊ฐ์ ์๋ฒ IP๋ฅผ ์์ฒญํ๋ค.
์์ฒญ๋ฐ์ ๋ค์ ์๋ฒ๋ ํด๋น ๋๋ฉ์ธ๊ณผ ์ฐ๊ฒฐ๋์ด ์๋ ์๋ฒ IP(210.89.164.90)๋ฅผ ์ฐพ์ ํ, ์ปดํจํฐ์๊ฒ ์๋ ค์ค๋ค.
์ด์ฒ๋ผ ๋๋ฉ์ธ์ ์ฐ๊ฒฐ๋ ์๋ฒ์ ์ฃผ์๋ฅผ ์ฐพ์์ฃผ๋ ์ญํ ์ด DNS์ด๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ๋๋ฉ์ธ์ ํด๋นํ๋ IP๋ฅผ ์ฐพ๋ ์์
- local cache ์์ ๊ฒ์ํ ํด๋น ๋๋ฉ์ธ์ IP๊ฐ ์๋์ง ํ์ธํ๋ค. ์ด๋ฏธ ํด๋น ๋๋ฉ์ธ์ ๋ฐฉ๋ฌธํ ์ ์ด ์๋ค๋ฉด ์ปดํจํฐ๊ฐ ํด๋น ๋๋ฉ์ธ์ IP๋ฅผ ๊ธฐ์ตํ๊ณ ์์ผ๋ฏ๋ก ๊ทธ๊ฒ์ ์ฌ์ฉํ๋ค.
- ๋ง์ฝ ์บ์์ ์๋ค๋ฉด ์ปดํจํฐ ๋ด๋ถ์ ํ์ผ ํํ๋ก ์กด์ฌํ๋ hosts ํ์ผ์ ๊ฒ์ํด์ ์ฐพ๋๋ค. ํด๋น hosts ํ์ผ์ ํน์ ๋๋ฉ์ธ๊ณผ IP๋ฅผ ๋งคํ ์์ผ๋์ผ๋ฉด ํด๋น ๋๋ฉ์ธ์ ์ง์ ํ IP๋ก ์ด๋ํ๋ค.
- ๋ง์ฝ ์์ ๊ฒฝ์ฐ์์ ๋๋ฉ์ธ์ ๋ํ IP๋ฅผ ์ฐพ์ง ๋ชปํ๋ฉด ์ต์ข ์ ์ผ๋ก DNS๋ฅผ ๊ฒ์ํ๋ค.
- [Network] ๋คํธ์ํฌ ๊ธฐ์ด ๊ฐ๋ - ์ฐจ๊ทผ์ฐจ๊ทผ ๊ฐ๋ฐ๋ก๊ทธ
- Domain, DNS๋ ๋ฌด์์ธ๊ฐ - ๋งค์ผ์ ๊ณต๋ถ ๊ธฐ๋ก
REST
๋ Representational State Transfer์ ์ฝ์๋ก, URI๋ก ์์(Resource)์ ๋ช
์ํ๊ณ HTTP ๋ฉ์๋๋ฅผ ํตํด ํด๋น ์์์ ๋ํ CRUD(Create, Read, Update, Delete) ์ฐ์ฐ์ ์ ์ฉํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
์ฌ๊ธฐ์์ ์์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ณด๋ฅผ ๋งํ๋ค. ํ์ง๋ง ํด๋ผ์ด์ธํธ๊ฐ ์ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํด ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋งค์ฐ ์ํํ ๋ฐฉ์ ์ด๋ค. ๊ทธ๋์ ์ด๋ฅผ ๋ง๊ธฐ ์ํด REST API๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์กฐํยท์์ฑยท์ญ์ ยท์ ๋ฐ์ดํธ๋ฅผ ํ๊ฒ ๋ค๊ณ HTTP ๋ฉ์๋๋ก ์์ฒญ์ ํ๋ฉด ์๋ฒ๋ ๋ก์ง์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ์ฌ ์์ฒญ์ ์ฒ๋ฆฌํ๋ค.
RESTful
์ REST ์ํคํ
์ฒ๋ก ๊ตฌํ๋ ์น ์๋น์ค๋ฅผ ๋ํ๋ด๊ธฐ ์ํ ์ฉ์ด๋ก, "REST API๋ฅผ ์ ๊ณตํ๋ ์น ์๋น์ค๋ RESTfulํ๋ค"์ฒ๋ผ ์ฌ์ฉ๋๋ค.
HTTP ๋ฉ์๋ ์ข ๋ฅ
์์ฒญ์ ์ข ๋ฅ์ ๋ค๋ผ ๋ค๋ฅธ HTTP ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋๋ฐ ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ํ์ ์ธ ๋ฉ์๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
๋ฉ์๋ | ์ญํ |
---|---|
GET | ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ค. |
POST | ๋ฐ์ดํฐ๋ฅผ ๋ฑ๋กํ๋ค. ์ธ์ฆ ์์ ์ ๊ฑฐ์น ๋ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค. |
DELETE | ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค. |
PUT | ๋ฐ์ดํฐ๋ฅผ ์ ์ ๋ณด๋ก ํต์งธ๋ก ์ ๋ฐ์ดํธํ ๋ ์ฌ์ฉํ๋ค. |
PATCH | ๋ฐ์ดํฐ์ ํน์ ํ๋๋ฅผ ์์ ํ ๋ ์ฌ์ฉํ๋ค. |
URI๋?
URI๋ Uniform Resource Identifier์ ์ฝ์๋ก, ์์์ ์๋ณ์๋ก ์ทจ๊ธํ์ฌ ๋ํ๋ด๋ ์ฃผ์๋ฅผ ๋งํ๋ค. URI์ ์ข ๋ฅ๋ก URL๊ณผ URN์ด ์๋ค. URI๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ํ์์ ๊ฐ๊ณ ์๋ค.
- [Network] REST๋? REST API๋? RESTful์ด๋? - HeeJeong Kwon
- REST API ์ ๋๋ก ์๊ณ ์ฌ์ฉํ๊ธฐ - NHN Cloud Meetup!
- URL๊ณผ URI์ ์๋ฏธ์ ์ฐจ์ด์ (Difference between URL & URI) - Lael's World
- ํตํฉ ์์ ์๋ณ์ - ์ํคํผ๋์
- 21์ฅ. ๋ฐฑ์๋ ํ๋ก๊ทธ๋๋ฐ: Node.js์ Koa ํ๋ ์์ํฌ - ๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์
์์ผ(Socket)์ด ๋ฌด์์ธ๊ฐ์? ์์ ์๋ ์ธ์ด๋ก ๊ฐ๋จํ ์์ผ ์์ฑ ์์๋ฅผ ๋ณด์ฌ์ฃผ์ธ์.
์์ผ(Socket)
์ด๋ Application ํ๋ก์ธ์ค์ end-to-end ํต์ ์ ์ ๊ณตํ๋ Transport ํ๋กํ ์ฝ ์ฌ์ด์ ์ธํฐํ์ด์ค์ ๋งํ๋ค. ์ฆ, Application์์ Transport ํ๋กํ ์ฝ์ ์ฐ๊ธฐ ์ํ API๋ฅผ ๋งํ๋ค.
์์ผ์ ํฌ๊ฒ UDP์ TCP ๋ ์ข ๋ฅ๋ก ๋ถ๋ฅํ ์ ์๋ค. ์์ธํ ๋ด์ฉ์ #4. TCP์ UDP์ ์ฐจ์ด๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.์ ์ฐธ๊ณ !
ํ์ด์ฌ์ผ๋ก TCP์์์ ์์ผ๊ณผ UDP์์์ ์์ผ ์์ฑ ์ฝ๋๋ฅผ ๊ตฌํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. ์์ผ์ ์์ฑํ๋ค๊ณ ๋ฐ๋ก ํต์ ์ ํ ์ ์์ผ๋ฉฐ ์ค์ ํต์ ์ ํ๊ธฐ ์ํด๋ ๋ฐ์ธ๋ฉ, ์ฐ๊ฒฐ ๋ฑ ์ถ๊ฐ ์์ ์ด ํ์ํ๋ค.
TCP
- TCP Client
from socket import *
server_name = "example.com"
server_port = 1234
client_socket = socket(AF_INET, SOCKET_STREAM) # ์์ผ ์์ฑ
client_socket.connect((server_name, server_port)) # ์๋ฒ์ ์ฐ๊ฒฐ ์์ฒญ
- TCP Server
from socket import *
server_port = 1234
server_socket = socket(AF_INET, SOCKET_STREAM) # ์์ผ ์์ฑ
server_socket.bind(('', server_port)) # ์์ผ์ ์ฃผ์ ๋ฐ์ธ๋ฉ
server_socket.listen(1) # ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ๋๊ธฐ
(client_socket, client_address) = server_socket.accept() # ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ์๋ฝ
UDP
- UDP Client
from socket import *
server_name = "example.com"
server_port = 1234
client_socket = socket(AF_INET, SOCK_DGRAM) # ์์ผ ์์ฑ
- UDP Server
from socket import *
server_port = 1234
server_socket = socket(AF_NET, SOCK_DGRAM) # ์์ผ ์์ฑ
server_socket.bind(('', server_port)) # ์์ผ์ ์ฃผ์ ๋ฐ์ธ๋ฉ
WebSocket
WebSocket
์ ์๋ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ฐ๊ฒฐ์ ์ ์งํ ์ํ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์๋๋ก ํ๋ ํ๋กํ ์ฝ์ ๋งํ๋ค.
์ ํ์ ์ธ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๋ฐฉ์์ HTTP ์์ฒญ์ ๋ํ ์๋ต์ ๋ฐ์ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ๊นจ๋ํ ์ง์ฐ๊ณ ๋ฐ์ ๋ด์ฉ์ ์๋ก ํ์ํ๋ ๋ฐฉ์์ธ๋ฐ, ๋ด์ฉ์ ์ง์ฐ๊ณ ๋ค์ ๊ทธ๋ฆฌ๋ฉด ๋ธ๋ผ์ฐ์ ์ ๊น๋ฐ์์ด ์๊ธฐ๊ฒ ๋๋ค. ์ด๋ฌํ ๊น๋ฐ์ ์์ด ํ์ํ ๋ถ๋ถ๋ง ๋ค์ ๊ทธ๋ฆฌ๋ ์ํธ์์ฉ ๋ฐฉ์์ ์์๊ฐ ์๊ฒผ๋ค.
์ด๋ฌํ ์ํธ์์ฉ์ ๊ตฌํํ๊ธฐ ์ํด Pooling, Long Pooling, Streaming ๋ฑ ๋ค์ํ ๋ฐฉ์์ ์ฌ์ฉํ์ง๋ง ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๋ณด๋ด๋ ๋จ๋ฐฉํฅ ๋ฉ์์ง ๊ตํ ๊ท์น์ ์ค์ํ์๊ธฐ ๋๋ฌธ์ ์ํธ์์ฉํ๋ ์นํ์ด์ง๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ค์ ๋ค.
์ด๋ณด๋ค ์ฝ๊ฒ ๊ตฌํํ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ์ ์๋ฒ ๊ฐ ์๋ฐฉํฅ ๋ฉ์์ง ์ก์์ ๊ท์น์ด ํ์ํ๊ณ ์ด๊ฒ์ด WebSocket์ด๋ค.
Socket.io
socket.io
๋ ์๋ฒ์ ๋ธ๋ผ์ฐ์ ์ ์๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ชจ๋์ ๋งํ๋ค. WebSocket์ ๊ฒฝ์ฐ ์ ๋ง ์ข์ ๊ธฐ์ ์ด์ง๋ง ์ค๋๋ ๋ธ๋ผ์ฐ์ ์ ๊ฒฝ์ฐ ์ง์์ ํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๋ฐ ๊ฒฝ์ฐ socket.io๋ ์๋ฒ์ ๋ธ๋ผ์ฐ์ ์ ์ข
๋ฅ์ ๋ฒ์ ์ ํ์
ํ์ฌ ๊ฐ์ฅ ์ ํฉํ ๊ธฐ์ ์ ์ ํํด ์๋ฐฉํฅ ํต์ ์ด ๊ฐ๋ฅํ๋๋ก ํ๋ค.
- WebSocket๊ณผ Socket.io - NAVER D2
- ์น์์ผ - ์ํค๋ฐฑ๊ณผ
- ์น์์ผ - ๋ชจ๋ JavaScript ํํ ๋ฆฌ์ผ
- websocket, socket.io๋ฅผ ์ด์ฉํ ์๋ฐฉํฅ ํต์ - zych1751
- 10.5 Node.js(Express)์ Socket.io - PoiemaWeb
IPv4์ IPv6๋ ์ธํฐ๋ท ํ๋กํ ์ฝ(IP)์ ๋ฒ์ ์ ๋งํ๋ฉฐ, IPv4๋ IP์ 4๋ฒ์งธ ๋ฒ์ , IPv6๋ IP์ 6๋ฒ์งธ ๋ฒ์ ์ ๋งํ๋ค. ์ด ๋ ์ธํฐ๋ท ํ๋กํ ์ฝ์ ํธ์คํธ ๊ฐ ํจํท ๊ตํ ๋คํธ์ํฌ์์ ํจํท(Packet) ํน์ ๋ฐ์ดํฐ๊ทธ๋จ(Datagram)์ผ๋ก ๋ถ๋ฆฌ๋ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ฐ ์ฌ์ฉํ๋ ํ๋กํ ์ฝ์ ๋งํ๋ค.
IPv4
๋ ํค๋์ options์ด ์กด์ฌํ๊ณ , fragmentation/reassembly ๊ธฐ๋ฅ์ ์ ๊ณตํด MTU(Maximum Transport Unit)์ ๋๋ ํฐ ๋ฐ์ดํฐ๊ทธ๋จ์ ์ชผ๊ฐ ์ ์ก์ ํ๊ณ ๋์ฐฉ์ง์์ ์ฌ์กฐํฉ์ ํ๋ค. ๋ํ checksum ๋นํธ๋ ์กด์ฌํ์ฌ ๋งค ๋ผ์ฐํฐ๋ง๋ค checksum ๋นํธ๋ฅผ ๊ฐฑ์ ํ๋ค.
๋ฐ๋ฉด IPv6
๋ ๋น ๋ฅธ ์๋๋ฅผ ์ํด fragmentation/reassembly ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ์์ผ๋ฉฐ, ๋ฐ์ดํฐ๊ทธ๋จ์ ์ฐ์ ์์๋ฅผ ์ค์ ํ ์ ์๋ priority ๋นํธ๊ฐ ์กด์ฌํ๋ค.
MAC ์ฃผ์(Media Access Control Address)
๋ Data Link Layer์์ ํต์ ์ ์ํด ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ํ ๋นํ ์๋ณ์๋ฅผ ๋งํ๋ค. ์ฆ, ๋ชจ๋ ๋คํธ์ํฌ ์ฅ๋น๋ ์์ ์ MAC ์ฃผ์๊ฐ ์์ผ๋ฉฐ ์ฃผ์๋ ์ฅ๋น ์ ์กฐ์
์ฒด๊ฐ ํ ๋นํ๋ค. MAC ์ฃผ์๋ ๋ฌผ๋ฆฌ์ ์ฃผ์(Physical Address)๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
๐ก MAC ์ฃผ์์ IP ์ฃผ์์ ์ฐจ์ด
MAC ์ฃผ์์ IP ์ฃผ์ ๋ชจ๋ ํต์ ๊ธฐ๊ธฐ์ ์๋ณ์๋ผ๋ ๊ฒ์ ๋์ผํ๋ค. ๋ค๋ง MAC ์ฃผ์๋ ์ ์กฐ์ ์ฒด๊ฐ ํต์ ๊ธฐ๊ธฐ์ ๋ถ์ฌํ๋ ์๋ณ์์ด๋ฉฐ ๊ฐ์ ์๋ณ์๋ฅผ ๊ฐ๋ ํต์ ๊ธฐ๊ธฐ๋ ์๋ค. IP ์ฃผ์๋ Network Layer์์ ํต์ ์ ํ๊ธฐ ์ํ ์ฃผ์๋ก ๋ณดํต ํต์ ์ฌ์์ ๋ถ์ฌํ๋ฉฐ ๋ฐ๋ ์ ์๋ค.
- MAC ์ฃผ์ - ์ํค๋ฐฑ๊ณผ
- IP Address์ MAC Address ๊ฐ๋ - Crocus
- MAC ์ฃผ์์ IP ์ฃผ์์ ์ฐจ์ด์
- ์์ดํผ ์ฃผ์์ MAC ์ฃผ์ (IP Address & MAC Address) - ProHub
(์ฌ๊ธฐ์์ ๋คํธ์ํฌ๋ LAN(Local Area Network)๋ฅผ ๋งํฉ๋๋ค.)
๋ผ์ฐํฐ(Router)
๋ Network Layer 3๊ณ์ธต ์ฅ๋น๋ก ๋คํธ์ํฌ ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ์ฅ์น์ด๋ค. ์ต์ข
๋์ฐฉ์ง์ ๋คํธ์ํฌ์ ๋์ฐฉํ ์ ์๋๋ก ์ ์ ํ ๊ฒฝ๋ก๋ฅผ ์ค์ ํ์ฌ ํจํท์ ์ ์กํ๋ค.
์ค์์น(Switch)
๋ Data Link Layer 2๊ณ์ธต ์ฅ๋น๋ก ๋คํธ์ํฌ ๋ด์์ ํจํท์ ์ ์กํ๋ ์ฅ์น๋ฅผ ๋งํ๋ค. ์ค์์น๋ก ์์ฒญ์ด ๋ค์ด์ค๋ฉด IP ์ฃผ์์ ๋์๋๋ MAC ์ฃผ์๋ฅผ ์ฐพ์ ํด๋น MAC ์ฃผ์๋ก ํจํท์ ์ ์กํ๋ค. ๋ง์ฝ IP ์ฃผ์์ ๋์๋๋ MAC ์ฃผ์๊ฐ ์๋ค๋ฉด ํ๋ธ์ฒ๋ผ ๋ธ๋ก๋์บ์คํธ ๋ฐฉ์์ผ๋ก ํจํท์ ์ ์กํ๊ณ IP ์ฃผ์์ MAC ์ฃผ์๋ฅผ ๋์์ํจ ํ
์ด๋ธ์ ๊ฐฑ์ ์ํจ๋ค.
ํ๋ธ(Hub)
๋ Physical Layer 1๊ณ์ธต ์ฅ๋น๋ก ์ฌ๋ฌ ๊ธฐ๊ธฐ๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋คํธ์ํฌ๋ฅผ ๋ง๋ค์ด์ฃผ๋ ์ฅ์น์ด๋ค. ํจํท์ ๋ฐ์ผ๋ฉด ์ฐ๊ฒฐ๋ ๋ชจ๋ ๊ธฐ๊ธฐ์ ํจํท์ ์ ์กํ๋ค.
๐ก ๋ธ๋ก๋์บ์คํธ(Broadcast)๋?
๋ธ๋ก๋์บ์คํธ๋ LAN์ ์๋ ๋ชจ๋ ๋คํธ์ํฌ ์ฅ๋น๋ค์๊ฒ ๋ณด๋ด๋ ํต์ ์ด๋ค.
- ํ๋ธ, ๋ผ์ฐํฐ, ๊ณต์ ๊ธฐ, ์ค์์น์ ๊ฐ๋ ๊ณผ ์ฐจ์ด์ - Easy is Perfect
- ๋คํธ์ํฌ ์ค์์น์ ํ๋ธ, ๋ผ์ฐํฐ๋ ์ด๋ป๊ฒ ๋ค๋ฅธ ๊ฑธ๊น - IT WORLD
- ๋ผ์ฐํฐ ๊ทธ๋ฆฌ๊ณ ์ค์์น - HelloWorld
SMTP(Simple Mail Transfer Protocol)
์ ์ธํฐ๋ท์์ ์ด๋ฉ์ผ์ ๋ณด๋ด๊ธฐ ์ํด ์ฌ์ฉํ๋ TCP/IP ํ๋กํ ์ฝ์ ๋งํ๋ค. ์ฌ์ฉํ๋ TCP Port ๋ฒํธ๋ 25๋ฒ์ด๋ค.
SMTP๋ ๋ค์์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ์ผ์ ์ฃผ๊ณ ๋ฐ๋๋ค.
- MAIL ๋ช ๋ น: ์ฃผ์ ๋ฐํ ํ๋ฆฝ
- RCPT ๋ช ๋ น: ๋ฉ์์ง ์์ ์ ํ๋ฆฝ
- DATA ๋ช ๋ น: ๋ฉ์์ง ํ ์คํธ์ ์ฒซ ์ ํธ๋ฅผ ์ ๊ณต
๋
ธํธ๋ถ์ผ๋ก www.google.com
์ ์ ์์ ํ์ต๋๋ค. ์์ฒญ์ ๋ณด๋ด๊ณ ๋ฐ๊ธฐ๊น์ง์ ๊ณผ์ ์ ์์ธํ ์ค๋ช
ํด์ฃผ์ธ์.
1๋จ๊ณ
์น ์ฌ์ดํธ์ ์ ์ํ๊ธฐ ์ํด์๋ ๋ ธํธ๋ถ์ IP์ฃผ์, 1-hop ๋ผ์ฐํฐ์ IP ์ฃผ์, DNS ์๋ฒ ์ฃผ์๊ฐ ํ์ํ๋ค. ์ด๋ฅผ ์์ ๋ด๊ธฐ ์ํด DHCP query๊ฐ ๋ด๊ธด IP ๋ฐ์ดํฐ๊ทธ๋จ์ 1-hop ๋ผ์ฐํฐ์๊ฒ ์ ์กํ๋ค. DHCP ์๋ฒ๊ฐ ๋ด์ฅ๋ ๋ผ์ฐํฐ๊ฐ ๋ ธํธ๋ถ์ IP์ฃผ์, ์์ ์ IP์ฃผ์, DNS ์๋ฒ์ IP์ฃผ์๋ฅผ ๋ด์ DHCP ACK๋ฅผ ๋ค์ ๋ ธํธ๋ถ์๊ฒ ์ ์กํ๋ค.
- DNS๋ Domain Name System์ ์ฝ์๋ก
www.google.com
๊ณผ ๊ฐ์ ๋๋ฉ์ธ ์ฃผ์๋ฅผ IP ์ฃผ์๋ก ๋ฐ๊ฟ์ฃผ๋ ์์คํ ์ ๋งํ๋ค. - DHCP ์๋ฒ๋ ๋ณดํต์ ๋ผ์ฐํฐ์ DHCP ์๋ฒ๊ฐ ๋ด์ฅ๋์ด ์์ผ๋ฉฐ DHCP ์๋ฒ์ ์ฐ๊ฒฐ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์๋์ ์ผ๋ก IP์ฃผ์๋ฅผ ํ ๋นํ๋ค. ์์ธํ ๋ด์ฉ์ #28์ ์ฐธ๊ณ !
2๋จ๊ณ
DNS ์๋ฒ์ DNS query๋ฅผ ๋ณด๋ด๊ธฐ ์ ์ 1-hop ๋ผ์ฐํฐ์ MAC ์ฃผ์๊ฐ ํ์ํ๋ฏ๋ก ARP query๋ฅผ ๋ธ๋ก๋์บ์คํธ ๋ฐฉ์์ผ๋ก ์ ์กํ์ฌ router์ MAC์ฃผ์๋ฅผ ์์๋ธ๋ค.
- ARP๋ Address Resolution Protocol์ ์ฝ์๋ก, MAC ์ฃผ์์ IP ์ฃผ์๋ฅผ 1:1 ๋งคํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
3๋จ๊ณ
www.google.com
์ ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ํด์๋ www.google.com
์ IP์ฃผ์๊ฐ ํ์ํ๋ฏ๋ก, DNS query๊ฐ ๋ด๊ธด IP ๋ฐ์ดํฐ๊ทธ๋จ์ DNS ์๋ฒ์ ์ ์กํ๊ณ www.google.com
์ IP ์ฃผ์๋ฅผ ํด๋ผ์ด์ธํธ์ธ ๋
ธํธ๋ถ์๊ฒ ์ ์กํ๋ค.
4๋จ๊ณ
TCP ์์ผ์ ์์ฑํ๊ณ 3-way handshake๋ก ์ฐ๊ฒฐ์ ์์ฑํ๋ค. HTTP ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ์ ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง์ ํ๋ฉด Google ์นํ์ด์ง๋ฅผ ๋ธ๋ผ์ฐ์ ์์ ํ์ธํ ์ ์๋ค.
- Chapter 6.7. Life of a web request - Computer Networking: A Top-Down Approach
- ARP ์ฝ๊ฒ ์ดํดํ๊ธฐ - ๋คํธ์ํฌ ์์ง๋์ด ํ์์ AWS ๊ธฐ์ ๋ธ๋ก๊ทธ
์ปดํจํฐ๋ผ๋ฆฌ ์ ๋ณด๋ฅผ ๊ตํํ๊ณ ๊ต๋ฅํ๋ ํํ๋ฅผ ์๋ฏธํ๋ ๋คํธ์ํฌ์์ ํ ํด๋ก์ง๋ ์ปดํจํฐ๋ค์ ํน์ ํ ๋ง๊ตฌ์ฑ ๋ฐฉ์์ ์๋ฏธํ๋ค.
ํ๋์ ๋คํธ์ํฌ ๊ตฌ์ฑ ๋ฐฉ์์ ๋ณด๋๋ผ๋, ๋ ธ๋์ ๋งํฌ์ ๊ฐ์ ๋ฌผ๋ฆฌ์ ๋ฐฐ์น๋ก ๊ตฌ๋ถํ๋ ๋ฌผ๋ฆฌ์ ํ ํด๋ก์ง์ ๋ ธ๋ ๊ฐ์ ๋ฐ์ดํฐ ํ๋ฆ์ผ๋ก ๊ตฌ๋ถํ๋ ๋ ผ๋ฆฌ์ ํ ํด๋ก์ง๋ก ๋คํธ์ํฌ ๊ตฌ์ฑ์ ๊ฐ๊ฐ ํ๋จํ ์ ์๋ค.
Star
์ค์์ ์์นํ ๋ฉ์ธ ๋ ธ๋๋ฅผ ํตํด ๋ค๋ฅธ ๋ ธ๋์ ์ํตํ ์ ์๋ ๊ตฌ์กฐ์ด๋ค.
์ฅ์
: ์ฅ์ ๋ฐ๊ฒฌ์ด ์ฝ๊ณ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํจ๋จ์
: ๋ฉ์ธ ๋ ธ๋์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ ์ฒด ๋คํธ์ํฌ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ
Bus
๋ฒ์ค๋ผ๋ ๊ณตํต ๋ฐฐ์ ์ ํตํด ๋ ธ๋๋ค์ด ์ฐ๊ฒฐ๋์ด ์์ด์, ํ ๋ ธ๋์ ์ ํธ๊ฐ ๋ชจ๋ ๋ ธ๋์ ์ ๋ฌ๋๋ค. (ํ๊ฒ ๋ ธ๋๋ง ์ ํธ์ ๋ฐ์์ ํ๊ณ ๋ค๋ฅธ ๋ ธ๋๋ ๋ฌด์ํ๋ค.)
์ฅ์
: ๋ ธ๋ ์ถ๊ฐ ๋ฐ ์ญ์ ๊ฐ ์ฉ์ดํ๋ฉฐ, ํ ๋ ธ๋์ ์ฅ์ ๊ฐ ๋ฐ์ํด๋ ๋ค๋ฅธ ๋ ธ๋์ ์ํฅ์ ์ฃผ์ง ์์๋จ์
: ๊ณตํต ๋ฐฐ์ ์ ํฌ๊ธฐ(๋์ญํญ)๊ฐ ์ ํ๋์ด ์์ผ๋ฏ๋ก ๋ฐฐ์ ์ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆด ๊ฒฝ์ฐ ๋คํธ์ํฌ ์ฑ๋ฅ ์ ํ
Ring
๊ฐ ๋ ธ๋๊ฐ ์ ์์ผ๋ก ์ฐ๊ฒฐ๋ ์ํ ๊ตฌ์กฐ, ๋จ๋ฐฉํฅ์ผ๋ก ์ ํธ๊ฐ ์ ๋ฌ๋๋ค.
์ฅ์
: ๋จ๋ฐฉํฅ ๊ตฌ์กฐ๋ก ๋จ์ํ๊ณ , ์ค๊ฐ์ ์๋ ๋ ธ๋๋ค์ด ์ฆํญ๊ธฐ์ ์ญํ ์ ํด์ค๋ค. (๊ฑฐ๋ฆฌ ์ ์ฝ ์ ์ด์ง๋ค.)๋จ์
: ๋ ธ๋ ์ถ๊ฐ ๋ฐ ์ญ์ ๊ฐ ์ด๋ ต๋ค.
Mesh
๋ค์์ ๋ ธ๋๊ฐ ์๋ก ์ฐ๊ฒฐ๋ ํํ์ด๋ค. (๋ชจ๋ ์ฐ๊ฒฐ๋๋ฉด ์์ ์ฐ๊ฒฐํ, ์ผ๋ถ๋ง ์ฐ๊ฒฐ๋๋ฉด ๋ถ๋ถ ์ฐ๊ฒฐํ)
์ฅ์
: ๋ ธ๋์ ์ฅ์ ์ ์ํฅ๋ฐ์ง ์์ผ๋ฉฐ ์ ์ฐํ ๋์ฒ๊ฐ ๊ฐ๋ฅํ๊ณ ์์ ์ ์ด๋ค.๋จ์
: ๊ตฌ์ถ ๋น์ฉ์ด ํฌ๊ณ , ๋ ธ๋ ์ถ๊ฐ์๋ ๋น์ฉ์ด ๋ง์ด ๋ ๋ค.
IP ์ฃผ์์ ์๋ธ๋คํ (subnetting)
IPv4 ์ ๊ฒฝ์ฐ
ํ์ ๋ ์์์ด๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ผ๋ก ๋ ธ๋์ ์ฃผ์๋ฅผ ํ ๋นํ๋๊ฒ ์ค์ํ๋ค. ์ด๋ฅผ ์ํด IP ๋ฅผ ์ชผ๊ฐ๋, ๋คํธ์ํฌ ํํธ + ํธ์คํธ ํํธ๋ก ๊ตฌ์ฑํ๋ ์๋ธ๋คํ ์ ํ์ฉํ๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก IP ์ฃผ์์ ๋ฐ๋ผ 5 ๊ฐ์ ํด๋์ค๋ก ๊ตฌ๋ถ๋๋ค. ๊ฐ ํด๋์ค์ ๋ฐ๋ผ ๋คํธ์ํฌ ํํธ์ ํธ์คํธ ํํธ๊ฐ ์ ํด์ง๋ค.
์์ ๊ฐ์ ํด๋์ค ๊ตฌ์กฐ์ ๋๋ถ์ด ๋์ฑ ํจ์จ์ ์ธ ์๋ธ๋คํ ์ ์ํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ธ๋ท ๋ง์คํฌ์ด๋ค.
์๋ธ๋ท ๋ง์คํฌ (subnet mask)
ํ ๋น๋ IP ์ฃผ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋คํธ์ํฌ ํํธ์ ํธ์คํธ ํํธ๊ฐ ์ ํด์ ธ์๋ค.
ํจ์จ์ ์ธ ์ฃผ์ ๊ด๋ฆฌ๋ฅผ ์ํด ๋ด๋ถ์ ์ผ๋ก ํธ์คํธ ํํธ๋ฅผ ์๋ก์ด ๋คํธ์ํฌ ํํธ์ ํธ์คํธ ํํธ๋ก ๋๋ ์ ์๋ค. ์ด ๋ ์๋ธ๋ท ๋ง์คํฌ๋ฅผ ํ์ฉํ ์ ์๋ค.
๋ง์ฝ C ํด๋์ค์ธ 192.12.16.1 IP, 255.255.255.0 ์๋ธ๋ท ๋ง์คํฌ(ํธ์คํธ ํํธ)๊ฐ ํ ๋น๋์์ ๋ ๊ธฐ์กด์ ์๋ธ๋ท ๋ง์คํฌ์ธ ๋ง์ง๋ง 8 ๋นํธ๋ฅผ 1111 0000 ์ผ๋ก ๋ฐ๊พผ๋ค๋ฉด, 4 ๋นํธ๋งํผ์ ๋คํธ์ํฌ ํํธ (๊ทธ๋ฃน), 4 ๋นํธ๋งํผ์ ํธ์คํธ (๋ฉค๋ฒ) ๋ฅผ ํ ๋นํ ์ ์๋ค. ์ด๋ ๊ฒ ๋๋ค๋ฉด ๋์ผ ๋คํธ์ํฌ ๊ฐ์๋ ์ปค๋ฎค๋์ผ์ด์ ์ด ์์ ๋กญ์ง๋ง, ๋ค๋ฅธ ๋คํธ์ํฌ ๊ฐ์๋ ๋ผ์ฐํฐ๋ฅผ ๊ฑฐ์ณ์ผ ์ปค๋ฎค๋์ผ์ด์ ์ ํ ์ ์๋ค.
์ด๋ค ๊ธฐ์ ์ ์๊ฐํด๋ณด์. ์๋ธ๋ท ๋ง์คํฌ๋ก ์ถ๊ฐ์ ์ธ ์๋ธ๋คํ ์ ์ํ๋ค๋ฉด ์ธ์ฌํ, ์ฌ๋ฌดํ ๋ฑ๋ฑ ์ฌ๋ฌ ํ๋ค์ด ๋ชจ๋ ๊ฐ์ ๋คํธ์ํฌ ํํธ๋ฅผ ์ง๋๋ฏ๋ก ์๋ก์๊ฒ ์ ๊ทผํ ์ ์๋ค. ์ด๋ด ๋ ์๋ธ๋ท ๋ง์คํฌ๋ฅผ ํ์ฉํ ์๋ธ๋คํ ์ผ๋ก ํจ์จ์ ์ผ๋ก IP ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค.
- IP ์ฃผ์ ๋ฐ ์๋ธ๋ท ๋ง์คํฌ - ๋ณด์์ ๋ฌธ๊ฐ๊ฐ ๋์
- [Network] IP์ฃผ์ ํด๋์ค(A,B,C class)๋? Limky ์ฝ์ง ๋ธ๋ก๊ทธ
- ์๋ธ๋คํ ๋ชฉ์ ๋ฐ ๊ฐ๋ - ํธ๋ ๋น์ค์ IT ๋ผ์ดํ
data encapsulation ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ์ก์ ์ธก์์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ๋คํธ์ํฌ ๊ณ์ธต์์ ์์ ๊ณ์ธต์์๋ถํฐ ํ์ ๊ณ์ธต์ผ๋ก ๋ด๋ ค์ฌ ๋๋ง๋ค ๊ฐ ๊ณ์ธต์ ํค๋๋ฅผ ๋ถ์ฌ ๋ณด๋ด๋ ๋ฐ์ดํฐ๋ก ๋ง๋ค์ด๋ธ๋ค.
๋ฐ๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ ์์ ์ธก์์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ํ์ ๊ณ์ธต์ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๋ฉด์ ํค๋๋ฅผ ๋ผ๋ด๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ํ์ ํ๋ค.
- [network] ์บก์ํ & ์ญ์บก์ํ (encalsulation & decapsulation) - CHAEN
- [๋คํธ์ํฌ] TCP/ IP ์บก์ํ - jhkang-dev
DHCP (Dynamic Host Configuration Protocol) ๋ ๋์ ์ผ๋ก IP ์ฃผ์๋ ๊ธฐํ ์ ๋ณด๋ค์ ๊ด๋ฆฌํด์ฃผ๋ ํ๋กํ ์ฝ์ ๋งํ๋ค. ๊ด๋ฆฌํด์ผํ๋ ์ปดํจํฐ๊ฐ ๋ง๊ณ ์ด๋ค์ IP ๋ฅผ ๋ชจ๋ ์ง์ ํ ๋นํ๊ณ ๊ด๋ฆฌํ๋ ค๋ฉด ์๋นํ ๋ณต์กํ๊ณ ์๊ฐ์ด ๋ง์ด๋ค์ง๋ง, DHCP ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๋ฌธ์ ์ ์ ํด๊ฒฐํ ์ ์๋ค.
DHCP ๋ UDP ๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ/์๋ฒ ๊ตฌ์กฐ๋ก ํต์ ํ๋ค. ๊ทธ ๊ณผ์ ์ ์๋์ ๊ฐ๋ค.
DHCP discover
: ์ปดํจํฐ๊ฐ ๋์ผ ์๋ธ๋ท์ผ๋ก ๋ธ๋ก๋์บ์คํ (255.255.255.255)์ผ๋ก DHCP ์๋ฒ๋ฅผ ์ฐพ๋๋ค.DHCP offer
: DHCP ๊ฐ ์ฌ์ฉ๊ฐ๋ฅํ IP ์ฃผ์์ ๋ฆฌ์คํธ๋ฅผ ์ปดํจํฐ์๊ฒ ์ ๋ฌํ๋ค.DHCP request
: ์ปดํจํฐ๊ฐ ๋ฆฌ์คํธ ์ค ํ๋์ IP ์ฃผ์๋ฅผ ์ ํํ์ฌ ์๋ฒ์ ์ ๋ฌํ๋ค.DHCP ack
: DHCP ๊ฐ ์ปดํจํฐ์๊ฒ ํด๋น IP ์ฃผ์๋ฅผ ํ๋ฝ/๊ฑฐ์ ํ๋ ๋ฉ์ธ์ง๋ฅผ ์ ๋ฌํ๋ค.
์ฅ์
- DHCP ์๋ฒ์์ ์๋์ผ๋ก IP ๋ฅผ ๊ด๋ฆฌํด์ฃผ๋ฏ๋ก ํธ๋ฆฌํ๋ค. IP ์ ๋ณ๋์ด ์์ ๋, DHCP ์๋ง ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค.
- ์ฌ์ฉ์ค์ธ ์ปดํจํฐ์ ๋ํด์๋ง ํ ๋นํ๋ฏ๋ก ํจ์จ์ ์ด๋ค.
๋จ์
- DHCP ์๋ฒ์ ์์กดํ๊ธฐ ๋๋ฌธ์ ์๋ฒ๊ฐ ๋ค์ด๋๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ปดํจํฐ์์ ์ธํฐ๋ท์ ํ ์ ์๋ค.
- ์ด๊ธฐ DHCP ์ธํ ์๊ฐ ๋ฐ ํธ๋ํฝ์ด ํฌ๋ค.
- ๋จ๋ง ์ปดํจํฐ๋ฅผ ๋ ๊ฒฝ์ฐ, ์์ ํ ์ฃผ์๊ฐ release ๋ ๋ ๊น์ง ํด๋น IP ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- DHCP ์ด์ฌํ ์ ๋ฆฌํ ๊ธ :) - Don't forget your time
- DHCP๋ ๊ทธ ๊ฐ๋ ๋ถํฐ ์์๋ณด์ - ๋คํธ์ํฌ๋ณด์๏ฟฝ
ํจํท์ ์ ๋ฌํ ๋ ์ด๋ ๊ฒฝ๋ก๋ก ๊ฐ์ง ์ ํ๋ ๊ฒ์ ๋ผ์ฐํ ์ด๋ผ๊ณ ํ๋ค.
๋ผ์ฐํ ๊ฒฝ๋ก ๊ณ ์ ์ฌ๋ถ
์ด๋ค ๊ฒฝ๋ก๋ก ๋ผ์ฐํ
ํ ์ง๋ฅผ ๋ฏธ๋ฆฌ ์ ํด๋๋ ๋์ ์ผ๋ก ์ ํ๋์ ๋ฐ๋ผ ์ ์ ๋ผ์ฐํ
, ๋์ ๋ผ์ฐํ
์ผ๋ก ๊ตฌ๋ถํ๋ค.
๋ด/์ธ๋ถ ๋ผ์ฐํ
๋์ ๋ผ์ฐํ
์์ AS (Auotonomous System, ํ๋์ ๋คํธ์ํฌ ๊ด๋ฆฌ์์ ์ํด ๊ด๋ฆฌ๋๋ ๋คํธ์ํฌ ์ง๋จ) ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ถ์ ์ผ๋ก ๋์ํ๋, ์ธ๋ถ์ ์ผ๋ก ๋์ํ๋์ ๋ฐ๋ผ ๋ด๋ถ ๋ผ์ฐํ
(RIP, IGRP, OSPF, EIGRP) ๊ณผ ์ธ๋ถ ๋ผ์ฐํ
(BGP, EGP) ์ผ๋ก ๋๋๋ค.
๋ผ์ฐํ ํ ์ด๋ธ ๊ด๋ฆฌ
๋์ ๋ผ์ฐํ ์์ ์ด๋ค ๋ฐฉ์์ผ๋ก ๋ผ์ฐํ ํ ์ด๋ธ์ ๊ด๋ฆฌํ๋๋์ ๋ฐ๋ผ์๋ ๋ฐฉ๋ฒ์ด ๋ค๋ฅด๋ค. ํฌ๊ฒ link state, distance vector ๋ฐฉ๋ฒ์ด ์๋ค.
distance vector
๋ฐฉ๋ฒ์ ํ์ฌ ์์น (๋จ๋ง ๋๋ ๋ผ์ฐํฐ) ๊น์ง์ ๋ฐฉํฅ๊ณผ ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ๋กํ ๋ผ์ฐํ
ํ
์ด๋ธ์ ์ธ์ ํ ๋ผ์ฐํฐ๋ค์๊ฒ ์ ๋ฌํ๊ณ ๊ฐฑ์ ํ๋ค.
๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ๊ฒ ๋ค๊ณ ๊ตฌ์ฑ์ด ์ฝ์ง๋ง, ์ ์ฒด ํ
์ด๋ธ ๊ตฌ์ฑ ์๊ฐ์ด ๊ธธ์ด์ง ์ ์๊ณ ๊ฐ์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ณตํด์ ๋๋ ๋ฃจํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. (EIGRP ๋ ๋ฃจํ์ด ๋ฐ์ํ์ง ์์)
distance vector ๋ฅผ ์ฌ์ฉํ๋ ํ๋กํ ์ฝ๋ก๋ RIP, EIGRP, BGP ๋ฑ์ด ์์ผ๋ฉฐ, distance vector ๋ ๋ฒจ๋ง-ํฌ๋ ์๊ณ ๋ฆฌ์ฆ
์ ๊ธฐ๋ฐํ๋ค.
link state
๋ฐฉ๋ฒ์ ์ธ์ ํ
์ด๋ธ์ ์ ๋ณด๋ฅผ ์ ๋ฌํ์ผ๋ฉด ๋ ๊ทธ ์ธ์ ํ
์ด๋ธ๋ค์ ์ด ์ ๋ณด๋ฅผ ๋ฐ๋ก ์ธ์ ํ
์ด๋ธ๋ก ๋๊ฒจ, ์ง์ ์ฐ๊ฒฐ๋์ง ์์ ๋ชจ๋ ๋ผ์ฐํฐ๋ค๋ ํ์ฌ ์ ๋ณด๋ฅผ ํ์
ํ ์ ์๋ค.
์ ํํ๊ณ ๋ฃจํ ๋ฌธ์ ๊ฐ ์๋ค๋ ์ฅ์ ์ด ์์ด ๋ํ ๋คํธ์ํฌ์์ ๋ง์ด ์ฌ์ฉ๋์ง๋ง ๋ฉ๋ชจ๋ฆฌ์ ์๋ชจ์ cpu ๋ก๋๊ฐ ๋ง๋ค๋ ๋จ์ ์ด ์๋ค.
link state ๋ฅผ ์ฌ์ฉํ๋ ํ๋กํ ์ฝ๋ก๋ OSPF, IS-IS ๋ฑ์ด ์์ผ๋ฉฐ, link state ๋ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ
์ ๊ธฐ๋ฐํ๋ค.
- ๋ผ์ฐํ ํ๋กํ ์ฝ(Routing Protocol) - ์๋น์ค๊ฐ ํ์ํด
- ๋ผ์ฐํ ํ๋กํ ์ฝ ์ข ๋ฅ - ๊ฐ๋ฐ์ผ๊ธฐ
- ๋ผ์ฐํ ํ๋กํ ์ฝ์ ์ข ๋ฅ - ์ฒญ๋ ๊ณ ๋๋
- ๋์คํด์ค ๋ฒกํฐ/๋งํฌ ์คํ ์ดํธ - ์ด์ญ์ด์ ํ ์คํธ ๊ณต์ฅ
์ด๋๋ท์ ๊ทผ๊ฑฐ๋ฆฌ ์ ์ ํต์ ์ ์ํด ์ฌ์ฉ๋๋ ๋คํธ์ํน ๋ฐฉ๋ฒ์ผ๋ก CSMA/CDํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ค. IEEE 802.3 ์ ํ์ค์ผ๋ก ์ ์๋์๋ค.
์ฅ์
- ์ ์ ์ฉ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋ ์ฑ๋ฅ์ด ์ข๋ค.
- ๋น์ฉ์ด ์ ๊ณ ๊ด๋ฆฌ๊ฐ ์ฝ๋ค.
- ๊ตฌ์กฐ๊ฐ ๋จ์ํ๋ค.
๋จ์
- ์บ๋ฆฌ์ด ์ถฉ๋์ด ๋ฐ์ํ ์ ์๋ค.
- ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ์ง์ฐ์ด ์๊ธด๋ค.
CSMA/CD ๋ฐฉ๋ฒ์ ๊ฐ๋ตํ ๋งํ์๋ฉด ๋ฒ์ค ๊ตฌ์กฐ๋ก ํต์ ์ ํ๋๋ฐ ์บ๋ฆฌ์ด๋ผ๋ ๋คํธ์ํน ์์ ์ ํธ๋ฅผ ๊ฐ์งํ์ฌ ์บ๋ฆฌ์ด๊ฐ ์์ผ๋ฉด ์ ๋ณด๋ฅผ ๋ณด๋ด๋ ๋ฐฉ์์ด๋ค.
- [๋คํธ์ํฌ] ์ด๋๋ท(Ethernet) - DevOwen
- [๋คํธ์ํฌ] ์ด๋๋ท? _ Ethernet์ ๋ํ์ฌ - ๋ญ๋
๋คํธ์ํฌ ์์์ ์์ฒญ์ ๋ณด๋ด๋ ๋์์ client
, ์์ฒญ์ ์๋ตํ๋ ๋์์ server
๋ผ๊ณ ํ๋ค. client ์ server ๋ ๊ณ ์ ๋์ง ์๊ณ ์์ฒญ์ ๋ฐ๋ผ ๋ฐ๋๋ค. ์ ์๋ ์์ฒญ์ ๋ณด๋ด๋ client ์์ด๋ ๋ค์ ๋ฒ์๋ ๋ค๋ฅธ ๋
ธ๋๋ก๋ถํฐ ์์ฒญ์ ๋ฐ์ผ๋ฉด server ๊ฐ ๋๋ค.
์ ์ธ๊ฐ์ง ๊ฐ๋ ์ ๋ชจ๋ ๋คํธ์ํฌ์ ์ฑ๋ฅ๊ณผ ๊ด๋ จ๋์ด ์๋ค.
delay
ํ๋์ ๋ฐ์ดํฐ ํจํท์ด ์ถ๋ฐ ์ง์ ์์ ๋์ฐฉ ์ง์ ์ ๋์ฐฉํ ์๊ฐ์ ์๋ฏธํ๋ค.
๋๋ ์ด๋
Processing Delay (์ฒ๋ฆฌ ์ง์ฐ)
: ๋ผ์ฐํฐ๊ฐ ๋ค์ด์จ ํจํท์ ํค๋๋ฅผ ํ์ธํ๊ณ ์ฒ๋ฆฌํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐQueueing Delay (ํ ์ง์ฐ)
: ๋ผ์ฐํฐ๊ฐ ๋ค๋ฅธ ํจํท์ ์ฒ๋ฆฌํ๋๋ผ ํจํท์ด ๋ผ์ฐํฐ์ ํ์์ ๋๊ธฐํ๋ ์๊ฐTransmission Delay (์ ์ก ์ง์ฐ)
: ๋ผ์ฐํฐ์ ์ฑ๋ฅ (์ ์ก ์๋) ์ ๋ฐ๋ผ ํจํท์ด ๋ ผ๋ฆฌํ๋ก๋ฅผ ํต๊ณผํ ๋๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐPropagation Delay (์ ํ ์ง์ฐ)
: ๋ผ์ฐํฐ๊ฐ ๊ฑฐ๋ฆฌ์ ์ํด ๋ฐ์ํ๋ ์ง์ฐ ์๊ฐ
์ ํฉ์ผ๋ก ๊ณ์ฐ๋๋ค.
timing(jitter)
delay ์ ๋ณ๋์ (๋ณํ๋ ์์ค) ์๋ฏธํ๋ค. ๊ฐ์ ์ค์์น๊ฐ ์๋ ๊ฒฝ์ฐ ํจํท๋ง๋ค ๋๊ธฐ ์๊ฐ์ด ๋ฌ๋ผ์ง๋ฏ๋ก ์งํฐ๊ฐ ์๊ธด๋ค.
throughput
์ง์ ๋ ์๊ฐ๋์ ์ค์ ๋ก ์ ์ก๋ ์ ๋ณด๋์ ์๋ฏธํ๋ค.
๋ฐ์ดํฐ๊ฐ ์ง๋๊ฐ ์ ์๋ ํต๋ก์ ํฌ๊ธฐ์ธ bandwidth ์ ํท๊ฐ๋ฆด ์ ์๋๋ฐ, bandwidth ๊ฐ ํฌ๋๋ผ๋ ์ค์ ๋ก ์ ์ก๋ ์ ๋ณด๋์ด ์ ์ผ๋ฉด throughput ์ด ์ ์ ๊ฒ์ด๋ค.