인터넷이 상용화되기 전에는 인터넷에 연결된 단말이 많지 않았습니다. 스마트폰에 각자의 전화번호부를 저장하듯 각 단말에 hosts 파일을 넣어두고 그 안에 호스트 이름과 IP를 매핑하는 테이블이 있었습니다. hosts 파일이 정적 테이블이어서 단순하게 그 정보를 검색하면 간단히 주소 변환이 가능해 캐시 개념이 필요없었습니다. 인터넷이 상용화된 후 폭증하는 단말들을 중앙화된 체계로 수용하기 위해 DNS 체계가 만들어졌습니다. 기존 hosts 관리가 어려웠던 문제를 해결하기 위해 중앙집중식 시스템을 구성했고 폭증한 단말을 수용하기 위해 hosts처럼 플랫이 아닌 계층 구조를 채택했습니다. 기존 hosts 체계와 새로운 DNS 체계가 결합하면서 복잡해보이는 도메인 이름 쿼리 프로세스가 만들어졌습니다.
그림 7-17은 캐시와 DNS를 이용해 도메인 이름 쿼리를 하는 예제입니다. ‘zigispace.net’이라는 도메인을 쿼리하기 위해 먼저 로컬 캐시를 조회하고 로컬 캐시에 없으면 DNS 서버로 다시 쿼리해 도메인 쿼리를 수행합니다.
▲ 그림 7-17 로컬 캐시 유무에 따른 도메인 쿼리 방법