UDP (User Datagram Protocol) هو البروتوكول الثاني في طبقة النقل إلى جانب TCP، ويقوم على البساطة: لا جلسة، ولا مصافحة، ولا إقرار بالاستلام، ولا إعادة إرسال، ولا ضمان للترتيب. يأخذ التطبيق البيانات ويغلفها UDP في Datagram ويرسلها، وما يضيع في الطريق يضيع.
ترويسة UDP
ترويسة UDP ثابتة الطول وتبلغ 8 بايت فقط، وتتكون من أربعة حقول كل منها 16 بت:
- Source Port: منفذ المصدر.
- Destination Port: منفذ الوجهة.
- Length: طول الترويسة والبيانات.
- Checksum: للتحقق من سلامة البيانات، وهو اختياري في IPv4 وإلزامي في IPv6.
لماذا نستخدم بروتوكولاً لا يضمن الوصول؟
في المكالمات الصوتية والفيديو المباشر، الحزمة المتأخرة بلا قيمة؛ فإعادة إرسال كلمة قيلت قبل نصف ثانية أسوأ من فقدها. لذلك تستخدم هذه التطبيقات RTP فوق UDP، وتتحمل فقداً بسيطاً مقابل تأخير منخفض. كما أن الاستعلامات القصيرة مثل DNS لا تستحق كلفة إنشاء جلسة، والتطبيقات التي تحتاج موثوقية يمكنها بناء آلياتها الخاصة فوق UDP.
بروتوكولات وخدمات تعمل على UDP
| الخدمة | المنفذ |
|---|---|
| DNS | 53 |
| DHCP | 67 / 68 |
| TFTP | 69 |
| NTP | 123 |
| SNMP / Traps | 161 / 162 |
| Syslog | 514 |
| RIP | 520 |
| IPsec NAT-T | 4500 |
ومن أهم التطورات الحديثة بروتوكول QUIC الذي يقوم عليه HTTP/3، فهو يعمل فوق UDP منفذ 443 ويبني الموثوقية والتشفير بنفسه، متجاوزاً بعض قيود TCP مثل تأخير المصافحة.
الفرق بين UDP و TCP
TCP موثوق ومرتب لكنه أثقل وأبطأ في البدء، وUDP خفيف وسريع لكنه لا يضمن شيئاً. والاختيار يحدده التطبيق لا المهندس غالباً. ومن نقاط الانتباه الأمنية أن غياب المصافحة يجعل تزوير عنوان المصدر في UDP سهلاً، ولذلك تُستغل خدمات مثل DNS وNTP المفتوحة في هجمات التضخيم Amplification ضمن هجمات DDoS؛ والحل إغلاق الخدمات غير الضرورية وعدم ترك خوادم DNS أو NTP مفتوحة للإنترنت.
لماذا يهمك؟
عند كتابة قواعد الجدار الناري أو الـ ACL يجب تحديد البروتوكول بدقة؛ فالسماح بالمنفذ 53 على TCP لا يسمح باستعلامات DNS العادية على UDP. وكثير من أعطال الصوت عبر IP سببها حجب منافذ RTP أو انتهاء مهلة جلسات UDP في الجدار الناري.



