Post

[CS] Computer Networking - Application layer(2): DNS, P2P

[CS] Computer Networking - Application layer(2): DNS, P2P

๐Ÿ“š์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ์ „๊ณต ์ˆ˜์—… ์ •๋ฆฌ

DNS(Domain Name System)


DNS: ์ธํ„ฐ๋„ท์—์„œ ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด domain name(์˜ˆ: google.com)์„ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” IP address(์˜ˆ: 172.217.21.24)๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ DNS๋Š” UDP packet์œผ๋กœ ์ „์†ก๋œ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด IP address์™€ domain name ์‚ฌ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ๋งคํ•‘ํ•˜๋Š”๊ฐ€?

๊ทธ๊ฒŒ DNS๊ฐ€ ํ•˜๋Š” ์—ญํ• ์ด๋‹ค

โœ… DNS์˜ ์ฃผ์š” ์„œ๋น„์Šค
  1. hostname-to-IP-address translation: ๋„๋ฉ”์ธ ์ด๋ฆ„์„ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜
  2. host aliasing: ํ•˜๋‚˜์˜ ์„œ๋ฒ„์— ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ง€์ • ๊ฐ€๋Šฅ
  3. mail server aliasing
  4. load distribution: ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„์— ์—ฌ๋Ÿฌ IP ์ฃผ์†Œ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐ
โŒ DNS๋ฅผ centralize ํ•˜์ง€ ์•Š๋Š” ์ด์œ 
  • Single Point of Failure: ์ค‘์•™ ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜๋ฉด ์ „์ฒด ์ธํ„ฐ๋„ท์ด ๋งˆ๋น„
  • traffic volume: ์—„์ฒญ๋‚œ ์–‘์˜ ์ฟผ๋ฆฌ๋ฅผ ํ•˜๋‚˜์˜ ์„œ๋ฒ„๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์–ด๋ ค์›€
  • distant centralized database: ์ง€๋ฆฌ์  ๊ฑฐ๋ฆฌ๋กœ ์ธํ•œ ์ง€์—ฐ ์‹œ๊ฐ„์ด ๋ฐœ์ƒ
  • maintenance

๊ทธ๋ž˜์„œ DNS๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๊ณ„์ธต์  ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค.

DNS hierarchical structure


alt text

1. Root DNS Servers

๐Ÿ“š ICANN์ด ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” ์ ˆ๋Œ€ ์กด์—„ ์„œ๋ฒ„๋กœ, TLD DNS ์„œ๋ฒ„ IP๋“ค์„ ์ €์žฅํ•ด๋‘๊ณ  ์•ˆ๋‚ดํ•˜๋Š” ์—ญํ• 

  • ์ „ ์„ธ๊ณ„์— 13๊ฐœ์˜ ๋…ผ๋ฆฌ์  ๋ฃจํŠธ ์„œ๋ฒ„๊ฐ€ ์žˆ๋‹ค.

๋ชจ๋“  DNS ์„œ๋ฒ„๋“ค์€ ์ด Root DNS Server์˜ ์ฃผ์†Œ๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ–๊ณ  ์žˆ๋‹ค ๊ทธ๋ž˜์„œ ๋ชจ๋ฅด๋Š” Domain name์ด ์˜จ๋‹ค๋ฉด ๊ฐ€์žฅ ๋จผ์ € Root DNS์—๊ฒŒ ๋ฌผ์–ด๋ณด๊ฒŒ ๋˜๋Š” ๊ฒƒ ํ•˜์ง€๋งŒ Root DNS Server์˜ ๋ชฉ๋ก์—๋„ ํ•ด๋‹น Domain Name์˜ IP ์ •๋ณด๊ฐ€ ์—†๋‹ค๋ฉด ๋‹ค์Œ DNS ์„œ๋ฒ„๋กœ ๋ฆฌํ„ด์„ ํ•ด์ค€๋‹ค. ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ TLD(์ตœ์ƒ์œ„ ๋„๋ฉ”์ธ) servers

  • Root DNS Serverย : โ€œ๋‚˜ํ•œํ… ํ•ด๋‹น ๋„๋ฉ”์ธ ์ฃผ์†Œ๊ฐ€ ์—†๋‹ค. ๋Œ€์‹  google.com์˜ ์ฃผ์†Œ์ค‘ .com์˜ ์ฃผ์†Œ๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋‹ˆ, com DNS์ฃผ์†Œ์—๊ฒŒ ๋ฌผ์–ด๋ด๋ผ.โ€
2. TLD servers(Top-Level Domaion)

๐Ÿ“š .com, .org, .net๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜ ์ตœ์ƒ์œ„ ๋„๋ฉ”์ธ๊ณผ .kr, .jp, .uk์™€ ๊ฐ™์€ ๊ตญ๊ฐ€ ์ฝ”๋“œ ์ตœ์ƒ์œ„ ๋„๋ฉ”์ธ์„ ๊ด€๋ฆฌ

  • ๋‹ค์–‘ํ•œ ๊ธฐ๊ด€์—์„œ ๊ด€๋ฆฌ:
    • Network Solutions: .com, .net TLD ๊ด€๋ฆฌ
    • Educause: .edu TLD ๊ด€๋ฆฌ
3. Authoritative DNS Servers

๐Ÿ“š ๊ฐ ์กฐ์ง์˜ DNS ์„œ๋ฒ„๋กœ, ํ•ด๋‹น ์กฐ์ง์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„์— ๋Œ€ํ•œ IP ์ฃผ์†Œ ๋งคํ•‘์„ ์ œ๊ณต

๋งŒ์ผ google.com์„ ์š”์ฒญํ–ˆ๋‹ค๋ฉด, TLD ์„œ๋ฒ„์—์„œ .com์„ ํŒŒ์•…ํ•˜๊ณ  ๊ทธ ์•ž์— ๋‹ฌ๋ฆฐ ๋ฌธ์ž์—ด์„ ๋ณด๊ณ  ๊ตฌ๊ธ€ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ

4. Local DNS server
  • ์ปดํ“จํ„ฐ์˜ LAN์„ ์„ ํ†ตํ•ด ์ธํ„ฐ๋„ท์ด ์—ฐ๊ฒฐ๋˜๋ฉด, ๊ฐ€์ž…ํ–ˆ๋˜ ๊ฐ ํ†ต์‹ ์‚ฌ์˜ ๊ธฐ์ง€๊ตญ DNS ์„œ๋ฒ„(local DNS server)๊ฐ€ ๋“ฑ๋ก๋˜๊ฒŒ ๋œ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ DNS ์ฟผ๋ฆฌ๋ฅผ ์š”์ฒญํ•˜๋ฉด, ์ด๋Š” ๋จผ์ € local DNS ์„œ๋ฒ„๋กœ ์ „์†ก๋œ๋‹ค.
  • local DNS server์˜ ๋‘๊ฐ€์ง€ ์‘๋‹ต:
    1. local cache์—์„œ ์ตœ๊ทผ ์ด๋ฆ„-์ฃผ์†Œ ๋ณ€ํ™˜ ์Œ์„ ํ™•์ธ(์บ์‹œ๊ฐ€ ์˜ค๋ž˜๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Œ)
    2. DNS ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•˜์—ฌ ํ•ด๊ฒฐ

DNS name resolution


1. iterated query(๋ฐ˜๋ณต ์ฟผ๋ฆฌ)

alt text

  1. engineering.nyu.edu์— ์žˆ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ gaia.cs.umass.edu์˜ IP ์ฃผ์†Œ๋ฅผ ์•Œ๊ณ  ์‹ถ์–ดํ•จ
  2. ์‚ฌ์šฉ์ž๋Š” local DNS ์„œ๋ฒ„(dns.nyu.edu)์— ์ฟผ๋ฆฌ๋ฅผ ์ „์†ก
  3. local DNS ์„œ๋ฒ„๋Š” root DNS ์„œ๋ฒ„์— ์ฟผ๋ฆฌ๋ฅผ ์ „์†ก
  4. root DNS ์„œ๋ฒ„๋Š” .edu ๋„๋ฉ”์ธ์„ ๋‹ด๋‹นํ•˜๋Š” TLD(Top-Level Domain) DNS ์„œ๋ฒ„ ์ •๋ณด๋ฅผ return
  5. local DNS ์„œ๋ฒ„๋Š” TLD DNS ์„œ๋ฒ„์— ์ฟผ๋ฆฌ๋ฅผ ์ „์†ก
  6. TLD ์„œ๋ฒ„๋Š” umass.edu ๋„๋ฉ”์ธ์„ ๋‹ด๋‹นํ•˜๋Š” authoritative DNS ์„œ๋ฒ„(dns.cs.umass.edu) ์ •๋ณด๋ฅผ return
  7. local DNS ์„œ๋ฒ„๋Š” authoritative DNS ์„œ๋ฒ„์— ์ฟผ๋ฆฌ๋ฅผ ์ „์†ก
  8. ๊ถŒํ•œ ์žˆ๋Š” DNS ์„œ๋ฒ„๋Š” gaia.cs.umass.edu์˜ IP ์ฃผ์†Œ๋ฅผ return
  9. local DNS ์„œ๋ฒ„๋Š” ์ด IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ

2. recursive query(์žฌ๊ท€ ์ฟผ๋ฆฌ)

alt text

  1. ์‚ฌ์šฉ์ž๋Š” local DNS ์„œ๋ฒ„์— gaia.cs.umass.edu์˜ IP ์ฃผ์†Œ๋ฅผ ์š”์ฒญ
  2. local DNS ์„œ๋ฒ„๋Š” root DNS ์„œ๋ฒ„์— ์žฌ๊ท€์  ์ฟผ๋ฆฌ๋ฅผ ์ „์†ก
  3. root DNS ์„œ๋ฒ„๋Š” TLD DNS ์„œ๋ฒ„์— ์ฟผ๋ฆฌ๋ฅผ ์ „์†ก
  4. TLD DNS ์„œ๋ฒ„๋Š” authoritative DNS ์„œ๋ฒ„์— ์ฟผ๋ฆฌ๋ฅผ ์ „์†ก
  5. authoritative DNS ์„œ๋ฒ„๋Š” TLD DNS ์„œ๋ฒ„์— return
  6. TLD DNS ์„œ๋ฒ„๋Š” root DNS ์„œ๋ฒ„์— return
  7. root DNS ์„œ๋ฒ„๋Š” local DNS ์„œ๋ฒ„์— return
  8. local DNS ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ return

DNS Caching


์œ„ ๊ณผ์ •์„ ํ†ตํ•ด์„œ ์šฐ๋ฆฌ๋Š” gaia.cs.umass.edu์˜ IP์ฃผ์†Œ๋ฅผ ๋ฐ›์•„์™”๋‹ค.

๋ช‡ ๋ถ„ ํ›„ ๋‹ค์‹œ gaia.cs.umass.edu์— ๋ฐฉ๋ฌธํ•˜๋ ค๊ณ  ํ–ˆ์„ ๋•Œ, ๋˜๋‹ค์‹œ ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์„œ IP ์ฃผ์†Œ๋ฅผ ๋ฐ›์•„์™€์•ผํ•˜๋‚˜?

๊ทธ๋Ÿฌ๋ฉด ๋„ˆ๋ฌด ๋น„ ํšจ์œจ์ ์ด๋‹ค. ๋•Œ๋ฌธ์—, PC์—๋Š” DNS Cache๋ผ๋Š” Cache๋ฅผ ํ™œ์šฉํ•ด Cache์•ˆ์— ์ž์ฃผ์“ฐ๋Š” Domain Name ์ฃผ์†Œ๋ฅผ ์ €์žฅsํ•ด ๋†“๋Š”๋‹ค.

  • ์บ์‹œ ํ•ญ๋ชฉ์€ ์ผ์ • ์‹œ๊ฐ„(TTL, Time To Live)์ด ์ง€๋‚˜๋ฉด ๋งŒ๋ฃŒ๋œ๋‹ค.

DNS Records


๐Ÿ“š DNS๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ, ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ resource record(RR)๋ฅผ ์ €์žฅ

  • RR format
    1
    
    RR format: (name, value, type, ttl)
    

โœ… DNS record type:

  1. A record (Address)
    • name: hostname
    • value: IP address
    • ex: (example.com, 192.168.1.1, A, 3600)
  2. NS record (Name Server)
    • name: domain
    • value: ๋„๋ฉ”์ธ์˜ authoritative name ์„œ๋ฒ„์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„
    • ex: (example.com, ns1.example.com, NS, 86400)
  3. CNAME record (Canonical Name)
    • name: ๋ณ„์นญ ์ด๋ฆ„
    • value: ์ •์‹(canonical) ์ด๋ฆ„
    • ex: (www.example.com, example.com, CNAME, 3600)
  4. MX record (Mail Exchange)
    • name: domain
    • value: ํ•ด๋‹น ๋„๋ฉ”์ธ๊ณผ ๊ด€๋ จ๋œ ๋ฉ”์ผ ์„œ๋ฒ„ ์ด๋ฆ„
    • ex: (example.com, mail.example.com, MX, 3600)

alt text

DNS protocol messages


DNS ์ฟผ๋ฆฌ์™€ ์‘๋‹ต ๋ฉ”์‹œ์ง€๋Š” ๋™์ผํ•œ ํ˜•์‹์„ ๊ฐ€์ง„๋‹ค.

alt text

โœ…DNS ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ:

  1. message header
    • identification: ์ฟผ๋ฆฌ๋ฅผ ์‹๋ณ„ํ•˜๋Š” 16๋น„ํŠธ ๋ฒˆํ˜ธ, ์‘๋‹ต ์‹œ ๊ฐ™์€ ๋ฒˆํ˜ธ ์‚ฌ์šฉ
    • flag: ์ฟผ๋ฆฌ/์‘๋‹ต, ์žฌ๊ท€ ํฌ๋ง, ์žฌ๊ท€ ๊ฐ€๋Šฅ, ์‘๋‹ต์ด ๊ถŒํ•œ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€ ๋“ฑ
  2. section
    • questions: ์ฟผ๋ฆฌ์˜ name, type ํ•„๋“œ
    • answers: ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์‘๋‹ต RR
    • authority: ๊ถŒํ•œ ์žˆ๋Š” ์„œ๋ฒ„์— ๋Œ€ํ•œ ๋ ˆ์ฝ”๋“œ
    • additional: ์ถ”๊ฐ€ โ€œ๋„์›€์ด ๋  ๋งŒํ•œโ€ ์ •๋ณด

P2P(Peer-to-Peer) Architect


๐Ÿ“š P2P/: ์„œ๋ฒ„ ์—†์ด ํด๋ผ์ด์–ธํŠธ(ํ”ผ์–ด)๋ผ๋ฆฌ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ

โœ… ํŠน์ง•:

  • ์ค‘์•™ ์„œ๋ฒ„ ์—†์Œ
  • ์ง์ ‘ ํ†ต์‹ : ์ฐธ์—ฌํ•˜๋Š” ์‹œ์Šคํ…œ๋“ค์ด ์„œ๋กœ ์ง์ ‘ ํ†ต์‹ 
  • ํ”ผ์–ด๋“ค์€ ๋‹ค๋ฅธ ํ”ผ์–ด๋“ค์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๊ณ , ๋˜ํ•œ ๋‹ค๋ฅธ ํ”ผ์–ด๋“ค์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต
  • ์ž๊ฐ€ ํ™•์žฅ์„ฑ: ์ƒˆ๋กœ์šด ํ”ผ์–ด๋Š” ์ƒˆ๋กœ์šด ์„œ๋น„์Šค ์šฉ๋Ÿ‰๊ณผ ์ƒˆ๋กœ์šด ์„œ๋น„์Šค ์ˆ˜์š”๋ฅผ ํ•จ๊ป˜ ๊ฐ€์ ธ์˜ด
  • ๊ฐ„ํ—์  ์—ฐ๊ฒฐ: ํ”ผ์–ด๋“ค์€ ํ•ญ์ƒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉฐ, IP ์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Œ
  • ์ค‘์•™ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด ์—†์–ด ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žก
  • ex: BitTorren, KanKan, Skype

Client-Server VS P2P


1. Client-Server

alt text alt text

  • server: N๊ฐœ์˜ ํŒŒ์ผ ๋ณต์‚ฌ๋ณธ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์—…๋กœ๋“œ โ†’ NF/us(N๊ฐœ ๋ณต์‚ฌ๋ณธ ์ „์†ก ์‹œ๊ฐ„)
  • client: F/dmin(์ตœ์†Œ ํด๋ผ์ด์–ธํŠธ ๋‹ค์šด๋กœ๋“œ ์‹œ๊ฐ„)
  • Client-Server ๋ฐฉ์‹์˜ ์ด ๋ฐฐํฌ ์‹œ๊ฐ„(Dc-s): Dc-s โ‰ฅ max{NF/us, F/dmin}
  • ์‹œ๊ฐ„์€ N์ด ์ฆ๊ฐ€ํ• ์ˆ˜๋ก ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ํŠน์„ฑ
2. P2P

alt text

  • server: ์„œ๋ฒ„๋Š” ์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ ๋ณต์‚ฌ๋ณธ์„ ์—…๋กœ๋“œ
    • ํ•œ ๊ฐœ ๋ณต์‚ฌ๋ณธ ์ „์†ก ์‹œ๊ฐ„: F/us
  • client: ๊ฐ ํด๋ผ์ด์–ธํŠธ๋Š” ํŒŒ์ผ ๋ณต์‚ฌ๋ณธ์„ ๋‹ค์šด๋กœ๋“œ
    • ์ตœ์†Œ ํด๋ผ์ด์–ธํŠธ ๋‹ค์šด๋กœ๋“œ ์‹œ๊ฐ„: F/dmin
  • clients: ๋“  ํด๋ผ์ด์–ธํŠธ๋Š” ์ด NF ๋น„ํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œ
    • ์ตœ๋Œ€ ์—…๋กœ๋“œ ์†๋„(์ตœ๋Œ€ ๋‹ค์šด๋กœ๋“œ ์†๋„ ์ œํ•œ): us + ฮฃui
  • P2P ๋ฐฉ์‹์˜ ์ด ๋ฐฐํฌ ์‹œ๊ฐ„(DP2P): DP2P โ‰ฅ max{F/us, F/dmin, NF/(us + ฮฃui)}

alt text

  • P2P๋Š” N์ด ์ฆ๊ฐ€ํ•ด๋„, ํ•œ ํ”ผ์–ด์˜ ๋‹ค์šด๋กœ๋“œ bandwidth๊ฐ€ ๋น„์ •์ƒ์ ์œผ๋กœ ๋‚˜์˜์ง€ ์•Š์€ ์ด์ƒ, ๋ฐฐํฌ์‹œ๊ฐ„์€ ํš๊ธฐ์ ์œผ๋กœ ๋‹จ์ถ•
  • ๊ฒฐ๊ณผ์ ์œผ๋กœ ์„œ๋ฒ„์˜ ํŒŒ์ผ ์—…๋กœ๋“œ ๋ถ€๋‹ด์„ ์ค„์˜€๊ณ , ์ž‘์€ ํฌ๊ธฐ์˜ ์ฒญํฌ๋กœ ์ธํ•ด ํ•œ ํ”ผ์–ด๊ฐ€ ๋ถ€๋‹ดํ•˜๋Š” ์—…๋กœ๋“œ Bandwidth๋˜ํ•œ ์ค„์—ˆ๋‹ค

P2P file distribution: BitTorrent


๐Ÿ“BitTorrent ๊ธฐ๋ณธ ๊ฐœ๋…

  • Chunk: ํŒŒ์ผ์€ 256KB ํฌ๊ธฐ์˜ ์ž‘์€ chunk๋กœ ๋ถ„ํ• 
  • Tracker: ํ† ๋ ŒํŠธ์— ์ฐธ์—ฌํ•˜๋Š” peer list๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋ฒ„
  • Torrent: ํ•˜๋‚˜์˜ file chunk๋ฅผ ๊ตํ™˜ํ•˜๋Š” peer group

โœ…BitTorrent ์ž‘๋™ ๋ฐฉ์‹

  1. torrent joining:
    • new peer๋Š” ์ฒ˜์Œ์— chunk X โ†’ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ๋‹ค๋ฅธ peer๋กœ ๋ถ€ํ„ฐ chunk ์ˆ˜์ง‘
    • ํŠธ๋ž˜์ปค์— ๋“ฑ๋กํ•˜์—ฌ ํ”ผ์–ด ๋ชฉ๋ก์„ ๋ฐ›๊ณ , ์ผ๋ถ€ ํ”ผ์–ด(neighbors)์— ์—ฐ๊ฒฐ
  2. ๋‹ค์šด๋กœ๋“œ์™€ ์—…๋กœ๋“œ ๋™์‹œ ์ง„ํ–‰:
    • ๋‹ค์šด๋กœ๋“œํ•˜๋ฉด์„œ ๋™์‹œ์— ๋‹ค๋ฅธ ํ”ผ์–ด์—๊ฒŒ ์ฒญํฌ๋ฅผ ์—…๋กœ๋“œ
    • ํ”ผ์–ด๋Š” ์ฒญํฌ ๊ตํ™˜ ์ƒ๋Œ€๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค
  3. Churn: ํ”ผ์–ด๋Š” ์–ธ์ œ๋“ ์ง€ ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ํŒŒ์ผ ์™„์„ฑ ํ›„ ์„ ํƒ: ํŒŒ์ผ์€ ๋ชจ๋‘ ๋ฐ›์€ peer๋Š” selfish(์ด๊ธฐ์ : ๋– ๋‚จ) or altruistic(์ดํƒ€์ : ๋‚จ์•„์„œ chunk ๊ณต์œ )

โœ…Chunk requesting, sending

  1. Chunk requesting
    • ํ”ผ์–ด๋งˆ๋‹ค ์„œ๋กœ ๋‹ค๋ฅธ ์ฒญํฌ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
    • ์ฃผ๊ธฐ์ ์œผ๋กœ ๋‹ค๋ฅธ ํ”ผ์–ด์—๊ฒŒ ๊ทธ๋“ค์ด ๊ฐ€์ง„ ์ฒญํฌ ๋ชฉ๋ก์„ ์š”์ฒญ
    • ๊ฐ€์žฅ ํฌ๊ท€ํ•œ ์ฒญํฌ๋ถ€ํ„ฐ ์š”์ฒญ
  2. Chunk sending: Tit-for-Tat
    • ํ”ผ์–ด๋Š” ์ž์‹ ์—๊ฒŒ ๊ฐ€์žฅ ๋น ๋ฅธ ์†๋„๋กœ ์ฒญํฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ƒ์œ„ 4๊ฐœ ํ”ผ์–ด์—๊ฒŒ๋งŒ ์ฒญํฌ๋ฅผ ๋ณด๋ƒ„
    • ๋‹ค๋ฅธ ํ”ผ์–ด๋“ค์€ โ€œ๋ง‰ํž˜(choked)โ€ ์ƒํƒœ
    • 10์ดˆ๋งˆ๋‹ค ์ƒ์œ„ 4๊ฐœ ํ”ผ์–ด๋ฅผ ์žฌํ‰๊ฐ€
    • 30์ดˆ๋งˆ๋‹ค ๋ฌด์ž‘์œ„๋กœ ๋‹ค๋ฅธ ํ”ผ์–ด๋ฅผ ์„ ํƒํ•˜์—ฌ ์ฒญํฌ ์ „์†ก์„ ์‹œ์ž‘(optimistically unchoke)

์ฐธ๊ณ : https://inpa.tistory.com/entry/WEB-๐ŸŒ-DNS-๊ฐœ๋…-๋™์ž‘-์™„๋ฒฝ-์ดํ•ด-โ˜…-์•Œ๊ธฐ-์‰ฝ๊ฒŒ-์ •๋ฆฌ [Inpa Dev ๐Ÿ‘จโ€๐Ÿ’ป:ํ‹ฐ์Šคํ† ๋ฆฌ]

This post is licensed under CC BY 4.0 by the author.