[Network-면접 질문] www.google.com에 요청을 보내기 위한 과정

Jewon's report·2022년 6월 29일
0

네트워크

목록 보기
1/1

📌 과정 요약

1. 내 Laptop의 IP 주소를 얻는다.
2. First hop router의 IP 주소를 얻는다.
3. DNS 서버의 이름과 주소를 얻는다.
4. First hop router의 MAC 주소를 얻는다.
5. Google.com의 IP 주소를 얻기 위해, DNS요청을 DNS서버로 보낸다.
6. google.com의 IP 주소와 TCP 연결을 한다.
7. google.com의 IP 주소로 HTTP요청을 보낸다.
8. google.com과의 TCP 연결을 해제한다.

📌 세부 설명

1~3. DHCP (Dynamic Host Configuration Protocol)

가장 위에서 설명한 1에서 3의 과정을 수행하는 것이 DHCP의 역할이다.

DHCP란 동적으로 호스트의 IP 주소를 할당하는 프로토콜이다.

✏️ 왜 IP 주소를 할당받아야 하는가?

우리가 처음 Laptop에 LAN선을 연결하였을때 우리는 고유한 IP 주소를 가져야 한다.

IP 주소를 고정으로 설정 할 수 있지만, 고정 IP의 경우 실수로 다른 컴퓨터와 동일한 IP 를 할당할 경우 충돌이 발생할 수 있고, 현재 전원이 꺼져있는 컴퓨터에도 고정 IP가 할당되기 때문에 사용 가능한 IP 주소가 부족한 등 여러 단점이 있어 현재로서는 사용하지 않는다.

그래서 IP 주소가 필요한 컴퓨터가 IP 주소를 DHCP 서버에 요청하고, 그때마다 DHCP 서버에서 충돌하지 않는 고유한 IP 주소를 동적으로 부여한다.

✏️ DHCP 서버에서 제공하는 내용

내 컴퓨터는 초기에 DHCP 서버의 위치를 모르기 때문에, DHCP 요청을 UDP를 이용하여 모두에게 Broadcast한다.

DHCP 서버에서는 요청을 받으면 해당 컴퓨터에 IP 주소에 대한 정보를 전달하고, 동시에 DNS서버의 이름과 IP 주소, 그리고 내 컴퓨터에서 접근하는 가장 첫번째 라우터(First hop router)의 IP 주소에 대한 정보를 전달한다.

4. ARP (Address Resolution Protocol)

4번째 역할을 수행하는 것이 ARP이다.

✏️ ARP 란?

앞서 DHCP를 이용하여 First hop router의 IP 주소를 얻었다.

이제 우리는 Google.com의 IP주소를 얻기 위해 DNS 서버로 요청을 보내야한다.

하지만, IP 주소만 알고는 DNS서버로 요청을 보낼 수 없다.

그래서 우리는 ARP를 이용한다.

✏️ IP Address --> MAC Address

ARP를 이용해 First hop router의 IP를 목적지로 하고, MAC주소를 FFFFFFFFFFFF로 Broadcast하면, First hop router에서는 자신의 MAC주소를 응답한다.

이를 통해 내 컴퓨터에서는 First hop router의 MAC주소를 얻을 수 있다.

5. DNS (Domain Name System)

5번째 과정에 나오는 DNS에 대한 설명이다.

✏️ DNS 란?

DNS란 구글, 네이버, 다음 등의 도메인 주소를 IP주소로 바꾸어주는 역할을 한다.

통신을 위해서는 google.com, naver.com 과 같은 도메인 이름이 아닌, IP주소가 필요하기 때문이다.

그래서 사용자가 google.com의 IP 주소를 요청하면,
(여기서 요청한 메시지는 여러 라우터들을 거쳐 DNS 서버로 도달한다. 라우팅과 관련된 이야기는 별도의 포스트로 설명할 예정)
google.com의 IP 주소를 전달한다.

6. TCP connection

TCP는 기본적으로 Three way handshake를 하여 연결을 수행한다.

우선 내 컴퓨터에서 google.com의 IP 주소로 TCP SYN 요청을 보낸다.

google.com에서 요청을 받으면, TCP SYNACK 메시지를 내 컴퓨터로 보낸다.

내가 SYNACK를 받으면 내 컴퓨터에서는 google.com으로 ACK 메시지를 보내고 연결이 ESTABLISHED 된다.

7. HTTP

HTTP 요청은 네트워크의 5계층구조에서 5번째 Layer인 Application layer에서의 전송 프로토콜이다.

HTTP 요청을 TCP로 감싸 보내면, google.com에서는 도메인의 html 페이지를 HTTP로 감싸 보내준다.

profile
아직은 '표류'중인 대학생입니다.

0개의 댓글