[그림으로 쉽게 이해하는 웹/HTTP/네트워크를 읽고 정리합니다.]
네트워크란?
그물을 뜻하는 net과 work의 합성어로 그물처럼 서로 긴밀하게 연결된 것을 말한다. 우리가 다루는 컴퓨터 네트워크는 컴퓨터 사이에 데이터를 주고 받는 '통신망'을 뜻한다. 현재는 컴퓨터 뿐만 아니라 스마트폰, 노트북, IPTV, 각종 기기들이 인터넷에 연결되어 정보를 주고 받는 것 또한 컴퓨너 네트워크라고 부른다. 네트워크는 가상의 무언가 같지만, 실제로 2대 이상의 기기가 서로 통신하기 위해서는 연결하는 회선이나, 전기 신호를 데이터로 변환하는 장치 등 매체의 역할이 필요하다.
LAN, WAN
먼저 네트워크도 급이 있다. (!) 전 세계를 아우르는 거대한 1개의 네트워크 밑에 중간급의 네트워크 여러 개, 더 작은 네트워크 수백 개로 구성되어 있으며, 이러한 범위에 따라 구분할 수 있다.
LAN(Local Area Network)는 가정집을 비롯해 학교나 회사 등 지리적으로 가까운 기기들이 서로 연결된 소규모 네트워크를 의미한다. 집에 공유기를 중심으로 집 안의 기기들이 연결되는 홈 네트워크가 바로 LAN의 한 형태다. 이처럼 LAN은 기기가 1:1로 연결된 게 아니라, 공유기나 스위치를 중심으로 하고, 그 중심과 다른 기기들이 연결된 모양을 띄고 있다. LAN은 기기끼리 물리적으로 가까이 연결되어 비교적 간단하게 구성(설치/전기세를 빼고 유지보수비가 들지 않는다.)할 수 있고, 통신에 필요한 선이 짧아 데이터를 주고 받는데 오류가 적고 속도도 빠르다는 특징이 있다. LAN은 이더넷이라는 프로토콜을 사용한다.
WAN(Wide Area Network)는 지역이나 국가 등 넓은 영역을 연결하는 광역 네트워크를 의미한다. 여러 곳에 흩어진 소규모 네트워크가 서로 통신할 수 있게 연결한 것으로, LAN을 서로 연결한 것을 WAN이라고 부르기도 한다. WAN은 물리적으로 범위가 넓다 보니 개인이 구현하기 어려워 SKT, KT, LG U+ 등 인터넷 서비스 제공자(ISP)가 따로 전국에 회선을 설치한다. 우리가 내는 인터넷 통신비의 일부는 이 회선을 이용하는 비용이 되는 것이다. WAN은 LAN보다 더 먼 곳까지 연결해야 해서 구성도 복잡하고 속도도 비교적 느리다. 또 선이나 연결된 장치가 많다 보니 영향을 받을 요소들이 많아 오류가 발생할 확률도 LAN에 비해 크다는 특징이 있다.
LAN과 WAN을 그림으로 나타내면 아래와 같다.
OSI 7계층
1984년 국제표준화기구(ISO)에서 개발한 모델인 OSI 7계층(개방형 시스템 상호연결 참조 모델 - Open Systems Interconnection Reference Model)은 간단히 말해 통신이 일어나는 과정을 7단계로 구분한 것이다.
왜 7단계로 구분했는가 하면, 이전에는 컴퓨터 네트워크라는 개념이 생겨나고 학교나 군대처럼 특정 소수의 사람들만이 인터넷을 사용했는데, 이 때만 해도 네트워크 통신에 필요한 장치나 시스템은 특정 회사에서 만들다 보니, 서로 호환되지 않는 경우가 많았다. 그러나 점점 많은 사람들이 인터넷을 사용하면서 이기종 시스템 간에도 네트워크를 형성하기 위해 각 단계를 구분하고 이를 표준화 하려는 움직임이 생겼다. 그 결과 통신이 일어나는 과정을 구분하고, 단계별로 표준화 한 것이 OSI 계층으로, 다른 시스템과 잘 연결할 수 있게 하는 표준안이라고 할 수 있다.
OSI 계층이 생기면서 통신에 관련된 목적을 달성하기 위해 계층별로 어떤 분업을 해야 하는지 통일된 규칙을 정의할 수 있게 되었다. 이렇게 네트워크 구성 요소를 표준화 하니 계층 내 장치나 통신 규약인 프로토콜이 달라져도 통신을 할 수 있게 되었고, 처음 보는 장치나 프로토콜도 계층에 따라 빠르게 예측하고 이해하는데 도움이 되었다고 한다.
더 자세한 OSI 7계층에 대한 내용은 책 후반부에 있어서 일단은 이렇게 알아두고 넘어가자.
TCP/IP 4계층
현재 네트워트 대부분은 OSI 7계층보다 실용점에 중심을 둔 TCP/IP 4계층 모델을 참조해 이루어져 있다.
TCP/IP 4계층 또는 인터넷 프로토콜 스위트(internet protocol suite)라고도 하는 이 모델은 인터넷으로 컴퓨터들이 정보를 주고 받을 때 사용하는 프로토콜의 모음으로, 네트워크 구조를 4계층으로 구분했다.
OSI 7계층에서 쓰였던 세션, 표현, 응용 계층이 응용 계층 하나로 통일되었고, 물리, 데이터 링크 계층이 네트워크 엑세스로 통일되었다. 또 네트워크 계층은 인터넷 계층으로 불리게 되었다. 예컨대 OSI 모델로 봤을 때 응용 계층인 HTTP와 세션 계층인 SSL/TLS는 서로 다른 계층이지만, TCP 모델 기준으로는 전부 같은 응용 계층이라는 것이다. 이처럼 OSI와 TCP 모두 네트워크를 구분하는 기준인데 계층이 다르게 나눠진 이유는 두 모델의 만들어진 목적이 각각 다르기 때문이다.
OSI 모델 | TCP/IP 모델 | |
목적 | 호환성, 표준화 | 실무 적용 |
구성 | 역할 기반 | 프로토콜 기반 |
데이터의 전송
데이터 통신을 위해서는 송신자와 수신자가 필요하다.
이 때 송신자와 수신자 각각 OSI 7계층에 해당하는 프로토콜과 장비가 있다면, 이를 OSI 모델이 있다고 표현한다.
송신자가 요청을 보내면, OSI 계층 중 송신 호스트와 가장 가까이 있는 응용 계층에서 요청 데이터를 받는다. 이후 데이터는 하위 계층으로 계속 전달되며, 마지막 계층인 물리 계층까지 이동한다. 이후 전송 선로(인터넷)를 타고 목적지(수신 호스트의 물리 계층)를 향해 이동한다. 목적지에 도착하면 이번에는 반대로 물리 계층에서 가장 위에 있는 응용 계층으로 데이터가 올라가고, 수신 호스트의 응용 계층까지 데이터가 도달하면 성공적으로 수신자가 데이터를 받게 된다.
즉 송신 호스트의 응용 계층 ~ 물리 계층 -> 전송 선로 -> 수신 호스트의 물리 계층 ~ 응용 계층 과 같은 구조로 데이터가 전달된다.
이렇게 데이터가 전달될 때, 앞에서 처리해야 하는 계층이 빠져 있거나 실수로 데이터가 잘못 도착할 수도 있지 않을까? 예컨대 송신 호스트의 응용 계층에서 표현 계층을 건너 뛰고 세션 계층으로 넘어가게 된다면? 하지만 각 계층은 헤더 정보를 통해 자신이 데이터를 처리해야 할 순서라는 것을 알 수 있다.
헤더 정보란 보내는 쪽의 계층이 받는 쪽의 계층으로 전달하는 관련 정보인데, 보내는 쪽에서 자신의 역할이 끝날 때마다 데이터 처리에 필요한 몇 가지 정보를 헤더 정보로 넣어 하위 계층으로 전달한다. (파란 그래프의 그림을 보면 왼쪽에 바가 점점 길어지는 것을 알 수 있고, 위 그림에도 TCP 헤더, IP 헤더 등이 늘어나는 걸 볼 수 있다.) 이처럼 하위 계층의 데이터가 상위 계층의 데이터를 감싸는 형태로 내려간다. 받는 쪽에서는 헤더 정보를 보고 데이터를 처리한 뒤, 자신의 계층에 속한 헤더 정보를 벗겨내 상위 계층으로 전달한다.
이처럼 보내는 쪽에서 헤더를 덧붙이며 데이터를 하위 계층으로 보내는 과정을 캡슐화(encapsulation), 반대로 받는 쪽에서 헤더를 떼어내면서 데이터를 상위 계층으로 보내는 과정을 역캡슐화(decapsulation)이라고 한다.
이러한 캡슐화를 통해 동일 계층 간의 호환성을 유지할 수 있고, 앞에 처리해야 하는 계층이 빠져 있거나 데이터가 잘못 도착했을 오류의 영향을 최소화 할 수 있다.
'🖥️ CS & Network & Web > 🕸️ Network' 카테고리의 다른 글
[Network] 6. HTTP (1) | 2023.12.20 |
---|---|
[Network] 5. TCP (0) | 2023.12.19 |
[Network] 4. IP (2) | 2023.12.19 |
[Network] 3. URL (0) | 2023.07.03 |
[Network] 1. 웹 (0) | 2023.06.30 |