๋คํธ์ํฌ
5. OSI 7๊ณ์ธต / TCP/IP 5๊ณ์ธต
8. ๋ผ์ฐํฐ / ๋ผ์ฐํ ์๊ณ ๋ฆฌ์ฆ
9. DHCP (Dynamic Host Configuration Protocol)
1. HTTP, HTTP Method, HTTPS
HTTP
โ Hyper Text Transfer Protocol: ๋งํฌ๋ฅผ ํตํด ํ ์คํธ์ ํ์ผ์ ์ ์กํ๋ ํ๋กํ ์ฝ
โ HTTP์ ํน์ง
- Stateless: ์ํ๋ฅผ ๊ฐ์ง๊ฑฐ๋ ๊ธฐ์ตํ์ง ์๊ณ ๋ค์ด์จ request๋ง ์ฒ๋ฆฌํ๋ค
- ์ฟ ํค๋ ์ธ์ ์ด์ฉํด ๋ณด์!
- TCP: ํ์ ๊ณ์ธต์ธ transport layer์์ TCP๋ฅผ ์ฌ์ฉํด์ ํด๋น ํ๋กํ ์ฝ์ ๊ธฐ๋ฅ๋ค์ ๊ฐ์ ธ์จ๋ค
โ HTTP connections
- non-persistent HTTP: ๋ฐ์ดํฐ ์ ๋ฌ ์ TCP ์ฐ๊ฒฐ ์์ฑ, ๋ฐ์ดํฐ ์ ๋ฌ ์๋ฃ ์ TCP ์ฐ๊ฒฐ ์ข ๋ฃ
- persistent HTTP: ๋ฐ์ดํฐ ์ ๋ฌ ์ TCP ์ฐ๊ฒฐ ์์ฑ, ํด๋น TCP์ ์ฐ๊ฒฐ์ ๋์ง ์๊ณ ๊ณ์ ์ฌ์ฉ
- ๋๋ถ๋ถ์ ์น์ฌ์ดํธ์์ ํด๋น ๋ฐฉ์ ์ฌ์ฉ
HTTP Method
โ GET: ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์์ฒญ
โ POST: ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ก (๋ฆฌ์์ค์ ์์ฑ / ๋ณ๊ฒฝ)
โ PUT: ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ๊ฐฑ์
โ DELETE: ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์ญ์
โ PATCH: ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ๋ถ๋ถ์ ์ผ๋ก ๊ฐฑ์
โ OPTIONS: ๋ฆฌ์์ค์ ํต์ ์ต์ (๋ฉ์๋) ์ง์
โ HEAD: ๋ฆฌ์์ค์ ํค๋ ์ ๋ณด๋ง ์์ฒญ
GET vs POST
โ GET
- ๋ฐ์ดํฐ ์กฐํ
- ๋ฐ์ดํฐ ์์น: Header(ํค๋)
- URL์ ๋ฐ์ดํฐ ๋ ธ์ถ
- ์บ์ฑ์ ํตํ ์๋ ํฅ์
- ๋ณด์ ↓
โ POST
- ๋ฐ์ดํฐ ์์ฑ / ์์
- ๋ฐ์ดํฐ ์์น: Body(๋ฐ๋)
- URL์ ๋ฐ์ดํฐ ๋ ธ์ถ x
- GET ๋ฐฉ์๋ณด๋ค ์์
HTTP ์ํ ์ฝ๋
โ 2xx (Successful): ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ๋ฐ์์ผ๋ฉฐ ์ธ์ํ๊ณ ์์ฉํ์๋ค
- 200(OK): ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ํ๋จ (์ฃผ๋ก GET ์์ฒญ์ ๋ํ ์๋ต)
- 201(Created): ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ํ๋์ด ์๋ก์ด ๋ฆฌ์์ค๊ฐ ์์ฑ๋จ (์ฃผ๋ก POST)
- 204(No Content): ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ํ๋์ด ๋ฆฌ์์ค๊ฐ ์์(์ฃผ๋ก DELETE)
โ 3xx (Redirection): ์์ฒญ ์๋ฃ๋ฅผ ์ํด ์ถ๊ฐ ์์ ์กฐ์น๊ฐ ํ์ํ๋ค
- 301(Moved Permanently): ์์ฒญ๋ ๋ฆฌ์์ค์ URI๊ฐ ๋ณ๊ฒฝ๋จ
- 302(Found): ์์ฒญ๋ ๋ฆฌ์์ค์ URI๊ฐ ์ผ์์ ์ผ๋ก ๋ณ๊ฒฝ๋จ (ex: pc -> ๋ชจ๋ฐ์ผ)
โ 4xx (Client Error): ์์ฒญ์ ๋ฌธ๋ฒ์ด ์๋ชป๋์๊ฑฐ๋ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ค
- 400(Bad Request): ํด๋ผ์ด์ธํธ๊ฐ ์๋ชป๋ ์์ฒญ(ex: ๋ฌธ๋ฒ)์ ๋ณด๋
- 401(Unauthorized): ์ธ์ฆ๋์ง ์์ ํด๋ผ์ด์ธํธ
- 403(Forbidden): ๊ถํ์ด ์๋ ํด๋ผ์ด์ธํธ (์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋๊ตฌ์ธ์ง ์๊ณ ์๋ค)
- 404(Not Found): ์์ฒญํ ๋ฆฌ์์ค๊ฐ ์กด์ฌํ์ง ์์
- 405(Method Not Allowed): ํ์ฌ ๋ฆฌ์์ค์ ๋ง์ง ์์ ๋ฉ์๋ ์ฌ์ฉ
- 406(No Acceptable): ์๋ง์ ์ปจํ ์ธ ํ์ ์ด ์์
- 408(Request Time Out): ์์ฒญ์ ์๋ตํ๋ ์๊ฐ์ด ๋๋ฌด ์ค๋๊ฑธ๋ฆผ
โ 5xx (Server Error): ์๋ฒ๊ฐ ๋ช ๋ฐฑํ ์ ํจํ ์์ฒญ์ ๋ํด ์ถฉ์กฑ์ ์คํจํ๋ค
- 500(Internal Server Error): ์๋ฒ์ ์ค๋ฅ ๋ฐ์
- 502(Bad Gateway): ์๋ฒ์ ๋ถ๋ชจ ์๋ฒ์์ ์ค๋ฅ ๋ฐ์ (ex: ํธ๋ํฝ ๊ณผ๋ถํ)
- 503(Service Unavailable): ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ค๋น๊ฐ ๋์ง ์์(ex: ์ ์ง๋ณด์)
HTTPS
โ HTTPS: HTTP + SSL(Secure Socket Layer)
โ ๊ธฐ์กด์ HTTP๋ ๋ณ๋์ ๋ณด์ ์ฅ์น ์์ด plain text message๋ฅผ ์ ์กํ๊ธฐ ๋๋ฌธ์ ํ์ทจ์ ์ํ์ด ์์!
โ SSL(Secure Socket Layer) = TLS(Transport Layer Security)
- plain text message๊ฐ SSL library๋ฅผ ๊ฑฐ์ณ ์ํธํ๋ ์ดํ TCP๋ก ๋ด๋ ค๊ฐ๋ค
- ๋น๋์นญํค ์ํธํ(์ด๊ธฐ ์ฐ๊ฒฐ)๊ณผ ๋์นญํค ์ํธํ(๋ฉ์ธ์ง ์ ์ก) ๋ฐฉ์ ์ฌ์ฉ
2. ์ฟ ํค์ ์ธ์
โ ๋ ๋ค ์น ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ์์ state๋ฅผ ์ ์ฅ/์ ์ง ํ๊ธฐ ์ํด์ ์ฌ์ฉ (HTTP๋ stateless!)
โ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๋ฐ์ดํฐ์ ์ ์ฅ ์์น!
์ฟ ํค(Cookie)
โ ์ฟ ํค: ํด๋ผ์ด์ธํธ ์ธก์ ์ ์ฅ๋๋ ํค์ ๊ฐ์ด ๋ค์ด์๋ ์์ ๋ฐ์ดํฐ ํ์ผ
โ ์ ํจ๊ธฐ๊ฐ ์ค์ ๊ฐ๋ฅ(๋ธ๋ผ์ฐ์ ์ข ๋ฃ ์ดํ์๋ ์ ์ง)
โ 300๊ฐ ์ ํ(๋๋ฉ์ธ๋น 20๊ฐ, ์ฟ ํค ๋น 4KB)
- ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ๋ก ์์ฒญํ์ง ์์๋ ๋ธ๋ผ์ฐ์ ๊ฐ Request์์ Request Header๋ฅผ ๋ฃ์ด์ ์๋์ผ๋ก ์๋ฒ์ ์ ์ก
์ธ์ (Session)
โ ์ธ์ : ์๋ฒ ์ธก์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์
โ ์๋ฒ์์๋ ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ๊ณ ์ ํ ์ธ์ ID ๋ถ์ฌ
โ ์ฃผ๋ก ๋ธ๋ผ์ฐ์ ์ข ๋ฃ ์ ์ข ๋ฃ(๋ณ๋ ์ ํจ๊ธฐ๊ฐ๋ ์ค์ ๊ฐ๋ฅ)
โ ์ฟ ํค๋ณด๋ค ๋ณด์์ ์ข์ง๋ง, ์ฌ์ฉ์๊ฐ ๋ง์์ง์๋ก ์๋ฒ ๋ฉ๋ชจ๋ฆฌ ๊ณผ๋ถํ↑
โ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ธฐ ์ํ ์ถ๊ฐ ์ฒ๋ฆฌ ์๋
3. DNS (Domain Name Server)
โ DNS: Domain Name์ IP ์ฃผ์๋ก ๋ฐ๊ฟ์ฃผ๋ ์์คํ
โ DNS ์๋ฒ๋ ๊ณ์ธต ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ์๋ค
- Recursive(Local) Name Server: ์ฌ์ฉ์๊ฐ ๊ฐ์ฅ ๋จผ์ ์ ๊ทผํ๋ ์๋ฒ (์บ์ ํํ๋ก ip์ ๋ณด ์ ์ฅ, ex: ISP(ํต์ ์ฌ))
- Root Name Server: ์ต์์ dns ์๋ฒ (์ ์ธ๊ณ 13๊ฐ), DNS ์ฟผ๋ฆฌ๋ฅผ ์ ์ ํ TLD ์๋ฒ๋ก ๋ด๋ ค์ค๋ค
- TLD(Top-Level Domain) Name Server: .com, .co.kr ๋ฑ ๋ค์ ์ค๋ ๋๋ฉ์ธ ํ์ฅ์์ ๋ํ ์ ๋ณด ์ ์ง
- SLD(Second-Level Domain)/Authoratice Name Server: ์ค์ ๋๋ฉ์ธ์ IP ์ฃผ์์ ๋ํ ์ ๋ณด๋ฅผ ์ ์งํ๋ ์๋ฒ
4. ์น ๋์ ๊ณผ์
- ํด๋ผ์ด์ธํธ๊ฐ ๋ธ๋ผ์ฐ์ ์ URL(www.google.com)์ ์ ๋ ฅ
- DNS ์๋ฒ์ ๋๋ฉ์ธ ๋ค์์ผ๋ก ์๋ฒ์ ์ง์ง ์ฃผ์(IP ์ฃผ์)๋ฅผ ์ฐพ์
- ๋ธ๋ผ์ฐ์ ๋ IP ์ฃผ์๋ก ๋ ์น์๋ฒ์ 3 Way Handshake๋ฅผ ํตํ TCP ์ฐ๊ฒฐ ์๋ฆฝ
- ํด๋ผ์ด์ธํธ๊ฐ ์น์๋ฒ์ HTTP ์์ฒญ ์ก์
- ์์ฒญ์ ์์ ํ ์น ์๋ฒ๋ HTTP ์๋ต์ ์ก์
- ๋ธ๋ผ์ฐ์ ๋ ์์ ํ HTTP ์๋ต์ ๊ธฐ๋ฐ์ผ๋ก HTML ํ์ด์ง ๋ ๋๋ง ํ ์ฌ์ฉ์์๊ฒ ์์ฒญํ ์นํ์ด์ง ๋ฐํ
5. OSI 7๊ณ์ธต / TCP/IP 5๊ณ์ธต
โ 7๊ณ์ธต: ์์ฉ ๊ณ์ธต (Application Layer) - Data
- ์ฌ์ฉ์์ ์ง์ ์ํธ์์ฉํ๋ ์์ฉํ๋ก๊ทธ๋จ์ด ํฌํจ๋ ๊ณ์ธต
- ์ธํฐํ์ด์ค ์ญํ
- protocol: HTTP, SMTP, DNS
- ex: ํฌ๋กฌ, ์ด๋ฉ์ผ...
โ 6๊ณ์ธต: ํํ ๊ณ์ธต (Presentation Layer) - Data
- ์ฃผ๊ณ ๋ฐ๋ ๋ฐ์ดํฐ์ ํํ๋ฐฉ์(Foramt) ๊ฒฐ์
- protocol: ASCII
- ex: ์ธ์ฝ๋ฉ, ๋์ฝ๋ฉ
โ 5๊ณ์ธต: ์ธ์ ๊ณ์ธต (Session Layer) - Data
- ํ๋ก์ธ์ค๋ผ๋ฆฌ ํต์ ํ๊ธฐ ์ํ ์ธ์ ๊ด๋ฆฌ(Port ์ฐ๊ฒฐ)
- protocol: SSL, TLS
โ 4๊ณ์ธต: ์ ์ก ๊ณ์ธต (Transport Layer) - Segment
- ๊ฐ endpoint์ ์ฌ์ฉ์๋ค์ด ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ฒ ํค์ฃผ๋ ์ญํ
- port๋ฒํธ, ์ ์ก ๋ฐฉ์ ๊ฒฐ์
- protocol: TCP, UDP
- ex: ๋ฐฉํ๋ฒฝ, ํ๋ก์ ์๋ฒ
โ 3๊ณ์ธต: ๋คํธ์ํฌ ๊ณ์ธต (Network Layer) - Packet
- ์ค์ ๋คํธ์ํฌ ๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ(ํฌ์๋ฉ/๋ผ์ฐํ )
- protocol: IP
- ex: ๋ผ์ฐํฐ
โ 2๊ณ์ธต: ๋งํฌ ๊ณ์ธต (Data Link Layer) - Frame
- ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์ ์ก (1ํ ํต์ )
- ํ๋ฆ ์ ์ด
- protocol: Ethernet, MAC
- ex: ์ค์์น
โ 1๊ณ์ธต: ๋ฌผ๋ฆฌ ๊ณ์ธต (Physical Layer) - Bit
- ๋ฐ์ดํฐ๋ฅผ ์ ๊ธฐ ์ ํธ๋ก ๋ฐ๊พธ์ด ์ ๋ฌ
- ex: ํ๋ธ, ์ผ์ด๋ธ
6. TCP์ UDP
โ ๋ ๋ค transport layer์ protocol -> ๋ฐ์ดํฐ ์ ์ก์ ๋ด๋น!
โ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ์ฐ๊ฒฐ/๋น์ฐ๊ฒฐ ์ฌ๋ถ
UDP(User Datagram Protocol)
โ ๋ฐ์ดํฐ ์ ์ก์ ์ํ ๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ
โ ๋น์ฐ๊ฒฐ์ฑ(Connectionless), ๋น์ ๋ขฐ์ฑ(Unreliable)
โ ๋ฐ์ดํฐ ์ ์ก(๋ค์คํ/๋น๋ค์คํ), ์๋ฌ ํ์ธ(checksum)์ด๋ผ๋ 2๊ฐ์ง ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ๋ง ์ ๊ณต
โ dest port# / dest ip#๋ง ํ์ธ
โ ์ฑ๋ฅ/์๋ > ์ ๋ขฐ/์์ ์ฑ
โ ex: DNS, ์คํธ๋ฆฌ๋ฐ ์๋น์ค, ๋ฉํฐํ๋ ์ ๊ฒ์...
TCP(Transmission Control Protocol)
โ ๋ฐ์ดํฐ ์ ์ก์ ์ํ ์ฐ๊ฒฐํ ํ๋กํ ์ฝ
โ ์ฐ๊ฒฐ์ฑ(Connection oriented), ์ ๋ขฐ์ฑ(Reliability)
โ 3-way handshake๋ฅผ ํตํ ์ฐ๊ฒฐ ์๋ฆฝ, 4-way handshake๋ฅผ ํตํ ์ฐ๊ฒฐ ์ข ๋ฃ
โ point-to-point, inorder stream
โ send & receive buffer
โ flow control, congestion control
UDP & TCP ๋น๊ต
7. TCP 3way / 4way handshake
TCP 3-way Handshake
โ TCP์์ ์ฐ๊ฒฐ์ ์๋ฆฝํ๋ ๊ณผ์
- client๊ฐ serverํํ
tcp connection ์ฐ๊ฒฐ ์์ฒญ์ ๋ณด๋ธ๋ค.
- tcp segment๋ฅผ SYNbit = 1๋ก ํด์ ๋ณด๋ธ๋ค.(ํ์์๋ 0)
- client์ ์ฒซ seq#๋ฅผ ๋ณด๋ธ๋ค.
- server๋ clientํํ
SYNACK๋ฅผ ๋ณด๋ธ๋ค.
- client๊ฐ ๋ณด๋ด์จ seq#+1์ ACKnum์ผ๋ก ํ๋ค.
- server์ ์ฒซ seq#๋ฅผ ๋ณด๋ธ๋ค.
- client๋ SYNACK์ ๋ํ ACK๋ฅผ ๋ณด๋ธ๋ค.
- SYNbit๋ ๋ค์ 0์ด ๋๋ค.
- ์ฌ๊ธฐ์๋ถํฐ๋ ํจํท์ ๋ฐ์ดํฐ ํฌํจ ๊ฐ๋ฅ
TCP 4-way Handshake
โ TCP์์ ์ฐ๊ฒฐ์ ์ข ๋ฃํ๋ ๊ณผ์
- client๊ฐ sever์ FIN control segment๋ฅผ ๋ณด๋ธ๋ค.
- sever๊ฐ FIN์ ๋ฐ์ผ๋ฉด ACK๋ฅผ ๋ณด๋ด๊ณ server๋ FIN์ ๋ณด๋ธ๋ค.
- client๊ฐ FIN์ ๋ฐ๊ณ ACK๋ฅผ ๋ณด๋ธ๋ค.
- ACK๊ฐ ํ์คํ ์ ๋ฌ๋๋๋ก 'timed wait'
- server๊ฐ ACK์ ๋ฐ์ผ๋ฉด ์ฐ๊ฒฐ์ด ์ข ๋ฃ๋๋ค.
8. ๋ผ์ฐํฐ / ๋ผ์ฐํ ์๊ณ ๋ฆฌ์ฆ
๋ผ์ฐํฐ
โ ๋คํธ์ํฌ ๋ ์ด์ด์์ ๋ฐ์ดํฐ ํจํท์ ์ ์ก์ ๋ด๋นํ๋ ์ฅ์น
โ Forwarding: forwarding table์ ํ์ธํด ํจํท์ ๋ชฉ์ ์ง์ ๋ง๊ฒ ์ ๋ฌํ๋ ์์
โ Routing: Routing Algorithm์ ํ์ฉํด forwarding table์ ๋ง๋๋ ์์
โ Gateway Router: NAS, DHCP, DNS, firewall...
๋ผ์ฐํ ์๊ณ ๋ฆฌ์ฆ
โ ์ต๋จ ๊ฒฝ๋ก ๊ตฌํ๊ธฐ
Link State Algorithm
โ ์ ์ฒด ๋คํธ์ํฌ์ ์ฐ๊ฒฐ ์ํ๋ฅผ ์๋ ๊ฒฝ์ฐ
โ Dijkstra algorithm
โ ์ ์ฒด ๋ฒ์์ ์ ์ฉ์ ๋ถ๊ฐ๋ฅ, ํ๋์ ๋คํธ์ํฌ ๋ด๋ถ ๋ฒ์ ๋ด์์๋ง!
Distance Vector Algorithm
โ ์ฐ๊ฒฐ๋ ์ธ์ ๋ผ์ฐํฐ๋ง ์๋ ๊ฒฝ์ฐ
โ Bellman-Ford Algorithm
โ Route Poisoning ๋ฐ์ ๊ฐ๋ฅ์ฑ
- bad news ์ ํ๋ก ๋ฐฉ์ง!
9. DHCP (Dynamic Host Configuration Protocol)
โ ์๋ฒ๋ก๋ถํฐ ๋์ ์ผ๋ก ์ฃผ์(IP, mask, router, DNS)๋ฅผ ๋ฐ์์ค๋ ํ๋กํ ์ฝ
โ host๊ฐ ์๋ฒ์ ip์ฃผ์๋ฅผ ์์ฒญ(DHCP request)ํ๋ฉด dhcp๊ฐ host์๊ฒ ์ผ์ ์๊ฐ ๋์ ip์ฃผ์๋ฅผ ๋์ฌ(DHCP ack) ํด์ฃผ๋ ๊ฐ๋
๋์ ๊ณผ์
- DHCP discover
- ์ด๊ธฐ์ DHCP ์๋ฒ๋ฅผ ์ฐพ์๋ด๋ ๊ณผ์
- src ip: ์์ง ์์!
- dest 255.255.255.255: subnet๋ด์ ๋ชจ๋ ๋ฉค๋ฒ์ ๊ฒ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ (broadcast)
- DHCP offer
- 67๋ฒ ํฌํธ๋ฅผ ์ด์ด๋๊ณ ์๋ DHCP์๋ฒ๋ง ์๋ต
- dest: 255.255.255.255: ์์ง ์์ฒญ host๊ฐ ip๊ฐ ์๋ ์ํ์ด๋ฏ๋ก broadcast๋ก ๋ณด๋
- host๋ ํฌํธ ๋ฒํธ(68)์ด๋ transaction id๋ก ํด๋น ์๋ต์ ๋ฐ์
- DHCP request
- offer๋ฅผ ๋ฐ์๋ค์ธ๋ค๋ ์๋ฏธ๋ก request ๋ณด๋
- ์์ง ip์ฃผ์๋ฅผ ๋ฐ์ ๊ฑด ์๋๋ฏ๋ก src ip๊ฐ ์๋ค.
- transaction ID: offer๋ฅผ ๋ฐ์๋ค์ธ๋ค๋ ์๋ฏธ๋ก +1
- DHCP ACK
10. NAT(Network Address Translation)
โ IP ํจํท์ TCP/UDP ํฌํธ ์ซ์์ ์์ค ๋ฐ ๋ชฉ์ ์ง์ IP ์ฃผ์ ๋ฑ์ ์ฌ๊ธฐ๋กํ๋ฉด์ ๋ผ์ฐํฐ๋ฅผ ํตํด ๋คํธ์ํฌ ํธ๋ํฝ์ ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ์
โ ๋ก์ปฌ ๋คํธ์ํฌ์ ํธ์คํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๋ ๋ผ์ฐํฐ์ ip/ํฌํธ# ๋ก ๋ณํํด์ ๋ด๋ณด๋ธ๋ค.
โ IPv4์ ๊ธฐ์ ์ ํ๊ณ (32bit ์ฃผ์ ๊ณต๊ฐ์ ํ๊ณ) ๊ทน๋ณต ์ํด ๋ฑ์ฅ
11. MAC Protocol
โ Link layer: ํ Hop์ ๋์ด๊ฐ ๋(ํ node์์ ๋ค์ ์ธ์ node๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋) ์ด๋ป๊ฒ ์ถฉ๋ (collision) ์์ด ๋์ด๊ฐ ์ ์์ ๊ฒ์ธ๊ฐ
โ MAC(Medium Access Control): ๋งค์ฒด์ ๋ํ ์ ๊ทผ์ ์กฐ์ ํด์ ์ถฉ๋์ ์ต์ํ ํ๋ ๊ธฐ์
- Channel partitioning
- Random access
- Taking turns
CSMA & CSMA/CD
CSMA
โ Carrier Sense Multiple Access
โ listen before transmit: ๋ฐ์ดํฐ๊ฐ ์ ์ก ์ค์ด๋ฉด ๋๊ธฐ, ์ ์ก ์ค์ธ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ๋ฐ์ดํฐ ์ ์ก
CSMA/CD
โ Collision Detection
โ CSMA ๋ฐฉ์์์ ์ถฉ๋์ด ๋ฐ์ํ์ ๊ฒฝ์ฐ ์ฆ์ ์ ์ก์ ๋ฉ์ถค!
โ ์ค๋จ ์ดํ ์ฌ์ ์ก ๋ฐฉ์: NIC enters binary
- M๋ฒ์ ์ถฉ๋์ด ์์์ผ๋ฉด (0 ~ M - 1) ์ค ํ๋์ ์๋ฅผ randomํ๊ฒ ์ ํํด์ ๋๊ธฐ
- ์ถฉ๋์ด ๋ง์์ง ์๋ก(์ฌ๋์ด ๋ง์์ง ์๋ก) ์ ํํ๋ random ์ซ์์ ๋ฒ์๋ ์ฆ๊ฐ -> ์ค๋ ๊ธฐ๋ค๋ฆด ๊ฐ๋ฅ์ฑ๋ ์ฆ๊ฐ
12. WebSocket & Web RTC
WebSocket
โ TCPํต์ ๋ฐฉ์์ผ๋ก ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ํ๋กํ ์ฝ
โ sock.io: ์น์์ผ ๋ฏธ์ง์ ๋ธ๋ผ์ฐ์ ์์ ์๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ์ฃผ๋ก javscript(node.js)์์ ์ฌ์ฉ
โ sock.js: ์น์์ผ ๋ฏธ์ง์ ๋ธ๋ผ์ฐ์ ์์ ์๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- spring ์ง์
STOMP
โ Simple Text Oriented Messaging Protocol
โ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์ ์กํ ๋ฉ์์ง์ ์ ํ, ํ์, ๋ด์ฉ๋ค์ ์ ์ํ๋ ํ๋กํ ์ฝ
โ pub/sub(๋ฐํ/๊ตฌ๋ )์ผ๋ก ๋ฉ์ธ์ง ๋ฐ ํด๋ผ์ด์ธํธ ๊ด๋ฆฌ
โ ์ฃผ๋ก Spring์์ ์น์์ผ์ ๊ตฌํํ ๋ ํจ๊ป ์ฌ์ฉ
Web RTC
โ Web Real-Time Communication
โ p2p ๋ฐฉ์์ ์ด์ฉํด ํ๋ฌ๊ทธ์ธ์ด๋ ์๋ฒ ๋ฑ ์ค์ฌ์ ์์ด ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ) ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ํ๋ API
โ Low latency (์๋ฒ๋ฅผ ๊ฑฐ์น์ง ์์!)
โ Signaling server(์ธ์ ์ ์ด, ์ฐ๊ฒฐ ๊ตฌ์ฑ)์ ์ํด ์น์์ผ ์ฌ์ฉ
โ STUN, TURN Server: NAT ์๋ณ, ๋ฐฉํ๋ฒฝ ์ฐํ
'โญ Personal_Study > CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CS ๋ฉด์ ์ง๋ฌธ ์ ๋ฆฌ - ์ด์์ฒด์ 2 (0) | 2023.03.03 |
---|---|
CS ๋ฉด์ ์ง๋ฌธ ์ ๋ฆฌ - ์ด์์ฒด์ 1 (3) | 2023.03.02 |
CS ๋ฉด์ ์ง๋ฌธ ์ ๋ฆฌ - ์๊ณ ๋ฆฌ์ฆ (0) | 2023.02.19 |
CS ๋ฉด์ ์ง๋ฌธ ์ ๋ฆฌ - ์๋ฃ๊ตฌ์กฐ (0) | 2023.02.12 |
CS ๋ฉด์ ์ง๋ฌธ ์ ๋ฆฌ - ํ๋ก๊ทธ๋๋ฐ ์ผ๋ฐ (0) | 2023.02.06 |
๋๊ธ