๐Ÿ’ป/CS

[๋„คํŠธ์›Œํฌ] ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ณ„์ธต (Application Layer)

ruhz 2020. 10. 20. 18:54

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 ์ŠคํŠธ๋ฆฌ๋ฐ ํ•œ๋‹ค.