الخلاصة

  • يرتب OSPFv2 نسخ إعلان LSA الواحد في فضاء خطي من أعداد 32 بت ذات إشارة، من 0x80000001 إلى 0x7fffffff؛ ولو عاد مباشرة إلى البداية لهزمت نسخة قديمة عند الحد الأقصى النسخة الابتدائية الجديدة.
  • لهذا ينشر المنشئ أولاً النسخة القصوى بعمر MaxAge كسحب صريح، وينتظر الإقرارات وإمكان الحذف الآمن، ثم ينشئ القيمة الابتدائية بوصفها أول نسخة في حقبة مختلفة.

بدأ الخط الزمني على هيئة مصاصة

رسم أول توصيف منشور لـ OSPF فضاء التسلسل بطريقة غير مألوفة. في RFC 1131، الصادرة في أكتوبر/تشرين الأول 1989، كان هناك ساق خطي ينتهي في دائرة، أي شكل «مصاصة». تساعد الساق موجهاً عاد إلى العمل على تجاوز بقايا تجسد سابق، فيما تسمح الدائرة لمن بقي يعمل أن يواصل إصدار نسخ جديدة.

تخلى OSPF في نسخته الثانية عن الدائرة. عدّت RFC 1247، المنشورة في يوليو/تموز 1991، فضاء المصاصة من مشكلات النسخة الأولى التي صُححت. أصبحت أرقام التسلسل تقارن كأعداد صحيحة 32 بت ذات إشارة. حُجزت 0x80000000، وصارت 0x80000001 أصغر قيمة صالحة وأقدمها، و0x7fffffff أكبرها وأحدثها.

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

الالتفاف الحسابي كان سيمنح الماضي سلطة

تتحدد هوية LSA بواسطة LS type وLink State ID وAdvertising Router. رقم التسلسل لا يؤرخ قاعدة LSDB كلها، بل يرتب نسخ هذه الهوية وحدها.

لو قفز المنشئ من 0x7fffffff إلى 0x80000001، لرفض الجار الذي يحتفظ بالنسخة القصوى الإعلان الجديد بصورة صحيحة وفق القاعدة الخطية. سيبدو المحتوى القديم أحدث، وسيعمل الإغراق الجيد على حماية الماضي من التصحيح المقصود.

لا يقدم الصمت دليلاً على اختفاء النسخة. قد يحتفظ بها جار في قاعدته، أو يضعها في قائمة إعادة الإرسال، أو يعيد تقديمها أثناء مزامنة قواعد البيانات. يزيد LS age مع الوقت، لكنه ليس ساعة مشتركة تثبت أن كل ذاكرة موزعة قد نسيت.

لذلك لم يختر OSPFv2 مقارنة دائرية معقدة. وضع فاصلاً صريحاً بين حقبتين.

حملت النسخة القصوى أمر سحبها

حين تستدعي الحاجة زيادة إعلان موجود عند MaxSequenceNumber، تطلب RFC 2328 من المنشئ ضبط LS age للنسخة الحالية على MaxAge وإغراقها من جديد. يسمى دفع الإعلان إلى نهاية عمره قبل موعده الطبيعي premature aging.

تتبع الصلاحية هوية الكاتب. يستطيع الموجه أن يشيّخ مبكراً LSA أنشأها بنفسه، ولا يملك محو إعلان Advertising Router آخر. تبقى الهوية والتسلسل الأقصى وchecksum المحتوى كما هي؛ الذي يتغير هو حقل العمر. ولا يدخل العمر في checksum لأنه يتبدل أثناء الانتقال والتخزين.

لا يعني MaxAge هنا مجرد سجل قديم. إذا تساوى التسلسل وchecksum في نسختين، تعد النسخة ذات MaxAge أحدث من توأمها الحي. يستطيع السحب أن يزيح النسخة الإيجابية بدلاً من انتظار أن تبلغ كل نسخة ساعة كاملة من تلقاء نفسها.

لكن الحكم محدود. إنه يسحب مثيل LSA من حالة OSPF، ولا يثبت انقطاع وصلة مادية أو توقف موجه أو غياب كل طريق إلى وجهة.

احتاج النسيان إلى إقرارات

لا يحذف الموجه LSA ذات MaxAge فور استلامها. يحتفظ بها ما دامت في قائمة إعادة إرسال حالة الوصلة لدى أي جار. ويحتفظ بها أيضاً إذا بقي جار في Exchange أو Loading، لأن مزامنة لم تنته قد تعيد حالة الحقبة القديمة.

عند نفاد التسلسل، ينتظر المنشئ أن يقر جميع الجيران المتجاورين بالسحب. ولا ينشئ الهوية نفسها عند InitialSequenceNumber إلا بعد أن تصبح النسخة القصوى قابلة للحذف الآمن.

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

عدّلت RFC 1247 أيضاً معالجة Database Description حتى لا تختفي LSA بينما لا يزال جار يتعلم ملخصاً يشير إلى نسختها السابقة. لم يَعِد OSPF بلحظة حذف واحدة لكل المجال، بل بنى أدلة كافية عند كل حد مهم لكي لا تمر حقبتان عبر بعضهما من دون ضبط.

أعاد الجار إلى الموجه ذاكرته بعد إعادة التشغيل

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

تجبر RFC 2328 المنشئ على احترام هذه الذاكرة. إذا كان لا يزال مسؤولاً عن الإعلان، يصدر نسخة أعلى برقم واحد من النسخة المستلمة. وإذا لم يعد ينشئها، يضع الهوية عند MaxAge وينشر السحب. وإذا كانت النسخة العائدة عند الحد الأقصى، ينفذ التنظيف قبل العودة إلى البداية.

يسمى هذا السلوك كثيراً LSA fight-back، لكن الاسم لا يثبت هجوماً. قد يكون جار أمين قد تذكر ما نسيه صاحبه بعد إعادة التشغيل. تمنح صفة Advertising Router سلطة الإصدار والسحب؛ أما الدليل المحفوظ في المجال فيحدد الرقم الذي يجب على الكاتب تجاوزه.

تقاسمت ثلاثة حقول قرار الحداثة

يأتي رقم التسلسل أولاً. عند التعادل يقارن OSPF قيم checksum، وتفوز القيمة الأكبر حين تقرأ بلا إشارة. وإذا تساويا أيضاً، يستطيع MaxAge وفروق عمر محددة أن يحسما؛ أما الأعمار المتقاربة فتدل على المثيل نفسه.

يحمي كل حقل حداً مختلفاً. يدل التسلسل على إعادة إنشاء مقصودة. يكشف checksum محتويين مختلفين حملا الرقم نفسه. ويسمح العمر للسحب بأن يتغلب على توأمه الحي، من دون اعتبار تأخر الانتقال العادي سلسلة لا تنتهي من النسخ.

لا يمثل أي من ذلك تاريخاً عالمياً. مقارنة رقمين لهويتين مختلفتين تضيف إليهما سلطة لم يحددها البروتوكول.

خفّض DoNotAge التجديد ولم يلغ السحب

يجدد OSPFv2 العادي إعلاناته الذاتية كل 30 دقيقة قبل بلوغ MaxAge بعد ساعة. حتى الاستقرار يستهلك أرقاماً وحركة إغراق. قدمت RFC 1793 سلوك DoNotAge للدوائر عند الطلب، ثم وسعت RFC 4136 خفض التجديد والإغراق في الطوبولوجيات المستقرة.

يوفر DoNotAge التجديد الدوري عندما لا يتغير شيء. ولا يلغي إعادة الإنشاء بعد تغير المحتوى أو سحب MaxAge. تخفيف الحركة لا ينقل سلطة المنشئ ولا يحول الإعلان إلى حق دائم.

حافظت RFC 5340 على أساس الإغراق ومقارنة الحداثة في OSPFv3 من أجل IPv6، رغم تغير الصيغ والنطاقات. تنشأ المشكلة من ذاكرة موزعة، لا من طول عنوان IP.

ليست كل أرقام OSPF عداداً واحداً

تملك رزم Database Description تسلسلاً خاصاً أثناء مزامنة الجيران. وقد تستخدم رزم OSPF المحمية تشفيرياً تسلسلاً لمنع replay. تفصل RFC 6863 حالة أمن الرزم عن الرقم الموجود داخل كل LSA.

يسأل تسلسل LSA: أي نسخة من ادعاء التوجيه يجب أن تفوز؟ ويسأل تسلسل المصادقة: هل سبق رؤية هذه الرزمة المحمية في سياق المفتاح؟ يختلف المالك والعمر ومشكلة النفاد. جمعهما في إنذار واحد يخفي أي آلة حالات أخفقت.

كان الاختفاء جزءاً من البروتوكول

لم يزد OSPF حجم العداد ولم يراهن على النسيان التلقائي. حملت النسخة القصوى سحبها بنفسها. وأظهرت الإقرارات وإعادات الإرسال وحالة المزامنة متى توقفت الحقبة القديمة عن الدوران. عندها فقط استعادت أصغر قيمة قانونية معنى «الأحدث».

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

المصادر وحدود الأدلة

تثبت هذه المعايير السلوك وتطوره، ولا تثبت معدل النفاد اليوم أو إعدادات مصنع أو سبب حادث بعينه. يسحب MaxAge إعلان LSA داخل OSPF ولا يثبت انقطاعاً عالمياً. كما أن تصحيح إعلان ذاتي بعد إعادة التشغيل لا يثبت وحده حقناً عدائياً.