Computer Science 기본 지식/컴퓨터 네트워크

[네트워크] Web Request를 통한 인터넷 연결 과정

로파이 2021. 1. 10. 19:18

Web Request를 할 때 일어나는 과정을 정리해보고 네트워크 과목에서 배운 내용을 복습하자.

출처:  wiki.ucalgary.ca/page/Courses/Computer_Science/CPSC_441.W2014/Chapter_5:_Link_Layer.html

 

한 학생이 학교 도서관에서 노트북을 꺼내 인터넷을 연결하고 구글 사이트를 접속하려고 한다.

이때 일어나는 모든 네트워크 상의 요청을 알아보자.

 

인터넷 연결 과정 (자신의 IP주소, 기본 게이트웨이, 서브넷 마스크, DNS 서버 주소 요청)

DHCP

1) 먼저 학교 네트워크를 통해 인터넷 접속을 위한 자신의 IP주소, 기본 게이트웨이, 서브넷 마스크, DNS 서버 주소를 알아야한다.

2) 최상위 계층부터 DHCP, UDP, IP, 802.3 Ethernet으로 캡슐화된 DHCP 쿼리가 생성된다.

3) src (IP address: 0.0.0.0, MAC address: laptop MAC 주소) / dst (IP address: 255.255.255.255, MAC address: FF-FF-FF-FF-FF-FF)로 설정된 패킷이

DHCP 서버를 찾기 위해 라우터를 통해 같은 LAN에 있는 모든 노드로 브로드 캐스트 된다.

4) 같은 LAN에 있던 DHCP 서버는 DHCP 쿼리를 수신한다.

5) DHCP 서버는 IP주소, 기본 게이트웨이, 서브넷 마스크, DNS 서버 주소 내용을 포함한 DHCP ACK 응답을 보낸다.

6) 응답 패킷은 다시 UDP, IP, Ethernet으로 캡슐화되고 스위치를 경유하며(switch learning) 클라이언트에 도착한다.

7) DHCP 클라이언트는 DHCP ACK 응답을 수신한다.

※ 더 자세히는 DHCP discover -> DHCP offer -> DHCP request -> DHCP ACK 순으로 일어난다.

 

첫 번째 라우터의 MAC 주소를 요청 (ARP)

8) HTTP 요청을 보내기 전 www.google.com이라는 hostname에 해당하는 IP 주소를 알아야 한다.

9) DNS 쿼리가 생성되고 UDP, IP, Ethernet 프로토콜로 캡슐화된다.

10a) 하지만 첫 번째 라우터의 MAC 주소를 모르기 때문에 목적지 MAC 주소를 FF-FF-FF-FF-FF-FF로 설정된 ARP 쿼리가 먼저 생성되고 브로드 캐스트 된다.

10b) 첫 번째 라우터로 부터 MAC 주소가 포함된 ARP 응답을 수신한다.

11) 이제 완전한 DNS 쿼리를 보낼 수 있게 되었다.

 

다른 네트워크에 있는 DNS 서버로의 DNS 쿼리 전송 과정

12) DNS 쿼리가 포함된 패킷이 첫번째 라우터로 전송된다.

13) DNS 쿼리는 학교 네트워크(첫 번째 라우터)에서 DNS 서버를 포함하고 있는 네트워크까지 각종 라우팅 알고리즘을 통해 Intra-AS, Inter-AS 간 전송이 이루어진다.

14) DNS 서버에서 역 캡슐화되고 www.google.com의 IP주소를 클라이언트에게 게 전송한다.  

※ DNS 쿼리는 Local DNS로부터 Root DNS -> com DNS -> google.com DNS 순서로 한 번씩 요청되고 마지막으로 google.com DNS 서버에서 www.google.com의 IP 주소를 Local DNS에게 알린다. 

 

웹 서버에 HTTP 연결 수립 요청

15) 클라이언트는 (dst IP address : 웹 서버 IP, MAC address: 첫 번째 라우터 MAC) TCP 소켓을 생성한다.

16) TCP segment에서 SYN 비트가 1인 패킷이 웹 서버로 전송된다.

17) 웹서버는 SYN 비트와 ACK 비트가 1인 패킷을 클라이언트에게 전송된다.

18) 클라이언트가 이에 대한 ACK 비트 가 1인 패킷을 전송하고 3-way handshaking을 통해 TCP 연결이 수립된다.

 

웹 서버에 HTTP 웹 문서 요청 과정

19) TCP 소켓을 통해 HTTP 요청을 한다.

20) HTTP 요청이 포함된 패킷이 웹 서버에 도착한다.

21) 웹 서버는 웹 문서가 포함된 HTTP 응답을 보낸다.

22) 클라이언트는 HTTP 응답을 수신한다.

23) 노트북에 해당 웹문서가 나타난다.