TCP/IP 완전기초 — 우편 시스템에 비유해 끝까지 이해하는 네트워크의 뼈대
안녕하세요, 도담인사이트입니다. 😊
지금까지 방화벽, IPS/IDS 같은 보안 장비를 다뤘는데요, 이 모든 것의 바탕이 되는 기초 중의 기초가 바로 TCP/IP입니다. 네트워크를 공부하면 평생 따라다니는 개념이죠.
이번 글은 TCP/IP를 처음 접하는 분을 위해 작정하고 길게 썼습니다. 모델 구조, IP 주소, TCP와 UDP, 3-way 핸드셰이크, 포트, 캡슐화, 그리고 "웹페이지 하나 열 때 실제로 무슨 일이 일어나는지"까지 비유와 함께 차근차근 풀어보겠습니다. 북마크해 두고 천천히 읽어보세요!
- TCP/IP란? — 전 세계가 합의한 통신 약속
- 왜 '계층(Layer)'으로 나눌까? — 분업의 힘
- OSI 7계층 vs TCP/IP 4계층
- TCP/IP 4계층 하나씩 뜯어보기
- IP 주소 완전 기초 (IPv4 · 사설/공인 · 서브넷)
- MAC 주소 vs IP 주소 — 뭐가 다를까?
- TCP vs UDP — 등기우편 vs 엽서
- 포트(Port)와 잘 알려진 포트 번호
- TCP 3-way / 4-way 핸드셰이크
- 캡슐화(Encapsulation) — 택배 포장의 비밀
- 실전: 웹페이지 하나 열 때 일어나는 모든 일
- 함께 알아둘 핵심 프로토콜 (ARP·ICMP·DHCP·DNS·NAT)
- 실무 확인 명령어 모음
- Q&A — 초보자가 자주 묻는 질문
1. TCP/IP란? — 전 세계가 합의한 통신 약속 🌐
TCP/IP는 인터넷에서 데이터를 주고받기 위한 통신 규칙(프로토콜)들의 묶음입니다. 이름은 대표 프로토콜인 TCP(Transmission Control Protocol)와 IP(Internet Protocol)에서 따왔지만, 실제로는 수십 개의 프로토콜이 함께 동작하는 패밀리(protocol suite)를 가리킵니다.
이 약속 덕분에 삼성 노트북이든, 애플 아이폰이든, 미국의 구글 서버든 제조사·운영체제·국가가 달라도 서로 막힘없이 통신할 수 있습니다.
📖 먼저 알아둘 핵심 용어
| 용어 | 쉬운 설명 |
|---|---|
| 프로토콜(Protocol) | 통신을 위한 약속/규칙. "이렇게 말하면 이렇게 답한다"는 통신 예절. |
| 패킷(Packet) | 데이터를 작게 쪼갠 한 조각. "택배 상자 하나". |
| 헤더(Header) | 데이터 앞에 붙는 "송장(주소·정보)". 어디로 갈지, 누가 보냈는지 등을 적어둠. |
| 호스트(Host) | 네트워크에 연결된 기기 하나(PC, 서버, 스마트폰 등). |
| 클라이언트/서버 | 요청하는 쪽(클라이언트) / 응답해 주는 쪽(서버). 손님과 식당. |
2. 왜 '계층(Layer)'으로 나눌까? — 분업의 힘 🏗️
TCP/IP의 가장 중요한 아이디어는 통신 과정을 여러 '계층(층)'으로 나눈다는 점입니다. 왜 굳이 나눌까요?
택배가 배송되려면 ① 물건을 포장하고 ② 주소를 붙이고 ③ 트럭으로 운송하고 ④ 받는 사람이 개봉합니다. 이걸 한 사람이 다 하지 않고 포장팀·주소팀·운송팀이 분업하죠.
이렇게 나누면 좋은 점: 운송팀이 트럭을 비행기로 바꿔도 포장 방식은 그대로 쓸 수 있습니다. 한 부분을 바꿔도 다른 부분에 영향이 적은, "각 층이 자기 일만 책임지는" 구조죠.
네트워크도 똑같습니다. "데이터를 어떻게 포장할지(응용)", "어떻게 신뢰성 있게 보낼지(전송)", "어느 IP로 보낼지(인터넷)", "실제 선로로 어떻게 흘려보낼지(네트워크 접근)"를 층층이 나눠 각 층이 자기 책임만 다하도록 설계했습니다. 그래서 Wi-Fi를 유선으로 바꿔도(맨 아래층 변경) 웹브라우저(맨 위층)는 아무 변화 없이 동작합니다.
3. OSI 7계층 vs TCP/IP 4계층 📚
네트워크 모델은 두 가지가 유명합니다. OSI 7계층은 이론·교육용 표준 모델이고, TCP/IP 4계층은 실제 인터넷이 돌아가는 현실 모델입니다. 둘은 서로 대응됩니다.
| OSI 7계층 | TCP/IP 4계층 | 대표 예시 |
|---|---|---|
| 7. 응용 / 6. 표현 / 5. 세션 | 응용 계층 (Application) | HTTP, DNS, FTP, SMTP |
| 4. 전송 | 전송 계층 (Transport) | TCP, UDP |
| 3. 네트워크 | 인터넷 계층 (Internet) | IP, ICMP, ARP |
| 2. 데이터링크 / 1. 물리 | 네트워크 접근 계층 (Network Access) | 이더넷, Wi-Fi, MAC |
※ TCP/IP 모델을 5계층(물리/데이터링크를 분리)으로 보는 교재도 있습니다. 본 글은 가장 보편적인 4계층 기준으로 설명합니다.
4. TCP/IP 4계층 하나씩 뜯어보기 🔧
④ 응용 계층 (Application) — 사용자와 가장 가까운 층
- 사람이 직접 쓰는 프로그램(웹브라우저, 메일, 카톡)이 데이터를 만드는 층.
- HTTP/HTTPS(웹), DNS(이름→IP 변환), FTP(파일전송), SMTP/POP3/IMAP(메일) 등.
③ 전송 계층 (Transport) — 신뢰성과 구분을 책임
- 데이터를 제대로, 순서대로 보내는 걸 책임(TCP). 또는 빠르게 보내는 데 집중(UDP).
- 포트 번호로 "이 데이터가 어느 프로그램(서비스)으로 갈지" 구분.
② 인터넷 계층 (Internet) — 목적지까지의 길찾기
- IP 주소를 붙여 "어느 집으로 보낼지" 결정하고, 라우터를 거쳐 최적의 경로(라우팅)로 전달.
- 대표 프로토콜: IP(주소·라우팅), ICMP(상태/오류 알림, ping이 사용), ARP(IP↔MAC 연결).
① 네트워크 접근 계층 (Network Access) — 실제 전송
- 데이터를 실제 전기 신호·전파로 바꿔 케이블/Wi-Fi로 흘려보내는 가장 아래층.
- 이더넷, Wi-Fi, MAC 주소가 여기서 동작.
5. IP 주소 완전 기초 🏠
IP 주소는 네트워크상에서 기기를 식별하는 "집 주소"입니다. 데이터를 어디로 보낼지 알려주죠. 가장 널리 쓰이는 IPv4는 이렇게 생겼습니다.
192 . 168 . 10 . 25 └─8bit┘ └─8bit┘ └─8bit┘ └─8bit┘ = 총 32비트 (8비트 x 4칸) * 각 칸(옥텟)은 0 ~ 255 사이의 숫자 * 점(.)으로 구분해서 "점 십진 표기법"이라 부름
네트워크 부분 + 호스트 부분
IP 주소는 "어느 동네인지(네트워크)"와 "그 동네 몇 번째 집인지(호스트)"로 나뉩니다. 이걸 구분해 주는 게 서브넷 마스크입니다.
IP 주소 : 192.168.10.25 서브넷 마스크 : 255.255.255.0 (= /24 라고도 표기, CIDR) -> 앞 24비트(192.168.10) = 네트워크 부분 (동네) -> 뒤 8비트 (.25) = 호스트 부분 (집 번호) -> 같은 192.168.10.x 끼리는 같은 네트워크
사설 IP vs 공인 IP
| 공인 IP | 인터넷에서 전 세계 유일한 주소. ISP(통신사)가 할당. "전국에 하나뿐인 진짜 도로명 주소". |
| 사설 IP | 집/회사 내부에서만 쓰는 주소(10.x / 172.16~31.x / 192.168.x). "건물 내부 호실 번호". 인터넷에 나갈 땐 NAT로 공인 IP로 변환. |
6. MAC 주소 vs IP 주소 — 뭐가 다를까? 🆔
| 구분 | MAC 주소 | IP 주소 |
|---|---|---|
| 비유 | 주민등록번호(평생 고정) | 집 주소(이사하면 바뀜) |
| 변경 | 기기에 새겨진 고유값(원칙상 불변) | 네트워크 바뀌면 변함 |
| 형식 | A4:B1:C2:D3:E4:F5 | 192.168.10.25 |
| 역할 | 같은 네트워크 내 직접 전달 | 먼 곳까지 길찾기(라우팅) |
📌 둘은 함께 동작합니다. "강남구 123번지(IP)"로 길을 찾아 동네에 도착하면, 마지막엔 "주민등록번호(MAC)"로 정확한 사람에게 전달합니다. 이 IP↔MAC 연결을 해주는 게 바로 ARP입니다.
7. TCP vs UDP — 등기우편 vs 엽서 📬
전송 계층의 두 주인공입니다. 같은 데이터라도 어떻게 보낼지가 다릅니다.
| 구분 | TCP | UDP |
|---|---|---|
| 비유 | 등기우편(수령 확인) | 엽서(보내고 끝) |
| 연결 | 연결 후 전송(3-way) | 연결 없이 바로 전송 |
| 신뢰성 | 높음(분실 시 재전송, 순서 보장) | 낮음(분실해도 모름) |
| 속도 | 상대적으로 느림 | 빠름·가벼움 |
| 용도 | 웹, 메일, 파일전송(정확성 중요) | 실시간 영상·음성, 게임, DNS(속도 중요) |
8. 포트(Port)와 잘 알려진 포트 번호 🚪
IP 주소가 "건물 주소"라면, 포트는 그 건물 안의 '호실 번호'입니다. 한 서버(IP)가 웹·메일·FTP를 동시에 제공할 때, 들어온 데이터가 어느 서비스로 갈지 포트로 구분합니다.
| 포트 | 서비스 | 설명 |
|---|---|---|
| 20/21 | FTP | 파일 전송 |
| 22 | SSH | 암호화 원격 접속 |
| 23 | Telnet | 원격 접속(비암호화, 지양) |
| 53 | DNS | 도메인 이름 → IP 변환 |
| 80 | HTTP | 웹(비암호화) |
| 443 | HTTPS | 웹(암호화) — 요즘 표준 |
| 3389 | RDP | 윈도우 원격 데스크톱 |
※ 0~1023번을 "잘 알려진 포트(Well-Known Port)"라고 합니다. 방화벽 정책을 짤 때 바로 이 포트 번호로 "무엇을 허용/차단할지" 정하게 됩니다(앞선 방화벽 글과 연결!).
9. TCP 3-way / 4-way 핸드셰이크 🤝
TCP는 데이터를 보내기 전에 먼저 "연결을 수립"합니다. 이 과정이 3-way 핸드셰이크입니다.
[연결 수립 - 3-way handshake]
클라이언트 서버
| --- SYN ------------> | "연결할까요?"
| <-- SYN + ACK ------- | "좋아요, 저도 준비됐어요"
| --- ACK ------------> | "그럼 시작합니다"
=> 연결 완료, 데이터 전송 시작
[연결 종료 - 4-way handshake]
| --- FIN ------------> | "이제 그만 보낼게요"
| <-- ACK ------------- | "알겠어요"
| <-- FIN ------------- | "저도 다 보냈어요"
| --- ACK ------------> | "네, 종료합니다"
📌 SYN(연결 요청), ACK(확인 응답), FIN(종료 요청)은 TCP 헤더의 '플래그(flag)'입니다. 방화벽이 세션 상태를 추적할 때(스테이트풀!) 바로 이 플래그들을 봅니다.
10. 캡슐화(Encapsulation) — 택배 포장의 비밀 🎁
데이터는 위 계층에서 아래 계층으로 내려가며 각 층의 헤더(송장)가 하나씩 덧붙습니다. 이를 캡슐화라 하고, 받는 쪽에서 거꾸로 벗기는 걸 역캡슐화라 합니다.
[보낼 때 - 캡슐화: 위에서 아래로 헤더가 붙음] 응용 : [ 데이터 ] 전송 : [TCP헤더][데이터] <- 세그먼트 인터넷 : [IP헤더][TCP헤더][데이터] <- 패킷 네트워크: [이더넷헤더][IP헤더][TCP헤더][데이터][FCS] <- 프레임 * 계층마다 데이터 단위(PDU) 이름이 다름: 세그먼트(전송) -> 패킷(인터넷) -> 프레임(네트워크)
11. 실전: 웹페이지 하나 열 때 일어나는 모든 일 🌍
주소창에 www.dodam.com을 치고 엔터를 누르면, 그 짧은 순간에 이런 일들이 순서대로 일어납니다.
- DNS 조회: "www.dodam.com의 IP가 뭐죠?" → DNS 서버가 "203.0.113.50"이라고 답해줌. (전화번호부에서 이름으로 번호 찾기)
- ARP: 같은 네트워크에서 다음 목적지(보통 라우터)의 MAC 주소를 알아냄.
- TCP 3-way 핸드셰이크: 그 서버의 443번 포트와 연결 수립.
- HTTPS 요청: "이 페이지 주세요(GET)" 요청을 암호화해 전송.
- 라우팅: 패킷이 여러 라우터를 거쳐(홉 by 홉) 목적지까지 길찾기.
- 서버 응답: 서버가 HTML/이미지 등을 패킷으로 쪼개(캡슐화) 돌려보냄.
- 역캡슐화 & 렌더링: 내 PC가 패킷을 다시 조립(역캡슐화)해 브라우저가 화면을 그림.
12. 함께 알아둘 핵심 프로토콜 🧩
| ARP | IP 주소로 MAC 주소를 알아내는 프로토콜. "이 IP 쓰는 분, MAC이 뭐예요?"라고 동네에 방송. |
| ICMP | 상태·오류를 알리는 프로토콜. ping과 traceroute가 이걸 사용. "거기 살아있어요?" 확인용. |
| DHCP | IP 주소를 자동으로 배정. 호텔 체크인 시 방 번호(IP)를 자동으로 받는 것과 같음. |
| DNS | 도메인 이름 ↔ IP 변환. "전화번호부" 역할. 사람은 이름, 컴퓨터는 IP를 쓰니 통역이 필요. |
| NAT | 사설 IP ↔ 공인 IP 변환. 회사 대표번호 하나로 수많은 내선이 외부와 통신하게 해줌. |
13. 실무 확인 명령어 모음 ⌨️
배운 개념을 직접 확인해 볼 수 있는 명령어들입니다. (윈도우는 cmd, 리눅스/맥은 터미널)
# 내 IP 주소 확인 ipconfig # (Windows) ifconfig # (Linux/Mac, 또는 ip addr) # 상대방이 살아있는지 확인 (ICMP) ping 8.8.8.8 ping www.dodam.com # 목적지까지 거쳐가는 경로(라우터) 추적 tracert www.dodam.com # (Windows) traceroute www.dodam.com # (Linux/Mac) # 도메인의 IP 조회 (DNS) nslookup www.dodam.com # 현재 연결된 세션/포트 상태 보기 netstat -an # IP <-> MAC 매핑 테이블 보기 (ARP) arp -a
ping 결과의 TTL 값과 응답 시간(ms), tracert의 홉(hop) 개수를 보면 "데이터가 몇 개의 라우터를 거쳐 가는지"가 눈에 보입니다. 직접 쳐보면 개념이 훨씬 빨리 와닿아요!
❓ Q&A — 초보자가 자주 묻는 질문
- TCP/IP = 전 세계가 합의한 통신 약속 묶음, 통신을 4개 층으로 분업.
- 층: 응용 → 전송 → 인터넷 → 네트워크 접근 (편지 쓰기 → 포장 → 주소 → 운송).
- IP=집 주소(길찾기), MAC=주민번호(최종전달), 포트=호실(서비스 구분).
- TCP=등기(정확), UDP=엽서(빠름). TCP는 3-way로 연결 후 전송.
- 데이터는 캡슐화로 한 겹씩 포장되어 내려가고, 받는 쪽에서 한 겹씩 벗겨진다.
#TCPIP #티씨피아이피 #네트워크기초 #NetworkBasics #OSI7계층 #TCPIP4계층 #IP주소 #IPv4 #서브넷마스크 #MAC주소 #TCP #UDP #3wayhandshake #포트번호 #캡슐화 #Encapsulation #DNS #ARP #ICMP #DHCP #NAT #ping #CCNA #네트워크입문 #도담인사이트 #DodamInsight
댓글
댓글 쓰기