الخلاصة

  • بسبب تغيّر عضوية المجموعات وتعدّد منشئي الحالة وتعارض أهداف التحسين، ترك RFC 2102 توليد مسار البث المتعدد وآلية التوجيه خارج نواة Nimrod.
  • انتقل شرط التشغيل البيني إلى بنية الحالة المثبّتة: يمكن لشجرة مشتركة أو شجرة متجذّرة عند المصدر أن تتعايشا إذا فُسرت علاقات التوجيه بصورة موحّدة.
  • وجود فرع يثبت علاقة نسخ محلية فقط، ولا يثبت العضوية أو الإذن أو اكتمال التغطية أو أقصر مسار أو الحجز أو التسليم.

في منتصف الشجرة، لا يرى الموجّه النظرية التي رسمتها. يرى flow-id وأباً وقائمة أبناء وهدفاً. تلك اللحظة التنفيذية هي التي جعلها RFC 2102 سطح الاتفاق بين تطبيقات قد تختلف في كل ما سبقها.

لماذا بقي الخيار مفتوحاً

يتطلب كل من التوجيه الأحادي والمتعدد مرحلتين: توليد المسار وتمرير الحزم. حدّد Nimrod أنماط تمرير للأحادي وترك حساب المسار للوكيل. أما في البث المتعدد فترك المرحلتين معاً خارج النواة.

فالعضوية تتبدل، ويمكن أن ينشئ الحالة المرسل أو المستقبل أو الموجّهات الوسيطة. كما أن خوارزميات الأشجار لا تحسن الهدف نفسه: انخفاض الكلفة الكلية قد يرفع التأخير، وأقصر طريق لكل مستقبل قد يستهلك موارد وحالة أكثر.

بنى DVMRP أشجاراً من المصدر عبر reverse path forwarding. وخفّض CBT الحالة بشجرة مشتركة حول core، مع احتمال إطالة المسار. وجمع PIM بين الشجرة المشتركة وشجرة المصدر. وحسب MOSPF الأشجار من حالة الوصلات والعضوية. أما IDPR فسمح للمصدر باختيار policy route وتثبيت حالة النسخ في العقد الوسيطة.

الطبقة المشتركة هي العلاقة القابلة للتنفيذ

لم يُلغ RFC 2102 الحاجة إلى الاتفاق. قال إن شجرة التسليم تحددها معلومات التوجيه في الموجّهات، لا الآلية التي أنشأتها. فإذا اتفقت البنية والدلالة أمكن لتطبيقات متعددة أن تتعايش.

في مثال Nimpim، يضيف Join العقدة السابقة إلى child list لتدفق موجود. وللتدفق الجديد تُثبّت قيم parent وchild وtarget. يحذف Prune ابناً، ولا تُحذف حالة التدفق إلا بعد فراغ القائمة. ثم يحمل packet الـflow-id ويكررها forwarding agent وفق هذه الحالة.

لذلك يستطيع مستقبل أن يصل فرعاً جديداً بشجرة أنشأها المرسل من دون إعادة الحساب عند المصدر. ويمكن الانتقال من شجرة مشتركة إلى شجرة مصدر. ويسمح النص بتعدد الطرائق والتبديل بينها ما دامت الحالة قابلة للتفسير الموحد.

ما لا تقوله خانة الحالة

قائمة الأبناء ليست سجل عضوية. يضع RFC 1112 اهتمام IGMP على الشبكة المتصلة مباشرة، مع مؤقتات وتجميع خاصين به. حالة التوجيه إسقاط لاحق لذلك الدليل.

وليست إذناً. قد تفرض قيود خاصة بالوجهة عدة أشجار لمجموعة واحدة كي تخدم مجموعات وجهات منفصلة. لا يكشف الفرع الظاهر من غاب ولا إن كانت السياسة ما زالت نافذة.

ولا يثبت المثالية. قد تدور شجرة CBT عبر core، ويتوقف أقصر مسار عكسي في PIM على تماثل المقاييس. كما أن الحجز والجودة ادعاءان مستقلان؛ وجود الفرع لا يثبت قبول الموارد أو التأخير أو jitter.

وأخيراً، لا يثبت أن المصدر أرسل، أو أن بقية الحالة بقيت، أو أن آخر وصلة نسخت الحزمة، أو أن التطبيق استهلكها. ولم يناقش RFC 2102 الأمن، فلا يمكن للسطر أن يصادق عضواً أو تفويضاً.

القيمة التاريخية هي اختيار الحد

كان RFC 1992 قد قبل تعدد الخرائط وأنماط التمرير، وفصل RFC 1753 بين user state وservice state. ومدّ RFC 2102 هذه الفلسفة إلى البث المتعدد: لا يوضع في الطبقة المشتركة إلا المعنى اللازم للتنفيذ المتبادل.

تقدم Minimum Initial Specification للوه هنغ لغة لاحقة لهذا الحد الأدنى، بينما تمنع Running-Code Primacy الخلط بين النشر والتبني. التشابه تحليلي لا سببي. فـRFC 2102 وثيقة Informational ولا تثبت نشر Nimrod.

الدرس الباقي واضح: قد تختلف طريقة الحساب، لكن لا يجوز أن يلتبس معنى التنفيذ. الفرع يثبت فرعاً، وكل ادعاء أكبر يحتاج دليله الخاص.

المصادر