الخلاصة
- يتيح ECMP للموجّه الاختيار بين قفزات تالية متساوية الكلفة؛ لكنه لا يثبت تساوي MTU أو زمن الوصول أو ترتيب الحزم أو وظيفة المسار في الشجرة متعددة الإرسال.
- قارنت RFC 2991 طرائق تُبقي حزم التدفق الواحد على مسار واحد وتحدّ من عدد التدفقات التي يعاد إسنادها عند تغيّر مجموعة القفزات التالية.
يعرض traceroute المسار الذي سلكته مجسّاته، لا كل الخيارات التي كانت متاحة للموجّه ولا كيفية توزيع التدفقات الأخرى. وهنا يسهل إساءة فهم كلمة «متساوٍ»: إنها تصف تصنيفاً لكلفة المسار في التوجيه، لا تكافؤاً في خصائص المسارات الفعلية.
نشر Dave Thaler وChristian Hopps وثيقة RFC 2991 في نوفمبر 2000 بوصفها وثيقة معلوماتية عن التوجيه متعدد المسارات في الإرسال الأحادي ومتعدد الإرسال. كان OSPF وIS-IS يسمحان صراحةً بتعدد المسارات متساوية الكلفة (ECMP)، واستخدمته بعض تطبيقات الموجّهات أيضاً مع RIP وبروتوكولات أخرى. وعندما تتوافر قفزات تالية صالحة متعددة لوجهة واحدة، يبقى على جهاز التوجيه اختيار واحدة لكل حزمة.
يبدو التناوب بين المخارج وسيلة بسيطة لتوزيع الحمل، لكنه قد يرسل حزم المحادثة الواحدة عبر مسارات تختلف في MTU وزمن الوصول. عندها يتغير MTU المسار من حزمة إلى أخرى، فتفقد عملية اكتشافه شرط الاستقرار. وقد تصل الحزم اللاحقة قبل حزمة متأخرة، فيفسر TCP ذلك على أنه فقد ويبدأ إعادة الإرسال السريع، مع ما يسببه من استهلاك إضافي للنطاق الترددي والحاجة إلى التخزين المؤقت. كما قد ترى أدوات ping وtraceroute فروعاً مختلفة وتقدم صورة مضللة. أما في الإرسال متعدد الوجهات، فالمسألة بنيوية: البروتوكولات التي تناولتها الوثيقة تبني شجرة واحدة نحو المصدر أو النواة أو نقطة الالتقاء، وتعتمد قفزة تالية واحدة باتجاه الجذر لتجنب الحلقات والتكرار.
لذا لا يكون اختيار المسار لكل حزمة مجرد خيار أداء.
تستخدم RFC 2991 كلمة «تدفق» للدلالة على مستوى الدقة الذي يحتفظ عنده الموجّه بالحالة، إن احتفظ بها أصلاً. ولا يعني ذلك بالضرورة التدفق الدقيق ذي العناصر الخمسة في RFC 2474. فقد تكون الوجهة وحدها هي المفتاح، أو قد يُستخدم ثلاثي المصدر والوجهة ومعرّف البروتوكول. وربما لا تتضمن الحزم المجزأة غير الأولى معلومات طبقة النقل؛ كما أن إدخال المنافذ في مفتاح الاختيار قد يمنع إعادة استخدام معلومات مثل MTU لمسار اتصالات لاحقة بين الطرفين نفسيهما. بقي تعريف التدفق بيد التنفيذ، لكنه لم يكن قراراً بلا أثر.
إن إبقاء حزم التدفق الواحد على مسار واحد يخفف تغير المسار أثناء المحادثة، لكنه يطرح سؤالاً عند إضافة قفزة تالية أو حذفها: كم تدفقاً نشطاً ينبغي نقله؟ يجعل ECMP عدداً أكبر من تغييرات المسارات مؤثراً مباشرة في حركة المرور، وقد يزيد ذلك نطاق الترتيب المعكوس أو الفقد عند تذبذب المسار. لذلك جمعت الوثيقة بين مطلبين: تقليل التدفقات التي تتأثر بالتغيير، والإبقاء على حساب اختيار المسار خفيفاً.
طريقة modulo-N سريعة: يُحسب تجزؤ للتدفق ثم يؤخذ باقي قسمته على عدد القفزات التالية. لكن تغيير العدد N ينقل، بحسب RFC 2991، نسبة (N-1)/N من التدفقات إلى مسارات أخرى. أما التجزؤ بالعتبة فيقسّم فضاء نتائج التجزؤ إلى مناطق؛ ولا تتأثر إلا التعيينات قرب حدود هذه المناطق، مع أن الوثيقة تقدّر انتقال ربع التدفقات إلى نصفها عند إضافة عضو أو حذفه. وتحلل RFC 2992 مقدار هذا الاضطراب. وتحسب طريقة أعلى وزن عشوائي (HRW) نتيجة لكل زوج من التدفق والقفزة التالية المرشحة، ثم تختار النتيجة الأعلى. لا يؤثر تغيير عضو واحد إلا في نحو 1/N من التدفقات، لكنه يتطلب حساباً يعادل تقريباً N أضعاف modulo-N.
هذه النسب خصائص لنماذج خوارزمية، لا قياسات لموجّهات منشورة في شبكات الإنتاج. وهي تحصي التدفقات التي تغير مسارها، لا البايتات أو العملاء أو أثر التغيير في الخدمة. فقد تحمل قلة من التدفقات الطويلة حجماً أكبر كثيراً من آلاف التدفقات القصيرة.
يغيّر الاحتفاظ بحالة لكل تدفق توقيت دفع كلفة الاختيار. فإذا كان الموجّه يحتفظ بالحالة أصلاً، يمكنه اختيار القفزة عند إنشاء السجل بدلاً من الحساب لكل حزمة. توصي الوثيقة بـHRW للإرسال الأحادي ذي الحالة وللإرسال متعدد الوجهات، حيث تتوافر حالة المصدر/المجموعة. أما الإرسال الأحادي الذي لا يحتفظ بحالة للتدفق فيحسب الاختيار عند وصول الحزمة؛ وإذا كانت قدرة المعالج أهم من ثبات المسار، توصي الوثيقة بالتجزؤ بالعتبة. إنها توصية مشروطة ببنية الموجّه، لا ترتيباً عاماً للخوارزميات.
تذكر RFC 6438، المنشورة عام 2011، أن توزيع الحركة بين المسارات، والحفاظ على ترتيب حزم التدفق، وإبقاء الروابط مستخدمة قد تكون أهدافاً متعارضة. وهذا شاهد على استمرار المفاضلة، لا دليل على أن كل موجّه اعتمد خوارزميات RFC 2991 ذاتها.
الدرس التاريخي هو الفصل بين الطبقات. تصنيف كلفة التوجيه يحدد المرشحين؛ والاختيار المحلي يسند التدفقات؛ والمسارات الفعلية تحدد MTU وزمن الوصول؛ ثم تتفاعل طبقة النقل مع ما يصلها. للثبات كلفة حساب أو توزيع غير متساوٍ، ولإعادة الإسناد كلفة اضطراب التدفقات القائمة. ولا تحسم عبارة «متساوي الكلفة» أي الكلفتين ينبغي للشبكة أن تتحمل.
المصادر
- Lu Heng، “Minimum Initial Specification, Localized Future Decision, Voluntary Adoption: An Internet Coordination System”
- Lu Heng، “On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile”
- Lu Heng، “Running Code Primary: The Patch Needed to Preserve the Internet’s Original Design”
- صفحة معلومات RFC 2991 لدى RFC Editor
- RFC 2328، OSPF Version 2
- RFC 2362، Protocol Independent Multicast—Sparse Mode
- RFC 2474، Definition of the Differentiated Services Field
- RFC 2581، TCP Congestion Control
- RFC 2991، Multipath Issues in Unicast and Multicast Next-Hop Selection
- RFC 2992، Analysis of an Equal-Cost Multi-Path Algorithm
- RFC 6438، Using the IPv6 Flow Label for ECMP and Link Aggregation
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
