-
728x90
1. IP 주소의 기본
in 브라우저
- URL 해독
- HTTP 메시지 생성
- OS에 송신 의뢰
OS에 송신을 의뢰하기 위해서는 도메인명이 아닌
IP주소
가 필요1-1. TCP/IP
- 허브 : 패킷을 중계하는 장치의 일종. 리피터 허브와 스위칭 허브가 존재.
- 라우터 : 패킷을 중계하는 장치의 일종.
- 서브넷 : 허브에 몇 대의 PC가 접속된 형태
- 전체 네트워크 : 여러 개의 서브넷을 라우터를 통해 접근할 수 있는 형태
- IP 주소 = 네트워크 번호(서브넷) + 호스트 번호(컴퓨터)
1-2. 메시지 전송 과정
- 송신측이 메시지를 보냄
- 서브넷의 허브가 가장 가까운 라우터까지 운반
- 라우터는 메시지를 보낼 다음 라우터를 판단하고 송신하도록 지시
- 다시 서브넷의 허브가 라우터에 데이터를 송신
- 도착할 때까지 반복
1-3. 넷마스크
- 실제 IP주소는 32비트로 구성
- 하지만 번호 배열만 봐서는 어디까지가 네트워크 번호이고 호스트 번호인지 구별할 수 없음
- 그래서 필요한 것이
넷마스크
넷마스크 구성
- IP 주소와 동일하게 32비트로 구성
- 1인 부분은 네트워크 번호, 0인 부분은 호스트 번호를 나타냄
- 호스트 번호 부분의 비트 값이 모두 0이면
서브넷
을 나타냄 - 호스트 번호 부분의 비트 값이 모두 1이면
브로드캐스트
를 나타냄
IP 주소 = 10.1.2.3, 넷마스크 = 255.255.255.0 일 경우, 네트워크 번호 = 10.1.2, 호스트 번호 = 3
2. 도메인명과 IP 주소를 구분하여 사용하는 이유
사람의 관점
- 도메인명은 기억하기 쉬움
- IP 주소는 기억하기 어려움
- 도메인명을 사용하는 것이 좋음
기계의 관점
- 도메인명은 길이가 정해져 있지 않고 차지하는 용량이 큼
- IP 주소는 길이가 정해져 있고 차지하는 용량도 작음
- IP 주소를 사용하는 것이 좋음
결론
사람은 도메인명, 기계는 IP 주소를 사용하는 것이 좋다 -> DNS
3. Socket 라이브러리가 IP 주소를 찾는 기능을 제공한다
- DNS 클라이언트 = DNS 리졸버 혹은 리졸버
- DNS를 통해 IP 주소를 조회하는 것은 name resolution 이라고 함
- 리졸버는 Socket 라이브러리 기능 중 하나
- 리졸버는 캘리포니아대학교의 버클리 캠퍼스에서 만든 C 언어용 라이브러리
- 현재는 다른 언어 기반의 Socket 라이브러리도 사용되는 중
4. 리졸버를 이용하여 DNS 서버를 조회한다
- 리졸버의 프로그램명과 웹 서버의 이름으로 리졸버를 호출
- DNS 서버에서 응답이 돌아오면 리졸버는 리졸버를 호출할 때 지정한 브라우저의 메모리 영역에 IP 주소를 저장
- 이를 바탕으로 HTTP 메시지 송신
5. 리졸버 내부의 작동
- 애플리케이션에서 리졸버에 IP 주소 의뢰
- 리졸버로 제어권이 넘어가고 애플리케이션 잠시 동작 중단
- 리졸버는 DNS에 보낼 메시지를 생성하고 OS의
프로토콜 스택
호출 - LAN 어댑터를 통해 메시지가 DNS 서버로 송신
- 응답으로 받은 IP 주소를 브라우저의 메모리 영역에 저장하고 애플리케이션 다시 실행
DNS 서버에 메시지를 보내기 위해서는 DNS 서버의 IP 주소 또한 필요한데, 이는 OS 설치시에 이미 지정되어 있다. 물론 수동으로 설정하는 것도 가능하다.
728x90'네트워크' 카테고리의 다른 글
06. 서버에 접속한다 (0) 2021.10.03 05. 소켓을 작성한다 (0) 2021.09.28 04. 프로토콜 스택에 메시지 송신을 의뢰한다 (0) 2021.09.27 03. 전 세계의 DNS 서버가 연대한다 (0) 2021.09.25 01. 리퀘스트 메시지를 작성한다 (0) 2021.09.25 댓글