الخلاصة
- كشف RFC 3353 حلقة بدء في مسار LSP متعدد البث المحفز بالحركة: احتاج الفرع الجديد إلى الحزمة كإشارة، بينما لم تستطع الحزمة بلوغه في L2 قبل وجود الفرع.
- أتاح التمرير المختلط بين L2 وL3 أو مبادرة الموجّه الصاعد كسر الحلقة، من دون دمج رصد الحزمة وحالة التوجيه وتبادل التسمية وبرمجة النسخ ووصول المستقبلين في حقيقة واحدة.
لنفترض أن تدفقاً متعدد البث يصل بالفعل إلى مستقبل واحد. ينضم مستقبل ثان خلف موجّه لاحق آخر. لا تريد الشبكة حجز تسميات لمجموعات صامتة، فتقرر إنشاء الفرع عندما تظهر بيانات فعلية. يرى الموجّه اللاحق الحزمة الأولى، ثم يطلق إنشاء المسار.
غير أن هذه الحزمة لا تستطيع الوصول إليه عبر L2 قبل وجود المسار ذاته. ينتظر المشغّل الدليل في الجهة التي لا يصلها الدليل. سمّى RFC 3353 ذلك مشكلة الدجاجة والبيضة. ولم تكن العبارة نكتة منطقية، بل وصفاً لغياب خطوة البدء: من يلاحظ أولاً، ومن يملك صلاحية تحويل الملاحظة إلى ربط تسمية؟
صدر RFC 3353 في أغسطس 2002 بوصفه وثيقة معلوماتية، لا معياراً لبروتوكول واحد. نظّم مساحة الخيارات عند إسقاط أشجار البث المتعدد في IP على مسارات MPLS. في البث الأحادي يتجه القرار عادة إلى قفزة تالية واحدة. أما البث المتعدد فيخرج من مدخل إلى واجهات عدة، وتتغير شجرته بانضمام المستقبلين ومغادرتهم.
حالة الشجرة المشتركة هي (*,G)، وحالة شجرة المصدر هي (S,G). تقلل الشجرة المشتركة عدد التسميات، لكنها تحتاج سلوكاً متعدد النقاط إلى متعدد النقاط ومشكلات دمج. تعزل شجرة المصدر كل مصدر بصورة أوضح، لكنها تزيد الحالة مع كل مصدر ومجموعة. كما يغير ضيق فضاء التسميات وقدرة طبقة الربط على الدمج ومعالجة TTL نتيجة المفاضلة. لذلك لم يختر RFC بروتوكولاً فائزاً للجميع.
جعلت بروتوكولات flood-and-prune الحالة شديدة التغير. تنشئ البيانات حالة، وتزيل العقد الفروع غير المرغوبة، ثم تمحو مؤقتات الخمول الإدخالات. إذا عكس L2 كل تغير ارتفعت كلفة الإشارة واستهلاك التسميات. وإذا بُنيت المسارات مسبقاً شغلت حركة غير موجودة موارد حقيقية. وإذا انتظر النظام البيانات صارت الحزمة الأولى جزءاً من آلية التحكم.
فرّقت الوثيقة بين ثلاثة محفزات. المحفز القائم على الطلب يراقب رسائل Join أو Prune أو الحجز. المحفز القائم على الطوبولوجيا ينسخ شجرة جدول التوجيه إلى L2 حتى من دون حركة. المحفز القائم على الحركة لا يبني إلا بعد وصول البيانات. يضع كل خيار الكلفة في موضع مختلف: ربط البروتوكولات، أو الحالة الخاملة، أو زمن البداية.
كان الحل الأول نقل المبادرة إلى الموجّه الصاعد. فهو يرى الحزمة بالفعل، ويمكنه طلب تسمية من العقدة اللاحقة أو إعلان تسمية مخصصة من الأعلى، وفق نمط التوزيع. تصبح الملاحظة والفعل في الجانب نفسه من الفجوة. لهذا ربط جدول RFC نوع المحفز باتجاه توزيع التسميات، ولم يعاملهما كإعدادين مستقلين.
والحل الثاني هو التمرير المختلط بين L2 وL3. يستطيع الموجّه تبديل الفروع القائمة في L2، وفي الوقت نفسه إرسال الفرع الجديد مؤقتاً عبر توجيه IP في L3. تصل الحزمة الأولى بالطريق المؤقت، فتخلق الدليل والحالة، ثم يبدأ تبادل التسمية وبرمجة العتاد. بعد التحقق ينتقل الفرع إلى MPLS. لم يكن المزج نقصاً في التصميم، بل سطح انتقال قابل للرجوع.
يحتاج هذا السطح إلى منع النسخ المكرر. يجب على محرك L3 ألا يرسل إلى الواجهات التي يخدمها L2 بالفعل. وإذا لم يدعم الموجّه المزج، تعذر على العقدة اللاحقة أن تبدأ من الحركة؛ كان على الصاعد أن يطلب التسمية. قد تكون كل قيمة إعداد صحيحة منفردة، لكن جمعها من دون علاقة الاعتماد يصنع حالة لا تبدأ أبداً.
وتظل قوة كل دليل محدودة. رؤية حزمة عند الصاعد تثبت وصولها إلى نقطة واحدة في وقت واحد. فشل البحث في cache يثبت غياب إدخال محلي. سطر في جدول multicast يثبت حالة تحكم محلية. رسالة التسمية تثبت مرحلة إشارة. إدخال العتاد يثبت برمجة جهاز واحد. لا يثبت أي منها بمفرده أن جميع الأوراق استلمت البيانات.
أظهر مثال Multicast Forwarding Cache في أنظمة Unix مشكلة لاحقة. تسبب الحزمة الأولى cache miss، فيزود daemon التوجيهَ بالمعلومة. وبعد أن ينقل L2 التدفق، لا يرى L3 الحزم التالية. فإذا اعتمد مؤقت انتهاء إدخال L3 على عداداته وحدها، فقد يحذف تدفقاً لا يزال حياً.
اقترح RFC تحديث عدادات L3 بقياسات L2. كان ذلك عملياً، لكنه حوّل العداد إلى إسقاط عابر للطبقات. لم يعد الرقم يعني فقط ما مرره IP، بل صار يحمل نشاطاً أبلغت عنه طبقة أخرى. يجب حفظ مصدر القياس ونافذته وزمن إعادة الضبط وربطه بالفرع الصحيح، وإلا نما الرقم من دون معنى قابل للتدقيق.
أنتج PIM-SM مرحلة انتقال أخرى. يمكن أن تتعايش حالتا (*,G) و(S,G) عند الانتقال من الشجرة المشتركة إلى شجرة المصدر. تصل حزم المصدر مؤقتاً من مدخلين. يستطيع L3 منع النسخة الخاطئة وفق الحالة الخاصة بالمصدر. أما L2 الصرف فقد يقبل التكرار المؤقت أو يضيف تسميات لكل مصدر أو يعيد القرار إلى L3. التسمية تنفذ بسرعة، لكنها لا تقرر معنى النسخة الصحيحة.
يرسم التغليف حداً أوضح. قد يرسل المصدر البيانات داخل نفق إلى جذر الشجرة المشتركة، ثم يفك الجذر التغليف. العمليتان من وظائف L3، لذلك لا يعبر LSP واحد في L2 النقطة كأن تفسير الحزمة لم يحدث. يمكن لـ MPLS حمل النفق أو الفروع الأخرى، لكن لا يمكن حذف حد الطبقة من الواقع.
كما أن إرفاق ربط التسمية برسائل multicast له ثمن. يزامن الطريق والتسمية ويقلل الرسائل المنفصلة، لكنه يفرض امتداداً على كل بروتوكول، ويمنع بعض التركيبات، وقد يستبدل موثوقية LDP فوق TCP بحالة رخوة دورية. وصول الرسالة المتزامنة لا يثبت تنفيذ النسخ في مستوى البيانات.
في وسط متعدد الوصول، تحتاج عقد لاحقة عدة إلى التسمية نفسها. يمكنها تذكر كل التخصيصات أو تقسيم النطاقات أو انتخاب موزع. يبسط التخصيص الصاعد وجود عقدة واحدة أعلى الشجرة، لكن تغير المسار قد يستبدلها. يحافظ التخصيص الهابط على التسمية عبر ذلك التغير، لكنه يحتاج إلى حل تعارض مقترحات عدة. ترك RFC الاختيار للسياق.
جعلت الوثائق اللاحقة الشجرة أكثر تحديداً. وضع RFC 4461 متطلبات الإضافة والحذف والفشل والتوسع لمسارات P2MP TE. وعرّف RFC 4875 عبر RSVP-TE مساراً يتكون من sub-LSP من المصدر إلى كل ورقة، تجمعها عقد التفرع. وأكد فصلاً حاسماً: قد تتفرع حالة الإشارة من دون أن ينسخ مستوى البيانات في النقطة نفسها. شجرة التحكم ليست إيصال تسليم.
وصحح RFC 5332 توقعاً من البيئة المبكرة. لم يُنشر الاستخدام المنفصل الأصلي لـ codepoint البث الأحادي والمتعدد في RFC 3032، فأعيد تعريف الثاني للتسميات المخصصة من الأعلى على الوسائط المشتركة. ثم أبقى RFC 6513 في شبكات VPN متعددة البث الاختيار بين أشجار التوزيع والنسخ عند المدخل عبر أنفاق أحادية. يمكن نقل كلفة النسخ، لا إلغاؤها.
القيمة التاريخية لـ RFC 3353 هي إبقاء لحظة البداية مرئية. قبل الفرع الموسوم كانت هناك حزمة، أو قناة L3 مؤقتة، أو مبادرة من الصاعد. وبعد الإشارة بقيت البرمجة والنسخ والتحقق. هذه السلسلة، لا رمز أخضر واحد، هي ما فعلته الشبكة بالفعل.
المصادر
- RFC 3353: بث IP المتعدد في بيئة MPLS
- سجل RFC Editor للوثيقة RFC 3353
- سجل تصحيحات RFC 3353
- سجل RFC 3353 في IETF Datatracker
- RFC 3031: معمارية MPLS
- RFC 3032: ترميز مكدس تسميات MPLS
- RFC 3036: مواصفة LDP
- RFC 2236: الإصدار الثاني من IGMP
- RFC 2362: النمط المتناثر من PIM
- RFC 4461: متطلبات إشارة مسارات P2MP TE
- RFC 4875: امتدادات RSVP-TE لمسارات P2MP
- RFC 5332: تغليف MPLS متعدد البث
- RFC 6513: البث المتعدد في شبكات MPLS/BGP IP VPN
- Lu Heng: Running-Code Primacy
- Lu Heng: Minimum Initial Specification
- Lu Heng: Reality Layers
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
