TCP / UDP는 전송 계층(4계층)의 프로토콜이다.
※ 전송 계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층이다.
즉, 데이터의 전달을 담당하며 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당한다.
TCP(Transmission Control Protocol)
TCP는 연결 지향적 프로토콜이다.
※ 연결 지향적 프로토콜은 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜을 의미한다.
TCP의 특징
-
연결형 서비스로 가상 회선 방식을 제공한다.
- 3-way handshaking 과정을 통해 연결을 설정하고,
- 4-way handshaking 과정을 통해 연결을 해제한다.
-
흐름 제어(Flow control)
- 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지한다.
-
혼잡 제어(Congestion control)
- 네트워크 내의 패킷 수가 과도하게 증가하지 않도록 방지한다.
-
높은 신뢰성을 보장
- 신뢰성이 높은 전송을 하기 때문에 UDP보다 속도가 느리다.
- TCP는 연속성보다 신뢰성 있는 전송이 중요할 때 사용하는 프로토콜로 예를 들면, 파일 전송과 같은 경우에 사용된다.
UDP(User Datagram Protocol)
:UDP는 비연결형 프로토콜이다.
※ 연결을 위해 할당되는 논리적인 경로가 없고, 각각의 패킷은 다른 경로로 전송되며, 독립적인 관계를 지닌다.
UDP의 특징
-
비연결형 서비스로 데이터그램 방식을 제공한다.
- 데이터의 전송 순서가 바뀔 수 있다. 수신된 메시지의 순서를 맞추지 않는다.
-
비 신뢰성
- 메시지가 제대로 도착했는지 확인하기 않고, 흐름 제어를 위한 피드백을 제공하지 않는다.
-
TCP보다 속도가 빠르다
- 빠른 요청과 응답이 필요한 실시간 응용에 적합하다.
- 여러 다수 지점에 전송 가능하다. (1:1 & 1:N & N:N 통신이 가능하다.)