TCP, UDP, ICMP 차이
TCP (Transmission Control Protocol)
- 연결 지향형 (3-way handshake로 연결 수립)
- 신뢰성 보장: 패킷 순서 보장, 재전송, 흐름 제어, 혼잡 제어
- 속도: 상대적으로 느림 (오버헤드 큼)
- 용도: HTTP/HTTPS, SSH, FTP, 이메일(SMTP) — 데이터 무결성이 중요한 통신
UDP (User Datagram Protocol)
- 비연결형 (handshake 없이 바로 전송)
- 신뢰성 없음: 순서/도착 보장 안 함, 재전송 없음
- 속도: 빠르고 가벼움 (헤더 8바이트)
- 용도: DNS, DHCP, VoIP, 영상 스트리밍, 온라인 게임 — 속도가 중요한 통신
ICMP (Internet Control Message Protocol)
- 제어/진단용 프로토콜 (데이터 전송이 아닌 네트워크 상태 통보)
- 포트 개념 없음 (TCP/UDP와 달리 IP 계층에서 직접 동작)
- 용도: ping(Echo Request/Reply), traceroute, "Destination Unreachable", "TTL Exceeded" 등 오류·상태 메시지
한눈에 비교
| 구분 |
TCP |
UDP |
ICMP |
| 계층 |
Transport (L4) |
Transport (L4) |
Network (L3) |
| 연결 |
연결형 |
비연결형 |
비연결형 |
| 신뢰성 |
있음 |
없음 |
없음 |
| 포트 |
사용 |
사용 |
미사용 |
| 대표 용도 |
웹, 파일전송 |
스트리밍, DNS |
ping, 오류통보 |
핵심: TCP는 "정확하게", UDP는 "빠르게", ICMP는 "네트워크 상태를 알리기 위해" 쓰는 프로토콜입니다.
TCP / UDP / ICMP 사용 케이스 예시
TCP — 신뢰성·순서 보장이 중요한 통신
- 웹 서비스 (HTTP/HTTPS)
- 웹페이지 로딩, REST API 호출
- HTML·JSON 데이터가 한 바이트라도 깨지면 안 됨
- 파일 전송 (FTP, SFTP, SCP)
- 파일 업로드/다운로드
- 모든 패킷이 정확한 순서로 도착해야 파일 무결성 보장
- 이메일 (SMTP, IMAP, POP3)
- 메일 송수신
- 메일 본문·첨부파일 손실 시 치명적
- 데이터베이스 연결 (MySQL, PostgreSQL, Redis)
- 애플리케이션 서버 ↔ DB 쿼리·응답
- 트랜잭션 정합성 필수
UDP — 속도·실시간성이 중요한 통신
- DNS 조회
- 도메인 → IP 변환 (google.com → 142.250.207.46)
- 짧은 질의·응답이라 TCP 핸드셰이크가 오히려 비효율적
- 실시간 영상·음성 (VoIP, 화상회의, 라이브 스트리밍)
- Zoom, Discord 음성, 유튜브 라이브
- 패킷 몇 개 빠져도 영상이 잠깐 깨지는 게 낫지, 재전송으로 끊기면 더 나쁨
- 온라인 게임 (FPS, MMORPG의 위치 동기화)
- 배틀그라운드, LoL의 실시간 좌표 전송
- 0.1초 늦은 정확한 데이터보다 지금 바로 도착한 데이터가 가치 있음
- NTP (시각 동기화)
ICMP — 네트워크 진단·제어 메시지
- ping (Echo Request / Reply)
- 서버가 살아있는지, 응답시간(latency)이 얼마인지 확인
- 가장 흔한 네트워크 진단 도구
- traceroute / tracert
- 출발지 → 목적지까지 거치는 라우터 경로 추적
- TTL을 1씩 늘려가며 "TTL Exceeded" ICMP 메시지를 받아 경로 파악
- Destination Unreachable / Host Unreachable
- 라우터가 "이 IP 못 찾음", "포트 닫혀 있음"을 송신자에게 자동 통보
- 방화벽 차단·라우팅 오류 디버깅에 활용
- Path MTU Discovery
- 경로상 최대 전송 단위(MTU) 자동 탐색
- 패킷 분할 없이 효율적으로 전송하기 위함
한눈에 정리
프로토콜 대표 사용 케이스
| TCP |
웹(HTTPS), 파일전송(FTP), 이메일(SMTP), DB 연결 |
| UDP |
DNS, 영상/음성 스트리밍, 온라인 게임, NTP |
| ICMP |
ping, traceroute, 네트워크 오류 통보 |
