TCP vs UDP

정미·2022년 9월 25일
0

Computer Science

목록 보기
68/81

공통점

  • 네트워크 계층 중 전송 계층(Transport layer)에서 사용된다.
  • 데이터 전달 담당

TCP (Transmission Control Protocol)

인터넷 상에서 데이터를 메세지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜

  • 인터넷 환경에서 기본으로 사용된다.
  • 일반적으로 TCP와 IP가 함께 사용된다.
    • TCP: 패킷 추적, 관리
    • IP: 데이터 배달

특징

  • 높은 신뢰성 > 낮은 연결성
  • 연결형 서비스로 가상 회선 방식 제공
    • 발신자와 수신자를 연결해서 패킷을 전송하기 위한 논리적인 경로를 배정한다.
  • 3-way handshaking 으로 연결을 설정하고, 4-way handshaking으로 해제한다.
    • 정확한 전송을 보장하기 위해 세션을 수립하는 과정
  • 패킷에 번호(순서)를 부여해서 목적지에서 분실 확인을 하고 재조립한다.
  • 전송 순서 보장
  • 흐름 제어, 혼잡 제어
    • CPU를 사용해서 속도에 영향을 준다.
  • UDP보다 느린 속도
  • 전이중(Full-Duplex), 점대점(Point to Point) 방식
  • ex> 파일 전송

TCP 서버

  • 서버와 클라이언트가 1:1로 연결된다.
  • 서버 소켓은 연결만을 담당하고, 클라이언트 소켓은 데이터의 송수신에 사용된다.
  • 스트림 전송으로 전송 데이터의 크기가 무제한이다.
  • 패킷에 대한 응답을 해야하기 때문에 시간 지연과 CPU 소모로 성능이 낮다.

UDP (User Datagram Protocol)

데이터를 데이터그램 단위로 처리하는 프로토콜

특징

  • 비연결형 서비스로 데이터그램 방식 제공
    • 연결을 위해 할당되는 논리적인 경로가 없다.
    • 연결을 설정하고 해제하는 과정이 없다.
  • 각 패킷은 다른 경로로 전송되고, 서로 독립적인 관계를 지닌다.
  • 낮은 신뢰성 < 높은 연속성
  • 전송 순서를 신경쓰지 않음
  • 흐름, 혼잡 제어 X
    • 패킷이 제대로 전송되었는지 확인할 수 없다.
  • TCP보다 속도가 빠르다.
  • UDP 헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다.
  • ex> 실시간 streaming 서비스

UDP 서버

  • connect 함수가 불필요하기 때문에 서버 소켓과 클라이언트 소켓의 구분이 없다.
  • 소켓 대신 IP를 기반으로 데이터를 전송한다.
  • 서버와 클라이언트는 1:1, 1:N, N:M 으로 연결될 수 있다.
  • 데이터그램의 크기는 65535바이트, 크기가 크면 잘라서 보낸다.

출처

0개의 댓글