TCP와 UDP의 차이점과 사용 사례

eunbi·2025년 2월 2일

CS 총정리

목록 보기
21/22

네트워크 프로토콜에서 TCP(Transmission Control Protocol)UDP(User Datagram Protocol)는 가장 많이 사용되는 두 가지 전송 방식이다.
이 두 프로토콜은 데이터를 어떻게 전달할 것인지에 대한 방식이 다르며, 각각의 장단점이 존재한다.


1️⃣ TCP (Transmission Control Protocol)

TCP란?

  • 연결 지향형 프로토콜(Connection-Oriented Protocol)
  • 3-Way Handshake를 사용하여 데이터 전송 전에 연결을 설정
  • 데이터의 순서 보장 및 오류 검사 기능 제공
  • 신뢰성 높은 데이터 전송이 필요한 서비스에 사용됨

📌 TCP의 특징

특징설명
신뢰성 보장패킷 손실, 중복, 순서 변경을 자동으로 감지하고 복구
순서 보장데이터가 전송된 순서대로 도착
오류 제어데이터가 손상되면 재전송
흐름 제어송신자가 수신자의 처리 속도를 고려하여 전송 속도를 조절
혼잡 제어네트워크 상태를 고려하여 패킷 전송량을 조절

📌 TCP의 동작 방식

✅ 1. 3-Way Handshake (연결 설정)

  1. 클라이언트가 SYN 패킷을 보내 연결 요청
  2. 서버가 SYN + ACK 패킷을 보내 응답
  3. 클라이언트가 ACK 패킷을 보내 연결 확립

✅ 2. 데이터 전송

  • 데이터가 패킷 단위로 나뉘어 전송되며, 각 패킷에는 시퀀스 번호(Sequence Number)가 부여됨
  • 수신 측은 패킷이 순서대로 도착했는지 확인 후, ACK(응답) 패킷을 보냄

✅ 3. 4-Way Handshake (연결 종료)

  1. 클라이언트가 FIN 패킷을 전송하여 연결 종료 요청
  2. 서버가 ACK를 응답하여 확인
  3. 서버가 FIN 패킷을 전송하여 종료 요청
  4. 클라이언트가 ACK를 응답하여 연결 종료 확정

📌 TCP의 사용 사례

  • 웹 브라우징 (HTTP, HTTPS)
  • 이메일 전송 (SMTP, IMAP, POP3)
  • 파일 다운로드 (FTP, SFTP)
  • 데이터베이스 연결 (MySQL, PostgreSQL 등)

📌 TCP는 신뢰성과 데이터 정확성이 중요한 서비스에서 주로 사용된다.


2️⃣ UDP (User Datagram Protocol)

UDP란?

  • 비연결형 프로토콜(Connectionless Protocol)
  • 데이터 전송 전 연결 설정 과정이 없음
  • 데이터 손실이나 순서가 바뀌어도 복구하지 않음
  • 빠른 데이터 전송이 중요한 서비스에 사용됨

📌 UDP의 특징

특징설명
비연결형연결 설정 없이 데이터를 바로 전송
빠른 전송 속도헤더가 작고 연결 과정이 없어 오버헤드가 적음
순서 보장 X데이터가 도착하는 순서를 보장하지 않음
오류 검출은 가능하지만 복구 X데이터가 손실되거나 손상되어도 재전송을 하지 않음
브로드캐스트/멀티캐스트 지원한 번의 전송으로 여러 수신자에게 데이터를 전달 가능

📌 UDP의 동작 방식

✅ 1. 데이터 전송

  • 송신자는 데이터를 패킷(Datagram) 형태로 수신자에게 보냄
  • 별도의 연결 설정 없이 즉시 전송
  • 수신자는 데이터를 받지만, 순서가 다를 수 있으며 손실될 수도 있음
  • TCP처럼 ACK(응답) 패킷이 없어 데이터가 도착했는지 확인할 방법이 없음

📌 UDP의 사용 사례

  • 실시간 스트리밍 (YouTube, Netflix, Twitch 등)
  • 화상 통화 (Zoom, Skype 등)
  • 온라인 게임 (FPS, MMORPG 등)
  • VoIP (인터넷 전화, Discord 등)
  • DNS 조회 (도메인 네임 시스템)
  • IoT(사물 인터넷) 및 센서 데이터 전송

📌 UDP는 속도가 중요하고, 일부 데이터 손실이 발생해도 큰 문제가 없는 서비스에서 주로 사용된다.


3️⃣ TCP vs UDP 비교

비교 항목TCPUDP
연결 방식연결 지향형 (3-Way Handshake)비연결형
데이터 순서 보장OX
오류 검사 및 복구O (손실된 패킷 재전송)X (손실 시 무시)
속도느림 (오버헤드가 큼)빠름 (오버헤드가 적음)
신뢰성높음낮음
패킷 크기크고 헤더가 많음작고 헤더가 적음
사용 사례웹, 이메일, 파일 전송스트리밍, 게임, VoIP

4️⃣ TCP와 UDP의 선택 기준

✅ TCP를 선택해야 하는 경우

✔ 데이터의 정확성이 중요한 경우
✔ 패킷 손실이 있으면 재전송이 필요한 경우
웹 브라우저, 이메일, 파일 전송과 같이 신뢰성이 요구되는 애플리케이션

✅ UDP를 선택해야 하는 경우

빠른 데이터 전송이 필요한 경우
일부 데이터 손실이 허용되는 경우
온라인 게임, 스트리밍, VoIP실시간 통신이 필요한 애플리케이션


🚀 결론

  • TCP는 신뢰성이 중요한 서비스 (예: 웹사이트, 이메일)에서 사용된다.
  • UDP는 속도가 중요한 서비스 (예: 실시간 스트리밍, 온라인 게임)에서 사용된다.
  • 서비스의 특성과 요구사항에 따라 TCP와 UDP를 적절히 선택하는 것이 중요하다.

0개의 댓글