الخلاصة

  • أوصت RFC 1490 بتقسيم الحزم التي تتجاوز الحد الأقصى لحجم الإطار في شبكة Frame Relay، لكنها لم تجعل التجزئة إلزامية، وأبقت إعادة التجميع عند أجهزة DTE على حدود الشبكة.
  • اشترطت الخوارزمية ترتيب الأجزاء داخل الدارة الافتراضية. يؤدي فقد جزء أو تلفه إلى إسقاط الرسالة كلها، وتصبح إعادة الإرسال مسؤولية البروتوكول الأعلى.
  • قالت RFC 2427 عام 1998 إن التغليف العام نُفذ على نطاق واسع، لكن خوارزمية التجزئة لم يكن لها تنفيذات متوافقة. أزالتها الوثيقة وأحالت إلى FRF.12.

تقدم RFC 2427 حكماً أدق من وصف RFC 1490 بالنجاح أو الإخفاق. تقول الوثيقة، التي صدرت عام 1998، إن تغليف تعدد البروتوكولات في RFC 1490 نُفذ واستخدم على نطاق واسع. وفي الملحق نفسه تسجل أن خوارزمية التجزئة لم يكن لها تنفيذات متوافقة بعضها مع بعض. حذفتها المواصفة الجديدة وأشارت إلى آلية FRF.12. لا تقول RFC 2427 إنه لم توجد أي برمجية قط؛ بل تقول إن التنفيذات لم تتبادل العمل بنجاح. هذه هي نقطة التاريخ: قد ينتشر شكل التغليف العام بينما لا يتحول إجراء اختياري داخله إلى اتفاق مشترك بين الأجهزة.

كان الدافع في 1993 متعلقاً بالحجم. شرحت RFC 1490، الصادرة في يوليو، كيفية نقل الحزم الموجهة والمجسّرة عبر شبكة Frame Relay. وذكرت أن الحد الأقصى للإطار في بعض الشبكات قد يبلغ 262 ثمانية بت فقط، بينما قد تكون الحزمة بعد تغليفها أكبر من ذلك. لذلك وصفت التجزئة وإعادة التجميع، لكنها أوصت بهما ولم تفرضهما. كان بالإمكان استخدام التغليف متعدد البروتوكولات من دون أن تدعم كل نهاية هذه الوظيفة الاختيارية.

حدود الإجراء مهمة. قصرت RFC 1490 التجزئة على طرفي شبكة Frame Relay، أي أجهزة DTE المتصلة بحدودها. يغلف المرسل الحزمة أولاً، ثم يقسمها إلى إطارات تناسب الحد الأقصى للشبكة. يعيد جهاز DTE المستقبل بناء الحزمة ويضعها في مسار المعالجة نفسه الذي كانت ستتبعه لو وصلت كاملة. لم يكن البروتوكول IP يتلقى سلسلة من مخططات IP صغيرة؛ بل عالج الطرفان قيد حجم إطار خاصاً بخدمة Frame Relay.

أما RFC 791 فتصف تجزئة أخرى في طبقة IP: يحمل مخطط IP المعرّف والإزاحة وأعلام التجزئة، ثم يعيد وجهة IP تركيب المخطط الأصلي. تضيف RFC 1490 غلافاً منفصلاً حول الحزمة المغلفة مسبقاً، وتطلب إعادة تركيبها عند حدود Frame Relay قبل المعالجة المعتادة للبروتوكول المحمول. التشابه في تقسيم البيانات لا يعني تطابق الطبقة أو المستقبِل أو المسؤولية.

احتوى تنسيق أجزاء RFC 1490 على معلومات حالة. حمل كل جزء معرّف التغليف ورقم تسلسل بطول 16 بتاً، وإزاحة، وبتاً يحدد الجزء الأخير. يتقدم رقم التسلسل مع كل رسالة جديدة يجري تقسيمها، ويبدأ من قيمة عشوائية عند التهيئة. تقاس الإزاحة بوحدات من 32 ثمانية بت، ويبدأ الجزء الأول عند الصفر. يستخدم المستقبل هذه الحقول لتمييز أجزاء الرسائل، ووضعها في مواضعها، ومعرفة متى اكتمل البناء.

وضع النص قيداً صارماً على المرور داخل الدارة نفسها: يجب إرسال الأجزاء بالترتيب، ولا يجوز قطعها بمعلومات أخرى موجهة إلى الدارة ذاتها. كان على الطرف أن يستطيع إعادة تجميع 2 كيلوبايت على الأقل، وأوصت الوثيقة بدعم 8 كيلوبايت. إذا فُقد جزء أو تلف، يُسقط الطرف الرسالة كلها. لا تعيد آلية Frame Relay إرسال الجزء المفرد؛ يتولى البروتوكول الأعلى إعادة الإرسال.

لم تضف RFC 1490 مؤقتاً لإعادة التجميع. فقد استندت إلى أن خدمة Frame Relay مطالبة بتسليم الإطارات بالترتيب، ولذلك لا يحتاج المستقبل إلى مؤقت يقرر به أن سلسلة غير مكتملة أصبحت قديمة. هذا افتراض تصميمي مكتوب، لا قياس لأداء كل شركة اتصالات ولا دليل على أن جميع الأجهزة نفذته بنجاح. لا تزال الأجزاء غير المكتملة تستهلك ذاكرة، وفقد قطعة واحدة يعني إسقاط الرسالة كاملة؛ أما التعافي فيعتمد على البروتوكول الأعلى.

بعد خمس سنوات، فصلت RFC 2427 نتيجة كل آلية عن الأخرى. قالت إن التغليف العام في RFC 1490 انتشر في التنفيذ، وإن جهات صناعية ومعيارية أخذت به. لكنها سجلت غياب التنفيذات المتوافقة لخوارزمية التجزئة، وذكرت مقترحات تفيد بأن الآلية لا تكفي لبعض تطبيقات Frame Relay. أزالتها وأحالت إلى FRF.12. لم تسمِّ الوثيقة مورّداً أو اختباراً أو عيباً برمجياً محدداً. لا تسمح الأدلة بتحديد سبب أدق، لكنها تكفي لإثبات أن هذا الجزء لم يصبح عقداً مشتركاً بين التنفيذات.

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

لا تكفي عبارة «يدعم RFC 1490» لتحديد ما يستطيع جهازان فعله معاً. أي وظيفة يدعمانها؟ ما الحد الأقصى للإطار على كل دارة؟ هل يتفق الطرفان على التنسيق والترتيب؟ ومن يعيد المحاولة إذا غاب جزء؟ تجيب RFC 2427 على مستوى الآلية: كان للتغليف نطاق تنفيذ واسع، أما التجزئة فلم يكن لها سجل تشغيل بيني. يشير الانتقال إلى FRF.12 إلى تغيير في المواصفة، لكنه لا يثبت أن كل شبكة لاحقة اعتمدته.