전송계층
→ TCP와 UDP는 TCP/IP의 전송계층 에서 사용되는 프로토콜이다. 전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층이다.
TCP VS UDP
TCP는 Transmission Control Protocol 의 약자이고, UDP는 User Datagram Protocol의 약자이다. 두 프로토콜은 모두 패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜을 기반으로 구현되어 있지만, 서로 다른 특징을 가지고 있다.
그림으로 비교하는 TCP VS UDP
TCP
- 연결형 서비스 : 연결형 서비스로 가상 회선 방식을 제공한다. (3 way handshaking, 4 way handshaking)
- 흐름제어 : 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지한다. (수신자가 윈도우크기 값을 통해 수신량을 정할 수 있다.)
- 혼잡제어 : 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지
- 신뢰성이 높은 전송
- 전이중(전송이 양방향으로 동시에 일어날 수 있다.), 점대점 방식(각 연결이 정확히 2개의 종단점을 가지고 있다)
UDP
즉, 신뢰성이 요구되는 어플리케이션에서는 TCP를 사용하고 간단한 데이터를 빠른 속도로 전송하고자 하는 어플리케션은 UDP를 사용한다.
공통점
- 포트 번호를 이용하여 주소를 지정한다
- 데이터 오류 검사를 위한 체크섬이 존재한다
차이점
- TCP: 연결을 성공해야 통신이 가능하다 (연결형 프로토콜 3-way handshaking 과정을 통해 연결을 설정하고 4-way handshaking을 통해 연결을 해제)
- UDP: 비연결형 프로토콜(연결 없이 통신이 가능)
- TCP: 데이터의 경계를 구분하지 않는다. (Byte -Stream Service)
- UDP: 데이터의 경계를 구분함 (Datagram Service)
- TCP: 신뢰성 있는 데이터 전송(데이터의 재전송 존재)
- UDP: 신뢰성 있는 데이터 전송(데이터의 재전송 없음)
- TCP: 일대일 (Unicast) 통신
- UDP: 일대일, 일대다(Broadcast), 다대다(Multicast) 통신