OSI (Open Systems Interconnection) 7계층 모델은 네트워크 통신 과정을 체계적으로 이해하기 위한 참조 모델입니다.
실무에서는 "L4 로드밸런서", "L7 스위치", "L3 라우팅"처럼 계층 번호로 장비나 기능을 지칭합니다. 각 계층을 이해하면 네트워크 장애 진단과 보안 설정이 훨씬 쉬워집니다.
아래에서 카카오 API 서버에 HTTP 요청을 보내는 과정을 7계층 순서대로 따라가며 실무 예시와 함께 설명하겠습니다.
1. 캡슐화 (Encapsulation)
데이터를 보낼 때 각 계층은 자신의 헤더를 추가합니다. 이를 캡슐화라고 합니다.
Application → HTTP 데이터
Transport → HTTP 데이터 + TCP 헤더
Network → HTTP 데이터 + TCP 헤더 + IP 헤더
Data Link → HTTP 데이터 + TCP 헤더 + IP 헤더 + Ethernet 헤더
2. 역캡슐화 (Decapsulation)
데이터를 받을 때는 반대로 각 계층이 자신의 헤더를 벗겨냅니다.
3. PDU (Protocol Data Unit)
각 계층에서 처리하는 데이터 단위를 PDU라고 부릅니다:
사용자와 직접 상호작용하는 계층. 실제 서비스 로직이 동작하는 영역입니다.
브라우저에서 https://bzm-center-api.kakao.com/api/users로 GET 요청
→ HTTP 프로토콜로 요청 메시지 생성
→ 헤더에 Authorization: Bearer token 추가
WAF (Web Application Firewall), API Gateway, CDN, Nginx (리버스 프록시)
데이터 형식 변환, 암호화/복호화, 압축/해제를 담당합니다.
HTTPS 통신에서 TLS 핸드셰이크로 암호화 키 교환
→ AES-256으로 HTTP 데이터 암호화
→ gzip으로 압축하여 대역폭 절약
SSL/TLS Offloading 장비, 인증서 관리 (Let's Encrypt, AWS ACM)
통신 세션의 시작, 유지, 종료를 관리합니다. 연결 상태를 추적합니다.
사용자 로그인 후 세션 ID 발급 (Redis에 저장)
→ 이후 요청마다 세션 ID로 인증 상태 확인
→ 30분간 활동 없으면 세션 만료
Redis (세션 스토어), JWT 토큰 기반 인증
종단 간(end-to-end) 신뢰성 있는 데이터 전송을 보장합니다. 포트 번호로 애플리케이션을 구분합니다.
TCP 3-way handshake로 연결 수립 (SYN → SYN-ACK → ACK)
→ 출발지 포트: 54321 (클라이언트 임의 할당)
→ 목적지 포트: 443 (HTTPS 표준 포트)
→ 데이터를 Segment로 나누어 전송, 순서 보장 및 재전송 처리
L4 로드밸런서 (AWS NLB, HAProxy) - 포트 기반 부하 분산
방화벽 룰 (포트 열기/닫기)
논리적 주소(IP)를 기반으로 최적 경로를 찾아 패킷을 라우팅합니다.
출발지 IP: 192.168.1.100 (내 PC)
목적지 IP: 123.45.67.89 (카카오 API 서버)
→ 라우터가 라우팅 테이블을 보고 다음 홉(hop) 결정
→ TTL(Time To Live) 값으로 무한 루프 방지
라우터, VPC (Virtual Private Cloud), NAT Gateway, IPS (L3 분석)
물리적 주소(MAC)를 사용하여 같은 네트워크 내에서 프레임을 전달합니다. 오류 검출도 수행합니다.
ARP (Address Resolution Protocol)로 IP → MAC 주소 변환
→ 출발지 MAC: AA:BB:CC:DD:EE:FF
→ 목적지 MAC: 11:22:33:44:55:66 (게이트웨이 MAC)
→ Ethernet 프레임에 담아서 전송
스위치 (Switch), 브릿지 (Bridge), NIC (Network Interface Card)
비트를 전기 신호, 빛, 전파로 변환하여 물리적 매체를 통해 전송합니다.
랜선(CAT6)을 통해 전기 신호로 비트 전송
→ 1Gbps 속도로 데이터 전송
→ 허브, 리피터로 신호 증폭
허브 (Hub), 리피터 (Repeater), 케이블, 광트랜시버
다이어그램 해석:
| 표현 | 의미 | 예시 |
|---|---|---|
| L4 로드밸런서 | Transport 계층(포트)에서 부하 분산 | AWS NLB, HAProxy (포트 80/443 분산) |
| L7 로드밸런서 | Application 계층(URL 경로, 헤더)에서 부하 분산 | AWS ALB, Nginx (경로 기반 라우팅) |
| L3 스위치 | IP 라우팅 기능이 있는 스위치 | VLAN 간 라우팅 |
| L2 네트워크 | 같은 브로드캐스트 도메인 (MAC 주소로 통신) | 같은 사무실 네트워크 |
| L7 방화벽 (WAF) | HTTP 요청 내용을 분석하여 차단 | SQL Injection, XSS 차단 |
장애 진단 시 계층별 접근법
ping 안 되나? 라우팅 테이블 확인telnet host 443 확인