Giao thức UDP là gì? Ưu nhược điểm và cách hoạt động

Làm sao để thông tin được trao đổi giữa các máy tính một cách nhanh chóng và mượt mà? Để giải đáp thắc mắc đó, sau đây hãy cùng mình tìm hiểu về giao thức UDP – khái niệm, ưu nhược điểm thông qua bài viết này.

Giao thức UDP là gì?

Giao thức UDP (User Datagram Protocol) là một giao thức truyền tải dữ liệu thuộc tầng vận tải của mô hình TCP/IP. Giao thức cung cấp dịch vụ truyền tải dữ liệu không kết nối, tăng tốc độ truyền dữ liệu bằng cách bỏ qua quá trình kiểm tra thông điệp trước khi gửi.

UDP thường được sử dụng trong các ứng dụng yêu cầu tốc độ truyền nhanh hơn và độ trễ thấp như trò chơi trực tuyến, video trực tuyến, gọi điện qua Internet, vv.

Đặc điểm

  • Không cần thiết lập liên kết: Giao thức TCP sử dụng cơ chế “bắt tay” ba bước trước khi truyền dữ liệu nhưng giao thức UDP không cần cơ chế. Vì vậy UDP sẽ không phải mất thời gian để thiết lập đường truyền. Đây chính là nguyên nhân dịch vụ DNS chạy trên UDP chứ không phải là TCP, DNS sẽ chạy chậm nếu sử dụng TCP. HTTP sử dụng TCP vì các đối tượng Web cần được tải về chính xác, do đó yêu cầu một đường truyền tin cậy.
  • Tốc độ truyền dữ liệu cao: UDP không cần phải lưu trữ thông tin trạng thái kết nối. Do đó nó có thể cung cấp tốc độ truyền dữ liệu cao hơn TCP.
  • Không cần kiểm soát tắc nghẽn: TCP có cơ chế kiểm soát tắc nghẽn, điều chỉnh tốc độ gửi khi xảy ra tắc nghẽn. Chế độ điều chỉnh này có thể ảnh hưởng tới những ứng dụng thời gian thực. Đó là những ứng dụng chấp nhận mất mát dữ liệu nhưng lại đòi hỏi phải có một tốc độ truyền cao. UDP không có cơ chế kiểm soát tắc nghẽn, do đó nó có thể cung cấp tốc độ truyền dữ liệu ổn định hơn cho các ứng dụng thời gian thực.

Ưu nhược điểm của giao thức UDP

Ưu điểm của UDP

UDP là một giao thức đơn giản và hiệu quả, có thể cung cấp tốc độ truyền dữ liệu cao. UDP không yêu cầu thiết lập kết nối trước khi truyền dữ liệu. Do đó nó có thể được sử dụng trong các ứng dụng cần truyền dữ liệu nhanh chóng và hiệu quả. Chẳng hạn như truyền thông thời gian thực (real-time communication).

Nhược điểm của UDP

UDP không đảm bảo tính tin cậy của dữ liệu. Do đó dữ liệu có thể bị mất hoặc bị thay đổi trong quá trình truyền tải. UDP không kiểm soát lưu lượng, do đó có thể dẫn đến tình trạng tắc nghẽn mạng.

Cách hoạt động của UDP

Giao thức UDP hoạt động như sau:

  • Gửi dữ liệu: Khi một ứng dụng muốn gửi dữ liệu cho một ứng dụng khác, nó sẽ gọi hàm của giao thức UDP để gửi dữ liệu.
  • Tạo datagram: Giao thức UDP sẽ lấy dữ liệu từ ứng dụng và chèn thêm một số trường điều khiển vào dữ liệu, bao gồm hai trường địa chỉ cổng nguồn và đích.
  • Gửi datagram tới tầng mạng: Giao thức UDP sẽ gửi datagram tới tầng mạng.
  • Gửi datagram tới máy tính nhận: Tầng mạng sẽ gửi datagram tới máy tính nhận.
  • Nhận dữ liệu: Khi máy tính nhận nhận được datagram, nó sẽ gọi hàm của giao thức UDP để nhận dữ liệu.

Phân biệt UDP và TCP

Giao thức UDP và TCP đều là các giao thức truyền tải dữ liệu thuộc tầng vận tải của mô hình TCP/IP. Tuy nhiên, UDP và TCP có một số điểm khác biệt cơ bản sau:

Đặc điểm UDP TCP
Tính chất kết nối Không kết nối Có kết nối
Đảm bảo tính tin cậy Không đảm bảo Đảm bảo
Kiểm soát lưu lượng Không kiểm soát Có kiểm soát
Tốc độ truyền dữ liệu Cao Thấp hơn
Ứng dụng Các ứng dụng cần truyền dữ liệu nhanh chóng và hiệu quả, chẳng hạn như truyền thông thời gian thực. Các ứng dụng cần truyền dữ liệu tin cậy, chẳng hạn như email, FTP.

Cách tính UDP checksum

UDP checksum được sử dụng để phát hiện lỗi, nó được tính như sau: tính giá trị bù một của tổng các từ 16 bit trong datagram, giá trị nhận được được đặt vào trường checksum trong UDP datagram.

Giả sử có ba từ 16 bit sau đây:

Cách tính checksum UDP

 

 

 

 

 

 

 

Cách lấy bù một là đảo 0 thành 1 và 1 thành 0. Vì vậy kết quả phép lấy bù một của 1100101011001010 là 0011010100110101 và đó chính là giá trị checksum. Tại phía nhận, tất cả bốn từ (kể cả checksum) được cộng lại. Nếu dữ liệu không có lỗi thì tổng nhận được phải chuỗi các bit 1, tức là 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1. Nếu có một bít nào đó bằng 0 thì chắc chắn dữ liệu nhận được đã bị lỗi. Mặc dù UDP có thể phát hiện lỗi nhưng nó không xử lý lỗi. Datagram lỗi có thể bị loại bỏ, nhưng cũng có thể được chuyển lên tầng ứng dụng kèm theo cảnh.

Ví dụ về các ứng dụng sử dụng UDP

  • Trò chơi trực tuyến: Do cần truyền dữ liệu nhanh chóng và hiệu quả, nên chúng thường sử dụng UDP.
  • Truyền thông thời gian thực: Các ứng dụng truyền thông thời gian thực, chẳng hạn như hội nghị truyền hình.
  • Streaming media: Các ứng dụng phát trực tuyến media, chẳng hạn như phát video trực tuyến.
  • DNS: Dịch vụ DNS sử dụng UDP để truy vấn và trả lời tên miền.
  • DHCP: Dịch vụ DHCP sử dụng UDP để cấp phát địa chỉ IP cho các máy tính.

các ứng dụng sử dụng UDP

UDP Header

UDP-header

Source Port: Xác định nguồnm theo số cổng.

Destination Port: Xác định đích theo số cổng.

Length: Xác định độ dài của UDP datagram header.

Checksum: kiểm tra lỗi.

Hiểu rõ về giao thức UDP sẽ giúp chúng ta biết cách thức hoạt động của internet. Hy vọng những thông tin trên sẽ hữu ích. Cảm ơn các bạn đã tham khảo quản trị mạng trên ttnguyen.net

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em