웹 통신의 큰 흐름: https://www.google.com/ 에 접속할 때 일어나는 일

Sia Hwang·2022년 12월 5일
0

네트워크

목록 보기
1/1

인터넷 브라우저 주소창에 https://www.google.com/을 치고 엔터를 누르는 순간

  1. 브라우저가 URL에 적힌 값을 파싱한다.
  • 어떤 프로토콜로 어느 URL로 어느 포트로 보낼 것인지 해석한 후 HTTP Request Message를 만들고 OS에 전송요청을 한다. 이 때 URL(도메인)로 요청을 바로 보낼 수 없다.(왜냐면 컴퓨터가 읽을 수 없기 때문에 컴퓨터가 읽을 수 있는 숫자로 바꾼 다음에 통신을 해야 한다) 그렇기 때문에 DNS 서버를 통해 URL을 숫자 IP로 바꾼 다음 통신을 할 수 있다.

    DNS Look up 과정
    일반적인 경우 : 루트 도메인서버에서부터 서브도메인 서버순으로 찾는다.
    크롬 브라우저 : 브라우저 → hosts 파일 → DNS Cache의 순서로 도메인에 매칭되는 ip를 찾는다.

  1. 라우터를 통해 해당 서버의 게이트웨이까지 이동
  • 프로토콜 스택이라는 OS에 내장된 네트워크 제어용 소프트웨어에 의해 패킷에 담기고 TCP/IP Protocol(4계층)2번째 계층인 인터넷 계층(OSI 7계층의 네트워크 계층에 해당)의 라우팅 서비스를 통해 IP가 목적지까지 전송된다.

    라우터는 라우팅 테이블을 통해 해당 요청이 어느 경로로 가야할지 지정해준다.

  • 실질적인 통신을 하기 위해 ARP를 브로드 캐스팅 해 논리 주소인 IP 주소를 MAC 주소로 변환한 뒤 패킷에 제어 정보를 덧붙여 TCP/IP Protocol(4계층)1번째 계층인 네트워크 액세스 계층(OSI 7계층의 데이터링크, 물리계층에 해당)의 LAN 어댑터로 전송한다. LAN 어댑터는 이를 전기신호로 변환하여 송출한다.

  • 패킷은 스위칭 허브 등을 경유하여 인터넷 접속용 라우터에서 ISP로 전달되고 인터넷으로 이동한다.

  • 액세스 회선에 의해 통신사용 라우터로 운반되고 인터넷의 핵심부로 전달된다. 고속 라우터들 사이로 목적지까지 패킷이 흘러들어가게 된다.

  1. 대상 서버와 통신하기 위해 TCP 소켓 연결
  • 소켓 연결은 3-way-handshake라는 과정을 통해 이루어진다.

  • 지금 하는 요청은 HTTPS 요청이기 때문에 서로 암호화 통신을 위한 TLS 핸드쉐이킹이 추가된다. 이를 통해 서버와 클라이언트는 암호화 통신을 진행할 수 있다.

  • TCP/IP Protocol(4계층)3번째 계층인 트랜스포트 계층(OSI 7계층의 전송계층에 해당)에서 이루어진다.

  1. HTTP(HTTPS) 프로토콜로 요청, 응답
  • 이제 연결이 확정되었으니 드디어 해당 페이지 www.google.com를 달라고 서버에게 요청한다.

  • 서버에서 해당 요청을 받고, 이 요청을 수락할 수 있는지 검사한다. 그리고 서버는 이 요청에 대한 응답을 생성하여 브라우저에게 전달한다.

  • 웹 서버에 도착한 패킷은 프로토콜 스택이 패킷을 추출하여 메시지를 복원하고 웹 서버 애플리케이션에 넘긴다. 애플리케이션은 요청에 대한 응답 데이터를 작성하여 클라이언트로 회송하고, 이는 전달된 방식 그대로 전송된다.

  • 서버에서 응답한 내용은 HTML, CSS, Javascript 등 웹 페이지라 보기 어려운 문자로 이루어져 있다. 이를 브라우저에서 각 테스트를 정해진 형식으로 해석하여 그려주면 비로소 완성된 웹 페이지를 보게 되는 것이다.

  • 이는 TCP/IP Protocol(4계층)4번째 계층인 어플리케이션 계층(OSI 7계층 중 세션, 프레젠테이션, 어플리케이션 계층에 해당)에서 이루어진다.

References

profile
당면한 문제는 끝까지 해결하기 위해 노력하는 주니어 개발자입니다.

0개의 댓글