이종관
글 목록으로

네트워크 계층 모델과 데이터 통신

OSI 7계층, TCP/IP, HTTP/2/3, TLS, WebSocket 등 네트워크 프로토콜 총정리

2025년 1월 6일·14 min read·
backend
network
tcp-ip
http
tls
websocket

상위 노트: 웹 프로토콜 및 네트워크 관련 노트: 전송 계층, 네트워크 계층, 응용 계층

개요

네트워크 통신은 여러 계층으로 나뉘어 각 계층이 독립적으로 동작한다. 이 계층 모델을 이해하는 것은 네트워크 문제를 진단하고, 시스템 아키텍처를 설계하는 데 필수적이다. OSI 7계층과 TCP/IP 4계층 모델을 매핑하고, 데이터가 각 계층을 거치며 어떻게 변환되는지 살펴본다.

1. OSI 7계층 모델

각 계층 설명

계층이름역할PDU주요 장비/프로토콜
7응용 계층 (Application)사용자 서비스 제공DataHTTP, FTP, SMTP, DNS, gRPC
6표현 계층 (Presentation)데이터 형식 변환, 암호화DataSSL/TLS, JPEG, MPEG, ASCII
5세션 계층 (Session)세션 설정/관리/종료DataNetBIOS, RPC
4전송 계층 (Transport)종단 간 신뢰성 있는 전송SegmentTCP, UDP, QUIC
3네트워크 계층 (Network)논리 주소, 라우팅PacketIP, ICMP, OSPF, BGP
2데이터 링크 계층 (Data Link)물리 주소, 프레임 전송FrameEthernet, Wi-Fi, ARP, Switch
1물리 계층 (Physical)비트 전송, 전기/광 신호Bit케이블, 허브, 리피터

각 계층의 백엔드 관련성

계층백엔드에서 직접 다루는 경우
7 (응용)매일 -- HTTP API 설계, gRPC, WebSocket
6 (표현)자주 -- TLS 설정, JSON/Protobuf 직렬화
5 (세션)가끔 -- 세션 관리, Keep-Alive
4 (전송)자주 -- TCP 튜닝, 포트 관리, 로드밸런서
3 (네트워크)가끔 -- 서브넷 설정, VPC 라우팅, K8s 네트워크
2 (데이터 링크)드물게 -- 인프라 수준 (MAC 주소, VLAN)
1 (물리)거의 없음 -- 데이터센터 운영팀 영역

2. TCP/IP 4계층 모델

OSI와 TCP/IP 매핑

plaintext
OSI 7계층               TCP/IP 4계층
┌─────────────┐
│ 7. 응용     │
├─────────────┤       ┌─────────────┐
│ 6. 표현     │  →→→  │ 4. 응용      │
├─────────────┤       │ (Application)│
│ 5. 세션     │       └─────────────┘
├─────────────┤       ┌─────────────┐
│ 4. 전송     │  →→→  │ 3. 전송      │
│             │       │ (Transport)  │
├─────────────┤       └─────────────┘
│ 3. 네트워크  │  →→→  ┌─────────────┐
│             │       │ 2. 인터넷    │
├─────────────┤       │ (Internet)   │
│ 2. 데이터링크│       └─────────────┘
├─────────────┤  →→→  ┌─────────────┐
│ 1. 물리     │       │ 1. 네트워크   │
│             │       │ 접근(Network │
└─────────────┘       │ Access)     │
                      └─────────────┘

상세 매핑 테이블

TCP/IP 계층OSI 매핑PDU주요 프로토콜주요 장비
4. 응용7+6+5메시지 (Data)HTTP, HTTPS, DNS, FTP, SMTP, SSH, gRPC게이트웨이, L7 로드밸런서
3. 전송4세그먼트 (Segment) / 데이터그램 (Datagram)TCP, UDP, QUIC, SCTPL4 로드밸런서
2. 인터넷3패킷 (Packet)IPv4, IPv6, ICMP, ARP, OSPF, BGP라우터, L3 스위치
1. 네트워크 접근2+1프레임 (Frame) / 비트 (Bit)Ethernet, Wi-Fi (802.11), PPP스위치, NIC, 케이블

3. 데이터 캡슐화 (Data Encapsulation)

전송 과정

데이터가 송신 측에서 각 계층을 내려가며 **헤더(Header)**가 추가되고, 수신 측에서 올라가며 헤더가 제거된다.

plaintext
송신 측 (캡슐화):
 
응용 계층:    [HTTP 헤더 | HTTP 본문]
                    ↓ + TCP 헤더 추가
전송 계층:    [TCP 헤더 | HTTP 헤더 | HTTP 본문]
                    ↓ + IP 헤더 추가
네트워크 계층: [IP 헤더 | TCP 헤더 | HTTP 헤더 | HTTP 본문]
                    ↓ + Ethernet 헤더/트레일러 추가
데이터링크:   [Eth 헤더 | IP 헤더 | TCP 헤더 | HTTP 데이터 | Eth 트레일러]
                    ↓ 비트로 변환
물리 계층:    01001010110101010101001010101010...

역캡슐화 (수신 측)

plaintext
물리 계층:    비트 수신 → 프레임 복원
                    ↓ Ethernet 헤더 제거
데이터링크:   [IP 헤더 | TCP 헤더 | HTTP 데이터]
                    ↓ IP 헤더 제거
네트워크 계층: [TCP 헤더 | HTTP 데이터]
                    ↓ TCP 헤더 제거
전송 계층:    [HTTP 데이터]
                    ↓ 응용 프로그램에 전달
응용 계층:    HTTP 응답 처리

PDU (Protocol Data Unit) 정리

계층PDU 이름포함 정보
응용메시지 (Message)실제 애플리케이션 데이터
전송세그먼트 (Segment, TCP) / 데이터그램 (Datagram, UDP)포트 번호, 시퀀스 번호, 체크섬
네트워크패킷 (Packet)출발/도착 IP 주소, TTL
데이터 링크프레임 (Frame)출발/도착 MAC 주소, CRC
물리비트 (Bit)전기/광/무선 신호

4. 각 계층의 주요 헤더 구조

TCP 헤더 (20-60 바이트)

plaintext
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
├─────────────────────────┼─────────────────────────┤
│     Source Port (16)    │  Destination Port (16)  │
├─────────────────────────┴─────────────────────────┤
│              Sequence Number (32)                  │
├───────────────────────────────────────────────────┤
│           Acknowledgment Number (32)              │
├────────┬──────┬─┬─┬─┬─┬─┬─┼─────────────────────┤
│Offset  │Rsrvd │U│A│P│R│S│F│    Window Size (16)  │
│  (4)   │ (6)  │R│C│S│S│Y│I│                      │
│        │      │G│K│H│T│N│N│                      │
├────────┴──────┴─┴─┴─┴─┴─┴─┼─────────────────────┤
│     Checksum (16)          │   Urgent Pointer (16)│
├────────────────────────────┴─────────────────────┤
│              Options (variable)                   │
└───────────────────────────────────────────────────┘

IPv4 헤더 (20-60 바이트)

plaintext
├─────────┬─────────┬─────────────────────────────┤
│ Version │   IHL   │    Type of Service (8)       │
│  (4)    │  (4)    │                              │
├─────────┴─────────┼─────────────────────────────┤
│   Total Length (16)│     Identification (16)     │
├────────────────────┼──┬──────────────────────────┤
│  Flags (3)         │  │  Fragment Offset (13)    │
├────────────────────┼──┴──────────────────────────┤
│    TTL (8)         │  Protocol (8)  │ Header     │
│                    │  (6=TCP,17=UDP)│ Checksum   │
├────────────────────┴───────────────┴─────────────┤
│              Source IP Address (32)               │
├──────────────────────────────────────────────────┤
│           Destination IP Address (32)            │
└──────────────────────────────────────────────────┘

5. 네트워크 장비와 계층 매핑

장비동작 계층역할백엔드 관련성
허브 (Hub)L1 (물리)신호 증폭, 모든 포트로 전송현재 거의 사용 안 함
스위치 (Switch)L2 (데이터 링크)MAC 주소 기반 프레임 전달VLAN 설정, 네트워크 격리
라우터 (Router)L3 (네트워크)IP 주소 기반 패킷 라우팅VPC, 서브넷, 게이트웨이
L4 로드밸런서L4 (전송)TCP/UDP 포트 기반 부하 분산HAProxy (TCP 모드), NLB
L7 로드밸런서L7 (응용)HTTP 헤더/URL 기반 부하 분산Nginx, ALB, Envoy
방화벽L3-L7패킷/세션 기반 접근 제어보안 그룹, WAF

6. SDN (Software Defined Networking) -- 네트워크의 패러다임 전환

전통적 네트워크 vs SDN

특성전통적 네트워크SDN
제어부각 장비에 분산중앙 집중 (Controller)
설정장비별 CLI/GUI프로그래밍 가능 (API)
유연성낮음 (하드웨어 종속)높음 (소프트웨어 정의)
장애 격리어려움중앙 모니터링으로 용이

SDN 아키텍처

plaintext
┌─────────────────────────────────────┐
│       Application Layer             │
│  네트워크 앱 (방화벽, 로드밸런서, 모니터링) │
├──────────── Northbound API ─────────┤
│       Control Layer                 │
│  SDN Controller (OpenDaylight,      │
│  ONOS, VMware NSX)                  │
├──────────── Southbound API ─────────┤
│  (OpenFlow, P4, NETCONF)            │
│       Infrastructure Layer          │
│  스위치, 라우터 (데이터 전달만 담당)     │
└─────────────────────────────────────┘

백엔드에서의 SDN

사용 사례설명
Kubernetes CNICalico, Cilium 등이 SDN 원리로 Pod 네트워크 관리
AWS VPC소프트웨어 정의 가상 네트워크
서비스 메시Istio/Envoy가 애플리케이션 레벨에서 트래픽 제어
OpenStack Neutron프라이빗 클라우드 네트워크 관리

7. NFV (Network Function Virtualization) -- 네트워크 기능 가상화

개념

전통적으로 전용 하드웨어(방화벽, 로드밸런서, IDS)에서 수행하던 네트워크 기능을 범용 서버에서 소프트웨어로 구현하는 기술.

전통적 접근 vs NFV

plaintext
전통:  [전용 방화벽] [전용 로드밸런서] [전용 IDS]
         ↓              ↓              ↓
       고가 하드웨어    고가 하드웨어    고가 하드웨어
 
NFV:   [범용 서버]
       ├── VM/컨테이너: 가상 방화벽 (vFW)
       ├── VM/컨테이너: 가상 로드밸런서 (vLB)
       └── VM/컨테이너: 가상 IDS (vIDS)

NFV 핵심 구성 요소

구성 요소설명
VNF (Virtual Network Function)가상화된 네트워크 기능 (방화벽, 라우터 등)
NFVI (NFV Infrastructure)VNF가 실행되는 하드웨어 + 가상화 레이어
MANO (Management and Orchestration)VNF 생명주기 관리, 자원 할당

SDN + NFV 통합

SDN이 네트워크 제어를 소프트웨어로, NFV가 네트워크 기능을 소프트웨어로 전환한다. 둘을 결합하면:

  • 네트워크 인프라 전체를 프로그래밍 가능
  • 수요에 따라 네트워크 기능을 동적으로 스케일링
  • 5G 네트워크 슬라이싱의 기술적 기반 (네트워크 보안 및 무선 통신)

8. 프로토콜 스택 실습: 패킷 분석

Wireshark로 패킷 분석

bash
# tcpdump로 패킷 캡처 (Wireshark에서 분석)
sudo tcpdump -i eth0 -w capture.pcap port 80
 
# 특정 호스트의 DNS 패킷만 캡처
sudo tcpdump -i eth0 -w dns.pcap port 53
 
# HTTP 요청 텍스트만 출력
sudo tcpdump -i eth0 -A port 80

실제 패킷 구조 예시 (HTTP GET)

plaintext
[Ethernet Frame]
  Dst MAC: aa:bb:cc:dd:ee:ff
  Src MAC: 11:22:33:44:55:66
  Type: 0x0800 (IPv4)
 
  [IPv4 Packet]
    Version: 4
    TTL: 64
    Protocol: 6 (TCP)
    Src IP: 192.168.1.100
    Dst IP: 93.184.216.34
 
    [TCP Segment]
      Src Port: 54321
      Dst Port: 80
      Seq: 1
      Ack: 1
      Flags: PSH, ACK
 
      [HTTP Request]
        GET /index.html HTTP/1.1
        Host: example.com
        Connection: keep-alive

9. 오버레이 네트워크 (Overlay Network)

개념

기존 물리 네트워크(Underlay) 위에 논리적인 가상 네트워크를 구축하는 기술.

주요 프로토콜

프로토콜설명사용
VXLANL2 프레임을 UDP로 캡슐화 (16M VLAN ID)Docker Overlay, VMware NSX
GENEVEVXLAN 후속, 유연한 메타데이터OVN, AWS
WireGuard경량 VPN 터널링보안 오버레이
IPsecIP 레벨 암호화 터널Site-to-Site VPN

Kubernetes 오버레이 네트워크

plaintext
┌─────────────────────────────────────┐
│             K8s Cluster             │
│                                     │
│  Node A (10.0.0.1)                  │
│  ┌─────────────────┐               │
│  │ Pod 1 (10.244.0.2)│              │
│  │ Pod 2 (10.244.0.3)│              │
│  └────────┬────────┘               │
│           │ VXLAN/GENEVE            │
│  Node B (10.0.0.2)                  │
│  ┌─────────────────┐               │
│  │ Pod 3 (10.244.1.2)│              │
│  │ Pod 4 (10.244.1.3)│              │
│  └─────────────────┘               │
└─────────────────────────────────────┘
 
Pod 1 → Pod 3 통신:
  원본 패킷: Src=10.244.0.2, Dst=10.244.1.2
  오버레이: VXLAN 캡슐화 → Src=10.0.0.1, Dst=10.0.0.2 (UDP 4789)
  Node B에서 역캡슐화 → 원본 패킷 → Pod 3에 전달

10. P4 -- 프로그래머블 데이터 플레인

개념

P4(Programming Protocol-Independent Packet Processors)는 네트워크 스위치의 패킷 처리 로직을 프로그래밍할 수 있게 하는 언어다.

p4
// P4 간단 예시: IPv4 포워딩
header ipv4_t {
    bit<4>  version;
    bit<8>  ttl;
    bit<32> srcAddr;
    bit<32> dstAddr;
}
 
control MyIngress(inout headers hdr, ...) {
    action forward(bit<9> port) {
        standard_metadata.egress_spec = port;
        hdr.ipv4.ttl = hdr.ipv4.ttl - 1;
    }
 
    table ipv4_lpm {
        key = { hdr.ipv4.dstAddr: lpm; }
        actions = { forward; drop; }
    }
 
    apply { ipv4_lpm.apply(); }
}

의의

  • 기존: 스위치 제조사가 정한 프로토콜만 처리 가능
  • P4: 새로운 프로토콜을 스위치 교체 없이 프로그래밍
  • 활용: 인밴드 텔레메트리(INT), 커스텀 로드밸런싱, 캐시 가속

다음 노트

→ 전송 계층: TCP, UDP, QUIC, 혼잡 제어 알고리즘