OSI 7계층
OSI 7계층 모델이란?
OSI(Open Systems Interconnection) 7계층 모델은 ISO가 1984년에 제정한 네트워크 통신 표준 모델이다. 서로 다른 제조사의 네트워크 장비와 소프트웨어가 상호 운용될 수 있도록 통신 과정을 7개 계층으로 나눠 정의한다.
계층 이름 역할
7 Application Layer 애플리케이션 서비스 제공 (HTTP, FTP, DNS, SMTP)
6 Presentation Layer 데이터 형식 변환, 암호화, 압축
5 Session Layer 세션 연결 관리, 동기화
4 Transport Layer 종단 간 신뢰성 있는 데이터 전송 (TCP, UDP)
3 Network Layer 논리 주소(IP) 기반 라우팅
2 Data Link Layer 물리 주소(MAC) 기반 인접 노드 전송
1 Physical Layer 비트를 물리 신호로 변환, 전기/광 신호 전송
각 계층 상세
7계층 - Application Layer (응용 계층)
사용자가 직접 상호작용하는 계층이다. 네트워크 서비스를 애플리케이션에 제공한다.
역할:
- 사용자 인터페이스와 네트워크 간 인터페이스 제공
- 데이터 표현, 인코딩, 통신 파트너 식별
PDU (Protocol Data Unit): Data (데이터)
주요 프로토콜:
| 프로토콜 | 포트 | 설명 |
|---|---|---|
| HTTP | 80 | 웹 브라우징 |
| HTTPS | 443 | TLS 암호화 HTTP |
| FTP | 20, 21 | 파일 전송 |
| SMTP | 25 | 이메일 전송 |
| POP3 | 110 | 이메일 수신 |
| IMAP | 143 | 이메일 수신 (서버 보관) |
| DNS | 53 | 도메인 이름 해석 |
| SSH | 22 | 보안 원격 접속 |
| Telnet | 23 | 원격 접속 (비암호화) |
| DHCP | 67, 68 | IP 자동 할당 |
6계층 - Presentation Layer (표현 계층)
데이터의 형식(Format)을 정의하고 변환하는 계층이다.
역할:
- 데이터 인코딩/디코딩 (ASCII ↔ EBCDIC, UTF-8 변환 등)
- 데이터 암호화/복호화 (TLS/SSL 협상)
- 데이터 압축/해제
PDU: Data
주요 포맷/표준:
암호화: TLS, SSL
인코딩: ASCII, Unicode, EBCDIC
압축: gzip, deflate
직렬화: JSON, XML, ASN.1, XDR
미디어: JPEG, MP4, GIF, PNG
현대 TCP/IP 구현에서는 6, 5계층 기능이 애플리케이션 계층에 흡수되는 경우가 많다.
5계층 - Session Layer (세션 계층)
애플리케이션 간 세션(논리적 연결)을 관리하는 계층이다.
역할:
- 세션 수립, 유지, 종료
- 동기화 (Synchronization) - 대용량 전송 중 체크포인트 설정
- 반이중(Half-duplex), 전이중(Full-duplex) 통신 제어
PDU: Data
관련 기술:
NetBIOS - Windows 네트워크 세션 관리
RPC - 원격 프로시저 호출
SQL - DB 세션 관리
TLS 핸드셰이크 - 세션 키 협상 (일부 세션 계층 역할)
4계층 - Transport Layer (전송 계층)
프로세스 간(종단 간) 신뢰성 있는 데이터 전송을 담당한다.
역할:
- 포트 번호로 애플리케이션 프로세스 식별
- 세그멘테이션과 재조립
- 흐름 제어, 오류 제어, 혼잡 제어
PDU: Segment (TCP) / Datagram (UDP)
TCP vs UDP:
| 특성 | TCP | UDP |
|---|---|---|
| 연결 방식 | 연결 지향 (3-way handshake) | 비연결 |
| 신뢰성 | 보장 (ACK, 재전송) | 미보장 |
| 순서 보장 | 보장 | 미보장 |
| 흐름 제어 | 있음 | 없음 |
| 혼잡 제어 | 있음 | 없음 |
| 속도 | 상대적으로 느림 | 빠름 |
| 헤더 크기 | 20~60 bytes | 8 bytes |
| 용도 | HTTP, FTP, SSH, SMTP | DNS, 스트리밍, 게임, VoIP |
TCP 3-way Handshake:
Client Server
│ │
│──── SYN (seq=x) ────────→│
│ │
│←── SYN+ACK (seq=y, ack=x+1) ──│
│ │
│──── ACK (ack=y+1) ──────→│
│ │
│ 연결 수립 완료 │
TCP 4-way Handshake (종료):
Client Server
│ │
│──── FIN ────────────────→│
│←─── ACK ─────────────────│
│←─── FIN ─────────────────│
│──── ACK ────────────────→│
│ │
│ (Client: TIME_WAIT 2MSL 대기)
포트 번호 범위:
Well-Known Ports: 0 ~ 1023 (시스템 예약 포트)
Registered Ports: 1024 ~ 49151 (애플리케이션 등록 포트)
Dynamic Ports: 49152 ~ 65535 (클라이언트 임시 포트)
3계층 - Network Layer (네트워크 계층)
논리 주소(IP 주소)를 기반으로 서로 다른 네트워크 간 데이터를 전송(라우팅)한다.
역할:
- IP 주소 할당 및 관리
- 라우팅 (최적 경로 결정)
- 패킷 분할(Fragmentation) 및 재조립
- TTL 기반 루프 방지
PDU: Packet
주요 프로토콜:
| 프로토콜 | 역할 |
|---|---|
| IP (IPv4/IPv6) | 논리 주소 지정, 패킷 전달 |
| ICMP | 오류 보고, 네트워크 진단 (ping) |
| ARP | IP → MAC 주소 변환 |
| RARP | MAC → IP 주소 변환 |
| OSPF, BGP, RIP | 라우팅 프로토콜 |
IPv4 패킷 헤더 주요 필드:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TTL: 패킷이 거칠 수 있는 라우터 최대 수 (매 홉마다 -1)
Protocol: 상위 계층 프로토콜 (6=TCP, 17=UDP, 1=ICMP)
2계층 - Data Link Layer (데이터 링크 계층)
같은 네트워크(LAN) 내에서 물리 주소(MAC 주소)를 기반으로 인접 노드 간 데이터를 전송한다.
역할:
- MAC 주소 기반 프레임 주소 지정
- 오류 감지 (CRC/FCS)
- 흐름 제어 (인접 노드 간)
- 매체 접근 제어 (CSMA/CD, CSMA/CA)
PDU: Frame
서브 계층:
LLC (Logical Link Control): 상위 계층 프로토콜 식별, 흐름/오류 제어
MAC (Media Access Control): 물리 주소 지정, 매체 접근 제어
주요 프로토콜 및 장비:
| 항목 | 내용 |
|---|---|
| 프로토콜 | Ethernet, Wi-Fi(IEEE 802.11), PPP |
| 주소 체계 | MAC 주소 (48bit, 6옥텟) |
| 장비 | 스위치(L2), 브리지, NIC |
Ethernet 프레임 구조:
┌──────────┬──────────┬──────┬──────────┬─────┐
│Preamble │ 목적지MAC│출발지│ EtherType│Data │ FCS│
│(8 bytes) │(6 bytes) │ MAC │(2 bytes) │ │(4B)│
│ │ │(6B) │ │ │ │
└──────────┴──────────┴──────┴──────────┴─────┘
EtherType: 0x0800=IPv4, 0x0806=ARP, 0x86DD=IPv6
1계층 - Physical Layer (물리 계층)
비트(0과 1)를 전기, 광, 무선 신호로 변환하여 물리 매체로 전송한다.
역할:
- 비트 스트림의 물리 신호 변환
- 전압 레벨, 케이블 규격, 커넥터 정의
- 동기화, 전송 속도 정의
PDU: Bit
전송 매체:
| 매체 | 특성 | 예시 |
|---|---|---|
| 꼬임쌍선 (UTP) | 저렴, 전자기 간섭 취약 | Cat5e, Cat6, Cat6a |
| 동축 케이블 | 간섭 강함, 고대역 | 케이블 TV, 구형 Ethernet |
| 광섬유 | 고속, 장거리, 간섭 없음 | 단일모드(SM), 다중모드(MM) |
| 무선 | 이동성, 간섭 취약 | Wi-Fi, 블루투스, LTE |
관련 장비:
허브(Hub): 들어온 신호를 모든 포트로 브로드캐스트 (L1)
리피터: 신호 증폭 및 재전송
NIC: 컴퓨터를 네트워크에 연결하는 인터페이스 카드
모뎀: 디지털↔아날로그 신호 변환
실제 데이터 전송 흐름
캡슐화 (Encapsulation)와 역캡슐화 (Decapsulation)
송신 측 (계층 7 → 1):
HTTP 요청 데이터
Application [HTTP Header | Data]
Presentation [HTTP Header | Data] (암호화/인코딩)
Session [HTTP Header | Data] (세션 정보)
Transport [TCP Header | HTTP Header | Data] (포트, 순서번호)
Network [IP Header | TCP Header | HTTP Header | Data] (IP 주소)
Data Link [Eth Header | IP Header | TCP Header | HTTP Header | Data | FCS]
Physical 1010110101001101... (비트 신호)
수신 측 (계층 1 → 7):
역순으로 각 계층 헤더 제거하며 상위 계층으로 전달
실제 시나리오: 브라우저에서 웹 서버에 HTTP 요청
1. [7계층] 브라우저가 HTTP GET 요청 생성
2. [6계층] TLS 암호화 적용 (HTTPS인 경우)
3. [5계층] TLS 세션 수립
4. [4계층] TCP 세그먼트 생성
- 출발지 포트: 49152 (임시 포트)
- 목적지 포트: 443 (HTTPS)
- 3-way handshake로 연결 수립
5. [3계층] IP 패킷 생성
- 출발지 IP: 192.168.1.10
- 목적지 IP: 93.184.216.34 (DNS로 해석된 서버 IP)
- 라우팅 테이블 조회로 다음 홉 결정
6. [2계층] Ethernet 프레임 생성
- 출발지 MAC: 클라이언트 NIC MAC
- 목적지 MAC: 게이트웨이 라우터 MAC (ARP로 조회)
7. [1계층] 비트를 전기 신호로 변환 → NIC가 케이블/무선으로 전송
--- 네트워크 중간 장비 통과 ---
8. [라우터] 2,1계층 프레임 제거 → 3계층 IP 확인 → 새 프레임으로 다음 홉 전송
9. [서버] 1→7계층 역캡슐화
- 1계층: 신호 → 비트
- 2계층: MAC 확인, 프레임 제거
- 3계층: IP 확인, 패킷 제거
- 4계층: TCP 포트 확인, 세그먼트 제거, 데이터 재조립
- 6계층: TLS 복호화
- 7계층: HTTP 요청 처리
TCP/IP 4계층과 OSI 7계층 매핑
OSI 7계층 TCP/IP 4계층
┌─────────────────────┐ ┌─────────────────────┐
│ 7. Application │ │ │
│ 6. Presentation │ ─────→ │ Application │
│ 5. Session │ │ (HTTP, FTP, DNS) │
├─────────────────────┤ ├─────────────────────┤
│ 4. Transport │ ─────→ │ Transport │
│ (TCP/UDP) │ │ (TCP/UDP) │
├─────────────────────┤ ├─────────────────────┤
│ 3. Network │ ─────→ │ Internet │
│ (IP, ICMP) │ │ (IP, ICMP, ARP) │
├─────────────────────┤ ├─────────────────────┤
│ 2. Data Link │ │ │
│ 1. Physical │ ─────→ │ Network Access │
│ │ │ (Ethernet, Wi-Fi) │
└─────────────────────┘ └─────────────────────┘
| TCP/IP 계층 | OSI 계층 | 프로토콜 | 장비 |
|---|---|---|---|
| Application | 5,6,7 | HTTP, FTP, DNS, SMTP, SSH | - |
| Transport | 4 | TCP, UDP | 방화벽(L4), 로드밸런서 |
| Internet | 3 | IP, ICMP, OSPF, BGP | 라우터 |
| Network Access | 1,2 | Ethernet, ARP, Wi-Fi | 스위치, 허브 |
계층별 네트워크 장비
| 계층 | 장비 | 동작 방식 |
|---|---|---|
| 1계층 | 허브, 리피터 | 신호 그대로 브로드캐스트 |
| 2계층 | 스위치, 브리지 | MAC 주소 테이블로 선택적 전달 |
| 3계층 | 라우터 | 라우팅 테이블로 최적 경로 전달 |
| 4계층 | L4 로드밸런서 | TCP/UDP 포트 기반 분산 |
| 7계층 | L7 로드밸런서, 프록시 | HTTP 헤더/URL 기반 분산 |
L2 Switch vs L3 Switch vs Router:
L2 Switch: 동일 네트워크 내 MAC 기반 전달 (VLAN 지원)
L3 Switch: VLAN 간 라우팅 가능, 하드웨어 기반 고속 처리
Router: 서로 다른 네트워크 연결, 복잡한 라우팅 정책, WAN 연결
주요 개념 정리
PDU 명칭 정리
7,6,5 계층: Message / Data
4 계층: Segment (TCP) / Datagram (UDP)
3 계층: Packet
2 계층: Frame
1 계층: Bit
ARP (Address Resolution Protocol)
3계층 IP를 2계층 MAC 주소로 변환하는 프로토콜이다.
ARP 동작:
1. "192.168.1.1의 MAC 주소 누구야?" → ARP Request (브로드캐스트)
2. "나야! MAC: AA:BB:CC:DD:EE:FF" → ARP Reply (유니캐스트)
3. ARP 캐시에 저장 (일정 시간 유지)
arp -a # ARP 캐시 확인 명령어
ICMP (Internet Control Message Protocol)
네트워크 오류 보고와 진단에 사용되는 프로토콜이다.
ping: ICMP Echo Request / Echo Reply → 응답 확인
traceroute: TTL을 1씩 증가시키며 각 홉의 라우터 경로 추적
각 라우터가 TTL=0 패킷 수신 시 ICMP Time Exceeded 반환