OSI 7계층과 TCP/IP 모델, 왜 지도를 두 개나 그릴까요?¶
우리가 지금까지 배운 패킷, IP, TCP, HTTP는 모두 자기만의 "층" 이 있어요. 이 층들이 어떻게 쌓여있는지 알면 네트워크 전체 그림이 보이기 시작해요.
우리는 지금까지 꽤 먼 길을 왔어요. 데이터 조각인 패킷부터 시작해서, IP 주소로 길을 찾고, TCP/UDP로 전달 방식을 정하고, DNS로 이름을 찾고, 포트로 앱을 찾고, HTTP로 대화하고, TLS로 그 대화를 보호하는 법까지 배웠죠.
지금까지는 각각의 개념을 하나씩 따로 만나본 시간이었다면, 이번 글은 그 조각들을 한 번에 펼쳐서 "아, 이 친구들이 원래 이런 층에 살고 있었구나" 하고 지도로 묶어보는 시간이라고 생각하면 돼요.
그러니까 여기서는 새로운 용어를 더 외우기보다, 앞에서 만난 개념들이 어디에 놓이는지 먼저 정리해보면 충분해요. 그리고 다음 글부터는 이 지도 위에서 TCP handshake, NAT, 패킷 캡처 같은 실제 메커니즘을 하나씩 다시 열어보게 될 거예요.
근데요, 이쯤 되면 이런 생각이 들지 않으세요?
"이 많은 개념이 머릿속에서 따로 노는 것 같아요. 얘네들을 한데 묶어서 볼 수 있는 지도는 없을까요?"
맞아요. 그래서 네트워크 전문가들은 복잡한 통신 과정을 "계층(Layer)" 이라는 개념으로 나눠서 지도를 그렸어요. 그중 가장 유명한 게 바로 OSI 7계층과 TCP/IP 모델이에요.
일단 비유로 시작해볼게요¶
우리가 해외로 택배를 보낸다고 상상해볼까요? 택배가 도착하기까지는 여러 단계의 서비스가 필요해요.
- 포장 단계: 물건을 박스에 담고 주소를 적어요 (내용물 준비)
- 통관 단계: 세관에서 내용물을 확인하고 승인해요 (보안/절차)
- 운송 단계: 비행기나 배에 싣고 국가 간 이동을 해요 (길 찾기)
- 배달 단계: 현지 택배 기사님이 우리 집 문 앞까지 가져다줘요 (최종 전달)
여기서 중요한 건, 각 단계는 자기 일만 잘하면 된다는 거예요. 비행기 기장님은 박스 안에 뭐가 들었는지 일일이 알 필요가 없죠. 그냥 정해진 경로로 안전하게 운송만 하면 돼요.
네트워크도 똑같아요. 데이터가 만들어져서 전선이나 무선 신호로 바뀌어 나갈 때까지, 각 단계가 층층이 쌓여서 자기 역할을 수행해요.
flowchart TD
subgraph 택배_시스템 [택배 시스템 비유]
T1[물건 포장 및 주소 작성]
T2[세관 통관 및 검사]
T3[비행기/배 운송]
T4[현지 트럭 배달]
end
subgraph 네트워크_시스템 [네트워크 계층]
N1[데이터 생성 및 대화 규칙<br/><small>HTTP, TLS</small>]
N2[전달 방식 결정<br/><small>TCP, UDP</small>]
N3[목적지 주소 및 경로<br/><small>IP</small>]
N4[실제 신호 전달<br/><small>이더넷, Wi-Fi</small>]
end
T1 <--> N1
T2 <--> N2
T3 <--> N3
T4 <--> N4
이 그림처럼 복잡한 일을 여러 단계로 나누면, 문제가 생겼을 때 어디가 고장 났는지 찾기도 쉽고 새로운 기술을 끼워 넣기도 편해져요.
OSI 7계층과 TCP/IP 모델, 뭐가 다를까요?¶
네트워크 지도는 크게 두 종류가 있어요.
- OSI 7계층: "이론적으로는 이렇게 7단계로 나눠서 생각해보자" 하고 만든 표준 참조 모델이에요. 아주 꼼꼼하죠.
- TCP/IP 모델: 실제 인터넷에서 자주 쓰는 프로토콜들을 바탕으로 정리한 실전형 인터넷 구조 지도예요.
우리가 쓰는 진짜 인터넷은 대부분 TCP/IP 모델을 따르지만, 공부할 때는 OSI 7계층이라는 잣대를 빌려서 설명할 때가 많아요.
| 계층 (OSI 7) | 비유하자면 | 대표적인 기술 / 우리가 배운 것 |
|---|---|---|
| 7. 응용 (Application) | 대화 규칙 그 자체 | HTTP, DNS |
| 6. 표현 (Presentation) | 데이터 표현 방식 / 암호화 같은 개념 | TLS를 이 층과 연결해 설명하기도 해요 |
| 5. 세션 (Session) | 대화 흐름을 이어가는 개념적 자리 | 세션 관리 같은 개념 |
| 4. 전송 (Transport) | 어떻게 보낼지 (꼼꼼하게/빠르게) | TCP, UDP, 포트 |
| 3. 네트워크 (Network) | 어디로 갈지 (주소와 길) | IP, 라우팅 |
| 2. 데이터 링크 (Data Link) | 옆집까지 어떻게 보낼지 | 이더넷, MAC 주소 |
| 1. 물리 (Physical) | 전선, 빛, 무선 신호 | 케이블, 허브 |
여기서 재미있는 점은, TCP/IP 모델은 이 복잡한 7개를 4개나 5개로 합쳐서 불러요. 예를 들어 5, 6, 7층을 묶어서 그냥 "응용(Application) 계층" 이라고 부르는 식이죠.
근데 여기서 한 가지는 꼭 조심해서 봐야 해요.
OSI 7계층은 공부용 지도에 가깝고, 실제 프로토콜이 1:1로 딱 떨어지게 꽂히는 건 아니에요.
그래서 TLS를 6층 쪽에 설명하는 자료도 있고, 응용 계층 쪽 흐름 안에서 같이 설명하는 자료도 있어요. 5층, 6층도 요즘 인터넷에서는 아주 또렷한 독립 주인공처럼 보이기보다, 개념을 정리하기 위한 칸에 더 가깝다고 생각하면 덜 헷갈려요.
flowchart LR
subgraph OSI_7_Layers [OSI 7계층]
direction TB
L7[7. Application]
L6[6. Presentation]
L5[5. Session]
L4[4. Transport]
L3[3. Network]
L2[2. Data Link]
L1[1. Physical]
end
subgraph TCP_IP_Model [TCP/IP 모델]
direction TB
T4[Application<br/><small>7+6+5</small>]
T3[Transport<br/><small>4</small>]
T2[Internet<br/><small>3</small>]
T1[Network Access<br/><small>2+1</small>]
end
L7 -.-> T4
L6 -.-> T4
L5 -.-> T4
L4 --- T3
L3 --- T2
L2 -.-> T1
L1 -.-> T1
"OSI는 이상적인 설계도고, TCP/IP는 실제로 지어진 건물"이라고 생각하면 이해가 빨라요.
근데 왜 굳이 이렇게 나눠서 생각해야 할까요?¶
처음엔 그냥 "인터넷 연결" 하나면 될 것 같은데, 굳이 층을 나누는 이유가 있어요.
1. 문제가 생겼을 때 범인을 찾기 쉬워요¶
인터넷이 안 될 때, "인터넷이 안 돼요!"라고만 하면 어디를 고쳐야 할지 모르죠.
- "공유기 불은 들어오나?" (1층 물리 계층 확인)
- "IP 주소는 제대로 받았나?" (3층 네트워크 계층 확인)
- "웹사이트 주소가 잘못됐나?" (7층 응용 계층 확인) 이렇게 층별로 확인하면 문제를 훨씬 빨리 해결할 수 있어요.
2. 기술을 독립적으로 발전시킬 수 있어요¶
새로운 Wi-Fi 기술(1, 2층)이 나왔다고 해서, 우리가 쓰는 크롬 브라우저(7층)를 새로 만들 필요는 없잖아요. 각 층이 독립되어 있어서, 아래층이 바뀌어도 위층은 그대로 자기 일을 할 수 있어요.
3. 우리가 배운 개념들의 "집"을 찾아줄 수 있어요¶
- HTTP는 제일 꼭대기인 7층에 살아요.
- TCP는 그 아래인 4층에서 배달 방식을 고민하죠.
- IP는 그 아래 3층에서 주소를 보고 길을 찾아요.
- 패킷은 사실 이 층들을 지나면서 계속 포장지가 씌워지고 벗겨지는 과정을 겪는 주인공이에요.
그러니까 우리가 앞에서 본 글들은 사실 따로 놀던 게 아니었어요. 01은 데이터 조각의 감각, 02는 3층의 길 찾기, 03과 05는 4층의 전달과 연결 감각, 04와 06은 7층의 대화와 이름 찾기, 07은 그 대화를 보호하는 준비를 먼저 떼어 본 셈이죠.
그럼 진짜 데이터는 어떻게 이동할까요?¶
여러분이 브라우저에 hello라고 입력해서 보낸다고 해볼게요.
데이터는 위에서 아래로 내려가면서 "포장(캡슐화)" 돼요.
- 7층 (HTTP): "안녕"이라는 데이터에 HTTP 헤더를 붙여요.
- 4층 (TCP): "몇 번 포트로 가야 해"라는 정보를 붙여요.
- 3층 (IP): "어떤 IP 주소로 가야 해"라는 정보를 붙여요.
- 2층 (이더넷 / Wi-Fi): "지금 바로 다음 장비(공유기 등)한테는 어떻게 보낼까?" 하는 정보를 붙여요.
- 1층 (물리): 이 모든 걸 전기 신호나 무선 신호로 바꿔서 실제로 내보내요.
받는 쪽에서는 반대로 "포장을 하나씩 뜯으면서(역캡슐화)" 위로 올라가요.
sequenceDiagram
participant 보낸사람 as 💻 보내는 쪽 (위 -> 아래)
participant 받는사람 as 🌍 받는 쪽 (아래 -> 위)
Note over 보낸사람: [데이터]
Note over 보낸사람: [HTTP 헤더][데이터]
Note over 보낸사람: [TCP 헤더][HTTP...][데이터]
Note over 보낸사람: [IP 헤더][TCP...][HTTP...][데이터]
Note over 보낸사람: [이더넷/Wi-Fi 정보][IP...][TCP...][HTTP...][데이터]
보낸사람->>받는사람: ⚡ 전기/무선 신호 전달
Note over 받는사람: [이더넷/Wi-Fi 정보][IP...][TCP...][HTTP...][데이터]
Note over 받는사람: [IP 헤더][TCP...][HTTP...][데이터] (2층 정보 제거)
Note over 받는사람: [TCP 헤더][HTTP...][데이터] (IP 헤더 제거)
Note over 받는사람: [HTTP 헤더][데이터] (TCP 헤더 제거)
Note over 받는사람: [데이터] (최종 도착)
이 과정을 보면 우리가 왜 지난 글들에서 그 많은 용어를 배웠는지 알 수 있죠. 결국 각 층의 포장지에 적힌 정보를 배우는 과정이었던 거예요!
자, 정리해볼까요?¶
오늘 우리가 배운 것
- 계층(Layer)은 복잡한 네트워크를 단계별로 나눈 지도예요.
- OSI 7계층은 이론적인 표준 지도, TCP/IP 모델은 실제 인터넷 지도예요.
- 각 층은 독립적으로 움직여서, 문제가 생겼을 때 해결하기 쉽고 기술 발전도 자유로워요.
- 우리가 배운 HTTP(7층), TCP(4층), IP(3층) 등은 모두 자기만의 자리가 있어요.
- 데이터는 보낼 때 층별로 포장(캡슐화)되고, 받을 때 포장을 뜯으면서(역캡슐화) 원래 모습을 찾아요.
지도가 생기니까 이제 네트워크라는 큰 대륙이 한눈에 들어오는 기분이 들지 않으세요? 우리는 이제 이 지도를 들고, 더 깊고 흥미로운 네트워크의 속살을 들여다볼 준비가 됐어요.
다음 글 예고¶
근데요, 이 계층들 사이에서 특히 4층(TCP)이 연결을 시작할 때 아주 신중한 약속을 한다는 사실, 알고 계셨나요?
"서로 대화를 시작하기 전에 '준비됐니?'라고 세 번이나 물어본다고?"
다음 글에서는 TCP가 안전하게 연결을 맺는 마법, "TCP 3-way handshake" 이야기를 해볼게요. 데이터가 흐르기 전, 두 장비가 어떻게 손을 맞잡는지 같이 확인해 봐요.