DNS는 웹사이트를 IP 주소(192.XXX.XXX.XXX)가 아닌 도메인 네임(www.jonguk.com)으로 접속하게 해준다.
루트 도메인 바로 아래에 있는 도메인을 1단계 도메인 또는 최상위 도메인이라고 부른다.
최상위 도메인은 국가 최상위 도메인과 일반 최상위 도메인으로 구분할 수 있다.
www.diddl.co.kr에서 .kr이 최상위 도메인에 해당한다.
최상위 도메인 아래에 있는 도메인을 2단계 도메인이라고 한다.
예시로 든 위 주소에서는 .co 부분이 여기에 해당한다.
2단계 도메인 아래에는 3단계 도메인이 위치하고 위 예시 주소에서 diddl부분이 여기에 해당한다.
www부분은 호스트명이라 부르고 이 부분을 4단계 도메인 또는 서브도메인이라고 한다.
위와 같은 계층적 구조를 통해 체계적인 주소 관리가 가능하다.
또한 계층적 구조를 바탕으로 각 서버들이 트래픽을 나누어 처리할 수 있어 분산 처리가 가능하다.
클라이언트가 URL에 접속하면 DNS 서버에 도메인 주소의 IP를 물어보는 것이 되고, 이에 대한 답을 받는 과정을 Query(쿼리)라 한다.
계층 구조로 이루어 졌기 때문에 DNS 서버들 간 몇 차례의 요청과 응답을 받게 되는데, 이 과정을 재귀적 쿼리라 한다.
사용자가 브라우저에서 www.diddl.net 주소로 접속한다.
사용자 PC의 호스트에 설정된 기본 DNS 서버로 www.diddl.net의 IP 주소를 물어본다.
DNS Resolver(그림에 보이는 큰 서버)에 www.diddl.net의 IP 주소 값이 있다면 바로 해당 IP 주소를 응답하고, 없다면 루트 DNS 서버에 IP주소 확인 요청을 보낸다.
루트 DNS 서버에서는 확인을 한 후 .net을 관리하는 1단계 DNS 서버 주소로 응답해준다.
.net을 관리하는 DNS 서버로 확인 요청을 보낸다.
.net 관리 DNS 서버는 diddl.net, 즉 2단계 DNS 서버 주소로 응답해준다.
diddl.net DNS 관리 서버로 확인 요청을 보낸다.
diddl.net DNS 관리 서버는 diddl.net 호스팅 영역에서 www.diddl.net의 레코드를 찾아 웹 서버의 IP주소를 DNS Resolver로 응답해준다.
DNS Resolver는 클라이언트에게 IP주소를 응답해준다.
브라우저는 IP 주소로 해당 서비스에 접속하고 웹 페이지를 로드할 수 있다.