TCP와 UDP의 차이점은 무엇인가요?
TCP와 UDP는 인터넷 프로토콜 스택에서 전송 계층(Transport Layer)에 속하는 두 가지 주요 프로토콜입니다.
이 둘은 데이터를 송수신하는 방식에서 근본적인 차이가 있어, 목적과 상황에 따라 적절하게 선택됩니다.
아래에 TCP와 UDP의 주요 차이점을 정리하였습니다.
1. 연결 지향성 (Connection-oriented vs Connectionless) - TCP는 연결 지향 프로토콜입니다.
즉, 데이터를 전송하기 전에 꼭 송신자와 수신자 간에 연결을 설정(3-way Handshake)합니다.
- UDP는 연결 지향성이 없으며, 송신자는 수신자에게 그냥 데이터를 보냅니다.
별도의 연결 설정 과정이 없습니다.
2. 신뢰성 (Reliability) - TCP는 신뢰성 있는 데이터 전송을 보장합니다.
데이터가 손실되거나 손상되면 재전송하고, 순서가 맞게 수신되도록 제어합니다.
- UDP는 신뢰성을 보장하지 않습니다.
데이터가 손실되어도 재전송하지 않고, 순서도 보장하지 않습니다.
3. 흐름 제어 및 혼잡 제어 (Flow control & Congestion control) - TCP는 수신자의 처리 능력을 고려한 흐름 제어와 네트워크 상태에 따른 혼잡 제어를 수행합니다.
- UDP는 이러한 제어 기능이 없으므로 네트워크 환경에 따라 패킷 손실이 발생할 수 있습니다.
4. 속도 (Speed) - TCP는 신뢰성을 보장하기 위해 여러 제어 절차가 필요하기 때문에 UDP에 비해 상대적으로 느립니다.
- UDP는 간단하고 오버헤드가 적어, 빠른 데이터 전송이 가능합니다.
5. 헤더 크기 및 오버헤드 - TCP 헤더는 최소 20바이트로, 제어 정보가 많아 상대적으로 크기가 크고 오버헤드가 큽니다.
- UDP 헤더는 8바이트로 매우 간단합니다.
6. 사용 용도 - TCP는 이메일, 웹 브라우징, 파일 전송 등 데이터의 정확한 전달이 중요한 애플리케이션에 적합합니다.
- UDP는 실시간 스트리밍, 온라인 게임, 음성/영상 통화 등 빠른 전송과 지연 최소화가 중요한 분야에 적합합니다.
요약표: | 항목 | TCP | UDP | |----------------|------------------------------|--------------------------| | 연결 유형 | 연결 지향 | 비연결 지향 | | 신뢰성 | 보장(재전송 및 순서 제어) | 비보장 | | 흐름/혼잡 제어 | 있음 | 없음 | | 속도 | 상대적으로 느림 | 빠름 | | 헤더 크기 | 20바이트 이상 | 8바이트 | | 대표 용도 | 웹, 이메일, 파일 전송 등 | 스트리밍, 게임, 음성통화 등 | TCP와 UDP는 각각의 장단점과 특징이 있어 애플리케이션의 요구사항에 맞게 선택해야 합니다.
안정성과 신뢰성이 중요하면 TCP, 속도와 실시간성이 중요하면 UDP를 사용하는 것이 일반적입니다.