본문으로 건너뛰기
김신건의 로그

[Network] OSI 7 Layer: 각 계층의 의미와 실전 매핑

· 수정 · 📖 약 4분 · 1,345자/단어 #osi #network #model #fundamentals
OSI 7 Layer, OSI 모델, L1, L2, L3, L4, L5, L6, L7, TCP/IP stack

정의

OSI 7 Layer 모델네트워크 통신을 7 계층으로 추상화 한 ITU-T 표준 (1984). 실제 인터넷은 TCP/IP 4-5 계층 이지만, OSI 의 개념적 분리디버깅 / 도구 분류 의 토대가 된다.

7 Layer 매트릭스

Layer이름PDU (단위)주요 프로토콜도구
L7ApplicationmessageHTTP, gRPC, DNS, SMTP, MQTT, SSHcurl, postman
L6PresentationdataTLS, JSON, Protobuf, MIME, gzipopenssl
L5SessionsessionNetBIOS, RPC, 대부분 통합-
L4TransportsegmentTCP, UDP, QUIC, SCTPnetstat, ss, tcpdump
L3NetworkpacketIP, ICMP, BGP, OSPFtraceroute, ping
L2Data LinkframeEthernet, WiFi, ARP, MACarp, wireshark
L1Physicalbit케이블, 무선 신호, 전기/광 신호-

TCP/IP 와의 매핑

실제 인터넷은 4-5 계층 의 TCP/IP. OSI 의 5/6/7 이 Application 으로 통합:

flowchart TB
    subgraph OSI["OSI 7 Layer"]
        O7[L7 Application]
        O6[L6 Presentation]
        O5[L5 Session]
        O4[L4 Transport]
        O3[L3 Network]
        O2[L2 Data Link]
        O1[L1 Physical]
    end
    subgraph TCPIP["TCP/IP 4 Layer"]
        T4[Application]
        T3[Transport]
        T2[Internet]
        T1[Link]
    end
    O7 --> T4
    O6 --> T4
    O5 --> T4
    O4 --> T3
    O3 --> T2
    O2 --> T1
    O1 --> T1

각 계층 깊게

L7 Application

사용자 의도와 가장 가까운 계층. 응용 프로그램이 직접 사용하는 프로토콜.

프로토콜포트설명
HTTP/1.180텍스트 기반 웹 요청/응답
HTTPS443HTTP + TLS
HTTP/2443멀티플렉싱, 헤더 압축
HTTP/3443 (UDP)QUIC 기반
DNS53 (UDP/TCP)도메인 → IP 변환
SMTP25 / 465 (TLS)이메일 전송
SSH22암호화 원격 셸
gRPC443HTTP/2 위 RPC 프레임워크

예시:

GET /api/users HTTP/1.1
Host: example.com
Authorization: Bearer eyJhbGci...

자세한 건 HTTP/1.1, HTTP/2, HTTP/3, gRPC, network-dns.

L6 Presentation

데이터 표현 변환 계층. 직렬화, 압축, 암호화.

역할
암호화 / 복호화TLS (실제로는 L4-L7 사이)
직렬화JSON, Protobuf, MessagePack, CBOR
압축gzip, deflate, brotli, zstd
문자 인코딩UTF-8, MIME Base64

현대 프로토콜에서는 L5/L6 경계가 모호하고, 응용 계층(L7) 과 통합되는 경우가 많다.

L5 Session

세션 관리 계층. 대화의 시작/유지/종료.

현대에서는 L7 의 일부 또는 애플리케이션 자체 가 담당한다.

  • HTTP cookie: 상태 없는 HTTP 위에서 세션 유지
  • JWT: 토큰 기반 세션 상태 관리
  • WebSocket: HTTP Upgrade 후 지속 세션 유지

L4 Transport

end-to-end 신뢰성 + 흐름 제어. 포트 번호로 프로세스 식별.

프로토콜신뢰성순서 보장흐름제어주요 사용
TCPOOOHTTP, SSH, DB 연결
UDPXXXDNS, VoIP, 게임, QUIC
QUICOO (stream 별)OHTTP/3
SCTPO옵션OWebRTC DataChannel

포트 범위:

  • Well-known (0-1023): HTTP(80), HTTPS(443), SSH(22), DNS(53)
  • Registered (1024-49151): 애플리케이션 공식 등록
  • Dynamic/Ephemeral (49152-65535): 클라이언트 임시 포트

자세한 건 TCP, UDP, QUIC.

L3 Network

IP 라우팅. 패킷이 목적지까지 어떤 경로로 갈지 결정. 라우터의 영역.

프로토콜역할
IPv4 / IPv6주소 지정 및 패킷 전달
ICMP제어 메시지 (ping, traceroute, TTL Exceeded)
BGP인터넷 AS 간 경로 교환 (인터넷의 뼈대)
OSPF / IS-ISAS 내부 링크 상태 라우팅
ARPIP → MAC 주소 매핑 (L2/L3 경계)

TTL (Time to Live): 각 라우터 통과 시 1 감소, 0 이 되면 폐기. traceroute 는 TTL 을 1씩 증가시키며 각 라우터의 ICMP TTL Exceeded 응답을 수집.

자세한 건 IP.

같은 LAN 안MAC 주소 기반 통신. 스위치, WiFi AP 의 영역.

프로토콜설명
Ethernet (IEEE 802.3)유선 LAN 표준, 최대 1500 byte MTU
WiFi (IEEE 802.11)무선 LAN, 802.11ax (WiFi 6)
ARPIP 주소를 MAC 주소로 변환
VLAN (802.1Q)하나의 물리 스위치를 논리적으로 분리
PPP점대점 링크 (WAN, DSL)

Ethernet 프레임 구조:

[Dest MAC (6B)][Src MAC (6B)][EtherType (2B)][Payload][FCS (4B)]

L1 Physical

실제 전기 / 광 신호. 비트를 물리적 신호로 변환.

  • 유선: Cat5e/Cat6 (1Gbps), Cat7/Cat8 (10Gbps), 광섬유 (SM/MM)
  • 무선: 2.4GHz / 5GHz / 6GHz 대역
  • 장비: 허브, 리피터, NIC (Network Interface Card)

패킷의 캡슐화

송신 측이 데이터를 아래 계층으로 내려보낼 때 각 계층이 헤더를 추가(캡슐화). 수신 측은 역순으로 헤더를 제거(역캡슐화).

flowchart TB
    L7Msg["L7 HTTP: GET /api/x"]
    L7Msg -->|"L6/L5 처리"| L6Frame["+ TLS 암호화 래퍼"]
    L6Frame -->|"L4 TCP 헤더 추가"| L4Frame["TCP header + payload"]
    L4Frame -->|"L3 IP 헤더 추가"| L3Frame["IP header + TCP segment"]
    L3Frame -->|"L2 Ethernet 프레임 래핑"| L2Frame["Ethernet header + IP packet + FCS"]
    L2Frame -->|"L1 변환"| Bit["bits on wire"]

각 계층이 자기 헤더덧붙임. 수신 측은 역순으로 벗겨 올라간다.

실제 패킷 크기 예시

HTTP 요청 200 byte
  + TLS 레코드 헤더: 5 byte
  = TLS payload: 205 byte
    + TCP 헤더: 20 byte
    = TCP segment: 225 byte
      + IP 헤더: 20 byte
      = IP packet: 245 byte
        + Ethernet 헤더: 14 byte
        + Ethernet FCS: 4 byte
        = Ethernet frame: 263 byte

실전: 어디서 무엇이 깨졌나?

문제 진단의 층 별 도구:

flowchart TB
    Issue{문제 발생} --> Q1{ping 가능?}
    Q1 -->|아니오| L3Layer["L3 문제<br/>routing, firewall, DNS"]
    Q1 -->|예| Q2{telnet/nc port?}
    Q2 -->|아니오| L4Layer["L4 문제<br/>port closed, firewall"]
    Q2 -->|예| Q3{TLS handshake OK?}
    Q3 -->|아니오| L6Layer["L6 문제<br/>cert, SNI"]
    Q3 -->|예| Q4{HTTP 200?}
    Q4 -->|아니오| L7Layer["L7 문제<br/>application, auth"]
    Q4 -->|예| AppLogic["애플리케이션 로직"]
도구담당 계층용도
pingL3 (ICMP)기본 연결성 확인
traceroute / tracertL3경로 추적, 지연 구간 식별
nc / telnet host portL4포트 개방 여부 확인
nmapL4포트 스캔
openssl s_clientL6 (TLS)TLS 핸드셰이크 확인
curl -vL7 (HTTP)HTTP 요청/응답 전체 확인
dig / nslookupL7 (DNS)도메인 → IP 조회
tcpdump / wiresharkL2-L7 (raw)패킷 캡처 및 분석
ss / netstatL4소켓 연결 상태 확인

실전 디버깅 시나리오

서비스가 갑자기 응답 없을 때:

# 1. L3: 기본 연결성
ping api.example.com

# 2. L3: 경로 추적
traceroute api.example.com

# 3. L4: 포트 접근
nc -zv api.example.com 443

# 4. L6: TLS 핸드셰이크
openssl s_client -connect api.example.com:443 -servername api.example.com

# 5. L7: HTTP 요청
curl -v https://api.example.com/health

계층 간 상호작용 예시

HTTP/1.1 GET 요청이 서버에 도달하기까지:

sequenceDiagram
    participant App as L7 Application
    participant TLS as L6 TLS
    participant TCP as L4 TCP
    participant IP as L3 IP
    participant ETH as L2 Ethernet
    App->>TLS: HTTP 요청 평문
    TLS->>TCP: 암호화된 TLS 레코드
    TCP->>IP: TCP 세그먼트
    IP->>ETH: IP 패킷
    ETH->>ETH: 비트 전송
    note over ETH: 물리 계층 전달 후 역순 복원

흔한 함정

WARNING

  1. “L7 문제”로 단정: 실제는 L4 timeout 일 수 있다. 계층별로 위에서 아래로 분리 진단.
  2. TLS 가 L4 라는 오해: TLS 는 L5/L6 사이. L4 (TCP/UDP) 위에서 동작.
  3. HTTPS 인증서 문제를 방화벽 탓으로: openssl s_client 로 핸드셰이크 만 따로 확인.
  4. DNS 가 L7 인지 L3 인지 혼동: DNS 는 L7 (애플리케이션). UDP/TCP 53 위에서 동작.
  5. QUIC 은 L4?: QUIC 은 L3 (IP/UDP) 위에서 L4+L5+L6 역할을 모두 수행. 기존 OSI 모델로 정확히 분류 어려움.

관련 위키

이 글의 용어 (11개)
[Network] CIDR와 Subnettingnetwork
정의 CIDR (Classless Inter-Domain Routing) 은 IPv4 / IPv6 주소를 prefix length 로 표기하는 표준. 1993년 등장 (RFC 1…
[Network] DNS: 도메인 이름 해석network
정의 DNS (Domain Name System) 는 도메인 이름 ( ) 을 IP 주소 ( ) 로 변환하는 분산 데이터베이스. 인터넷의 가장 중요한 인프라. 기본 동작: 1. 클…
[Network] gRPC: HTTP/2 + Protobuf, 4가지 streaming 패턴network
정의 gRPC 는 HTTP/2 위에서 Protobuf 직렬화 로 동작하는 고성능 RPC 프레임워크. Google 내부 Stubby 의 오픈소스 후계. 핵심 4가지: 1. Prot…
[Network] HTTP/1.1: keep-alive, pipelining, chunked transfernetwork
정의 HTTP/1.1 (1997, RFC 9112 으로 재정리) 는 텍스트 기반 stateless request/response 프로토콜. 2026 시점에도 대부분의 트래픽이 H…
[Network] HTTP/2: multiplexing, HPACK, server push의 종말network
정의 HTTP/2 (2015, RFC 9113) 는 HTTP/1.1 의 문법은 유지하되 전송을 바이너리 + 멀티플렉싱 으로 바꾼다. Head-of-Line Blocking (HT…
[Network] HTTP/3: QUIC 위의 HTTP, 0-RTT, connection migrationnetwork
정의 HTTP/3 (2022, RFC 9114)는 HTTP의 전송 레이어를 TCP 에서 QUIC 으로 교체한 버전이다. UDP 위에 QUIC, QUIC 위에 HTTP 구조다. 핵…
[Network] IP: IPv4, IPv6, 패킷 구조, fragmentationnetwork
정의 IP (Internet Protocol) 는 OSI L3 (네트워크 계층) 의 핵심 프로토콜. best-effort delivery (재전송 없음, 순서 보장 없음, 손실 …
QUICnetwork
정의 QUIC (Quick UDP Internet Connections)은 Google이 2012년 처음 제안하고 2021년 RFC 9000으로 표준화된 UDP 기반 전송 프로토…
TCPnetwork
정의 TCP (Transmission Control Protocol) 는 신뢰성 있는 연결 지향 전송 계층 프로토콜이다. RFC 9293 으로 정의되어 있다. HTTP/1.1·2…
TLS / SSLnetwork
정의 TLS (Transport Layer Security) 는 (또는 위 ) 위에서 동작하는 암호화·인증 프로토콜이다. SSL 은 TLS 의 전신 (Netscape 1995, …
UDPnetwork
정의 UDP (User Datagram Protocol)는 비연결·비신뢰 전송 계층 프로토콜이다. RFC 768 (1980) 로 정의되었다. TCP 와 대비된다. "보내고 잊는다…

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기