[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
,.net
TLD ๊ด๋ฆฌ - Educause:
.edu
TLD ๊ด๋ฆฌ
- 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:
A
record (Address)name
: hostnamevalue
: IP address- ex: (example.com, 192.168.1.1, A, 3600)
NS
record (Name Server)name
: domainvalue
: ๋๋ฉ์ธ์ authoritative name ์๋ฒ์ ํธ์คํธ ์ด๋ฆ- ex: (example.com, ns1.example.com, NS, 86400)
CNAME
record (Canonical Name)name
: ๋ณ์นญ ์ด๋ฆvalue
: ์ ์(canonical) ์ด๋ฆ- ex: (www.example.com, example.com, CNAME, 3600)
MX
record (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 ๐จโ๐ป:ํฐ์คํ ๋ฆฌ]