1. TCP와 UDP의 주요 개념
1-1 트랜스포트 계층
- TCP와 UDP는 OSI 7계층 모델 중 트랜스포트 계층에 속하는 프로토콜입니다.
- 트랜스포트 계층: 데이터를 송신자와 수신자 간 정확하게 전달하는 역할.
2. TCP와 UDP 비유
2-1 TCP 비유
- 안전한 트럭 / 전화 연결:
- 데이터를 안전하게 목적지까지 전달하며, 데이터의 순서와 무결성을 보장합니다.
- 예시: 택배 시스템, 전화 통화.
2-2 UDP 비유
- 위험한 총알 배송 / 이메일:
- 데이터를 빠르게 전송하지만 순서와 무결성을 보장하지 않습니다.
- 예시: 빠른 배송 서비스, 스트리밍 데이터 전송.
3. 연결 지향성과 비연결형 비교
3-1 TCP (연결 지향형 서비스)
- 데이터를 전송하기 전에 논리적 연결을 설정합니다.
- 전송된 데이터는 순서가 보장되며, 손실된 데이터는 재전송됩니다.
3-2 UDP (비연결형 서비스)
- 연결 설정 없이 데이터를 즉시 전송합니다.
- 데이터의 순서 보장이나 재전송 기능이 없습니다.
- 각 데이터 패킷은 독립적이며 경계(Boundary)가 유지됩니다.
4. 속도와 신뢰성 비교
4-1 TCP
- 신뢰성: Good
- 데이터 유실 시 자동으로 재전송하며 신뢰성을 보장합니다.
- 속도: Bad
- 연결 설정, 흐름 제어 등 추가 작업으로 인해 상대적으로 느립니다.
4-2 UDP
- 신뢰성: Bad
- 데이터 유실에 대한 책임이 없으며, 데이터 순서도 보장하지 않습니다.
- 속도: Good
- 추가 작업이 없어 매우 빠르게 데이터를 전송합니다.
5. 데이터 경계 (Boundary)
5-1 TCP (Boundary 없음)
- TCP는 데이터를 연속된 스트림으로 처리합니다.
- 데이터의 경계가 없기 때문에 데이터가 쪼개지거나 합쳐질 수 있음:
- 예: "HELLO WORLD" → "HELLOWOR" + "LD".
5-2 UDP (Boundary 있음)
- UDP는 데이터 패킷 단위로 전송합니다.
- 각 패킷이 독립적이므로 경계가 유지됩니다:
- 예: "HELLO"와 "WORLD"가 개별적으로 전송.
6. TCP와 UDP 차이점 요약
| 특징 | TCP | UDP |
|---|
| 연결 방식 | 연결 지향 (3-way handshake) | 비연결형 (Connectionless) |
| 데이터 경계 | 없음 | 있음 |
| 신뢰성 | 높음 (재전송 및 순서 보장) | 낮음 (손실 및 순서 보장 없음) |
| 속도 | 느림 | 빠름 |
| 오류 처리 | 오류 검출 및 복구 | 오류 처리 없음 |
| 응용 사례 | 파일 전송, 웹 브라우징, 이메일 등 | 스트리밍, 온라인 게임, VoIP 등 |
7. TCP vs UDP 데이터 흐름
7-1 TCP 흐름 제어
- 송수신 버퍼를 사용해 데이터를 조절합니다.
- 수신 버퍼가 가득 차면 송신자는 전송을 중단하고 대기합니다.
7-2 UDP 데이터 흐름
- 송수신 버퍼 상태와 상관없이 데이터를 무작정 전송합니다.
- 수신 버퍼가 가득 차면 데이터가 유실될 수 있습니다.
8. 사용 사례 비교
8-1 TCP 사용 사례
- HTTP/HTTPS: 웹 브라우징.
- FTP: 파일 전송.
- 이메일 서비스: 데이터의 정확성과 순서가 중요합니다.
8-2 UDP 사용 사례
- 스트리밍 서비스: 데이터의 일부 손실이 허용되지만 빠른 전송이 필요.
- 온라인 게임: 빠른 응답 속도가 중요.
- VoIP: 음성 데이터의 실시간 전송.