[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์ ์ฃผ์ ์๋น์ค
- hostname-to-IP-address translation: ๋๋ฉ์ธ ์ด๋ฆ์ IP ์ฃผ์๋ก ๋ณํ
- host aliasing: ํ๋์ ์๋ฒ์ ์ฌ๋ฌ ๋๋ฉ์ธ ์ด๋ฆ์ ์ง์ ๊ฐ๋ฅ
- mail server aliasing
- load distribution: ํ๋์ ๋๋ฉ์ธ ์ด๋ฆ์ ์ฌ๋ฌ IP ์ฃผ์๋ฅผ ์ฐ๊ฒฐํ์ฌ ํธ๋ํฝ์ ๋ถ์ฐ
โ DNS๋ฅผ centralize ํ์ง ์๋ ์ด์
- Single Point of Failure: ์ค์ ์๋ฒ๊ฐ ๋ค์ด๋๋ฉด ์ ์ฒด ์ธํฐ๋ท์ด ๋ง๋น
- traffic volume: ์์ฒญ๋ ์์ ์ฟผ๋ฆฌ๋ฅผ ํ๋์ ์๋ฒ๊ฐ ์ฒ๋ฆฌํ๊ธฐ ์ด๋ ค์
- distant centralized database: ์ง๋ฆฌ์ ๊ฑฐ๋ฆฌ๋ก ์ธํ ์ง์ฐ ์๊ฐ์ด ๋ฐ์
- maintenance
๊ทธ๋์ DNS๋ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค.
DNS hierarchical structure
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,.netTLD ๊ด๋ฆฌ - Educause:
.eduTLD ๊ด๋ฆฌ
- Network Solutions:
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์ ๋๊ฐ์ง ์๋ต:
local cache์์ ์ต๊ทผ ์ด๋ฆ-์ฃผ์ ๋ณํ ์์ ํ์ธ(์บ์๊ฐ ์ค๋๋์์ ์ ์์)- DNS ๊ณ์ธต ๊ตฌ์กฐ๋ก ์์ฒญ์ ์ ๋ฌํ์ฌ ํด๊ฒฐ
DNS name resolution
1. iterated query(๋ฐ๋ณต ์ฟผ๋ฆฌ)
engineering.nyu.edu์ ์๋ ์ฌ์ฉ์๊ฐgaia.cs.umass.edu์ IP ์ฃผ์๋ฅผ ์๊ณ ์ถ์ดํจ- ์ฌ์ฉ์๋
local DNS ์๋ฒ(dns.nyu.edu)์ ์ฟผ๋ฆฌ๋ฅผ ์ ์ก - local DNS ์๋ฒ๋ root DNS ์๋ฒ์ ์ฟผ๋ฆฌ๋ฅผ ์ ์ก
- root DNS ์๋ฒ๋
.edu๋๋ฉ์ธ์ ๋ด๋นํ๋TLD(Top-Level Domain) DNS ์๋ฒ ์ ๋ณด๋ฅผ return - local DNS ์๋ฒ๋ TLD DNS ์๋ฒ์ ์ฟผ๋ฆฌ๋ฅผ ์ ์ก
- TLD ์๋ฒ๋
umass.edu๋๋ฉ์ธ์ ๋ด๋นํ๋authoritative DNS ์๋ฒ(dns.cs.umass.edu) ์ ๋ณด๋ฅผ return - local DNS ์๋ฒ๋ authoritative DNS ์๋ฒ์ ์ฟผ๋ฆฌ๋ฅผ ์ ์ก
- ๊ถํ ์๋ DNS ์๋ฒ๋
gaia.cs.umass.edu์ IP ์ฃผ์๋ฅผ return - local DNS ์๋ฒ๋ ์ด IP ์ฃผ์๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๋ฌ
2. recursive query(์ฌ๊ท ์ฟผ๋ฆฌ)
- ์ฌ์ฉ์๋ local DNS ์๋ฒ์
gaia.cs.umass.edu์ IP ์ฃผ์๋ฅผ ์์ฒญ - local DNS ์๋ฒ๋ root DNS ์๋ฒ์ ์ฌ๊ท์ ์ฟผ๋ฆฌ๋ฅผ ์ ์ก
- root DNS ์๋ฒ๋ TLD DNS ์๋ฒ์ ์ฟผ๋ฆฌ๋ฅผ ์ ์ก
- TLD DNS ์๋ฒ๋ authoritative DNS ์๋ฒ์ ์ฟผ๋ฆฌ๋ฅผ ์ ์ก
- authoritative DNS ์๋ฒ๋ TLD DNS ์๋ฒ์ return
- TLD DNS ์๋ฒ๋ root DNS ์๋ฒ์ return
- root DNS ์๋ฒ๋ local DNS ์๋ฒ์ return
- 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:
Arecord (Address)name: hostnamevalue: IP address- ex: (example.com, 192.168.1.1, A, 3600)
NSrecord (Name Server)name: domainvalue: ๋๋ฉ์ธ์ authoritative name ์๋ฒ์ ํธ์คํธ ์ด๋ฆ- ex: (example.com, ns1.example.com, NS, 86400)
CNAMErecord (Canonical Name)name: ๋ณ์นญ ์ด๋ฆvalue: ์ ์(canonical) ์ด๋ฆ- ex: (www.example.com, example.com, CNAME, 3600)
MXrecord (Mail Exchange)name: domainvalue: ํด๋น ๋๋ฉ์ธ๊ณผ ๊ด๋ จ๋ ๋ฉ์ผ ์๋ฒ ์ด๋ฆ- ex: (example.com, mail.example.com, MX, 3600)
DNS protocol messages
DNS ์ฟผ๋ฆฌ์ ์๋ต ๋ฉ์์ง๋ ๋์ผํ ํ์์ ๊ฐ์ง๋ค.
โ DNS ๋ฉ์์ง ๊ตฌ์กฐ:
- message header
- identification: ์ฟผ๋ฆฌ๋ฅผ ์๋ณํ๋ 16๋นํธ ๋ฒํธ, ์๋ต ์ ๊ฐ์ ๋ฒํธ ์ฌ์ฉ
- flag: ์ฟผ๋ฆฌ/์๋ต, ์ฌ๊ท ํฌ๋ง, ์ฌ๊ท ๊ฐ๋ฅ, ์๋ต์ด ๊ถํ ์๋์ง ์ฌ๋ถ ๋ฑ
- 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
server: N๊ฐ์ ํ์ผ ๋ณต์ฌ๋ณธ์ ์์ฐจ์ ์ผ๋ก ์ ๋ก๋ โNF/us(N๊ฐ ๋ณต์ฌ๋ณธ ์ ์ก ์๊ฐ)client:F/dmin(์ต์ ํด๋ผ์ด์ธํธ ๋ค์ด๋ก๋ ์๊ฐ)Client-Server๋ฐฉ์์ ์ด ๋ฐฐํฌ ์๊ฐ(Dc-s):Dc-s โฅ max{NF/us, F/dmin}- ์๊ฐ์ N์ด ์ฆ๊ฐํ ์๋ก ์ ํ์ ์ผ๋ก ์ฆ๊ฐํ๋ ํน์ฑ
2. P2P
server: ์๋ฒ๋ ์ต์ํ ํ๋์ ๋ณต์ฌ๋ณธ์ ์ ๋ก๋- ํ ๊ฐ ๋ณต์ฌ๋ณธ ์ ์ก ์๊ฐ:
F/us
- ํ ๊ฐ ๋ณต์ฌ๋ณธ ์ ์ก ์๊ฐ:
client: ๊ฐ ํด๋ผ์ด์ธํธ๋ ํ์ผ ๋ณต์ฌ๋ณธ์ ๋ค์ด๋ก๋- ์ต์ ํด๋ผ์ด์ธํธ ๋ค์ด๋ก๋ ์๊ฐ:
F/dmin
- ์ต์ ํด๋ผ์ด์ธํธ ๋ค์ด๋ก๋ ์๊ฐ:
clients: ๋ ํด๋ผ์ด์ธํธ๋ ์ด NF ๋นํธ๋ฅผ ๋ค์ด๋ก๋- ์ต๋ ์
๋ก๋ ์๋(์ต๋ ๋ค์ด๋ก๋ ์๋ ์ ํ):
us + ฮฃui
- ์ต๋ ์
๋ก๋ ์๋(์ต๋ ๋ค์ด๋ก๋ ์๋ ์ ํ):
- P2P ๋ฐฉ์์ ์ด ๋ฐฐํฌ ์๊ฐ(DP2P):
DP2P โฅ max{F/us, F/dmin, NF/(us + ฮฃui)}
- P2P๋ N์ด ์ฆ๊ฐํด๋, ํ ํผ์ด์ ๋ค์ด๋ก๋
bandwidth๊ฐ ๋น์ ์์ ์ผ๋ก ๋์์ง ์์ ์ด์, ๋ฐฐํฌ์๊ฐ์ ํ๊ธฐ์ ์ผ๋ก ๋จ์ถ - ๊ฒฐ๊ณผ์ ์ผ๋ก ์๋ฒ์ ํ์ผ ์ ๋ก๋ ๋ถ๋ด์ ์ค์๊ณ , ์์ ํฌ๊ธฐ์ ์ฒญํฌ๋ก ์ธํด ํ ํผ์ด๊ฐ ๋ถ๋ดํ๋ ์ ๋ก๋ Bandwidth๋ํ ์ค์๋ค
P2P file distribution: BitTorrent
๐BitTorrent ๊ธฐ๋ณธ ๊ฐ๋
Chunk: ํ์ผ์ 256KB ํฌ๊ธฐ์ ์์ chunk๋ก ๋ถํTracker: ํ ๋ ํธ์ ์ฐธ์ฌํ๋ peer list๋ฅผ ๊ด๋ฆฌํ๋ ์๋ฒTorrent: ํ๋์ file chunk๋ฅผ ๊ตํํ๋ peer group
โ BitTorrent ์๋ ๋ฐฉ์
- torrent joining:
- new peer๋ ์ฒ์์ chunk X โ ์๊ฐ์ด ์ง๋๋ฉด์ ๋ค๋ฅธ peer๋ก ๋ถํฐ chunk ์์ง
- ํธ๋์ปค์ ๋ฑ๋กํ์ฌ ํผ์ด ๋ชฉ๋ก์ ๋ฐ๊ณ , ์ผ๋ถ ํผ์ด(neighbors)์ ์ฐ๊ฒฐ
- ๋ค์ด๋ก๋์ ์
๋ก๋ ๋์ ์งํ:
- ๋ค์ด๋ก๋ํ๋ฉด์ ๋์์ ๋ค๋ฅธ ํผ์ด์๊ฒ ์ฒญํฌ๋ฅผ ์ ๋ก๋
- ํผ์ด๋ ์ฒญํฌ ๊ตํ ์๋๋ฅผ ๋ฐ๊ฟ ์ ์๋ค
Churn: ํผ์ด๋ ์ธ์ ๋ ์ง ๋ค์ด์ค๊ณ ๋๊ฐ ์ ์์ต๋๋ค.- ํ์ผ ์์ฑ ํ ์ ํ: ํ์ผ์ ๋ชจ๋ ๋ฐ์ peer๋ selfish(์ด๊ธฐ์ : ๋ ๋จ) or altruistic(์ดํ์ : ๋จ์์ chunk ๊ณต์ )
โ Chunk requesting, sending
- Chunk requesting
- ํผ์ด๋ง๋ค ์๋ก ๋ค๋ฅธ ์ฒญํฌ์ ๋ถ๋ถ์งํฉ์ ๊ฐ์ง๊ณ ์๋ค.
- ์ฃผ๊ธฐ์ ์ผ๋ก ๋ค๋ฅธ ํผ์ด์๊ฒ ๊ทธ๋ค์ด ๊ฐ์ง ์ฒญํฌ ๋ชฉ๋ก์ ์์ฒญ
- ๊ฐ์ฅ ํฌ๊ทํ ์ฒญํฌ๋ถํฐ ์์ฒญ
- Chunk sending: Tit-for-Tat
- ํผ์ด๋ ์์ ์๊ฒ ๊ฐ์ฅ ๋น ๋ฅธ ์๋๋ก ์ฒญํฌ๋ฅผ ์ ๊ณตํ๋ ์์ 4๊ฐ ํผ์ด์๊ฒ๋ง ์ฒญํฌ๋ฅผ ๋ณด๋
- ๋ค๋ฅธ ํผ์ด๋ค์ โ๋งํ(
choked)โ ์ํ - 10์ด๋ง๋ค ์์ 4๊ฐ ํผ์ด๋ฅผ ์ฌํ๊ฐ
- 30์ด๋ง๋ค ๋ฌด์์๋ก ๋ค๋ฅธ ํผ์ด๋ฅผ ์ ํํ์ฌ ์ฒญํฌ ์ ์ก์ ์์(
optimistically unchoke)
์ฐธ๊ณ : https://inpa.tistory.com/entry/WEB-๐-DNS-๊ฐ๋ -๋์-์๋ฒฝ-์ดํด-โ -์๊ธฐ-์ฝ๊ฒ-์ ๋ฆฌ [Inpa Dev ๐จโ๐ป:ํฐ์คํ ๋ฆฌ]








