웹 브라우저에서 웹 서버까지의 경로를 간단히 시각화 해보면 아래와 같다.
디지털 데이터는 작은 덩어리로 분할하여 '패킷'이라는 그릇에 넣어 운반된다. 패킷에는 수신처 등의 제어 정보가 맨 앞에 기록되어 있으며, 다수의 스위치나 라우터가 연대하여 이 제어 정보를 보면서 이것은 이쪽, 저것은 저쪽이라는 식으로 분할하면서 목적지에 가깝게 패킷을 운반한다.
웹 브라우저
사용자가 PC에서 브라우저에 URL을 입력하면 (ex. www.uzuro.com), 브라우저는 결정된 규칙에 따라 URL의 의미를 조사한 후 그 의미에 따라 리퀘스트 메시지를 만든다. 위의 경우 www.uzuro.com/index.html이라는 파일에 저장된 페이지의 데이터를 요청하는 리퀘스트 메시지를 만들고, 이것을 웹 서버에 보내게 된다. 이때 메시지를 보내는 것은 디지털 데이터를 운반하는 구조의 역할이므로 이러한 구조에 의뢰하여 데이터를 넘기게 된다. 구체적으로는 OS에 내장된 네트워크 제어용 소프트웨어에 의뢰하여 메시지를 서버측까지 도착하게 되는데, 이렇게 브라우저는 의뢰하는 동작까지만 관여한다.
프로토콜 스택, LAN 어댑터
데이터를 운반하는 구조에서는 OS에 내장된 프로토콜 스택이 있는데, 네트워크 제어용 소프트웨어를 '프로토콜 스택'이라고 한다. 이 소프트웨어는 브라우저에서 받은 메시지를 패킷 속에 저장하고, 수신처 주소 등의 제어 정보를 덧붙인다. 이 소프트웨어는 통신 오류가 발생했을 때 패킷을 고쳐서 보내거나 데이터 통신의 기본을 조절하는 등의 다양한 역할을 한다.
이후에 프로토콜 스택은 패킷을 LAN 어댑터(랜카드)에 넘긴다. 그리고 LAN 어댑터가 이것을 전기 신호로 변환하고 LAN의 케이블에 송출하는 과정을 통해 패킷이 네트워크 속으로 들어간다.
허브, 스위치, 라우터
클라이언트 PC는 가정이나 회사의 LAN을 경유하거나 단독으로 인터넷에 접속할 수 있다. LAN 어댑터가 송신한 패킷은 스위칭 허브등을 경유하여 인터넷 접속용 라우터에 도착한다. 라우터의 앞부분은 이미 인터넷이므로 여기에서부터 앞부분은 통신사가 패킷을 상대에게 운반하게 된다.
액세스 회선, 프로바이더
인터넷 접속용 라우터의 앞부분, 즉 인터넷의 내부이다. 인터넷의 입구에는 액세스 회선이라는 통신 회선이 있다. 보통 전화회선, ISDN, ADSL, CATV, FTTH, 전용선이라는 통신 회선을 이용하여 인터넷에 접속하지만, 이러한 통신 회선을 통칭하여 '액세스 회선'이라고 부른다. 그리고 이 액세스 회선은 계약하고 있는 프로바이더(통신사)와 연결되어 있으며, 여기에 POP(Point Of Presence)라는 설비가 있다.
POP의 실체는 통신사용으로 만들어진 라우터로, 사용자들의 인터넷 요청을 받아들여 전국 또는 전세계로 송신하게 된다. POP의 앞부분이 인터넷의 핵심부라고 할 수 있다. 여기에는 다수의 통신사가 있으며 방대한 수의 라우터가 설치되어 있으며 라우터는 서로 접속되어 있으며, 그물의 눈과 같은 상태라고 생각할 수 있겠다. 그리고 여기에 있는 라우터가 연대하여 패킷을 목적의 웹 서버쪽으로 운반한다. 이 부분에서 사용하고 있는 기술이 오늘날의 네트워크에서 가장 중요한 부분으로, 기술 개발의 최첨단이 이 부분에 집중되어 있다.
방화벽, 캐시 서버
패킷이 최종적으로 웹 서버측의 LAN에 도착하면, 그곳에는 방화벽이 기다리고 있어서 들어오는 패킷을 검사하게 된다. 이후 캐시 서버가 준비되어 있다면 캐시 서버로 이동하게 되어 요청한 데이터가 캐시 서버에 존재한다면 웹 서버에 접속하지 않고도 이를 처리하게 된다.
웹 서버
패킷이 웹 서버 기계에 도착하면 패킷의 알맹이를 추출하여 원래 리퀘스트 메시지를 복원하고 웹 서버 애플리케이션에 넘기게 된다. 이것은 클라이언트와 마찬가지로 OS에 내장된 프로토콜 스택(네트워크 제어용 소프트웨어)의 역할이다. 그리고 웹 서버 애플리케이션이 리퀘스트 메시지의 의미를 읽고, 여기에 쓰여있는 지시에 따라 데이터를 응답 메시지에 넣어 클라이언트에 회송한다. 이때 응답 메시지가 클라이언트에 도착하기까지의 작동은 지금까지와는 반대가 된다. 그리고 응답이 클라이언트에 돌아오면 거기에서부터 페이지의 데이터를 추출하여 화면에 표시한다.
참고 : 성공과 실패를 결정하는 1%의 네트워크 원리
'네트워크' 카테고리의 다른 글
TCP/IP, Socket 라이브러리, 리졸버 (0) | 2013.12.03 |
---|---|
HTTP 리퀘스트 메시지가 작성되는 과정 (1) | 2013.12.02 |
패킷이 거치는 경로 (1) | 2013.12.02 |
DNS서버(네임서버) (0) | 2013.06.21 |
포트 번호 (1) | 2013.05.31 |