So sánh chi tiết TCP vs UDP

Tiêu chí TCP (Transmission Control Protocol) UDP (User Datagram Protocol)
Loại giao thức Hướng kết nối (Connection-oriented) Không hướng kết nối (Connectionless)
Thiết lập kết nối Bắt buộc: thông qua quá trình bắt tay 3 bước (3-way handshake) Không cần thiết lập kết nối
Đảm bảo độ tin cậy Có: Đảm bảo gói đến đúng thứ tự, không mất, không trùng lặp Không: Không đảm bảo gói đến đúng thứ tự hoặc không mất
Kiểm tra lỗi (Error Checking) Có (kèm cơ chế sửa lỗi, retransmit nếu lỗi) Có (chỉ kiểm tra lỗi, không sửa lỗi)
Thứ tự gói tin (Ordering) Có đảm bảo thứ tự nhận như gửi Không đảm bảo thứ tự
Kiểm soát luồng (Flow Control) Có (window size, ACK, congestion control) Không có
Tốc độ truyền tải Chậm hơn do cần kiểm soát và đảm bảo độ tin cậy Nhanh hơn vì không kiểm tra thứ tự, không ACK
Gánh nặng tài nguyên Cao hơn: do cần quản lý kết nối, lưu trạng thái, ACK Thấp hơn: đơn giản, không lưu trạng thái kết nối
Sử dụng trong ứng dụng Web (HTTP/HTTPS), Email (SMTP), FTP, SSH, v.v. VoIP, video streaming, DNS, game online, v.v.
Kích thước header 20 bytes (ít nhất) 8 bytes
Cơ chế xác nhận (ACK) Có: mỗi gói có thể được xác nhận Không có
Cơ chế truyền lại (Retransmission) Có (khi timeout hoặc lỗi) Không có truyền lại
Hướng truyền dữ liệu Song công (full-duplex) Song công, nhưng không kiểm soát

📌 Tóm tắt

Đặc điểm TCP UDP
Độ tin cậy Cao Thấp
Tốc độ Thấp hơn Nhanh hơn
Tài nguyên Tốn tài nguyên hơn Nhẹ, đơn giản
Ứng dụng thích hợp Truyền file, duyệt web, email Game, video, thoại qua mạng

🎯 Khi nào dùng cái nào?

Tình huống Giao thức phù hợp
Tải file, truyền dữ liệu quan trọng TCP
Gọi video call, livestream, chơi game online UDP
Gửi email, kết nối SSH TCP
Truy vấn DNS UDP