본문 바로가기
Web

TCP 와 UDP 는 무엇이 다를까?

by oagree0123 2022. 4. 22.

TCP와 UDP

TCP와 UDP는 전송계층에서 데이터를 보내기 위해 사용되는 프로토콜입니다.

전송계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로, 쉽게 말해 데이터의 전달을 담당합니다.

 

TCP는 Transmission Control Protocol의 약자이고, UDP는 User Datagram Protocol의 약자입니다.
두 프로토콜은 모두 
패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜을 기반으로 구현되어 있지만,
서로 다른 특징을 가지고 있습니다.

 

패킷(Packet)이란?

인터넷 내에서 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해서 데이터를 여러 개의 조각들로 나누어 전송을 하는데 이때, 이 조각을 패킷이라고 합니다.

 

그림을 보면 왼쯕은 TCP, 오른쪽은 UDP입니다.

위 그림에서는 tcp는 데이터가 송·수신을 확인하지만, udp는 일방적이다 데이터를 보내는 것을 볼 수 있습니다.

따라서, 신뢰성이 요구되는 애플리케이션에서는 TCP를 사용하고, 
간단한 데이터를 빠른 속도로 전송하고자 하는 애플리케이션에서는 UDP를 사용합니다.

 

TCP(Transmission Control Protocol)

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

장치들 사이에 논리적인 접속을 성립하기 위해 연결을 설정하여 신뢰성을 보장하는 연결형 서비스 입니다.

[ TCP 특징 ]

연결형 서비스로 가상 회선 방식을 제공

  • 3-way handshaking과정을 통해 연결을 설정
  • 4-way handshaking을 통해 해제
  • 흐름 제어 및 혼잡 제어
    • 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지
    • 정보의 소통량이 과다하면 패킷을 조금만 전송하여 혼잡 붕괴 현상이 일어나는 것을 막는다.
  • 높은 신뢰성을 보장
    • Dupack-based retransmission
      • 정상적인 상황에서는 ACK 값이 연속적으로 전송되어야 함
      • 그러나 ACK값이 중복으로 올 경우 패킷 이상을 감지하고 재전송을 요청
    • Timeout-based retransmission
      • 일정시간동안 ACK 값이 수신을 못할 경우 재전송을 요청
  • UDP보다 속도가 느림
  • 전이중(Full-Duplex), 점대점(Point to Point) 방식
    • 전이중 (Full-Duplex)
      전송이 양방향으로 동시에 일어날 수 있음
    • 점대점 (Point to Point)
      각 연결이 정확히 2개의 종단점을 가지고 있음

ACK 제어비트

ACK는 송신측에 대하여 수신측에서 긍정 응답으로 보내지는 전송 제어용 캐릭터입니다.

ACK 번호를 사용하여 패킷이 도착했는지 확인하고, 패킷이 잘 도착하지 않으면 재송신을 요구합니다

UDP(User Datagram Protocol)

인터넷상에서 서로 정보를 주고받을 때 정보를 보낸다는 신호나 받는다는 신호 절차를

거치지 않고,보내는 쪽에서 일방적으로 데이터를 전달하는 통신 프로토콜입니다.

또한, 데이터를 데이터그램 단위로 처리하는 프로토콜입니다.
데이터그램이란 독립적인 관계를 지니는 패킷이라는 뜻입니다.

[ UDP 특징 ]

  • 비연결형 서비스로 데이터그램 방식을 제공
  • 연결을 설정하고 해제하는 과정이 존재하지 않습니다.
  • 정보를 주고 받을 때 정보를 보내거나 받는 신호절차를 거치지 않음
  • 데이터의 경계를 구분
  • 신뢰성이 낮음
  • TCP보다 속도가 빠름

UDP는 비연결형 서비스이기 때문에,  서로 다른 경로로 독립적으로 처리합니다.

패킷에 순서를 부여하여 재조립을 하거나 흐름 제어 또는
혼잡 제어와 같은 기능도 처리하지 않기에 TCP보다
속도가 빠릅니다.
네트워크 부하가 적다는 장점이 있지만 신뢰성있는 데이터의 전송을 보장하지는 못합니다.
따라서, 신뢰성보다는 연속성이 중요한 서비스인 실시간 스트리밍(streaming)에 자주 사용됩니다.

TCP와 UDP의 비교

정리

TCP는 연속성보다 신뢰성있는 전송이 중요할 때에 사용하는 프로토콜이며,

UDP는 TCP보다 속도가 빠르며 네트워크 부하가 적다는 장점이 있지만, 신뢰성있는 데이터 전송을 보장하지는 않습니다.

그렇기 때문에 신뢰성보다는 연속성이 중요한 서비스의 예를 들면 실시간 서비스(streaming)에 자주 사용됩니다.

'Web' 카테고리의 다른 글

css의 position  (0) 2022.04.22
서버 사이드 렌더링과 클라이언트 사이드 렌더링  (0) 2021.09.01
REST API  (0) 2021.08.31
쿠키 & 세션  (0) 2021.08.30
HTTP 프로토콜  (0) 2021.08.25

댓글