OSI 7 Layer & TCP/IP Model

OSI 7계층 vs TCP/IP 4계층 비교, 계층별 프로토콜, Encapsulation, 디버깅


🎯 왜 계층 모델인가?

네트워크 통신은 복잡함. 이걸 한 덩어리로 다루면 설계도, 문제 해결도, 설명도 어려워짐.

계층화의 장점:

  • 각 계층은 자기 역할만 수행 (관심사 분리)
  • 한 계층이 바뀌어도 다른 계층에 영향 없음 (모듈화)
  • 문제 발생 시 어느 계층 문제인지 좁혀갈 수 있음 (디버깅)

📊 OSI 7 Layer vs TCP/IP 4 Layer

flowchart TB
    subgraph OSI["OSI 7 Layer"]
        direction TB
        O7["7. Application"]
        O6["6. Presentation"]
        O5["5. Session"]
        O4["4. Transport"]
        O3["3. Network"]
        O2["2. Data Link"]
        O1["1. Physical"]
        O7 --- O6 --- O5 --- O4 --- O3 --- O2 --- O1
    end
    
    subgraph TCPIP["TCP/IP 4 Layer"]
        direction TB
        T4["Application"]
        T3["Transport"]
        T2["Internet"]
        T1["Network Access"]
        T4 --- T3 --- T2 --- T1
    end
    
    O7 -.-> T4
    O6 -.-> T4
    O5 -.-> T4
    O4 -.-> T3
    O3 -.-> T2
    O2 -.-> T1
    O1 -.-> T1

OSI 모델: ISO에서 만든 이론적/참조 모델 (7계층) TCP/IP 모델: 실제 인터넷에서 사용하는 실용적 모델 (4계층)

실무에서는 TCP/IP 기준으로 동작하지만, 설명할 때는 OSI 7계층 용어를 많이 씀.


🔍 계층별 상세

Layer 7: Application (응용 계층)

역할: 사용자와 직접 상호작용하는 애플리케이션 프로토콜

프로토콜포트용도
HTTP80웹 통신
HTTPS443암호화된 웹 통신
FTP21파일 전송
SSH22원격 접속 (암호화)
DNS53도메인 → IP 변환
SMTP25메일 발송
POP3/IMAP110/143메일 수신

데이터 단위: Message (메시지)


Layer 6: Presentation (표현 계층)

역할: 데이터 형식 변환, 암호화/복호화, 압축

  • 인코딩: ASCII, UTF-8, JPEG, MPEG
  • 암호화: SSL/TLS (실제로는 5~7계층 걸쳐있음)
  • 압축: 데이터 크기 줄이기

💡 실무에서는 Application 계층에 흡수되어 별도로 다루는 경우 적음


Layer 5: Session (세션 계층)

역할: 통신 세션 설정, 유지, 종료 관리

  • 세션 생성/유지/종료
  • 동기화 (체크포인트)
  • 대화 제어 (반이중/전이중)

💡 TCP/IP 모델에서는 Application에 포함. 실무에서 독립적으로 다루는 경우 드묾


Layer 4: Transport (전송 계층)

역할: 종단 간(End-to-End) 데이터 전송, 신뢰성/흐름 제어

프로토콜특징용도
TCP연결 지향, 신뢰성, 순서 보장웹, 파일 전송, 이메일
UDP비연결, 빠름, 신뢰성 없음스트리밍, DNS, 게임

TCP 3-Way Handshake:

sequenceDiagram
    participant C as Client
    participant S as Server
    
    C->>S: SYN (연결 요청)
    S->>C: SYN + ACK (요청 확인 + 응답)
    C->>S: ACK (응답 확인)
    Note over C,S: Connection Established

TCP 4-Way Handshake (종료):

sequenceDiagram
    participant C as Client
    participant S as Server
    
    C->>S: FIN (종료 요청)
    S->>C: ACK (요청 확인)
    S->>C: FIN (종료 요청)
    C->>S: ACK (요청 확인)
    Note over C,S: Connection Closed

데이터 단위: Segment (세그먼트)

주요 개념:

  • Port: 프로세스 식별 (0~65535)
  • Well-known Port: 0~1023 (HTTP 80, SSH 22 등)
  • Ephemeral Port: 49152~65535 (클라이언트 임시 포트)

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

역할: 논리적 주소 지정, 라우팅 (경로 결정)

프로토콜용도
IP논리적 주소 지정, 패킷 전달
ICMP네트워크 진단 (ping, traceroute)
ARPIP → MAC 주소 변환
라우팅 프로토콜OSPF, BGP, RIP 등

데이터 단위: Packet (패킷)

주요 개념:

  • IP 주소: 논리적 주소, 네트워크 변경 시 바뀜
  • 서브넷: 네트워크 분할
  • 라우팅: 목적지까지 최적 경로 결정
  • 라우터: 3계층 장비, 다른 네트워크 간 연결

역할: 물리적 주소 지정, 프레임 단위 전송, 에러 검출

프로토콜/기술용도
Ethernet유선 LAN 표준
Wi-Fi (802.11)무선 LAN
PPPPoint-to-Point 연결

데이터 단위: Frame (프레임)

주요 개념:

  • MAC 주소: 물리적 주소, 하드웨어에 고정 (48bit, 예: 00:1A:2B:3C:4D:5E)
  • 스위치: 2계층 장비, 같은 네트워크 내 프레임 전달
  • VLAN: 논리적 네트워크 분리

MAC vs IP:

구분MAC 주소IP 주소
계층2계층3계층
범위로컬 네트워크전체 네트워크
변경고정 (하드웨어)유동 (네트워크 설정)
형식48bit (6 octet)32bit (IPv4) / 128bit (IPv6)

Layer 1: Physical (물리 계층)

역할: 실제 전기 신호/광 신호로 비트 전송

  • 전송 매체: 케이블 (UTP, 광섬유), 무선
  • 신호: 전압, 주파수, 광 펄스
  • 장비: 허브, 리피터, 케이블

데이터 단위: Bit (비트)


📦 캡슐화 (Encapsulation)

데이터가 상위 계층에서 하위 계층으로 내려가며 각 계층의 헤더가 추가됨.

flowchart TB
    subgraph App["Application Layer"]
        A["Data"]
    end
    
    subgraph Trans["Transport Layer"]
        T["TCP Header | Data"]
        T2["→ Segment"]
    end
    
    subgraph Net["Network Layer"]
        N["IP Header | TCP Header | Data"]
        N2["→ Packet"]
    end
    
    subgraph Data["Data Link Layer"]
        D["Frame Header | IP | TCP | Data | FCS"]
        D2["→ Frame"]
    end
    
    subgraph Phys["Physical Layer"]
        P["01010101010101010101..."]
        P2["→ Bits"]
    end
    
    App --> Trans --> Net --> Data --> Phys

수신 측에서는 역순으로 헤더를 벗겨내며 올라감 (역캡슐화, Decapsulation).


🔧 계층별 장비 및 문제 해결

계층장비문제 해결 도구
7 (Application)웹서버, 프록시curl, 브라우저 개발자도구
4 (Transport)방화벽, L4 LBnetstat, ss, tcpdump
3 (Network)라우터, L3 스위치ping, traceroute, ip route
2 (Data Link)스위치arp, ip neigh
1 (Physical)허브, 케이블케이블 테스터, LED 상태

“네트워크 안 돼요” 디버깅 순서:

flowchart TB
    P1["1. Physical: 케이블 연결됨? 링크 LED?"]
    P2["2. Data Link: MAC 테이블? ARP 동작?"]
    P3["3. Network: IP 설정? ping? 라우팅?"]
    P4["4. Transport: 포트 열림? 방화벽?"]
    P5["5. Application: 서비스 상태? 로그?"]
    
    P1 --> P2 --> P3 --> P4 --> P5

🆚 L4 vs L7 로드밸런서

구분L4 Load BalancerL7 Load Balancer
계층Transport (4계층)Application (7계층)
기준IP, PortURL, Header, Cookie
속도빠름상대적으로 느림
기능단순 분산경로 기반 라우팅, SSL 종료
예시NLB (AWS)ALB (AWS), nginx

🔗 관련 포스트

  • (예정) IP 주소 및 서브넷
  • (예정) TCP vs UDP 상세
  • (예정) DNS 동작 원리

🔗 참고 자료