"브라우저에 URL 을 입력하면 일어나는 일" 이라는 주제에 대해서는 크게
- OSI 7 계층과 관련하여, 각 layer 에서의 장비들이 수행하게 되는 일을 순차적으로
- 입력한 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
- 사용자의 DNS 쿼리를 받은 local DNS 서버가 www.google.com 을 root DNS 서버에 질의하게 됩니다. root DNS 서버는 *.com 이라는 도메인을 담당하는 TLD 서버의 IP 주소 목록을 local DNS 서버에게 반환합니다.
- local DNS 서버는 다시 *.com 을 다루는 TLD 서버에 질의를 합니다. TLD 서버는 google.com 이라는 도메인을 담당하는 authoritative DNS 서버의 IP 주소를 반환합니다.
- 최종적으로 local DNS 서버는 authoritative DNS 서버로부터 www.gooogle.com 의 IP 주소를 얻게 됩니다.
그림 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 등을 사용하고 있습니다.
- [Network] 브라우저에 URL 을 입력하면 일어나는 일
- [Network] CDN 이란? CDN 을 사용하는 이유
- [Network] GSLB 란? GSLB 를 사용하는 이유
'Computer Science > Computer Network' 카테고리의 다른 글
[Network] MAC 과 Digital Signatures (0) | 2022.10.12 |
---|---|
[Network] HTTP vs HTTPS, SSL 의 통신과정 (0) | 2022.10.11 |
[Network] CDN 이란? CDN 을 사용하는 이유 (0) | 2022.10.05 |
[Network] GSLB 란? GSLB 를 사용하는 이유 (0) | 2022.10.05 |
[Network] TCP 3-way handshake & 4-way handshake (0) | 2022.09.19 |
댓글