DNS(Domain Name System)?
모든 웹 페이지를 IP 주소로만 접속해야 한다면 어떨까? 🤔
- 도메인 이름과 IP 주소를 서로 변환시켜주는 시스템이다.
192.168.1.1
or2400:cb00:2048:1::c629:d7a2
과 같은 복잡한 IP 주소를 기억할 필요가 없게 된다.

많은 네임 서버의 계층으로 구현된 분산형 데이터베이스다.
.
은 계층을 나타낸다.

왜 중앙집중화 하지 않았을까?
- 서버 장애 & 트래픽 집중 문제
- 중앙 서버와의 거리 문제
왜 DNS 서버의 주소를 변경했는데 다운로드 속도가 빨라지는 걸까?
- 지역이나 통신사에 따라 찾는 DNS 서버가 다르기 때문이다.
DNS의 구성요소
Domain Name Space
- DNS는 거대한 분산 시스템이다.
- 도메인 네임스페이스는 DNS가 저장, 관리하는 계층적 구조를 의미한다.
- 최상위인 루트 DNS 서버가 존재하고, 하위로 노드가 연결되어 이어진 계층 구조이다.

Name Server === DNS Server
- 도메인을 IP 주소로 변환시키기 위해 도메인 네임 스페이스의 트리 구조에 대한 정보를 가지고 있는 서버이다.
- 데이터베이스의 역할을 수행한다.
- 요청 처리 및 응답 구현되어 있다.
Root Server
- 국제 인터넷 관리기구인 ICANN에서 직접 관리하는 서버이다.
- 가장 최상위에 있는 서버로 TLD DNS 서버의 IP 주소를 저장하고 안내하는 역할을 한다.
TLD Server
- 도메인 등록 기관인 IANA에서 관리하는 서버이다.
- SLD 서버의 IP 주소를 저장하고 안내하는 역할을 한다.
SLD Server
- 실제 개인 도메인과 IP 주소의 관계가 기록되는 서버이다.
- 일반적으로 도메인, 호스팅 업체의 네임서버를 말한다.
Recursive Server
IP 주소와 도메인 이름을 매핑한다.
Resolver
- 클라이언트의 요청을 네임 서버로 전달하고 응답을 받아 클라이언트에게 제공하는 기능을 수행한다.
- 네임 서버에 정보가 없으면 다른 네임 서버로 요청을 보낸다.
- 수많은 네임서버에 접근하여 도메인의 IP 정보를 조회하는 기능을 수행한다.
DNS 동작과정
- 사용자가 웹 브라우저에 'example.com'을 입력하면, 쿼리가 인터넷으로 이동하고 resolver가 이를 수신한다.
- resolver가 DNS 루트서버(.)에 요청을 보낸다.
- 루트 서버가, 도메인에 대한 정보를 저장하는 TLD 서버의 주소로 응답.
- .com TLD 서버에 요청을 보낸다.
- TLD 서버가 도메인 SLD 서버의 주소로 응답.
- SLD 서버에 요청을 보낸다.
- example.com의 IP 주소가 resolver로 반환된다.
- resolver가 처음 요청한 도메인의 IP 주소로 웹 브라우저에 응답.
- 브라우저가 IP 주소로 HTTP 요청을 보냄.
- 해당 IP의 서버가 브라우저에서 렌더링할 웹 페이지를 반환

DNS Cache
다시 ‘example.com’ 으로 요청을 보내기 위해서 위와 같은 과정을 다시 반복해야할까?
- 비효율적이기 때문에 PC는 DNS Cache를 활용해 자주 사용하는 DNS 주소를 저장해 놓는다.