UDP와 TCP의 차이점
TCP(Transmission Control Protocol)
- TCP는 연결 지향적 프로토콜로 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜입니다.
- IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추척 및 관리하게 됩니다.
- 장치들 사이에 논리적인 접속을 성립하기 위해 연결을 설정해 신뢰성을 보장하는 연결형 서비스입니다.
TCP의 특징
- 연결형 서비스로 가상 회선 방식을 제공합니다
- 3-way handshake 과정을 통해 연결을 설정합니다.
- 4-way handshake 과정을 통해 연결을 해제합니다.
- 흐름 제어
- 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지합니다.
- 혼잡 제어
- 네트워크 내의 패킷 수가 과도하게 증가하지 않도록 방지합니다.
- 높은 신뢰성을 보장
- 신뢰성이 높은 전송을 하기 때문에 UDP보다 속도가 느립니다.
- 전이중, 점대점 방식
- 전이중: 전송이 양방향으로 동시에 일어날 수 있습니다.
- 점대점: 각 연결이 정확히 2개의 종단점을 가지고 있습니다.
- 따라서, 연속성보다 신뢰성 있는 전송이 중요할 때 사용하는 프로토콜입니다.
UDP(User Datagram Protocol)
- UDP는 비연결형 프로토콜입니다.
- 연결을 위해 할당되는 논리적인 경로가 없고, 각각의 패킷은 다른 경로로 전송되며, 독립적인 관계를 지닙니다.
UDP의 특징
- 비연결형 서비스로 데이터그램 방식을 제공합니다.
- 데이터의 전송 순서가 바뀔수 있습니다.
- 데이터 수신 여부를 확인하지 않습니다.
- 연결을 설정하고 해제하는 과정이 존재하지 않습니다.
- TCP의 3-way handshake와 같은 과정을 거치지 않습니다.
- 신뢰성이 낮습니다.
- 흐름 제어가 없어 제대로 전송되었는지, 오류가 없는지 확인할 수 없습니다.
- TCP 보다 속도가 빠릅니다.
- 흐름 제어 또는 혼잡 제어와 같은 기능을 처리하지 않기 때문에 TCP 보다 속도가 빠릅니다.
- 신뢰성을 보장하지 않습니다.
- 1:1, 1:N, N:N 통신이 가능합니다.
- 따라서 UDP는 신뢰성보다는 연속성 있는 전송이 필요할 때 사용하는 프로토콜 입니다.