TCP vs UDP

Hai giao thức tầng giao vận: TCP tin cậy nhưng chậm hơn, UDP nhanh nhưng “gửi là quên”. Đánh đổi kinh điển giữa độ chính xác và tốc độ.

So sánh

TCPUDP
Kết nốiHướng kết nối (3-way handshake)Không kết nối (connectionless)
Tin cậyĐảm bảo đến nơi, đúng thứ tự, gửi lại nếu mất (ACK, đánh số)Không đảm bảo - có thể mất, đến lộn xộn
Tốc độChậm hơn (overhead handshake + quản lý phiên)Rất nhanh, độ trễ thấp
KiểuKiểm soát luồng & lỗi”Fire-and-forget”

Khi nào dùng

  • TCP - dữ liệu cần chính xác tuyệt đối: truyền file, email SMTP, kết nối DB, giao dịch tài chính. HTTP chạy trên TCP.
  • UDP - cần tốc độ & thời gian thực, chấp nhận mất ít dữ liệu: VoIP, video call, streaming, game online, DNS. Mất vài frame còn hơn bị trễ hình.

Nhiều giao thức streaming (RTP, QUIC/HTTP-3) tận dụng UDP rồi tự bổ sung cơ chế kiểm soát ở tầng ứng dụng.

Liên quan

  • HTTP - xây trên TCP
  • Load Balancer - LB tầng 4 xử lý TCP/UDP theo IP/port
  • Latency - UDP chọn khi latency là ưu tiên