본문 바로가기
넓고 얕은 네트워크 지식

주소창에 google.co.kr을 치면 일어나는 일 1분 요약 정리

by 팡펑퐁 2023. 2. 13.
728x90

<엔터를 누르면?>

1. DNS 캐시 탐색

  • 브라우저에서 캐싱된 DNS 기록을 뒤져 www.google.co.kr의 IP 주소가 있는지 탐색한다.

브라우저가 캐싱된 DNS 기록을 찾는 과정

브라우저 내 캐시 확인

  • 브라우저는 일정 기간 유저가 방문한 사이트의 DNS 정보를 기록하고 있는데 이를 확인한다.

OS 캐시 확인

  • 브라우저 캐시에 없다면 운영체제에 systemcall을 요청해 운영체제 내에 기록되어 있는 DNS 정보를 확인한다.
  • systemall : 운영체제 수준에서 커널 영역을 사용자 모드의 프로그램이 사용할 수 있게 해 준다.

라우터 캐시 확인

  • 전송계층의 라우터에 들어있는 DNS 정보를 확인한다.

ISP 캐시

  • ISP는 DNS 서버를 구축하고 있어 이곳에서 DNS 정보를 찾는다. 없는 경우에는 캐시 탐색이 종료된다.
    • ISP가 제공하는 DNS 서버를 DNS recursor라고 한다. 

 

 

2. ISP의 DNS 서버에서 DNS query를 전송

  • DNS 캐시 탐색에서 DNS 정보를 찾지 못하면 DNS recursor에서 다른 DNS 서버에 DNS query를 보내 DNS 서버를 찾는다.
  • DNS query는 IP 주소를 찾을 때까지 여러 DNS 서버를 거친다.
  • IP 주소가 없거나, 주소 정보를 담고 있는 패킷이 유실되면 에러가 발생한다.

 

 

3. 브라우저와 서버의 TCP 연결

  • 브라우저가 서버의 IP 주소를 받게 되면 서버와 연결을 시도하는데 이때 TCP로 연결을 한다.
  • 일반적으로 웹사이트의 http 연결은 TCP로 연결한다.
  • 3-way handshake 과정을 거쳐 서버 간 신뢰할 수 있는 연결이 이루어진다.

 

 

<요청 흐름>

4. 브라우저가 웹서버에 HTTP 요청

  • 먼저 컴퓨터에서 OSI 모델의 캡슐화가 이루어진다.
  • 응용 계층에서 HTTP 프로토콜을 이용하여 GET 요청이 담긴 HTTP 메시지를 보낸다.(웹 브라우저가 HTTP 메시지 생성)
  • 전송 계층에서 TCP 헤더가 추가된다.(출발지와 목적지의 포트 번호가 포함) -> 세그먼트
  • 네트워크 계층에서 IP 헤더가 추가된다.(출발지와 목적지의 IP 주소가 포함) -> IP 패킷
  • 데이터 링크 계층에서 이더넷 헤더와 트레일러가 추가된다.-> 이더넷 프레임
  • 물리 계층 랜 카드를 이용하여 데이터를 전기 신호로 변환하고 네트워크로 전송된다.
  • 패킷은 스위칭 허브 등을 경유하여 라우터를 거쳐 ISP로 전달되어 인터넷으로 이동한다.
  • 웹서버까지 도착한다.
  • 웹서버에서 OSI 모델의 역캡슐화가 이루어진다.

 

 

5. 서버가 요청을 처리하고 응답을 생성

  • status code로 response 상태를 표현한다.
  • 반대로 사용자의 컴퓨터로 응답 데이터 전송
  • 흐름은 위와 동일

 

6. 브라우저가 HTML content를 보여줌

  • 이때 정적인 파일들은 브라우저가 캐싱하여 해당 페이지를 다시 방문할 경우 서버에게 데이터를 재요청하지 않아도 된다.

 

 

참고 :

모두의 네트워크 / 길벗

https://velog.io/@doodream/google.com/google.com을-치면-일어나는-일

 

 

 

 

728x90