OSI 7계층과 TCP-IP 4계층 — 계층별 역할과 실무에서의 의미
네트워크 장애가 생겼을 때, "어디서부터 봐야 하지?"라는 질문에 답하려면 — 결국 계층을 알아야 합니다.
네트워크 계층 모델은 복잡한 통신을 쪼개서 이해하기 위한 추상화 도구입니다. OSI 7계층은 이론적 프레임이고, TCP/IP 4계층은 실제 인터넷이 돌아가는 구조입니다. 둘의 관계와 각 계층이 하는 일을 정리합니다.
왜 계층 모델인가 — 추상화의 힘
네트워크 통신은 "전기 신호를 보내는 것"부터 "웹 페이지를 렌더링하는 것"까지 범위가 넓습니다. 이걸 한 덩어리로 다루면 문제가 생겼을 때 원인을 찾기 어렵습니다.
- **계층별 독립성 **: 각 계층은 아래 계층이 제공하는 서비스만 사용하고, 내부 구현을 몰라도 됩니다
- ** 교체 가능성 **: 이더넷을 Wi-Fi로 바꿔도 상위 계층은 그대로 동작합니다
- ** 문제 격리 **: "핑은 되는데 HTTP가 안 된다" → L3까지는 정상, L7 문제로 범위가 좁혀집니다
OSI 7계층 — 역할 정리
| 계층 | 이름 | 핵심 역할 | 대표 프로토콜/장비 |
|---|---|---|---|
| 7 | 응용 (Application) | 사용자와 직접 상호작용하는 서비스 | HTTP, FTP, SMTP, DNS |
| 6 | 표현 (Presentation) | 데이터 형식 변환, 암호화, 압축 | SSL/TLS, JPEG, ASCII |
| 5 | 세션 (Session) | 통신 세션 수립/유지/종료 | NetBIOS, RPC |
| 4 | 전송 (Transport) | 종단 간 신뢰성, 흐름 제어 | TCP, UDP |
| 3 | 네트워크 (Network) | 논리 주소(IP) 기반 라우팅 | IP, ICMP, 라우터 |
| 2 | 데이터 링크 (Data Link) | 물리 주소(MAC) 기반 프레임 전달 | Ethernet, Wi-Fi, 스위치 |
| 1 | 물리 (Physical) | 비트를 전기/광/무선 신호로 변환 | 케이블, 허브, 리피터 |
공부하다 보니 5~6계층이 가장 헷갈렸습니다. 실무에서는 이 두 계층이 독립적으로 존재하기보다 응용 계층에 흡수되어 있는 경우가 많아서, TCP/IP 모델에서는 아예 합쳐버린 겁니다.
TCP/IP 4계층 — 실제 인터넷의 구조
┌─────────────────────────┐
│ 4. 응용 (Application) │ ← OSI 5~7계층 통합
│ HTTP, DNS, FTP, SSH │
├─────────────────────────┤
│ 3. 전송 (Transport) │ ← OSI 4계층
│ TCP, UDP │
├─────────────────────────┤
│ 2. 인터넷 (Internet) │ ← OSI 3계층
│ IP, ICMP, ARP │
├─────────────────────────┤
│ 1. 네트워크 액세스 │ ← OSI 1~2계층 통합
│ Ethernet, Wi-Fi │
└─────────────────────────┘
OSI ↔ TCP/IP 매핑
| TCP/IP | OSI |
|---|---|
| 응용 | 응용 + 표현 + 세션 (5~7) |
| 전송 | 전송 (4) |
| 인터넷 | 네트워크 (3) |
| 네트워크 액세스 | 데이터 링크 + 물리 (1~2) |
TCP/IP가 현실이고, OSI는 분석 도구입니다. 둘 다 알아야 하지만 실무에서 쓰는 건 TCP/IP입니다.
패킷 캡슐화와 역캡슐화
데이터가 송신자에서 수신자로 갈 때, 각 계층을 지나면서 헤더가 붙습니다. 이걸 ** 캡슐화(Encapsulation)**라고 합니다.
송신 측 (위에서 아래로):
[응용 데이터]
→ [TCP 헤더 | 응용 데이터] ← 세그먼트
→ [IP 헤더 | TCP 헤더 | 응용 데이터] ← 패킷
→ [이더넷 헤더 | IP | TCP | 데이터 | FCS] ← 프레임
수신 측 (아래에서 위로):
프레임 → 패킷 → 세그먼트 → 데이터 ← 역캡슐화
각 계층의 데이터 단위(PDU)가 다릅니다:
- ** 응용 계층 **: 메시지 (Message)
- ** 전송 계층 **: 세그먼트 (TCP) / 데이터그램 (UDP)
- ** 네트워크 계층 **: 패킷 (Packet)
- ** 데이터 링크 계층 **: 프레임 (Frame)
- ** 물리 계층 **: 비트 (Bit)
실무에서 어떤 계층에서 문제가 발생하는가
장애 상황에서 계층별로 의심할 포인트가 다릅니다:
L1/L2 — 물리적 연결 문제
- 케이블 불량, 포트 LED 꺼짐
ip link show또는ifconfig에서 인터페이스 DOWN 상태- MAC 주소 충돌 (드물지만 가상 환경에서 발생)
L3 — 라우팅 문제
ping으로 목적지 도달 가능 여부 확인traceroute로 어디서 패킷이 멈추는지 추적- 라우팅 테이블 오설정, 서브넷 마스크 불일치
L4 — 포트/방화벽 문제
ping은 되는데telnet IP PORT가 안 되면 → L4 문제- 방화벽에서 특정 포트 차단
- TCP RST 반복 → 서버에서 해당 포트를 리스닝하지 않음
L7 — 애플리케이션 문제
- TCP 연결은 되는데 HTTP 응답이 비정상
- 502 Bad Gateway → 리버스 프록시 뒤의 서버 다운
- TLS 인증서 만료, HTTP 헤더 파싱 오류
Wireshark로 보는 계층별 헤더
Wireshark에서 패킷 하나를 잡으면 계층별 헤더를 한눈에 볼 수 있습니다.
Frame 1: 74 bytes on wire
├── Ethernet II (L2)
│ ├── Src MAC: aa:bb:cc:dd:ee:ff
│ └── Dst MAC: 11:22:33:44:55:66
├── Internet Protocol Version 4 (L3)
│ ├── Src IP: 192.168.1.10
│ ├── Dst IP: 93.184.216.34
│ └── TTL: 64
├── Transmission Control Protocol (L4)
│ ├── Src Port: 52431
│ ├── Dst Port: 443
│ ├── Seq: 1
│ └── Flags: [SYN]
└── Transport Layer Security (L7)
└── TLS 1.3 Client Hello
실무에서 Wireshark는 "계층 모델을 눈으로 보는 도구"입니다. 패킷 캡처를 하면 자연스럽게 각 계층의 헤더와 역할이 보입니다.
자주 헷갈리는 포인트
ARP는 몇 계층인가?
- OSI 기준으로는 2~3계층 사이에 걸쳐 있습니다 (L3 주소를 L2 주소로 변환)
- TCP/IP 기준으로는 인터넷 계층 또는 네트워크 액세스 계층으로 분류됩니다
- 결론: 계층 모델은 완벽한 분류 체계가 아니라 사고 도구입니다
L4 로드밸런서 vs L7 로드밸런서
- L4: IP + 포트만 보고 분배 → 빠르지만 HTTP 내용을 모름
- L7: HTTP 헤더, URL, 쿠키까지 보고 분배 → 느리지만 세밀한 라우팅 가능
- AWS에서 NLB는 L4, ALB는 L7에 해당합니다
방화벽의 계층
- 전통적 방화벽: L3~L4 (IP, 포트 기반 필터링)
- WAF (Web Application Firewall): L7 (HTTP 요청 내용까지 검사)
- 같은 "방화벽"이라도 동작하는 계층이 다릅니다
정리
계층 모델은 암기 대상이 아니라 트러블슈팅 프레임워크입니다.
- OSI 7계층은 이론적 분석 도구, TCP/IP 4계층은 실제 구현 모델
- 캡슐화: 위에서 아래로 헤더가 붙고, 역캡슐화: 아래에서 위로 벗겨짐
- 장애 대응의 기본:
ping(L3) →telnet(L4) → HTTP 요청(L7) 순서로 계층을 좁혀 나가기 - Wireshark 한 번 써보면 계층 구조가 머릿속에 자연스럽게 잡힙니다
댓글 로딩 중...