بروتوكول التحكم في ازدحام حزم البيانات
في مجال شبكات الحاسوب ، يُعدّ بروتوكول التحكم في ازدحام البيانات ( DCCP ) بروتوكولًا لطبقة النقل موجهًا نحو الرسائل . يُنفّذ DCCP إنشاء اتصال موثوق، وإنهاء الاتصال، وإشعار الازدحام الصريح (ECN)، والتحكم في الازدحام ، والتفاوض على الميزات. وقد نشرت فرقة عمل هندسة الإنترنت (IETF) بروتوكول DCCP كمعيار مقترح (RFC 4340 ) في مارس 2006. ويُقدّم RFC 4336 مقدمةً عنه.
عملية
يوفر بروتوكول DCCP طريقةً للوصول إلى آليات التحكم في الازدحام دون الحاجة إلى تنفيذها على مستوى التطبيق . يسمح هذا البروتوكول بدلالات قائمة على التدفق كما في بروتوكول التحكم في الإرسال (TCP)، ولكنه لا يوفر تسليمًا موثوقًا به بالترتيب. التسليم المتسلسل ضمن تدفقات متعددة، كما في بروتوكول التحكم في نقل التدفق (SCTP)، غير متوفر في DCCP. يحتوي اتصال DCCP على حركة مرور إشعارات الاستلام بالإضافة إلى حركة مرور البيانات. تُعلم إشعارات الاستلام المُرسِل بوصول حزم البيانات، وما إذا كانت قد وُسمت بواسطة إشعار الازدحام الصريح (ECN). تُرسل إشعارات الاستلام بموثوقية تتناسب مع آلية التحكم في الازدحام المستخدمة، وقد تصل إلى موثوقية تامة.
يُتيح بروتوكول DCCP خيار استخدام أرقام تسلسلية طويلة جدًا (48 بت) تُطابق مُعرّف الحزمة، بدلًا من مُعرّف البايت كما في بروتوكول TCP. ويهدف طول الأرقام التسلسلية إلى الحماية من "بعض الهجمات العمياء، مثل حقن عمليات إعادة ضبط DCCP في الاتصال". [ 1 ]
التطبيقات
يُعدّ بروتوكول DCCP مفيدًا للتطبيقات التي تتطلب توقيتًا محددًا لتسليم البيانات. تشمل هذه التطبيقات بث الوسائط ، والألعاب متعددة اللاعبين عبر الإنترنت ، والاتصالات الهاتفية عبر الإنترنت . في مثل هذه التطبيقات، تصبح الرسائل القديمة عديمة الفائدة بسرعة، لذا يُفضّل استلام رسائل جديدة على إعادة إرسال الرسائل المفقودة. (حتى عام 2017)غالبًا ما تكتفي هذه التطبيقات إما ببروتوكول TCP أو تستخدم بروتوكول بيانات المستخدم (UDP) وتُطبّق آلياتها الخاصة للتحكم في الازدحام، أو لا تستخدم أي آلية للتحكم في الازدحام على الإطلاق. وبينما يُعدّ بروتوكول DCCP مفيدًا لهذه التطبيقات، فإنه يُمكن استخدامه أيضًا كآلية عامة للتحكم في الازدحام للتطبيقات القائمة على بروتوكول UDP، وذلك بإضافة آليات، عند الحاجة، لضمان تسليم البيانات بشكل موثوق أو مُرتب فوق بروتوكول UDP/DCCP. وفي هذا السياق، يسمح بروتوكول DCCP باستخدام آليات مختلفة للتحكم في الازدحام ، ولكنها عمومًا متوافقة مع بروتوكول TCP .
التطبيقات
تُطبّق أنظمة التشغيل التالية بروتوكول DCCP:
- FreeBSD ، الإصدار 5.1 [ 2 ] كحزمة تصحيح
- يدعم نظام لينكس منذ الإصدار 2.6.14، [ 3 ] ولكنه مصنف كبرنامج مهمل منذ الإصدار 6.4 بسبب نقص الصيانة، ومن المقرر إزالته في عام 2025. [ 4 ] وقد أسقط نظام لينكس 6.16 بروتوكول DCCP. [ 5 ]
مكتبة مساحة المستخدم:
- تمت أرشفة DCCP-TP في 23 يوليو 2008 في Wayback Machine. تم تحسين التنفيذ من أجل قابلية النقل، ولكن لم يطرأ عليه أي تغيير منذ يونيو 2008. [ 8 ]
- يهدف تطبيق GoDCCP هذا إلى توفير إطار عمل معياري وقابل للنقل ومتوافق مع NAT للاتصالات من نظير إلى نظير مع تحكم مرن في الازدحام، اعتمادًا على التطبيق.
بنية الحزمة
يأخذ رأس DCCP العام أشكالًا مختلفة اعتمادًا على قيمة X، وهي بتة أرقام التسلسل الموسعة. إذا كانت قيمة X تساوي واحدًا، فإن حقل رقم التسلسل يبلغ طوله 48 بتًا، ويشغل الرأس العام 16 بايتًا، كما يلي.
| إزاحة | ثمانية | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ثمانية | قليل | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 0 | 0 | منفذ المصدر | ميناء الوجهة | ||||||||||||||||||||||||||||||
| 4 | 32 | إزاحة البيانات | CCVal | CsCov | مجموع التحقق | ||||||||||||||||||||||||||||
| 8 | 64 | ريس | يكتب | X | محجوز | رقم التسلسل (البتات العليا) ↴ | |||||||||||||||||||||||||||
| 12 | 96 | ↪ رقم التسلسل | |||||||||||||||||||||||||||||||
إذا كانت قيمة X تساوي صفرًا، فسيتم إرسال 24 بت فقط من رقم التسلسل، ويكون طول الرأس العام 12 بايت.
| إزاحة | ثمانية | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ثمانية | قليل | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 0 | 0 | منفذ المصدر | ميناء الوجهة | ||||||||||||||||||||||||||||||
| 4 | 32 | إزاحة البيانات | CCVal | CsCov | مجموع التحقق | ||||||||||||||||||||||||||||
| 8 | 64 | ريس | يكتب | X | رقم التسلسل | ||||||||||||||||||||||||||||
- منفذ المصدر : 16 بت
- يحدد منفذ الإرسال.
- منفذ الوجهة : 16 بت
- يحدد منفذ الاستقبال.
- إزاحة البيانات : 8 بتات
- الإزاحة من بداية رأس DCCP الخاص بالحزمة إلى بداية منطقة بيانات التطبيق الخاصة بها، بكلمات 32 بت.
- قيمة CCVal : 4 بتات
- يستخدم بواسطة HC-Sender CCID.
- تغطية المجموع الاختباري (CsCov) : 4 بتات
- تحدد تغطية المجموع الاختباري أجزاء الحزمة التي يغطيها حقل المجموع الاختباري.
- مجموع التحقق : 16 بت
- مجموع التحقق من الإنترنت لرأس DCCP الخاص بالحزمة (بما في ذلك الخيارات)، ورأس زائف لطبقة الشبكة، واعتمادًا على تغطية مجموع التحقق، كل أو بعض أو لا شيء من بيانات التطبيق.
- محجوز (Res) : 3 بتات ؛ Res == 0
- يجب على المرسلين تعيين هذا الحقل إلى أصفار في الحزم التي تم إنشاؤها، ويجب على المستلمين تجاهل قيمته.
- النوع : 4 بت
- يحدد حقل النوع نوع الحزمة.
- أرقام التسلسل الموسعة (X) : بت واحد
- اضبط على واحد للإشارة إلى استخدام رأس عام موسع مع أرقام تسلسل وإقرار مكونة من 48 بت.
- رقم التسلسل : 48 أو 24 بت
- يحدد الحزمة بشكل فريد في تسلسل جميع الحزم التي أرسلها المصدر على هذا الاتصال.
التطورات الحالية
على غرار توسيع بروتوكول TCP بإضافة إمكانية المسارات المتعددة ( MPTCP )، يجري مناقشة توسيع بروتوكول DCCP لإضافة المسارات المتعددة في فريق عمل هندسة الإنترنت (IETF) [ 9 ] ، ويُشار إليه اختصارًا بـ MP-DCCP . وقد طُوّرت أولى التطبيقات، وجُرّبت، وعُرضت في إطار تعاون بين شركات الاتصالات والأوساط الأكاديمية [ 10 ] ، وهي متاحة كحل مفتوح المصدر.
انظر أيضاً
مراجع
- ↑ RFC 4340 القسم 7.6
- ↑ " [ dccp ] تطبيق FreeBSD" . www.ietf.org . تم الاطلاع عليه بتاريخ 18 أبريل 2018 .
- ↑ "لينكس يحصل على DCCP [ LWN.net ] " . lwn.net . تم الاطلاع عليه بتاريخ 18 أبريل 2018 .
- ↑ "dccp: طباعة إشعار الإهمال" . kernel.org .
- ↑ "من المتوقع أن يقوم نظام لينكس 6.16 بإزالة بروتوكول التحكم في ازدحام حزم البيانات (DCCP) من الشبكات" . www.phoronix.com . تم الاطلاع عليه بتاريخ 15 أبريل 2025 .
- ↑ "من المتوقع أن يقوم نظام لينكس 6.16 بإزالة بروتوكول التحكم في ازدحام حزم البيانات (DCCP) من الشبكات" . www.phoronix.com . تم الاطلاع عليه بتاريخ 29 مايو 2025 .
- ↑ "دمج الفرع 'net-retire-dccp-socket'"" . git.kernel.org .
- ↑ "سجل التغييرات الخاص بموقع ويكي dccp-tp، تم الاطلاع عليه بتاريخ 13 يونيو 2011" . مؤرشف من الأصل بتاريخ 4 أكتوبر 2011. تم الاطلاع عليه بتاريخ 13 يونيو 2011 .
- ↑ أميند، ماركوس؛ برونستروم، آنا؛ كاسلر، أنياس؛ راكوسيفيتش، فيسلين؛ جونسون، ستيفن (9 نوفمبر 2021). "امتدادات DCCP للتشغيل متعدد المسارات مع عناوين متعددة" .
- ↑ "امتداد متعدد المسارات لبروتوكول DCCP" .
روابط خارجية
مواصفات البروتوكول
- RFC 4340 — بروتوكول التحكم في ازدحام حزم البيانات
- RFC 5595 — رموز خدمة بروتوكول التحكم في ازدحام حزم البيانات (DCCP)
- RFC 5596 — تقنية الفتح المتزامن لبروتوكول DCCP لتسهيل اجتياز NAT/Middlebox
- RFC 5762 — بروتوكول النقل في الوقت الحقيقي (RTP) وبروتوكول التحكم في البيانات (DCCP)
- RFC 5238 — أمان طبقة نقل البيانات (DTLS) عبر DCCP
- RFC 5634 — دليل البدء السريع لـ DCCP
- RFC 6773 — بروتوكول التحكم في ازدحام حزم البيانات، تغليف UDP لاجتياز NAT
معرّفات التحكم في الازدحام
- RFC 4341 — ملف تعريف التحكم في الازدحام لبروتوكول DCCP، المعرّف 2: التحكم في الازدحام الشبيه ببروتوكول TCP
- RFC 4342 — ملف تعريف التحكم في الازدحام DCCP رقم 3: التحكم في معدل النقل الصديق لبروتوكول TCP (TFRC)
- RFC 5622 — ملف تعريف التحكم في الازدحام DCCP رقم 4: التحكم في معدل النقل المناسب لبروتوكول TCP للحزم الصغيرة (TFRC-SP)
معلومات أخرى
- RFC 4336 — بيان المشكلة لبروتوكول التحكم في ازدحام حزم البيانات (DCCP)
- صفحة DCCP من أحد مؤلفي DCCP
- دعم بروتوكول DCCP في نظام لينكس
- بروتوكول التحكم في ازدحام حزم البيانات (DCCP)
- بروتوكولات طبقة النقل
