IT 개발 라이프/CS

TCP와 UDP: 무엇이 다를까?

10Biliion 2024. 12. 27. 10:38

인터넷에서 데이터를 전송하는 방식에는 TCPUDP라는 두 가지 주요 프로토콜이 존재합니다. 이 두 프로토콜은 인터넷 통신에서 중요한 역할을 하지만, 그 동작 방식에는 큰 차이가 있습니다. 이제 TCPUDP의 차이를 살펴보겠습니다.

 

TCP (Transmission Control Protocol)

TCP는 신뢰할 수 있는 전송을 보장하는 연결 지향적인 프로토콜입니다. 이를 이해하기 위해, 마치 두 사람이 서로 편지를 주고받는 상황을 떠올려 보세요.

  1. 연결 지향적: 데이터를 보내기 전에, 송신자와 수신자는 서로 연결을 설정해야 합니다. 마치 서로 전화를 걸고 대화의 준비를 하는 것처럼 말이죠.
  2. 신뢰성 있는 전송: 한 사람이 편지를 보낼 때, 상대방이 그 편지를 잘 받았는지 확인하고, 만약 편지가 분실되면 다시 보내는 과정이 필요합니다. TCP는 이런 방식으로 손실된 데이터는 재전송하고, 패킷의 순서를 보장합니다.
  3. 흐름 제어: 만약 한 쪽에서 너무 많은 데이터를 보낸다면, 상대방은 이를 처리할 수 없을 수도 있습니다. TCP는 이를 방지하기 위해 흐름 제어를 제공합니다.
  4. 혼잡 제어: 네트워크가 너무 혼잡하지 않도록 혼잡 제어 기능도 내장되어 있습니다.

TCP 사용 예시

  • 웹 페이지 로딩 (HTTP/HTTPS)
  • 파일 전송 (FTP)
  • 이메일 전송 (SMTP)

 

UDP (User Datagram Protocol)

UDP는 비연결 지향적이고, 빠른 데이터 전송을 지원하는 프로토콜입니다. 간단히 말하면, 데이터를 보내고 받는 과정에서 상대방이 그것을 받았는지 확인하지 않는 방식입니다.

  1. 비연결 지향적: 송신자는 데이터를 보내는 것에 집중하며, 수신자가 그 데이터를 받았는지 확인하지 않습니다. 마치 편지를 보내고 답장이나 확인을 받지 않는 것과 같습니다.
  2. 비신뢰성 전송: 만약 데이터가 손실되더라도 재전송하지 않으며, 데이터가 순서대로 오지 않아도 크게 문제되지 않습니다.
  3. 빠른 전송: TCP와 달리 연결 설정 및 관리가 없기 때문에 전송 속도가 매우 빠릅니다. 이 덕분에 실시간 통신에서 주로 사용됩니다.
  4. 흐름 제어나 혼잡 제어 없음: UDP는 네트워크의 상태나 흐름을 제어하지 않으므로, 혼잡이나 흐름에 대한 걱정 없이 데이터를 보냅니다.

UDP 사용 예시

  • 실시간 스트리밍 (비디오, 오디오)
  • 온라인 게임
  • DNS (도메인 이름 시스템)
  • VoIP (음성 통신)

 

TCP와 UDP의 차이점

특성 TCP UDP
연결 방식 연결 지향적 (연결 설정 후 전송) 비연결 지향적 (연결 설정 없이 전송)
신뢰성 신뢰성 있는 전송 (데이터 손실 복구) 신뢰성 없는 전송 (데이터 손실 가능)
속도 상대적으로 느림 (오버헤드 많음) 빠름 (오버헤드 없음)
흐름/혼잡 제어 있음 (흐름 제어 및 혼잡 제어 제공) 없음 (흐름 제어 및 혼잡 제어 없음)
데이터 순서 보장 데이터 순서 보장 순서 보장 없음
용도 웹, 이메일, 파일 전송 등 실시간 스트리밍, VoIP, 게임, DNS 등

 

어떤 프로토콜을 사용할까요?

  1. TCP는 신뢰성과 순서 보장이 중요한 애플리케이션에 적합합니다. 예를 들어, 웹 페이지를 로딩하거나 파일을 다운로드할 때는 TCP가 필수적입니다.
  2. UDP는 실시간성이 중요한 애플리케이션에서 매우 유용합니다. 예를 들어, 온라인 게임이나 실시간 영상 스트리밍에서는 속도가 더 중요하기 때문에 UDP가 적합합니다.

 

결론

  • TCP안전한 전송정확한 순서를 보장하지만, 속도에서 UDP보다 느립니다.
  • UDP빠른 속도단순성을 제공하지만, 신뢰성을 보장하지 않습니다.