IP주소와 도메인 이름 사이에서의 변환을 수행하는 시스템을 가리켜 DNS(Domain Name System)이라고 하고, DNS의 중심에는 DNS 서버가 있습니다.
도메인 이름이란?
인터넷에서 서비스를 제공하는 서버들도 IP 주소로 구분이 되는데, 기억하기 쉽지 않은 IP 주소의 형태로 서버의 주소정보를 기억하는 것은 너무 어렵습니다. 따라서 기억하기도 좋고 표현하기도 좋은 형태의 도메인 이름이라는 것을 IP 주소에 부여해서 이것이 IP 주소를 대신하도록 하고 있습니다.
DNS 서버
인터넷 브라우저 주소 창에 아래의 IP 중 하나를 입력하면 네이버의 메인 페이지를 볼 수 있습니다.
그러나 일반적으로는 도메인 이름인 www.naver.com 의 입력을 통해 네이버에 접속합니다. 이 두 접속방법은 네이버의 메인 페이지에 접속한다는 점에서는 차이가 없지만, 접속의 과정에서는 차이가 있습니다. 도메인 이름은 해당 서버에 부여된 가상의 주소이지 실제주소가 아닙니다. 때문에 가상의 주소를 실제 주소로 변환하는 과정을 거쳐서 네이버에 접속해야 합니다. 이 변환 과정을 담당하는 것이 DNS 서버입니다.
모든 컴퓨터에는 디폴트 DNS 서버의 주소가 등록되어 있는데, 바로 이 디폴트 DNS 서버를 통해서 도메인 이름에 대한 IP 주소 정보를 얻게 됩니다. 즉, 인터넷 브라우저 주소 창에 도메인 이름을 입력하면 인터넷 브라우저는 해당 도메인 이름의 IP 주소를 디폴트 DNS 서버를 통해 얻게 되고, 그 다음 서버로의 실제 접속에 들어가게 됩니다.
물론 각자 컴퓨터에 설정되어 있는 디폴트 DNS 서버가 모든 도메인의 IP 주소를 알고 있지는 않습니다. 그러나 디폴트 DNS 서버는 모르면 다른 DNS 서버에 물어서라도 요청한 도메인의 IP 주소를 가르쳐줍니다.
위 그림에서 호스트가 물어본 도메인 이름의 IP주소를 디폴트 DNS 서버가 모르는 상황에 대한 응답과정을 보이고 있습니다. 디폴트 DNS 서버를 자신이 모르는 정보에 대한 요청이 들어오면 한 단계 상위 계층에 있는 DNS 서버에게 물어봅니다. 이런 식으로 계속 올라가면 최상위 DNS 서버인 Root DNS 서버에게까지 질의가 전달되는데, Root DSNS 서버는 해당 질문을 질문에 대한 답을 알고 있는 DNS 서버에게 물어봐서 IP 주소를 얻어내고, 그 결과는 질의가 진행된 반대 방향으로 전달되어 결국은 질의를 시작한 호스트에게 IP 주소가 전달됩니다. 이렇듯 DNS는 계층적으로 관리되는 일종의 분산 데이터베이스 시스템입니다.
'네트워크 프로그래밍 > C' 카테고리의 다른 글
[네트워크 프로그래밍/C] 소켓의 다양한 옵션 (0) | 2022.02.28 |
---|---|
[네트워크 프로그래밍/C] IP 주소와 도메인 이름 사이의 변환 (0) | 2022.02.27 |
[네트워크 프로그래밍/C] TCP 기반의 Half-close (0) | 2022.02.26 |
[네트워크 프로그래밍/C] UDP의 데이터 송수신 특성과 UDP에서의 connect 함수호출 (0) | 2022.02.26 |
[네트워크 프로그래밍/C] UDP 기반 서버, 클라이언트의 구현 (0) | 2022.02.25 |