HTTP 의 메시지를 만들면 다음에는 이것을 OS에 의뢰하여 액세스 대상의 웹 서버에게 송신함. 이때 URL안에 쓰여 있는 서버의 도메인명에서 IP 주소를 조사해야 함
IP 주소의 기본

- TCP/IP는 그림과 같이 서브넷이라는 작은 네트워크를 라우터로 접속하여 전체 네트워크가 만들어진다고 생각할 수 있음
- 여기에서 말하는 서브넷이란, 허브에 몇 대의 PC가 접속된 것이라고 생각해도 좋음
- 여기에 ‘00 동 00 번지' 라는 형태로 네트워크의 주소를 할당함
- 동에 해당하는 번호를 서브넷에 할당(네트워크 번호)하고, 번지에 해당하는 번호(호스트 번호)를 컴퓨터에 할당한 것이 네트워크의 주소
- 네트워크 번호 + 호스트 번호 = IP 주소
- 액세스 대상의 서버까지 메시지를 운반할 때는 IP 주소에 따라 액세스 대상이 어디에 있는지 판단하고 운반. 송신측이 메시지를 보내면 서브넷 안에 있는 허브가 운반하고
IP 주소 표기법
- IP 주소 본체의 표기 방법
- 10.11.12.13
- IP 주소 본체와 같은 방법으로 네트워크를 표기하는 방법
- 10.11.12.13/255.255.255.0
- IP 주소 본체 / 넷마스크
- 네트워크 번호의 비트 수로 넷마스크를 표기하는 방법
- 10.11.12.13/24
- IP 주소 본체 / 넷마스크
- 서브넷을 나타내는 주소 : 호스트 번호 부분의 비트가 모두 0인 것은 각 컴퓨터가 아니라 서브넷 자체를 나타냄
- 10.11.12.0/24
- 서브넷의 브로드캐스트를 나타내는 주소 : 호스트 번호 부분의 비트가 모두 1인 것은 서브넷 전체에 대한 브로드캐스트를 나타냄
- 10.11.12.255/24
IP 주소의 호스트 번호
모두 0 : 서브넷 자체
모두 1: 서브넷에 있는 기기 전체에 패킷을 보내는 ‘브로드캐스트'를 나타냄
넷마스크

IP 주소 규칙에는 네트워크 번호와 호스트 번호의 두 가지를 합쳐서 32비트로 한다는 것만 결정되어 있을 뿐 어디까지가 네트워크 번호가 어디부터가 호스트 번호인지를 알 수 없음
이를 결정하는 것이 넷마스크
도메인 명과 IP 주소를 구분하여 사용하는 이유
- 도메인 명이 IP 주소보다 길어서 도메인 명 그대로 보내면 더 많은 데이터를 보내야함
- 그래서 사람은 이름 사용하고 라우터는 IP 주소 사용
Socket 라이브러리가 IP 주소를 찾는 기능을 제공
- DNS 서버에 조회한다는 것은 DNS 서버에 조회 메시지를 보내고, 거기에서 반송되는 응답 메시지를 받는 것. 이 DNS 클라이언트에 해당하는 것을 DNS 리졸버 or 리솔버
- 리솔버의 실체는 Socket 라이브러리
- OS에 포함되어 있는 네트워크의 기능을 애플리케이션에서 호출하기 위한 부품을 모아놓은 라이브러리
리솔버를 이용하여 DNS 서버를 조회
- 네트워크 어플리케이션(브라우저)가 리졸버 호출
- DNS 서버에 문의하기 위한 메시지 만듦
- 프로토콜 스택을 호출하여 해당 메시지를 DNS 서버에 보냄
- IP주소 반환 받으면 지정한 메모리 영역에 저장
- DNS 서버에 메시지 송신할 때도 당연히 DNS 서버의 IP 주소가 필요한데, 이는 TCP/IP 설정 항목의 하나로 컴퓨터에 미리 설정되어 있음