TIL. 141 [네트워크] 웹사이트 접속 과정에 대하여 (네트워크 과목 총 정리) | 주소창에 www.google.com을 입력하면 생기는 일

조윤식·2022년 9월 18일
0

웹사이트 접속 과정

한 대학생이 캠퍼스에서 노트북으로 구글에 접속한다고 하자. 어떤 과정을 통해 사용자는 구글에 접속할 수 있을까?
이 게시글은 그동안 공부한 내용들을 총 정리한다고 볼 수 있다. 자세한 내용이 궁금하다면 참고 링크를 참고하자.

1. 목적지 IP 주소 확인

사용자가 웹 브라우저의 주소창에 www.google.com을 입력하면, 해당 목적지의 IP주소를 알아야 한다. 브라우저는 캐싱된 DNS 기록이 있는지 체크하고, 만약 캐시가 있다면 캐시의 정보를 이용하고 없다면 DNS 서버에 정보를 요청해야 한다. 

2. DHCP

클라이언트는 DHCP Request를 UDP 패킷에 담고, UDP 패킷을 IP 데이터그램에 담고, IP 데이터그램을 프레임에 담는다. 이 프레임은 LAN에서 브로드캐스트 되어 DHCP Server에 도달한다.  

DHCP Server는 DHCP Request를 받고 DHCP ACK를 보낸다. DHCP ACK는 클라이언트의 IP주소, 1st-hop 라우터(가장 가까운 라우터)의 IP주소, DNS Serever의 IP주소를 포함한다. 따라서 클라이언트는 가장 가까운 라우터의 IP 주소 및 DNS 서버의 IP 주소를 알게 되었다.

3. ARP

하지만 클라이언트는 아직 1st-hop 라우터의 MAC 주소를 알지 못한다. 클라이언트는 ARP query를 브로드캐스트 하고 1st-hop 라우터는 ARP reply를 통해 자신의 MAC 주소를 전달한다.   

4. DNS

드디어 클라이언트는 DNS 서버에 DNS query를 보낼 수 있게 되었다. 클라이언트는 DNS query를 IP 데이터그램에 담아 1st-hop 라우터에 보낸다. 1st-hop 라우터는 RIP, OSPF, IS-IS, BGP 등의 프로토콜로 생성된 Routing Table과 Forwarding Table을 참고하여 DNS query를 DNS 서버에 전송한다. 

DNS query를 받은 DNS 서버는 www.google.com의 IP주소를 클라이언트로 전송한다. 드디어 클라이언트는 구글의 IP주소를 알게 되었다!

5. HTTP

클라이언트는 TCP 소켓을 열고 구글 서버와 3-way handshake를 통해 TCP connection을 설립한다. 이후 TCP 소켓을 통해 HTTP Request를 구글 서버에 보내고, 구글 서버는 HTTP Reply를 클라이언트에 보낸다. 드디어 사용자는 구글의 첫 화면을 모니터에서 보게 된다!

출처: https://code-lab1.tistory.com/154?category=1213004 [코드 연구소:티스토리]

profile
Slow and steady wins the race

0개의 댓글