[CS]TCP와 UDP

무지성개발자·2023년 8월 26일
0

데이터를 전송하기 위한 프로토콜 중에서 가장 많이 비교되는 두 가지는 TCP와 UDP일 것 이다.

TCP(Transmission Control Protocol)

일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리한다. TCP는 연결형 서비스를 지원하는 프로토콜로 인터넷 환경에서 기본으로 사용.

TCP는 UDP보다 속도가 느리지만 신뢰성있는 전송이 중요한 데이터 전달에 사용한다.

패킷이란 데이터를 보내기 위한 경로배정을 효율적으로 하기 위해 데이터를 여러 조각으로 나누어 전송하는데 이 조각을 패킷이라 한다.

특징

  • 연결 지향 방식으로 패킷 교환 방식 사용.

  • 3-way handshake로 연결하고 4-way handshake로 연결을 해제한다.

  • 신뢰성이 높다.

  • UDP보다 속도가 느리다.

  • 전이중(Full-Duplex), 점대점(Point to Point) 방식.

UDP(User Datagram Protocol)

UDP는 비연결형 프로토콜이다. 즉, 연결을 위해 할당되는 논리적인 경로가 없고 각각의 패킷은 다른 경로를 통해 전송한다.

UDP는 비연결형이라 TCP와 같이 handshake를 통해 연결하고 해제하는 과정이 없다. 때문에 UPD는 TCP보다 속도는 빠르지만 데이터가 제대로 도착했는지에 대한 신뢰성은 떨어져 신뢰성보다는 연속성이 중요한 서비스에 사용된다.

특징

  • 비연결형이라 connect함수 불필요.

  • 소켓 대신 IP를 기반으로 데이터 전송.

  • 1:1, 1:N, M:N으로 연결할 수 있다.

  • 데이터그램 단위로 전송되며 65535바이트를 넘어가면 잘라서 보냄.

  • 데이터의 전송의 신뢰성이 떨어짐.


한 줄평 : 영상을 봐도 스트리밍 같은 연속된 서비스는 몇 프레임 유실된다고 큰 지장이 없을 테니 UDP, 영상을 전체 다 다운받아 본다면 TCP가 사용될 것 이다.

참고 -
https://mangkyu.tistory.com/15

profile
no-intelli 개발자 입니다. 그래도 intellij는 씁니다.

0개의 댓글