728x90
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

2.1 ๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์›๋ฆฌ

Creating a network app

  • software ๊ฐœ๋ฐœ์ž ๊ด€์ ์—์„œ๋Š” ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, application ๊ตฌ์กฐ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์„ค๊ณ„ํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ์ข…๋‹จ ์‹œ์Šคํ…œ์—์„œ ์–ด๋–ป๊ฒŒ ์กฐ์ง๋˜์–ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ์•Œ๋ ค์ค€๋‹ค.
  • ์ด๋Ÿฌํ•œ application ๊ตฌ์กฐ๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.
    • Client - server ๊ตฌ์กฐ
    • P2P ๊ตฌ์กฐ

Client-server paradigm

  • Server
    • ํ•ญ์ƒ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„๊ฐ€ ์กด์žฌํ•˜๊ณ , Client๋ผ๋Š” ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ๋“ค๋กœ๋ถ€ํ„ฐ ์„œ๋น„์Šค ์š”์ฒญ์„ ๋ฐ›๋Š”๋‹ค.
    • ์„œ๋ฒ„๋Š” ์ž˜ ์•Œ๋ ค์ง„ ๊ณ ์ • IP ์ฃผ์†Œ๋ฅผ ๊ฐ–๋Š”๋‹ค. (permanent IP address - not change)
    • ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” ๋ชจ๋“  ์š”์ฒญ์— ๋” ์‘๋‹ตํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•  ๋•Œ
      • ๋งŽ์€ ์ˆ˜์˜ ํ˜ธ์ŠคํŠธ๋ฅผ ๊ฐ–์ถ˜ data center๊ฐ€ ๊ฐ•๋ ฅํ•œ ๊ฐ€์ƒ์˜ ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์—ญํ• ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
      • ๋ณดํ†ต 10๋งŒ๊ฐœ ์ •๋„์˜ ์„œ๋ฒ„๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ๋‹ค.
  • Clients
    • ํ•„์š”ํ•  ๋•Œ connect ํ•œ๋‹ค.
    • may be intermittently connected (๊ฐ„์ ‘์ ์œผ๋กœ, ๊ฐ€๋”์‹ ์—ฐ๊ฒฐ๋œ๋‹ค)
    • dynamic IP address๋ฅผ ๊ฐ–๋Š”๋‹ค.
    • Client๋ผ๋ฆฌ๋Š” ์ง์ ‘ ํ†ต์‹ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

P2P ๊ตฌ์กฐ

  • Client์™€ server ๋‘˜ ๋‹ค์˜ responsibility๋ฅผ ๊ฐ–๋Š”๋‹ค.
  • ํ•ญ์ƒ ์ผœ์ ธ์žˆ๋Š” ์„œ๋ฒ„์— ์˜์กดํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์ž„์˜์˜(arbitrary) end system๋“ค์€ ์ง์ ‘ ์†Œํ†ตํ•œ๋‹ค.
    • ์ฆ‰, peer๋ผ๋Š” ๊ฐ„ํ—์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ํ˜ธ์ŠคํŠธ ์Œ์ด ์„œ๋กœ ์ง์ ‘ ํ†ต์‹ ํ•˜๊ฒŒ ํ•œ๋‹ค.
  • peer๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์•Œ๊ณ  ์žˆ๋Š” Client(laptop ๊ฐ™์€ ๊ฒƒ๋“ค)
  • **Self scalability(์ž๊ฐ€ํ™•์žฅ์„ฑ)**๋ฅผ ๊ฐ–๋Š”๋‹ค.
    • ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ๋„คํŠธ์›Œํฌ์— ๋ถ€๋‹ด์ด ์ปค์ง€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์˜คํžˆ๋ ค ์„œ๋กœ ๋„์™€์„œ ๋„คํŠธ์›Œํฌ์˜ ํšจ์œจ์„ฑ์ด ๋†’์•„์ง„๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ผ ๊ณต์œ  application์—์„œ๋Š” ๊ฐ peer๋“ค์ด ํŒŒ์ผ์„ ์š”๊ตฌํ•˜์—ฌ ์ž‘์—… ๋ถ€ํ•˜๊ฐ€ ์ƒ๊ธฐ์ง€๋งŒ, ๊ฐ Peer๋“ค์€ ํŒŒ์ผ์„ ๋‹ค๋ฅธ Peer๋“ค์—๊ฒŒ ๋ถ„๋ฐฐํ•˜์—ฌ ์‹œ์Šคํ…œ์— ์„œ๋น„์Šค ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ˜๋‹ค.
  • data center ๋“ฑ์ด ํ•„์š” ์—†์œผ๋ฏ€๋กœ ๋น„์šฉ์ด ํšจ์œจ์ ์ด๋‹ค.

 

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป 2.1.2 ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ 

์‹ค์ œ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ์€ ํ”„๋กœ๊ทธ๋žจ์ด ์•„๋‹ˆ๋ผ, ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์ธ process์ด๋‹ค.

  • ๊ฐ™์€ host ๋ฒ”์œ„ ๋‚ด์—์„œ, ๋‘๊ฐœ์˜ process๋“ค์€ IPC๋ฅผ ์‚ฌ์šฉํ•ด communication ํ•œ๋‹ค.
    • Inter-process-communication : ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•
  • ๋‹ค๋ฅธ host ๋ฒ”์œ„ ๋‚ด์—์„œ๋Š” exchanging messages๋ฅผ ํ†ตํ•ด ์†Œํ†ตํ•œ๋‹ค.
  • 2๊ฐœ์˜ ์ข…๋‹จ ์‹œ์Šคํ…œ์—์„œ ํ”„๋กœ์„ธ์Šค๋Š” ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ๋ฉ”์‹œ์ง€ ๊ตํ™˜์œผ๋กœ ์„œ๋กœ ํ†ต์‹ ํ•œ๋‹ค.
  • P2P ๊ตฌ์กฐ์—์„œ์ฒ˜๋Ÿผ Client๋„ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋  ์ˆ˜ ์žˆ๊ณ , ์„œ๋ฒ„๋„ client process๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์†ก์‹  ํ”„๋กœ์„ธ์Šค : ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ณด๋ƒ„
  • ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค : ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์—ญ์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ„์œผ๋กœ์จ ์‘๋‹ต

Client, Server process

  • client process : process that initiates communication
    • ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ์ชฝ์˜ ํ”„๋กœ์„ธ์Šค
  • server process : process that waits to be contacted
    • ์š”์ฒญ์„ ๋ฐ›๋Š” ์ชฝ์˜ ํ”„๋กœ์„ธ์Šค

Socket

process๋Š” socket์„ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ  ๋ฐ›๋Š”๋‹ค. (๋ฌธ ๊ฐ™์€ ๊ฐœ๋…)

  • ํ˜ธ์ŠคํŠธ์˜ application ๊ณ„์ธต๊ณผ transport ๊ณ„์ธต๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋Š” ์†Œ์ผ“์˜ application ๊ณ„์ธต์— ๋Œ€ํ•œ ๋ชจ๋“  ํ†ต์ œ๊ถŒ์„ ๊ฐ–์ง€๋งŒ, ์†Œ์ผ“์˜ transport ๊ณ„์ธต์— ๋Œ€ํ•œ ํ†ต์ œ๊ถŒ์€ ๊ฑฐ์˜ ๊ฐ–์ง€ ๋ชปํ•œ๋‹ค.
    • transport protocol์„ ์„ ํƒ
    • ์ตœ๋Œ€ ๋ฒ„ํผ์™€ ์ตœ๋Œ€ ์„ธ๊ทธ๋จผํŠธ ํฌ๊ธฐ ๊ฐ™์€ ์•ฝ๊ฐ„์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ •
  • sending process shoves message out door - ์ „์†ก ํ”„๋กœ์„ธ์Šค๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ–์œผ๋กœ ๋ฐ€์–ด๋‚ธ๋‹ค.
  • Application๊ณผ network ์‚ฌ์ด์˜ API๋ผ๊ณ ๋„ ํ•œ๋‹ค.

Addressing processes

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ํŒจํ‚ท์œผ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฃผ์†Œ๋ฅผ ๊ฐ–๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ๊ฐ€์ง€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

Identifier๋Š” IP์ฃผ์†Œ์™€ port number๋ฅผ ๊ฐ–๋Š”๋‹ค.

  1. ํ˜ธ์ŠคํŠธ์˜ ์ฃผ์†Œ ์ฆ‰, IP ์ฃผ์†Œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
    1. IP ์ฃผ์†Œ๊ฐ€ identifier๊ฐ€ ๋œ๋‹ค.
  2. ํ˜ธ์ŠคํŠธ ๋‚ด์˜ ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ช…์‹œํ•˜๋Š” ์‹๋ณ„์ž. ์ฆ‰ port ๋ฒˆํ˜ธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
    1. ์ด port ๋ฒˆํ˜ธ๋กœ ๋‚ด process๋ฅผ ํŠน์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
    2. ๊ฐ™์€ IP ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ application์ด๋‚˜ process๊ฐ€ ๋™์‹œ์— ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— port ๋ฒˆํ˜ธ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.
  • IP๋ฅผ ํ†ตํ•ด ์ ์ ˆํ•œ computer๋ฅผ ์ฐพ๋Š”๋‹ค.

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป 2.1.3 An Application-layer protocol defines

application ๊ฐœ๋ฐœ์ž๋Š” ์†Œ์ผ“์˜ application ๊ณ„์ธต์— ๋Œ€ํ•œ ๋ชจ๋“  ํ†ต์ œ๊ถŒ์„ ๊ฐ–์ง€๋งŒ, ์†Œ์ผ“์˜ transport ๊ณ„์ธต์— ๋Œ€ํ•œ ํ†ต์ œ๊ถŒ์€ ๊ฑฐ์˜ ๊ฐ–์ง€ ๋ชปํ•œ๋‹ค. ์ฆ‰, ์—ฌ๊ธฐ์—์„œ๋Š” ๊ทธ ์ค‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์–ด๋–ค transport service๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด๋‹ค.

  1. Data integrity
    1. ์†์‹ค๋˜์ง€ ์•Š๋Š” data๋ฅผ ์ „์†ก
  2. throughput
    1. ๋‹ค๋ฅธ session๋“ค์ด network ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๋Œ€์—ญํญ์„ ๊ณต์œ ํ•˜๊ณ , ์ด ์„ธ์…˜๋“ค์ด ์ƒ๊ฒผ๋‹ค ์—†์–ด์กŒ๋‹ค ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ์ฒ˜๋ฆฌ์œจ์€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€ํ•œ๋‹ค. ์ด๋Š” ์–ด๋Š ๋ช…์‹œ๋œ ์†๋„์—์„œ ๋ณด์žฅ๋œ ๊ฐ€์šฉ ์ฒ˜๋ฆฌ์œจ์„ ์ œ๊ณตํ•œ๋‹ค.
    2. ์ด๋Ÿฌํ•œ ์ฒ˜๋ฆฌ์œจ ์š”๊ตฌ์‚ฌํ•ญ ์—ฌ๋ถ€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.
      1. effective app : ์ฒ˜๋ฆฌ์œจ ์š”๊ตฌ์‚ฌํ•ญ์ด ์žˆ๋Š” ๋ฏผ๊ฐ application
      2. elastic app : ํƒ„๋ ฅ์  application. ์ฒ˜๋ฆฌ์œจ ์š”๊ตฌ์‚ฌํ•ญ์ด ์—†๋‹ค.
  3. timing
    1. ์˜ˆ๋ฅผ ๋“ค์–ด, ์†ก์‹ ๊ธฐ๊ฐ€ socket์œผ๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๋ชจ๋“  bit๊ฐ€ ์ˆ˜์‹ ์ž์˜ socket์— 100ms ๋‚ด์— ๋„์ฐฉํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฃผ๋กœ ์‹ค์‹œ๊ฐ„ application์—์„œ ์‚ฌ์šฉํ•œ๋‹ค.
  4. security
    1. data๋ฅผ ์•”ํ˜ธํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.

Internet transport protocols services

์ธํ„ฐ๋„ท ์ „์†ก ํ”„๋กœํ† ์ฝœ์ด ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค

  1. TCP ์„œ๋น„์Šค
  2. UDP ์„œ๋น„์Šค

TCP service

  • reliable transport
  • ์„œ๋กœ ์ „์†ก ์ œ์–ด ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๊ฒŒ ํ•œ๋‹ค.

UDP service

  • unreliable data transefer
  • hand shaking ๊ณผ์ •์ด ์—†๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ์ „๋‹ฌ๋˜๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

TCP vs. UDP

  • TCP๊ฐ€ UDP๋ณด๋‹ค ๋” ์œ ์šฉํ•˜์ง€๋งŒ, UDP๋Š” ๋” ๋น ๋ฅด๋‹ค.
  • ๋‘˜ ๋‹ค ์ฒ˜๋ฆฌ์œจ ํ˜น์€ ์‹œ๊ฐ„ ๋ณด์žฅ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.
    • ๊ทธ๋ž˜์„œ ์‹œ๊ฐ„ ๋ฏผ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ™์€ ๊ฒฝ์šฐ, ์ด๋Ÿฌํ•œ ์ฒ˜๋ฆฌ์œจ ๋ฐ ์‹œ๊ฐ„ ์ง€์—ฐ์— ์ž˜ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค.

 

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป 2.1.5 Application layer: Protocol

๋‹ค๋ฅธ ์ข…๋‹จ ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์„œ๋กœ ๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ๋‹ค.

  • ๊ตํ™˜ ๋ฉ”์‹œ์ง€์˜ ํƒ€์ž…
  • ์—ฌ๋Ÿฌ ๋ฉ”์‹œ์ง€ ํƒ€์ž…์˜ ๋ฌธ๋ฒ•(syntax)
  • ํ•„๋“œ์˜ ์˜๋ฏธ, ์ฆ‰ ํ•„๋“œ์— ์žˆ๋Š” ์ •๋ณด์˜ ์˜๋ฏธ(semantics)
  • ์–ธ์ œ, ์–ด๋–ป๊ฒŒ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๊ณ  ๋ฉ”์‹œ์ง€์— ์‘๋‹ต ํ•˜๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ทœ์น™
728x90
๋ฐ˜์‘ํ˜•

+ Recent posts