본문 바로가기
Computer Science/Computer Network

[Network] 브라우저에 URL 을 입력하면 일어나는 일

by domo7304 2022. 10. 4.

"브라우저에 URL 을 입력하면 일어나는 일" 이라는 주제에 대해서는 크게

  1. OSI 7 계층과 관련하여, 각 layer 에서의 장비들이 수행하게 되는 일을 순차적으로
  2. 입력한 URL 을 어떻게 찾아서 접속을 하는지, 그 일련의 과정에서 어떤 일들이 일어나는지

두 가지 방향의 대답이 있을 수 있을 것 같습니다. 해당 글에서는 2번에 조금 더 집중하여 작성해보았습니다.


www.google.com  이라는 url 에 접속하기 위해서는 google.com 이라는 도메인의 ip 주소를 알아야 하기 때문에 DNS 에 질의를 하게 됩니다. 하지만 직접 DNS 에 질의를 하기 전에 각 위치에서의 DNS 캐시를 먼저 확인하게 됩니다.

웹 브라우저 캐시, 운영체제 캐시, ISP (Internet Service Provider : SKT, KT, ...) 의 DNS 캐시를 확인합니다. 이러한 DNS 캐시에서 접속하고자 하는 도메인의 IP 주소를 찾았다면 해당 IP 주소를 통해 접속하게 됩니다.

하지만 위 과정에서 IP 주소를 찾지 못했다면, DNS 서버에 질의를 시작하게 됩니다. DNS 서버는 root DNS 서버, TLD (Top-level domain) 서버, Authoritative DNS 서버가 계층적 구조를 이루도록 구성되어 있으며, 이 계층구조에 그리 엄격하게 속하지는 않는 local DNS 서버가 root DNS 서버에 질의를 하게 됩니다.

각 ISP 들은 자신의 DNS 서버를 가지며, 사용자가 ISP 에 접속하는 경우 ISP 는 자신의 local DNS 서버의 IP 주소를 제공합니다.

주거용 ISP 를 사용중일 경우, 일반적으로 local DNS 서버는 몇 개 이하의 멀지 않은 라우터에 있습니다. 사용자가 DNS 쿼리를 생성하면, 그것은 local DNS 서버에 전달되고, local DNS 서버가 DNS 서버 계층에 질의를 대신 해주게 됩니다.

- Computer Networking - A Top Down Approach, 7th

 

  1. 사용자의 DNS 쿼리를 받은 local DNS 서버가 www.google.com 을 root DNS 서버에 질의하게 됩니다. root DNS 서버는 *.com 이라는 도메인을 담당하는 TLD 서버의 IP 주소 목록을 local DNS 서버에게 반환합니다.
  2. local DNS 서버는 다시 *.com 을 다루는 TLD 서버에 질의를 합니다. TLD 서버는 google.com 이라는 도메인을 담당하는 authoritative DNS 서버의 IP 주소를 반환합니다.
  3. 최종적으로 local DNS 서버는 authoritative DNS 서버로부터 www.gooogle.com 의 IP 주소를 얻게 됩니다.

그림 1, 그림 2

그림 1 은 recursive 쿼리와 iterative 쿼리가 함께 사용된 모습입니다. 이 때 cse.nyu.edu 에서 dns.nyu.edu 로의 쿼리를 보면 dns.nyu.edu 가 대신 IP 주소를 가져오도록 요청하기 때문에 해당 쿼리가 recursive 쿼리입니다. 나머지 세 개의 쿼리의 모든 응답들은 dns.nyu.edu 로 직접 반환되기 때문에 iterative 쿼리입니다.

그림 2 는 모든 쿼리들이 recursive 하게 이루어진 DNS 쿼리 체인을 보여줍니다.

일반적으로 requesting host 에서 local DNS server 로의 쿼리는 recursive 쿼리이며, 나머지 다른 쿼리들은 iterative 쿼리인 그림 1 의 패턴을 많이 따릅니다.

- Computer Networking - A Top Down Approach, 7th

 

그렇게 IP 주소를 얻고 나면, PC 는 HTTP 통신을 위해 해당 IP 주소로 TCP 연결을 시도합니다. TCP 연결이 완료되면, 해당 서버와 HTTP request, response 를 주고받게 됩니다.


여기까지가 브라우저의 주소창에 URL 을 입력했을 때, 어떻게 IP 주소를 받아와 접속하게 되는지에 대한 내용입니다. 하지만 많은 웹사이트들에서 직접 서버로 요청을 받지 않고 CDN 을 이용하거나, 표준 DNS 를 사용하기보다는 GSLB 등을 사용하고 있습니다.

  1. [Network] 브라우저에 URL 을 입력하면 일어나는 일
  2. [Network] CDN 이란? CDN 을 사용하는 이유
  3. [Network] GSLB 란? GSLB 를 사용하는 이유

 

댓글