الخلاصة

  • بيّن Danny Cohen في IEN 137 أن كلاً من Big-Endian وLittle-Endian يمكن أن يكون منسقاً داخل نظامه؛ ويبدأ العطب عندما تُترك جهة الترتيب أو وحدة التجميع غير معلنة على واجهة عامة.
  • لم يكن الحل انتصار أحد المعسكرين، بل تثبيت تمثيل واحد لكل صيغة مشتركة، والتحويل عند الأطراف، والاحتفاظ بما يكفي من الأدلة لإعادة التفسير واختباره.

بايتات صحيحة ومعنى مفقود

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

تناول Danny Cohen هذه المشكلة في Internet Experiment Note 137 المؤرخة في 1 أبريل/نيسان 1980، مصوغاً إياها كدعوة إلى السلام وسط «حروب مقدسة» حول الترتيب. اشتهرت المذكرة باستعارتها صراع كسر البيضة لدى Swift، ومنها اسما Big-Endian وLittle-Endian. أما قوتها الهندسية فتكمن في تفكيك كلمة «الترتيب»: ترتيب البتات داخل البايت، والبايتات داخل الكلمة، والكلمات في الذاكرة، والوحدات أثناء الإرسال قرارات متصلة لكنها ليست قراراً واحداً.

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

حين يصبح حجم القطعة حقلاً خفياً

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

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

يذكر Cohen أن رزم ARPA Internet عوملت بافتراض Big-Endian متسق. أهمية هذا الاختيار تاريخية وتشغيلية، لا برهاناً على تفوق منطقي. فقد وفّر صورة واحدة يستطيع المختلفون تنفيذها. وتنتهي حجة المذكرة إلى أن الاتفاق على ترتيب أهم من هوية ذلك الترتيب.

لهذا ينبغي فهم «ترتيب بايتات الشبكة» كعقد عند الواجهة، لا حكماً على تصميم المعالج. يظل المضيف Little-Endian حراً داخل ذاكرته، لكنه ينتج الهيئة العامة قبل الإرسال ويستعيد الهيئة المحلية بعد الاستقبال. التحويل الصريح هو ما يسمح للاختلاف الداخلي بالبقاء من دون أن يلوث المعنى المشترك.

PNG وDEFLATE يختاران اتجاهين متعاكسين

يكشف تنسيقـان لاحقان جوهر الفكرة. يحدد RFC 2083 أن الأعداد متعددة البايتات في PNG تستخدم ترتيب الشبكة، أي يبدأ البايت الأعلى قيمة. أما RFC 1951 فيختار لـDEFLATE أن يبدأ العدد متعدد البايتات بالبايت الأقل قيمة، ثم يصف تعبئة البتات على نحو منفصل ودقيق.

القراران متعاكسان، ومع ذلك يعمل التنسيقان بين معماريات مختلفة. قارئ PNG لا يستبدل قاعدة التنسيق بترتيب معالجه، وقارئ DEFLATE لا يقلب البيانات بحجة أن عرف الشبكات مختلف. المرجع هو العقد المحدد عند تلك الحدود.

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

الاستثناء يحتاج إلى سور

يوثق RFC 1071 خاصية محدودة في Internet checksum: يمكن تنفيذ الجمع بأي من ترتيبي البايتات إذا عولجت النتيجة المبدلة على الوجه الصحيح. هذه الخاصية تخص جبر تلك العملية ولا تجعل أطوال الرزم أو المعرّفات أو الحقول العشوائية مستقلة عن الترتيب.

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

خيار واحد قد يضاعف سطح الاختبار

عاد Chris Newman إلى الموضوع عام 1999 في Internet-Draft فردية عن ترتيب بايتات الشبكة. انتهت صلاحية الوثيقة ولا تتمتع بأي مكانة رسمية في مسار معايير IETF؛ لذلك تُستخدم هنا كملاحظة تشغيلية تاريخية فقط. وملاحظتها أن الاختيار وقت التشغيل ينشئ نسختين من البروتوكول أو نوع الوسائط، وأن كل نسخة تحتاج إلى اختبار مستقل، بينما تُهمل إحداهما كثيراً.

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

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

المهندس خلف الاستعارة

ينسب Internet Hall of Fame إلى Danny Cohen إدخال مصطلحي Big Endian وLittle Endian إلى الحوسبة، ويسجل أيضاً عمله المبكر في فيديو الحزم وصوت الحزم. ويضع تأبين USC مسيرته ضمن تاريخ Information Sciences Institute. هذا السياق مهم: لمن عمل على اتصالات الزمن الحقيقي، ليس غموض التمثيل جدلاً زخرفياً، بل سبباً مباشراً في انقطاع حوار بين نظامين مستقلين.

جعلت سخرية البيضة المذكرة سهلة التذكر. أما معاهدة الهندسة تحتها فجعلتها دائمة: لا يلزم أن تتشابه الآلات من الداخل، لكن لا يحق لأي منها أن تطلب من الآخرين التخمين عند نقطة اللقاء.

المصادر