الخلاصة

  • تعرّف RFC 791 Total Length بأنه طول مخطط IPv4 الكامل، بما في ذلك الترويسة والبيانات.
  • توضح RFC 894 أن حشو Ethernet للوصول إلى 46 ثمانيّة لا ينتمي إلى حزمة IP ولا يدخل في Total Length.

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

يحمل IPv4 حدّه الداخلي في ترويسه. فـ Total Length حقل من 16 بت يحسب الترويسة والبيانات معًا. الإطار مسؤول عن النقل، أما المخطط فيعلن أين ينتهي.

IHL و Total Length

يقيس IHL طول الترويسة بوحدات كلمات من 32 بت، وأدنى قيمة له خمس، أي 20 ثمانيّة. ويقيس Total Length طول المخطط كله بالثمانيات. ومن ثم يمكن اشتقاق طول البيانات بطرح طول الترويسة المحسوب من IHL. إذا أضافت الخيارات بايتات إلى الترويسة، يحدد IHL بداية البيانات الجديدة، بينما يظل Total Length علامة النهاية.

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

حد التمثيل ليس ضمانًا للتسليم

يمكن للحقل تمثيل ما يصل إلى 65,535 ثمانيّة. لكن RFC 791 تصف هذه المخططات بأنها غير عملية لمعظم المضيفين والشبكات، وتطلب استعداد المضيفين لقبول مخططات حتى 576 ثمانيّة، كاملة أو مجزأة. كما توصي بإرسال الأكبر فقط مع التأكد من قدرة الوجهة. وتصف Ethernet حدًا قدره 1,500 ثمانيّة لمخطط IP في حقل بياناتها. لذلك فالسقف ليس MTU للمسار ولا ضمانًا للقبول.

القياس بعد التجزئة

يحمل كل جزء ترويسته وقيمة Total Length الخاصة به، التي تشمل ترويسة الجزء وبياناته. أما Identification وFragment Offset وMore Fragments فلها أدوار أخرى. يحدد Total Length حدود الجزء الحالي، لا طول رسالة التطبيق ولا بالضرورة طول المخطط الأصلي.

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

المصادر