Post

[네트워크] 응용 계층(Application) - DNS와 쿼리 프로세스

DNS (Domain Name System)

  • 계층적인 도메인 구조와 분산된 데이터베이스를 이용한 시스템으로 FQDN(Fully Qualified Domain Name)을 IP로 바꿔주는 시스템
    • www.example.com에서 www를 호스트 또는 서브도메인이라고 하고 example.com은 도메인 이름이다.
  • 리졸버와 네임 서버로 구성
    • 리졸버(Resolver): DNS 관련 요청을 네임서버로 전달하고 해당 응답값을 클라이언트에게 전달
    • 네임 서버(Name Server): 도메인을 IP로 변환
      • 네임 서버의 기능
        1. 도메인 이름 해석: 네임 서버는 도메인 이름을 IP 주소로 변환한다. 사용자가 도메인 이름을 웹 브라우저에 입력할 때, 네임 서버는 해당 도메인의 IP 주소를 찾아서 웹 브라우저에게 전달한다.
        2. DNS 레코드 관리: 네임 서버는 다양한 유형의 DNS 레코드를 관리한다. 이 레코드에는 A 레코드(IP 주소), MX 레코드(메일 서버), CNAME 레코드(캐논네임 또는 별칭), NS 레코드(네임 서버 정보) 등이 포함된다.
        3. 네트워크 요청 응답: 네임 서버는 인터넷을 통해 수신되는 DNS 조회 요청에 대응하여, 저장된 정보를 바탕으로 적절한 응답을 제공한다.

www.naver.com을 주소창에 쳤을 때 발생하는 일

  1. 리다이렉트가 있는지 확인 후 있는 경우 리다이렉트
  2. 캐싱
    • 해당 요청이 이미 캐싱이 되어있는지 확인하고 되어있다면 캐싱된 값을 가져온다.
    • 브라우저 캐시와 공유 캐시가 있다.
      • 브라우저 캐시: 사용자의 컴퓨터에 있는 웹 브라우저에 의해 관리되는 캐시로 JS, css, img 등을 쿠키, 로컬 스토리지 등에 저장
      • 공유 캐시: 특정 사용자의 브라우저가 아닌, 여러 사용자가 공유할 수 있는 위치에 있는 캐시로, CDN(Content Delivery Network) 서버, 프록시 서버, 게이트웨이 등과 같은 네트워크 노드에 구성
  3. DNS (+DNS 캐싱)
  4. IP 라우팅, ARP(Address Resolution Protocol)
    • IP 라우팅: 네트워크 상의 패킷이 출발지에서 목적지까지 이동할 수 있도록 경로를 결정
    • ARP: IP 주소를 MAC 주소로 변환하는 데 사용되며, 주로 로컬 네트워크에서의 주소 매핑을 담당
  5. TCP 연결
  6. 컨텐츠 요청 후 다운로드
    • 처음부터 다운로드가 시작되는 순간까지의 시간을 TTFB(Time To First Byte)라고 한다.
  7. 브라우저 렌더링

DNS 쿼리 프로세스

  • Root domain → Top Level Domain → Second Level Domain → Third Level Domain
  • 오른쪽부터 역순으로 완벽한 주소를 찾아 IP주소를 매핑한다.
  1. Root Domain (.):
    • DNS 쿼리는 루트 레벨에서 시작한다.
    • 루트 DNS 서버는 전 세계적으로 분산되어 있으며, 최상위 도메인(TLD) 서버의 주소를 알려준다.
  2. Top-Level Domain (TLD) 서버:
    • TLD 서버는 .com, .net, .org 등과 같은 최상위 도메인을 관리한다.
    • 예를 들어, 사용자가 www.example.com을 요청하는 경우, 루트 서버는 .com 도메인을 관리하는 TLD 서버의 주소를 제공한다.
  3. Second-Level Domain 서버:
    • example.com과 같은 두 번째 레벨의 도메인을 관리한다.
    • TLD 서버는 이 도메인에 대한 정보를 가지고 있는 네임 서버의 주소를 제공합니다.
  4. Third-Level Domain (Subdomain) 서버:
    • 종종 필요에 따라, 세 번째 레벨 도메인 또는 서브도메인(예: www.example.com에서 www)에 대한 정보를 관리하는 서버가 있을 수 있다.
    • 대부분의 경우, 서브도메인은 두 번째 레벨 도메인과 같은 네임 서버에서 관리된다.
This post is licensed under CC BY 4.0 by the author.