NETWORK

TCP와 UDP의 특징과 차이: UDP가 신뢰할 수 없는 프로토콜인 이유

최서은 2026. 4. 8. 23:39

 

 

우리가 웹 페이지를 열고, 파일을 다운로드하고, 실시간 스트리밍을 시청하는 모든 과정 뒤에는 서로 다른 방식으로 데이터를 전달하는 규칙들이 존재합니다.

그 중심에 있는 것이 바로 전송 계층의 핵심 프로토콜인 TCP와 UDP입니다.

두 프로토콜은 같은 계층에서 동작하지만, 데이터 전달 방식과 목적이 완전히 다르기 때문에 상황에 따라 선택적으로 사용됩니다.

 

따라서 단순히 “TCP는 신뢰성이 높고 UDP는 빠르다”라는 암기에서 벗어나, 각각이 왜 그런 특징을 가지게 되었는지 동작 원리 관점에서 이해하는 것이 중요합니다.

이번 글에서는 이 차이를 만드는 핵심 메커니즘을 하나씩 살펴보며, 실제 데이터가 전달되는 흐름 속에서 TCP와 UDP가 어떻게 다르게 동작하는지 구체적으로 알아보겠습니다.

OSI 7계층 vs TCP/IP 4계층

 

 

 

 

TCP(Transmission Control Protocol)

TCP는 인터넷에서 네트워크상의 장치 간에 안정적인 데이터 전송을 보장하는 프로토콜입니다.

TCP는 컴퓨터 간에 데이터 패킷을 주고받는 방식을 정의하는 IP와 함께 동작하며, IP가 데이터를 목적지까지 전달하는 역할을 한다면 TCP는 데이터가 정확하고 순서대로 전달되도록 제어하는 역할을 합니다.

 

TCP는 데이터 전송이 시작되기 전 송수신자 사이에 논리적 연결을 설정하는데 3-way handshake를 사용하고, 연결을 해제할 때엔 4-way handshake를 사용합니다.

 

연결 설정 : 3-way handshake

  1. SYN(동기화): 송신자는 수신자에게 연결을 요청하기 위해 SYN 패킷을 보냅니다. 
  2. SYN-ACK(동기화-확인): 수신자는 SYN-ACK 패킷을 전송하여 요청을 확인하고 연결에 동의합니다.
  3. ACK(승인): 발신자는 연결이 설정되었음을 확인하는 ACK 응답을 보냅니다.

이 과정을 통해 통신을 할 세션을 수립하게 됩니다.

이와 같은 메커니즘을 사용하기 때문에 TCP는 ‘연결형’이고 신뢰성을 보장한다 말할 수 있는 것입니다.

 

TCP는 단순히 데이터를 보내는 것이 아니라, 신뢰성 있는 전송을 위해 여러 제어 메커니즘을 함께 사용합니다.

먼저 애플리케이션 계층에서 전달받은 데이터를 세그먼트 단위로 분할하고, 각 세그먼트에 시퀀스 번호를 부여하여 데이터의 순서를 보장합니다.

이후 데이터를 전송하면 수신 측은 이를 확인하고 ACK 응답을 보내며, 송신 측은 해당 응답을 통해 데이터가 정상적으로 전달되었는지 확인합니다.

만약 일정 시간 동안 ACK를 받지 못하면 해당 데이터를 재전송하여 손실을 복구합니다. 

이와 함께 수신 측의 처리 속도에 맞추어 전송량을 조절하는 흐름 제어와, 네트워크 혼잡 상황을 고려하여 전송 속도를 조절하는 혼잡 제어를 통해 안정적인 데이터 전송을 보장합니다.

 

연결 해제 : 4-way handshake

  1. FIN(종료요청): 송신자는 수신자에게 연결을 종료를 요청하기 위해 FIN 패킷을 보냅니다.
  2. ACK(종료요청-확인): 수신자는 ACK 패킷을 전송하여 요청을 확인하고 종료에 동의합니다.
  3. FIN(해제준비완료): 수신자는 해제 준비 완료 신호로 FIN 패킷을 전송합니다.
  4. ACK(해제준비완료-확인): 송신자는 해제 준비 완료에 대한 최종 확인 응답으로 ACK 패킷을 전송합니다.

 

위와 같은 과정이 추가되기 때문에 UDP에 비해 상대적으로 속도가 느리지만, 데이터의 정확성과 안정성이 중요한 통신에서 사용됩니다.

 

 

 

UDP(User Datagram Protocol)

UDP는 게임, 비디오 재생과 같이 시간에 민감한 애플리케이션에 적합한 통신 프로토콜입니다.

UDP는 데이터를 전송하기 전에 목적지와의 안정적인 연결을 설정하는 데 시간을 소모하지 않기 때문에 통신 속도가 빠릅니다. 

 

 

TCP와 달리 UDP의 작동 방식은 매우 간단합니다.

수신자를 식별하고 '데이터그램'이라고 불리는 데이터 패킷을 전송합니다. 패킷의 도착 순서를 지정하는 매커니즘 없이, 패킷이 수신자에게 안정적으로 전달되었는지 확인하는 과정도 없습니다.

이러한 특징 때문에 TCP에 비해 신뢰도가 낮지만 속도는 빠를 수 있는 것입니다.

 

하지만 오류를 확인하거나 전송된 데이터를 수정할 필요가 없는 상황에서는 이러한 신뢰성은 크게 중요하지 않습니다.

 

예를 들어 우리가 실시간 화상 회의를 할 때처럼 비디오를 실시간으로 전송하는 경우, 일부 데이터가 손실되더라도 이를 다시 받아오기 위해 지연이 발생하는 것보다 끊김 없이 계속 재생되는 것이 더 중요합니다. 따라서 이러한 상황에서는 빠른 전송이 가능한 UDP가 더 적합하게 사용됩니다.

 

 

 

TCP vs UDP

 

  TCP UDP
연결 방식 연결형  비연결형
전송 순서 순서 보장 순서를 보장하지 않음
수신 여부 수신 여부를 확인 수신여부를 확인하지 않음
신뢰성 높음 낮음
속도 상대적으로 느림 빠름

 

 


 

 

학습용으로 작성한 포스팅이므로 오류가 있을 수 있습니다.

잘못된 내용이나 보완이 필요한 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
궁금한 점도 편하게 남겨주세요.

 

 

 

 

출처

- A Deep Dive into TCP: The Backbone of Reliable Internet Communication

https://medium.com/@harshithgowdakt/a-deep-dive-into-tcp-the-backbone-of-reliable-internet-communication-798c238b337d

- Why TCP Connect Termination Need 4-Way-Handshake?

https://www.geeksforgeeks.org/computer-networks/why-tcp-connect-termination-need-4-way-handshake/

- UDP란?

https://www.cloudflare.com/ko-kr/learning/ddos/glossary/user-datagram-protocol-udp/

- What Is User Datagram Protocol (UDP)?

https://www.fortinet.com/resources/cyberglossary/user-datagram-protocol-udp