본문 바로가기
운영체제&네트워크/Network

DNS 서버를 통한 웹 서버 IP 주소 조회 과정

by GangDev 2024. 4. 25.

 

웹 서버의 IP 주소를 DNS 서버에 조회하는 과정은 다음과 같다:

1. **DNS 서버의 기본 동작**: DNS 서버는 클라이언트로부터 조회 메시지를 받고, 이 메시지의 내용에 따라 적절한 정보를 응답한다. 조회 메시지에는 클라이언트가 알고자 하는 도메인 이름이 포함되어 있다.

2. **Socket 라이브러리와 리졸버**: 사용자가 웹 브라우저에서 도메인 이름을 입력하면, 브라우저는 Socket 라이브러리의 리졸버를 호출한다. 리졸버는 DNS 서버에 조회 메시지를 보내고, DNS 서버로부터 응답 메시지를 받는다. 이 과정에서 리졸버는 도메인 이름에 해당하는 IP 주소를 추출하여 브라우저에 전달한다.

3. **리졸버를 호출하는 방법**: 애플리케이션 프로그램에서 `gethostbyname("http://www.naver.com")`과 같은 함수를 호출하여 리졸버를 사용할 수 있다. 이 함수는 도메인 이름을 매개변수로 받아, 해당 도메인 이름에 대한 IP 주소를 반환한다.

4. **IP 주소의 기본**: IP 주소는 네트워크 주소와 호스트 번호로 구성된다. 네트워크 주소는 서브넷을 식별하고, 호스트 번호는 해당 서브넷 내의 특정 컴퓨터를 식별한다. 이 두 주소를 합친 것이 IP 주소다.

5. **메시지 전송**: 브라우저가 HTTP 리퀘스트 메시지를 만들고, 이 메시지를 네트워크에 송출하기 위해 OS에 의뢰한다. 이때, 메시지에 적혀있는 도메인 이름에 해당하는 IP 주소를 알아야 한다. 이 IP 주소는 브라우저가 리졸버를 통해 DNS 서버에 조회하여 얻는다.

이 과정을 통해, 사용자는 도메인 이름을 통해 웹 서버의 IP 주소를 알 수 있고, 이를 통해 웹 서버와 통신할 수 있게 된다.


IP 주소는 컴퓨터 네트워크에서 각 장치를 고유하게 식별하기 위해 사용되는 주소로, 네트워크 주소와 호스트 주소의 두 가지 구성 요소로 구성된다.

- **네트워크 주소**: 네트워크 주소는 특정 서브넷에 속하는 모든 인터페이스의 공통 주소이다. 이는 네트워크 내에서 서브넷을 식별하는 데 사용된다. 예를 들어, 네트워크 내에 여러 서브넷이 있을 때, 각 서브넷의 네트워크 주소는 서브넷을 구분하는 데 사용된다. 네트워크 주소는 IP 주소에서 호스트 주소 앞에 작성되며, 이를 통해 특정 PC의 IP 주소를 구성한다.

- **호스트 주소**: 호스트 주소는 서브넷 내에서 특정 컴퓨터나 장치를 식별하는 데 사용된다. 각 서브넷 내의 PC나 장치는 고유한 호스트 주소를 가지고 있으며, 이 주소는 서브넷 내에서 해당 장치를 식별하는 데 사용된다. 예를 들어, 서브넷 내의 PC1, PC2, PC3 등은 각각 .1, .2, .3과 같은 호스트 주소를 가진다.

IP 주소는 이진 표기법, 점으로 구분된 십진수 표기법, 그리고 16진수 표기법 등 세 가지 표기법으로 작성될 수 있다. 이 중 컴퓨터는 이진 표기법만을 이해할 수 있으며, 사람이 이해하기 쉽게 하기 위해 점으로 구분된 십진수 표기법과 16진수 표기법으로도 작성된다. 이러한 표기법을 사용하면 IP 주소를 더욱 쉽게 이해하고 사용할 수 있다.

네트워크 주소와 호스트 주소의 차이점을 이해하는 것은 네트워크 내에서 데이터 패킷을 어떻게 라우팅하고 전달하는지 이해하는 데 중요하다. 라우터는 데이터 패킷을 목적지 호스트의 네트워크로 전달하기 위해 네트워크 주소 정보를 사용한다. 패킷이 목적지 네트워크에 도착하면, 라우터는 호스트 주소를 사용하여 패킷을 최종 목적지인 특정 장치로 전달한다.