웹 브라우저에 https://google.com이라고 입력했다고 하자. 어떠한 경로를 거쳐 나의 웹 브라우저에 웹 페이지가 보여지게 되는 것인가?
이것이 일반적인 외부 접속의 과정이다. 우리는 이러한 과정을 통해 도메인을 사용하여 입력한 후 외부로 나갔다가 다시 응답을 받아 찾아오기 때문에, 이를 외부 접속 이라고 부른다.
그러나 내부 접속, 즉 localhost에 접속하는 과정은 2번과 3번이 생략된다. 왜냐하면 http://localhost/ 라고 입력했을 때는 IP 주소가 127.0.0.1 (이를 loopback address라고 한다) 로 예약되어 있기 때문에, 2 와 3 번을 뛰고 바로 나의 컴퓨터를 가리키는 가상 IP 주소로 접속하게 되는 것이다.
TCP/IP 란 인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 프로토콜의 집합
을 의미합니다.
“www.google.com” 을 웹 브라우저에 입력하면 무슨일이 일어나는지 즉, 외부 접속을 시도하면 어떠한 과정을 거쳐서 요청하고 응답 데이터를 받아오는지 알아봅시다.
*http://www.google.com 으로 요청을 하면 구글 웹서버의 80포트
로 HTTP Request 메시지
를 보내는 것입니다. 해당 요청을 인터넷을 통해 구글서버로 전달하기 위해 우리는 패킷
을 만들어야 합니다. 패킷
에는 각 계층에 필요한 정보들이 담겨야 합니다.*
그리고 각 계층 별로 (TCP/IP 모델의 5계층) HTTP, TCP, IP, Ethernet 프로토콜을 사용한다고 생각하겠습니다. 일단 패킷의 Application Layer 에는 위에서 작성한 HTTP Request
가 들어갑니다.
그럼 Transport, Internet Layer (Network Layer), Network Access Layer (Data Link Layer + Physical Layer) 순으로 차례대로 어떤 데이터가 들어가는지 살펴보겠습니다.