이전 글에서는 네트워크의 기본 구조와 구성 요소, 네트워크의 범위에 따른 분류, 그리고 메시지 교환 및 전송 방식에 대해 알아보았습니다.
이번 포스팅에서는 네트워크의 작동 원리를 이해하기 위해 필요한 핵심 개념인 프로토콜, 네트워크 참조 모델, 캡슐화, PDU, 그리고 트래픽과 네트워크 성능 지표에 대해 살펴봅시다.
프로토콜은 네트워크에 연결된 노드 간에 정보를 정확하게 주고받기 위해 서로 합의한 규칙이나 절차를 의미합니다. 서로 다른 통신 장치들이 원활하게 정보를 주고받기 위해서는 동일한 프로토콜을 따라야 하며, 우리가 인터넷을 이용하거나 파일을 전송할 수 있는 것도 상대 호스트와 같은 프로토콜을 사용하기 때문에 가능한 일입니다.
IP는 패킷을 수신지까지 전달하기 위해 사용되는 프로토콜입니다.
ARP는 192.168.1.1과 같은 형태의 IP 주소를 A1:B2:C3:D4:E5:F6과 같은 형태의 MAC 주소로 대응하기 위해 사용되는 프로토콜입니다.
HTTPS는 HTTP와 비교해서 보안상 더 안전한 프로토콜입니다.
TCP는 UDP에 비해 일반적으로 느리지만 신뢰성이 높은 프로토콜입니다.
위에서의 프로토콜 예시를 통해 알 수 있는 것은 저마다의 목적과 특징이 있다는 것입니다.
각 프로토콜의 특징을 잘 이해하면, 네트워크가 어떻게 동작하는지 훨씬 더 쉽게 파악할 수 있습니다.
통신이 일어나는 각 과정을 계층으로 나눈 구조를 네트워크 참조 모델이라고 합니다.
통신 과정을 계층으로 나눈 이유로는 크게 두 가지가 있습니다.
첫 번째로는, 네트워크 구성과 설계에 용이합니다.
각 계층이 수행해야 할 역할이 정해져 있으므로, 계층의 목적에 맞게 프로토콜과 네트워크 장비를 계층별로 구성할 수 있습니다.
물론 모든 프로토콜과 네트워크 장비가 참조 모델에 완벽하게 부합하는 것은 아니지만,
네트워크를 구성하고 설계할 때 중요한 가이드라인으로 네트워크 참조 모델이 활용됩니다.
두 번째로는, 네트워크 문제 진단과 해결에 용이합니다.
통신 과정에서 문제가 발생했을 때, 네트워크를 계층별로 나누어 점검하면 어느 단계에서 문제가 발생했는지 파악하기 쉬워집니다. 이러한 점에서 네트워크 참조 모델은 문제의 원인을 체계적으로 진단하고 해결하는 데에 도움이 됩니다.
다음으로 대표적인 네트워크 참조 모델인 OSI 모델과 TCP/IP 모델에 대해서 알아보겠습니다.
OSI 모델은 통신 과정을 7개의 계층으로 나눕니다.
하위 계층부터 순서대로 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층으로 구성되어 있습니다.
1) 물리 계층 (Physical Layer)
1과 0으로 표현되는 비트 신호를 주고 받는 계층입니다.
비트 데이터를 통신 매체에 적합한 신호(전기, 빛, 전파 등)로 변환하여 전송합니다.
2) 데이터 링크 계층 (Data Link Layer)
물리 계층을 통해 주고 받는 데이터에 오류가 없는지 확인합니다.
또한, MAC 주소를 사용하여 같은 네트워크 내에서 송신자와 수신자를 식별할 수 있습니다.
전송 중 충돌이 발생할 수 있는 환경에서는 충돌을 감지하거나 회피하여 데이터가 안정적으로 전달되도록 합니다.
3) 네트워크 계층 (Network Layer)
메시지를 다른 네트워크에 속한 수신지까지 전달하는 계층입니다.
IP 주소라는 주소 체계를 통해 통신하고자 하는 수신지 호스트와 네트워크를 식별하고, 원하는 수신지에 도달하기 위한 최적의 경로를 결정합니다.
4) 전송 계층 (Transport Layer)
신뢰성 있고 안정적인 데이터 전송을 보장하는 계층입니다.
데이터의 흐름을 조절하고, 전송 중 발생할 수 있는 오류를 검출 및 복구하여 데이터가 정확하게 전달되도록 합니다.
또한, 포트 번호를 사용해 여러 응용 프로그램을 구분하고 식별함으로써, 올바른 프로그램에 데이터가 전달되도록 합니다.
5) 세션 계층 (Session Layer)
통신하는 두 호스트 간의 연결(세션)을 관리하는 계층입니다.
세션을 생성, 유지, 종료하는 역할을 하여 통신이 원활하게 이루어지도록 돕습니다.
6) 표현 계층 (Presentation Layer)
서로 다른 시스템이 이해할 수 있도록 데이터 형식을 변환하는 계층입니다.
예를 들어, 문자 인코딩(UTF-8, ASCII) 변환, 데이터 압축, 암호화와 복호화 등을 수행하여 데이터가 올바르게 전달되고 해석될 수 있도록 돕습니다.
7) 응용 계층 (Application Layer)
사용자가 이용할 응용 프로그램에 다양한 네트워크 서비스를 제공합니다.
예를 들어, 웹 브라우저가 웹 페이지를 요청하는 HTTP 서비스, 이메일 송수신을 위한 SMTP 서비스, 파일 전송을 위한 FTP 서비스 등이 여기에 해당합니다.
OSI 모델은 네트워크를 이론적으로 기술하고 이해할 때 사용하는 반면에
TCP/IP 모델은 이론보다는 실제 구현에 중점을 둔 네트워크 참조 모델입니다.
하위 계층부터 순서대로 네트워크 액세스 계층, 인터넷 계층, 전송 계층, 응용 계층으로 구성되어 있습니다.
1) 네트워크 액세스 계층 (Network Access Layer)
OSI 모델의 데이터 링크 계층과 물리 계층 역할을 포함하며,
실제 네트워크 하드웨어와 데이터 전송을 담당합니다.
2) 인터넷 계층 (Internet Layer)
OSI 모델의 네트워크 계층과 유사하며,
IP 주소를 기반으로 한 패킷 전달과 라우팅을 담당합니다.
3) 전송 계층 (Transport Layer)
OSI 모델의 전송 계층과 유사하며,
신뢰성 있는 데이터 전송과 흐름 제어, 오류 제어를 담당합니다.
4) 응용 계층 (Application Layer)
OSI 모델의 세션 계층, 표현 계층, 응용 계층의 기능을 통합한 계층으로,
사용자 응용프로그램에 다양한 네트워크 서비스를 제공합니다.
앞에서 학습한 프로토콜과 네트워크 참조 모델을 토대로 실제로 패킷이 어떻게 송수신되는지 알아봅시다.
패킷은 송신 과정에서 캡슐화가 이루어지고, 수신 과정에서 역캡슐화가 이루어집니다.
송신지 입장에서는 상위 계층 → 하위 계층 방향으로 데이터를 내려보내고, 수신지에서는 하위 계층 → 상위 계층 방향으로 데이터를 처리합니다.
캡슐화(Encapsulation)는 데이터를 전송할 때 각 계층에서 필요한 정보를 덧붙여가며 데이터를 감싸는 과정입니다.
1) 응용 계층에서 메시지를 생성합니다.
메시지는 패킷 단위로 송신됩니다.
패킷은 헤더(Header)와 페이로드(Payload), 그리고 경우에 따라 트레일러(Trailer)를 포함하여 구성됩니다.
헤더는 데이터 전달을 위한 제어 정보(예: 주소, 포트 번호 등)를 담고 있으며, 각 계층에서 추가됩니다.
페이로드는 실제로 전송하고자 하는 데이터로, 상위 계층에서 전달받은 패킷이 여기에 해당합니다.
트레일러는 주로 데이터 링크 계층에서 추가되며, 오류 검출 등의 기능을 수행합니다.
2) 각 계층을 내려가면서 해당 계층의 제어 정보를 헤더(Header)로 추가합니다.
3) 이 과정을 통해 최종적으로 프레임이 생성되어 네트워크를 통해 전송됩니다.
예: 응용 계층 데이터 → 전송 계층 (TCP 헤더 추가) → 인터넷 계층 (IP 헤더 추가) → 네트워크 인터페이스 계층 (MAC 헤더 및 트레일러 추가)
역캡슐화(Decapsulation)는 수신 측에서 데이터를 받을 때, 각 계층에서 자신의 헤더를 제거하고 상위 계층에 전달하는 과정입니다.
4) 네트워크 인터페이스 계층에서 프레임을 수신합니다.
5) 각 계층은 자신에게 필요한 헤더만 읽고 제거한 후 상위 계층으로 전달합니다.
6) 최종적으로 응용 계층에 도달하면, 사용자가 이해할 수 있는 실제 데이터가 완성됩니다.
예: 네트워크 인터페이스 계층 (MAC 헤더 제거) -> 인터넷 계층 (IP 헤더 제거) -> 전송 계층 (TCP 헤더 제거) -> 응용 계층 (최종 데이터 처리)
이러한 과정을 거쳐서, 송신 측에서 생성된 데이터는 각 계층을 따라 헤더와 트레일러가 순차적으로 붙은 상태로 전송되며, 수신 측에서는 이 정보들을 하나씩 제거(역캡슐화)하면서 원래의 데이터로 복원합니다.
이처럼 캡슐화와 역캡슐화 과정은 데이터가 네트워크를 통해 정확하고 안전하게 전달되도록 보장하며, 계층별 역할 분담과 독립적인 설계를 가능하게 합니다.
각 계층에서 송수신되는 메시지의 단위를 PDU라고 합니다.
상위 계층에서 전달받은 데이터에 현재 계층의 프로토콜 헤더(및 트레일러)를 추가하면 현재 계층의 PDU가 됩니다.
| OSI 계층 | PDU 명칭 |
|---|---|
| 응용 / 표현 / 세션 계층 | 데이터 (Data) |
| 전송 계층 (Transport) | 세그먼트 (Segment) / 데이터그램 (Datagram) |
| 네트워크 계층 (Network) | 패킷 (Packet) |
| 데이터 링크 계층 (Data Link) | 프레임 (Frame) |
| 물리 계층 (Physical) | 비트 (Bit) |
전송 계층의 PDU는 TCP 프로토콜이 사용되었을 경우에는 세그먼트(Segment),
UDP 프로토콜이 사용되었을 경우에는 데이터그램(Datagram)이 됩니다.
네트워크 성능을 평가할 때는 데이터를 주고받는 양과 속도가 중요한 기준이 됩니다.
이 중 하나인 트래픽은 일정 시간 동안 네트워크를 통해 전달되는 데이터의 양을 뜻합니다. 특정 노드(장치나 서버)에 트래픽이 집중되면, 해당 노드가 처리해야 할 데이터가 많아져 과부하가 발생할 수 있습니다. 이 과부하는 네트워크 속도 저하나 지연을 일으켜 전체 성능에 영향을 미치게 됩니다.
그렇다면 네트워크의 성능을 평가하는 지표로는 어떤 것들이 있을까요?
단위 시간당 네트워크를 통해 실제로 전송에 성공한 정보량을 말합니다.
처리율은 네트워크가 얼마나 효율적으로 데이터를 전달하는지를 보여줍니다.
대역폭과 달리, 네트워크 상태나 트래픽 상황에 따라 처리율은 변동될 수 있습니다.
예를 들어, 대역폭이 1Gbps라 해도 장애나 혼잡이 있으면 실제 처리율은 그보다 낮을 수 있습니다.
단위 시간 동안 통신 매체를 통해 송수신할 수 있는 최대 정보량을 말합니다.
송수신되는 패킷이 손실된 상황을 말합니다.
네트워크 과부하, 장비 장애, 노드의 처리 지연 등으로 인해 발생합니다.
손실된 패킷은 재전송이 필요해 전체 네트워크 지연과 성능 저하를 일으킵니다.
손실률이 높으면 데이터 신뢰성에 문제를 일으키게 됩니다.
이번 포스팅에서는 네트워크의 작동 원리를 이해하는 데 꼭 필요한 핵심 개념들을 살펴보았습니다.
이전 포스팅에서 다룬 네트워크의 기본 구조와 함께 이번 내용을 정리해 두면,
네트워크 전반에 대한 기초적인 배경지식을 쌓을 수 있을 것입니다.