Bạn từng nghe đến UDP nhưng bạn đang thắc mắc không biết UDP là gì? Đừng lo, bạn đã tìm đúng địa chỉ rồi đó. Trong bài viết ngày hôm nay, ITQNU sẽ cùng các bạn đi tìm hiểu chi tiết nhất về UDP là gì?
Cũng như những kiến thức quan trọng mà bạn cần biết về UDP và so sánh UDP và TCP. Hãy cùng theo dõi để hiểu rõ hơn về thuật ngữ này nhé.
UDP là gì?
UDP là viết tắt của cụm từ User Datagram Protocol là một trong những giao thức cốt lõi của giao thức TCP/IP. Sử dụng UDP, chương trình trên mạng máy tính có thể gửi những dữ liệu ngắn được gọi là datagram tới máy khác.
UDP không cung cấp sự tin cậy và thứ tự truyền nhận mà TCP làm. Các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà không có thông báo.
Tuy nhiên UDP nhanh và hiệu quả hơn đối với các mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời gian. Do bản chất không trạng thái của nó nên nó hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng lớn người yêu cầu.
UDP sử dụng cơ chế tối giản của mô hình giao tiếp không kết nối. (hay còn gọi là chế độ CL – gửi dữ liệu từ đầu cuối này đến đầu cuối khác mà không hỏi đầu cuối ấy đã sẵn sàng hay chưa hoặc còn được gọi là mô hình bắt tay).
Cách hoạt động của UDP
Giao thức UDP hoạt động tương tự như TCP nhưng nó không cung cấp kiểm tra lỗi khi truyền gói tin.
Khi một ứng dụng sử dụng UDP, các gói tin chỉ được gửi đến người nhận. Người gửi không đợi để đảm bảo người nhận nhận được gói tin hay không, mà nó tiếp tục gửi các gói tiếp theo.
Nếu người nhận bỏ lỡ một vài gói tin UDP. Gói tin đó bị mất vì người gửi sẽ không gửi lại chúng. Điều này có nghĩa là các thiết bị có thể giao tiếp nhanh hơn.
Các đặc tính của UDP
- Định hướng giao dịch, không đảm bảo việc phân phối và bảo vệ trùng lặp.
- Sử dụng mô hình truyền đơn giản, không sử dụng các hộp thoại bắt tay để đảm bảo tính tin cậy. Trật tự và tính vẹn toàn dữ liệu.
- Cung cấp Datagram.
- Không có độ trễ.
Cấu trúc của UDP
UDP được chia thành 2 phần gồm tiêu đề (header) và dữ liệu (data):
1. Tiêu đề UDP
Tiêu đề UDP gồm 4 trường: cổng nguồn, cổng đích, độ dài, checksum. Mỗi trường đều chiếm 2 byte (16 bits), cụ thể:
Cổng nguồn: Gồm 16 bits, trường này xác định địa chỉ cổng của người gửi. Cũng như nơi để nhận trả lời nếu cần. Khi được dùng có giá trị là 1, khi không dùng có giá trị là 0.
Cổng đích: Gồm 16 bits, trường này dùng để xác định cổng của người gửi.
Độ dài: Gồm 16 bits, trường này chỉ định độ dài của tiêu đề UDP và dữ liệu đóng gói của UDP. Độ dài tối thiểu của tiêu đề là 8 bytes. Độ dài lớn nhất của một gói dữ liệu datagram trên lý thuyết là 65,535 bytes (trong đó 8 byte tiêu đề – 65,527 bytes của gói dữ liệu). Ở giao thức Ipv4 độ dài giới hạn là 65,507 bytes (trong đó 65,535 byte gói dữ liệu – 8 byte tiêu đề UDP – 20 byte IP header), ở giao thức Ipv6 là 65,535 bytes
Checksum: Là trường được dùng để kiểm tra lỗi của tiêu đề và dữ liệu của UDP. Trường này không bắt buộc phải có ở Ipv4 nhưng bắt buộc ở Ipv6. Trường mang giá trị 0 nếu không được sử dụng.
2. Dữ liệu (data)
Dữ liệu thì tùy thuộc vào ở giao thức Ipv4 hay Ipv6 mà có độ dài khác nhau (đã được liệt kê ở phần độ dài).
Nhìn chung, các ứng dụng sử dụng giao thức UDP thường sẵn sàng chấp nhận mất mát, lỗi hoặc trùng lặp. Một số ứng dụng sẽ có thể thêm các cơ chế để tăng độ tin cậy ở mức thô sơ vào các lớp ứng dụng khi cần.
Thậm chí có thể nói chế độ tin cậy sẽ cản trở giao thức UDP thực hiện nhiệm vụ của nó. Vì hầu hết những ứng dụng dùng UDP được thiết kế để xử lý mất gói tín hiệu thường xuyên. Do đó chỉ gây ra suy giảm tín hiệu, thay vì độ trễ lớn, ví dụ như DNS, SNMP, RIP, DHCP,…
So sánh UDP và TCP
Nếu chúng ta xét về độ tin cậy thì chắc chắn là TCP sẽ có độ tin cậy cao hơn hẳn UDP rồi. Tuy nhiên, để so sánh cụ thể và chuẩn xác hơn thì chúng ta sẽ dựa vào những yếu tố sau:
- Thứ tự các gói tin: TCP có sắp xếp thứ tự các gói tin trong khi UDP thì không. Khi 2 tin nhắn cùng gửi đến 1 người nhận ở giao thức UDP thì sẽ không thể đoán được thứ tự của chúng.
- Kích thước: TCP nặng hơn UDP vì TCP phải cần có 3 gói để thiết lập kết nối với bất kỳ dữ liệu người dùng nào. Trong khi đó, UDP không có thứ tự tin nhắn, không có kết nối theo dõi.
- Dạng dữ liệu: TCP gửi dữ liệu dưới dạng luồng byte còn UDP gửi đi datagram.
- UDP có Multicast: Là một chế độ hoạt động đa hướng được hỗ trợ. Theo đó một gói datagram có thể được tự động định tuyến mà không bị trùng lặp với số lượng lớn người đăng ký, TCP không có chức năng này.
Như vậy là ITQNU đã cùng các bạn đi tìm hiểu hết sức chi tiết về UDP là gì. Cũng như những kiến thức quan trọng liên quan đến UDP mà bạn cần biết.
Hy vọng rằng những thông tin này sẽ thực sự hữu ích với bạn đọc. Cảm ơn các bạn đã dành thời gian quan tâm theo dõi bài viết. Chúc các bạn có một ngày tốt lành!