네트워크/TCP

TCP 개요: TCP와 UDP 비교

shimdh 2025. 3. 9. 00:09
728x90

TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 인터넷 프로토콜 스위트(IP Suite)에서 가장 중요한 전송 계층 프로토콜입니다.
이들은 모두 네트워크 상에서 장치 간 데이터 전송을 담당하지만, 각기 다른 특성과 목적을 가지고 설계되었습니다.

TCP연결 지향적(Connection-Oriented) 프로토콜로, 데이터의 신뢰성을 보장하며 정확한 순서로 전송되는 것을 목표로 합니다.
UDP비연결형(Connectionless) 프로토콜로, 빠른 데이터 전송 속도를 제공하지만 신뢰성은 보장하지 않습니다.

TCP는 신뢰성이 필요한 서비스(웹 브라우징, 이메일, 파일 전송)에 적합하며,
UDP는 실시간성과 빠른 응답이 중요한 서비스(스트리밍, 온라인 게임, VoIP)에 적합합니다.

본 글에서는 TCP와 UDP의 차이점, 각각의 특징, 그리고 실생활에서 어떻게 활용되는지를 깊이 있게 살펴보겠습니다.


1. TCP의 정의 및 특징

🔹 TCP(Transmission Control Protocol)란?

TCP는 인터넷에서 가장 널리 사용되는 전송 계층 프로토콜로, 데이터를 신뢰성 있게 전송할 수 있도록 보장하는 기능을 제공합니다.
이는 애플리케이션 간의 원활한 통신을 유지하고, 데이터가 손실 없이 도착할 수 있도록 하는 것이 주된 목표입니다.

TCP의 핵심 기능

  1. 연결 지향적(Connection-Oriented)

    • 송신자와 수신자 간 3-way 핸드셰이크(Three-Way Handshake)를 통해 연결을 설정한 후 데이터를 전송.
    • 연결이 확립된 상태에서만 데이터 전송이 가능하므로 신뢰성이 높음.
  2. 신뢰성 보장(Reliability)

    • 데이터가 올바르게 수신되었는지 확인(ACK)하며, 손실된 패킷은 자동으로 재전송(Retransmission).
  3. 순서 보장(Ordering Guarantee)

    • 패킷이 올바른 순서대로 도착하도록 순서 번호(Sequence Number)를 부여하여 재조립.
  4. 흐름 제어(Flow Control)

    • 송신자가 수신자의 처리 속도를 고려하여 데이터를 전송(슬라이딩 윈도우 방식).
  5. 혼잡 제어(Congestion Control)

    • 네트워크가 혼잡할 경우 전송 속도를 조절하여 네트워크 부하를 방지.

TCP의 한마디 요약
"느리지만 정확하다. 데이터 손실 없이 순서대로 도착해야 하는 경우 TCP를 사용!"


2. UDP의 정의 및 특징

🔹 UDP(User Datagram Protocol)란?

UDP는 TCP와 달리 비연결형(Connectionless) 프로토콜로, 데이터를 빠르게 전송하는 것에 초점을 맞춘 경량 프로토콜입니다.
UDP는 패킷이 손실될 가능성이 있지만, 빠른 응답성과 높은 성능이 필요한 환경에서 강력한 장점을 가짐.

UDP의 핵심 기능

  1. 비연결형(Connectionless)

    • 데이터를 전송하기 전에 송신자와 수신자 간 연결을 설정하지 않음.
    • 패킷을 빠르게 전송할 수 있지만, 도착 여부를 확인하지 않음.
  2. 신뢰성이 낮음(Reliability 없음)

    • 데이터가 손실되거나 순서가 바뀌어도 복구하지 않음.
    • 하지만 패킷이 일부 손실되더라도 전체 서비스에 영향을 크게 미치지 않는 애플리케이션에서는 매우 유용함.
  3. 순서 보장 없음(Ordering 없음)

    • 패킷이 네트워크 경로를 따라 순서대로 도착한다는 보장이 없음.
    • 애플리케이션이 직접 패킷 순서를 관리해야 함.
  4. 오버헤드가 적음(Low Overhead)

    • TCP와 달리 흐름 제어, 혼잡 제어, 오류 복구 등의 기능이 없어 속도가 빠름.
    • 헤더 크기가 작기 때문에 네트워크 리소스를 효율적으로 활용 가능.

UDP의 한마디 요약
"빠르지만 신뢰성은 없다. 속도가 중요한 경우 UDP를 사용!"


3. TCP vs UDP 비교

특징 TCP (Transmission Control Protocol) UDP (User Datagram Protocol)
연결 방식 연결 지향(Connection-Oriented) 비연결형(Connectionless)
신뢰성 높음 (데이터 손실 시 재전송) 낮음 (패킷 손실 가능)
데이터 순서 패킷 순서를 보장 패킷 순서 보장하지 않음
흐름 제어 있음 없음
혼잡 제어 있음 없음
속도 상대적으로 느림 매우 빠름
헤더 크기 20~60 바이트 8 바이트

4. TCP와 UDP의 활용 사례

TCP 사용 사례 (신뢰성이 중요한 경우)

  1. 웹 브라우징 (HTTP/HTTPS)
    • 웹사이트를 로드할 때, 모든 데이터(HTML, CSS, JavaScript, 이미지 등)가 정확히 전송되어야 하므로 TCP를 사용.
  2. 파일 전송 (FTP, SFTP)
    • 파일 다운로드/업로드 시 데이터 손실이 없어야 하므로 TCP를 사용하여 손실 없이 전송.
  3. 이메일 (SMTP, IMAP, POP3)
    • 이메일 본문, 첨부파일 등이 정확하게 전달되어야 하므로 TCP 사용.

UDP 사용 사례 (속도가 중요한 경우)

  1. 실시간 스트리밍 (Netflix, YouTube, Twitch)
    • 비디오/오디오 데이터는 약간의 손실이 있어도 재생에 큰 영향을 미치지 않으므로 UDP 사용.
  2. 온라인 게임 (League of Legends, PUBG, Overwatch)
    • 게임 플레이 중 네트워크 지연(Lag)을 최소화하기 위해 빠른 응답 속도가 중요한 UDP 사용.
  3. VoIP (Zoom, Skype, FaceTime)
    • 실시간 음성 및 영상 통화에서는 빠른 데이터 전송이 중요하므로 UDP 사용.

5. 결론

TCP는 안정적인 데이터 전송을 보장하지만 속도가 상대적으로 느림
UDP는 빠른 데이터 전송이 가능하지만 신뢰성이 낮아 패킷 손실이 발생할 수 있음
TCP는 웹사이트, 파일 전송, 이메일 등 신뢰성이 중요한 환경에서 사용
UDP는 실시간 스트리밍, 온라인 게임, VoIP 등 빠른 응답이 중요한 환경에서 사용

💡 "TCP와 UDP는 각각의 장점과 단점이 있으며, 특정 애플리케이션의 요구 사항에 따라 적절한 프로토콜을 선택하는 것이 중요합니다."

728x90

'네트워크 > TCP' 카테고리의 다른 글

TCP 연결 설정: 연결 설정 과정  (0) 2025.03.09
TCP 연결 설정: 3-way 핸드셰이크  (0) 2025.03.09
TCP 개요: TCP의 특징  (0) 2025.03.09
TCP 개요: TCP의 정의  (0) 2025.03.09
최신 TCP 기술: Multipath TCP (MPTCP)  (0) 2025.03.09