카테고리 없음

TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)

최종군 2024. 12. 11. 16:27

TCP (Transmission Control Protocol) 

특징 : 

 

연결 지향적 : 데이터를 주고받기 전에 송신자와 수신자 간에 연결을 설정한다.

신뢰성 : 데이터가 정확히 도착하도록 보장하며, 손실된 데이터는 다시 전송(retransmission) 된다

오류 검출 및 복구 : 데이터가 손상되었거나 손실된 경우 이를 감지하고 복구한다. 

데이터 흐름 제어 : 데이터의 전송 속도를 제어하여 수신자가 처리 가능한 속도로 데이터를 전달한다. 

순서 보장 : 데이터 패킷이 전송된 순서대로 수신자에게 전달된다. 

 

TCP 장점 : 

신뢰성이 높아 정확한 전송이 필요할 때 적합하다. 

파일 전송, 이메일, 웹 브라우징 등에서 이용된다

 

TCP 단점 :

연결 설정 및 관리로 인해 오버헤드(부하)가 높고 속도가 상대적으로 느리다.

 

 

UDP (User Datagram Protocol) 

 

특징 : 

 

비연결 지향적 (Connectionless) : 연결을 설정하지 않고 데이터를 전송한다. 데이터를 보내기만 하면 된다. 

신뢰성 미보장 : 데이터 손실에 대한 복구를 시도하지 않는다. 데이터가 손실되거나 손상되면 그대로 처리된다.

빠른 전송 : 연결 설정이나 복구 작업이 없기 때문에 속도가 빠르다.

순서 비보장 : 데이터가 전송된 순서와 관계 없이 도착할 수 있다

 

UDP 장점 :
단순한 구조 전송 속도가 매우 빠르다. 

실시간 데이터 전송(스트리밍, 음성/영상 통화)와 같은 시간 민감적인 애플리케이션에 적합하다. 

 

단점

  • 데이터 손실이나 순서 왜곡에 대한 처리 로직을 애플리케이션 레벨에서 구현해야 합니다.
  • 신뢰성이 낮아 데이터 무결성이 중요하지 않은 애플리케이션에서만 적합합니다.

 

채팅 시스템을 구현 시 TCP와 UDP 중 선택 기준은 ? 

 

채팅 애플리케이션의 요구사항에 따라 선택을 해야한다. 

 

TCP를 사용하는 경우에는 

신뢰성이 중요하고(메세지가 반드시 전달되어야 하며 손실되거나 순서가 어긋나면 안될 경우)

메세지의 무결성이 중요하다

 

UDP를 사용하는  경우에는 실시간성과 속도가 중요하다

음성/영상 채팅(VoiP)와 같이 약간의 데이터 손실은 허용되지만 빠른 전송이 필요한 경우 

적합하다.