UDP và Giao thức truyền tải không kết nối
Giao thức Datagram Người dùng (UDP) là giao thức truyền tải không kết nối nhẹ của Internet, chỉ bổ sung thêm tính năng ghép kênh tiến trình và một tổng kiểm tra tùy chọn vào dịch vụ nỗ lực tối đa của IP, do đó các ứng dụng đạt được chi phí và độ trễ tối thiểu với cái giá là không có đảm bảo về độ tin cậy.
Definition
Giao thức Datagram Người dùng (UDP) là một giao thức lớp vận chuyển không kết nối cung cấp dịch vụ gửi tin nhắn theo kiểu nỗ lực tối đa giữa các tiến trình, bổ sung tính năng ghép kênh dựa trên cổng và một tổng kiểm tra tùy chọn vào lớp mạng nhưng không cung cấp độ tin cậy, sắp xếp, kiểm soát luồng hoặc kiểm soát tắc nghẽn.
Scope
Chủ đề này bao gồm giao thức truyền tải không kết nối: định dạng phân đoạn UDP, việc ghép kênh và tách kênh thông qua số cổng, tổng kiểm tra tùy chọn của nó, và lý do một ứng dụng nên chọn nó thay vì TCP — không có độ trễ thiết lập kết nối, không có điều tiết kiểm soát tắc nghẽn, kiểm soát tốt hơn về nội dung và thời điểm gửi, và chi phí trên mỗi gói nhỏ. Nó khảo sát các ứng dụng điển hình dựa trên UDP và các trách nhiệm (như độ tin cậy hoặc kiểm soát tốc độ) được chuyển sang ứng dụng. Nó không bao gồm cơ chế độ tin cậy và tắc nghẽn của TCP.
Core questions
- UDP bổ sung những dịch vụ tối thiểu nào trên IP?
- UDP ghép kênh và tách kênh dữ liệu như thế nào bằng cách sử dụng số cổng?
- Tại sao một ứng dụng lại ưu tiên UDP hơn TCP?
- Những trách nhiệm nào, chẳng hạn như độ tin cậy và kiểm soát tốc độ, được chuyển sang ứng dụng khi sử dụng UDP?
- Những loại ứng dụng nào thường sử dụng UDP?
Key concepts
- dịch vụ không kết nối
- hướng datagram (tin nhắn)
- định dạng phân đoạn UDP
- ghép kênh/tách kênh dựa trên cổng
- tổng kiểm tra tùy chọn
- chi phí và độ trễ thấp
- không kiểm soát tắc nghẽn
- độ tin cậy ở lớp ứng dụng
Key theories
- Dịch vụ không kết nối tối thiểu
- UDP cung cấp dịch vụ datagram nỗ lực tối đa của IP cho các ứng dụng gần như không thay đổi, chỉ bổ sung tính năng ghép kênh theo cổng và một tổng kiểm tra tùy chọn, do đó nó không có thiết lập, không có trạng thái và không có phục hồi tự động — đánh đổi sự đảm bảo để lấy sự đơn giản và độ trễ thấp.
- Truyền tải do ứng dụng kiểm soát
- Bằng cách tránh kiểm soát tắc nghẽn và độ tin cậy của TCP, UDP cho phép ứng dụng kiểm soát trực tiếp thời gian và nội dung cần truyền lại, phù hợp với các giao thức thời gian thực và tùy chỉnh, nhưng buộc ứng dụng phải tự xử lý mất mát và tránh làm quá tải mạng.
Clinical relevance
UDP là nền tảng cho các dịch vụ mà độ trễ thấp hoặc kiểm soát tốt quan trọng hơn việc đảm bảo phân phối: tra cứu DNS, thoại và video thời gian thực, trò chơi trực tuyến và quản lý mạng. Các giao thức truyền tải mới hơn như QUIC được xây dựng trên UDP chính xác để kiểm soát việc truyền tải trong khi bỏ qua các ràng buộc của TCP, làm cho giao thức truyền tải không kết nối trở nên trung tâm đối với mạng có độ trễ thấp hiện đại.
History
UDP được quy định trong RFC 768 (1980) như một giao thức truyền tải tối thiểu cho các ứng dụng không cần cơ chế của TCP, khi TCP và IP được tách thành các giao thức riêng biệt. Nó về cơ bản vẫn không thay đổi, và vai trò của nó đã tăng lên khi các ứng dụng nhạy cảm với độ trễ phát triển và khi các nhà phát triển xây dựng các tính năng truyền tải mới, bao gồm cả giao thức QUIC, trên nền tảng của nó.
Key figures
- Jon Postel
- James F. Kurose
- Keith W. Ross
Related topics
Seminal works
- rfc768
- kurose2021
Frequently asked questions
- Nếu UDP không đáng tin cậy, tại sao lại sử dụng nó?
- Đối với nhiều ứng dụng, việc phân phối nhanh quan trọng hơn việc phân phối hoàn hảo. Thoại và video thời gian thực có thể chấp nhận mất mát không thường xuyên nhưng không chấp nhận độ trễ, DNS hưởng lợi từ một truy vấn trao đổi nhanh chóng, và một số ứng dụng tự triển khai độ tin cậy của riêng mình. Việc UDP không có thiết lập và điều tiết tắc nghẽn mang lại cho chúng độ trễ thấp hơn và khả năng kiểm soát tốt hơn.
- UDP có làm gì khác ngoài IP không?
- Có, nhưng rất ít. UDP bổ sung số cổng để dữ liệu đến đúng tiến trình ứng dụng trên một máy chủ (ghép kênh và tách kênh), và một tổng kiểm tra tùy chọn để phát hiện lỗi. Ngoài ra, nó giữ nguyên việc phân phối không kết nối, nỗ lực tối đa của IP.