Cả hai là giao thức tầng transport, nhưng đánh đổi khác nhau giữa độ tin cậy và độ trễ.
- TCP: hướng kết nối — thiết lập bằng bắt tay ba bước trước khi truyền. Đảm bảo giao đủ, đúng thứ tự, có kiểm soát luồng và tắc nghẽn, tự truyền lại gói mất. Nặng hơn, độ trễ cao hơn.
- UDP: không kết nối — gửi datagram ngay, không bắt tay. Không đảm bảo giao tới, đúng thứ tự hay chống trùng. Nhẹ, độ trễ thấp, ít overhead.
Chọn thế nào:
- TCP cho dữ liệu cần chính xác từng byte: HTTP/1.1–2, truy vấn DB, truyền file, email.
- UDP khi tốc độ quan trọng hơn mất mát lẻ tẻ: DNS, VoIP, video call, game realtime, streaming; HTTP/3 (QUIC) cũng chạy trên UDP rồi tự lo phần tin cậy ở tầng trên.