[CS] TCP vs UDP

jake·2022년 11월 1일
0
post-thumbnail

TCP vs UDP

TCP/IP는 응용(Application), 전송(Transport), 인터넷(Internet), 네트워크 접근(Network Access) 4개의 계층으로 세분화할 수 있는데, 이 중에서 TCP와 UDP는 3계층인 전송계층에서 사용되는 두 종류의 프로토콜이다. 전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층이다.

예를 들어 어떤 쇼핑몰에서 물건을 구매했다고 가정해 보자. 물건이 담긴 택배는 택배회사를 통해 안전하게 집까지 배송된다. 여기서 IP라는 우체국이 물류창고에서 물건을 관리하고 물건 상태에 맞게 물건을 분류한다. 이때 IP라는 우체국을 이용하는 두 개의 택배회사가 TCP와 UDP다.



TCP

TCP는 Transmission Control Protocol의 약자인데, 이를 해석하면 TCP를 해석하면 전송을 제어하는 프로토콜(규약)이라는 뜻이다.
"인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜"

일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리한다. 또한 수신이 가능한지 또 다른 IP를 사용해 확인한다. TCP는 각각의 데이터 조각, 패킷들을 전달할때마다 확인 절차를 거치고, 목적지에 도착하여서도 패킷에 부여된 번호를 점검, 추적해 패킷의 누락과 오류 등을 찾아내어 이에 대한 재전송 요청을 할 수 있는 연결형 서비스이다.

다음은 TCP의 데이터 송신 과정이다.

수신자의 상황을 살펴가며 데이터를 송신하므로 신뢰성이 요구되는 애플리케이션에서는 TCP를 사용한다.

TCP의 단점은 그 성능이 떨어진다는 점이다. 모든 패킷에 대한 응답이 필수적이므로 시간이 지연되고, 속도가 느려지며, CPU의 소모량이 많아져 이는 곧 성능의 저하로 이어진다.


UDP

UDP를 해석하면 사용자 데이터그램 프로토콜(규약)이라는 뜻인데 풀어 해석하면 아래와 같다.
"데이터를 데이터그램 단위로 처리하는 프로토콜"

데이터그램이란 독립적인 관계를 지니는 패킷이라는 뜻이다.
UDP는 TCP와 달리 비연결형 프로토콜이다. 즉, 연결을 위해 할당되는 논리적인 경로가 없는데, 그렇기 때문에 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 지니게 된다. 이렇게 데이터를 서로
다른 경로로 독립적으로 처리하는 프로토콜을 UDP라고 한다. 또한 정보의 송수신에 대한 신호절차가 없고, 최소한의 오류만을 검증하여 패킷의 손실이 상대적으로 많은 편이다. 그렇기에 TCP와 비교하여 신뢰성 있는 데이터의 전송을 보장할 수 없는 방식이다.

다음은 UDP의 데이터 송신 과정이다.

패킷에 순서나 번호를 부여해 재조립하거나, 흐름제어 혹은 혼잡 제어 같은 작업들도 처리하지 않기에 엄청나게 빠른 속도로 데이터를 전할 수 있는 것이 UDP의 장점이다. 그렇기에 정보의 신뢰성보다는 실시간성과 연속성, 속도 등이 더 중요한 경우에 널리 사용되고 있다.

 

0개의 댓글