이 글은 go언어를 활용한 네트워크 프로그래밍을 기반으로 작성되었습니다


도메인 이름과 주소 해석

DNS(도메인 네임 시스템)은 IP주소를 도메인 네임과 일치시키는 방법이다. 도메인 네임이란 웹 사이트를 방문하고자 할 때 주소 표시줄에 입력하는 이름이다. 인터넷 프로토콜은 호스트를 찾기 위해 IP주소를 사용하지만 google.com과 같은 도메인 네임은 사람이 기억하기 훨씬 쉽다.

누군가가 172.217.6.14라는 IP주소로 접속하려 한다면, 누가 그 IP주소의 소유자이고 다시 접속할 때 어디로 접속해야 하는지 기억하기 힘들다. 하지만 google.com이라면 기억하기 쉽고 다시 접속하기도 쉽다. 이러한 원리로 DNS는 IP주소 대신에 호스트 이름을 기억할 수 있도록 해준다. 다른 사람의 전화번호를 일일이 외우지 않고 스마트폰 전화번호 목록에서 이름을 보고 전화를 거는 것과 비슷하다.

웹 브라우저에 https://nostarch.com을 입력하면 컴퓨터는 도메인 네임 확인 프로그램으로부터 도메인 네임을 질의한다. 도메인 네임 확인 프로그램은 사용자의 도메인 네임 질의로부터 해당 IP주소를 얻어오는 프로그램이다.

  1. 이 프로그램은 IANA가 관리하는 13개의 루트 네임 서버로부터 우리가 질의한 https://nostarch.com의 IP 주소를 질의한다.

  2. 루트네임 서버는 질의한 도메인으로부터 최상위 계층 도메인 정보인 .com 네임서버의 주소를 반환한다.

  3. 이후 프로그램은 .com 네임 서버에 다시금 해당 도메인 네임의 IP주소를 질의하고 서버는 네임 서버의 주소를 반환한다.

  4. 마지막으로 프로그램은 네임 서버에 해당 도메인의 IP주소를 질의하고 응답을 받는다.

  5. 웹 브라우저는 응답받은 이 IP주소로 연결하여 웹 페이지를 받아온 후 브라우저에 렌더링한다.

이러한 계층적인 도메인 확인 과정 덕분에 웹 브라우저는 웹 서버에 대한 아무런 설정도 없이 도메인만으로 접속할 수 있다.


0개의 댓글