네트워크는 너무 어려워요

 

브라우저에서 google.com를 요청할 때 통신 과정이 어떻게 이루어질까요?

  • 그러게요...?
  • 이제 알아봅시다.

 

1. 브라우저에 google.com을 입력한다.

  • 우리는 하이퍼텍스트를 주고받을 수 있는 WWW라는 서비스를 사용할 것입니다.
  • WWW서비스의 클라이언트가 되는 브라우저를 사용할 것입니다.
  • http://www.google.com은 google의 www 서버(웹서버)를 가리킵니다.
    • http는 www 서비스를 나타냅니다.
      • www서비스는 HTTP 프로토콜을 사용합니다.

 

2. 브라우저는 DNS 프로토콜을 사용하여 www.google.com의 IP주소를 얻어온다. 

 

  • nslookup 이라는 명령어를 통해 www.google.com의 실제 IP를 볼 수 있습니다.
  • 저의 경우 142.250.76.142가 나옵니다.  실제 통신은 이 IP를 사용합니다.\

 

  • 구글의 IP주소는 DNS 프로토콜을 사용하여 얻어옵니다.
  • 브라우저는 DNS를 사용하여 www.google.com의 IP주소를 얻어와야 합니다.

 

  • DNS는 Application Layer Protocol입니다.
  • UDP를 통해 동작하여 포트 53을 사용합니다.

 

3. 클라이언트는 HTTP  요청 메시지를 보내 기 전 TCP 소켓을 만든다.

  • HTTP요청 메시지를 보내기 전에 TCP 소켓을 만듭니다.
  • 브라우저는 웹서버와 Three-way Handshake를 통해 TCP 연결을 구축해야 합니다.

 

  • 브라우저에서 먼저 TCP SYN 세그먼트를 만들어 수신지 포트 80(HTTP)로 설정하고 전송합니다.

 

  • 구글의 HTTP 서버는 TCP SYN을 받으면, 클라이언트와의 TCP 연결을 위해 소켓을 생성합니다.
  • 구글의 HTTP 서버는 SYNACK 세그먼트를 브라우저에 전송합니다.

 

  • TCP SYNACK 세그먼트 담은 데이터그램이 브라우저에 도착합니다.
  • SYNACK 세그먼트를 받으면 TCP ACK응답을 보내 TCP 연결을 구축합니다.

 

  • HTTP는 Application layer protocol 입니다.
  • TCP(Transport layer protocol)를 통해 동작하며 80번 포트를 사용합니다.

 

4. HTTP 요청을 보낸다.

 

  • TCP 연결이 완료되면 클라이언트의 소켓은 www.google.com으로 데이터를 보낼 준비가 되었습니다.
  • 브라우저는 HTTP 요청 메시지를 준비하여 보냅니다.

 

  • www.google.com의 HTTP서버는 HTTP메시지를 읽고, 응답 메시지를 만듭니다.
  • HTTP 응답 메시지 body에 요청 받은 콘텐츠를 담아 전달합니다.

 

5. 브라우저는 응답을 받아 화면을 그린다.

 

마지막으로

지금 까지의 설명은 www.google.com을 입력하고 어떻게 웹페이지가 보이는지의 과정입니다. 이것만 보면 많이 헷갈릴 수도 있어요..! 저는 그랬습니다. 네트워크에서 어떻게 데이터가 전달되는지 과정을 알게되면 더 좋을 것 입니다. 그래서 이번 글에서 DNS, TCP, UDP HTTP가 어떤 계층의 프로토콜 인지 명시했어요. 그리고 관련해서 좋은 강의가 있으니 한번 보시는 것을 추천드립니닷

 

 

 

참고

parksb.github.io/article/36.html

 

인터넷이 동작하는 아주 구체적인 원리

학교에서 구글에 접속하는 과정

parksb.github.io

 

 

댓글



Designed by JB FACTORY