2026-02-19

TCP와 UDP

TCP (Transmission Control Protocol)

신뢰성 중심 프로토콜

  1. 연결 지향 →통신 전 3-way handshake 필요

  2. 신뢰성 보장 → 패킷 손실 시 재전송

  3. 순서 보장 → 패킷 순서 유지

  4. 흐름 제어 → 수신자가 처리 가능한 속도로 조절

  5. 혼잡 제어 → 네트워크 과부하 방지

  • 3-Way Handshake
    1. SYN
    2. SYN + ACK
    3. ACK

    ⇒ 연결 수립 과정

  • 언제 사용?
    • 웹 통신 (HTTP/HTTPS)
    • 파일 전송
    • 로그인 처리
    • 금융 시스템

    ⇒ 데이터 정확성이 중요한 경우

UDP (User Datagram Protocol)

속도 중심 프로토콜

  1. 비연결형 → 연결 과정 없음

  2. 신뢰성 없음 → 재전송 없음

  3. 순서 보장 없음

  4. 오버헤드 적음 →빠름

  • 언제 사용?
    • 실시간 스트리밍
    • 온라인 게임
    • VoIP
    • DNS 조회

    ⇒ 조금 손실돼도 되는 실시간 서비스

관련 개념 같이 정리

  • 흐름 제어 (Flow Control)

    수신자가 처리 가능한 속도로 보내는 것

    → TCP에만 있음

    예: Sliding Window

  • 혼잡 제어 (Congestion Control)

    네트워크가 과부하되지 않도록 조절

    → TCP에만 있음

    예:

    • Slow Start
    • AIMD
  • 신뢰성 보장 방식

    TCP

    • ACK 응답
    • 재전송
    • Sequence Number 사용
  • 오버헤드

    TCP

    • 헤더 크기 20byte 이상
    • 연결 유지 비용 있음

    UDP

    • 헤더 8byte
    • 구조 단순
  • HTTP는 왜 TCP를 쓸까?

    • 데이터 손실 안 됨
    • 순서 중요
    • 보안 연결 필요 (HTTPS → TLS → TCP 기반)

비교표

구분 TCP UDP
연결 방식 연결형 (Connection-oriented) 비연결형 (Connectionless)
패킷 교환 방식 가상 회선 방식 데이터그램 방식
신뢰성 O (보장) X (보장 안함)
순서 보장 O X
속도 느림 빠름
흐름 제어 O X
혼잡 제어 O X
대표 예시 HTTP, HTTPS, FTP DNS, 실시간 스트리밍

요약

TCP는 연결형 프로토콜로, 3-way handshake를 통해 연결을 맺고 데이터의 신뢰성과 순서를 보장합니다. 흐름 제어와 혼잡 제어 기능이 있어 안정적인 통신에 적합합니다.

반면 UDP는 비연결형 프로토콜로, 신뢰성과 순서를 보장하지 않지만 오버헤드가 적어 빠른 전송이 가능합니다. 주로 실시간 스트리밍이나 게임처럼 속도가 중요한 곳에 사용됩니다.

  • TCP = 느리지만 안전
  • UDP = 빠르지만 보장 없음

참고자료

  • https://inpa.tistory.com/entry/NW-%F0%9F%8C%90-%EC%95%84%EC%A7%81%EB%8F%84-%EB%AA%A8%ED%98%B8%ED%95%9C-TCP-UDP-%EA%B0%9C%EB%85%90-%E2%9D%93-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EC%9E%90
  • https://velog.io/@ahsy92/%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91-TCP%EC%99%80-UDP
  • https://8iggy.tistory.com/219

results matching ""

    No results matching ""