인터넷 브라우저 주소창에 https://www.google.com/
을 치고 엔터를 누르는 순간
DNS Look up 과정
일반적인 경우 : 루트 도메인서버에서부터 서브도메인 서버순으로 찾는다.
크롬 브라우저 : 브라우저 → hosts 파일 → DNS Cache의 순서로 도메인에 매칭되는 ip를 찾는다.
프로토콜 스택이라는 OS에 내장된 네트워크 제어용 소프트웨어에 의해 패킷에 담기고 TCP/IP Protocol(4계층)
중 2번째 계층인 인터넷 계층
(OSI 7계층의 네트워크 계층에 해당)의 라우팅 서비스를 통해 IP가 목적지까지 전송된다.
라우터는 라우팅 테이블을 통해 해당 요청이 어느 경로로 가야할지 지정해준다.
실질적인 통신을 하기 위해 ARP를 브로드 캐스팅 해 논리 주소인 IP 주소를 MAC 주소로 변환한 뒤 패킷에 제어 정보를 덧붙여 TCP/IP Protocol(4계층)
중 1번째 계층인 네트워크 액세스 계층
(OSI 7계층의 데이터링크, 물리계층에 해당)의 LAN 어댑터로 전송한다. LAN 어댑터는 이를 전기신호로 변환하여 송출한다.
패킷은 스위칭 허브 등을 경유하여 인터넷 접속용 라우터에서 ISP로 전달되고 인터넷으로 이동한다.
액세스 회선에 의해 통신사용 라우터로 운반되고 인터넷의 핵심부로 전달된다. 고속 라우터들 사이로 목적지까지 패킷이 흘러들어가게 된다.
TCP 소켓
연결소켓 연결은 3-way-handshake
라는 과정을 통해 이루어진다.
지금 하는 요청은 HTTPS
요청이기 때문에 서로 암호화 통신을 위한 TLS
핸드쉐이킹이 추가된다. 이를 통해 서버와 클라이언트는 암호화 통신을 진행할 수 있다.
TCP/IP Protocol(4계층)
중 3번째 계층인 트랜스포트 계층
(OSI 7계층의 전송계층에 해당)에서 이루어진다.
HTTP(HTTPS) 프로토콜
로 요청, 응답이제 연결이 확정되었으니 드디어 해당 페이지 www.google.com
를 달라고 서버에게 요청한다.
서버에서 해당 요청을 받고, 이 요청을 수락할 수 있는지 검사한다. 그리고 서버는 이 요청에 대한 응답을 생성하여 브라우저에게 전달한다.
웹 서버에 도착한 패킷은 프로토콜 스택이 패킷을 추출하여 메시지를 복원하고 웹 서버 애플리케이션에 넘긴다. 애플리케이션은 요청에 대한 응답 데이터를 작성하여 클라이언트로 회송하고, 이는 전달된 방식 그대로 전송된다.
서버에서 응답한 내용은 HTML
, CSS
, Javascript
등 웹 페이지라 보기 어려운 문자로 이루어져 있다. 이를 브라우저에서 각 테스트를 정해진 형식으로 해석하여 그려주면 비로소 완성된 웹 페이지를 보게 되는 것이다.
이는 TCP/IP Protocol(4계층)
중 4번째 계층인 어플리케이션 계층
(OSI 7계층 중 세션, 프레젠테이션, 어플리케이션 계층에 해당)에서 이루어진다.