[TIL #39] TCP, UDP 란?

JMinkyoung·2022년 5월 14일
0

TIL

목록 보기
39/42
post-thumbnail

전공 컴퓨터 네트워크 수업시간에 분명 들었었던.. 3-way Handshaking 그림도 그렸던 기억이 나는.. 근데 정작 이게 정확히 뭐였는지는 기억이 안났었던 TCP, UDP에 대해서 알아보자 🏃‍♂️
사진출처

각각에 대해서 다루기 전에 TCP, UDP란 무엇인지에 대해 간단하게 설명해보자면,

네트워크 7계층 중에서 전송계층(Transport Layer)에서 데이터를 전달할 때 사용하는 프로토콜들을 의미한다.

데이터를 전송하는 방식들이 바로 TCP, UDP 인 것이다.

TCP(Transmission Control Protocol) 란

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

TCP는 일반적으로 IP와 함께 사용하고, TCP/IP 이런식으로 쓰여있는 것을 본적이 있을 것이다.

IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적하고 관리하게 된다. 이때 TCP는 IP가 처리할 수 있도록 데이터를 여러 개의 패킷으로 나누고 도착지에서는 완전한 데이터로 패킷을 재조립해야한다.

TCP는 연결형 서비스를 지원하는 프로토콜로 인터넷 환경에서 기본으로 사용한다.


패킷(Packet) : 인터넷상에서 데이터를 전송하기 위해 라우팅을 효율적으로 하기 위해 데이터를 여러 개의 조각들로 나누어 전송하는데 이때 나눠지는 조각을 패킷이라고 한다.

연결형 서비스 : 상대적으로 신뢰성이 높은 서비스로 데이터를 전송하기 위해 전송자와 수신자 사이에 연결을 미리 설정하는 방식을 의미한다.

TCP 특징

  1. 연결형 서비스로 가상 회선 방식을 제공
  2. 3-way handshaking을 통해 연결을 설정하고 4-way handshaking을 통해 해체
  3. 흐름 제어 및 혼잡 제어
  4. 높은 신뢰성을 보장 (연결형 서비스의 특징)
  5. 데이터의 전송 순서를 보장
  6. UDP보다 속도가 느림
  • 가상 회선 방식을 제공한다는 것은 전송자와 수신자 사이를 연결하여 패킷을 전송하기 위한 논리적 경로를 배정한다는 것을 의미한다.
  • 3-way, 4-way 같은 방식을 사용하는 이유는 전송자와 수신자 사이 연결을 확실하게 하여 정확한 전송을 보장하기 위해서 사용한다.

결국 위와 같은 과정을 가지는 이유는 위에서 언급한 연결형 서비스로 높은 신뢰성을 보장하기 때문이다. 그렇기 때문에 위와 같은 과정을 거치고 데이터 흐름 제어나 혼잡 제어 같은 기능도 가능하게 한다.

하지만 신뢰성을 보장하기 위해 거치는 과정들 때문에 UDP에 비해 상대적으로 속도가 느리다는 단점이 있다.

이러한 특징들 때문에 TCP는 연속성보다 신뢰성이 있는 전송이 중요할 때 사용하는 프로토콜로 예를 들면 파일 전송과 같은 경우에 사용한다.

TCP 서버 특징

  1. 서버와 클라이언트는 1:1로 연결된다.
  2. 전송 데이터의 크기가 무제한이다.
  3. 스트리밍 서비스에 불리하다. (패킷이 손실된 경우 재전송을 요청하기 때문에)

UDP(User Datagram Protocol) 란

데이터를 데이터 그램(독립적인 관계를 가지는 패킷) 단위로 처리하는 프로토콜

UDP는 TCP와 달리 비연결형 서비스이며, 따라서 연결을 위해 할당하는 논리적인 경로가 따로 존재하지 않는다는 특징을 가진다.
이로 인해서 각각의 패킷은 하나의 경로가 아닌 서로 다른 경로로 전송되고 데이터를 서로 다른 경로로 독립적으로 처리하게 된다.
또한 TCP와는 다르게 데이터를 여러개의 패킷으로 나누고 반대편에서 재조립하는 과정을 거치지 않으며, 수신 여부를 확인하지 않고 데이터를 보내기만 한다.

UDP 특징

  1. 비연결형 서비스로 데이터 그램 방식을 제공
  2. 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않음
  3. 신뢰성이 낮음 (비연결형 서비스의 특징)
  4. 데이터의 전송 순서를 보장하지 않음
  5. TCP보다 속도가 빠름

비연결형 서비스이기 때문에 연결을 설정하고 해체하는 과정이 존재하지 않는다.

서로 다른 경로로 독립적으로 처리하기 때문에 패킷에 순서를 부여하여 재조립 하거나 흐름 제어 또는 혼잡 제어 같은 기능도 처리하지 않기 때문에 TCP 보다 속도가 빠르지만 신뢰성 있는 데이터의 전송을 보장하지 못한다.

이러한 특징들 때문에 UDP는 신뢰성보다 연속성이 중요한 서비스 예를 들면 실시간 스트리밍 같은 경우에 사용한다.

UDP 서버 특징

  1. 서버와 클라이언트는 1:1, 1:N, N:M 등으로 연결된다.
  2. 데이터그램 단위로 전송되며 크기에 제한이 있다. (만약 초과하면 잘라서 보낸다.)
  3. 흐름제어가 없어서 패킷이 제대로 전송되었는지, 오류가 있는지 확인할 수 없다.

정리

참고 자료
참고 자료

profile
Frontend Developer

0개의 댓글