네트워크 데이터가 계층을 통과하는 방식: 캡슐화와 역캡슐화

OSI 계층에서 데이터가 세그먼트·패킷·프레임·비트로 전환되는 캡슐화와 역캡슐화의 흐름, PDU와 헤더 역할을 정리한다.

2026-08-14 · 최초 발행 2025-08-10

데이터가 전송 매체로 나가기까지

캡슐화(Encapsulation)는 상위 계층의 프로토콜 데이터 유닛(PDU)을 하위 계층 PDU의 데이터 필드에 넣는 과정이다. 송신 호스트에서 응용 계층의 데이터는 프로토콜 스택을 따라 내려가며 계층별 헤더를 얻고, 필요한 경우 트레일러도 추가된다. 이렇게 감싸진 데이터는 물리 계층에서 비트 스트림이 되어 전송 매체로 전달된다.

수신 호스트에서는 역캡슐화(Decapsulation)가 일어난다. 물리 계층이 받은 비트 스트림을 상위 계층으로 전달하면서, 각 계층은 자신에게 해당하는 헤더를 분석하고 제거한다. 이 과정을 거쳐 응용 계층은 처음의 데이터를 복원해 사용자에게 제공한다.

응용 계층 - 데이터표현 계층 - 데이터세션 계층 - 데이터전송 계층 -세그먼트/데이터그램네트워크 계층 - 패킷데이터 링크 계층 - 프레임물리 계층 - 비트물리 계층 - 비트데이터 링크 계층 - 프레임네트워크 계층 - 패킷전송 계층 -세그먼트/데이터그램세션 계층 - 데이터표현 계층 - 데이터응용 계층 - 데이터

계층마다 달라지는 PDU와 제어 정보

응용 계층의 PDU는 데이터(Data)다. 이 계층에서 사용자 데이터가 만들어지며 HTTP 요청과 응답, FTP 명령, 이메일 메시지가 여기에 해당한다.

표현 계층도 데이터라는 PDU를 사용한다. 데이터 변환, 암호화, 압축을 수행하고 데이터 형식이나 암호화 정보 등을 헤더에 담는다. 세션 계층 역시 데이터 단위로 통신 세션의 설정·유지·종료를 관리하며, 세션 ID와 동기화 정보 등을 추가한다.

전송 계층에 도달하면 TCP에서는 세그먼트(Segment), UDP에서는 데이터그램(Datagram)이라는 이름이 붙는다. 이 계층은 종단간 통신을 제어하며 포트 번호, 시퀀스 번호, 체크섬 등의 정보를 헤더에 더한다. TCP 헤더의 기본 크기는 20바이트이고 UDP 헤더는 8바이트 고정 크기다.

네트워크 계층의 PDU는 패킷(Packet)이다. 논리 주소 지정과 라우팅을 담당하며 IP 주소, TTL, 프로토콜 유형을 기록한다. IPv4 헤더는 20-60바이트, IPv6 헤더는 40바이트 고정 크기다.

데이터 링크 계층에서는 패킷이 프레임(Frame)이 된다. MAC 주소와 프레임 제어 정보를 헤더에 넣고 FCS(Frame Check Sequence)를 트레일러로 붙여 물리 주소 지정과 오류 감지·수정을 맡는다. 이더넷 프레임 헤더는 14바이트이며 CRC 트레일러는 4바이트다.

물리 계층의 PDU는 비트(Bit)다. 프레임은 전기적 신호, 광신호 또는 전파로 바뀌어 물리적 매체를 통과한다.

계층 경계가 운영에 주는 의미

각 계층은 다른 계층의 구현 세부사항을 알지 않아도 독립적으로 동작한다. 이더넷에서 광섬유로 물리 계층을 바꿔도 상위 계층에 미치는 영향은 제한된다.

역할을 나누면 장애를 좁혀 가기도 쉬워진다. 연결 문제가 있으면 물리 계층과 데이터 링크 계층을, 라우팅 문제라면 네트워크 계층을 먼저 확인할 수 있다. 표준화된 인터페이스는 서로 다른 벤더의 장비가 함께 동작하게 하는 기반이기도 하다. 다양한 제조사의 라우터와 스위치는 TCP/IP 프로토콜을 통해 상호 통신할 수 있다.

각 계층은 오류 감지와 수정, 흐름 제어, 혼잡 제어, 보안 기능을 맡을 수 있다. 네트워크 규모가 커져도 계층별 기능을 중심으로 유연하게 대응할 수 있다.

브라우저 요청이 프레임이 되는 과정

웹 브라우저에 URL을 입력하면 응용 계층에서 HTTP 요청 메시지가 만들어진다.

GET /index.html HTTP/1.1

이 요청에는 다음과 같은 헤더 정보가 포함될 수 있다.

Host: www.example.com

전송 계층은 HTTP 메시지에 TCP 헤더를 추가한다. 출발지 포트는 임의 할당되고 목적지 포트는 80 또는 443이 되며, 시퀀스 번호와 확인 응답 번호도 함께 들어간다.

네트워크 계층에서는 TCP 세그먼트 앞에 IP 헤더가 붙는다. 출발지 IP와 목적지 IP, TTL, TCP=6인 프로토콜 필드가 이 단계에서 다뤄진다. 이어 데이터 링크 계층은 IP 패킷에 출발지·목적지 MAC 주소와 프레임 제어 정보를 넣고, IPv4=0x0800 같은 프레임 타입 및 FCS 트레일러를 추가한다.

마지막으로 물리 계층이 이더넷 프레임을 비트 스트림으로 바꾸고, 전기적 또는 광학적 신호로 변환해 전송 매체에 보낸다.

서버는 반대 순서로 신호를 비트 스트림으로 바꾸고 프레임을 복원한다. 데이터 링크 계층은 FCS로 오류를 검사하고 목적지 MAC 주소를 확인한 뒤 이더넷 헤더를 제거한다. 네트워크 계층은 목적지 IP 주소를 확인해 IP 헤더를 벗기고, 전송 계층은 포트 번호를 확인하며 필요할 경우 세그먼트를 재조립한다. TCP 헤더가 제거되면 HTTP 요청은 웹 서버 애플리케이션으로 전달되고, 애플리케이션은 요청을 처리한 뒤 응답을 생성한다.

헤더가 만드는 비용과 관찰 지점

계층별 헤더와 트레일러는 데이터 크기를 늘리는 오버헤드가 된다. 네트워크 인터페이스가 처리할 수 있는 최대 데이터 단위인 MTU(Maximum Transmission Unit)도 함께 고려해야 한다. 패킷이 MTU보다 크면 단편화(Fragmentation)되어 여러 조각으로 전송될 수 있으며, 여러 계층을 통과하는 처리 과정은 지연(Latency)에도 영향을 준다.

Wireshark는 패킷을 캡처해 캡슐화된 데이터 구조를 확인하는 데 사용할 수 있다. tcpdump는 명령줄에서 헤더 정보를 살피는 도구이며, 네트워크 스니퍼는 트래픽을 모니터링하면서 프로토콜 계층별 데이터 구조를 분석하는 데 쓰인다. 이 도구들로 실제 패킷을 보면 계층별로 추가된 정보와 수신 과정에서 확인되는 지점을 추적할 수 있다.

캡슐화역캡슐화OSI 7계층네트워크PDU