1장 네트워크 시작하기
네트워크 구성 요소와 프로토콜, OSI 7계층·TCP/IP 프로토콜 스택, 계층별 역할과 장비, 인캡슐레이션·디캡슐레이션을 알아보자
2026년 10월 5일
개요
네트워크 공부의 첫 장이다. 네트워크가 어떤 요소로 이루어져 있는지에서 시작해, 장비들이 통신하는 규칙인 프로토콜, 그 규칙들을 계층으로 정리한 OSI 7계층과 TCP/IP, 그리고 데이터가 실제로 포장되어 오가는 인캡슐레이션과 디캡슐레이션까지 정리했다.
| 주제 | 한 줄 정리 |
|---|---|
| 네트워크 구성도 | 집에서는 Internet → 모뎀 → 공유기 → 단말이 케이블이나 무선(전송 매체)으로 이어진다 |
| 대역폭 | 통신에서 낼 수 있는 최대 전송 속도. 단위는 bps이고, 비트 단위라는 점에 주의한다 |
| 프로토콜 | 서로 통신하기 위해 정해 놓은 약속. 데이터 형식, 순서, 오류 처리 방식을 정한다 |
| OSI 7계층 | 통신 과정을 7단계로 나눈 참조 모델. 계층마다 역할과 데이터 단위(PDU)가 다르다 |
| TCP/IP | OSI를 실제 인터넷에 맞게 4계층으로 합쳐 놓은 실용 모델. 지금 네트워크는 TCP/IP + 이더넷 |
| 주소 | L2는 MAC(같은 네트워크 안), L3는 IP(네트워크 사이), L4는 포트(장치 안의 애플리케이션) |
| 장비 | 허브(L1)는 모든 포트로 뿌리고, 스위치(L2)는 필요한 포트로만 보내고, 라우터(L3)는 길을 찾는다 |
| 인캡슐레이션 | 보낼 때 계층을 내려가며 헤더를 한 겹씩 붙이고, 받을 때 한 겹씩 벗긴다 |
목차
- 네트워크 구성도 — 홈네트워크, 데이터센터 네트워크, 대역폭
- 프로토콜
- OSI 7계층과 TCP/IP 프로토콜 스택
- OSI 7계층별 이해 — 피지컬부터 애플리케이션까지
- 인캡슐레이션과 디캡슐레이션
네트워크 구성도
네트워크는 어느 입장에서 보느냐에 따라 두 가지로 나눠 볼 수 있다. 서비스를 받는 입장에서는 사용자(User)가 인터넷(Internet)에 접속하는 구조이고, 서비스를 제공하는 입장에서는 클라우드(CSP)나 IDC(데이터센터)가 인터넷을 통해 서비스를 내보내는 구조다.
홈네트워크
집에서 인터넷을 쓰려면 Internet → 모뎀 → 공유기 → 단말(노트북, 스마트폰 등) 이 네 가지가 핵심 요소다. 그리고 이 요소들이 서로 물리적으로 연결되어 있어야 하는데, 각 요소 사이를 이어 주는 인터페이스 역할을 하는 것이 케이블과 무선이다.
①은 통신사 회선(광케이블, 동축케이블), ②는 흔히 랜선이라 부르는 UTP 케이블이다. ③ 공유기와 단말 사이는 UTP 케이블로 잇기도 하고, 케이블 없이 공기를 통해 무선(Wi-Fi)으로 잇기도 한다.
여기서 케이블과 공기처럼 신호가 지나가는 길을 통틀어 전송 매체(Transmission Medium)라고 한다. 케이블도 매체의 한 종류라서, 연결 방식은 케이블로 잇는 유선 매체(UTP, 동축, 광케이블)와 공기 중의 전파로 잇는 무선 매체(Wi-Fi 등)로 나눠 보면 된다.
데이터센터 네트워크
서비스를 제공하는 쪽의 네트워크다. 수많은 서버를 멈추지 않고 운영해야 하기 때문에, 홈네트워크보다 장비가 많고 계층도 여러 겹이며 장애에 대비해 이중화되어 있다. 이 글 뒤쪽에서 다룰 라우터, 방화벽, 로드밸런서, 스위치 같은 장비들이 서버 앞단을 구성한다.
대역폭
대역폭(Bandwidth) 은 통신에서 이용할 수 있는 최대 전송 속도다. 단위는 bps(bit per second), 즉 1초에 보낼 수 있는 비트 수다.
Kbps, Mbps, Gbps는 10³씩 커진다. 1 Kbps = 1,000 bps, 1 Mbps = 1,000 Kbps, 1 Gbps = 1,000 Mbps다. 이때 단위가 바이트가 아니라 비트라는 점을 기억해 두면 좋다. 1바이트는 8비트라서, 100 Mbps 회선이라도 실제 다운로드 속도는 최대 약 12.5 MB/s다.
프로토콜
지금까지 네트워크를 이루는 장비와 연결을 살펴봤다. 그런데 장비들이 연결만 되어 있다고 대화가 되는 건 아니다. 서로 같은 말을 써야 한다.
프로토콜(Protocol) 은 서로 통신하기 위해 정해 놓은 약속이다. 네트워크에서는 데이터를 어떤 형식으로 만들고, 어떤 순서로 주고받고, 문제가 생기면 어떻게 할지를 이 약속으로 정한다.
과거에는 회선이 느려서 최대한 효율적으로 전송하는 게 중요했다. 그래서 사람이 읽는 문장 형태 대신, 꼭 필요한 정보만 이진수(bits) 단위로 빽빽하게 담도록 프로토콜을 설계했다. 지금은 회선이 훨씬 빨라져서, HTTP나 SMTP처럼 사람이 읽을 수 있는 텍스트 형태로 설계된 프로토콜도 많이 쓰인다. 물론 어떤 형태로 설계했든, 선 위로 실제 전송되는 것은 지금도 0과 1의 비트다. 텍스트도 결국 비트로 인코딩되어 보내진다.
OSI 7계층과 TCP/IP 프로토콜 스택
통신 한 번에도 여러 프로토콜이 함께 동작한다. 이 프로토콜들을 역할별로 층층이 나눠서 정리한 것이 OSI 7계층과 TCP/IP 프로토콜 스택이다.
OSI 7계층
OSI 7계층은 통신 과정을 7단계로 나눠 놓은 참조 모델이다. 각 계층은 데이터를 부르는 단위가 다른데, 이 단위를 PDU(Protocol Data Unit)라고 한다. 같은 데이터라도 계층을 지나며 그 계층의 헤더가 붙기 때문에, 어느 계층에 있느냐에 따라 이름이 바뀐다고 이해하면 된다.
| 계층 | 이름 | PDU |
|---|---|---|
| L7 | 애플리케이션 | Data |
| L6 | 프레젠테이션 | Data |
| L5 | 세션 | Data |
| L4 | 트랜스포트 | Segment |
| L3 | 네트워크 | Packet |
| L2 | 데이터링크 | Frame |
| L1 | 피지컬 | Bits |
일곱 계층은 크게 두 묶음으로 나뉜다. 애플리케이션, 프레젠테이션, 세션은 상위 계층(Upper Layer) 으로 묶어 애플리케이션 쪽으로 보고, 트랜스포트, 네트워크, 데이터링크, 피지컬은 데이터를 실제로 실어 나르는 데이터플로 계층(Data Flow Layer), 즉 하위 계층(Lower Layer) 으로 본다.
계층을 이렇게 분리한 이유는 역할과 목표를 구분하기 위해서다. 각 계층이 자기 일에만 집중하면 되니, 한 계층을 바꿔도 다른 계층은 손대지 않아도 된다. 예를 들어 유선 LAN을 Wi-Fi로 바꿔도 웹 브라우저는 그대로 쓸 수 있다.
역할이 나뉘어 있으니 보는 사람마다 관심 있는 계층도 다르다.
- 개발자는 데이터를 얼마나 잘 표현하고 처리할지에 집중한다. 데이터플로 계층은 주로 네트워크 엔지니어의 영역이라, 일반적인 애플리케이션 개발에서 그 세부 구현을 직접 다룰 일은 상대적으로 적다. 그래서 응 → 표 → 세 순서로 위에서부터 내려가며 보는 하향식(Top-down) 이 된다.
- 네트워크 엔지니어는 반대로 데이터가 잘 전달되는지에 집중한다. 피지컬 → 데이터링크 → 네트워크 → 트랜스포트 순서로 아래에서부터 올라가며 보는 상향식(Bottom-up) 이다.
TCP/IP 프로토콜 스택
OSI 7계층이 개념을 설명하기 위한 참조 모델에 가깝다면, TCP/IP는 실제 인터넷이 돌아가는 방식에 맞춘 실용성 중심의 모델이다. 지금 우리가 쓰는 네트워크는 TCP/IP와 이더넷으로 구성되어 있다.
TCP/IP는 OSI의 계층을 아래처럼 합쳐 놓았다.
바깥 상자가 TCP/IP의 4계층이고, 안쪽 상자가 거기에 대응하는 OSI 계층이다. 상위 세 계층은 하나의 애플리케이션 계층으로, 데이터링크와 피지컬은 하나의 네트워크 액세스 계층으로 합쳐졌다.
흔히 듣는 이더넷(Ethernet) 은 바로 이 데이터링크와 피지컬을 묶은 범위에서 쓰는 대표적인 유선 LAN 규칙이다. 계층의 이름은 아니고, 케이블과 전기 신호 방식(피지컬)부터 MAC 주소와 프레임 형식(데이터링크)까지 두 계층을 함께 정한 표준(IEEE 802.3)이다. 같은 범위를 무선으로 정한 것이 Wi-Fi(IEEE 802.11)다.
OSI 7계층별 이해
이제 OSI 7계층을 아래 계층부터 하나씩 올라가며 살펴보자.
1. 피지컬 계층 (L1)
피지컬 계층은 물리적인 연결을 통해 정보를 전달한다. 목적은 단순하다. 전기 신호를 그대로 잘 전달하는 것이다.
1계층 장비는 전기 신호가 들어오면 그 신호를 다시 만들어(재생성) 내보낸다. 이때 주소라는 개념이 없기 때문에 누구에게 보내는 신호인지 따지지 않고, 들어온 포트를 제외한 모든 포트에 같은 신호를 보낸다.
| 주요 장비 | 역할 |
|---|---|
| 리피터 | 약해진 신호를 다시 만들어 더 멀리 보낸다 |
| 허브 | 포트가 여러 개인 리피터. 받은 신호를 나머지 모든 포트로 보낸다 |
| 케이블 · 커넥터 | 케이블 본체를 구성한다 (UTP, 광케이블, RJ-45 등) |
| 트랜시버 | 랜(LAN)카드나 장비 포트와 케이블을 연결한다. 전기 신호와 빛 신호를 서로 바꿔 주기도 한다 |
| 탭(TAP) | 전기 신호를 복제해 다른 장비로 보낸다. 네트워크 모니터링과 패킷 분석이 목적이다 |
허브와 리피터는 신호를 판단 없이 다시 만들어 전달할 뿐이라, 허브에 연결된 장비들은 같은 신호를 나눠 쓰게 되고 한 번에 하나의 장비만 데이터를 보낼 수 있다.

4포트 이더넷 허브 — Source: Wikimedia Commons, License: Public domain
트랜시버는 스위치나 서버의 포트에 꽂아 쓰는 모듈 형태가 많다. 아래는 광케이블을 연결할 때 쓰는 SFP 트랜시버다.
![]()
SFP 광 트랜시버 — Source: Wikimedia Commons, Author: smial, License: Free Art License
탭은 두 장비 사이에 끼워 넣어, 오가는 신호를 그대로 복제해 모니터링 장비로 보낸다.

네트워크 탭 구성도 — Source: Wikimedia Commons, Author: Cubro, License: CC BY-SA 4.0
2. 데이터링크 계층 (L2)
데이터링크 계층은 피지컬 계층이 받은 전기 신호를 모아, 사람이 알아볼 수 있는 데이터 형태로 처리한다. 이 단위가 프레임(Frame) 이다.
피지컬 계층과 가장 큰 차이는 주소다. 피지컬 계층은 출발지(src)와 목적지(dst)를 모르지만, 데이터링크 계층은 MAC 주소를 정의하고 정확한 주소로 통신되는 데 초점을 둔다.
그래서 데이터링크 계층은 프레임을 받으면 먼저 내게 보낸 것이 맞는지, 내가 처리해야 하는 것인지 확인한 뒤에 데이터를 처리한다. 여러 통신이 한꺼번에 오가는 상황에서 내 것만 골라내기 위한 과정이다. 그리고 이와 별도로, 오는 도중에 데이터가 깨지지 않았는지도 확인한다. 프레임 맨 끝에 붙은 FCS(Frame Check Sequence) 값으로 손상 여부를 검사하고, 깨졌다면 그 프레임을 버린다.
![]()
이더넷 II 프레임 구조 — Source: Wikimedia Commons, License: Public domain
프레임 앞쪽에 목적지와 출발지 MAC 주소가 있고, 맨 뒤에 깨짐을 검사하는 FCS(CRC)가 붙어 있는 것을 볼 수 있다.
플로 컨트롤(Flow Control) 도 데이터링크 계층의 역할이다. 수신자가 지금 데이터를 받을 수 있는 상태인지 확인하는 작업이다. 받는 쪽이 감당하기 어려울 만큼 데이터가 몰리면 "잠깐 멈춰"라는 신호인 Pause 프레임을 보낸다.
스위치가 혼잡해지면 Pause 프레임을 보내고, 이를 받은 서버는 정해진 시간만큼 기다렸다가 다시 보낸다.
데이터링크 계층의 구성 요소는 네트워크 인터페이스 카드(NIC) 와 스위치이고, 둘 다 MAC 주소를 이해한다.
네트워크 인터페이스 카드는 부르는 이름이 많다. NIC(Network Interface Controller), 네트워크 카드, 랜 카드(LAN Card), 물리 네트워크 인터페이스, 이더넷 카드, 네트워크 어댑터 모두 같은 장치다. NIC에는 고유한 MAC 주소가 있어서, 들어온 전기 신호를 데이터로 변환한 뒤 도착지 MAC 주소를 보고 나에게 온 것이 맞는지 확인한다.
스위치는 필요한 곳에만 데이터를 보내는 장비라고 생각하면 이해하기 쉽다. 이를 위해 스위치는 먼저 어떤 단말이 어떤 MAC 주소를 갖고 있고 어느 포트에 연결되어 있는지 알아내는 주소 습득 과정을 거친다. 이렇게 배운 정보를 MAC 주소 테이블에 기록해 두고, 이후 통신할 때는 목적지가 연결된 포트로만 데이터를 보내고(포워딩) 나머지 포트로는 보내지 않는다(필터링). 통신이 필요한 포트만 사용하니 불필요한 처리가 줄고, 이더넷 네트워크 전체의 효율이 올라간다.
L1의 허브와 비교하면 차이가 분명하다. A가 B에게 보낼 때, 허브는 전기 신호를 모든 포트로 전달해서 한 번에 오직 하나의 장비만 데이터를 보낼 수 있다. 스위치는 B가 연결된 포트로만 보내기 때문에 여러 장비가 동시에 통신할 수 있다.
3. 네트워크 계층 (L3)
데이터링크 계층이 같은 네트워크 안에서 MAC 주소로 통신한다면, 네트워크 계층은 여러 네트워크를 건너 목적지까지 찾아가는 역할을 한다. 이때 쓰는 주소가 IP 주소다.
MAC 주소가 NIC에 정해진 물리적 주소라면, IP 주소는 논리적 주소다. 사용자 환경에 맞게 바꿀 수 있고, 어느 네트워크인지를 나타내는 네트워크 주소와 그 안의 어느 장치인지를 나타내는 호스트 주소로 구성된다.
네트워크 계층의 주요 장비는 라우터다. 라우터는 IP 주소를 보고 목적지까지 가는 최적의 경로를 찾아, 그 경로로 패킷을 보낸다.
4. 트랜스포트 계층 (L4)
트랜스포트 계층도 데이터플로 계층에 속하지만, 앞의 1·2·3계층과는 하는 일이 조금 다르다. 아래 계층들이 데이터를 잘 쪼개서 목적지까지 보내는 데 집중한다면, 트랜스포트 계층은 데이터가 정상적으로 잘 도착했는지 확인하는 데 집중한다.
데이터를 패킷으로 나눠 보내다 보면 중간에 패킷이 사라지거나 순서가 뒤바뀌는 일이 생긴다. 트랜스포트 계층은 빠진 패킷은 다시 보내 달라고 요청하고(재전송), 순서가 바뀐 패킷은 다시 맞춰 조립한다(재조립). 이를 위해 두 가지 번호를 쓴다.
- 시퀀스 넘버(Sequence Number): 보내는 쪽이 데이터에 붙이는 보내는 순서 번호
- ACK 넘버(Acknowledgment Number): 받는 쪽이 돌려주는 번호로, "여기까지 잘 받았으니 다음엔 이 번호부터 보내줘"라는 뜻이다. 즉 다음에 받기를 기대하는 시퀀스 넘버를 담는다.
또 트랜스포트 계층은 포트 번호로 한 장치 안의 여러 애플리케이션을 구분한다. 쉽게 생각하면, 같은 서버에서 Next.js는 3000번, Spring Boot는 8080번처럼 애플리케이션마다 다른 번호를 쓰기 때문에 데이터가 어느 애플리케이션으로 가야 할지 알 수 있는 것이다. 3000, 8080은 각 프레임워크가 정한 기본값이고, HTTP 80, HTTPS 443, SSH 22처럼 표준 서비스에 미리 정해진 0~1023번 포트는 웰노운 포트(Well-known Port)라고 부른다.
트랜스포트 계층의 장비로는 로드밸런서와 방화벽(Firewall) 이 있다. 포트 번호, 시퀀스 넘버, ACK 넘버 같은 정보를 이용해 트래픽을 여러 서버로 나누거나(부하분산), 정해진 정책에 따라 패킷을 통과시키거나 차단한다.
5. 세션 계층 (L5)
세션 계층은 양쪽 응용 프로세스 사이의 연결을 맺고 끊는 일, 즉 세션 관리를 담당한다. 통신이 에러로 중단되면 에러를 복구하고 이어서 재전송할 수 있도록 한다.
TCP 연결을 맺고 끊는 동작 자체는 트랜스포트 계층에서 일어나고, 세션 계층은 그 위에서 애플리케이션끼리의 대화 단위를 관리한다고 보면 된다. TCP/IP에서는 이 역할을 애플리케이션이 직접 맡는 경우가 많다.
6. 프레젠테이션 계층 (L6)
프레젠테이션 계층은 표현 방식이 서로 다른 애플리케이션이나 시스템끼리도 통신할 수 있게 돕는다. 데이터를 하나의 통일된 형식으로 변환해 주는 것이다. MIME 인코딩, 압축, 코드 변환, 암호화가 여기에 해당한다.
암호화가 여기에 들어가는 것도 같은 이유다. 인코딩이나 압축처럼, 암호화도 보내는 쪽에서 데이터의 모양을 바꾸고 받는 쪽에서 원래대로 되돌리는 작업이다. 데이터가 어디로 가는지와는 상관없이 데이터의 표현만 바꾸는 일이라 프레젠테이션 계층의 역할로 분류한다. 실제로 많이 쓰는 TLS는 TCP와 HTTP 사이에서 동작해서 자료마다 분류가 조금씩 다르지만, 이런 성격 때문에 OSI에서는 프레젠테이션 계층으로 설명하는 경우가 많다.
7. 애플리케이션 계층 (L7)
애플리케이션 계층은 애플리케이션 프로세스를 정의하고 수행하는 계층으로, 사용자와 가장 가까이 있어 UI와 사용자 입출력에 집중한다. HTTP, HTTPS, FTP, SMTP, Telnet 같은 프로토콜이 여기에 속한다.
계층별 주요 프로토콜과 장비
| 계층 | 주요 프로토콜 | 장비 |
|---|---|---|
| Application | HTTP, HTTPS, SMTP, SNMP, SSH | WAF, NGFW, ADC |
| Presentation | TLS, MIME | |
| Session | L2TP, NFS, RPC | |
| Transport | TCP, UDP | 로드밸런서, 방화벽 |
| Network | IPv4, IPv6, IPsec, ARP | 라우터, L3 스위치 |
| Data Link | IEEE 802.2, 이더넷(IEEE 802.3) | 스위치, NIC, 브리지 |
| Physical | 케이블, 허브, 리피터, 트랜시버, 탭 |
ARP는 IP 주소로 MAC 주소를 알아내는 프로토콜이라 네트워크 계층과 데이터링크 계층에 걸쳐 있고, 그래서 자료마다 분류가 조금씩 다르다. 흔히 함께 나오는 NAT는 프로토콜이라기보다 라우터가 IP 주소를 바꿔 주는 기능이다.
애플리케이션 계층 장비 중 NGFW(Next-Generation Firewall) 는 이름 그대로 차세대 방화벽이다. 기존 방화벽이 IP와 포트 번호만 보고 막았다면, NGFW는 데이터 안쪽까지 들여다보고 어떤 애플리케이션의 트래픽인지 구분해서 허용하거나 차단한다. 같은 443번 포트를 쓰더라도 애플리케이션별로 다른 정책을 걸 수 있는 셈이다. WAF(Web Application Firewall) 는 웹 요청 내용을 검사해 SQL 인젝션이나 XSS 같은 웹 공격을 막고, ADC(Application Delivery Controller) 는 URL이나 헤더를 보고 트래픽을 나눠 주는 애플리케이션 계층의 로드밸런서다.
인캡슐레이션과 디캡슐레이션
지금까지 각 계층이 맡은 역할을 살펴봤다. 그러면 실제로 데이터를 보낼 때 이 계층들은 어떤 순서로 데이터를 처리할까?
데이터를 보낼 때는 상위 계층에서 하위 계층으로 내려가며 각 계층이 필요한 정보를 붙이고, 마지막에 피지컬 계층에서 전기 신호 형태로 네트워크에 내보낸다. 이렇게 데이터를 보내는 과정이 인캡슐레이션(Encapsulation) 이다. 반대로 받은 전기 신호를 데이터로 바꿔 하위 계층에서 상위 계층으로 올려보내는, 데이터를 받는 과정이 디캡슐레이션(Decapsulation) 이다. 택배를 보낼 때 물건을 상자에 담고 송장을 붙이고, 받는 쪽에서는 송장을 확인하고 상자를 여는 것과 비슷하다.
패킷 기반 네트워크
현재 네트워크는 대부분 패킷 기반 네트워크다. 데이터를 패킷이라는 작은 단위로 쪼개서 보내기 때문에, 하나의 통신이 회선 전체를 차지하지 않고 여러 단말이 같은 회선으로 통신할 수 있다. 보낼 때는 데이터를 패킷으로 잘게 쪼개고, 받는 쪽에서는 패킷을 다시 큰 데이터로 재조립한다.
인캡슐레이션
인캡슐레이션은 상위 계층의 데이터를 데이터플로 계층으로 내려보내면서, 패킷에 담을 수 있도록 쪼개고 네트워크 전송에 필요한 헤더를 붙이는 과정이다.
헤더는 트랜스포트 계층(L4)부터 붙기 시작해 4 → 3 → 2로 내려가며 총 세 번 붙는다. 데이터링크 계층은 헤더와 함께 맨 뒤에 깨짐 검사용 FCS도 붙인다. 마지막 피지컬 계층은 헤더를 붙이지 않고, 완성된 데이터를 전기 신호로 바꿔 내보낸다. 그래서 최종적으로는 사람이 알아보기 힘든 10101101011010110… 같은 2진수 형태가 된다.
계층을 하나 내려갈 때마다 데이터가 한 겹씩 감싸지고, 그때마다 PDU의 이름도 Segment → Packet → Frame으로 바뀌는 것을 볼 수 있다.
디캡슐레이션
디캡슐레이션은 받은 전기 신호를 1 → 2 → 3 → 4 순서로 올려보내며 데이터 형태로 되돌리는 과정이다. 각 계층은 헤더를 확인해서 오류가 있거나 나에게 온 것이 아니면 폐기하고, 맞으면 헤더를 벗겨서 상위 계층으로 보낸다.
이때 각 계층은 인캡슐레이션 때 같은 계층이 붙였던 헤더만 확인한다. L2는 L2에서 붙였던 헤더를, L3는 L3에서 붙였던 헤더를 확인하는 식이다.
네트워크 통신
결국 네트워크 통신은 인캡슐레이션과 디캡슐레이션을 거쳐 데이터가 전송되는 과정이다. 보내는 쪽에서는 상위 계층에서 데이터플로 계층으로 내려오며 하나씩 인캡슐레이션되고, NIC에서 전기 신호로 바뀌어 목적지에 도착한다. 받는 쪽에서는 이를 다시 디캡슐레이션하며 위로 올린다.
실제로 신호를 주고받는 건 맨 아래 계층끼리지만, 각 계층의 헤더를 통해 보내는 쪽과 받는 쪽의 같은 계층끼리 논리적으로 대화하는 셈이다.
헤더에 담기는 2가지 정보
각 계층의 헤더에는 다음 두 가지 정보가 꼭 들어간다.
첫 번째는 현재 계층에서 정의하는 정보다. 각 계층의 목적에 맞는 정보를 담는다. 트랜스포트 계층(L4)은 데이터를 나누고 다시 조립해야 하니 패킷 순서를 정의하고, 순서를 확인하고, 빠진 것이 없는지 확인할 수 있도록 시퀀스 넘버와 ACK 넘버를 넣는다. 네트워크 계층(L3)은 출발지와 도착지 IP 주소를, 데이터링크 계층(L2)은 출발지와 도착지 MAC 주소를 넣는다.
두 번째는 상위 프로토콜 지시자다. 헤더를 벗겨서 위로 올려보낼 때, 어느 프로토콜에게 넘겨야 하는지 알려 주는 정보다. 예를 들어 네트워크 계층의 IP는 자기 헤더만 보고는 안의 데이터를 트랜스포트 계층의 TCP로 보내야 할지 UDP로 보내야 할지 알 수 없다. 그래서 L3 헤더에 L4의 어떤 프로토콜인지를 미리 적어 둔다. 이렇게 각 계층의 헤더에는 동작하는 계층보다 한 계층 위의 정보가 함께 명시된다.
| 계층 | 상위 프로토콜 지시자 | 예시 |
|---|---|---|
| L2 (이더넷) | EtherType | 0x0800 → IPv4, 0x86DD → IPv6 |
| L3 (IP) | Protocol | 6 → TCP, 17 → UDP |
| L4 (TCP · UDP) | 포트 번호 | 443 → HTTPS, 53 → DNS |
참고 자료
- IEEE 802.3 Ethernet, IEEE 802.3x (Pause 프레임)
- RFC 9293, Transmission Control Protocol (TCP)
- RFC 791, Internet Protocol
- RFC 6335, IANA Service Name and Transport Protocol Port Number Registry