네트워크 통신은 서로 다른 장비가 같은 약속을 지킬 때 가능하다. 이 글에서는 프로토콜이 왜 필요한지부터 OSI 7계층과 TCP/IP 프로토콜 스택의 관계, 그리고 데이터가 캡슐화되어 전송되고 다시 역캡슐화되는 과정을 정리한다.
들어가며
네트워크를 공부할 때 가장 먼저 마주치는 말 중 하나가 프로토콜이다. 프로토콜은 단순히 "통신 규칙"이라는 뜻으로 끝나지 않는다. 어떤 신호를 어떤 순서로 해석할지, 주소를 어디에 넣을지, 상위 계층으로 어떤 데이터를 넘길지까지 정해 둔 약속이다.
이 글은 네트워크 입문 단계에서 다음 질문에 답하는 것을 목표로 한다.
- 프로토콜은 왜 필요한가?
- OSI 7계층과 TCP/IP 프로토콜 스택은 어떤 관계인가?
- 각 계층은 어떤 역할을 맡는가?
- 계층별로 데이터를 부르는 이름은 어떻게 달라지는가?
- 데이터는 어떻게 패킷으로 쪼개져 전송되고 다시 조립되는가?
- MSS와 MTU는 어떤 차이가 있는가?
목차
- 프로토콜은 통신을 위한 약속이다
- OSI 7계층과 TCP/IP 프로토콜 스택
- OSI 7계층별 역할
- 주요 프로토콜과 장비를 계층별로 보기
- 계층별 데이터 단위
- Encapsulation과 Decapsulation
- MSS와 MTU
- 정리
프로토콜은 통신을 위한 약속이다
프로토콜은 네트워크에서 통신할 때 사용하는 규약이다. 서로 다른 장비가 데이터를 주고받으려면, 데이터를 어떤 형식으로 보낼지와 받은 데이터를 어떻게 해석할지를 미리 정해 두어야 한다.
초기의 많은 프로토콜은 문자 기반이 아니라 2진수 비트 기반으로 만들어졌다. 당시에는 컴퓨팅 자원이 적고 네트워크 속도도 느렸기 때문에, 가능한 적은 비트로 많은 의미를 전달하는 것이 중요했다. 그래서 몇 번째 비트가 출발지 주소인지, 몇 번째 비트가 목적지 주소인지, 어느 필드가 상위 프로토콜을 가리키는지 등을 세밀하게 약속해야 했다.
반면 HTTP, SMTP 같은 애플리케이션 계층 프로토콜은 사람이 읽을 수 있는 문자 기반 형식을 많이 사용한다. 예를 들어 HTTP 요청 헤더는 다음처럼 텍스트로 표현된다.
GET /api HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://example.com/
Accept-Language: ko-KR
User-Agent: Mozilla/5.0
Accept-Encoding: gzip, deflate
Host: example.com
Connection: Keep-Alive
문자 기반 프로토콜은 비트 기반 프로토콜보다 전송 효율은 떨어질 수 있다. 대신 사람이 읽고 확장하기 쉽다는 장점이 있다. HTTP 헤더에 새로운 필드를 추가해 기능을 확장할 수 있는 것도 이런 특징과 관련이 있다.
OSI 7계층과 TCP/IP 프로토콜 스택
과거에는 통신 규약이 표준화되지 않아 벤더마다 서로 다른 방식을 사용했다. 이 때문에 호환되지 않는 시스템이나 애플리케이션 사이에서는 통신이 어려웠다. 이런 문제를 해결하기 위해 네트워크 통신 과정을 계층으로 나누어 설명한 모델이 OSI 7계층이다.
OSI 7계층은 실제 프로토콜을 그대로 나타낸다기보다, 네트워크 동작을 이해하기 위한 참조 모델로 많이 사용된다. 현재 대부분의 네트워크는 OSI 모델 자체보다 TCP/IP 프로토콜 스택과 이더넷을 기반으로 동작한다.
TCP/IP 프로토콜 스택은 여러 프로토콜을 묶어 부르는 말이다. TCP와 IP만 포함하는 것이 아니라 UDP, ICMP, ARP, HTTP, SMTP, FTP 같은 다양한 프로토콜이 함께 사용된다.
OSI 7계층은 다음처럼 크게 두 영역으로 볼 수 있다.
| 구분 | 계층 | 관점 |
| 상위 계층 | 5-7계층 | 애플리케이션이 데이터를 어떻게 표현하고 사용할지에 가까운 영역 |
| 하위 계층 | 1-4계층 | 데이터를 상대방에게 어떻게 전달할지에 가까운 영역 |
애플리케이션 개발자는 보통 상위 계층에서 출발해 네트워크를 내려다보는 Top-Down 관점으로 이해한다. 반대로 네트워크 엔지니어는 물리적인 연결과 전달 흐름에서 출발하는 Bottom-Up 관점으로 바라보는 경우가 많다.
TCP/IP 모델은 OSI 모델보다 단순하게 4계층으로 구분한다.
| TCP/IP 계층 | 대표 프로토콜 또는 기술 | OSI 모델과의 대응 |
| 애플리케이션 계층 | HTTP, FTP, SSH, TELNET, DNS, SNMP | OSI 5-7계층 |
| 트랜스포트 계층 | TCP, UDP | OSI 4계층 |
| 네트워크 계층 | IP, ICMP, ARP | OSI 3계층 |
| 네트워크 인터페이스 계층 | Ethernet | OSI 1-2계층 |
TCP/IP 모델은 실제 인터넷과 이더넷 기반 네트워크를 설명하기 쉽게 단순화한 구조에 가깝다.
OSI 7계층별 역할
1계층: 물리 계층
물리 계층은 물리적인 연결과 전기 신호 전달을 다룬다. 핵심은 데이터를 해석하는 것이 아니라 신호를 잘 전달하는 것이다.
대표적인 구성 요소로는 허브, 리피터, 케이블, 커넥터, 트랜시버, 탭(TAP)이 있다. 허브나 리피터는 들어온 전기 신호를 재생성해 다른 포트로 내보낸다. 이 계층에는 주소 개념이 없기 때문에, 특정 목적지를 골라 보내기보다 들어온 포트를 제외한 모든 포트로 신호를 전달한다.
2계층: 데이터 링크 계층
데이터 링크 계층은 전기 신호를 모아 데이터 형태로 처리한다. 1계층과 달리 주소 정보를 사용한다. 이때 사용하는 주소가 MAC 주소다.
2계층에서는 목적지 MAC 주소와 출발지 MAC 주소를 확인한다. 네트워크 인터페이스 카드(NIC)는 들어온 데이터의 목적지 MAC 주소가 자신의 MAC 주소와 일치하면 처리하고, 일치하지 않으면 폐기한다.
이 계층의 대표 장비는 스위치다. 스위치는 단말이 어떤 MAC 주소를 가지며 어느 포트에 연결되어 있는지 학습한다. 이후 통신이 발생하면 필요한 포트로만 프레임을 전달한다. 허브가 전체 포트로 신호를 퍼뜨리는 것과 달리, 스위치는 필터링과 포워딩을 통해 불필요한 트래픽을 줄인다.
2계층은 에러 탐지도 수행할 수 있다. 과거에는 불안정한 전송 매체 때문에 에러 수정이나 재전송까지 담당하는 경우가 있었지만, 이더넷 기반 네트워크에서는 주로 에러를 탐지하는 역할에 초점이 맞춰진다.
3계층: 네트워크 계층
네트워크 계층은 IP 주소 같은 논리 주소를 다룬다. 네트워크 통신에는 2계층의 물리 주소인 MAC 주소와 3계층의 논리 주소인 IP 주소가 함께 사용된다.
IP 주소는 네트워크 주소 부분과 호스트 주소 부분으로 나뉜다. 3계층을 이해하는 장비는 이 정보를 사용해 자신이 속한 네트워크와 원격 네트워크를 구분할 수 있다.
대표 장비는 라우터다. 라우터는 IP 주소를 바탕으로 목적지까지 가는 경로를 찾고, 해당 경로로 패킷을 전달한다.
4계층: 트랜스포트 계층
트랜스포트 계층은 데이터가 정상적으로 전달되도록 관리한다. 패킷 기반 네트워크에서는 데이터를 여러 패킷으로 나누어 보내기 때문에, 중간에 패킷이 유실되거나 순서가 바뀔 수 있다.
이때 TCP는 시퀀스 번호(Sequence Number)와 ACK 번호(Acknowledgement Number)를 사용해 패킷 순서를 맞추고 유실된 패킷을 재전송할 수 있다. 또한 포트 번호(Port Number)를 사용해 한 장비 안의 여러 애플리케이션을 구분한다.
4계층 정보를 활용하는 장비로는 로드 밸런서와 방화벽이 있다. 이들은 포트 번호, 시퀀스 번호, ACK 번호 같은 정보를 바탕으로 부하 분산이나 접근 제어 정책을 적용할 수 있다.
5계층: 세션 계층
세션 계층은 양 끝단의 응용 프로세스가 연결을 맺고 유지하며 종료할 수 있도록 돕는다. 통신 중 문제가 생겼을 때 연결을 복구하거나 재전송을 처리하는 역할도 포함된다.
6계층: 프레젠테이션 계층
프레젠테이션 계층은 서로 다른 표현 방식을 사용하는 시스템 사이에서 데이터를 해석할 수 있도록 변환한다. 번역기나 변환기와 비슷한 역할이다.
대표적인 예로 MIME 인코딩, 암호화, 압축, 코드 변환이 있다. 이 계층 덕분에 애플리케이션은 데이터 형식 차이를 직접 모두 다루지 않아도 된다.
7계층: 애플리케이션 계층
애플리케이션 계층은 사용자와 가장 가까운 계층이다. 애플리케이션 프로세스를 정의하고, 네트워크 서비스를 수행한다.
대표적인 프로토콜로는 HTTP, FTP, SMTP, TELNET 등이 있다. 웹 브라우저가 HTTP를 통해 서버와 통신하거나, 메일 클라이언트가 SMTP를 사용하는 일이 이 계층과 관련된다.
주요 프로토콜과 장비를 계층별로 보기
계층별로 자주 등장하는 프로토콜과 장비를 정리하면 다음과 같다.
| 계층 | 주요 프로토콜 | 대표 장비 |
| 애플리케이션 계층 | HTTP, SMTP, STUN, TFTP, TELNET | ADC, NGFW, WAF |
| 프레젠테이션 계층 | TLS, AFP, SSH | |
| 세션 계층 | L2TP, PPTP, NFS, RPC, RTCP, SIP, SSH | |
| 트랜스포트 계층 | TCP, UDP, SCTP, DCCP | 로드 밸런서, 방화벽 |
| 네트워크 계층 | ARP, IPv4, IPv6, NAT, IPSec, VRRP, 라우팅 프로토콜 | 라우터, L3 스위치 |
| 데이터 링크 계층 | IEEE 802.2, FDDI | 스위치, 브리지, 네트워크 카드 |
| 물리 계층 | RS-232, RS-449, V.35, 케이블 규격 | 케이블, 허브, 탭(TAP) |
이 표는 각 계층의 경계를 외우기 위한 자료라기보다, "어떤 정보까지 보고 판단하는가"를 이해하는 데 도움이 된다. 예를 들어 라우터는 IP 주소를 보므로 3계층 장비이고, 스위치는 MAC 주소를 보므로 2계층 장비로 분류된다.
계층별 데이터 단위
네트워크 계층을 공부할 때는 각 계층에서 데이터를 부르는 이름도 함께 정리해 두면 캡슐화 과정을 이해하기 쉽다. 계층마다 관심사가 다르기 때문에 같은 사용자 데이터라도 어느 계층에서 바라보는지에 따라 이름이 달라진다. 이런 계층별 데이터 단위를 PDU(Protocol Data Unit)라고 부른다.
| OSI 계층 | 데이터 단위 | 설명 |
| 7계층 애플리케이션 계층 | Data | 사용자가 보내려는 실제 데이터에 가까운 단위 |
| 6계층 프레젠테이션 계층 | Data | 인코딩, 암호화, 압축처럼 표현 방식이 반영된 데이터 |
| 5계층 세션 계층 | Data | 세션 관리 정보와 함께 상위 애플리케이션 흐름에서 다루는 데이터 |
| 4계층 트랜스포트 계층 | Segment | TCP 헤더가 붙은 전송 단위. UDP를 기준으로는 Datagram이라고도 부른다. |
| 3계층 네트워크 계층 | Packet | IP 헤더가 붙어 목적지 네트워크까지 전달되는 단위 |
| 2계층 데이터 링크 계층 | Frame | MAC 주소 등 2계층 헤더가 붙어 같은 네트워크 구간에서 전달되는 단위 |
| 1계층 물리 계층 | Bits | 케이블이나 무선 매체를 통해 전송되는 0과 1의 신호 단위 |
예를 들어 웹 브라우저가 HTTP 요청을 보낸다고 하면, 애플리케이션 계층에서는 HTTP 요청 데이터로 볼 수 있다. 이 데이터가 4계층으로 내려가 TCP 헤더가 붙으면 Segment가 되고, 3계층에서 IP 헤더가 붙으면 Packet이 된다. 2계층에서 Ethernet 헤더와 트레일러가 붙으면 Frame이 되며, 마지막으로 1계층에서는 Bits 형태의 전기 신호나 광 신호로 전송된다.
이름이 바뀐다는 것은 데이터의 본질이 완전히 달라진다는 뜻이 아니다. 각 계층이 자신에게 필요한 헤더를 붙이고, 그 계층의 관점에서 처리할 수 있는 단위가 되었음을 뜻한다.
Encapsulation과 Decapsulation
현대 네트워크는 대부분 패킷 기반 네트워크다. 큰 데이터를 한 번에 보내는 것이 아니라, 작은 패킷 단위로 나누어 전송한다. 이렇게 하면 하나의 통신이 회선 전체를 계속 점유하지 않고 여러 단말이 동시에 네트워크를 사용할 수 있다.
데이터를 보내는 쪽에서는 상위 계층의 데이터가 하위 계층으로 내려가며 각 계층의 헤더를 덧붙인다. 이 과정을 Encapsulation, 즉 캡슐화라고 한다.

4계층은 포트 번호, 시퀀스 번호, ACK 번호처럼 전송 제어에 필요한 정보를 붙인다. 3계층은 IP 주소를 포함한 경로 판단 정보를 붙인다. 2계층은 MAC 주소를 포함한 같은 네트워크 구간 내 전달 정보를 붙인다.
받는 쪽에서는 반대로 처리한다. 전기 신호를 데이터 형태로 바꾸고, 2계층 헤더부터 확인한다. 목적지 MAC 주소가 자신이 아니면 버리고, 자신에게 온 것이 맞으면 2계층 헤더를 제거한 뒤 3계층으로 올린다. 3계층과 4계층에서도 같은 방식으로 각 계층의 헤더를 확인하고 제거한다. 이 과정을 Decapsulation, 즉 역캡슐화라고 한다.

결국 송신자는 계층을 내려가며 헤더를 붙이고, 수신자는 계층을 올라가며 헤더를 벗긴다.
포트 번호는 상위 프로토콜을 구분하는 힌트다
4계층의 포트 번호는 어떤 애플리케이션 서비스로 데이터를 전달해야 하는지 알려 주는 중요한 정보다. 자료에 제시된 잘 알려진 포트 번호는 다음과 같다.
| 포트 번호 | 서비스 |
| TCP 20, 21 | FTP(File Transfer Protocol) |
| TCP 22 | SSH(Secure Shell) |
| TCP 23 | TELNET |
| TCP 25 | SMTP(Simple Mail Transfer Protocol) |
| UDP 49 | TACACS |
| TCP 53 / UDP 53 | DNS(Domain Name Service) |
| UDP 67, 68 | BOOTP(Bootstrap Protocol) |
| TCP 80 / UDP 80 | HTTP(HyperText Transfer Protocol) |
| UDP 123 | NTP(Network Time Protocol) |
| UDP 161, 162 | SNMP(Simple Network Management Protocol) |
| TCP 443 | HTTPS |
| TCP 445 / UDP 445 | Microsoft-DS |
포트 번호만으로 모든 통신 내용을 완전히 이해할 수 있는 것은 아니다. 하지만 네트워크 장비가 트래픽을 분류하거나, 방화벽이 정책을 적용하거나, 운영자가 장애를 분석할 때 중요한 기준이 된다.
MSS와 MTU
애플리케이션이 만든 데이터는 하위 계층을 지나며 네트워크가 처리할 수 있는 크기에 맞게 나뉜다. 이때 자주 나오는 개념이 MSS와 MTU다.
MTU(Maximum Transmission Unit)는 네트워크에서 한 번에 보낼 수 있는 최대 데이터 크기를 의미한다. 일반적인 이더넷 환경에서는 MTU가 1,500바이트로 설명된다.
MSS(Maximum Segment Size)는 TCP가 한 세그먼트에 담을 수 있는 최대 데이터 크기다. MTU가 2계층에서 바라보는 전송 단위의 크기라면, MSS는 4계층에서 실제 TCP 데이터가 가질 수 있는 최대 크기에 가깝다.
일반 이더넷에서 MTU가 1,500바이트이고, IP 헤더와 TCP 헤더가 각각 20바이트라고 하면 MSS는 다음처럼 계산된다.
$$
MSS = MTU - IP\ Header - TCP\ Header
$$
$$
MSS = 1500 - 20 - 20 = 1460\ bytes
$$
즉 일반적인 이더넷 환경에서 TCP MSS 값은 1,460바이트로 설명할 수 있다. 핵심은 MTU와 MSS가 모두 크기를 나타내지만, 바라보는 계층이 다르다는 점이다.
주의할 점과 한계
OSI 7계층은 네트워크를 이해하기 위한 모델이다. 실제 구현에서는 특정 기능이 여러 계층에 걸쳐 보이거나, TCP/IP 모델처럼 더 단순한 계층 구분을 사용하는 경우가 많다. 따라서 "이 프로토콜은 반드시 이 계층 하나에만 속한다"는 식으로 외우기보다, 해당 프로토콜이나 장비가 어떤 정보를 보고 어떤 결정을 하는지에 집중하는 편이 좋다.
또한 포트 번호 표는 기본적인 학습용 기준으로 보는 것이 안전하다. 실제 환경에서는 터널링, 프록시, NAT, 보안 장비, 애플리케이션 설정에 따라 같은 포트라도 다른 방식으로 동작할 수 있다.
정리
- 프로토콜은 네트워크 통신을 가능하게 하는 규칙이며, 비트 기반 프로토콜과 문자 기반 프로토콜은 효율성과 확장성 측면에서 차이가 있다.
- OSI 7계층은 네트워크 동작을 이해하기 위한 참조 모델이고, 실제 현대 네트워크는 TCP/IP 프로토콜 스택과 이더넷을 중심으로 동작한다.
- 하위 계층은 데이터를 목적지까지 전달하는 데 초점을 맞추고, 상위 계층은 애플리케이션이 데이터를 표현하고 사용하는 방식에 가깝다.
- 캡슐화는 계층을 내려가며 헤더를 붙이는 과정이고, 역캡슐화는 계층을 올라가며 헤더를 확인하고 제거하는 과정이다.
- MTU는 네트워크에서 한 번에 전송할 수 있는 크기이고, MSS는 TCP 세그먼트에 실을 수 있는 데이터의 최대 크기다.
'CS > 네트워크' 카테고리의 다른 글
| IP Address: Classful부터 서브네팅, Public/Private까지 (0) | 2026.08.11 |
|---|---|
| 통신 유형과 MAC Address: 네트워크의 기본 주소 체계 (0) | 2026.08.11 |
| 네트워크 연결 방식과 구성 요소 (0) | 2026.08.05 |