User Datagram Protocol
- Số cổng: 0 đến 65535
- Tầng giao thức: transport
- Hình thức tấn công: UDP flood.
UDP (User Datagram Protocol) là một giao thức giúp thiết lập các kết nối mạng giữa các ứng dụng với độ trễ thấp. Giao thức này hoạt động theo quy tắc best effort, tức là làm mọi thứ tốt nhất có thể. Gói tin của UDP còn được gọi là datagram.
Properties
Ưu điểm
- Không cần thiết lập kết nối giữa client và server để có thể truyền dữ liệu. Khi cần tốc độ truyền tải dữ liệu nhanh và chấp nhận rủi ro mất mát dữ liệu, ta có thể sử dụng UDP thay thế cho TCP.
- Không có acknowledgement (hay ACK, là các gói tin phản hồi cho biết kết nối đã được thiết lập) như TCP do không cần thiết lập kết nối.
- UDP là giao thức đơn giản, không cần xem xét trạng thái kết nối của bên nhận và bên gửi.
- Có kích thước header nhỏ (8 byte) vì không cần nhiều thông tin liên quan đến thứ tự.
Nhược điểm
- UDP là một giao thức truyền thông không tin cậy (unreliable transport), nó không bảo đảm tính toàn vẹn của dữ liệu hoặc thứ tự của các gói tin. Mỗi gói tin sẽ được xử lý độc lập so với các gói tin khác.
- Không cung cấp flow control, congestion control và kiểm soát throughput (băng thông tối thiểu) như TCP.
- Có kiểm tra lỗi nhưng không gửi thông báo lỗi.
- Không kiểm soát được lỗi trong quá trình truyền thông.
Solutions
Tồn tại các giải pháp để khắc phục những thiếu sót của UDP:
- Để khắc phục việc sai khác thứ tự gói tin, tầng ứng dụng có thể thực hiện “đánh số thứ tự” cho các thông tin trong message.
- Có thể dụng các dịch vụ mã hóa thông tin, chẳng hạn như TLS hay SSL.
Nói một cách tổng quát, ta sẽ xây dựng các tính năng bù đắp cho sự thiếu hụt của UDP ở tầng ứng dụng thay vì tầng vận chuyển. Ví dụ, giao thức QUIC dựa trên UDP được triển khai nhằm thay thế TCP khi sử dụng cho HTTP/3.0.
Applications
Các ứng dụng của UDP:
UDP Header
Header của gói tin sử dụng giao thức UDP có định dạng như sau: