Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 📌 TCP vs UDP – Hiểu cho đúng để chọn cho chuẩn!

    [Bài viết dành cho cộng đồng MCSA-AZURE-AWS tại VnPro]
    📌 TCP vs UDP – Hiểu cho đúng để chọn cho chuẩn!

    Trong bài viết hôm nay, chúng ta sẽ cùng nhau tìm hiểu về TCP và UDP – hai giao thức “xương sống” ở tầng Transport Layer, quyết định cách dữ liệu được gửi từ ứng dụng này đến ứng dụng khác qua mạng. Đây là nền tảng kiến thức mà bất kỳ kỹ sư hệ thống, cloud hay bảo mật nào cũng cần nắm chắc.
    🧠 Vấn đề lớn đầu tiên: Reliable vs Best-effort


    TCP là giao thức “reliable”, vì nó cần bắt tay qua quy trình three-way handshake gồm SYN, SYN-ACK và ACK trước khi truyền dữ liệu. Việc này giúp xác minh rằng bên nhận sẵn sàng, và có thể phản hồi nếu dữ liệu bị mất — giống như thư bảo đảm có ký nhận.

    UDP thì ngược lại: connectionless, không bắt tay, không đảm bảo gì hết — giống như gửi bưu thiếp không ghi người gửi. Dữ liệu “ném ra” và... hy vọng người nhận nhận được.
    🧩 Ứng dụng nào dùng TCP, ứng dụng nào dùng UDP?
    • TCP phù hợp với các ứng dụng đòi hỏi độ tin cậy cao:
      Ví dụ: Email (SMTP, IMAP), truyền file (FTP), web (HTTP/HTTPS), điều khiển từ xa (SSH, Telnet).
      → Nếu mất gói? Không sao, TCP sẽ gởi lại.
    • UDP lại phù hợp với các ứng dụng yêu cầu độ trễ thấp:
      Ví dụ: Voice call (VoIP), video streaming (YouTube), chơi game online.
      → Nếu mất gói? Không sao, truyền tiếp để không bị giật lag.

    🔄 Session Multiplexing: Chạy song song nhiều kết nối


    Bạn có thể chạy nhiều kết nối TCP và UDP cùng lúc trên cùng 1 thiết bị nhờ vào Session Multiplexing.
    Ví dụ: Trình duyệt có thể mở 10 tab, mỗi tab là 1 session TCP riêng biệt – mỗi session phân biệt bằng cặp địa chỉ IP + port nguồn và đích.
    🔍 Vì sao chúng ta cần Port?


    Mỗi ứng dụng trên thiết bị của bạn cần 1 “cửa” riêng để giao tiếp. Đó chính là port.
    • HTTP chạy trên TCP port 80
    • HTTPS chạy trên TCP port 443
    • DNS chạy trên UDP 53 (hoặc TCP 53 cho zone transfer)
    • TFTP chạy trên UDP 69

    Vì vậy, Port = Danh tính của ứng dụng trên thiết bị. Thiết bị dùng cặp (IP, Port) để định danh kết nối đang đi đến đâu và đến ứng dụng nào.
    📦 Header TCP vs UDP – Sự khác biệt về độ “nặng ký”
    • TCP header gồm nhiều trường:
      • Source port, Destination port
      • Sequence number
      • Acknowledgement number
      • Flags (SYN, ACK, FIN...)
      • Window size, Checksum...

    → Chính những thành phần này giúp TCP có khả năng kiểm soát luồng, đánh số thứ tự, xác nhận nhận được gói tin… nhưng cũng khiến nó nặng hơn và chậm hơn.
    • UDP header thì tối giản:
      • Source port, Destination port
      • Length
      • Checksum

    → Nhẹ nhàng, ít kiểm tra, nhanh hơn.
    📚 Tầng Transport – Vai trò trong mô hình TCP/IP


    Transport layer ngồi ở giữa Application và Internet layer, thực hiện các chức năng quan trọng như:
    • Segmentation – phân mảnh dữ liệu lớn thành các phần nhỏ
    • Multiplexing – hỗ trợ nhiều kết nối đồng thời
    • Flow control – kiểm soát tốc độ truyền nhận
    • End-to-end connection – đảm bảo kết nối giữa 2 đầu giao tiếp
    • Congestion control – giảm tải khi mạng bị nghẽn

    ✅ Câu hỏi ôn tập cuối buổi


    Hỏi: Ba chức năng chính của tầng transport là gì? (Chọn 3)
    Đáp án:
    • ✅ Segmentation
    • ✅ Flow control
    • ✅ Multiplexing

    📌 Tóm lại dành cho cộng đồng VnPro:
    • TCP là lựa chọn khi cần độ tin cậy cao, chấp nhận chậm.
    • UDP là lựa chọn khi cần nhanh, chấp nhận mất mát dữ liệu.
    • Hiểu rõ sự khác biệt sẽ giúp bạn chọn đúng giao thức cho từng ứng dụng trong mạng.


    📣 Bạn đang học CCNA? Azure? Làm hệ thống? Đừng bỏ qua nền tảng này!
    Bài viết này giúp bạn gỡ rối câu hỏi kinh điển: “Dùng TCP hay UDP?”, “Vì sao UDP nhanh hơn?”, hay “Vì sao web cần dùng TCP?”

    Hãy để lại bình luận nếu bạn từng cấu hình tường lửa hoặc NAT và gặp tình huống “UDP không qua nhưng TCP thì được” nhé!

    Viết bởi VnPro – Nơi quy tụ cộng đồng chuyên gia Hệ thống, Cloud, và An ninh Mạng tại Việt Nam.
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X