[CS] TCP / UDP
[CS] TCP / UDP
TCP와 UDP 개념 및 비교
TCP와 UDP는 전송 계층(Transport Layer)에 위치한 대표적인 프로토콜로, 인터넷 환경에서 데이터를 전송할 때 사용됩니다. 두 프로토콜은 설계 목적과 특징이 다르기 때문에, 상황에 따라 선택적으로 사용됩니다.
1. TCP (Transmission Control Protocol)
개요
- 연결 지향형 프로토콜
- 데이터의 신뢰성 보장, 순서 보장, 재전송 기능 포함
- 상대적으로 전송 속도는 느림
동작 방식
- 3-Way Handshake를 통해 연결을 설정
- 클라이언트 → 서버: SYN
- 서버 → 클라이언트: SYN + ACK
- 클라이언트 → 서버: ACK
주요 기능
- 데이터 순서 보장 (Out-of-order 방지)
- 데이터 손실 시 재전송
- 흐름 제어, 혼잡 제어 지원
사용 예시
- HTTP / HTTPS (웹 통신)
- FTP (파일 전송)
- 이메일 (SMTP, POP3 등)
2. UDP (User Datagram Protocol)
개요
- 비연결형 프로토콜
- 데이터 전송의 속도와 효율성을 중시
- 데이터 순서, 손실 보장 기능 없음
동작 방식
- 연결 설정 없이 즉시 데이터 전송
- 수신 여부 확인하지 않음 (ACK 없음)
주요 기능
- 빠른 전송 속도
- 오버헤드가 적음
- 데이터 순서 보장 X, 재전송 X
사용 예시
- 실시간 스트리밍 (IPTV, YouTube)
- 온라인 게임
- VoIP (음성 통화)
- DNS 요청
3. TCP와 UDP 차이점
TCP는 데이터 전송의 신뢰성, 순서, 정확성을 보장하기 위한 프로토콜로, 연결 설정 후 데이터를 전송하며, 오류가 발생하면 자동으로 복구합니다. 반면 UDP는 연결 설정 없이 빠르게 데이터를 전송하는 것을 목적으로 하며, 신뢰성과 순서를 보장하지 않기 때문에, 실시간성이 중요한 통신에 적합합니다.
즉, TCP는 “정확함”을, UDP는 “속도와 실시간성”을 추구합니다.
| 항목 | TCP | UDP |
|---|---|---|
| 연결 방식 | 연결 지향 | 비연결 지향 |
| 신뢰성 | 높음 | 낮음 |
| 데이터 순서 보장 | 있음 | 없음 |
| 오류 검출 후 복구 | 있음 | 없음 (오류 검출만 가능) |
| 전송 속도 | 느림 | 빠름 |
| 헤더 크기 | 큼 (20바이트 이상) | 작음 (8바이트) |
| 대표 사용처 | 웹, 이메일, 파일 전송 | 실시간 통신, 게임, 스트리밍 |
4. 선택 기준 요약
| 조건 | 추천 프로토콜 |
|---|---|
| 데이터 손실이 치명적인 경우 | TCP |
| 실시간성이 중요하고 약간의 손실 허용 가능 | UDP |
| 웹, 파일 다운로드 | TCP |
| 게임, 음성 통화, 스트리밍 | UDP |
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.