TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 인터넷 프로토콜 스위트의 일부로, 데이터를 주고받는데 사용되는 두 가지 주요한 전송 프로토콜입니다.
둘 다 패킷 교환 네트워크에서 데이터 전송을 관리하는데 사용되지만, 동작 방식과 특성에 있어서 차이가 있습니다.
TCP(Transmission Control Protocol) :
TCP는 연결 지향 프로토콜로, 데이터를 주고받기 전에 먼저 두 호스트 간에 가상의 연결을 설정합니다.
3-way handshaking이라는 연결 과정을 통해 통신을 시작하며, 흐름 제어와 혼잡제어를 지원합니다.
또한, 데이터의 전송 순서를 보장합니다.
연결을 해제할 때는 4-way handshaking 과정을 거쳐 연결을 해제합니다.
신뢰성과 순서가 보장되어야 하는 애플리케이션에 적합합니다.
예를 들어, 웹 브라우저의 HTTP, 이메일의 SMTP, 파일 전송의 FTP 등에서 사용됩니다.
연결 설정과 해제에 시간과 자원이 소모되기 때문에, 일반적으로 연결 시간이 조금 더 소요됩니다.
에러 검출과 재전송을 통해 신뢰성을 보장합니다.
데이터 전송 후에는 연결을 명시적으로 종료해야 합니다.
UDP(User Datagram Protocol) :
UDP는 비연결형 프로토콜로, 데이터를 주고받기 전에 사전에 연결을 설정하지 않습니다.
데이터 전송을 빠르게 처리해야 하는 애플리케이션에 적합합니다.
예를 들어, 스트리밍, DNS 조회, 음성/영상 통화 등에서 사용됩니다.
연결 설정 과정이 없기 때문에 TCP보다 빠른 응답 시간을 가질 수 있습니다.
데이터 전송 중에 발생하는 에러를 검출할 수 있지만, 재전송이나 에러 복구 메커니즘은 없습니다.
데이터 전송이 일회성이기 때문에 연결 설정과 해제에 걸리는 시간이 없습니다.
비교 요약
TCP는 연결 지향적이고 신뢰성과 순서 보장이 가능하며, UDP는 비연결 지향적이고 빠른 전송이 가능합니다.
TCP는 데이터 전송에 일정한 오버헤드가 있지만, 신뢰성을 제공합니다.
UDP는 오버헤드가 적지만, 신뢰성은 보장하지 않습니다.
TCP는 연결 설정과 해제를 거쳐야 하지만, UDP는 그렇지 않습니다.
TCP는 HTTP, SMTP, FTP 등과 같이 신뢰성이 필요한 애플리케이션에 적합하고, UDP는 DNS 조회, 스트리밍, 실시간 통신 등과 같이 빠른 응답이 중요한 애플리케이션에 적합합니다.
핵심 키워드
- TCP와 UDP의 신뢰성 차이가 어떤 프로세스 때문에 발생하는 지
- 3-way handshaking