[컴퓨터네트워크] TCP와 UDP 차이

Youngshin Park·2025년 4월 13일

CS

목록 보기
4/5

컴퓨터네트워크를 공부하다 보면 반드시 마주치는 두 전송계층 프로토콜이 있다. 바로 TCPUDP다.

둘 다 전송계층(Transport Layer) 프로토콜이고,
→ “어떤 데이터를 어떤 방식으로 전송할지”를 정해주는 역할을 한다. 쉽게 말하면, 데이터를 목적지까지 ‘어떻게’ 보낼지 정해주는 방법이다.

이번 글에서 TCP와 UDP의 차이를 이론적으로 정리하고, 어떤 상황에서 무엇을 써야 하는지까지 정리해보겠다.


✅ TCP란?

Transmission Control Protocol의 약자로, 신뢰성 있는 연결 지향 프로토콜이다.

주요 특징

  • 3-way handshake를 통해 연결을 먼저 설정함
  • 데이터를 전송할 때 순서를 보장함
  • 패킷 유실 시 재전송 기능이 있음
  • 흐름 제어, 혼잡 제어 등을 통해 안정적인 통신을 지원함

장점

  • 데이터가 순서대로, 빠짐없이 도착함
  • 프로그램 입장에서 구현이 편하며 신경 쓸 게 적음

단점

  • 연결 설정, 재전송 등으로 인해 속도가 느릴 수 있음
  • 오버헤드가 크고, 서버의 자원(CPU, 메모리)을 더 많이 사용함

✅ UDP란?

User Datagram Protocol의 약자로, 비연결 지향, 신뢰성이 없는 전송 프로토콜이다.

주요 특징

  • 연결을 설정하지 않고 바로 데이터를 전송함
  • 패킷을 전송하면 끝. 수신 여부 확인하지 않음
  • 순서도 보장하지 않고, 유실되어도 재전송하지 않음

장점

  • 속도가 매우 빠름
  • 오버헤드가 적고, 자원 사용이 가벼움
  • 실시간성이 중요한 통신에 적합함

단점

  • 패킷 손실, 순서 뒤바뀜 가능
  • 안정성이 필요하면 개발자가 직접 보완해야 함

한눈에 비교 !!

항목TCPUDP
연결 방식연결 지향비연결 지향
신뢰성보장(재전송)보장 X
순서 보장OX
흐름 제어/혼잡 제어있음없음
속도상대적으로 느림매우 빠름
용도웹, 파일전송, 이메일 등게임, 스트리밍, VoIP

*교수님의 말씀으론.. UDP가 속도가 훨씬 빠르다기보단, 연결하는 시간이 적게 든다가 더 맞는 표현이라고 하신다


그렇담.. 언제 TCP를 쓰고, 언제 UDP를 써야 할까?

TCP가 필요한 상황

  • 데이터 손실이 절대 안 되는 경우
    • 예: 로그인, 결제, 파일 업로드 등
  • 데이터 순서가 중요할 때
    • 예: 채팅 메시지, 웹페이지 로딩

UDP가 필요한 상황

  • 속도가 더 중요하고, 약간의 손실은 괜찮은 경우
    • 예: 실시간 영상 통화, 게임 위치 동기화
  • 빠르게 많은 요청을 처리해야 할 때
    • 예: DNS 조회, 방송 송출 등

처음엔 잘 몰랐는데 공부를 하다 보니 결국 TCP랑 UDP는 뭐가 더 좋다기보단, 상황 따라 잘 골라 써야 하는 도구라는 걸 느꼈다
처음엔 그냥 “TCP는 느리고 UDP는 빠르다” 이 정도만 알고 있었는데, 막상 하나씩 뜯어보니까 각자 역할이 확실히 다른 것 같았당

0개의 댓글