본문 바로가기
카테고리 없음

[CS] TCP와 UDP

by hbIncoding 2023. 5. 15.

1. TCP(Transmission Control Protocol)

  • 일반적으로 TCP와 IP를 함께 사용하며, IP가 데이터의 배달을 처리한다면, TCP는 패킷을 추적 및 관리하게 된다.
    • 패킷 : 인터넷 내에서 데이터를 보내기 위한 경로배텅(라우팅)을 효과적으로 하기 위해서 데이터를 여러개의 조각들로 나누어 전송하는데, 이 조각을 패킷이라고 한다.
  • 특징
    • 연결 지향 방식
    • 3-way handshaking 과정을 통해 연결을 설정하고, 4-way handshaking을 통해 해제
    • 흐름 제어 및 혼잡 제어
    • 높은 신뢰성을 보장
    • UDP보다 속도가 느리다
    • 전이중(Full-Duplex), 점대점(Point to point) 방식.
  • TCP 서버의 특징
    • 서버소켓은 연결만 담당
    • 연결과정에서 반환된 클라이언트 소켓은 데이터의 송수신에 사용
    • 서버와 클라이언트는 1대 1로 연결된다.
    • 스트림 전송으로 전송 데이터의 크기가 무제한이다.
    • 패킷에 대한 응답을 해야하기 때문에(시간 지연, CPU 소모) 성능이 낮다.
    • Streaming 서비스에 불리하다.(손실된 경우 재전송 요청을 하므로)

2. UDP(User Datagram Protocol)

  • 데티러르 데이터그램 단위로 처리하는 프로토콜, 비연결형 프로토콜이다. 각 패킷은 다른 경로로 전송되며, 각각의 패킷은 독립적인 관계를 지니게 되는데 이렇게 데이터를 서로 다른 경로로 독립적으로 처리하게 된다.
    • 데이터그램 : IP의 전송 단위를 말하기도 하며, 네트워크 상에서 송수딘되는 독립적인 패킷을 말한다. 각 패킷은 목적지 주소와 출발지 주소를 포함하며, 패킷 전송 시 데이터 그램이라는 단위로 전송
  • 특징
    • 비연결형 서비스로 데이터 그램 방식을 제공
    • 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다
    • UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다.
    • 신뢰성이 낮다
    • TCP보다 속도가 빠르다.
  • UDP 서버의 특징
    • UDP에는 연결 자체가 없어서(connect 함수 불필요) 서버 소켓과 클라이언트 소켓의 구분이 없다.
    • 소켓 대신 IP 기반으로 데이터를 전송
    • 서버와 클라이언트는 1:1이상의 n:m으로 연결될 수 있다.
    • 데이터그램(메시지) 단위로 전송되며 그 크기는 65535바이트로 크기가 초과하면 잘라서 보낸다.
    • 흐름제어(flow control)가 없어서 패킷이 제대로 전송되었는지, 오류가 없는지 확인할 수 없다.
    • 파일 전송과 같은 신뢰성이 필요한 서비스보다 성능이 중요시 되는 경우에 사용된다.
      • 신뢰성보다 연속성이 중요한 스트리밍 서비스에 주로 사용

3. TCP와 UDP의 비교

 

4. 참조

 1)TCP와 UDP : https://mangkyu.tistory.com/15

 

[TCP/UDP] TCP와 UDP의 특징과 차이

오늘은 네트워크의 계층들 중 전송 계층에서 사용하는 프로토콜에 대해서 알아보려고 합니다. 전송계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로, 쉽게 말해 데이터의

mangkyu.tistory.com