UDP-User Datagram Protocol cung cấp dịch vụ phi nối kết và khơng yêu cầu máy nhận thơng báo rằng nĩ đã sẵn sàng cho việc nhận các thơng điệp. Nĩ cĩ thể mang dữ liệu ngay trong gĩi đầu tiên. Các ứng dụng sử dụng UDP thường quan tâm nhiều về tốc độ hơn là độ chính xác của dữ liệu.
Port và Header
0 15 16 31
16-bit Source Port Number 16-bit Destination Port Number 16-bit UDP Length 16-bit UDP Checksum
Data (if any)
Hình V-2. Định dạng khung UDP
Một cách tiếp cận thơng thường nhất(UDP) để trao đổi thơng tin giữa các tiến trình ứng dụng là tiến trình xác định gián tiếp(khơng phải do OS gán) một ví trí ảo giữa hai tiến trình trên hai máy khác nhau để trao đổi thơng tin, nĩ thường được gọi là port. Ý tưởng là máy gửi gửi thơng tin qua một port và máy nhận nhận thơng tin qua một port.
Để thực hiện chức năng phân kênh, mỗi header trong gĩi thơng điệp của UDP chứa một địng danh (port) của máy gửi và máy nhận. Trong hình minh hoạt định dạng khung UDP ở trên, mỗi port cĩ giá trị 16 bit.
Vấn đề tiếp theo là như thế nào một tiến trình biết port mà nĩ muốn gửi 1 thơng điệp. Một tiến trình client khởi tạo trao đổi thơng tin với một tiến trình server, một khi liên lạc được với server, server cĩ thể biết port của client và cĩ thề đáp lại. Một số server nhận thơng điệp ở một cổng cố định. Trong Internet, DNS(Domain Name Server)nhận thơng điệp port 53 ở trên mỗi host.
Application Application Application Port Hàng đợi Phân kênh các gói UDP Các gói đến
Hình V-3. Hàng đợi thơng điệp UDP
Minh họa trong hình trên, lúc một thơng điệp được truyền đến, thơng điệp được ở cuối hàng đợi. Nên khi hàng đợi đầy thơng điệp sẽ bị loại bỏ. Khơng cĩ kỹ thuật điều khiển luồn được sử dụng tại đây. Lúc một tiến trình ứng dụng muốn nhận một thơng điệp nĩ lấy từ hàng đợi. Nếu hàng đợi rỗng tiến trình sẽ đợi cho đến khi thơng điệp đến hàng đợi.
Mặc dù UDP khơng thực thi điều khiển luồn, đảm bảo phân phối, trật tự gĩi, nhưng nĩ cũng thực hiện kiểm tra lỗi khi truyền bằng cách sử dụng thuật tốn checksum.