Giao thức User Data Protocol là một giao thức “Connectionless-không liên kết” được sử dụng thay thế cho TCP ở trên IP theo yêu cầu ứng dụng. Khác với TCP, UDP không có các chức năng thiết lập và giải phóng liên kết, tương tự như IP. Dữ liệu có thể bị mất, bị lỗi hay bị truyền luẩn quẩn trên mạng mà không hề có thông báo lỗi cho người gửi. Tóm lại là nó cung cấp các dịch vụ vận chuyển không tin cậy như trong TCP.
UDP có chức năng gán và quản lý các số hiệu cổng (Port Number) để định danh duy nhất cho các ứng dụng chạy trên một trạm của mạng. Do ít chức năng phức tạp nên UDP có xu thế hoạt động nhanh hơn so với TCP. Nó thường được dùng cho các dịch vụ không đòi hỏi độ tin cậy cao trong vận chuyển. Nó cũng không cung cấp cơ chế báo nhận (Acknowledgment), không sắp xếp tuần tự các đơn vị dữ liệu
18
(Datagram) đến và có thể dẫn đến tình trạng mất hoặc trùng dữ liệu mà không hề có thông báo lỗi cho người gửi.
UDP được dùng để chuyển thoại trong VoIP. TCP không được dùng bởi vì cơ chế điều khiển luồng và truyền lại gói thoại không cần thiết. UDP được sử dụng để truyền các dòng Audio, nó liên tục truyền dù là 5% hay 50% số gói bị mất.
Hình 1.6: Một gói UDP
Trong đó:
- Port nguồn (16bit): cho biết địa chỉ cổng của trạm nguồn. Nếu nó không được chỉ ra thì cổng này được thiết lập bằng không.
- Port đích (16bit): cho biết địa chỉ của trạm đích.
- Độ dài (16bit): cho biết kích thước của một UDP Datagram (kể cả phần Header). Kích thước tối thiếu của một UDP Datagram là 8byte (Chỉ có phần Header, không có phần dữ liệu).
- Checksum (16bit): là mã kiểm soát lỗi theo phương pháp CRC.