TCP/IP 4계층을 따라가는 데이터의 여정
우리가 웹 브라우저에 www.google.com을 입력하고 엔터를 누를 때, 눈앞에는 단순히 페이지가 열리는 것처럼 보이지만, 사실 그 뒤에서는 수많은 데이터 조각들이 정교한 협력을 통해 움직이고 있다.
인터넷 프로토콜 스위트(Internet protocol suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합이며, 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명하기도 한다. 오늘은 이 과정을 TCP/IP 모델을 중심으로, 데이터가 보내질 때(캡슐화) 그리고 도착할 때(비캡슐화) 무슨 일이 일어나는지 단계별로 살펴본다.

1. TCP/IP 모델이란?
TCP/IP 모델은 인터넷에서 컴퓨터들이 정보를 주고받기 위한 표준 통신 구조이다. OSI 7계층보다 더 단순하고 실용적인 4계층 구조로 구성되어 있다. 일단, 각 계층마다 역할이 있고, 여러 사용 가능한 프로토콜이 있다는 것만 알고 넘어가면 된다.
| 계층 | 역할 | 대표 프로토콜 |
| 애플리케이션 계층 | 사용자에게 서비스 제공 | HTTP, FTP, DNS |
| 전송 계층 | 신뢰성 있는 전송 | TCP, UDP |
| 인터넷 계층 | 목적지 경로 지정 | IP, ARP, ICMP |
| 링크 계층 | 실제 전송 수행 | Ethernet, Wi-Fi |
이 계층 구조는 모듈형 설계(Modular Design) 덕분에 각 계층이 독립적으로 개선되거나 교체될 수 있는데, 예를 들어 TCP를 UDP로 바꾼다고 해서 브라우저를 재설치할 필요가 없다.
왜 TCP/IP 모델은 4계층 모델일까?
1. 단순하고 실용적
TCP/IP 모델은 인터넷의 초기 개발 당시 복잡한 네트워크 구조를 단순화하고 인터넷 통신을 표준화하기 위해 설계되었다. OSI 모델이 7계층으로 되어 있는 것과 비교하면, TCP/IP 모델은 실제 인터넷 환경에 더 적합하도록 4개의 주요 계층으로 단순화한 것이다.
2. 역할에 따른 구분
TCP/IP 모델은 각 계층이 특정한 기능에 초점을 맞추도록 설계되었다. 예를 들어, 전송 계층에서는 데이터의 신뢰성을 보장하고, 인터넷 계층에서는 데이터의 라우팅을 담당하는 식이다. 이러한 계층 구분은 모듈식 설계를 가능하게 하여, 각 계층을 독립적으로 수정하거나 최적화할 수 있다.
3. 인터넷의 핵심 프로토콜 기반
TCP/IP 모델은 *인터넷의 핵심 프로토콜(TCP와 IP) 을 기반으로 설계되었다. 이 때문에 실제 인터넷 환경에서 가장 많이 사용되며, 인터넷 표준으로 자리 잡았다.
*TCP (Transmission Control Protocol) 와 IP (Internet Protocol) 가 핵심 프로토콜인 이유
TCP -> 전송 계층의 프로토콜 중 하나, IP -> 인터넷 계층의 프로토콜 중 하나.
- TCP (Transmission Control Protocol): 신뢰성 있는 데이터 전송
- TCP는 데이터의 신뢰성과 순서를 보장하는 역할을 한다. 데이터를 여러 **패킷으로 나누어 전송하고, 수신 측에서 패킷을 재조립하며, 손실된 패킷이 있으면 다시 요청하여 데이터의 무결성을 보장한다.
- 예시: 파일 다운로드 시, TCP를 사용하면 파일이 손상되지 않고 완전하게 다운로드되도록 보장한다. 패킷이 손실되면 재전송 요청을 통해 누락된 데이터를 보충한다.
- IP (Internet Protocol): 데이터 전송의 기반
- IP 는 데이터 패킷을 목적지로 정확하게 전달하는 역할을 한다. 네트워크 상에서 컴퓨터들이 서로 통신할 수 있도록 IP 주소를 사용하여 데이터를 목적지까지 라우팅한다.
- 예시: 인터넷에서 웹사이트를 방문할 때, IP는 사용자의 컴퓨터와 웹 서버 사이의 데이터 전송 경로를 결정해 웹 페이지를 불러오게 한다.
즉, TCP/IP가 핵심인 이유는
- IP는 데이터를 어디로 보낼지 결정하고, TCP는 데이터가 안전하고 정확하게 도착하도록 보장하기 때문이다.
- 이 두 프로토콜이 결합된 TCP/IP 모델은 오늘날의 인터넷 통신의 기초를 이루는 표준 프로토콜 스택으로, 다양한 네트워크 환경에서 안정적이고 효율적인 데이터 전송을 가능하게 한다.
**패킷

패킷이란 네트워크에서 데이터의 전송 단위를 말하는데, 헤더, 데이터, 트레일러 구조로 구성된다.
- 헤더(Header):
- 목적지 주소 - 패킷이 전송되어야 할 대상의 네트워크 주소
- 출발지 주소 - 패킷을 전송한 장치의 네트워크 주소
- 프로토콜 정보 - 패킷에 담긴 데이터가 어떤 프로토콜(TCP, UDP 등)을 사용했는지 나타냄
- 길이 - 패킷의 크기
- 기타 정보 - 패킷 순서, 분할 여부 등
- 오류 검사 정보 - 패킷이 온전히 전송되었는지 검사하는 *체크섬 등
- 데이터(Payload):
- 실제 전송하고자 하는 데이터 콘텐츠
- 트레일러(Trailer):
- 오류 검사 정보 - 패킷이 온전히 전송되었는지 검사하는 체크섬(Checksum. 전송 중 데이터가 손상되었는지 확인하기 위해 계산된 간단한 오류 검증 값) 등
네트워크 장비들은 이 패킷 구조를 이용해 데이터를 효율적으로 전송하고 처리한다.
- 패킷의 헤더 정보를 확인하여 데이터의 목적지와 프로토콜을 파악하고,
- 이 패킷을 중간에서 라우팅하거나 필터링 할 수 있다.
- 또한 트레일러의 오류 검사 정보를 통해 패킷 전송의 무결성을 확인할 수 있다.
2. 데이터를 보낼 때 — 캡슐화 과정
먼저, 데이터의 송수신 과정을 한눈에 살펴보자. 애플리케이션 계층에서 전송 계층으로 보내는 요청(request) 값들이 캡슐화 과정을 거쳐 전달되고, 다시 링크 계층을 통해 해당 서버와 통신을 하고, 해당 서버의 링크 계층으로부터 애플리케이션까지 비캡슐화 과정을 거쳐 데이터가 전송된다. 간단하게, 데이터 요청을 보내면 상위 계층에서 하위 계층 방향(애플리케이션 계층->링크 계층)으로 진행하며, 각 계층에서 요청 데이터에 여러 겹의 보호막이 덧붙여지고(목적지 서버에서 사용될 데이터를 추가하는 과정), 이것이 해당 서버에서 계층에 맞게 하나씩 벗겨지며 최종 요청 데이터가 전달되는 것이다.

이제 캡슐화 과정을 자세히 살펴보자.

캡슐화 과정은 상위(애플리케이션 계층 방향) 계층의 헤더와 데이터를 하위 계층(링크 계층 방향)의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정을 말한다. 네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위를 PDU(Protocol Data Unit) 라고 한다. PDU 는 계층 헤더 + 페이로드(상위 데이터) 로 이루어져 있다.
애플리케이션 계층의 데이터가
- 전송 계층으로 전달되면서 ‘세그먼트’ 또는 ‘데이터그램’화 되며 TCP 헤더가 붙여지게 된다.
- 인터넷 계층으로 가면서 IP 헤더가 붙여지게 되며 ‘패킷’화가 되고,
- 링크 계층으로 전달되면서 프레임 헤더와 프레임 트레일러가 붙어 ‘프레임’화가 된다.
데이터가 전송될 때 상위 계층 → 하위 계층 방향으로 내려가면서 각 계층의 규칙(프로토콜)에 맞게 헤더(Header) 가 덧붙여진다.
이 과정을 캡슐화(Encapsulation) 라고 한다.
‘세그먼트’ 또는 ‘데이터그램’화, ‘패킷’화, ‘프레임’화.. ? -> PDU 를 부르는 이름들.
PDU(Protocol Data Unit)
네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위를 PDU(Protocol Data Unit) 라고 한다.
| 계층 | 데이터 단위 (PDU) | 설명 |
| 애플리케이션 계층 | Message | 사용자 요청/응답 데이터 |
| 전송 계층 | Segment / Datagram | TCP/UDP 단위 데이터 |
| 인터넷 계층 | Packet | IP 주소 기반 데이터 |
| 링크 계층 | Frame | MAC 주소 기반 데이터 |
| 물리 계층(링크 계층에 포함) | Bit | 전기적 신호 형태 |
PDU는
- 제어 관련 정보들이 포함된 ‘헤더’,
- 데이터를 의미하는 ‘페이로드’
로 구성되어 있으며 계층마다 그리고 프로토콜마다 부르는 명칭이 다르다.
- 애플리케이션 계층: 메시지
- 전송 계층: 세그먼트(TCP), 데이터그램(UDP)
- 인터넷 계층: 패킷
- 링크 계층(데이터 링크 계층): 프레임
- 물리 계층(링크 계층에 포함): 비트
각 계층에서의 캡슐화
(1) 애플리케이션 계층 — “요청을 만든다”
사용자가 https://www.google.com을 입력하면 브라우저는 HTTP 요청 메시지를 만든다.
GET / HTTP/1.1
Host: www.google.com
- 역할: 서비스별 규칙 정의 (HTTP, FTP, DNS 등)
- 데이터 단위(PDU): 메시지 (Message)
(2) 전송 계층 — “데이터를 안전하게 나눈다”
HTTP 요청 메시지가 너무 크면 전송 계층이 이를 나누어 세그먼트(Segment) 로 분할하고, TCP 헤더를 붙인다.
TCP 헤더에는 다음과 같은 정보가 담긴다.
- 출발지 포트 / 목적지 포트
- 순서 번호 (Sequence)
- 확인 응답 번호 (ACK)
- 데이터 무결성 검사
TCP는 3-way handshake 과정을 거쳐 연결을 수립한다. (SYN → SYN+ACK → ACK)
- 역할: 신뢰성, 순서 보장, 흐름 제어
- PDU: 세그먼트 (TCP) / 데이터그램 (UDP)
(3) 인터넷 계층 — “어디로 보낼지 결정한다”
TCP 세그먼트는 IP 계층으로 전달되어 패킷(Packet) 형태로 만들어진다. IP 헤더에는 다음 정보가 포함된다.
- 출발지 IP, 목적지 IP
- TTL (Time to Live)
- 상위 프로토콜 (TCP or UDP)
이 단계에서 라우팅이 일어나며, 데이터가 어떤 경로로 목적지에 도달할지 결정된다.
(4) 링크 계층 — “실제 전송을 수행한다”
마지막으로 링크 계층에서 패킷은 프레임(Frame) 단위로 변환되어 실제 물리적 신호(전기, 빛, 전파)로 바뀐다.
- 이더넷 프레임 헤더에는 출발지와 목적지 *MAC 주소가 들어있다.
- 요청을 받는 서버에서 **ARP(Address Resolution Protocol)를 통해 ***IP 주소 → MAC 주소로 변환한 뒤 실제 전송이 이뤄진다. 즉, 실제 통신은 IP가 아닌 MAC 주소 기반으로 이루어지는 것이다.
*MAC 주소


- 2계층(OSI 7계층 기준, 데이터 링크 계층)에서 통신을 위해 네트워크 인터페이스에 할당된 고유 식별자 이다.
- 제조업체 코드인 OUI 와 제조업체별 일련 번호인 UAA 로 이루어져 있다(48비트의 16진수 12자리로 표현).
- 네트워크에 접속하는 모든 장비는 MAC 주소라는 물리적인 주소가 있어야 하고 이 주소를 이용해 서로 통신하게 된다.
- ARP 통해 IP 에 매핑된 MAC 주소를 확인. 목적지 주소가 유효하면 상위 계층인 네트워크 계층에 넘겨줌.
**ARP(Address Resolution Protocol)
컴퓨터와 컴퓨터 간의 통신은 흔히들 IP 주소 기반으로 통신한다고 알고 있지만 정확히 이야기하자면 IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신한다.
- IP 주소로부터 MAC 주소를 구하는 “IP 주소와 MAC 주소의 다리 역할” 을 하는 프로토콜이다.
- ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환한다.
- RARP(Reverse Address Resolution Protocol)를 통해 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환하기도 한다.

***IP 주소


2계층(데이터 링크 계층)은 물리 주소인 MAC 주소를 사용하고, 3계층(네트워크 계층)은 논리 주소인 IP 주소를 사용한다.
1. 출발지와 목적지 지정
IP 주소는 네트워크 상에서 데이터의 출발지(Source)와 목적지(Destination)를 명확히 구분한다. 데이터를 담은 패킷이 어디에서 왔고, 어디로 가야 하는지 알 수 있도록 해주며, 이는 인터넷 통신에서 가장 기본적이면서 핵심적인 정보이다.
2. 라우팅과 경로 결정
라우터는 패킷을 전달할 때 IP 주소를 기반으로 최적의 경로(Route)를 계산한다. 단순히 목적지만 아는 것이 아니라, 목적지까지 도달하는 여러 네트워크를 탐색하며, 각 구간별 최적 경로를 선택한다. 이를 통해 수많은 패킷이 인터넷을 통해 효율적으로 이동할 수 있다.
3. 네트워크와 호스트 구분
IP 주소는 네트워크 주소(Network Portion)와 호스트 주소(Host Portion)로 나뉘어, 같은 네트워크에 속한 장치들을 묶고, 그 안에서 개별 장치를 식별할 수 있게 한다. 이를 통해 로컬 네트워크 내부 통신과 인터넷 상 라우팅이 원활하게 이루어진다.
3. 데이터를 받을 때 — 비캡슐화 과정
서버로부터 응답이 돌아올 때는 반대로 하위 계층 → 상위 계층 방향으로 데이터가 올라오는데, 이때 각 계층은 자신이 붙인 헤더를 하나씩 제거하며 필요한 정보를 해석한다.

- 링크 계층: 프레임의 MAC 주소 확인 → IP 계층으로 전달
- 인터넷 계층: IP 주소 확인 → TCP/UDP 계층으로 전달
- 전송 계층: 세그먼트 재조립 및 순서 복원
- 애플리케이션 계층: 메시지 완성 → 브라우저가 웹 페이지 렌더링. 브라우저의 렌더링 과정 자세히 보기
이 과정을 비캡슐화(Decapsulation) 라고 한다.
주의! 디캡슐레이션하는 목적지 쪽에서는 헤더에 아무 정보가 없으면 어떤 상위 프로토콜로 올려보내주어야 할지 결정할 수 없다.
예를 들어 3계층에서 목적지 IP 주소를 확인하고 4계층으로 데이터를 올려보낼 때 헤더에 상위 프로토콜 정보가 없다면 TCP로 보내야 할지, UDP로 보내야 할지 구분할 수 없다. 4계층에서 애플리케이션 계층으로 올려보낼 때도 똑같은 문제가 발생한다. 그러므로, 이런 문제가 발생하지 않도록 인캡슐레이션하는 쪽에서는 헤더에 상위 프로토콜 지시자 정보를 포함해야 한다.
4. 마무리: 보이지 않는 협업의 결과
우리가 웹 브라우저에서 단순히 페이지를 열 때, 그 뒤에서는 수많은 데이터 조각들이 보이지 않는 협업을 하고 있다. TCP/IP 4계층은 각자의 역할을 완벽히 수행하며, 마치 팀워크를 통해 하나의 목표를 이루듯, 데이터를 목적지까지 안전하게 전달한다.
- 링크 계층: 실제 전송을 담당하며, 전기 신호, 빛, 혹은 전파로 데이터를 전달한다.
- 인터넷 계층: IP 주소를 바탕으로 데이터의 최적 경로를 찾아 목적지를 결정한다.
- 전송 계층: 데이터의 무결성과 순서를 확인하며, 손실된 패킷은 다시 요청해 완전한 전달을 보장한다.
- 애플리케이션 계층: 사용자가 이해할 수 있는 형태로 데이터를 재조합하고, 웹 페이지나 앱 화면으로 보여준다.
데이터가 목적지까지 안전하게 전달되기 위해서는 애플리케이션 계층, 전송 계층, 네트워크 계층, 링크 계층이 유기적으로 협력해야 한다. 각 계층은 자신의 역할에 따라 데이터를 처리하고, 상위 계층과 하위 계층 간에 정확히 정보를 전달함으로써 전체 통신 과정이 안정적으로 이루어진다. 이러한 계층 간의 조화 덕분에 우리는 끊김 없는 네트워크 서비스를 이용할 수 있다.
'Computer Science > Network' 카테고리의 다른 글
| HTTPS – 안전한 인터넷 통신의 절차(핸드셰이크) (0) | 2025.10.19 |
|---|---|
| URI, URL and URN (0) | 2025.08.30 |
| NAT (0) | 2025.08.17 |
| IP Address (0) | 2025.08.06 |
| MAC address (0) | 2025.08.01 |