안동민 개발노트

본문 시작

OSI 7계층 모델

물리 계층부터 응용 계층까지 OSI 7계층의 역할·데이터 단위·대표 장비와 프로토콜을 연결해 이해합니다.

계층화의 필요성을 이해했으니, 이제 실제로 어떤 계층들이 존재하는지 살펴볼 차례입니다.

네트워크 계층을 설명할 때 가장 자주 쓰는 참조 모델이 OSI(Open Systems Interconnection) 7계층 모델입니다.

1984년 ISO(국제표준화기구)가 발표한 이 모델은, 통신 과정을 7개의 계층으로 나누어 각 계층의 역할을 명확히 정의합니다.

실무에서 직접 사용되는 모델은 아니지만, 네트워크를 이해하고 문제를 진단할 때 여전히 가장 널리 사용되는 참조 프레임워크입니다.


7개 계층의 순서

외우는 팁: All People Seem To Need Data Processing (7→1) 또는 Please Do Not Throw Sausage Pizza Away (1→7).


각 계층의 역할

1계층 — 물리 계층 (Physical Layer)

0과 1로 이루어진 비트를 실제 전기 신호, 빛, 전파 등의 물리적 신호로 변환하여 전송합니다.

케이블의 종류, 핀 배치, 전압 레벨, 주파수 같은 것들이 이 계층에서 정의됩니다.

속성물리 계층에서 정의
전송 매체UTP, 광섬유, 전파
신호 유형전기, 빛, 전자파
데이터 속도100Mbps, 1Gbps, 10Gbps
커넥터RJ-45, SC, LC
인코딩NRZ, Manchester, 4B/5B

이 계층은 데이터가 무슨 의미인지는 전혀 관여하지 않고, 오직 비트를 매체에 실어 보내는 것만 담당합니다.

같은 네트워크 안에 있는 장치들 사이에서 데이터를 프레임 단위로 전달합니다.

비트들을 프레임(Frame) 단위로 묶습니다. Ethernet·Wi-Fi는 MAC 주소로 로컬 목적지를 식별하지만 모든 링크 프로토콜이 동일한 MAC 주소 형식을 쓰는 것은 아닙니다.

오류 감지(CRC/FCS)도 이 계층에서 수행합니다.

프레임이 전송 도중 손상되었는지 수학적으로 검증하고, 손상된 프레임은 보통 버립니다.

주요 장비는 스위치입니다.

3계층 — 네트워크 계층 (Network Layer)

서로 다른 네트워크 간의 통신을 담당합니다.

IP 주소를 기반으로 라우팅 프로토콜의 지표와 운영 정책에 따라 경로를 선택하는 라우팅이 핵심 역할입니다.

데이터 단위는 패킷(Packet)입니다.

인터넷에서 데이터가 여러 라우터를 거쳐 목적지까지 도달할 수 있는 것은 이 계층 덕분입니다.

주요 장비는 라우터입니다.

4계층 — 전송 계층 (Transport Layer)

출발지와 목적지의 프로세스 간 통신을 관리합니다.

네트워크 계층이 어떤 컴퓨터로 보낼까를 결정한다면, 전송 계층은 그 컴퓨터의 어떤 프로그램에 전달할까를 결정합니다.

  • TCP: 연결을 맺고 순서가 있는 신뢰성 있는 바이트 스트림을 제공합니다. 웹·이메일·파일 전송 등에 쓰입니다. 응용 프로그램의 업무 처리 성공까지 보장하지는 않습니다.
  • UDP: 비연결 데이터그램 전달이며 UDP 자체는 순서·재전송을 제공하지 않습니다. 스트리밍·게임·DNS 등에 쓰이며, 그 위의 QUIC 같은 프로토콜이 신뢰성 기능을 더할 수 있습니다.

포트 번호는 주소·전송 프로토콜과 함께 소켓 끝점을 식별하는 데 쓰입니다. 하나의 포트가 항상 하나의 프로세스와 일대일로 대응하지는 않습니다. HTTP 80, HTTPS 443, SSH 22는 기본 포트 예시입니다.

5계층 — 세션 계층 (Session Layer)

통신 세션의 수립, 관리, 종료를 담당합니다.

두 시스템 간의 대화를 조율하는 역할입니다.

현대 인터넷에서는 이 계층이 독립적으로 구현되는 경우가 드물고, 대부분 애플리케이션 계층에 흡수되어 있습니다.

6계층 — 표현 계층 (Presentation Layer)

데이터의 형식 변환, 암호화, 압축을 담당하는 것으로 설명됩니다.

다만 현대 인터넷에서는 이 기능들이 TLS 라이브러리, HTTP, 애플리케이션 코드 안에 섞여 구현되는 경우가 많습니다.

기능예시
형식 변환ASCII ↔ EBCDIC, Unicode
암호화TLS가 제공하는 암호화 기능
압축gzip, Brotli
직렬화JSON, XML, Protocol Buffers

세션 계층과 마찬가지로 현대에는 애플리케이션 계층에 통합되는 경향이 있습니다.

7계층 — 응용 계층 (Application Layer)

사용자와 가장 가까운 계층으로, 실제 네트워크 서비스를 제공합니다.

HTTP, FTP, SMTP, DNS 같은 프로토콜이 이 계층에서 동작합니다.


계층별 대표 예시 정리

계층별 PDU와 대표 기능·장비

계층별 PDU와 대표 기능·장비

계층별 PDU와 대표 기능·장비
계층데이터 단위대표 기능·프로토콜·장비
7 · 응용메시지HTTP, DNS, SMTP, SSH, FTP
6 · 표현상위 데이터문자 인코딩, 압축, TLS의 표현 기능
5 · 세션상위 데이터RPC·NetBIOS의 세션 관리
4 · 전송TCP 세그먼트·UDP 데이터그램 등TCP, UDP, UDP 위 QUIC
3 · 네트워크IP 패킷IP, ICMP, IPv4의 IGMP · 라우터
2 · 데이터 링크프레임Ethernet·Wi-Fi MAC, PPP, VLAN · 스위치
1 · 물리비트·신호UTP, 광섬유, 전파, PHY 규격 · 허브·리피터
7 · 응용
데이터 단위: 메시지
대표 기능·프로토콜·장비: HTTP, DNS, SMTP, SSH, FTP
6 · 표현
데이터 단위: 상위 데이터
대표 기능·프로토콜·장비: 문자 인코딩, 압축, TLS의 표현 기능
5 · 세션
데이터 단위: 상위 데이터
대표 기능·프로토콜·장비: RPC·NetBIOS의 세션 관리
4 · 전송
데이터 단위: TCP 세그먼트·UDP 데이터그램 등
대표 기능·프로토콜·장비: TCP, UDP, UDP 위 QUIC
3 · 네트워크
데이터 단위: IP 패킷
대표 기능·프로토콜·장비: IP, ICMP, IPv4의 IGMP · 라우터
2 · 데이터 링크
데이터 단위: 프레임
대표 기능·프로토콜·장비: Ethernet·Wi-Fi MAC, PPP, VLAN · 스위치
1 · 물리
데이터 단위: 비트·신호
대표 기능·프로토콜·장비: UTP, 광섬유, 전파, PHY 규격 · 허브·리피터

인터넷 프로토콜의 기능을 OSI에 대응한 학습용 정리입니다. OSI 세션·표현 계층의 실제 표준 PDU 이름을 정의하는 표는 아닙니다.

이더넷과 Wi-Fi는 물리 계층과 데이터 링크 계층에 모두 걸쳐 있습니다.

실제 표준은 매체와 신호 방식뿐 아니라 프레임 포맷과 MAC 동작도 함께 정의하기 때문입니다.

ARP처럼 IP 주소와 MAC 주소 사이를 이어 주는 프로토콜은 L2/L3 경계에 놓인 기능으로 이해하면 좋습니다.


OSI 모델의 한계와 의의

한계

OSI 모델은 1984년에 발표되었지만, 당시에 이미 TCP/IP가 인터넷에서 널리 사용되고 있었습니다.

OSI는 기능과 책임을 설명하는 참조 모델이고, 인터넷에서 운용되는 TCP/IP 프로토콜 스택과 경계가 정확히 일치하지 않습니다.

5~6계층은 현대 네트워크에서 독립 계층으로 분리되어 보이지 않는 경우가 많습니다.

TLS는 구현과 관점에 따라 표현 계층 또는 응용 계층 기능으로 설명되기도 하고, 세션 관리는 HTTP의 Cookie/Session이나 WebSocket 같은 응용 계층 기술이 직접 처리하는 경우가 많습니다.

의의

그럼에도 OSI 모델은 여전히 중요합니다.

  • 공통 언어: L7 로드 밸런서, L3 스위치 같은 용어는 모두 OSI 계층 번호를 사용합니다.
  • 문제 진단 프레임워크: 이 문제가 몇 계층에서 발생한 것인가?라는 사고 방식은 네트워크 트러블슈팅의 기본입니다.
  • 학습 도구: 7개로 세분화되어 있어 각 기능의 역할을 명확히 이해할 수 있습니다.

실무의 HTTP용 L7 로드 밸런서는 헤더·URL·쿠키 등을 라우팅에 활용할 수 있습니다. 암호화된 내용을 읽으려면 TLS 종료 등 해당 정보를 볼 수 있는 조건이 필요합니다.

L4 로드 밸런서는 IP·포트·전송 프로토콜과 연결 상태 등을 이용해 트래픽을 분배합니다.

다음 함수는 학습용 분류 사전을 조회합니다. Ethernet·Wi-Fi처럼 여러 계층에 걸치는 표준도 있으므로 반환된 번호를 유일한 구현 위치로 해석하지 않습니다.

osi_quiz.py
OSI_LAYERS = {
    7: ("응용", ["HTTP", "DNS", "SMTP", "SSH"]),
    6: ("표현", ["JPEG", "gzip", "UTF-8"]),
    5: ("세션", ["RPC", "NetBIOS"]),
    4: ("전송", ["TCP", "UDP", "QUIC"]),
    3: ("네트워크", ["IP", "ICMP", "OSPF"]),
    2: ("데이터 링크", ["Ethernet", "Wi-Fi", "PPP"]),
    1: ("물리", ["UTP", "광섬유", "전파"]),
}

BOUNDARY_CASES = {
    "TLS": "표현/응용 계층 경계에서 설명되는 경우가 많음",
    "ARP": "데이터 링크와 네트워크 계층 사이를 이어 주는 경계 기능",
}

def which_layer(protocol):
    """프로토콜이 속하는 OSI 계층 찾기"""
    if protocol in BOUNDARY_CASES:
        return f"{protocol} → {BOUNDARY_CASES[protocol]}"

    for layer_num, (name, protocols) in OSI_LAYERS.items():
        if protocol in protocols:
            return f"{protocol} → L{layer_num} {name} 계층"
    return f"{protocol} → 알 수 없음"

for p in ["HTTP", "TCP", "IP", "Ethernet", "DNS", "TLS", "ARP"]:
    print(which_layer(p))

다음 절에서는 OSI 7계층이 현실에서 어떻게 단순화되어 사용되는지, TCP/IP 4계층 모델을 살펴봅니다.