overview:
์ ์ ์ ์์คํ (client)์ด ๋ด๋์ ์๊ตฌ๋ฅผ ์์คํ (server)์ด ์ฒ๋ฆฌํ๋๋ก ํ ๋คํธ์ํฌ ๊ตฌ์ฑ
- ์๋ฒ:
- ํญ์ ์ผ์ ธ ์๋ ํธ์คํธ์ด๋ค.
- ์๊ตฌ์ ์ธ ๊ณ ์ IP ์ฃผ์๋ฅผ ๊ฐ์ง๋ค.
- ํด๋ผ์ด์ธํธ:
- ์๋ฒ์ ํต์ ํ๋ฉฐ, ๊ฐํ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ์ ์๋ค.
- ํต์์ ์ผ๋ก ๋์ IP ์ฃผ์๋ฅผ ๊ฐ์ง๋ค.
- ํด๋ผ์ด์ธํธ๋ค๋ผ๋ฆฌ ์๋ก ์ง์ ์ํตํ์ง ์๋๋ค.
- P2P๋ Peer-to-Peer์ ์ฝ์๋ก, ์์์ end system๋ค๋ผ๋ฆฌ (peer๋ค๋ผ๋ฆฌ) ์ง์ ํต์ ํ๋ค.
- ์ค์ ์๋ฒ๋ฅผ ๊ฑฐ์น์ง ์๊ณ ํด๋ผ์ด์ธํธ ์ปดํจํฐ๋ผ๋ฆฌ ์ง์ ํต์ ํ๋ ๋ฐฉ์์ด๋ค.
- P2P ๋คํธ์ํฌ์์ "ํผ์ด"๋ ์๋ฅผ ๋ค์ด ์ธํฐ๋ท์ ํตํด ์๋ก ์ฐ๊ฒฐ๋ ์ปดํจํฐ ์์คํ ๋ฐ ๊ธฐํ ์ฅ์น์ด๋ค.
- ํผ์ด๋ ๋ค๋ฅธ ํผ์ด์๊ฒ ์๋น์ค๋ฅผ ์์ฒญํ๊ณ ์ ๊ณตํ๋ค.
- Client-server architecture์ ๋ค๋ฅด๊ฒ, ํญ์ ์ผ์ ธ ์๋ ์๋ฒ๊ฐ ์๋ค.
- self scalability (์์ฒด ํ์ฅ์ฑ) : ์๋ก์ด peer๋ ์๋ก์ด ์๋น์ค๋ฅผ ์๊ตฌํ๊ณ ์๋ก์ด ์๋น์ค๋ฅผ ๊ฐ์ ธ๋ค ์ค๋ค.
- ํผ์ด๊ฐ ๊ฐํ์ ์ผ๋ก ์ฐ๊ฒฐ๋๊ณ , IP ์ฃผ์๊ฐ ๋ณ๊ฒฝ๋๋ค.
- Process๋ ํธ์คํธ ๋ด์์ ๋์๊ฐ๋ ํ๋ก๊ทธ๋จ์ด๋ค.
- ๊ฐ์ ํธ์คํธ ๋ด์์ ๋ณต์๊ฐ์ processes๊ฐ ๋์๊ฐ ์ ์๋ค.
- ๋ํ, ๋ ๊ฐ์ processes๊ฐ ๋ด๋ถ์ ์ผ๋ก communicationํ ์ ์๋ค.
- ์ด๋ฌํ ํ๋ก์ธ์ค๋ ๋ฉ์์ง๋ฅผ ๋ฐ๊ธฐ ์ํด ID๊ฐ ํ์ํ๋ค. ์ด ID ์ญํ ์ ํ๋ ๊ฒ์ด IP ์ฃผ์์ ํธ์คํธ์ ํ๋ก์ธ์ค์ ๊ด๋ จ๋ ํฌํธ ๋ฒํธ์ด๋ค.
- ํธ์คํธ ์ฅ์น๋ ๊ณ ์ ํ 32bit IP ์ฃผ์๋ฅผ ๊ฐ์ง๋ค.
- ์๋ฅผ ๋ค์ด, ํ ์ง์ ๋ค ์๊ตฌ๊ฐ ์ฐ๋ค๊ณ ํด๋ณด์.
- ๊ทธ ์ง์ ๊ฐ ์ฌ๋๋ค์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ ๊น? ์ง์ฃผ์๋ ํ๋๋ง ์ฐ๊ณ ๊ฐ ์๊ตฌ๋ง๋ค ์ด๋ฆ์ ๋ถ์ธ๋ค.
- ์ด ๋ ์ง์ฃผ์๊ฐ 'IP ์ฃผ์'์ด๊ณ , ๊ทธ ์ง์ ๊ฐ ์ฌ๋๋ค์๊ฒ ๋ถํ ์ด๋ฆ์ด 'ํฌํธ ๋ฒํธ'๋ค.
- ํน์ ํ ์ฐ์์๋ฅผ ์ํด์ 0๋ฒ๋ถํฐ 1023๋ฒ๊น์ง ๋ฏธ๋ฆฌ ํ ๋นํ ํฌํธ ๋ฒํธ๋ฅผ Well-known port number๋ผ๊ณ ํ๋ค.
- e.g.,
- HTTP ์๋ฒ:
80
- ๋ฉ์ผ ์๋ฒ:
25
- HTTP ์๋ฒ:
- ํด๋ผ์ด์ธํธ๋ well-known port number๋ฅผ ์ฌ์ฉํ์ง(๊ฐ์ง์ง) ์์๋ ๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก, ํด๋ผ์ด์ธํธ๊ฐ ๋จผ์ ํต์ ์ ์์ฒญ๋ฐ๋ ๊ฒฝ์ฐ๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
- e.g.,
- IP ์ฃผ์๊ฐ
128.119.245.12
์ธ ํธ์คํธ์์ HTTP ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋คํ๋ฉด, ํฌํธ ๋ฒํธ๋80
์ผ๋ก ๋ณด๋ด๋ ๊ฒ์ด๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ํ๋กํ ์ฝ์ ๋ค๋ฅธ ์ข ๋จ ์์คํ ์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก์ธ์ค๊ฐ ์๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ค.
- ๊ตํ ๋ฉ์์ง ํ์ (์์ฒญ ๋ฉ์์ง, ์๋ต ๋ฉ์์ง)
- ์ฌ๋ฌ ๋ฉ์์ง ํ์ ์ ๋ฌธ๋ฒ (๋ฉ์์ง ๋ด๋ถ์ ํ๋์ ํ๋ ๊ฐ์ ๊ตฌ๋ณ ๋ฐฉ๋ฒ)
- ๋ฐ์ดํฐ์ ํค๋ ์ ํ๋(field)์ ์๋ฏธ, ์ฆ ํ๋์ ์๋ ์ ๋ณด์ ์๋ฏธ
- ์ธ์ , ์ด๋ป๊ฒ ํ๋ก์ธ์ค๊ฐ ๋ฉ์์ง๋ฅผ ์ ์กํ๊ณ ๋ฉ์์ง์ ์๋ตํ๋์ง ๊ฒฐ์
๋ง์ฝ ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์๊ฐ HTTP RFC์ ๊ท์น์ ๋ฐ๋ฅธ๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ๋ HTTP RFC์ ๊ท์น์ ๋ฐ๋ฅธ ์ด๋ ํ ์น ์๋ฒ๋ก๋ถํฐ๋ ์น ํ์ด์ง๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
- ๋คํธ์ํฌ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต ํ๋กํ ์ฝ์ ๊ฐ์ ๊ฐ๋
์ด ์๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต ํ๋กํ ์ฝ์ ๋คํธ์ํฌ ์ ํ๋ฆฌ์ผ์ด์
์ ํ ์์์ผ ๋ฟ์ด๋ค.
- ์๋ฅผ ๋ค์ด, ์น์ ์ฌ์ฉ์๊ฐ ํ์์ ๋ฐ๋ผ ์น ์๋ฒ๋ก๋ถํฐ ๋ฌธ์๋ฅผ ์ป๊ฒ ํด์ฃผ๋ ๋คํธ์ํฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ํฌ๋งท ํ์ค(HTML), ์น ๋ธ๋ผ์ฐ์ (ํฌ๋กฌ, ํ์ด์ดํญ์ค ๋ฑ), ์น ์๋ฒ(์ํ์น, ms ์๋ฒ), ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ํ๋กํ ์ฝ์ ํฌํจํ๋ ์ฌ๋ฌ ์์๋ค๋ก ๊ตฌ์ฑ๋๋ค.
- ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ํ๋กํ ์ฝ(HTTP)์ ๋ธ๋ผ์ฐ์ ์ ์น ์๋ฒ ์ฌ์ด์์ ๊ตํ๋๋ ๋ฉ์์ง์ ํฌ๋งท๊ณผ ์์๋ฅผ ์ ์ํ๋ค. ๋ฐ๋ผ์ HTTP๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์์๋ค.
- data integrity (๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ) : loss-sensitive
- ๋ฐ์ดํฐ ์ก์์ ์, ๋งํฌ์ ์๋ฌ ํน์ ๋ผ์ฐํฐ ๋ฒํผ ์๋ฌ๋ก ์ธํ bit ๋ณํ ํน์ ์์ค์ด ์ผ์ด๋ ์ ์๋ค.
- ์ด๋ก ์ธํด source๊ฐ ๋ณด๋ธ ์ ๋ณด์ destination์์ ๋ฐ์ ์ ๋ณด๊ฐ ์ผ์นํ์ง ์์ ์ ์๋ค.
- ์ด๋ฉ์ผ, ์ํ ์์คํ , ํ์ผ ์ ์ก, Web transactions ์ ํ๋ฆฌ์ผ์ด์ ๋ฑ์ 100% ์ ๋ขฐ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ์ ์ก์ ์๊ตฌํ๋ค.
- ์ค๋์ค๋ ๋น๋์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฐ์ ์์ค์ ํ์ฉํ๊ธฐ๋ ํ๋ค.
- timing : delay-sensitive
- ์ธํฐ๋ท ์ ํ, ์ธํฐ๋ํฐ๋ธ ๊ฒ์ ๋ฑ์ ์ง์ฐ ์๊ฐ์ด ์งง์์ผ ํ๋ค.
- throughput : bandwidth-sensitive
- ๋ฉํฐ๋ฏธ๋์ด๊ฐ ํจ๊ณผ์ ์ด๊ธฐ ์ํด์ ์ต์ํ์ throughput์ ์๊ตฌํ๋ค.
- ์ด๋ฉ์ผ, FTP, ์น ์ ์ก ๊ฐ์ ํ๋ ฅ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง์ throughput์ ์๊ตฌํ์ง ์๋๋ค.
- security
- encryption, data integrity (์ค๊ฐ์ ์๋์ ์ธ ๊ฐ์ ์ด ์์ด ์ ์ก๋์ด ์์ ์๊ฐ ๋ฐ์ ์ ๋ณด๊ฐ ์ก์ ์๊ฐ ๋ณด๋ธ ์ ๋ณด์ ์ผ์นํ๋ค๋ ํ์ ์ ์ฃผ๋ ๊ฒ)
application | data loss | throughput | time sensitive |
---|---|---|---|
file transfer | no loss | elastic | no |
no loss | elastic | no | |
Web documents | no loss | elastic | no |
real-time audio/video | loss-tolerant | audio: 5kbps-1Mbps video: 10kbps-5Mbps |
yes, 100's msec |
stored audio/video | loss-tolerant | audio: 5kbps-1Mbps video: 10kbps-5Mbps |
yes, few secs |
interactive games | loss-tolerant | few kbps up | yes, 100's msec |
text messaging | no loss | elastic | yes and no |
transport layer์์ application layer protocol์ ์ ๊ณตํด์ฃผ์ด์ผ ํ๋ ๊ฒ
Transport Layer ๋ถ๋ถ์์ ์์ธํ ๋ค๋ฃจ์์ผ๋ ๋งํฌ ์ฐธ์กฐ
Transport Layer ๋ถ๋ถ์์ ์์ธํ ๋ค๋ฃจ์์ผ๋ ๋งํฌ ์ฐธ์กฐ
- ์น ํ์ด์ง๋ HTML file + referenced object ๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ, ์ด ๋ ๊ฐ object๋ค์ URL์ ํตํด reference ๋๋ ๊ตฌ์กฐ์ด๋ค.
- HTTP๋ Application layer์ ์ฌ๋ฌ ํ๋กํ ์ฝ ์ค ํ๋๋ก ์ฃผ๋ก ์น์์ ๋ง์ด ์ฐ์ด๋ ํ๋กํ ์ฝ์ด๋ค.
- HTTP ํ๋กํ ์ฝ์ ํตํด ์ฐ๋ฆฌ๋ ์น์ฌ์ดํธ์์ ๋ค์ํ ํ๋์ ํ ์ ์๋ค.
-
- HTTP๋ TCP์ ์ง์ง์ด์ ธ ์๋ค.
- ์ฒ์์ TCP๊ฐ ์ฐ๊ฒฐ์ ๋งบ์ผ๋ฉด ์ดํ HTTP ๋ฉ์์ง๊ฐ ๊ตํ๋๋ ๊ตฌ์กฐ์ด๋ค.
- TCP๋ฅผ ํตํด ํต์ ์ ํ๋ฏ๋ก ์ ๋ขฐ์ฑ ์๋ ํต์ ์ ํ ์ ์๋ค.
-
- HTTP๋ 'stateless' ํ๋ค.
- ํด๋ผ์ด์ธํธ์ ์ํ๋ ๊ณผ๊ฑฐ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ก ๋ฑ์ ์ ๊ฒฝ์ฐ์ง ์๊ณ , ๊ทธ๋ฅ ๊ทธ ์๊ฐ ์๊ตฌํ๋ ๊ฒ๋ง์ ์ฒ๋ฆฌํ๋ค.
- ์ด๋ฌํ ํน์ง ๋๋ถ์ ๊ฐ๋จํ๊ณ ๋น ๋ฅด๊ฒ ํ๋กํ ์ฝ์ด ๋์ํ ์ ์๋ค.
HTTP๋ ์ด๋ป๊ฒ ์ฐ๊ฒฐ์ ํ๋๋์ ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ๋ถ๋ฅํ ์ ์๋ค.
-
- non-persistent HTTP
- HTTP์ ์ด๊ธฐ ๋ชจ๋ธ๋ก, ํ๋ฒ์ ์ฐ๊ฒฐ์ 1๊ฐ์ ์ปจํ ์ธ ๋ฅผ ์ฒ๋ฆฌํ๋ ํ์์ด๋ค.
-
- persistent HTTP
- ํ ๋ฒ ์ฐ๊ฒฐํ๋ ๋์์ ์ปจํ ์ธ ๋ฅผ ๊ณ์ํด์ ๊ตํํ๋ ํ์์ด๋ค.
- TCP๋ก ์ฒ์ ์ฐ๊ฒฐํ๋๋ฐ RTT(Round Trip Time)์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ ค์ ๊ณ ์๋ ์ฐ๊ฒฐ ๋ฐฉ์์ด๋ค.
- RTT๋ ํ ํจํท์ด end to end๋ก one-round-trip ํ๋๋ฐ(๋ค์ ๋๋์์ค๋๋ฐ) ์์๋๋ delay ์๊ฐ์ ๋ํ๋ธ๋ค.
HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉ๋๋ ๋ฉ์์ง๋ค์ ASCII๋ก ์์ฑ๋์ด ์ผ๋ฐ ์ฌ์ฉ์๋ค์ด ์ฝ์ ์ ์๋ ํํ์ด๋ค. HTTP ํ๋กํ ์ฝ ๋ฉ์ธ์ง๋ ํฌ๊ฒ HTTP request์ HTTP response๋ก ๊ตฌ๋ถํ ์ ์๋ค.
์ด๋ฆ ๊ทธ๋๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ปจํ ์ธ ๋ฅผ ์๊ตฌํ ๋ ์ฌ์ฉ๋๋ ๋ฉ์์ง๋ก, ์๋์ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋์ด ์๋ค.
-
- request line
- HTTP request ๋ฉ์์ง์ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์ค์ ์์นํ๋ค.
- GET, POST, PUT, DELETE์ ๊ฐ์ ๋ฉ์๋ + ์์ฒญํ๋ object + ํ๋กํ ์ฝ ๋ฒ์ ์ ๋ณด ๋ฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
-
- header line
- ์ฃผ์ ๋ด์ฉ๋ค์ ๋ด๊ณ ์๋ค.
- ์๋ฒ ํธ์คํธ ์ฃผ์, ํด๋ผ์ด์ธํธ ์ฌ์ฉ์ ์ ๋ณด, ํด๋ผ์ด์ธํธ๊ฐ ์ง์ํ๋ ์ธ์ด / ํ์ / ํ์ผ ๋ฑ์ ๋ํ๋ธ๋ค.
์ฐธ๊ณ ๋ก ๋ฉ์๋ ์ค POST ๋ผ๋ ๋ฉ์๋๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ๋ณํ๋ฅผ ์๋ ค์ค ๋ ์ฌ์ฉํ๋ค. ๊ทธ๋์ ์ธ์คํ๊ทธ๋จ์ ๊ฒ์๊ธ์ ์ฌ๋ฆฌ๋ ๋ฑ ์ฌ์ฉ์๊ฐ ์นํ์ด์ง์ ์ด๋ค ๋ณํ๋ฅผ ์ฃผ๋ฉด POST ๋ฉ์๋๋ฅผ ์ด์ฉํ๋ค.
๊ฐ์ ๋งฅ๋ฝ์ผ๋ก ์ฌ์ฉ์๊ฐ ๊ตฌ๊ธ ๊ฒ์์ ํ ๋, ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฒ์์ด๋ฅผ POST ๋ฉ์๋๋ฅผ ํตํด ์๋ฒ์๊ฒ ๋๊ฒจ์ฃผ๋๊ฒ ์ผ๋ฐ์ ์ด๋ค. ํ์ง๋ง, POST ๋ฉ์๋๋ณด๋ค GET ๋ฉ์๋๊ฐ ๋ ๊ฐ๋จํ๋ฏ๋ก, GET ๋ฉ์๋์ ๊ฒ์์ด๋ฅผ parameter๋ก ๋๊ฒจ์ฃผ๋ ํํ๋ก ์ด์ฉํ๊ธฐ๋ ํ๋ค.
์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ผ ๋ ์ฌ์ฉ๋๋ ๋ฉ์์ง๋ก, ์๋์ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋์ด ์๋ค.
์ฟ ํค๋ ๋ฌธ์์ ์ซ์์ ์กฐํฉ์ผ๋ก ๋ ์์ ํ์ผ์ด๋ค. ์ฝ๊ฒ ๋งํด, ์๋ฒ๊ฐ ์ฃผ๋ ์ผ์ข ์ ์ธ๋ฑ์ค์ด๋ค.
์๋ฒ๋ ์ฟ ํค๋ฅผ ํตํด์ ํด๋ผ์ด์ธํธ๋ฅผ ์๋ณํ๊ณ ์ด์ ๋ง์ถฐ ๋ค์ํ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค. ์๋ง์กด ์ฌ์ดํธ์ ๋ค์ด๊ฐ๋ฉด ๋ด๊ฐ ํด๋ฆญํ๋ ์ํ ๋ชฉ๋ก๋ค์ ๋ณด์ฌ ์ฃผ๋๋ฐ, ์ด๋ฐ ๊ฒ๋ค์ด ๋ชจ๋ ์ฟ ํค๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ ๊ฒ์ด๋ค.
์ฌ์ฉ์๊ฐ ํน์ ์ฌ์ดํธ์ ์ฒ์ ์ ์ํ๋ฉด, ๊ทธ ์ฌ์ดํธ ์๋ฒ๋ ์ฌ์ฉ์์๊ฒ Cookie header๋ผ๋ ์ซ์๋ฅผ ๋ถ์ฌํด์ค๋ค. ๋ธ๋ผ์ฐ์ ๋ ๋ถ์ฌ๋ฐ์ Cookie header์ ์ฌ์ดํธ ์ด๋ฆ์ ์กฐํฉํ์ฌ ๋ง๋ค์ด์ง ์ฟ ํค ํ์ผ์ ์ฌ์ฉ์์ ์ปดํจํฐ์ ์ ์ฅํ๋ค.
์ดํ ์ฌ์ฉ์๊ฐ ๊ทธ ์ฌ์ดํธ์ ์ ์ํ ๋๋ง๋ค ํด๋น ์ฟ ํคํ์ผ์ ๋ณด๋ด์ฃผ๋ฉด ์๋ฒ๋ ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ฅผ ์๋ณํ ์ ์๋ค.
์ด์ฒ๋ผ ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ฉด HTTP์ statelessํ ํน์ฑ์ stateํ๊ฒ ๋ง๋ค ์ ์๋ค.
์ ์ฒด์ ์ธ ๋์ ๊ณผ์ ์ ์๋์ ๊ฐ๋ค.
- (1) ์๋ฒ๊ฐ cookie๋ฅผ initiate ํด set-cookie ๋ผ๋ ํ๋๋ก ๋ฃ์ด response
- (2) ๋ค์์ ๋ค์ ์์ฒญํ ๋ cookie ๊ฐ์ ๋ด์์ ์์ฒญ
- ์๋ฒ๋ ํด๋น ํด๋ผ์ด์ธํธ๋ฅผ cookie๋ก ๊ด๋ฆฌํ ์ ์์
- ํด๋ผ์ด์ธํธ๋ ์ปดํจํฐ๋ฅผ ๊ป๋ค ์ผ๋๋ผ๋ cookie๊ฐ์ผ๋ก ๋ค์ ์์ฒญํ ์ ์์
์์ ๋ด์ฉ๋ค์ ์ข ํฉํด๋ณด์์ ๋, ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ 4๊ฐ์ง ๊ตฌ์ฑ์์๊ฐ ํ์ํ๋ค.
- HTTP response ๋ฉ์์ง์ Cookie header line
- HTTP request ๋ฉ์์ง์ Cookie header line (HTTP response ๋ฉ์์ง ๋ฐ๋ก ๋ค์์ ๋ฑ์ฅ)
- ํด๋ผ์ด์ธํธ์ ์ปดํจํฐ์ ์ ์ฅ๋๋ ์ฟ ํคํ์ผ๊ณผ ์ด๋ฅผ ๊ด๋ฆฌํด์ฃผ๋ ๋ธ๋ผ์ฐ์
- ์น์ฌ์ดํธ์์ ์ฌ์ฉ์๋ค์ ์ฟ ํคํ์ผ์ ๊ด๋ฆฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
Cookie๊ฐ ์ฌ์ฉ๋๋ ๊ณณ์ ์๋์ ๊ฐ๋ค.
- ์น๋ธ๋ผ์ฐ์ ์ ๋ํ ๋ก๊ทธ์ธ ์ ๋ณด ๊ธฐ์ต (๋ก๊ทธ์ธํ๋ ์นํ์ด์ง์ ๋ค์ ์ ์ํด๋ณด๋ฉด ๋ก๊ทธ์ธ ์ ๋ณด๊ฐ ๊ธฐ์ต๋ผ ์๋ ๊ฒ)
- ์จ๋ผ์ธ ๋ชฐ์์์ ๊ตฌ๋งค๋ชฉ๋ก ๊ธฐ๋ฅ
- email ์ ๋ณด ๊ธฐ์ต
๋ฑ๋ฑ state๊ฐ ํ์ํ ๊ณณ์์ ์ฌ์ฉ๋๋ค.
ํ์ง๋ง, ์ฟ ํค๋ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๊ธฐ ๋๋ฌธ์ privacy ์ด์๊ฐ ์๋ค. ๊ทธ๋์ ๋ณดํต ์๋ฒ์ชฝ์์๋ ์ฟ ํค๋ฅผ ์ฌ์ฉํ ๋, ๊ฐ์ธ์ ๋ณดํ์ฉ ๋์๊ฐ ์๋ฐ๋๋ค.
์บ์๋ผ๋ ๋ง์ ์ปดํจํฐ์ ๋ค์ํ ๋ถ์ผ์์ ์์ฃผ ์ฐ์ธ๋ค. CPU์์์ ์บ์ ๋ฉ๋ชจ๋ฆฌ, ์ด์์ฒด์ ์์์ ํ์ด์ง ์บ์, ํ์ผ ์์คํ ์์๋ ์บ์๋ผ๋ ๋ง์ด ๋ฑ์ฅํ ์ ๋๋ก ๋ค์ํ ๋ถ์ผ์์ ์ฐ์ธ๋ค.
๊ทธ ์ค์์๋ ์น์์ ์ฐ์ด๋ ์น ์บ์๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์์ ์๋ฒ๋ก๋ถํฐ ์ปจํ ์ธ ๋ฅผ ๋ ๋นจ๋ฆฌ ๋ฐ์, ํด๋ผ์ด์ธํธ์๊ฒ ๋ ๋น ๋ฅด๊ฒ ์ปจํ ์ธ ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ค.
์น ์บ์๋ ํ๋ก์ ์๋ฒ(Proxy server)๋ฅผ ํตํด ๊ตฌํํ๋ฉฐ, ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์์นํ๋ค.
- ํ๋ก์ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์์ฒญํ๋ ๊ฒ์ ๋ฃ๊ณ
- (1) ๋ง์ฝ ์์ฒญํ๋ ์ปจํ ์ธ ๊ฐ ์์ (ํ๋ก์ ์๋ฒ)์๊ฒ ์์ ๊ฒฝ์ฐ, ๋ฐ๋ก ํด๋ผ์ด์ธํธ์๊ฒ ์ปจํ ์ธ ๋ฅผ ์ ๊ณตํ๊ณ
- (2) ์์ฒญํ๋ ์ปจํ ์ธ ๊ฐ ์์ ์๊ฒ ์์ ๊ฒฝ์ฐ ์ค๋ฆฌ์ง๋ ์๋ฒ์๊ฒ ์ปจํ ์ธ ๋ฅผ ์์ฒญํ๊ณ ์ด๋ฅผ ํ๋ก์ ์๋ฒ์ ์ ์ฅํ ํ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๊ณตํ๋ ํํ๋ก ๋์ํ๋ค.
๊ทธ๋์ ์ต์ด ํด๋ผ์ด์ธํธ์ ์ต์ด ์์ฒญ์ ์ ์ธํ ๋๋จธ์ง ์์ฒญ๋ค์ ํ๋ก์ ์๋ฒ์์ ์ ๋ณด๋ฅผ ๋ฐ์์ฌ ์ ์๊ฒ ๋๋ค.
- ์น ์บ์์ ์ฅ์
- (1) ์์ฒญ-์๋ต ์๊ฐ(response time)์ ์ค์ผ ์ ์๋ค.
- ์น ์บ์๋ ๊ตณ์ด ๋ฉ๋ฆฌ ์๋ ์ค๋ฆฌ์ง๋ ์๋ฒ๋ก ๊ฐ์ง ์๊ณ , ๊ฐ๊น์ด ์๋ ํ๋ก์ ์๋ฒ๋ก ๊ฐ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ์์ฒญ-์๋ต ์๊ฐ์ ์ค์ผ ์ ์๋ค.
- (2) ์๋ฒ์ ํธ๋ํฝ(traffic)์ ์ค์ผ ์ ์๋ค.
- ์น ์บ์๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ๋ชจ๋ ์๋ฒ๋ก ๊ฐ๋ ๊ฒ์ด ์๋, ํ๋ก์ ์๋ฒ๋ก ํธ๋ํฝ์ด ๋ถ์ฐ๋๊ธฐ ๋๋ฌธ์, ๊ทธ๋งํผ์ ์์ฒญ์ ๋ํ ํธ๋ํฝ์ ์๋ ์ ์๋ค.
- ๋ง์ฝ 40%๊ฐ hit๋์ด ์ค๋ฆฌ์ง๋ ์๋ฒ๋ก ์ค์ง ์๋๋ค๋ฉด, 40%๋งํผ ํธ๋ํฝ์ ์๋ ์ ์๋ ๊ฒ์ด๋ค.
- (1) ์์ฒญ-์๋ต ์๊ฐ(response time)์ ์ค์ผ ์ ์๋ค.
- ์น ์บ์์ ๋จ์
- ํ๋ก์ ์๋ฒ๊ฐ ์ ๊ณตํ๋ ์ปจํ
์ธ ๋ ์ต์ ์ปจํ
์ธ ๊ฐ ์๋ ์ ์๋ค.
- ๋ง์ฝ ์ค๋ฆฌ์ง๋ ์๋ฒ์์ ์ปจํ ์ธ ๋ฅผ ๊ณ์ํด์ ์ ๋ฐ์ดํธ ํ๊ณ ์์ง๋ง, ํ๋ก์ ์๋ฒ๋ ์ค๋๋ ์ปจํ ์ธ ๋ฅผ ์ ๊ณตํ ์ ์๋ค.
- ํ๋ก์ ์๋ฒ๊ฐ ์ ๊ณตํ๋ ์ปจํ
์ธ ๋ ์ต์ ์ปจํ
์ธ ๊ฐ ์๋ ์ ์๋ค.
DNS๋ ํ๋ง๋๋ก ๋งํด์ ์ฌ๋๋ค์ด ์ฐ๊ธฐ ํธํ ํธ์คํธ ๋ค์(www.naver.com
)์ ์ปดํจํฐ๊ฐ ์์๋ค์ ์ ์๋ ์์ดํผ ์ฃผ์(125.209.222.141
)๋ก ๋ฐ๊ฟ์ฃผ๋ ์์คํ
์ด๋ค.
์ธ์์ ์๋ ๋ชจ๋ ์๋ฒ์ ์ฃผ์๋ IP ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ์๋ค์ด ํด๋น ์๋ฒ์ ์ ์ํ๊ธฐ ์ํด์๋ ๊ทธ ์๋ฒ์ IP ์ฃผ์๋ฅผ ์ธ์ฐ๊ณ ์ ๋ ฅํด์ผ ํ๋ค. ํ์ง๋ง, IP ์ฃผ์๋ ๋ณด๋ค์ํผ ๊ทธ๋ฅ ์ซ์์ ์ ์ ์กฐํฉ์ผ๋ก ์ด๋ฃจ์ด์ง ์ฃผ์๋ก, ์ฌ๋๋ค์ด ์ธ์ฐ๊ณ ์ฌ์ฉํ๊ธฐ ๋งค์ฐ ๋ถํธํ๋ค.
๊ทธ๋์ DNS ๋ผ๋ ์๋น์ค๋ฅผ ์ด์ฉํด ์๋ฌธ ์ฃผ์์ IP ์ฃผ์๋ฅผ ์ฝ๊ฒ ๋งคํ(mapping)ํ์ฌ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด๋ค.
-
- Hostname์ IP ์ฃผ์๋ก ๋ฐ๊ฟ์ฃผ๋ ์๋น์ค (hostname to IP address translation)
- DNS์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์๋น์ค์ด๋ค.
-
- Host aliasing
- ํธ์คํธ ์ด๋ฆ์ด ๋๋ฌด ๊ธธ ๊ฒฝ์ฐ, ์ค์ฌ์ ๋ถ๋ฅผ ์ ์๋๋ก ๋งคํ ์ ๋ณด๋ฅผ ์ ๊ณตํ ์ ์๋ค.
- ์๋ฅผ ๋ค์ด ์ฐ๋ฆฌ๊ฐ ์ ์๊ณ ์๋
www.naver.com
์ ์ค์ ํธ์คํธ ์ด๋ฆ์www.naver.com.nheos.com
์ด๋ค. ์ด๊ฒ ๋๋ฌด ๊ธฐ๋๊น ์ ์์ ๊ฐ์ด ์ค์ฌ์ ๋ถ๋ฅด๋ ๊ฒ์ด ํธํ๋ค.
-
- ๋๋ฉ์ธ ์ด๋ฆ์ผ๋ก ๋ฉ์ผ ์๋ฒ์ ํธ์คํธ ์ด๋ฆ ์ฐพ๊ธฐ (Mail server aliasing)
- ์ฌ์ฉ์๋ค์ด ์ฐ๋ ๋ฉ์ผ ์ฃผ์๋ฅผ ์ค์ ๋ฉ์ผ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์๋ฒ์ ๋งคํ์์ผ์ฃผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์ ์๋ค.
- ์๋ฅผ ๋ค์ด
~~~@naver.com
์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฉ์ผ ์๋น์ค๋ฅผ ์ด์ฉ ํ์ ๋, ํด๋น ๋ฉ์ผ ์๋น์ค๋ฅผ ๋ด๋นํ๋ ๋ฉ์ผ ์๋ฒ์ ํธ์คํธ๋ช ์mx1.naver.com
์ด๋ค.
-
- ๋์ผ ๋๋ฉ์ธ ์ฃผ์์ ์ ๊ทผํ๋ ํด๋ผ์ด์ธํธ๋ค์๊ฒ IP ์ฃผ์ ๋ถ์ฐ ์์ผ ์ฃผ๊ธฐ (Load distribution)
- ์๋ฒ์ ์ฌ๋ฌ๊ฐ์ IP ์ฃผ์๋ฅผ ๋์ํ๊ฒ ํด์ค์ผ๋ก์จ ์๋ฒ์ ๋ถ๋ด์ ๋ถ์ฐํด์ฃผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์ ์๋ค.
- ์๋ฅผ ๋ค์ด ๋ค์ด๋ฒ ์๋ฒ์ IP ์ฃผ์๋
125.209.222.141
๊ณผ223.130.195.95
๋ ๊ฐ์ด๋ค. - ์ด์ฒ๋ผ IP ์ฃผ์๋ฅผ ์ฌ๋ฌ๊ฐ๋ก ๋์์ํด์ผ๋ก์จ ๋ค์ด๋ฒ ์๋ฒ์ ๋ถ๋ด์ ๋ถ์ฐํด์ค ์ ์๋ค.
- ํ์ง๋ง, ๊ทธ๋ ๋ค๊ณ ํด์ ๋ค์ด๋ฒ ์๋ฒ๋ฅผ ๋๊ฐ์ ์ปดํจํฐ๊ฐ ๋ด๋นํ๊ณ ์๋ค๋ ๊ฒ์ ์๋๋ค.
- DNS๋ ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- ์์ ๊ทธ๋ฆผ์์ ๊ฐ์ฅ ์ต์์์ ์์นํ DNS ์๋ฒ๋ฅผ ๋ฃจํธ ๋ค์ ์๋ฒ๋ผ ํ๊ณ ,
- ๊ทธ ๋ฐ๋ก ์๋์ ์๋ DNS ์๋ฒ๋ฅผ TLD ๋ค์ ์๋ฒ๋ผ๊ณ ํ๋ค. (Top Level Domain name)
- ๊ทธ๋ฆฌ๊ณ ์ค์ IP ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ DNS ์๋ฒ๋ฅผ Authoritative name server๋ผ๊ณ ํ๋ค.
- ๋ฐ๋ผ์ ๋ง์ฝ ์ฌ์ฉ์๊ฐ
www.amazon.com
๋ผ๊ณ ์ฃผ์์ฐฝ์ ์ ๋ ฅํ๋ฉด,- ๋ฃจํธ ๋ค์ ์๋ฒ๊ฐ
.com
์ ๋ด๋นํ๋ TLD ๋ค์ ์๋ฒ๋ฅผ ์ฐพ์์ค๋ค. .com
์ ๋ด๋นํ๋ TLD ๋ค์์๋ฒ๋amazon.com
์ ๋ด๋นํ๋ DNS ์๋ฒ๋ฅผ ์ฐพ์์ค ๊ฒ์ด๊ณ ,- ๊ฒฐ๊ตญ ์ํ๋ ์น์ฌ์ดํธ์ IP ์ฃผ์๋ฅผ ์ฐพ์ ์ ์๊ฒ ๋๋ค.
- ๋ฃจํธ ๋ค์ ์๋ฒ๊ฐ
๋ฃจํธ ๋ค์ ์๋ฒ๋ ์ด๊ธฐ์ 13๊ฐ๋ง ์กด์ฌํ๋ค. ๋๋ถ๋ถ์ด ๋ฏธ๊ตญ์ ์กด์ฌํ์ผ๋ฏ๋ก, ๊ฐ Local DNS ์๋ฒ๊ฐ ๋ฃจํธ ๋ค์ ์๋ฒ์ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๊ธฐ ์ํด์๋ ํด์ธ์ ์กด์ฌํ๋ ๋ฃจํธ ๋ค์ ์๋ฒ์ ์ ๊ทผํด์ผ๋ง ํ๋ค.
ํ์ง๋ง, ํ์ฌ๋ 13๊ฐ์ ๋ฃจํธ ๋ค์ ์๋ฒ๋ฅผ ๋ฏธ๋ฌ๋งํ๋ ์๋ฒ๊ฐ ์ ์ธ๊ณ์ ์์ผ๋ฏ๋ก ๊ทธ๊ฑธ ์ด์ฉํ๋ฉด ๋๋ค. ํ์ฌ, ์ฐ๋ฆฌ๋๋ผ์์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฑด ๋์ฟ์ ์๋ ์๋ฒ์ด๋ค.
- ๋ง์ผ DNS ์๋ฒ๋ฅผ ํ๋๋ก ๋๋ค๋ฉด?
- ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆผ (traffic volume / distant centralized database)
- Single Point of Failure (ํ๋์ centralized server die > ์๋น์ค ์ค๋จ)
- maintenance
Local DNS ์๋ฒ๋ DNS ์๋น์ค๋ฅผ ์ด์ฉํ ๋, ๋์์ฃผ๋ ์ญํ ์ ํ๋ค.
์ฃผ๋ก KT๋ SKT ๊ฐ์ ISP๊ฐ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ฌ์ฉ์๊ฐ DNS ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๋ฉด local DNS ์๋ฒ๊ฐ ๊ฐ์ฅ ๋จผ์ ๋ฐ๊ฒ ๋๋ค.
DNS ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๋ฐ๋ผ Iterative query์ recursive query๋ก ๋ถ๋ฅํ ์ ์๋ค.
- ์ฌ์ฉ์๊ฐ ํน์ ํธ์คํธ ์ด๋ฆ์ IP ์ฃผ์๋ฅผ ์์ฒญํ๋ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๋ฉด, Local DNS ์๋ฒ๊ฐ ๋จผ์ ๋ฐ๋๋ค.
- Local DNS ์๋ฒ๋ ๋ฃจํธ ๋ค์ ์๋ฒ์๊ฒ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๊ณ , ๋ฃจํธ ๋ค์ ์๋ฒ๋ .edu์ ํด๋นํ๋ TLD๋ฅผ ์๋ ค์ค๋ค.
- Local DNS ์๋ฒ๋ edu์ ํด๋นํ๋ TLD์๊ฒ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๊ณ , TLD๋ umass.edu์ ํด๋นํ๋ DNS ์๋ฒ๋ฅผ ์๋ ค์ค๋ค.
- Local DNS ์๋ฒ๋ umass.edu์ ํด๋นํ๋ DNS ์๋ฒ์๊ฒ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๊ณ , ํด๋น DNS ์๋ฒ๋ gaia.cs.umass.edu์ ํด๋นํ๋ IP ์ฃผ์๋ฅผ ์๋ ค์ค๋ค. ์ฆ, umass.edu๋ฅผ ์ฑ ์์ง๋ DNS ์๋ฒ๊ฐ authoritative name ์๋ฒ์ธ ๊ฒ์ด๋ค.
- ๋ง์ง๋ง์ผ๋ก Local DNS ์๋ฒ๊ฐ ์ฌ์ฉ์์๊ฒ IP ์ฃผ์๋ฅผ ์ ๋ฌํ๋ค.
- ์ฌ์ฉ์๊ฐ ํน์ ํธ์คํธ ์ด๋ฆ์ IP ์ฃผ์๋ฅผ ์์ฒญํ๋ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๋ฉด, Local DNS ์๋ฒ๊ฐ ๋จผ์ ๋ฐ๋๋ค.
- Local DNS ์๋ฒ๋ ๋ฃจํธ ๋ค์ ์๋ฒ์๊ฒ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๊ณ , ๋ฃจํธ ๋ค์ ์๋ฒ๋ .edu์ ํด๋นํ๋ TLD ์๋ฒ์๊ฒ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฐ๋ค.
- edu์ ํด๋นํ๋ TLD ์๋ฒ๋ umass.edu์ ํด๋นํ๋ DNS ์๋ฒ์๊ฒ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฐ๋ค.
- umass.edu์ ํด๋นํ๋ DNS ์๋ฒ๋ gaia.cs.umass.edu์ ํด๋นํ๋ IP ์ฃผ์๋ฅผ TLD ์๋ฒ์๊ฒ ์๋ ค์ค๋ค. ์ฆ, umass.edu๋ฅผ ์ฑ ์์ง๋ DNS ์๋ฒ๊ฐ authoritative name ์๋ฒ์ธ ๊ฒ์ด๋ค.
- TLD ์๋ฒ๋ ๋ฃจํธ ๋ค์ ์๋ฒ์๊ฒ IP ์ฃผ์๋ฅผ ์๋ ค์ค๋ค.
- ๋ฃจํธ ๋ค์ ์๋ฒ๋ Local DNS ์๋ฒ์๊ฒ IP ์ฃผ์๋ฅผ ์๋ ค์ค๋ค.
- ๋ง์ง๋ง์ผ๋ก Local DNS ์๋ฒ๊ฐ ์ฌ์ฉ์์๊ฒ IP ์ฃผ์๋ฅผ ์ ๋ฌํ๋ค.
DNS๋ Local DNS ์๋ฒ๋ฅผ ํตํด caching์ ํ๋ค.
Local DNS ์๋ฒ์ ์ด์ ์ ์ฌ์ฉํ๋ DNS ๋งคํ ์ ๋ณด๋ฅผ ์ ์ฅํด ๋๊ณ , ๊ฐ์ ์ง์๊ฐ ์ค๋ฉด ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด๋ค. TTL(Time To Live) ๊ฐ๋ ์ ์ฌ์ฉํ์ฌ, ํน์ ๊ธฐ๊ฐ๋์ ์ฌ์ฉ๋์ง ์์ผ๋ฉด ์๋์ผ๋ก ์ญ์ ๋๋ค.
ํนํ TLD ๋ค์ ์๋ฒ๋ Local DNS ์๋ฒ์ ์บ์ฑ๋์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฏ๋ก, ๋ฃจํธ ๋ค์ ์๋ฒ์๊ฒ TLD ๋ค์ ์๋ฒ๋ฅผ ๋ฌผ์ด๋ณด์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋๋ค์์ด๋ค.
Pure P2P architecture์ ๊ดํ ๋ด์ฉ์ ์ด ๊ณณ ์ฐธ์กฐ
Napster๋ ์ ๊พธ๋ฌ๊ธฐ๋ผ๋ ๋ป์ผ๋ก, ์จ๋ผ์ธ ์์ ํ์ผ ๊ณต์ ์๋น์ค์๋ค. (๊ฐ๋ฐ์ ์ ํจ๋์ ๋ํ์ ์์ , ๊ทธ์ ๋ฃธ๋ฉ์ดํธ๊ฐ ์์ ์ ๋ค์ด๋ฐ๋๋ผ ์๋ฒฝ์ ๋งค์ผ ๊ฐ์ด ์น ํ์ด์ง๋ฅผ ๋ค์ ธ์ ์ ํจ๋์ด ์ ์ ๋ชป ์ค๋ค๊ณ ํ๋ค. ๊ทธ๋์ ๋ต๋ตํ ์ ํจ๋์ ์์ ํ์ผ ๊ณต์ ์๋น์ค๋ฅผ ์ง์ ๋ง๋ค์ด๋ฒ๋ ธ๊ณ , '์ ์ข ์์'๋ผ๋ ์๋ฏธ๊ฐ ๋ง๋ "Napster"์ ๋ด๊ฒจ์๋ค๊ณ ํ๋ค.) (ํ์ฌ๋ ์ ์๊ถ ๊ด๋ จ ์์ก ๋ฑ์ ๋ฌธ์ ๋๋ฌธ์ ์๋น์ค๊ฐ ์ค๋จ๋์๋ค.)
- Napster๋ ์ด์ฐฝ๊ธฐ P2P ๋ชจ๋ธ๋ก, **์ค์ํ๋ ์๋ฒ(centralized server)**๋ฅผ ๊ฐ์ง๋ค.
- (1) ํผ์ด(A)๋ ์๋ฒ์ ์ฐ๊ฒฐํ์ฌ ์ํ๋ ํ์ผ์ ์ง๋ฌธ(query)ํ๋ค.
- (2) ์๋ฒ๋ ํผ์ด(A)์๊ฒ ํด๋น ํ์ผ์ ๊ฐ๊ณ ์๋ ๋ค๋ฅธ ํผ์ด(B)๋ฅผ ์๋ ค์ค๋ค.
- (3) ํผ์ด(A)๋ ํ์ผ์ ๊ฐ์ง ํผ์ด(B)์ ์ฐ๊ฒฐํ์ฌ ํ์ผ์ ์์ฒญํ๊ณ , ์๋ฒ๋ฅผ ๊ฑฐ์น์ง ์๊ณ ํผ์ด๋ค๋ผ๋ฆฌ ํ์ผ์ ๊ณต์ ํ๋ค.
์ด์ฒ๋ผ, P2P ๋ชจ๋ธ์ ํ์ผ์ ๊ณต์ ์, ์ค์ ์๋ฒ๋ฅผ ๊ฑฐ์น์ง ์๊ณ ํด๋ผ์ด์ธํธ ์ปดํจํฐ๋ผ๋ฆฌ ์ง์ ํต์ ํ๋ ๋ฐฉ์์ด๋ค.
ํ์ง๋ง, Napster๋ ์ค์ ์ง์ค์ ๋๋ ํ ๋ฆฌ(centralized directory)๋ฅผ ๊ฐ์ง๋๋ฐ, ์ด ๊ฐ์ ๊ตฌ์กฐ๋ ์๋์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๋ค.
- Robustness : single point of failure
- centralized server๊ฐ fail๋๋ฉด ์๋น์ค๋ ๋๋๋ค! (centralized service์ ๋จ์ )
- Scalability : Performance bottleneck
Gnutella๋ GNU ํ์ฌ์ ๋ค๋๋ ๊ฐ๋ฐ์๋ค์ด ๋ง๋ ์๋น์ค์ด๋ค. (๊ฐ๋ฐ์ ์ค ํ ๋ช ์ ์์ดํ๊ฐ ๋ํ ๋ผ๋ฅผ ์ข์ํด์ ์ด๋ฆ์ ์ด๋ ๊ฒ ๋ง๋ค์๋ค๊ณ ํ๋ค.)
- Gnutella๋ ์ค์ ์๋ฒ๋ฅผ ๋์ง ์๋ ๋ถ์ฐํ ์๋น์ค์ด๋ค.
- ํ๋์ ์๋ฒ๊ฐ ๋ชจ๋ ๊ฒ์ ์๊ธฐ๋ณด๋ค, ํ๋์ ํผ์ด๊ฐ ๋ช๊ฐ์ ํผ์ด๋ค์ด ๊ฐ์ง ํ์ผ์ ์๊ณ ์๊ณ , ๊ทธ ํผ์ด๋ค๋ ๋ช ๊ฐ์ ํผ์ด๋ค์ด ๊ฐ์ง ํ์ผ์ ์๋ ๊ตฌ์กฐ์ด๋ค.
- ์ฆ ๋ค๋จ๊ณ์ฒ๋ผ ๋ป์ด๋๊ฐ ๊ฒฐ๊ตญ ๋ชจ๋ ํผ์ด๋ค์ด ์ฐ๊ฒฐ๋๋ ํํ์ด๋ค.
- ์๋ ๋ฐฉ์
- (1) ์ด๋ ํผ์ด๊ฐ ์ด๋ค ํ์ผ์ ์ํ๋ฉด ์์ ์ด ์๊ณ ์๋ ํผ์ด์๊ฒ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฐ๋ค.
- (2) ์ฟผ๋ฆฌ๋ฅผ ๋ฐ์ ํผ์ด๋ ์๊ธฐ๊ฐ ํด๋น ํ์ผ์ ๊ฐ์ง๊ณ ์์ผ๋ฉด ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฐ ํผ์ด์๊ฒ ์๋ ค์ฃผ๊ณ , ์๊ธฐ๊ฐ ํด๋น ํ์ผ์ด ์์ผ๋ฉด ์์ ์ด ์๊ณ ์๋ ํผ์ด์๊ฒ ๋๋ค์ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฐ๋ค.
- (3) ๊ทธ๋ ๊ฒ ์ด๋ ํผ์ด๊ฐ ํ์ผ์ ๊ฐ์ง๊ณ ์๋์ง ์๊ฒ๋๋ฉด, ๊ทธ ์ค ํ๋์ ํผ์ด๋ฅผ ์ ํํด ํ์ผ์ ๋ฐ๋๋ค.
- (4) ํ์ผ ์ ์ก์๋ HTTP ํ๋กํ ์ฝ์ด ์ฌ์ฉ๋๋ค. (GET ๋ฉ์๋ ์ฌ์ฉ)
- Gnutella๋ ๋ชจ๋ ํผ์ด๋ค์ด ์ฐ๊ฒฐ๋์ด ์๊ธฐ์ ์๊ธฐ๋ ๋จ์ ๋ ์กด์ฌํ๋ค.
- ์ด ๋ฐฉ์์ ์ค์ ์๋ฒ๊ฐ ์์ผ๋ฏ๋ก, ์๋ฒ๊ฐ ๊ณ ์ฅ๋ ์ ์ฒด ์๋น์ค๊ฐ ๋ค์ด๋๋ ๋ฌธ์ ๋ ์์ง๋ง ํผ์ด๊ฐ ๋๋ฌด ๋ง์ผ๋ฉด ์๋๊ฐ ๋๋ ค์ง๋ค๋ ๋จ์ ์ด ์๋ค.
- ๋ณด์์ ์ทจ์ฝํ๊ณ , ์ ์์ ์ธ ํผ์ด๊ฐ ๋ง์์ ๋จน์ผ๋ฉด, ๋ค๋ฅธ ํผ์ด๋ค์ ์กฐ์ข ํ์ฌ DDoS ๊ณต๊ฒฉ์ ๊ฐํํ ์ ์๋ค.
- Piece: ๊ณต์ ํ์ผ์ ํ ์กฐ๊ฐ (256 kb)
- ํผ์ด๋ค์ ํ์ผ์ 256kb๋ก ์ชผ๊ฐ์ด ๊ณต์ ํ๋ค. (์ฌ์ค, ๊ณต์ ํ๋ ํ์ผ์ ํฌ๊ธฐ๊ฐ ํฌ๋ฉด, ์ชผ๊ฐ๋ ํ์ผ์ ํฌ๊ธฐ๋ฅผ 256kb๋ก ๊ณ ์ ํ์ง ์๊ณ , ๋๋ฆฌ๋ ๊ฒฝ์ฐ๋ ์๋ค.)
- Peer: Piece๋ค์ upload/download ํ๋ ์ฃผ์ฒด.
- Seeder: ๋ชจ๋ piece๋ฅผ ์ ๋ถ ๊ฐ์ง๊ณ ์๋ ํผ์ด๋ฅผ ์ง์นญ
- Leecher: ์ผ๋ถ piece๋ง์ ๊ฐ์ง๊ณ ์๋ ํผ์ด๋ฅผ ์ง์นญ
- Tracker: ํด๋ผ์ด์ธํธ(ํผ์ด)์๊ฒ peer list๋ฅผ ์ ๋ฌํ๋ ์ค์ ์ปดํจํฐ (๊ณต๊ฐ/๋น๊ณต๊ฐ)
- Swarm: Tracker ์์ ์์ผ๋ฉฐ, peer list๋ฅผ ๋ด๊ณ ์๋ DB
-
- ์กฐ๊ฐ ์ ํ ์๊ณ ๋ฆฌ์ฆ (Piece Selection Algorithm)
- (1) Strict Priority (์ ๊ณผ์ )
- ์กฐ๊ฐ์ ๋ฐ๊ธฐ ์์ํ๋ฉด, ๋ค๋ฅธ ์กฐ๊ฐ์ ์ ๊ฒฝ ์ฐ์ง ๋ง๊ณ , ํด๋น ์กฐ๊ฐ์ ๋ค์ด ๋ฐ๋๋ฐ ์ต์ ์ ๋คํ๋ผ.
- (2) Random First Piece (์ฒ์)
- Client๊ฐ ์ด๋ค ์กฐ๊ฐ๋ ๊ฐ๊ณ ์์ง ์์ ๊ฒฝ์ฐ, random์ผ๋ก piece๋ฅผ ์ ํํด์ download๋ฅผ ์์ํ๋ค.
- (3) Rarest First (์ค๊ฐ)
- download ์, ์์ ์ด download ํด์ผํ๋ ์กฐ๊ฐ ์ค์์ ํด๋น ์กฐ๊ฐ์ ๊ฐ์ง๊ณ ์๋ peer์ ์๊ฐ ๊ฐ์ฅ ์ ์ ์กฐ๊ฐ์ผ๋ก ๊ฒฐ์ ํ๋ค.
- ๋ฐ๋ผ์ ๊ฐ์ฅ ๋ง์ peer๋ฅผ ๊ฐ์ง๊ณ ์๋ ์กฐ๊ฐ์ด ๋ค์ด๋ก๋์ ๋ง์ง๋ง์ ๋จ๊ฒ ๋๋ค.
- ์ฒซ ์กฐ๊ฐ์ Random First Piece ์ ๋ต์ ์ฌ์ฉํ๋ฉฐ, ๊ทธ ๋ค์ ์กฐ๊ฐ๋ถํฐ Rarest First ์ ๋ต์ ์ฌ์ฉํ๋ค.
- (4) End Game Mode (๋ง์ง๋ง)
- ๋ง์ง๋ง ํ ๊ฐ์ ์กฐ๊ฐ์ download ํ ๋๋, peer ์ ์ฒด์๊ฒ download request๋ฅผ ํ๋ค.
- download๊ฐ ๋๋๋ฉด ๋ค๋ฅธ peer๋ค์๊ฒ๋ cancel ์์ฒญ์ ํ๋ค.
-
- ํผ์ด ์ ํ ์๊ณ ๋ฆฌ์ฆ (Peer Selection Algorithm)
- Choking
- upload๋ฅผ ํ์ง ์๊ณ , download๋ง ํ๋ peer๋ฅผ ๋ฐฉ์งํ๋ ๋ฐฉ๋ฒ.
- "์ผ์์ ์ผ๋ก ํน์ ํ client์๊ฒ uploading์ ๊ฑฐ๋ถํ๋ ๊ฒ."
- 10์ด๋ง๋ค ๊ฐฑ์ ๋๋ ๊ฐ๊ฐ์ peer๋ก๋ถํฐ์ download ์๋๋ฅผ ๊ณ์ฐํ์ฌ choke๋ฅผ ํ ์ง unchoke๋ฅผ ํ ์ง ๊ณ์ฐํ๋ค.
- BitTorrent์์๋ uploading ํ๋ peer๊ฐ downloading ํ๋ peer์๊ฒ โunchokeโ๋ฅผ ๋ณด๋์ผ๋ก์ download๊ฐ ์์๋๋ค.
- โunchokeโ ๋๋ peer์ ์๋ 4๊ฐ
- "optimistic unchocking"
- ์์ ์ผ๋ก uploadingํ๋ ์๋๊ฐ ๋น ๋ฅธ peer์ ๋ํด unchoke๋ฅผ ์คํ
- (20์ด ๋จ์๋ก ๊ด์ธกํ๊ณ , 10์ด๋ง๋ค unchoke peer๋ฅผ ๋ณ๊ฒฝ)
- 30์ด๋ง๋ค optimistic unchocking ํ์ง ์๊ณ , "random selection" ํ๋ค.
- ๋ฐฉ๊ธ ์ ์ํ ์๋ก์ด peer๋ค์๊ฒ ๊ธฐํ๋ฅผ ์ฃผ๋ ์ญํ ์ ํ๋ค.
- ๋ฒ์ธ) torrent ์ด์ ํ์ฌ์ ์์ต ๋ชจ๋ธ์ ๋ฌด์์ธ๊ฐ?
- SW์ ์ ๋ฐ์ดํธ, ์ ๊ท ๋ฐฐํฌ ๋ฑ์ torrent๋ฅผ ํตํด ๋ฐฐํฌ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ์์ต์ด ๋ฐ์ํ๋ค.
- Computer Networking: A Top Down Approach 6th edition - Jim Kurose, Keith Ross Addison-Wesley March 2012
- https://en.dict.naver.com/#/entry/enko/3365d85cadaf4ba19c6e2bb70cd4cd1f
- https://ko.itpedia.nl/2019/01/11/wat-is-p2p-peer-to-peer-en-wat-kan-je-er-mee/
- https://velog.io/@wjs4199/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-P2P
- https://inyongs.tistory.com/56
- https://heo-seongil.tistory.com/103
- https://ko.wikipedia.org/wiki/TCP/UDP%EC%9D%98_%ED%8F%AC%ED%8A%B8_%EB%AA%A9%EB%A1%9D
- https://velog.io/@jeanbaek/%EC%BB%B4%ED%93%A8%ED%84%B0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%82%B9-2-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EA%B3%84%EC%B8%B5-1-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%9D%98-%EC%9B%90%EB%A6%AC
- https://velog.io/@lychee/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-2.1-Application-layer
- https://hwanine.github.io/network/UDP/
- https://namu.wiki/w/P2P
- https://ddongwon.tistory.com/m/72
- https://inyongs.tistory.com/m/57
- https://ddongwon.tistory.com/m/73
- https://inyongs.tistory.com/m/58
- https://inyongs.tistory.com/m/59
- https://ddongwon.tistory.com/m/74
- https://velog.io/@lychee/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-2.4#iterated-query
- https://ddongwon.tistory.com/m/75