[CS 기초] 네트워크

Sohyeon Bak·2022년 6월 6일
0

개발 책

목록 보기
2/18
post-thumbnail

'성공과 실패를 결정하는 1%의 네트워크 원리' 책을 바탕으로 정리한 내용입니다.

02. 웹 서버의 IP주소를 DNS서버에 조회한다

IP주소의 기본

브라우저는 URL을 읽고 HTTP 프로토콜 메세지를 만들지만 송출 기능은 없다.
송출 기능을 하는 OS에 의뢰하면 URL의 도메인이 아닌 IP주소를 조사해 IP주소에 데이터를 송신한다.

TCP/IP 개념

서브넷은 작은 네트워크로 허브에 여러대의 컴퓨터가 연결 된 것으로 서브넷이 한 개의 단위가 되어 라우터로 연결해 전체의 네트워크를 생성한다.
네트워크 주소는 서브넷 단위가 네트워크 번호가 되고, 서브넷 안의 컴퓨터 한 대가 호스트 번호가 되어 두개를 함께 IP주소라고 한다.

  1. 엑세스 할 대상은 IP주소에 따라 운송된다.
  2. 클라이언트에서 메세지를 보내면 서브넷 안에서 허브가 운반하고 가장 가까운 라우터에 도착한다.
  3. 라우터는 메세지를 보낸 클라이언트를 확인해 가장 가까운 라우터를 판단하고 보내면 다시 서브넷 허브가 가장 가까운 곳에 메세지를 보낸다.

IP주소 형태

32비트의 디지털데이터 를 8비트씩 점으로 구분해 10진수로 표기하는 것이다.
하지만 이것만으로 어느 부분이 네트워크 번호인지 호스트 번호인지 알 수 없다.

  • 넷마스크
    : 네트워크 구축 시 사용자가 직접 내역을 결정해 이 내역을 나타내는 정보에 따라 IP주소를 붙여 사용함

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

IP를 전달하기 위해 인터넷은 다수의 규칙과 연결을 거친다.
IP주소는 32비트, 4바이트에 해당하는 개수 뿐이지만 도메인 명은 최대 255바이트까지 존재하기 때문에 네트워크 속도 문제가 발생할 수 있다.
효율을 위해 IP주소를 사용해 데이터를 송신한다.

DNS(Domain Name System)

리졸버

DNS서버에 통신을 하고 동작한다.

  • socket 라이브러리
    : OS에 포함된 네트워크 기능을 어플리케이션에서 호출하기 위한 라이브러리로써 리졸버는 프로그램 중 하나이다.

브라우저를 만들때 리졸버를 사용하는 코드를 작성해 놓으면 DNS를 사요할 수 있다.
리졸버를 호출 시 리졸버는 DNS서버에 요청을 보내고 응답을 받으면 응답 메세지에 IP주소가 있고, 리졸버는 이것을 추출해 브라우저에 지정한 메모리를 저장, 코드가 실행되면 IP주소를 조회하고 끝난다.

  • 리졸버 내부작동
    → 브라우저가 리졸버를 호출하면 제어가 리졸버 내부로 넘어감
    → DNS서버 문의를 위한 메세지 만듬(HTTP 리퀘스트 메세지와 비슷)
    → DNS에 메세지 보냄 (리졸버가 스스로 하는 것이 아닌 OS 내부에 포함된 프로토콜 스택을 호출)
    → DNS는 메세지에 쓰인 것을 보고 조사
    → DNS에 등록되어 있으면 응답메세지를 클라이언트에게 보냄
    → 프로토콜 스택을 경유해 리졸버에 건내져서 내용 해독 후 IP를 추출해 IP주소를 보내줌

DNS서버 또한 해당 IP주소를 알아야 함

네임 리졸루션

DNS원리로 IP주소를 조사하는 것

profile
정리하고 기억하는 곳

0개의 댓글