TCP
- 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜 입니다.
- 일반적으로 IP와 함께 사용됩니다. ( IP는 데이터 전송 처리를 한다면, TCP는 패킷 추적 및 관리를 합니다)
- 3-way handshaking 과정을 통해 연결 후 통신을 시작하는데, 흐름 제어와 혼잡 제어를 하여 데이터의 순서를 보장합니다.
UDP
- 비연결형 프로토콜이며, 신호 없이 보내는 쪽에서 일방적으로 데이터를 전달합니다.
- 연결 설정이 없으며, 혼잡 제어를 하지 않기 때문에 전송 속도가 빠릅니다.
- 데이터 전송에 대한 보장을 하지 않기 때문에 패킷 손실이 발생할 수 있습니다.
TCP/UDP 공통점
- 데이터 전송 프로토콜
TCP와 UDP 모두 인터넷 프로토콜(IP)과 함께 작동하여 데이터를 전송합니다.
- 엔드-투-엔드 통신
두 프로토콜 모두 소스에서 목적지로 데이터를 직접 전송합니다.
TCP/UDP 차이점
| TCP | UDP |
---|
연결 방식 | 연결형 서비스, 통신 경로 설정 필요 | 비연결형 서비스, 별도의 연결 설정 없음 |
패킷 교환 방식 | 가상 회선 방식, 순서와 무결성 보장 | 데이터그램 방식, 순서 보장 없음 |
전송 순서 | 순서 보장 및 재조립 | 순서 변경 가능 |
수신 여부 확인 | 수신 여부 확인 및 재전송 요청 | 수신 여부 확인하지 않음 |
통신 방식 | 1:1 통신 | 1:1, 1:N, N:N 통신 (다중 통신에 적합) |
신뢰성 | 높은 신뢰성 | 낮은 신뢰성 |
속도 | 연결 설정 및 오류 검사로 인해 느림 | 연결 설정과 오류 검사 최소화로 인해 빠름 |
정리
TCP을 사용면 좋은 경우
- 신뢰성 있는 데이터 전송이 필요한 경우
- 데이터의 정확한 도착이 중요할 때 TCP가 적합합니다. 예를 들어, 웹 페이지 로딩, 파일 전송, 이메일 전송과 같은 상황에서 TCP를 사용합니다.
- 데이터 무결성 및 순서 보장 필요한 경우
- 데이터가 전송된 순서대로 정확하게 도착해야 하는 경우에 적합합니다.
- 혼잡 제어 및 흐름 제어가 중요한 네트워크 환경
- 네트워크의 혼잡 상태를 고려하여 데이터 전송 속도를 조절해야 하는 경우 TCP를 사용합니다.
UDP를 사용하면 좋은 경우
- 실시간 데이터 전송이 필요한 경우
- 실시간 스트리밍, 온라인 게임, VoIP(음성 통신)와 같이 지연 시간이 중요한 상황에서 UDP가 적합합니다.
- 네트워크 부하가 적은 빠른 데이터 전송이 중요한 경우
- TCP의 핸드쉐이킹 과정과 같은 추가적인 메커니즘 없이 데이터를 빠르게 전송해야 할 때 UDP를 사용합니다.
- 멀티캐스팅 및 브로드캐스팅이 필요한 경우
- 여러 수신자에게 동시에 데이터를 전송해야 할 때 UDP가 유리합니다.
- 경량 프로토콜이 필요한 경우
- DNS 조회와 같이 간단하고 신속한 응답이 필요한 정보 요청에는 UDP가 적합합니다.
요약: TCP는 데이터의 정확성과 순서가 중요한 상황에서 사용되며, UDP는 빠른 전송 속도와 실시간 처리가 중요한 상황에서 사용됩니다.
Ref.
https://coding-factory.tistory.com/614
https://cocoon1787.tistory.com/757