الخلاصة

  • استخدمت الشظايا المنقولة عبر عدة وصلات أعضاء تسلسلاً يخص الحزمة كلها. حدّد B بداية الرزمة وE نهايتها، وتقدّم الرقم مع كل شظية من دون أن يُصفّر عند رزمة جديدة أو عضو جديد.
  • لم يفرض العقد المشترك شظايا متساوية ولا مجدولاً واحداً. أمكن إبقاء الرزمة الصغيرة كاملة، بينما حدّدت MRRU أقصى ما وعد المستقبل بإعادة بنائه.
  • حمى FCS في كل وصلة شظيتها، لا الرزمة المركبة. ساعد Endpoint Discriminator على الإلحاق بالحزمة من دون أن يكون اعتماداً، وعالجت BAP/BACP والامتدادات متعددة الفئات إدارة السعة والتأخير منفصلتين.

زيادة الخط لم تضاعف حالة الشبكة

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

أنشأ Multilink كائناً وسطاً هو الحزمة. ظل لكل عضو framing وLCP ومصادقة خاصته، بينما أمكن التفاوض على بروتوكولات طبقة الشبكة مرة واحدة للحزمة. يستطيع عضو أن ينضم أو يغادر من دون أن تُمحى المحادثة الموجودة فوقه بالضرورة.

قدّم RFC 1717 الفكرة سنة 1994، وكانت قنوات ISDN المتعددة دافعاً بارزاً. حلّ RFC 1990 محله سنة 1996 وشدّد قواعد التفاوض والتسلسل. وصفه بأنه جمع عرض نطاق صحيح جزئياً فقط؛ الابتكار الأهم كان تحديد أقل حالة مشتركة تبقى مفهومة مع تغيّر التكوين المادي.

التقسيم وقع قبل إنشاء إطار العضو

بدأ المرسل برزمة بروتوكول شبكة وأضاف إليها حقل Protocol العادي في PPP. لم يكن قد أضاف Address أو Control أو Flags أو FCS التابع لعضو معين. هذه الرزمة المغلفة منطقياً هي التي أمكن تقسيمها.

انتقلت كل قطعة كبروتوكول PPP ذي القيمة 0x003d، يسبقها ترويس Multilink. لذلك بدأت بيانات الشظية الأولى بحقل Protocol الأصلي. دلّ B على الأولى وE على الأخيرة، ويمكن أن يكونا معاً واحداً عندما تحمل شظية واحدة الرزمة كلها.

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

هنا تظهر دقة المعيار: ثبّت لغة التشغيل البيني، ولم يثبت خوارزمية أداء واحدة إلى الأبد.

العداد كان ملكاً للحزمة

حمل الترويس المعتاد رقم تسلسل من 24 بت. أمكن التفاوض على صيغة قصيرة من 12 بت، لكن الصيغة وجب أن تكون واحدة في الحزمة. استهلكت كل شظية الرقم التالي.

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

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

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

سلامة الشظايا لا تعني وجود الرزمة

أطّر كل عضو شظية MP كإطار PPP عادي وطبّق FCS الخاص به. أثبت FCS الصالح فحص تلك الشظية على تلك الوصلة. لم يضف Multilink قيمة FCS جديدة فوق الرزمة الكاملة بعد إعادة بنائها.

قد تنجح عشرة أجزاء في فحوصها ولا يصل الجزء الحادي عشر أبداً. لا تزال الرزمة ناقصة. لذلك تختلف عبارة «لا أخطاء FCS على الأعضاء» عن «سلّمت الحزمة رزمًا كاملة».

لم يفرض MP كاشفاً واحداً لفشل الوصلة. يستطيع LQM أو LCP Echo توفير إشارة، لكنهما آليتان منفصلتان. إذا لزم تسليم موثوق على عضو، وجب التفاوض على PPP Reliable Transmission مستقلاً. يرتب MP ويعيد التجميع؛ لا يعيد الإرسال ولا يؤكد نتيجة التطبيق.

يجب أن يفصل سجل الحادث حالة كل عضو، وأخطاء framing وFCS، وآخر رقم شوهد، والحد الأدنى للحزمة، والفجوات، وإسقاطات إعادة البناء، والرزم الكاملة المسلمة، ونتيجة التطبيق. مؤشر أخضر واحد يمحو موضع الخلل.

كانت MRRU وعداً بسعة إعادة البناء

عبّرت Maximum Reconstructed Receive Unit عن أكبر حقل معلومات معاد بناؤه يقبله مستقبل الحزمة. لم تكن MRU للوصلة المادية. احتاج العضو إلى حمل شظيته فقط، أما الرزمة المنطقية فيمكن أن تكون أكبر ضمن MRRU المتفاوض عليها.

كان خيار LCP الخاص بـ MRRU من النوع 17، وكان أيضاً إعلاناً صريحاً عن القدرة على استقبال Multilink أو إلحاق الخط بحزمة. طلب RFC 1990 دعماً لا يقل عن 1500 ثمانية وألغى القيمة الافتراضية الملتبسة. وكان Short Sequence Header Format من النوع 18.

ساعد Endpoint Discriminator، النوع 19، في تقرير أن خطوطاً متعددة تصل إلى الند نفسه وينبغي أن تنضم إلى الحزمة نفسها. لم يعلن وحده قدرة MP ولم يثبت هوية. بعض فئاته محلية بلا ضمان عالمي للتفرد. أما Magic-Number Block فكان فريداً على الأرجح فقط، وأصبح غير موصى به كمفتاح قاعدة بيانات أو مصادقة حين تتوافر مصادقة حقيقية.

يمكن تزوير discriminator. لذلك كانت حدود الأمان واضحة: الانضمام الآمن يتطلب مصادقة PPP. قيمة المطابقة لا تمنح صلاحية.

قرار الاتصال بخط آخر بقي بروتوكولاً منفصلاً

سمح MP الأساسي بتغير الأعضاء، لكنه لم يقرر متى تُجرى مكالمة أخرى ولا أي ند يتحكم في توزيع السعة. أسند RFC 2125 ذلك إلى BACP وBAP. اختار BACP الطرف المسيطر، وحمل BAP طلبات إضافة الخط أو إسقاطه وحالة محاولة الاتصال.

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

التأخير أيضاً حصل على امتداد مستقل. أوضح RFC 2686 أن إرسال 1500 بايت بسرعة 28.8 kbit/s قد يشغل الوصلة قرابة 400 مللي ثانية ويدفع زمن المحادثة ذهاباً وإياباً نحو ثانية. سمحت الفئات المتعددة بإقحام الشظايا ذات الأولوية. حل التسلسل الأساسي إعادة البناء، ولم يدّع حل سياسة الأولوية كلها.

كانت الحزمة اتفاقاً أدنى

اشترك الندان في قدرة MP وMRRU وصيغة ترويس واحدة وحدود B/E وفضاء تسلسل. بقي حجم الشظية واختيار العضو وكشف الفشل وتوقيت الاتصال والأولوية محلياً أو اختيارياً.

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

تبقى الأدلة محدودة كذلك. تثبت 0x003d تمثيل MP عند نقطة الرصد، وتصف B/E والأرقام ادعاء موقع الشظية، وتثبت MRRU حداً متفاوضاً عليه، ويوفر discriminator قرينة تجميع. أما التسليم والهوية وزيادة السعة والانتشار الحالي فتحتاج captures وعدادات كل عضو واكتمال إعادة البناء ونتيجة الطبقة العليا.

المصادر