- Domain(google.com, naver.com) ↔ Server IP를 mapping 하는 시스템
DNS services
- hostname을 IP address로 변환시켜줌 (www.naver.com → IP address)
DNS: a distributed, hierarchical database

- Root
- Top Level Domain :
- .com, .org, .net, co.kr, edu,
- country domains: .cn, .kr, .jp, etc
- Authoritative : 실제로 접속하는 주소
⇒ 이러한 Domain들은 각국의 DB를 통해 엄격하게 관리됨.
Local DNS name server
- client는 DNS query를 root DNS에 묻지 않고 자신의 ISP에 있는 Local DNS name server에 질의를 함
- 일종의 proxy server
DNS name resolution: iterated query
- Local DNS server가 각각의 DNS server(Root DNS, TLD (Top Level Domain) server, local DNS server)에 직접 요청함
- iterated query
DNS name resolution: recursive query
- Local DNS server가 Root DNS server에 질의 → Root DNS server는 그에 해당하는 TLD server에 질의 → TLD server는 해당 Local DNS server에 질의 → 해당하는 도메인을 찾으면 왔던 경로로 되돌아감
- Recursive query
- root DNS에 과도한 인풋이 들어옴
Caching, Updating DNS Records
- 요청한 도메인이 방문하지 않았다면 응답 후 cache에 저장
- 저장 후 TTL (Time to live)동안 방문하지 않았다면 삭제
DNS records
- DNS는 사용자의 습성 (RR, Resource Records)를 저장하는 분산 데이터베이스
RR format : (name, value, type, ttl)
- Type=A
- name : hostname
- value : IP address
- Type=NS
- name : domain (naver.com)
- value : hostname
- Type=CNAME
- name : canonical name (서버에서 관리하는 풀네임)
- www.ibm.com → servereast.backup2.ibm.com
- value : canonical name
- Type=MX
- value : name of mail server
DNS Protocol Messages

DNS Security
- DDos
- root server, TLD server에 과도한 traffic 발생
- Distributed
- Redirect Attack
- MITM (Man In The Middle) : 응답하는 쿼리를 가로채서 수정
- 수정된 사이트에서 사용자의 개인정보 탈취
P2P Architecture
- server없이 통신하기 때문에 delay가 적음
- 보안에 매우 취약함
File distribution time, Client-Server vs P2P
- Client-Server는 Client의 수, N이 증가할수록 선형으로 증가함
