[네트워크] 응용 계층(Application) - DNS와 쿼리 프로세스
DNS (Domain Name System)
- 계층적인 도메인 구조와 분산된 데이터베이스를 이용한 시스템으로 FQDN(Fully Qualified Domain Name)을 IP로 바꿔주는 시스템
www.example.com
에서www
를 호스트 또는 서브도메인이라고 하고example.com
은 도메인 이름이다.
- 리졸버와 네임 서버로 구성
- 리졸버(Resolver): DNS 관련 요청을 네임서버로 전달하고 해당 응답값을 클라이언트에게 전달
- 네임 서버(Name Server): 도메인을 IP로 변환
- 네임 서버의 기능
- 도메인 이름 해석: 네임 서버는 도메인 이름을 IP 주소로 변환한다. 사용자가 도메인 이름을 웹 브라우저에 입력할 때, 네임 서버는 해당 도메인의 IP 주소를 찾아서 웹 브라우저에게 전달한다.
- DNS 레코드 관리: 네임 서버는 다양한 유형의 DNS 레코드를 관리한다. 이 레코드에는 A 레코드(IP 주소), MX 레코드(메일 서버), CNAME 레코드(캐논네임 또는 별칭), NS 레코드(네임 서버 정보) 등이 포함된다.
- 네트워크 요청 응답: 네임 서버는 인터넷을 통해 수신되는 DNS 조회 요청에 대응하여, 저장된 정보를 바탕으로 적절한 응답을 제공한다.
- 네임 서버의 기능
www.naver.com을 주소창에 쳤을 때 발생하는 일
- 리다이렉트가 있는지 확인 후 있는 경우 리다이렉트
- 캐싱
- 해당 요청이 이미 캐싱이 되어있는지 확인하고 되어있다면 캐싱된 값을 가져온다.
- 브라우저 캐시와 공유 캐시가 있다.
- 브라우저 캐시: 사용자의 컴퓨터에 있는 웹 브라우저에 의해 관리되는 캐시로 JS, css, img 등을 쿠키, 로컬 스토리지 등에 저장
- 공유 캐시: 특정 사용자의 브라우저가 아닌, 여러 사용자가 공유할 수 있는 위치에 있는 캐시로, CDN(Content Delivery Network) 서버, 프록시 서버, 게이트웨이 등과 같은 네트워크 노드에 구성
- DNS (+DNS 캐싱)
- IP 라우팅, ARP(Address Resolution Protocol)
- IP 라우팅: 네트워크 상의 패킷이 출발지에서 목적지까지 이동할 수 있도록 경로를 결정
- ARP: IP 주소를 MAC 주소로 변환하는 데 사용되며, 주로 로컬 네트워크에서의 주소 매핑을 담당
- TCP 연결
- 컨텐츠 요청 후 다운로드
- 처음부터 다운로드가 시작되는 순간까지의 시간을 TTFB(Time To First Byte)라고 한다.
- 브라우저 렌더링
DNS 쿼리 프로세스
- Root domain → Top Level Domain → Second Level Domain → Third Level Domain
- 오른쪽부터 역순으로 완벽한 주소를 찾아 IP주소를 매핑한다.
- Root Domain (.):
- DNS 쿼리는 루트 레벨에서 시작한다.
- 루트 DNS 서버는 전 세계적으로 분산되어 있으며, 최상위 도메인(TLD) 서버의 주소를 알려준다.
- Top-Level Domain (TLD) 서버:
- TLD 서버는
.com
,.net
,.org
등과 같은 최상위 도메인을 관리한다. - 예를 들어, 사용자가
www.example.com
을 요청하는 경우, 루트 서버는.com
도메인을 관리하는 TLD 서버의 주소를 제공한다.
- TLD 서버는
- Second-Level Domain 서버:
example.com
과 같은 두 번째 레벨의 도메인을 관리한다.- TLD 서버는 이 도메인에 대한 정보를 가지고 있는 네임 서버의 주소를 제공합니다.
- Third-Level Domain (Subdomain) 서버:
- 종종 필요에 따라, 세 번째 레벨 도메인 또는 서브도메인(예:
www.example.com
에서www
)에 대한 정보를 관리하는 서버가 있을 수 있다. - 대부분의 경우, 서브도메인은 두 번째 레벨 도메인과 같은 네임 서버에서 관리된다.
- 종종 필요에 따라, 세 번째 레벨 도메인 또는 서브도메인(예:
This post is licensed under CC BY 4.0 by the author.