본문 바로가기
컴퓨터공학/네트워크

[네트워크] 주소창에 URL을 입력 시 일어나는 일

by 독서왕뼝아리 2023. 4. 21.

 

 

요약
  1. 주소창에 도메인을 입력한다.
  2. 브라우저가 캐시에서 DNS 기록이 있는지 확인한다.
  3. 없다면 ISP의 DNS 서버가 도메인을 호스팅하는 IP주소를 찾기 위해 DNS 쿼리를 날린다.
  4. 브라우저가 해당 서버와 TCP 연결을 한다.
  5. 브라우저가 웹서버에 HTTP 요청을 보낸다.
  6. 서버는 요청을 처리하고 응답을 보낸다.
  7. 서버는 HTTP 응답을 보낸다.
  8. 브라우저는 HTML 콘텐츠를 가시화한다.

 


 

 

DNS(Domain Name System)은 URL의 이름이고 특정 IP 주소와 연결되어 있다. 모든 URL은 유일한 IP 주소와 매치된다. IP주소는 요청하는 웹사이트의 서버 호스트 컴퓨터에 종속된다. 예를 들어 www.google.com URL이 20.85.227.104 IP주소를 가지는 것처럼.

 

 

#2

DNS 기록을 찾기 위해 4가지 캐시를 확인한다.

- 첫 번째, 브라우저 캐시를 확인한다.

- 두 번째, OS 캐시를 확인한다. 브라우저가 gethostname 같은 시스템 함수를 호출한다.

- 세 번째, 라우터 캐시를 확인한다. 

- 네 번째, ISP 캐시를 확인한다. 여기까지 캐시가 존재하지 않는다면 ISP에서 DNS를 찾을 것이다.

 

왜 이렇게 많은 레벨에 캐시를 저장하냐면, 캐시는 네트워크 트래픽을 조절하고, 데이터 전송 시간을 개선하는 데 핵심 역할을 하기 때문이다.

 

#3

DNS 쿼리의 목적은 여러 DNS 서버 중에서 유일 상응하는 IP 주소를 찾는 것이다. IP 주소를 찾거나 찾을 수 없다는 에러를 반환할 때까지 재귀적으로 호출된다. 웹 사이트 도메인 이름의 도메인 아키텍처를 기반으로 DNS 서치가 이뤄진다.

 

도메인 아키텍처는 다음과 같다.

많은 도메인이 third-level 도메인을 사용한다. 각각 레벨은 DNS 룩업 프로세스를 필요로 하는 고유 서버 이름을 포함한다. 'maps.google.com'으로 예를 들면, DNS Recursor는 루트 서버 이름과 연결된다. 그 다음 '.com' 도메인 서버로 리다이렉트 시킨다. 또, '.com' 서버는 'google.com' 서버로 리다이렉트 시키고, 'google.com'은 'maps.google.com'과 매칭되는 IP를 찾아 DNS Recursor에 반환한다.

 

이러한 요청은 작은 데이터(요청 내용과 목적 IP 주소) 패킷을 사용하도록 한다. 이 패킷은 올바른 DNS 서버에 도달하기 전에 여러 네트워크를 이동한다. 패킷은 목적지에 도달하는 가장 빠른 찾는 방법을 알아내기 위해 라우팅 테이블을 사용한다. 만약 가는 도중 패킷이 손실되었다면, 요청한 URL의 DNS를 찾지 못했다는 것이다.

 

#4

TCP 3 way handshakes는 따로 다루겠다.

 

 

 

+) URL 구조