الخلاصة

  • يحدد أعلى بت في نوع خيار IPv4 هل ينسخ الخيار إلى القطعة الأولى وحدها أم إلى كل القطع.
  • التجزئة اشتقاق للرؤوس وليست استنساخاً؛ فقد تختلف مجموعة الخيارات وIHL والطول الكلي والإزاحة وMF والمجموع الاختباري اختلافاً صحيحاً.
  • القيمة واحد تنقل مسؤولية حمل الخيار، ولا تثبت المصادقة أو التسليم أو ثبات البايتات بعد عبور مسارات مختلفة. تبقى القطعة ذات الإزاحة صفر مرجع الحالة غير المنسوخة.

أول ما يصل ليس أول ما يعرّفه البروتوكول

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

يشرح RFC 815 أن المستقبل قد لا يعرف طول الرأس النهائي قبل وصول القطعة الأولى بالمعنى البنيوي. تستطيع القطع اللاحقة أن تحذف الخيارات التي لا ينبغي نسخها، فيصبح IHL فيها أقصر بصورة مشروعة.

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

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

قرار النسخ كان داخل نوع الخيار

يقسم RFC 791 ثمانية نوع الخيار إلى بت واحد للنسخ، وبتين للفئة، وخمسة بتات للرقم. القيمة صفر تعني نسخ الخيار إلى القطعة الأولى فقط. القيمة واحد تعني نسخه إلى كل القطع.

يحمل Loose Source and Record Route النوع 131، ولذلك يكون بت Copy فيه واحداً. يحمل Record Route النوع 7 وبت Copy صفراً. فإذا جمع الرأس الأصلي الخيارين ثم جُزئ الداتاغرام، احتفظت قطعة الإزاحة صفر بكليهما، بينما حملت القطع اللاحقة خيار النوع 131 وحده.

تملك Strict Source and Record Route النوع 137 وStream Identifier النوع 136 القيمة واحد أيضاً. أما Timestamp، نوع 68، فقيمته صفر. هذه أمثلة على توزيع الحيازة، لا على ترتيب للخيارات بحسب أهميتها.

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

المقص لم يكن كافياً

سبق RFC 760 مواصفة 1981 في التمييز بين خيارات تنسخ إلى كل قطعة وأخرى تظل في الأولى. ووصف بناء القطعة التالية عن طريق نسخ انتقائي لرأس الإنترنت.

عند إزالة خيار Copy 0 من قطعة لاحقة، يتغير طول الرأس، ومن ثم يجب تعديل IHL. يتغير Total Length بحسب بيانات القطعة. تحدد مواضع البيانات Fragment Offset، ويبين More Fragments وجود بقية، ثم يعاد حساب Header Checksum بعد تغيير الرأس.

لا تكون رؤوس القطع صوراً متماثلة. إنها نتائج مشتقة من أصل واحد بواسطة قواعد معروفة. يجوز أن يختلف IHL مع بقاء هوية إعادة التجميع صحيحة.

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

الصفر لا يعني عديم القيمة، والواحد لا يعني آمناً

وجود Record Route وTimestamp في القطعة صفر فقط لا يمنحهما منزلة أدنى. يحتفظ ذلك الجزء بمجموعة الخيارات الأصلية كاملة. السؤال الذي يجيب عنه Copy هو أين يلزم تكرار الحالة بعد الانقسام.

وبالمثل لا يحول Copy 1 الخيار إلى ضمان. لا يقدم أولوية أو موثوقية أو تشفيراً أو مصادقة أو إيصال تسليم. كان Basic Security Option التاريخي من النوع 130 وCopy 1، لكن سياسته الأمنية لم تنشأ من بت النسخ.

يعرض سجل IANA لمعاملات IPv4 أعمدة Copy وClass وNumber وValue وName وReference. يثبت السجل تخصيص النوع والمرجع، ولا يثبت انتشاره في حركة اليوم أو سلامة تنفيذه في منتج أو نجاح معالجته على مسار.

التسجيل والإرسال والمرور والمعالجة والوصول وإعادة التجميع درجات مختلفة. الدليل الرسمي يغلق الأولى فقط.

النسخ لم يجمد الحقول القابلة للكتابة

قد يبدأ كل جزء بنسخة واحدة من خيار source-and-record-route، ثم تسلك الأجزاء مسارات مختلفة. يشير RFC 815 إلى أن الموجّهات على كل مسار قد تضيف سجلاً مختلفاً إلى الخيار.

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

عند إعادة التجميع، يستخدم الإجراء الموصوف مسار العودة المسجل في القطعة الأولى ويتجاهل النسخ البديلة في القطع الأخرى. لا تُدمج المسارات ولا يجري التصويت بينها. تخصص المواصفة سلطة لنسخة ذات منشأ محدد.

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

الفحص الكامل احتاج IHL المخول

يعيد RFC 6274 استخدام هذه الحدود في فحص أمني. للتأكد من أن الحزمة المعاد تجميعها تتسع فعلاً لرأس النقل المعلن، يلزم IHL الخاص بقطعة الإزاحة صفر. وقد يكون IHL في قطعة لاحقة أقصر بسبب حذف خيارات Copy 0.

إذا لم تصل القطعة الصفرية بعد، يستطيع التنفيذ تطبيق اختبار أولي. لكنه يجب أن يعيد تطبيق الاختبار الكامل عندما تصل المعلومة المخولة. النتيجة المؤقتة قابلة للتراجع، وهذا هو سبب صلاحيتها.

الخطر هو أن يربط نظام سريع السماح أو المنع بأول IHL يراه ثم يتخلص من السياق. لقد حوّل عندئذ ترتيب الشبكة العابر إلى قرار دائم لم تنص عليه القاعدة.

نهاية قائمة الخيارات جزء من الاشتقاق

لا تتصرف End of Option List وNo Operation كخيارات أعمال عادية. فهما تغلقان المنطقة أو تساعدان في محاذاتها. عندما يحذف المجزئ خيارات غير منسوخة من رأس لاحق، قد يحتاج إلى إعادة بناء النهاية والحشو حتى يبقى الطول على حد 32 بت.

من الخطأ البحث عن كل بايت يبدأ بصفر وحذفه. يجب تفسير طول كل خيار وحدوده، وعدم قطع بنية متعددة البايتات، ثم تعديل IHL والمجموع الاختباري.

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

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

هشاشة التجزئة لا تعني فشلها دائماً

ينص RFC 8900 على أن كل خيارات IPv4 تظهر في القطعة الأولى، وأن خيارات Copy 1 وحدها تظهر في القطع اللاحقة. ويحلل خسارة الأجزاء وسلوك الصناديق الوسطية وصعوبة الفلاتر التي لا ترى رأس النقل وكلفة إعادة التجميع.

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

يقدم RFC 8200 مقابلة مفيدة: حصر IPv6 التجزئة في المصدر، وفصل ما يلزم لكل جزء بطريقة أخرى. لكنه لا يلغي وظيفة بت IPv4 بأثر رجعي. كان على IPv4 حل المشكلة في نظام يستطيع فيه موجّه وسيط أيضاً أن يجزئ.

من يقسم لا يملك كل المعنى

قد يكون مجزئ IPv4 المصدر أو موجّهاً في الطريق، بحسب MTU والمسار وDon’t Fragment. اختيار الموجّه في المثال يبرز سلطة وسيط، لكنه ليس الحالة الوحيدة.

صلاحيات المجزئ ضيقة: يقسم البيانات، ويضع حقول إعادة التجميع، ويختار الخيارات وفق Copy، ويغلق الرأس، ويعيد حساب المجموع. لا يملك أن يعلن خيار Copy 0 بلا قيمة، أو أن يصادق على حقيقة خيار Copy 1، أو أن يضمن وصوله.

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

التحقيق الجيد يحفظ الاختلاف المشروع

ينبغي ربط المصدر والوجهة والبروتوكول وIdentification وOffset وMF وIHL وأنواع الخيارات وقيم Copy وترتيب الوصول. التنبيه المفيد يصف مخالفة محددة: ظهور Copy 0 في قطعة غير صفرية، غياب Copy 1، خيار مبتور، محاذاة مكسورة، أو اختبار أولي لم يُعد.

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

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

المصادر وحدود الدليل

تعتمد المقالة على RFC 760 وRFC 791 وRFC 815 وRFC 1122 وRFC 1812 وRFC 6274 وRFC 8900 وRFC 8200 وسجل IANA. تثبت هذه المصادر المواصفات ونتائج تشغيلية محدودة، ولا تثبت الانتشار الحالي أو توافق منتج أو معدل هجوم أو سلوك كل مسار فعلي.