0. ๋คํธ์ํฌ ์ดํ๋ฆฌ์ผ์ด์ ์ ์์น
๋คํธ์ํฌ๋ ๊ณ์ธต์ ๋๋ ์ค๊ณ๋์ด ์๋ค๊ณ ํ๋ค. ๊ตฌ์ฒด์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๋ ๊ณผ์ ์ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. ๋ค์ ๊ณผ์ ์ด ๋๋๋ฉด ๋ฐ์ดํฐ๋ 5์ค์ผ๋ก ์ ํฌ์ฅ๋๊ณ ๊ฐ์ฅ ๊ฒ์๋ ๋ฌผ๋ฆฌ(physical) ๊ณ์ธต์ ํฌ์ฅ์ด ์กด์ฌํ๊ฒ ๋๋ค.
0. ์์ฉ ํ๋ก๊ทธ๋จ ๊ณ์ธต์์ ํด๋นํ๋ ํ๋กํ ์ฝ๋ก ๋ฐ์ดํฐ๋ฅผ ํฌ์ฅํ๊ณ , ์ ์ก ๊ณ์ธต์ผ๋ก ๋๊ธด๋ค.
1. ์ ์ก ๊ณ์ธต์์ ํด๋นํ๋ ํ๋กํ ์ฝ๋ก ๋ฐ์ดํฐ๋ฅผ ํฌ์ฅํ๊ณ , ๋คํธ์ํฌ ๊ณ์ธต์ผ๋ก ๋๊ธด๋ค.
2. ๋คํธ์ํฌ ๊ณ์ธต์์ ํด๋นํ๋ ํ๋กํ ์ฝ๋ก ๋ฐ์ดํฐ๋ฅผ ํฌ์ฅํ๊ณ , ๋งํฌ ๊ณ์ธต์ผ๋ก ๋๊ธด๋ค.
3. ...
ํฌ์ฅ๋ ๋ฐ์ดํฐ์ ์ ๋ณด๋ฅผ ํ ๋๋ก ๋ฐ์ดํฐ๋ ๋ผ์ฐํฐ๋ค ์ฌ์ด๋ก ์๋ง์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์๊ฐ๋ค. ๋ชฉ์ ์ง์ ๋์ฐฉํ๋ฉด ํ ๊ฒน ํ ๊ฒน ํฌ์ฅ์ ๋ฒ๊ธด๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ผ๋ฉด ๋ฌผ๋ฆฌ ๊ณ์ธต์ ํฌ์ฅ์ด ๊ฐ์ฅ ๊ฒ ํฌ์ฅ๋ ์ํ์ด๋ค. ๋ฐ๋ผ์ ๊ฐ์ ์์ ๊ณ์ธต์ ํ๋กํ ์ฝ๋ก ํฌ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์๋ณผ ์ ์์ผ๋ฉฐ, ํฌ์ฅ์ ๋ฏ์ด ํ์ํ ์ ๋ณด๋ฅผ ์ป์ด๋ธ๋ค. ์ด๋ฐ ๋ฐฉ์์ ๊ณ์ธต๊ฐ์ ๋ ๋ฆฝ์ฑ์ ๋ณด์ฅํ์ฌ ์์คํ ์ ์ค๊ณํ ๋ ๋ฟ ์๋๋ผ ์ ์ง/๋ณด์ ํ ๋๋ ํจ์ฌ ์์ ์ด ์ฝ๊ณ ๋จ์ํ๊ฒ ๋ง๋ ๋ค.
0. ๋ฌผ๋ฆฌ ๊ณ์ธต์์ ๊ฐ์ฅ ๊ฒ์ ํฌ์ฅ์ ๋ฏ๊ณ , ๋งํฌ ๊ณ์ธต์ผ๋ก ๋๊ธด๋ค.
1. ๋งํฌ ๊ณ์ธต์์ ๊ฐ์ฅ ๊ฒ์ ํฌ์ฅ์ ๋ฏ๊ณ , ๋คํธ์ํฌ ๊ณ์ธต์ผ๋ก ๋๊ธด๋ค.
2. ๋คํธ์ํฌ ๊ณ์ธต์์ ๊ฐ์ฅ ๊ฒ์ ํฌ์ฅ์ ๋ฏ๊ณ , ์ ์ก ๊ณ์ธต์ผ๋ก ๋๊ธด๋ค.
3. ...
๋คํธ์ํฌ ์ดํ๋ฆฌ์ผ์ด์
- ์ด๋ฉ์ผ, ์น, ๋ฉ์ ์ , ์๊ฒฉ ๋ก๊ทธ์ธ, P2P ์ฌ์ดํธ, ์ ํ๋ธ, ๋ทํ๋ฆญ์ค, ๊ฒ์์์ง ๋ฑ
- ์ค์ ๋ก ์ฌ์ฉ์๊ฐ ์ด์ฉํ๋ ๋คํธ์ํฌ ํ๋ก๊ทธ๋จ์ ๋๋ถ๋ถ ์ดํ๋ฆฌ์ผ์ด์
๊ณ์ธต
๋คํธ์ํฌ ์ดํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ
- ๊ฐ๊ฐ์ ์ข
๋จ ์์คํ
์์ ๋คํธ์ํฌ๋ฅผ ์ด์ฉํด ์ ๋ณด๊ตํ์ ํ๋ ํ๋ก๊ทธ๋จ
- ๋คํธ์ํฌ ์ฝ์ด๋ฅผ ํ๋ก๊ทธ๋๋ฐํ ํ์๋ ์๋ค(๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ app๊ฐ๋ฐ ๊ฐ๋ฅ)
- ์ดํ๋ฆฌ์ผ์ด์
๊ตฌ์กฐ(ํด๋ผ์ด์ธํธ-์๋ฒ, P2P)
ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ(client-server architecture)
- ์๋ฒ : ํญ์ ์ผ์ ธ์๋ ํธ์คํธ, ์๊ตฌ์ ์ธ IP๋ฅผ ๊ฐ์ง๋ฉฐ ์๋ต๊ฐ๋ฅํ ๋ฐ์ดํฐ์ผํฐ
- ํด๋ผ์ด์ธํธ : ๊ฐํ์ ์ผ๋ก ์ผ์ ธ์๋ ํธ์คํธ, ์ ๋์ ์ธ IP๋ฅผ ๊ฐ์ง๋ฉฐ ์ ๋ณด๋ฅผ ์์ฒญ
- ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์ง์ ์ํตํ์ง ์์
P2P ๊ตฌ์กฐ(peer-to-peer architecture)
- ํญ์ ์ผ์ ธ์๋ ์๋ฒ๊ฐ ์์
- ํธ์คํธ๊ฐ ์ง์ ์ฐ๊ฒฐ๋์ด, ์์ฒญ-์๋ตํ๋ ๋ฐฉ์์ผ๋ก ๋์
- ์๊ฐ ํ์ฅ์ฑ(self-scalability) : ์์
๋ถํ๋ฅผ ์ฃผ์ง๋ง, ํ์ผ์ ๋ค๋ฅธ ํผ์ด์ ๋ถ๋ฐฐํด ์๋น์ค ๋ฅ๋ ฅ ์ถ๊ฐ
- ํผ์ด๋ ๊ฐํ์ ์ผ๋ก ์ฐ๊ฒฐ๋๋ฉฐ, IP์ฃผ์๋ ๋ฐ๋ ์ ์์ด ๊ด๋ฆฌ๊ฐ ๋ณต์กํจ
ํ๋ก์ธ์ค ์ปค๋ฎค๋์ผ์ดํ
(process communication)
- ํ๋ก์ธ์ค : ์ฌ๊ธฐ์ ํ๋ก์ธ์ค๋ ํธ์คํธ์์ ๋์๊ฐ๋ ํ๋ก๊ทธ๋จ์ ์๋ฏธ
- inter-process communication : ๊ฐ์ ํธ์คํธ ๋ด์์์ ํต์ ์ IPC๋ก (OS์ ๊ตฌํ๋จ)
- messages : ๋ค๋ฅธ ํธ์คํธ ๊ฐ์ ํต์ ์ ๋ฉ์ธ์ง ๊ตํ์ผ๋ก
- ํด๋ผ์ด์ธํธ(์ปค๋ฎค๋์ผ์ด์
์ ์์ํ๋ ํ๋ก์ธ์ค), ์๋ฒ(์ปจํ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ํ๋ก์ธ์ค)
- P2P ์ดํ๋ฆฌ์ผ์ด์
์ ํด๋ผ์ด์ธํธ, ์๋ฒ ํ๋ก์ธ์ค๋ฅผ ๋ชจ๋ ๊ฐ์ง๊ณ ์์ด์ผํจ
์์ผ(sockets)
- ํ๋ก์ธ์ค๋ ์์ ์ ์์ผ์ ํตํด ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๊ณ ๋ฐ์
- ์์ผ์ ํ๋ก์ธ์ค์ ๋ฌธ(door)๊ณผ ๊ฐ์
- ๋ฉ์ธ์ง๋ฅผ ๋ฐ๋ ์ชฝ์ ์ ์ก ๊ตฌ์กฐ์ ๋ฐ๋ผ ๋ณด๋ด๋ ๋ฐฉ์๋ ์ ํด์ง๋ค.
ํ๋ก์ธ์ค ์ฃผ์ ์ง์ (addressing processes)
- ๋ฉ์ธ์ง๋ฅผ ๋ฐ๊ธฐ ์ํด์๋ ํ๋ก์ธ์ค๊ฐ ๋ฉ์ธ์ง๋ฅผ ์๋ณํ ์๋จ(identifier)์ ๊ฐ์ง๊ณ ์์ด์ผํจ
- ํธ์คํธ ์ฅ์น๋ ์ ์ผํ 32bit IP ์ฃผ์๋ฅผ ๊ฐ์ง
- ํ์ง๋ง IP์ฃผ์๋ง์ผ๋ก๋ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ๋ถํ ์ ์์(๊ฐ์ ํธ์คํธ ๋ด์์ ์ฌ๋ฌ ํ๋ก์ธ์ค ๋์ ๊ฐ๋ฅ)
- ์๋ณ์(identifier)๋ IP์ ํ๋ก์ธ์ค์ ํฌํธ๋ฒํธ(port numbers)๋ฅผ ํฌํจํด์ผ ํจ
์์ฉ ํ๋ก๊ทธ๋จ ๊ณ์ธต ํ๋กํ ์ฝ(app-layer protocol defines)
- ๋ฉ์ธ์ง์ ์ข
๋ฅ : ์์ฒญ, ์๋ต
- ๋ฉ์ธ์ง์ ๋ฌธ๋ฒ : ์ด๋ค ํ๋์ ๋ฉ์ธ์ง์ธ์ง, ์ด๋ป๊ฒ ๊ธฐ์ ํ๊ณ ์๋์ง
- ๋ฉ์ธ์ง์ ์๋ฏธ : ํ๋์์์ ์ ๋ณด์ ์๋ฏธ
- ํต์ ์ฃผ๊ธฐ ๊ท์น : ์ธ์ ์ด๋ป๊ฒ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๊ณ ์๋ตํ ์ง์ ๋ํ ๊ท์น
- ์คํ ํ๋กํ ์ฝ : RFC(Request For Comments, IETF์์ ๋ฐํํ ์ธํฐ๋ท ํ์ค)์ ์ ์๋ HTTP, SMTP
- ๊ฐ์ธ ํ๋กํ ์ฝ(proprietary protocols) : Skype
์์ฉํ๋ก๊ทธ๋จ์ด ๋คํธ์ํฌ ์๋น์ค์์ ํ์ํ ๊ฒ
- ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ : 100% ์ ๋ขฐํ ์ ์๋ ๋ฐ์ดํฐ ๊ตํ(ํ์ผ ๊ตํ, ์น ํธ๋์ ์
/ audio ๋ฐ์ดํฐ๋ ์กฐ๊ธ์ ๊ด์ฐฎ)
- ํ์ด๋ฐ : ํจ์จ์ ์ธ ๋์์ ์ํด ์ด๋ค ์ฑ๋ค์, ๋ฎ์ ์๊ฐ ์ง์ฐ์ ์๊ตฌ(์ธํฐ๋ท ์ ํ, ์จ๋ผ์ธ ๊ฒ์)
- ์ฒ๋ฆฌ์จ : ํจ์จ์ ์ธ ๋์์ ์ํด ๋ณด์ฅ๋ ์ ์ก์๋๊ฐ ํ์(๋น๋์ค ๋ฑ / elastic ํ app๋ค์ ์๋๊ฑธ๋ก ์ฌ์ฉ)
- ๋ณด์์ฑ : ์ํธํ, ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ฑ
TCP(Transmission Control Protocol)
- ์ ๋ขฐํ ์ ์๋ ์ ์ก(reliable transport)
- ํ๋ฆ ์ ์ด(flow control) : ์์ ํ๋๋ฅผ ๋์ด ์์ค(loss)๊ฐ ์ผ์ด๋์ง ์๋๋ก ์์ ์กฐ์
- ํผ์ก ์ ์ด(congestion control) : ํ๋ฆ ์ ์ด๊ฐ ํธ์คํธ ๊ฐ์ ํธ๋ํฝ์ ์กฐ์ ํ๋ค๋ฉด, ํผ์ก ์ ์ด๋ ๋คํธ์ํฌ ์ฐจ์
- ์ฐ๊ฒฐ ๊ธฐ๋ฐ(connection-oriented) : ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ์ฌ์ ์ค์ ์ด ํ์
- ๋ฏธ์ง์ํญ๋ชฉ : ํ์ด๋ฐ, ์ต์ ์ค๋ฃจํ ๋ณด์ฅ, ๋ณด์
UDP(User Datagram Protocol)
- ์ ๋ขฐํ ์ ์๋ ๋ฐ์ดํฐ ๊ตํ(unreliable data transfer)
- ๋ฏธ์ง์ํญ๋ชฉ : ์ ๋ขฐ์ฑ, ํ๋ฆ/ํผ์ก ์ ์ด, ํ์ด๋ฐ, ์ค๋ฃจํ ๋ณด์ฅ, ๋ณด์, ์ฌ์ ์ค์
- ๊ทธ๋ผ UDP ๋์ฒด ์ ์ฐ๋๊ฑฐ์? : ์ค๋ฒํค๋(CPU, ๋ฉ๋ชจ๋ฆฌ ์์)๊ฐ ์ ์ด์ ๋จ๋ฐฉํฅ ๋น ๋ฅธ ์ ์ก ๊ฐ๋ฅ
TCP ๋ณด์ํ(securing TCP)
- TCP์ UDP๋ ์ํธํ๊ฐ ์ ๋์ฑ๋ก ์ธํฐ๋ท์ ํก๋จํด ์์ ์ธก์ ์ ์ก
- SSL : TCP์ ์ํธํ๋ ์ฐ๊ฒฐ์ ์ ๊ณต, ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ, ํธ์คํธ ์ฆ๋ช
- SSL์ TCP์ ์ด์ผ๊ธฐํ ๋ ์ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฏ๋ก app layer์ ์กด์ฌ(transprot layer X)
- SSL ์์ผ API๋ ์ํธํํด์ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋
1. Web๊ณผ HTTP
์ง๊ธ ๋ณด๊ณ ์๋ ์ด ์น(์ค๋ช ๋งํฌ)ํ์ด์ง๋ ์ธํฐ๋ท์ ๊ฑฐ์ณ ๋ณด์ฌ์ง๋ ๊ฒ์ด๋ค. ๋จผ์ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํจ๋ค. ์น ๋ธ๋ผ์ฐ์ ๋ ์น ๋ฌธ์๋ฅผ ๋ณด์ฌ์ฃผ๊ฑฐ๋ ์์ฒญํ๋ ์ญํ ์ ํ๋ ๋๊ตฌ(์์ฉ ํ๋ก๊ทธ๋จ ๊ณ์ธต)์ด๋ค. ์ฌ์ฉ์๊ฐ ์ฃผ์์ฐฝ์ ์ฃผ์๋ฅผ ์ ๋ ฅํ๋ฉด, ์น ๋ธ๋ผ์ฐ์ ๊ฐ ํด๋น ์ฃผ์๋ฅผ ๊ฐ์ง ์๋ฒ์ ์ ์ฅ๋ ์น ๋ฌธ์๋ฅผ ์์ฒญํ๋ค. ์ด ๊ณผ์ ์ TCP ์ฐ๊ฒฐ์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฃจ์ด์ง๋ฉฐ, ์์ฒญ์ด ์ง์ค๋๋ ๊ฒ์ ๋ง๊ธฐ ์ํด ์ ์ง๊ธฐ์ง์ธ ์บ์๋ฅผ ๋๊ธฐ๋ ํ๋ค.
์น(web)
- HTMLํ์ผ์ด ๊ธฐ๋ณธ์ด ๋์ด ๋ง์ ๊ฐ์ฒด๋ค์ URL๋ก '์ฐธ์กฐ'ํจ
- ๊ฐ์ฒด(HTMLํ์ผ, JPEG๋ก, JAVA, ์ค๋์คํ์ผ ๋ฑ)
HTTP(HyperText Transfer Protocol)
- ์น์ ์์ฉ ํ๋ก๊ทธ๋จ ๊ณ์ธต(application layer)์ ํ๋กํ ์ฝ
- ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ ์ฌ์ฉ
- ํด๋ผ์ด์ธํธ : HTTP ํ๋กํ ์ฝ์ ์ด์ฉํ์ฌ, ์๋ฒ๋ก ๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ , ๋ฐ๊ณ , ๋ณด์ฌ์ค
- ์๋ฒ : HTTP ํ๋กํ ์ฝ์ ์ด์ฉํ์ฌ, ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ง๊ฒ ๊ฐ์ฒด๋ค์ ๋ณด๋ด์ค
- TCP ์ฌ์ฉ
1. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์์ TCP ์ฐ๊ฒฐ์ ์์(์์ผ์ ์์ฑ)ํ๋ค.
2. ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ TCP ์ฐ๊ฒฐ์ ์น์ธํ๋ค.
3. HTTP ๋ฉ์ธ์ง(์์ฉํ๋ก๊ทธ๋จ ๊ณ์ธต์ ํ๋กํ ์ฝ ๋ฉ์ธ์ง)๊ฐ HTTP์๋ฒ-HTTPํด๋ผ์ด์ธํธ ๊ฐ์ ๊ตํ๋๋ค.
4. TCP ์ฐ๊ฒฐ์ด ์ข
๋ฃ๋๋ค.
- HTTP๋ stateless : ์๋ฒ๋ ์ํ ์ ๋ณด(๊ณผ๊ฑฐ)๋ฅผ ์ด์ฉํ์ง ์๊ณ ์๋ก ๋์ฐฉํ(ํ์ฌ) ์ ๋ณด๋ง์ ์ด์ฉ
- ๋ฐ๋ฉด์ state๊ฐ ์๋ ํ๋กํ ์ฝ๋ค์ ๋ณต์ก(์ด์ ๊ธฐ๋ก ์ ์ง, ์ฐ๊ฒฐ์ด ํฐ์ก์ ๋์ ์ํ ์ ๋ณด๋ฑ)
HTTP ์ฐ๊ฒฐ
- ๋น์๊ตฌ์ HTTP : TCP์ฐ๊ฒฐ ์๋ก ํ ๊ฐ์ ๊ฐ์ฒด๊ฐ ์ ์ก๋๊ณ TCP์ฐ๊ฒฐ์ ์ข
๋ฃ. ์ฌ๋ฌ๊ฐ์ ๊ฐ์ฒด→์ฌ๋ฌ๊ฐ์ ์ฐ๊ฒฐ ํ์
- ์๊ตฌ์ HTTP : ์ฌ๋ฌ๊ฐ์ ๊ฐ์ฒด๊ฐ ํ๋์ TCP ์ฐ๊ฒฐ ์๋ก ์ ์ก๋จ
๋น์๊ตฌ์ HTTP(non-persistent HTTP)
0. HTTP ํด๋ผ์ด์ธํธ๊ฐ TCP ์ฐ๊ฒฐ์ ์์ํ๋ค. (hhlab.tistory.com, ํฌํธ 80)
1. HTTP ์๋ฒ๊ฐ ์ฐ๊ฒฐ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค๊ฐ 80๋ฒ ํฌํธ ์ฐ๊ฒฐ์ ์น์ธํ๊ณ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ ค์ค๋ค.
2. HTTP ํด๋ผ์ด์ธํธ๊ฐ TCP ์์ผ์ผ๋ก HTTP์์ฒญ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ธ๋ค. (hhlab.tistory.com์ ์๋ post56์ ๊ฐ๊ณ ์ถ์ด)
3. HTTP ์๋ฒ๋ ์์ฒญ์ ๋ฐ์ ๊ฐ์ฒด์ ์๋ต ๋ฉ์ธ์ง๋ฅผ ์์ผ์ผ๋ก ๋ณด๋ธ๋ค.
4. HTTP ์๋ฒ๊ฐ TCP ์ฐ๊ฒฐ์ ์ข
๋ฃํ๋ค.
5. HTTP ํด๋ผ์ด์ธํธ๋ ๊ฐ์ฒด(HTML ํ์ผ ๋ฑ)๋ฅผ ๋ฐ๊ณ ์ฐธ์กฐ๋ ๊ฐ์ฒด(์ด๋ฏธ์ง, ๋์์ ๋ฑ)๋ค์ ํ์ฑํ๋ค.
6. ์ฐธ์กฐ๋ ๊ฐ์ฒด๋ค์ ์ ๊ณผ์ ์ ํ ๋ฒ ์ฉ ๋ค์ ๊ฑฐ์น๋ค(ํ ๋ฒ์ ํ๋๋ง ์ค๋๊น)
- RTT : ์์ ํจํท์ด ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ฅผ ์ฐ๊ณ ๋์์ค๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ
- HTTP ์๋ต์๊ฐ( TCP ์ฐ๊ฒฐ์์(1 RTT) + ์์ฒญํ ๊ฐ์ฒด๋ฅผ ๋ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ(1 RTT + ํ์ผ ์ ์ก์๊ฐ))
- ํ ๊ฐ์ฒด๋น 2 RTT ์ด์ ๊ฑธ๋ฆฌ์ง๋ง, ๊ฐ์ฒด๊ฐ ์ถ๊ฐ๋ก ์ฌ๋ฌ๊ฐ ์์ผํ๋ฏ๋ก(์ฐธ์กฐ๋ ํ์ผ๋ค) ์ฌ๋ฌ๊ฐ ๋ณ๋ ฌ๋ก ์ฐ๊ฒฐํด์ผํจ
- ๋ณ๋ ฌ๋ก ์ฐ๊ฒฐ์ ์ฌ๋ฌ๊ฐ ํ๋ฉด, ๊ทธ๋งํผ ์ค๋ฒํค๋ ํ์
์๊ตฌ์ HTTP(persistent HTTP)
- ์๋ฒ๊ฐ ์๋ต์ ๋ณด๋ด๊ณ ๋ ์ฐ๊ฒฐ์ ์ด์ด๋์
- ๋ค์ ๋ฉ์ธ์ง๋ ๊ทธ ์ฐ๊ฒฐ์ ํตํด ์ ๋ฌ(TCP ์ฐ๊ฒฐํ๋ 1 RTT ์ ์ฝ๊ฐ๋ฅ)
- ํด๋ผ์ด์ธํธ๋ ์ฐธ์กฐ๋ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ก ์์ฒญํจ
- ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ๋ฐ๋๋ฐ 1 RTT ์ ๋ ์์ ๊ฐ๋ฅ(ํ์ดํ๋ผ์ด๋, ๋ณ๋ ฌ์ฐ๊ฒฐ ํ์ฉ)
HTTP ๋ฉ์ธ์ง
- ์ข
๋ฅ : ์์ฒญ, ์๋ต
- ํ์ : ASCII(์ธ๊ฐ์ด ์ฝ์ ์ ์๋ ํ์)
HTTP ์์ฒญ ๋ฉ์ธ์ง(HTTP request message)
1. request line (GET, POST, HEAD : ๋ฉ์๋(method)) (URL : ๊ฐ์ฒด์ฃผ์) (HTTP ๋ฒ์ ) /r(์ค๋ฐ๊ฟ) /n (์ฝ๋ ๋ผ์ธ ๋)
2. header line (Host, User-Agent, Accept-Language, Connection ๋ฑ ์์ฑ ํค๋) (์์ฑ๊ฐ-ํค๋๊ฐ)
3. entity body (์ ๋ณด ๋ณธ์ฒด)
- ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉ์์ ์
๋ ฅ์ ์
๋ก๋ ํ๋ ๋ฐฉ์ : POST ํจ์ / GET ํจ์(URL์ ์
๋ก๋ํ ?๊ฒฝ๋ก๋ฅผ ์ ๋๋ค)
- HTTP 1.0 ๋ฉ์๋(Method) GET, POST, HEAD(์ค์ ๋ฌธ์๊ฐ ์๋ ๋ฌธ์์ ๋ณด๋ฅผ ์์ฒญ)
- HTTP 1.1 ๋ฉ์๋(Method) GET, POST, HEAD, PUT, DELETE(URL์ ์๋ ํ์ผ์ ์ญ์ )
HTTP ์๋ต ๋ฉ์ธ์ง(HTTP response message)
1. status line (HTTP ๋ฒ์ )
(์ํ: 1xx ์ฒ๋ฆฌ์ค, 2xx ์ฑ๊ณต, 3xx ์์น๋ฐ๋์์(redirect), 4xx ํด๋ผ์ด์ธํธ ์๋ฌ, 5xx ์๋ฒ์๋ฌ)
2. header lines
3. entity body(๋ฐ์ดํฐ, HTML ๋ณธ์ฒด ๋ฑ)
์ฟ ํค(cookies)
- ๋ค์ 4๊ฐ์ง ์ปดํฌ๋ํธ
- HTTP ์๋ต ๋ฉ์ธ์ง์ ์ฟ ํค ํค๋๋ผ์ธ
- HTTP ์์ฒญ ๋ฉ์ธ์ง์ ์ฟ ํค ํค๋๋ผ์ธ
- ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๊ด๋ฆฌํ๋, ํธ์คํธ์ ์ ์ฅ๋ ์ฟ ํคํ์ผ
- ์น ์ฌ์ดํธ์ ๋ฐฑ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
1. ํด๋ผ์ด์ธํธ : ๋ ์ด ํ์ด์ง ์ ๊ทผํ๊ณ ์ถ์ด
2. ์๋ฒ : ์ผ ์ ๊น๋ง ๋ ๋ด๊ฐ ์ค ์ฟ ํค ๊ฐ์ง๊ณ ์์๋? (ํด๋ผ์ด์ธํธ ์ฃผ๊ณ , ์๋ฒ ์์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๋ชฉ๋ก ์์ฑ)
3. ํด๋ผ์ด์ธํธ : ใ
ใ
4. ํด๋ผ์ด์ธํธ : ์ผ ๋ ๋๋ฐ ๋ ๋ ๋ญ ํ์ํด. ์ง๋๋ฒ์ ์ค ์ฟ ํค๋ฒํธ๋ 1678์ด์ผ
5. ์๋ฒ : ์ ๋ ๊ฑ๊ตฌ๋ ๋ด๊ฐ ๊ธฐ์ตํ์ง! ๋๋ ๊ทธ ๋ ์ด๊ฑฐ ๊ฐ๊ณ ์ถ๋ค ํ์ผ๋๊น, ์๋ ๊ฒ ํด์ ์ค๋ณผ๊ป
- ์ฟ ํค์ ํ์ฉ(๊ถํ ํ์ธ, ์ฌ์ฉ์ ๋ง์ถค ๊ด๊ณ , ์ฅ๋ฐ๊ตฌ๋, ์ ์ ์ธ์
์ํ ๋ฑ)
- ์ฟ ํค๋ ๊ฒฐ๊ตญ ์ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ http ๋ฉ์ธ์ง
์บ์(web caches-proxy server)
: ์๋ ์๋ฒ๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์๋ต, ์ปดํจํฐ์ ์บ์๋ฉ๋ชจ๋ฆฌ / ์ ์ง ๊ธฐ์ง
- ํธ์คํธ๊ฐ ์์ฒญ์ ๋ณด๋ผ ๋, ์บ์์ ์กด์ฌํ๋ฉด ์บ์๊ฐ ํด๋ผ์ด์ธํธ์ ์ ์ก, ์์ผ๋ฉด ๋ณธ ์๋ฒ์์ ๋ฐ์์ด(ํด๋ผ์ด์ธํธ&์๋ฒ)
- ์บ์๋ ํต์์ ์ผ๋ก ISP๊ฐ ์ค์น
- ์๋ต ์๊ฐ์ ์ค์ด๊ณ , ๋ณธ ์๋ฒ์ ํธ๋ํฝ์ ์ค์ด๊ณ ๋ถ์ฐ ์ํด. ์๋์ ์ผ๋ก ์์ธํ ์ปจํ
์ธ ์ ๊ณต์๊ฐ ํจ์จ์ ์ธ ์ ๊ณต๊ฐ๋ฅ
์บ์ ์์ https://blog.naver.com/you_maybe/222120496954
- ์บ์๊ฐ ๋ด์ฉ์ด ์ต์ ์ด๋ผ๋ฉด ์์ฒญ์ ๋ณด๋ด๋ ์๋ฒ์์ ๊ฐ์ฒด๋ฅผ ์ฃผ์ง ์์(์ ์ก ์ง์ฐ, ๋งํฌ ํ์ฉ๋ฅ ๋ฎ์ถค)
- ํด๋ผ์ด์ธํธ๋ HTTP ์์ฒญ์ ์บ์๋ ๋ณต์ฌ๋ณธ์ ๋ ์ง๋ฅผ ๋ฃ์ด๋ณด๋(์๋ฒ๋ if-modified-since : <data> ํ๋๋ฅผ ํ์ธ)
2. ์ ์ ๋ฉ์ผ(electronic mail)
์ ์ ๋ฉ์ผ(Electronic mail)
- 3๊ฐ์ ์ฃผ์ ์ปดํฌ๋ํธ
- ๋ฉ์ผ ๋ฆฌ๋(user agentใ
กmail reader) : ๋ฉ์ธ์ง๋ฅผ ๊ตฌ์ฑ, ํธ์ง, ๊ฒ์ ๋ฑ. ๋ฐ์/๋ณด๋ธ ๋ฉ์ธ์ง๋ฅผ ์๋ฒ์ ์ ์ฅ
- ๋ฉ์ผ ์๋ฒ(mail servers) : ๋ฉ์ผ๋ฐ์ค(์ฌ์ฉ์์๊ฒ ์จ ๋ฉ์ธ์ง๋ฅผ ์ ์ฅ), ๋ฉ์ธ์งํ(๋ณด๋ด๋ ๋ฉ์ธ์ง๋ค ์ ์ฅ)
- SMTP : ๋ฉ์ผ ์๋ฒ ๊ฐ์ ํ๋กํ ์ฝ
SMTP(Simple Mail Transfer Protocol)
- ์ ๋ขฐ์ฑ์ ์ํด TCP ์ฌ์ฉ(port 25)
- ์ง์ ์ ์ก(direct transfer) : ๋ณด๋ด๋ ๋ฉ์ผ์๋ฒ(์๋ฒ)์์ ๋ฐ๋ ๋ฉ์ผ์๋ฒ(ํด๋ผ์ด์ธํธ)๋ก
- ๋ณด๋ด๋ 3๋จ๊ณ
1. ์
์(์๋
^^)
2. ๋ฉ์ธ์ง ๊ตํ
3. ์ข
๋ฃ
- ๋ช
๋ น/์๋ต ์ํธ์์ฉ(HTTP์ ๋น์ท), ๋ช
๋ น์ ASCII๋ก ์๋ต์ status code, phrase๋ก. ๋ฉ์ธ์ง๋ 7-bit ASCI
๋ฉ์ผ ๋ณด๋ด๋ ๊ณผ์
1. A๊ฐ B์๊ฒ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๋ ค๊ณ ๋ฉ์ผ๋ฆฌ๋๋ฅผ ์ฌ์ฉ
2. A์ ์์ฉํ๋ก๊ทธ๋จ์ด A์ ๋ฉ์ผ์๋ฒ๋ก ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ >>๋ฉ์ผ์๋ฒ ๋ฉ์ธ์งํ์ ์ ์ฅ๋จ
3. A์ ๋ฉ์ผ์๋ฒ๊ฐ B์ ๋ฉ์ผ์๋ฒ์ TCP์ฐ๊ฒฐ์ ์์ํจ
4. A์ ๋ฉ์ผ์๋ฒ๊ฐ A์ ๋ฉ์ผ์ TCP ์ฐ๊ฒฐ์๋ก ๋ณด๋
5. B์ ๋ฉ์ผ์๋ฒ๊ฐ A์ ๋ฉ์ธ์ง๋ฅผ ๋ฉ์ผ๋ฐ์ค์ ๋ณด๊ด
6. B๊ฐ ๊ทธ์ ๋ฉ์ผ๋ฆฌ๋๋ก ๋ฉ์ธ์ง๋ฅผ ํ์ธ
SMTP์ ํน์ง
- ์๊ตฌ ์ฐ๊ฒฐ(persistent connection)์ ์ฌ์ฉ
- 7-bit ASCII ๋ฉ์ธ์ง๋ฅผ ์๊ตฌ
- CRLF.CRLF๋ก ๋ฉ์ธ์ง์ ๋์ ๊ตฌ๋ณ
- HTTP๋ ๋ฐ์์ด, SMTP๋ ๋ณด๋, ๋๋ค ASCII ๋ช
๋ น/์๋ต, ์ํ์ฝ๋๋ฅผ ๋ฐ๋๋ค.
- HTTP๋ ๊ฐ๊ฐ์ ๊ฐ์ฒด๊ฐ ๊ฐ๊ฐ์ ์๋ต๋ฉ์ธ์ง ์์ ์๋ค๋ฉด, SMTP๋ ์ฌ๋ฌ๊ฐ์ ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ๋ถ๋ถ์ ๋๋์ด ์ ์ก
๋ฉ์ผ ๋ฉ์ธ์ง ํ์(SMTP, RFC822)
- 1. header (To:, From:, Subject:)
- 2. blank line
- 3. body("message"ใ
กASCII)
๋ฉ์ผ์๋ฒ๋ก ๋ถํฐ ๋ฉ์ผ์ ๋ฐ์์ค๋ ํ๋กํ ์ฝ
- POP : Post Office Protocol [RFC 1939] : ๊ถํ, ๋ค์ด๋ก๋
- POP3 ํ๋กํ ์ฝ
1. autorization phase : client commands(userใ
ก์ด๋ฆ, passใ
ก์ํธ), server responses(+OK, -ERR)
2. transaction phase : (list : ๋ฉ์ธ์ง ๋ฒํธ ๋์ด, retr : ๋ฉ์ธ์ง๋ฒํธ๋ก ์ ํ, del : ์ญ์ , quit)
- "download and delete, download and keep" ๋ชจ๋ ์กด์ฌ
- POP3๋ stateless(์ํ ์ ๋ณด ๋ฐ๋ก ์ ์ฅX, ํ์ฌ ์ ๋ณด๋ง ์ด์ฉ)
- IMAP : Internet Mail Access Protocol [RFC 1730] : ๋ ๋ง์ ๊ธฐ๋ฅ, ์๋ฒ์ ์ ์ฅ๋ ๋ฉ์ธ์ง ์กฐ์
- ๋ชจ๋ ๋ฉ์ธ์ง๋ฅผ ์๋ฒ ํ ๊ณณ์ ์ ์ฅ
- ํด๋์ ์ ๋ฆฌํ ์ ์๋ ๊ธฐ๋ฅ
- stateful, ๋ฉ์ธ์ง ID๋ฅผ ๋ฐ์ผ๋ฉด ๋์ํ๋ ํด๋์ ์ ์ฅ ๊ฐ๋ฅ
- HTTP : Gmail, Hotmail ๋ฑ
3. DNS (Domain Name System)
์ฌ๋์ ์ฃผ๋ฏผ๋ฒํธ, ์ด๋ฆ, ์ฌ๊ถ ๋ฑ์ผ๋ก ๋ค์ํ๊ฒ ์๋ณ์ด ๊ฐ๋ฅํ๋ค. ์ธํฐ๋ท ์์์๋ ํธ์คํธ๋ ๋ผ์ฐํฐ ๋ฑ์ ๊ฐ์์ ๊ณ ์ ํ IP ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ์ด์ ์ ๊ทผํ ๋ IP ์ฃผ์๋ณด๋ค๋ 'hhlab.tistory.com'๊ณผ ๊ฐ์ ํธ์คํธ ๋ค์์ ์ฌ์ฉํ์ฌ ์ ๊ทผํ๋ค. ๊ทธ๋ ๋ค๋ฉด ํธ์คํธ ๋ค์์ ๋ด๊ฐ ์ฐพ๊ณ ์ ํ๋ ํธ์คํธ์ IP์ฃผ์์ ๋งค์นญ์ํค๋ ์์ ์ด ํ์ํ๋ค. ์ด๊ฒ์ด DNS ์๋ฒ๊ฐ ํ๋ ์ผ์ด๋ค.
DNS๋?
- DNS๋ ํธ์คํธ ๋ค์์ IP์ฃผ์๋ก ๋ง๋ค์ด์ค
- ๋ถ๋ฐฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค(๋ง์ ์ด๋ฆ ์๋ฒ๋ค์ ๊ณ์ธต๊ตฌ์กฐ์์ ์คํ)
- ์์ฉํ๋ก๊ทธ๋จ ๊ณ์ธต ํ๋กํ ์ฝ(ใ
ก๋คํธ์ํฌ ์ฝ์ด์ ์๋ฌด ์๊ด์์) port 53
DNS ์๋น์ค
- ํธ์คํธ ๋ค์์ IP์ฃผ์๋ก ๋ฐ๊ฟ์ค๋ค.
- ํธ์คํธ ์จ๋ฆฌ์ด์ฑ(host aliasing) : IP ๋ฟ์๋๋ผ ์ ์ ํธ์คํธ ๋ค์(ex. fb.com)์ ์ป๊ธฐ ์ํด์๋ ์ฌ์ฉ
- ๋ฉ์ผ ์๋ฒ ์จ๋ฆฌ์ด์ฑ : ๋ฉ์ผ์ฃผ์์ ์ ์ ํธ์คํธ ๋ค์์ ์ป๊ธฐ ์ํด ์ฌ์ฉ
- ๋ถํ ๋ถ์ฐ(load distribution) : ์ค๋ณต ์๋ฒ ์ฌ์ด์ ๋ถํ๋ฅผ ๋ถ์ฐ(ํ๋์ ์ด๋ฆ์ ์ฌ๋ฌ IP๊ฐ ๋ฐ์)
DNS ๊ตฌ์กฐ
- ๋ถ๋ฐฐ๋ ๊ณ์ธต๊ตฌ์กฐ(com DNS ์๋ฒ, org DNS ์๋ฒ, edu DNS ์๋ฒ ๋ฑ)
1. 'www.hhlab.co.kr IP์ฃผ์๊ฐ ๊ถ๊ธํด์' ํด๋ผ์ด์ธํธ๊ฐ ๋ฃจํธ ์๋ฒ์ ์์ฒญํ๋ค
2. .kr DNS์๋ฒ๋ก ๊ฐ์
3. .kr ํ์์ ์๋ .co DNS ์๋ฒ๋ก ๊ฐ์
4. .co์์ hhlab.co.kr์ ์ฐพ๋๋ค
5. www๋ ์น์ด๋ผ๋ ์๋ธ ๋๋ฉ์ธ์ด๋ค.
TLD(Top Level Domain), ์ฑ
์ DNS ์๋ฒ(authoritative servers)
- TLD : ์ผ๋ฐ ์ต์์ ๋๋ฉ์ธ(com, net, org ๋ฑ)๊ณผ ๊ตญ๊ฐ์ฝ๋ ์ต์์ ๋๋ฉ์ธ(kr, jp, uk ๋ฑ)
- ์ฑ
์ DNS ์๋ฒ : ์กฐ์ง์ด ๊ทธ๋ค์ DNS ์๋ฒ๋ฅผ ๊ฐ์ง๋ฉด์, ๊ทธ ์์ ํธ์คํธ๋ค์ IP๋ฅผ ์ฐ๊ฒฐํด์ค ์ ์๋ค.
๋ก์ปฌ DNS ๋ค์ ์๋ฒ
- ๊ณ์ธต๊ตฌ์กฐ์ ์๋ฒฝํ ๋ค์ด๊ฐ์ง ์๋๋ค
- ๊ฐ ISP๋ ํ๋์ฉ ๊ฐ์ง๊ณ ์๋ค.
- ํธ์คํธ๊ฐ DNS ์์ฒญ์ ํ๋ฉด, ๋ก์ปฌ DNS ์๋ฒ์ ๋จผ์ ๊ฐ์ ์์ผ๋ฉด ๋ฐ๋ก ์ ๊ณต ๋ฐ๊ณ , ์์ผ๋ฉด ๋ฃจํธ๋ก ๊ฐ์ผ๋๋ค
- ๋ฐ๋ณต์ ์ง๋ฌธ(iterated query) ๋ก์ปฌ DNS์ ์์ผ๋ฉด ๋ก์ปฌ DNS๊ฐ ๋ฃจํธ, ์ต์์, ์ฑ
์์ ์ฐจ๋ก์ฐจ๋ก ๋ฌผ์ด๋ด
- ์ฌ๊ท์ ์ง๋ฌธ(recursive query) ๋ก์ปฌ DNS์ ์์ผ๋ฉด, ๋ฃจํธ๊ฐ ๋ฐ์ ๋ฌป๊ณ ์ฌ๊ท์ ์ผ๋ก ๋์์จ ๋ต๋ณ์ ๋ก์ปฌ์ ๋๋ ค์ค๋ค.
DNS ์บ์ฑ, ์
๋ฐ์ดํธ(caching, updating records)
- ๋ค์ ์๋ฒ๊ฐ ์ด๋ฆ๊ณผ IP ๋์์ ํ ๋ฒ ๋ฐฐ์ฐ๋ฉด, ๊ทธ๊ฒ์ ์บ์์ ์ ์ฅ(TLD๋ ๋ณดํต ๋ก์ปฌ์ ์บ์๋์ด ์์ด์ ๋ฃจํธ ๊ฐ์ผ↓)
- ์บ์๋ ๋ชฉ๋ก์ ์ต์ ์ด ์๋ ์๋ ์์. TTL(Time To Live)๊ฐ ๋๋์ผ ์ฌ๋ผ์ง๊ณ ์ต์ ์
๋ฐ์ดํธ
- ์์ , ๊ณต์ง ๊ณผ์ ๋ IETF ํ์ค ์กด์ฌ
DNS ๋ ์ฝ๋(records)
- DNS์ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌํํ DNS ์๋ฒ๋ค์ ํธ์คํธ ๋ค์์ IP์ฃผ์๋ก ๋งคํํ๊ธฐ ์ํ ์์ ๋ ์ฝ๋๋ฅผ ์ ์ฅ
- RRใ
กResource Records -> (Name, Value, Type, TTL)
- type=A : (ํธ์คํธ ์ด๋ฆ, IP์ฃผ์)
- type=NS : (ํธ์คํธ ๋๋ฉ์ธ, ๋๋ฉ์ธ ๋ด๋ถ ํธ์คํธ์ IP) ใ
ก ์ฑ
์ DNS์๋ฒ์ ํธ์คํธ ๋ค์์ ์ ์ ์์
- type=CNAME : (๋ณ๋ช
, ์ ์๋ช
์นญ)
- type=MX : (์ด๋ฆ, ๋ฉ์ผ์๋ฒ)
DNS ํ๋กํ ์ฝ, ๋ฉ์ธ์ง
- ์ง๋ฌธ๊ณผ ์๋ต ๋ฉ์ธ์ง๊ฐ ๊ฐ์ ํ์
- ์๋ณ์(16bit, #์ง๋ฌธ์ ์, #์ฑ
์ RR์ ์)
- ํ๋๊ทธ(#์๋ต RR์ ์, #์ถ๊ฐ RR์ ์)
- ์ง๋ฌธ(๊ฐ๋ณ ์ง๋ฌธ ์)
- ๋ต๋ณ(๊ฐ๋ณ RR ์)
- ์ฑ
์(๊ฐ๋ณ RR ์)
- ์ถ๊ฐ ์ ๋ณด(๊ฐ๋ณ RR ์)
DNS ๋ฑ๋ก
- DNS registrar์ ๋ฑ๋กํ๊ณ ์ถ์ ์ด๋ฆ, ์ฑ
์ ์ด๋ฆ ์๋ฒ์ IP ๋ฑ ์ ๋ณด ์ ๊ณต
- registrar๊ฐ TLD ์๋ฒ์ RR ์ฉ๋์ ๋ง๊ฒ ํ์
๊ฒฐ์ ํด ๋ฑ๋ก
DNS ๊ณต๊ฒฉ
- DDoS ๋ฃจํธ๋ณด๋จ ์์ธ๋ก TLD๊ฐ ๋ ์น๋ช
์
- man-in-middle : ์ง๋ฌธ์ ๊ฐ๋ก์ฑ๋ค
- DNS poisoning : ์บ์ํด๋ ๋๋ ๊ฒ์ DNS์๋ฒ์ ์์ฒญ๋ ๋ถํ๋ฅผ ์ค
- ๊ฑฐ์ง ์ฃผ์๋ฅผ ์ฌ์ฉํด ์์ฒญํจ
4. P2P ํ๋ก๊ทธ๋จ (Peer-to-Perr Application)
P2P
- ์์์ ํธ์คํธ(ํผ์ด, Peer)๊ฐ ์ง์ ํต์
- ํผ์ด๋ ๊ฐํ์ ์ผ๋ก ์ฐ๊ฒฐ๋๊ณ , IP๊ฐ ์ ๋์ ์
- ์๋ฒ-ํด๋ผ์ด์ธํธ ๊ตฌ์กฐ๋ ์ง์ ํต์ ํ์ง๋ ์์ผ๋ฉฐ, ์๋ฒ๊ฐ ํญ์ ์ผ์ ธ์๊ณ ๊ณ ์ IP๋ฅผ ๊ฐ์ง
ํ๋์ ์๋ฒ๋ก N๋ช
์ Peer์๊ฒ ํฌ๊ธฐ F์ ํ์ผ์ ๋ฟ๋ฆฌ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ?
- ์๋ฒ๊ฐ ํฌ๊ธฐ F์ ํ์ผ์ N๊ฐ ์ ์กํ๋ ์๊ฐ = N * F / ์๋ฒ ์
๋ก๋ ๋ฅ๋ ฅ
- ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ด์ค ํ์ผ์ ๋ฐ๋ ์๊ฐ = F / ๋ถ๋น ํด๋ผ์ด์ธํธ ๋ค์ด๋ก๋ ์๋
- ๋ ์ค, ๋ ์ค๋ ๊ฑธ๋ฆฌ๋ ์๊ฐ : max(NF/u.s, F/d.min)
- ํ์ง๋ง ์๋ฒ ์ ์ก์๊ฐ์ด ํผ์ด์ ์ซ์์ ๋น๋กํด์ ๋์ด๋จ
P2P ๋ฐฉ์์ผ๋ก N๋ช
์ Peer์๊ฒ ํฌ๊ธฐ F์ ํ์ผ์ ๋ฟ๋ฆฌ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ?
- ์๋ฒ๊ฐ ํฌ๊ธฐ F์ ํ์ผ์ (์ต์) 1๊ฐ ์ ์กํ๋ ์๊ฐ = F / ์๋ฒ ์
๋ก๋ ๋ฅ๋ ฅ
- ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ด์ค ํ์ผ์ ๋ฐ๋ ์๊ฐ = F / ๋ถ๋น ํด๋ผ์ด์ธํธ ๋ค์ด๋ก๋ ์๋
- ์ด์ฐ๋๋ Fํฌ๊ธฐ ํ์ผ์ด N๋ฒ ์ ์ก๋์ผ ํจ = N * F / ์๋ฒ ์
๋ก๋ ๋ฅ๋ ฅ + ๋ชจ๋ ํด๋ผ์ด์ธํธ ์
๋ก๋ ๋ฅ๋ ฅ
- ์ด ์ญ์ ํผ์ด์ ์ซ์์ ๋น๋กํด ๋์ด๋์ง๋ง, ํด๋ผ์ด์ธํธ ์
๋ก๋ ๋ฅ๋ ฅ์ญ์ ๊ฐ์ด ๋์ด๋จ
ํ ๋ ํธ(BitTorrent)
- ํ ๋ ํธ : 256Kb ๋จ์๋ก ๋๋ ์ง ํ์ผ ์กฐ๊ฐ๋ค
- ํธ๋์ปค : ํ ๋ ํธ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ ์๋ ํผ์ด๋ค
1. ํธ๋์ปค๋ก ๋ฑ๋ก ํ, ํผ์ด(๋ค๋ฅธ ํธ๋์ปค)๋ค์ ๋ฆฌ์คํธ๋ฅผ ๋ฐ๋๋ค.
2. ๋ฆฌ์คํธ ์ค ๋ช ๋ช
์ ํผ์ด์ ์ฐ๊ฒฐํ๋ค.
3. ๋ค์ด๋ก๋ ํ๋ฉด์, ํผ์ด๋ ๋ค๋ฅธ ํผ์ด๋ค์๊ฒ ํ์ผ ์กฐ๊ฐ์ ์ ์กํ๋ค.
4. ๋ค์ด๋ก๋๊ฐ ๋๋๋ฉด ํผ์ด๋ ์ ์ก์ ๋๋ผ์ง, ๋คํธ์ํฌ์ ๋จ์์์์ง ์ ํํ ์ ์๋ค.
ํ ๋ ํธ์์์ ์์ฒญ
- ๋ค๋ฅธ ํผ์ด๋ค์ ๋ค๋ฅธ ํ์ผ ์กฐ๊ฐ๋ค์ ๊ฐ์ง๊ณ ์์
- ์ฃผ๊ธฐ์ ์ผ๋ก ๋ค๋ฅธ ํผ์ด๋ค์๊ฒ ๊ฐ์๊ฐ ๊ฐ์ง ํ์ผ ์กฐ๊ฐ์ ๋ฆฌ์คํธ๋ค์ ๋ฌผ์ด๋ด
- ์์ ์ด ์๋ ํ์ผ ์กฐ๊ฐ ์ค ํฌ๊ทํ ๊ฒ์ ์ฐ์ ์ผ๋ก ์์ฒญ
ํ ๋ ํธ์์์ ์ ์ก(tit-for-tat)
- ์์ ์๊ฒ ๊ฐ์ฅ ๋น ๋ฅธ ์๋๋ก ํ์ผ ์กฐ๊ฐ์ ๋ณด๋ด๊ณ ์๋ 4๋ช
์ ์ฌ์ฉ์์๊ฒ ์์ ์ ํ์ผ ์กฐ๊ฐ์ ๋ณด๋
- 10์ด ๋ง๋ค ์์ ์ด ๋ณด๋ผ 4๋ช
์ ๋ฆฌ์คํธ๋ฅผ ๊ฐฑ์ ํจ
- 30์ด ๋ง๋ค ๋๋ค์ผ๋ก ๋ค๋ฅธ ํผ์ด๋ฅผ ์ ํํด ์์ ์ ํ์ผ ์กฐ๊ฐ์ ๋ณด๋
- ๋ง์ฝ, ๋ด๊ฐ ๋๋ค์ผ๋ก A๋ฅผ ๊ณจ๋ผ ๋ด๊ฐ A์ ๋ฆฌ์คํธ ์ค TOP4 ์์ ๋ค์๋ค๋ฉด, A๋ ๋ด๊ฒ ํ์ผ ์กฐ๊ฐ ์ ์ก
- ๊ทธ๋ ๋ค๋ฉด A๊ฐ ๋ด TOP4 ์์ ๋ค ๊ฐ๋ฅ์ฑ๋ ๆ
- ๋ฐ๋ณตํ ์๋ก ์์ ์๊ฒ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ณด๋ผ ์ ์๋ ํํธ๋๋ฅผ ์ฐพ๊ฒ๋จ
5. ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ (Contents Delivery Network)
๋น๋์ค ์คํธ๋ฆฌ๋ฐ
- ๋น๋์ค ํธ๋ํฝ์ ์ธํฐ๋ท ๋์ญํญ์ ์ฃผ์ํ๊ฒ ์ฐจ์งํ๋ ๊ฒ ์ค ํ๋(๋ทํ๋ฆญ์ค๋ ๊ฐ์ ์ฉ ISP์ 37% ์ฐจ์ง)
- ๋ฌธ์ : 1B users, ๊ฐ์ ๋ค๋ฅธ ๋์ญํญ์ ์ด๋ป๊ฒ ํด๊ฒฐํด์ผํ ๊น?
- ํด๊ฒฐ : ๋ถ์ฐ, ์์ฉํ๋ก๊ทธ๋จ ๊ณ์ธต์ ๊ตฌ์กฐ
์์, ์ด๋ฏธ์ง
- ์์์ ์ผ์ ํ ์ฃผ๊ธฐ๋ก ๋ณด์ฌ์ง๋ ์ฐ์์ ์ด๋ฏธ์ง
- ์ด๋ฏธ์ง๋ ๊ฐ ํฝ์
์ด ๋นํธ๋ก ํํ๋๋ ๋ฐฐ์ด
- ์์์ ์ฐ์์ ์ด๋ฏธ์ง ์ค ๊ฒน์น๋ ๊ฒ์ ์์ถ(temporal) : (๊ฒน์น๋ ๊ฒ์ ์์, ๊ฒน์น๋ ๊ฐฏ์)๋ก ์ ์ก
- ์ด๋ฏธ์ง๋ ๊ฒน์น๋ ํฝ์
๊ฐ๋ค์ ์์ถ(spatial) : (ํฝ์
๊ฐ, ์ฃผ๋ณ ํฝ์
๊ฐ๋ค๊ณผ์ ์ฐจ์ด)๋ก ์ ์ก
- CBR(constant bit rate) : ์์ ์ธ์ฝ๋ฉ ์๋๋ฅผ ๊ณ ์
- VBR(variable bit rate) : ์์์ temporal, spatial ์์ถ ์ ๋์ ๋ฐ๋ผ ์ธ์ฝ๋ฉ ์๋ ๊ฐ๋ณ, ex) MPEG
DASH(Dynamic Adaptive Streaming over HTTP) ์๋ฒ
- ๋น๋์ค ํ์ผ์ ์ฌ๋ฌ๊ฐ์ ์กฐ๊ฐ์ผ๋ก ์ชผ๊ฐฌ
- ๊ฐ ์กฐ๊ฐ์ผ๋ก ์ ์ฅ๋์ด ์๊ณ , ๊ฐ๊ธฐ ๋ค๋ฅธ ์๋๋ก ์ธ์ฝ๋ฉ ๋์ด์์
- ๊ฐ ์กฐ๊ฐ์ URL ์ฃผ์๋ฅผ ๋ด๊ณ ์๋ ๋ฉํ๋ฐ์ดํฐ ํ์ผ(manifest file) ์กด์ฌ
DASH ํด๋ผ์ด์ธํธ
- ์ฃผ๊ธฐ์ ์ผ๋ก ์๋ฒ-ํด๋ผ์ด์ธํธ ๋์ญํญ์ ์ธก์
- ๋ฐ์์ผํ๋ ํ์ผ๋ชฉ๋ก์ ํฐ๊ทธ๋ฆผ์ ๊ทธ๋ฆฐ ํ, ํ ๋ฒ์ ํ ํ์ผ ์กฐ๊ฐ์ฉ ์์ฒญํจ
- ํ์ฌ ๋์ญํญ์์ ์ ์งํ ์ ์๋ ์ต๋ ์ธ์ฝ๋ฉ์๋๋ฅผ ์ ํ
- ์ธ์ฝ๋ฉ ์๋๋ ์ธ์ ๋ ์ค์ ๊ฐ๋ฅ(๋จ, ๋์ญํญ์ด ๋ท๋ฐ์นจ์ด ๋์ด์ผํจ)
- ๋๋ํ ํด๋ผ์ด์ธํธ๊ฐ ํ์
- '์ธ์ ' ํ์ผ ์กฐ๊ฐ์ ์์ฒญํ ์ง(๋๋ฌด ์ ๊ฒ ํน์ ๋๋ฌด ๋ง์ด ๋ฐ์ง ์๊ฒ)
- '์ด๋ค' ์ธ์ฝ๋ฉ ์๋๋ก ์์ฒญํ ์ง(๋์ญํญ์ด ํฌ๋ฉด ๋ ์ข์ ํ์ง์ ์์)
- '์ด๋'๋ก ์์ฒญํ ์ง(์ต๋ ๋์ญํญ์ ๋ฐ์ ์ ์๋ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฒ๋ก, URL
CDN์ ๋ฌธ์ ์
- CDN : ์ ์ง๊ธฐ์ง์ ์ปจํ
์ธ ์ ๋ณต์ฌ๋ณธ์ ์ ์ฅํด๋์ ๊ฒ.
- ์๋ฐฑ๋ง ๊ฐ์ ๋์์์ด ์ ์ฅ๋ ์๋ฒ์์ ํน์ ๋์์์ ์ฐพ์์,
- ์ด๋ป๊ฒ ๋์์ ์๋ฐฑ ์์ฒ๋ช
์ ์ ์ ์๊ฒ ๋์์ ๋ฐ์ดํฐ๋ฅผ ์ค๊ฒ์ธ๊ฐ?
1. ํ๋์ ํฐ '๋ฉ๊ฐ-์๋ฒ' : ์๋จ ใ
ใฑ
2-1. CDN์ ์ค์น(enter deep) : CDN์ ํด๋ผ์ด์ธํธ์ ๊ฐ๊น์ด ๊ณณ์ ์ฌ๋ฌ๊ฐ ์ค์น
2-2. CDN์ ์ค์น(bring home) : ๋ณธ ๋คํธ์ํฌ ๊ทผ์ฒ์ ํฐ CDN์ ๋ช๊ฐ๋ง ์ค์น
OTT(Over The Top)
- '์
ํฑ(Top)๋ฐ์ค๋ฅผ ๋์ด!'
- ๋ค์ํ ํ๋ซํผ์ผ๋ก ์ธํฐ๋ท์ ํตํด ์ธ์ ์ด๋์๋ ๋ฏธ๋์ด ์ปจํ
์ธ ๋ฅผ ์๋นํ ์ ์๋ ์๋น์ค
- ํด๊ฒฐ๊ณผ์ 1 : ์ด๋ค CDN์ ์ ๊ทผํด์ ์ปจํ
์ธ ๋ฅผ ๋ฐ์์ผํ๋๊ฐ?
- ํด๊ฒฐ๊ณผ์ 2 : ๋คํธ์ํฌ๊ฐ ํผ์กํ ๋, ์์ฒญ์๋ ์ด๋ป๊ฒ ํด์ผํ๋๊ฐ?
- ํด๊ฒฐ๊ณผ์ 3 : ์ด๋ค CDN ๋
ธ๋์ ์ด๋ค ์ฝํ
์ธ ๋ฅผ ์ ์ฅํด์ผํ๋๊ฐ?
๋ทํ๋ฆญ์ค ๋์์ ์์ฒญ ๊ณผ์
1. ๊ทผ๋จ์ด๊ฐ ๋ทํ๋ฆญ์ค ๊ณ์ ์ ๋ฑ๋กํ๋ค.
2. ๊ทผ๋จ์ด๊ฐ ๋ทํ๋ฆญ์ค ๋น๋์ค๋ฅผ ํจ๋ค.
3. ์๋ฒ์์ ํด๋น ๋น๋์ค์ ๋งค๋ํ์คํธ ํ์ผ(์ด ๋น๋์ค์ ํ์ผ ์กฐ๊ฐ๋ค์ URL ์ฃผ์๊ฐ ๋ด๊ธด ํ์ผ)์ ๋ฐ๋๋ค.
4. ํด๋น ์ฃผ์๋ก ์ ๊ทผํด ๋์์ ํ์ผ ์กฐ๊ฐ๋ค์ ๋ฐ์์ค๋ฉฐ DASH ์คํธ๋ฆฌ๋ฐ ํ๋ค.
'๐ป > CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฒ ๋๋] MIPS ๋ช ๋ น์ฒด๊ณ (0) | 2020.10.22 |
---|---|
[์๋ฒ ๋๋] ์๋ฒ ๋๋ ํ๋ก๊ทธ๋๋ฐ? (0) | 2020.10.21 |
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ (0) | 2020.10.20 |
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (0) | 2020.10.20 |
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ณธ๊ฐ๋ (0) | 2020.10.20 |