도메인 네임을 입력했을 때 생기는 과정 그리고 DNS

이강용·2024년 7월 17일
0

CS

목록 보기
77/109

www.naver.com을 입력했을 때 발생하는 과정 그리고 DNS

  • 리다이렉트, 캐싱, DNS, IP 라우팅 & ARP, TCP 연결 구축을 거쳐 요청, 응답이 일어나는 TTFB(Time to First Byte)가 시작되고 이 후 컨텐츠를 다운받아 브라우저 렌더링 과정을 거쳐 네이버라는 화면이 나타나게 됨

리다이렉트

  • 웹 서버가 클라이언트(웹 브라우저)에게 요청한 URL 대신 다른 URL로 이동하도록 지시하는 방법
    • HTTP 응답 상태 코드와 함께 사용되며 사용자가 원래 요청한 리소스 대신 다른 리소스로 안내

캐싱

  • 캐싱은 요청된 값의 결과를 저장하고 동일한 요청이 다시 들어올 때 저장된 값을 반환하는 기술
    • 이를 통해 성능을 향상시키고 서버 부하를 줄일 수 있음
  • 캐싱은 브라우저 캐시공유 캐시로 나눌 수 있음
  1. 브라우저 캐시(private cache)
  • 사용자의 웹 브라우저가 요청한 리소스(예: HTML, CSS, JavaScript, 이미지 등)를 저장
    • 동일한 리소스를 재요청할 때, 서버에 다시 요청하지 않고 로컬에 저장된 캐시를 사용
  1. 공유 캐시(Proxy cache)
  • 프록시 서버나 CDN(Content Delivery Network) 등 중간 서버가 요청된 리소스를 저장
    • 여러 사용자가 동일한 리소스를 요청할 때, 원 서버에 요청을 보내지 않고 프록시 서버에서 직접 응답

DNS(Domain Name System)

  • 계층적인 도메인 구조와 분산된 DB를 이용한 시스템으로 FQDN(Fully Qualified Domain Name)을 인터넷 프로토콜인 IP로 바꿔주는 시스템
  • DNS는 도메인 이름을 IP 주소로 변환하는 네임서버(Name Server)와 클라리언트의 DNS 쿼리를 네임서버로 전달하고 응답을 클라이언트에게 전달하는 리졸버(Resolver)로 구성되어 있음

예를들어, www.naver.com에 DNS 쿼리가 오면 오른쪽부터 역순으로
[Root DNS] → [.com DNS] → [.naver DNS] → [.www DNS] 과정을 거쳐 완벽한 주소를 찾아 IP 주소를 매핑

DNS 캐싱

  • 미리 해당 도메인 이름을 요청했다면 로컬 PC에 자동적으로 저장

브라우저 캐싱

chrome://net-internals/#dns

IP 라우팅 & ARP(Address Resolution Protocol)

  • 네트워크 상 패킷이 출발지에서 목적지까지 가장 효율적인 경로를 통해 전달되도록 하는 과정

  • ARP는 IP 네트워크에서 IP 주소를 물리적 주소(MAC 주소)로 변환하는 프로토콜

    • 로컬 네트워크 내의 통신에서 IP 주소를 사용하여 데이터를 전송할 때, 실제로는 물리적 주소(MAC 주소)를 사용하여 통신

라우팅 프로토콜

  1. RIP(Routing Information Protocol)
  • 거리 벡터 라우팅 프로토콜 중 하나로 라우터가 네트워크 상의 경로를 설정하고 패킷을 전달하는 방법을 규정

동작 방식

  1. 거리 벡터 알고리즘 : RIP은 경로의 거리를 홉 수(hop count)로 측정

    • 홉 수는 패킷이 목적지까지 도달하기 위해 거쳐야 하는 라우터의 수
  2. 라우팅 업데이트 : 라우터는 일정한 간격으로 인접 라우터들에게 자신의 라우팅 테이블을 브로드캐스트함 (기본적으로 30초마다 업데이트가 이루어짐)

  3. 최대 홉 수 : RIP은 최대 15홉까지만 허용, 16홉이 되면 그 경로는 도달할 수 없는 것으로 간주

  4. 라우팅 루프 방지 : RIP은 라우팅 루프를 방지하기 위해 몇 가지 메커니즘을 사용

    • 스플릿 호라이즌(Split Horizon) : 특정 경로에 대한 정보를 그 경로로부터 들어온 인터페이스를 통해 다시 보내지 않음
    • 홀드다운 타이머(Holddown Timer) : 경로가 불안정해질 때 일정 시간 동안 그 경로를 사용하지 않음
  5. OSPF(Open Shortest Path First)

  • 링크 상태 라우팅 프로토콜로 대규모 네트워크에서 많이 사용됨

동작 방식

  1. 링크 상태 알고리즘 : OSPF는 링크 상태 정보를 사용하여 네트워크 맵을 생성하고 최단 경로를 계산함
    • 이는 다익스트라 알고리즘을 사용하여 수행
  2. 라우팅 업데이트 : 라우터는 링크 상태 광고(LSA, Link State Advertisement)를 통해 자신의 링크 상태 정보를 모든 인접 라우터에 전달
    • 모든 라우터는 이 정보를 수집하여 링크 상태 DB를 구성
  3. 영역(Area) : OSPF는 네트워크를 논리적으로 구분하여 관리
    • 각 영역은 라우팅 정보를 축소하여 네트워크의 복잡성을 줄이고 성능을 향상시킴
      • 가장 중심이 되는 영역은 백본 영역(Area 0)
  4. 상태 테이블 : OSPF는 세 가지 주요 테이블을 포함
    • 인접 테이블 : 인접한 라우터 목록을 포함
    • 링크 상태 DB(LSDB) : 전체 네트워크의 토폴로지 정보를 포함
    • 라우팅 테이블 : 최적 경로 정보를 포함

TCP 연결 구축

  • TCP 3-WAY Handshake은 클라이언트와 서버 간에 TCP 연결을 설정하기 위해 사용되는 세 단계의 프로세스
  • 이 과정은 신뢰성 있는 데이터 전송을 보장하기 위한 첫 단계

TCP 3-Way Handshake 과정

1.	SYN (Synchronize): 클라이언트가 서버에 연결 요청을 보냄 
    이 패킷은 SYN 플래그가 설정되어 있음
2.	SYN-ACK (Synchronize-Acknowledge): 서버가 클라이언트의 요청을 수락하고, 응답으로 SYN-ACK 패킷을 보냄 
    이 패킷은 SYN 플래그와 ACK 플래그가 모두 설정되어 있음
3.	ACK (Acknowledge): 클라이언트가 서버의 응답을 수신하고, 연결 설정이 완료되었음을 서버에 알리기 위해 ACK 패킷을 보냠 
    이 패킷은 ACK 플래그가 설정되어 있음

TCP 연결은 HTTP/2까지 일어남
HTTP/3은 TCP 연결이 아닌 QUIC 연결이 일어남

컨텐츠 다운로드

  • 사용자가 요청한 컨텐츠를 서버로부터 다운받음

브라우저 렌더링

  • 받은 데이터를 바탕으로 브라우저 엔진이 브라우저 렌더링 과정을 거쳐 화면을 만듦
profile
HW + SW = 1

0개의 댓글