티스토리 뷰

과정

  1. 웹 브라우저에서 URL 해독 및 HTTP 생성
  2. OS를 통해 메시지 송신

이 때 OS에는 수신처의 IP주소가 필요하여 도메인을 통해 IP주소를 조사하여야 한다.

도메인 주소란?

네트워크 상에서 컴퓨터를 식별하는 호스트명을 가리킨다

IP 주소란?

서브넷이란?

작은 네트워크에 라우터를 연결한 형태, 허브에 몇대의 pc가 접속된 것과 같다

IP 주소란?

라우터를 통해 연결된 서브넷에 IP주소를 할당한다

ex )
211.116.83.112/24

넷마스크
/뒤에 숫자를 의미하며 해당 수를 8비트의 수로 바꾸었을 때 1인분이 네트워크 번호가 된다.
네트워크 번호
넷마스크가 1인부분
호스트번호
넷마스크가 0인부분
호스트번호가 0인경우 서브넷 자체를 나타낸다.
호스트번호가 255인경우 브로드캐스트를 의미한다.
브로드 캐스트는 서브넷의 기기전체에 패킷을 보내는것을 의미한다.

IP 주소 = 네트워크 번호 + 호스트번호

도메인명과 IP주소를 구분하는 이유

  • 도메인명의 길이가 결정되어 있지 않아서
  • 길이가 결정되지 않은 데이터는 복잡하여 효율성이 떨어진다.

DNS 서버 조회하는 법

소켓 라이브러리

OS에 포함되어있는 네트워크 기능을 APP에서 호출하기 위한 장치

리졸버

소켓 라이브러리에 들어있는 프로그램, 리졸버를 이용하여 IP주소를 조사한다

IP주소를 조사하는 것은 네임 리졸루션이라고 한다

<메모리 영역> = gethosybyname(jfmam.tistory.com)

리졸버에서 제공하는 gethostbyname 기능을 이용하여 DNS에 조회메시지를 요청한다.

메모리 영역에는 IP주소 저장

DNS서버의 기본동작

Request메시지 구성

  • 이름
  • 클래스
  • 타입

이름

배송목적지

클래스

인터넷이외의 네트워크를 식별하기 위해 만들었으나 현재는 인터넷만 존재하여 항상 IN이다.

타입

이름에 어떤 타입의 정보가 지원되는지를 나타낸다.

A일 경우 ip, IN일 경우 인터넷을 의미한다.

예시

jfmam.tistory.com
  1. 가장가까운 DNS에 존재하는 도메인을 찾는다.
    1. jfmam은 서브도메인으로 tistory의 DNS에서 검색한다.
    2. tistory는 com의 DNS에서 검색한다
    3. com은 루트도메인에서 검색한다
  2. 만약 캐시로 저장된 정보가 있으면 하위 DNS를 탐색하지 않고 바로 반환 받는다.

데이터 송,수신

  1. OS의 프로토콜 스택에 메세지 송신 요청
  2. 소켓 생성
  3. 서버측에 소켓에 파이프를 연결한다.
  4. 데이터를 송 수신한다
  5. 파이프를 분리하고 소켓을 말소한다.