الخلاصة

  • اقتصر الجزء المشترك في XMODEM على 128 بايت من البيانات، ورقم الكتلة ومتممه، ومجموع اختباري بسيط، وردود ACK/NAK يقودها المستقبل، وإشارة واضحة للنهاية. لم يفرض طريقة الاتصال أو حفظ الملف أو واجهة الاستخدام.
  • خفّض هذا الحد الضيق كلفة بناء تطبيقات مستقلة واختبارها معاً. كما أبقى العيوب ظاهرة: كشف محدود للأخطاء، وانتظار بعد كل كتلة، وغياب بيانات وصفية. لذلك استطاعت اتفاقات لاحقة تحسينها من دون تحويل التوافق إلى ملكية خدمة واحدة.

يبدأ المستقبل المحادثة

في XMODEM لا يفتتح صاحب الملف الإرسال. ينتظر برنامج الاستقبال، ثم يبعث NAK ليقول إنه جاهز. يرد المرسل بتتابع قصير: SOH، رقم الكتلة، المتمم الأحادي لذلك الرقم، 128 بايت من البيانات، ثم المجموع الاختباري. يعيد المستقبل الحساب؛ فإذا اطمأن إلى النتيجة يبعث ACK، وإلا طلب الإعادة بواسطة NAK.

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

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

لم يكن العدد 128 حلاً مثالياً لكل شبكة. ارتبط بحجم قطاع القرص في بيئة CP/M التي عمل فيها كريستنسن. سهّل الحجم الثابت الذاكرة المؤقتة والبرمجة على الحواسيب الصغيرة، لكنه فرض حشواً في الكتلة الأخيرة ولم يحمل بذاته الطول الدقيق للملف.

كتلة مكررة تكشف نجاحاً سابقاً

قد تصل البيانات صحيحة ثم يتضرر ACK في طريق العودة. لا يعرف المرسل أن الطرف الآخر قبل الكتلة، فيبعثها مرة ثانية. لذلك يسمح بروتوكول كريستنسن للمستقبل برؤية الرقم المتوقع أو رقم الكتلة السابقة مباشرة.

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

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

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

وثّق RFC ممارسة سبقت الوثيقة

ليس دقيقاً اعتبار XMODEM معياراً صممه IETF. اقترح RFC 916 الصادر عام 1984 بروتوكولاً آخر للنقل الموثوق عبر الوصلات غير المتزامنة، ووضع MODEM/XMODEM في ملحق لأنه كان شائعاً بالفعل بين الحواسيب الصغيرة. جاءت التطبيقات أولاً، ثم جاء التوصيف داخل RFC.

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

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

كان على الامتداد أن يثبت توافقه

أضافت اتفاقات لاحقة CRC-16، وكتلاً اختيارية بحجم 1K، وكتلة صفر تحمل معلومات مثل اسم الملف وحجمه. ساعدت البرامج العامة التي وزعها تشاك فورسبيرغ على نشر هذه القدرات تحت أسماء مثل YMODEM. وكان بقاء الحد الأدنى الأصلي واضحاً يسمح بإضافة المزايا تدريجياً.

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

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

كان CBBS مكاناً، وكان XMODEM ممراً

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

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

لا تكمن قيمة الإرث في تقديس الرقم 128. تكمن في طريقة رسم الحد: التشدد حيث يحتاج التوافق إلى سلوك متطابق، وترك القرار محلياً حيث لا يحتاج إليه. لم يكن الطرفان حرين في تجاهل الترتيب والفحص والنهاية، لكنهما بقيا حرين في الاختلاف في كل ما لا يتطلبه النقل المشترك.

المصادر