Infra Architecture/Network Fundamentals

Network Fundamentals - 01. OSI 7계층과 TCP/IP 모델

우편물이 봉투에 싸여 상자에 담기는 이유 — OSI 7계층과 TCP/IP 모델

브라우저 주소창에 example.com을 치면 화면에 웹 페이지가 뜬다. 이 과정이 얼마나 복잡한지 — 대부분의 사람은 생각하지 않는다. 하지만 그 짧은 순간에 컴퓨터 안에서는 여러 층의 소프트웨어가 차례로 동작하며, 데이터가 한 층에서 다음 층으로 넘어가면서 포장되고, 주소가 붙고, 전송 수단이 선택된다. 마치 편지를 접어 봉투에 넣고, 주소를 쓰고, 우편번호를 적고, 배송 라벨을 붙여 택배 상자에 담는 것처럼. 이 "층(layer)"들을 체계적으로 나눈 것이 OSI 7계층 모델이고, 실제 인터넷이 쓰는 것은 그 간소화 버전인 TCP/IP 모델이다.

이 글은 네트워크를 계층(layer)으로 나누어 이해하는 법을 다룬다. 왜 7개(또는 4개)의 층으로 나눴는가, 각 층이 무슨 일을 하는가, 데이터가 한 층에서 다른 층으로 넘어갈 때 무슨 일이 일어나는가(캡슐화, encapsulation). foundations 02에서 본 "추상화 계층"이 — 네트워크에 적용된 형태다. 이 글은 network fundamentals 영역의 첫 글로, 이후 아홉 편에서 각 계층을 깊이 파고든다. 이 글의 어휘(계층·캡슐화·프로토콜 데이터 단위)가 이후 모든 글에서 재사용된다.

왜 계층을 나누는가 — 우체국 비유

계층을 나누는 이유를 이해하려면 우체국을 생각해 보자. 편지를 부치는 과정은 여러 단계로 나뉜다.

  1. 편지를 쓴다 (내용 — "안녕, 잘 지내?")
  2. 편지를 봉투에 넣고 받는 사람 주소를 쓴다
  3. 봉투를 우체통에 넣는다
  4. 우체부가 우체통에서 편지를 꺼내 배송 센터로 가져간다
  5. 배송 센터에서 목적지별로 분류한다
  6. 목적지 도시의 배송 센터로 트럭이나 비행기로 옮긴다
  7. 목적지 우체부가 편지를 배달한다
  8. 받는 사람이 봉투를 뜯고 편지를 읽는다

각 단계는 독립적이다. 편지 내용(1단계)은 봉투(2단계)가 무엇이든 상관없다. 배송 방식(트럭인가 비행기인가, 6단계)은 편지 내용과 무관하다. 한 단계가 바뀌어도 다른 단계는 영향을 안 받는다 — 트럭에서 비행기로 배송 수단이 바뀌어도 편지 내용은 그대로다.

네트워크의 계층도 같다. 각 계층은 자기 역할만 담당하고, 다른 계층이 어떻게 동작하는지 모른다. HTTP(웹, 최상위 계층)는 데이터가 광케이블로 가는지 구리선으로 가는지(최하위 계층) 모른다. 광케이블이 구리선으로 바뀌어도 HTTP는 그대로 동작한다. 이 관심사의 분리(separation of concerns) 가 계층화의 핵심 이유다.

OSI 7계층 — 국제 표준의 이론적 모델

OSI(Open Systems Interconnection) 7계층 모델은 1984년 ISO(국제표준화기구)가 발표한 네트워크 통신의 이론적 프레임워크다. 통신 과정을 7개의 계층으로 나눴다. 실무에서는 이 7개를 전부 다 쓰지 않고 — 4개로 압축한 TCP/IP 모델을 쓴다. 하지만 OSI 모델이 "어떤 층이 있는가"를 가르치는 교육 도구로 여전히 쓰인다. 인프라 엔지니어가 "이건 L3 문제야"라고 말할 때의 "L3"가 OSI의 제3계층(Layer 3, 네트워크 계층)을 가리킨다.

flowchart TD
    L7["7. 응용 계층 (Application)<br/>HTTP, DNS, SSH, SMTP"]
    L6["6. 표현 계층 (Presentation)<br/>TLS, 압축, 인코딩"]
    L5["5. 세션 계층 (Session)<br/>연결 관리"]
    L4["4. 전송 계층 (Transport)<br/>TCP, UDP"]
    L3["3. 네트워크 계층 (Network)<br/>IP, 라우팅"]
    L2["2. 데이터 링크 계층 (Data Link)<br/>이더넷, MAC, 스위치"]
    L1["1. 물리 계층 (Physical)<br/>케이블, 전기 신호, 무선"]
    L7 --> L6 --> L5 --> L4 --> L3 --> L2 --> L1

각 계층을 하나씩 보자. 초심자에게 중요한 건 — 각 계층이 "무엇을 하는가"이지, 정확한 번호를 외우는 게 아니다. 번호는 참고용이다.

L1 — 물리 계층 (Physical). 전기 신호·광 신호·무선 전파를 다루는 가장 밑바닥 계층. 케이블(구리선·광케이블), 커넥터(RJ45·SFP), 무선 주파수(2.4GHz·5GHz Wi-Fi)가 여기 속한다. 이 계층의 단위는 비트(bit) — 0과 1의 전기 신호다. 비유하자면 — 도로 자체(아스팔트·자갈길·고속도로)다. 도로 위에서 차(데이터)가 달리지만, 도로 재질이 뭐든 차는 달릴 수 있다.

L2 — 데이터 링크 계층 (Data Link). 같은 네트워크 세그먼트(예: 같은 랜 안)에서 통신을 담당. MAC 주소(네트워크 카드의 고유 번호, 예: 0a:1b:2c:3d:4e:5f)로 장치를 식별하고, 이더넷 프레임(frame) 으로 데이터를 포장한다. 스위치가 이 계층에서 동작한다. 비유하자면 — 같은 동네 안에서 집집마다 문패(MAC 주소)를 붙이고 우체부가 배달하는 것. 이 계층의 단위는 프레임(frame).

L3 — 네트워크 계층 (Network). 서로 다른 네트워크 간의 통신을 담당. IP 주소(예: 192.0.2.1)로 목적지를 식별하고, 라우터가 한 네트워크에서 다른 네트워크로 패킷을 전달한다. 인터넷이 "네트워크의 네트워크"라는 게 — 이 계층의 라우팅 덕분이다. 비유하자면 — 우편번호 시스템. 서울에서 부산으로 편지를 보낼 때, 우편번호(IP 주소)로 목적지를 찾고 배송 센터(라우터)들이 중간에서 방향을 바꿔준다. 이 계층의 단위는 패킷(packet).

L4 — 전송 계층 (Transport). 포트 번호로 같은 컴퓨터 안의 어느 앱(서비스)으로 데이터를 보낼지 결정. TCP는 신뢰성(순서 보장·재전송)을, UDP는 속도(신뢰성 포기)를 담당한다. 비유하자면 — 한 건물(컴퓨터) 안에서 "몇 호실(포트)"로 배달할지 결정하는 것. 우편물이 건물까지는 도착했지만(1 ~ 3계층), 몇 호실(서비스)로 줄지는 이 계층이 정한다. 이 계층의 단위는 세그먼트(segment, TCP) 또는 데이터그램(datagram, UDP).

L5 ~ L7 — 세션·표현·응용 계층. 실무에서는 이 셋을 하나로 묶어 "응용 계층(application layer)"으로 다루는 게 보통이다. TCP/IP 모델이 그렇게 한다. L7의 대표 프로토콜이 HTTP(웹)·DNS(이름 해석)·SSH(원격 접속)·SMTP(이메일)다. 사용자가 직접 다루는 프로토콜이 대부분 여기 속한다.

계층별 단위와 장비

계층 이름 데이터 단위 주소 체계 대표 장비/프로토콜
L7 응용 (Application) 데이터 (Data) URL, 도메인 HTTP, DNS, SSH
L6 표현 (Presentation) 데이터 (Data) TLS, 압축
L5 세션 (Session) 데이터 (Data) RPC, NetBIOS
L4 전송 (Transport) 세그먼트/데이터그램 포트 번호 TCP, UDP
L3 네트워크 (Network) 패킷 (Packet) IP 주소 IP, 라우터, BGP
L2 데이터 링크 (Data Link) 프레임 (Frame) MAC 주소 이더넷, 스위치
L1 물리 (Physical) 비트 (Bit) 케이블, 무선

이 표를 외울 필요는 없다. 하지만 "L4 스위치"와 "L7 스위치"의 차이를 이해하려면 — L4가 포트 번호로 부하 분산하고, L7이 HTTP 경로로 부하 분산한다는 걸 알아야 한다. "L3 라우팅"이 IP 주소로 패킷을 보낸다는 것도. 인프라에서 "L(N)"이라는 표기는 이 표에서 온 것이다.

TCP/IP 모델 — 실제 인터넷이 쓰는 4계층

OSI 7계층은 교육·이론용이다. 실제 인터넷이 쓰는 것은 TCP/IP 모델이다. 1970년대 DARPA(미국 국방부 고등연구계획국)가 개발한 프로토콜 suite로, OSI보다 먼저 만들어졌고 — OSI가 표준으로 채택됐음에도, 인터넷은 TCP/IP를 썼다. 역사의 아이러니 — 더 학술적인 OSI가 졌고, 더 실용적인 TCP/IP가 이겼다.

TCP/IP 모델은 OSI 7개를 4개로 압축한다.

flowchart LR
    subgraph OSI["OSI 7계층"]
        O7["L7 응용"]
        O6["L6 표현"]
        O5["L5 세션"]
        O4["L4 전송"]
        O3["L3 네트워크"]
        O2["L2 데이터 링크"]
        O1["L1 물리"]
    end
    subgraph TCP["TCP/IP 4계층"]
        T4["4. 응용 (Application)<br/>= OSI L5~L7"]
        T3["3. 전송 (Transport)<br/>= OSI L4"]
        T2["2. 인터넷 (Internet)<br/>= OSI L3"]
        T1["1. 네트워크 액세스 (Link)<br/>= OSI L1~L2"]
    end
    O7 -.-> T4
    O6 -.-> T4
    O5 -.-> T4
    O4 -.-> T3
    O3 -.-> T2
    O2 -.-> T1
    O1 -.-> T1

TCP/IP 모델의 4계층:

  • 응용 계층 (Application) — OSI의 L5 ~ L7을 합친 것. HTTP·DNS·SSH·SMTP 같은 사용자 프로토콜.
  • 전송 계층 (Transport) — OSI의 L4와 같음. TCP·UDP.
  • 인터넷 계층 (Internet) — OSI의 L3와 같음. IP·라우팅. "인터넷 계층"이라는 이름에서 알 수 있듯, 이 계층이 인터넷의 핵심이다.
  • 네트워크 액세스 계층 (Link) — OSI의 L1 ~ L2를 합친 것. 이더넷·Wi-Fi·물리 전송.

인프라 실무에서는 두 모델을 섞어 쓴다. "L3 라우터", "L4 로드 밸런서", "L7 스위치"는 OSI 번호를 따르고, "TCP/IP 스택", "인터넷 계층"은 TCP/IP 이름을 따른다. 헷갈리지 않게 — 두 모델의 대응을 위 표처럼 머릿속에 둔다.

캡슐화 — 데이터가 층을 내려가면서 포장되는 과정

이 글의 도입에서 "우편물이 봉투에 싸여 상자에 담긴다"고 했다. 이 과정을 네트워크 용어로 캡슐화(encapsulation) 라 부른다. 데이터가 송신 측에서 응용 계층(L7)에서 물리 계층(L1)으로 내려가면서 — 각 계층이 자기만의 헤더(header, 제어 정보)를 붙인다. 수신 측에서는 반대로 — L1에서 L7으로 올라가면서 각 계층의 헤더를 벗긴다(역캡슐화, decapsulation).

구체적 예로 보자. 사용자가 브라우저로 HTTP 요청을 보낼 때:

flowchart TD
    APP["L7: HTTP 요청<br/>'GET / HTTP/1.1'"] --> TCP["L4: TCP 헤더 추가<br/>(출발지 포트: 54321, 목적지 포트: 80)"]
    TCP --> IP["L3: IP 헤더 추가<br/>(출발지 IP: 192.0.2.1, 목적지 IP: 93.184.216.34)"]
    IP --> ETH["L2: 이더넷 헤더 추가<br/>(출발지 MAC, 목적지 MAC, 타입: IPv4)"]
    ETH --> PHY["L1: 비트 스트림<br/>(전기/광 신호로 변환)"]
    PHY -. 케이블/무선 .-> RECV["수신 측"]
    RECV --> ETH2["L2: 이더넷 헤더 벗김"]
    ETH2 --> IP2["L3: IP 헤더 벗김"]
    IP2 --> TCP2["L4: TCP 헤더 벗김"]
    TCP2 --> APP2["L7: HTTP 요청 도착<br/>웹 서버가 처리"]

각 계층이 붙이는 헤더는 — 해당 계층이 데이터를 처리하는 데 필요한 정보다. TCP 헤더에는 포트 번호가 있어야 "이 데이터를 어느 앱에 줄까"를 알 수 있고, IP 헤더에는 목적지 IP가 있어야 "이 데이터를 어디로 보낼까"를 알 수 있다. 캡슐화는 — 각 계층이 자기 책임 범위의 정보만 헤더에 담는 것. TCP 계층은 IP 주소를 몰라도 되고(그건 IP 계층의 일), IP 계층은 포트 번호를 몰라도 된다(그건 TCP 계층의 일). 관심사의 분리가 계층화의 핵심이라는 걸 다시 한 번 보여준다.

PDU — 각 계층의 데이터 단위

각 계층에서 데이터의 이름이 다르다. 이걸 PDU(Protocol Data Unit, 프로토콜 데이터 단위) 라 부른다.

계층 PDU 이름 추가되는 정보 비유
L7 (응용) 데이터 (Data) 앱 내용 (HTTP 요청 등) 편지 내용
L4 (전송) 세그먼트/데이터그램 포트 번호, 순서 번호 봉투에 적힌 "어느 방으로"
L3 (네트워크) 패킷 (Packet) IP 주소 (출발지·목적지) 봉투에 적힌 우편번호·주소
L2 (데이터 링크) 프레임 (Frame) MAC 주소, 오류 검출(FCS) 택배 송장
L1 (물리) 비트 (Bit) 없음 (전기/광 신호) 배달 트럭 위의 상자

"PDU"라는 용어 자체를 자주 쓰지는 않지만 — "패킷", "프레임", "세그먼트"라는 단어는 인프라 글에서 계속 나온다. 이들이 각각 어느 계층의 단위인지 알면, 문서를 읽을 때 "이건 L3 얘기구나", "이건 L2 얘기구나"가 보인다.

왜 "L4 로드 밸런서"와 "L7 로드 밸런서"가 다른가

이 글의 핵심 질문 중 하나는 — 인프라에서 자주 듣는 "L4 vs L7"이 왜 다른가다. 답은 — 어느 계층까지 데이터를 "열어볼 수" 있느냐에 있다.

L4 로드 밸런서는 전송 계층(L4)까지만 본다 — IP 주소와 포트 번호(5-tuple: 출발지 IP·목적지 IP·프로토콜·출발지 포트·목적지 포트)로 부하를 분산한다. HTTP 요청의 내용(URL·헤더·쿠키)은 안 본다. 빠르고 단순하지만 — "이 사용자는 항상 서버 A로" 같은 세밀한 분배가 어렵다(5-tuple 기준으로만 분배하니까).

L7 로드 밸런서는 응용 계층(L7)까지 본다 — HTTP 요청의 URL·헤더·쿠키를 검사해서 부하를 분산한다. "/api/* 요청은 서버 A로, /static/* 요청은 CDN으로" 같은 정교한 분배가 가능하다. 단, 모든 요청을 L7까지 "열어봐야" 하니까 L4보다 느리고 더 많은 자원을 쓴다.

특성 L4 로드 밸런서 L7 로드 밸런서
보는 계층 L4 (포트·IP) L7 (HTTP URL·헤더·쿠키)
분배 기준 5-tuple (IP+포트) URL 경로, 호스트, 쿠키
속도 빠름 (헤더까지만 검사) 느림 (요청 본문까지 검사)
세밀함 낮음 (IP/포트 기준) 높음 (URL·헤더 기준)
전형 사례 AWS NLB, HAProxy(L4 모드) AWS ALB, nginx, HAProxy(L7 모드)

이 차이는 이 영역의 열 번째 글(로드 밸런싱)에서 깊이 다룬다. 여기서는 "계층이 다르면 보는 것도 다르다"는 개념만 잡는다.

프로토콜 — 각 계층의 "규칙"

각 계층은 자기만의 프로토콜(protocol, 통신 규칙) 을 갖는다. 프로토콜은 — "데이터를 이렇게 포장하고, 이렇게 보내고, 이렇게 해석해라"는 약속이다. 프로토콜이 다르면 — 같은 계층이라도 데이터의 형태와 동작이 다르다.

계층 대표 프로토콜 역할
L7 HTTP, HTTPS 웹 페이지 요청·응답
L7 DNS 도메인 이름 → IP 주소
L7 SSH 원격 접속 (암호화)
L7 SMTP/IMAP 이메일 송수신
L4 TCP 신뢰성 있는 데이터 전송 (순서 보장·재전송)
L4 UDP 빠른 데이터 전송 (신뢰성 포기)
L3 IP (IPv4/IPv6) 주소 지정·라우팅
L3 ICMP 오류 보고·진단 (ping)
L2 이더넷 (Ethernet) 같은 세그먼트 내 통신 (MAC 주소)
L2 ARP IP 주소 → MAC 주소 변환
L1 Wi-Fi (IEEE 802.11) 무선 전송
L1 이더넷 물리 (IEEE 802.3) 유선 전송 (케이블·전기 신호)

이 표의 프로토콜들이 이후 아홉 글에서 각각 깊이 다뤄진다. 이 글에서는 "어느 계층에 어느 프로토콜이 있는가"를 개요로만 잡는다.

실습 — 계층 직접 확인하기

1. 자신의 IP 주소와 MAC 주소 확인 (L2, L3)

# 네트워크 인터페이스 — IP(L3)와 MAC(L2) 주소
ip addr show
# 간략하게
ip -br addr

확인할 것: 각 인터페이스의 link/ether(MAC 주소, L2)와 inet(IP 주소, L3). MAC은 하드웨어에 고정된 6바이트 주소(0a:1b:2c:3d:4e:5f), IP는 네트워크에서 할당된 논리 주소(192.0.2.1).

# 예상 출력 (ip -br addr)
lo               UNKNOWN        127.0.0.1/8
eth0             UP             192.0.2.10/24   0a:1b:2c:3d:4e:5f

2. 열린 포트 확인 (L4)

# 이 컴퓨터에서 열려 있는 TCP 포트
ss -tlnp
# 또는 (구버전)
netstat -tlnp

확인할 것: Local Address:Port 열. 80(HTTP), 443(HTTPS), 22(SSH) 같은 포트가 열려 있으면 — 해당 서비스가 실행 중. 0.0.0.0:80은 "모든 IP의 80번 포트" = 어디서든 접속 가능. 127.0.0.1:80은 "로컬에서만" = 외부 접속 불가.

# 예상 출력 (ss -tlnp)
State   Local Address:Port   Process
LISTEN  0.0.0.0:22           sshd
LISTEN  0.0.0.0:80           nginx
LISTEN  0.0.0.0:443          nginx
LISTEN  127.0.0.1:5432       postgres

3. ARP 테이블 (L2 → L3 연결)

# IP 주소와 MAC 주소의 대응표
ip neigh show
# 또는 (구버전)
arp -n

확인할 것: 같은 네트워크에 있는 다른 장치의 IP와 MAC. 192.0.2.1 게이트웨이의 MAC 주소가 보인다. 이게 ARP(Address Resolution Protocol) — L3의 IP 주소를 L2의 MAC 주소로 변환하는 프로토콜. 다섯 번째 글(이더넷과 L2)에서 깊이 다룬다.

4. DNS 해석 (L7)

# 도메인 이름을 IP 주소로 변환
dig example.com +short
# 상세 정보
dig example.com

확인할 것: 도메인 example.com의 IP 주소(예: 93.184.216.34). 이 변환을 DNS(L7 응용 계층)가 수행한다. IP가 나오면 — 그 IP로 L3 패킷을 보내고, 그 패킷이 L2 프레임으로 캡슐화돼 L1 비트로 전송된다. 7계층 전체가 한 번의 웹 요청에서 동작하는 것이다.

5. 경로 추적 (L3 라우팅)

# 목적지까지 패킷이 거치는 라우터(홉) 목록
traceroute example.com 2>/dev/null || tracepath example.com

확인할 것: 패킷이 거쳐가는 각 라우터의 IP와 지연(ms). 첫 번째 홉은 보통 게이트웨이(같은 네트워크의 라우터). 마지막 홉은 목적지 서버. 각 홉이 L3(네트워크 계층)의 라우팅 결정이다.

미검증: 위 명령은 Linux VM·WSL2에서 동작. traceroute는 별도 설치 필요(apt install traceroute). 클라우드 VM에서는 일부 ICMP가 차단돼 traceroute가 안 될 수 있음 — tracepathmtr을 대신 사용.

비교 표 — OSI vs TCP/IP

특성 OSI 7계층 TCP/IP 4계층
계층 수 7 4
개발 시기 1984 (ISO) 1970 (DARPA)
실제 사용 교육·참조용 인터넷 실사용
L5 ~ L7 분리됨 (세션·표현·응용) 통합 (응용)
L1 ~ L2 분리됨 (물리·데이터 링크) 통합 (네트워크 액세스)
표준화 국제 표준 (ISO 7498) 사실상 표준 (RFC)

계층화는 "관심사의 분리"다

이 글의 우체국 비유로 돌아가자. 편지를 보내는 과정이 여러 단계로 나뉘어, 각 단계가 독립적으로 동작하는 것 — 그것이 네트워크의 계층화가 이루고자 하는 바다. HTTP(웹 개발자)는 이더넷(네트워크 엔지니어)이 어떻게 동작하는지 몰라도 웹 페이지를 만들 수 있다. 이더넷 엔지니어는 HTTP가 뭘 하는지 몰라도 스위치를 설계할 수 있다. 각자 자기 층만 책임지면 전체가 동작한다. 이 관심사의 분리가 계층화의 가치이고, 인터넷이 복잡하면서도 동작하는 이유다.

이제 이 영역의 아홉 글이 각 계층을 깊이 파고든다. 다음 글에서는 L2 — 이더넷과 데이터 링크 계층을 다룬다. MAC 주소·프레임 구조·ARP·스위치 동작이 "같은 네트워크 안에서" 어떻게 통신을 만드는지. 도로 위에서 차가 달리는 원리를 보는 것이다.


참고

  • ISO/IEC 7498-1:1994, "Information technology — Open Systems Interconnection — Basic Reference Model" — OSI 7계층 국제 표준. 접근 2026-07-21
  • RFC 1122, Braden, R. "Requirements for Internet Hosts — Communication Layers", 1989, Internet Standard — TCP/IP 4계층 모델. 접근 2026-07-21
  • Kurose, J. F., Ross, K. W. 8th ed, Pearson, 2021, Ch.1 — 계층화·OSI·TCP/IP 교과서. 접근 2026-07-21
  • Stevens, W. R., Fall, K. <TCP/IP Illustrated, Volume 1> 2nd ed, Addison-Wesley, 2011, Ch.1 — TCP/IP 프로토콜 suite 정론. 접근 2026-07-21
  • Russell, A. , Cambridge University Press, 2014 — OSI vs TCP/IP 역사. 접근 2026-07-21
  • Day, J. Prentice Hall, 2008 — OSI 설계 철학과 TCP/IP 비교. 접근 2026-07-21