الخلاصة

  • كان PING الخاص بأنظمة Fuzzball، كما وصفه Dave Mills سنة 1983، حزمة قياس متعددة المجسات مستخدمة منذ سنوات؛ أما برنامج Mike Muuss لـBSD فكان تنفيذاً آخر موجهاً إلى بيئة Unix.
  • تضع رواية Muuss العمل في ديسمبر 1983، حين احتاج البرنامج إلى دعم نواة النظام لمقابس ICMP الخام، ثم عرض الردود المتكررة في صورة أرقام تسلسلية وأزمنة ذهاب وإياب وفقد.

حين تبدو الشبكة متعثرة، يبدأ المشغّل بسؤال محدود: هل سيرد هذا العنوان على هذا الاختبار من هنا وفي هذه اللحظة؟ للإجابة، يلزم اختيار حزمة، وقياس زمنها، وربط الرد بالطلب، ثم عرض النتيجة. كلمة ping تخفي تاريخ أداتين ظهرتا في موضعين مختلفين. إحداهما خدمت التجارب على Fuzzball، والأخرى جعلت اختبار Echo قابلاً للتكرار من نظام BSD. اختزال القصتين في اختراع واحد يطمس انتقال القياس من جهاز أبحاث إلى طرفية المشغّل.

سبق أساس البروتوكول البرنامجين. حدّدت RFC 792، الصادرة في سبتمبر 1981، رسالتي ICMP Echo وEcho Reply. يستطيع الطلب أن يحمل بيانات ومعرّفاً ورقماً تسلسلياً؛ ويعيد المستجيب البيانات والقيم التي تساعد المرسل على مطابقة الرد بالطلب. لم تبتكر RFC 792 القياس المتكرر أو شاشة الطرفية، ولم تجعل Echo اختباراً عاماً لتوافر التطبيقات. كما تصف ICMP بأنها وسيلة للإبلاغ عن ظروف بيئة اتصال IP، من دون ضمان وصول مخطط البيانات أو رسالة التحكم.

كان لدى Dave Mills برنامج PING يعمل على أنظمة Fuzzball. ففي RFC 889 التي نشرها في ديسمبر 1983، يسميه PING الأصلي ويوسّع الاسم إلى “Packet InterNet Groper”. ويذكر أن البرنامج استُخدم على مدى السنوات الست السابقة في اختبارات وقياسات عديدة للإنترنت وشبكات الأطراف. كان واحداً من حزم القياس على مضيف LSI-11 مجهّز للتجارب: يرسل أنواعاً متعددة من المجسات، ومنها ICMP Echo، ويعالج الردود، ويسجل الزمن المنقضي وبيانات أخرى، ويعرض مخططات تكرارية وآثاراً لحظية. إنه جزء من عدة بحثية، لا مجرد أمر قصير.

تعرض RFC 889 طريقة القياس بالتفصيل. في تجارب أكتوبر ونوفمبر 1983 أرسلت أجهزة Fuzzball رسائل Echo ذات أطوال وطوابع زمنية محددة، وانتظرت الرد المطابق وسجلت الزمن. اشتملت الجولة الواحدة على 512 دورة. استخدم Mills البيانات لفحص أثر طول الحزمة والمسار والرسائل المفقودة في التأخير وفي حساب مهلة إعادة الإرسال لدى TCP. وفصل بين تأخير الشبكة والانتظار داخل المضيف، الذي قد يكون كبيراً. لم يكن رقم الزمن كافياً وحده؛ فقد احتاج إلى معرفة طريقة جمعه وما الذي استبعده.

تروي شهادة Mike Muuss قصة تنفيذ أخرى. يتذكر أن Mills تحدث في اجتماع لـDARPA بالنرويج في يوليو 1983 عن قياس تأخير المسارات برسائل ICMP Echo مؤقتة على Fuzzball LSI-11. وفي ديسمبر، دفعه سلوك غير معتاد لشبكة IP في مختبر Ballistic Research Laboratory إلى كتابة PING لـ4.2a BSD UNIX. ترد تفاصيل اللقاء وترتيب الأحداث في استعادة Muuss الشخصية اللاحقة، لا في محضر اجتماع معاصر. استخدم برنامجه مقبس Berkeley من نمط SOCK_RAW/AF_INET لإرسال ICMP، لكن النواة لم تدعم المسار اللازم. يقول إنه أضاف دعم المقابس الخام خلال الليل. وقبل إرسال أول حزمة اختبار، كان زميله Chuck Kennedy قد اكتشف عطل العتاد المحلي وأصلحه.

كان الفرق في نقطة الاستخدام. ساعد PING على Fuzzball الباحثين في جمع التجارب وتحليلها. أما نسخة Muuss لـBSD فأحضرت المجس المتكرر إلى محطة مشغّل النظام. يعرض مثاله رقماً تسلسلياً وزمن كل استجابة، ثم عدد الحزم المرسلة والمستلمة ونسبة الفقد وأدنى ومتوسط وأعلى زمن ذهاب وإياب. وفّر البروتوكول الطلب والرد، بينما أضاف البرنامج التكرار والساعة والملخص المقروء. ويقول Muuss إن Berkeley تسلّمت الشفرة وتعديلات النواة، فأصبح البرنامج جزءاً معيارياً من Berkeley UNIX. تؤيد روايته هذا النطاق، لكنها لا تؤرّخ كل إصدار لاحق ولا تثبت تطابق سلوك جميع الأنظمة.

للاسم مساران كذلك. يقول Muuss إنه اختار كلمة ping لصوت السونار وفكرة تحديد الموقع بالصدى. أما RFC 889 فتسمي برنامج Mills “Packet InterNet Groper”، ويذكر Muuss أنه سمع من آخرين أن Mills ربما اقترح هذا التوسع. من الأدق الاحتفاظ بالروايتين: يرتبط التوسع في وثيقة Mills بأداة Fuzzball، فيما يشرح Muuss استعارة السونار لبرنامجه. لا تثبت المصادر لحظة تسمية واحدة متفقاً عليها.

يثبت Echo Reply أن مستجيباً أعاد مجساً بعينه مع البيانات والقيم اللازمة لمطابقته. وتكشف السلسلة الزمنية تغيرات التأخير أو غياب الردود من نقطة محددة وفي فترة وبإعدادات معلومة. لكنها لا تثبت أن موقعاً أو بريداً أو تطبيقاً آخر يعمل؛ ولا توثّق هوية المستجيب؛ ولا تفحص جميع المسارات. كما أن غياب الرد قد ينتج من التصفية أو الازدحام أو سياسة المضيف، ولا يعني أن الوجهة غير موجودة. اكتسب قياس Fuzzball معنى من تكرار التجارب وآثارها، وجعل ping في BSD الملاحظة أسهل. سهولة الأمر لا توسّع نطاق الدليل.

لذلك لا يمثل عام 1983 انتقالاً من غياب ping إلى اختراعه على يد Muuss. كان ICMP Echo محدداً قبل ذلك في RFC 792، وتوثّق RFC 889 أداة PING أقدم على Fuzzball ومخصصة للقياس. نقل Muuss فكرة المجس إلى تشخيص BSD وأضاف قدرة النواة اللازمة. لقد أصبح السؤال عن وصول الرد أسهل، لكن الرد وحده لا يحسم سؤال توافر الخدمة.

المصادر