بينغ (أداة الشبكة)

برنامج Ping هو أداة برمجية لإدارة الشبكات تُستخدم لاختبار إمكانية الوصول إلى مضيف على شبكة بروتوكول الإنترنت (IP) . وهو متوفر في مجموعة واسعة من أنظمة التشغيل .

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

يعمل برنامج Ping باستخدام حزم بروتوكول رسائل التحكم في الإنترنت (ICMP). يتضمن اختبار Ping إرسال طلب صدى ICMP إلى المضيف المستهدف وانتظار رد صدى ICMP . يُبلغ البرنامج عن الأخطاء وفقدان الحزم وملخص إحصائي للنتائج، يشمل عادةً الحد الأدنى والحد الأقصى ومتوسط ​​زمن الرحلة ذهابًا وإيابًا والانحراف المعياري للمتوسط.

تختلف خيارات سطر الأوامر ومخرجات الطرفية باختلاف التطبيق. قد تشمل الخيارات حجم الحمولة، وعدد الاختبارات، وحدود عدد قفزات الشبكة ( TTL ) التي تجتازها عمليات الفحص، والفاصل الزمني بين الطلبات، ووقت انتظار الاستجابة. توفر العديد من الأنظمة أداة مساعدة مصاحبة تُسمى ping6، لاختبار شبكات بروتوكول الإنترنت الإصدار السادس (IPv6)، والتي تستخدم بروتوكول ICMPv6 .

تاريخ

إصدار DOS من الأمر ping

كتب مايك موس أداة ping في ديسمبر 1983 أثناء عمله في مختبر أبحاث المقذوفات ، والذي يُعرف الآن باسم مختبر أبحاث الجيش الأمريكي . وقد ألهمت ملاحظةٌ لديفيد ميلز حول استخدام حزم صدى بروتوكول ICMP لتشخيص وقياس شبكات IP موسَ لإنشاء هذه الأداة لحل مشاكل الشبكة. [ 1 ] أطلق عليها اسم "ping" نسبةً إلى صوت السونار ، نظرًا لتشابه منهجيتها مع تحديد الموقع بالصدى. [ 1 ] [ 2 ] استُخدم الاختصار العكسي "Packet Internet Groper" لـ ping لأكثر من 30 عامًا. يقول موس إنه من وجهة نظره، لم يكن المقصود من ping أن يكون اختصارًا، ولكنه أقرّ بتوسيع ميلز للاسم. [ 1 ] [ 3 ] كان الإصدار الأول متاحًا للجميع ، بينما رُخِّصت جميع الإصدارات اللاحقة بموجب رخصة BSD . أُدرجت ping لأول مرة في نظام 4.3BSD . [ 4 ] طُوِّر إصدار FreeDOS بواسطة إريك إنجلك، وهو مرخص بموجب رخصة GPL . [ 5 ] قام تيم كروفورد بتطوير نسخة ReactOS . وهي مرخصة بموجب رخصة MIT . [ 6 ]

يجب على أي مضيف معالجة طلبات صدى بروتوكول ICMP وإصدار ردود صدى في المقابل. [ 7 ]

مثال على الاستدعاء

فيما يلي مخرجات تشغيل الأمر ping على نظام Linux لإرسال خمسة اختبارات (بفاصل زمني قدره ثانية واحدة افتراضيًا، ويمكن ضبطه عبر الخيار -i) إلى المضيف المستهدف www.example.com :

$ ping -c 5 www.example.comطلب PING لموقع www.example.com (93.184.216.34): 56 بايت من البيانات. 64 بايت من 93.184.216.34: icmp_seq=0 ttl=56 time=11.632 ms 64 بايت من 93.184.216.34: icmp_seq=1 ttl=56 time=11.726 ms 64 بايت من 93.184.216.34: icmp_seq=2 ttl=56 time=10.683 ms 64 بايت من 93.184.216.34: icmp_seq=3 ttl=56 time=9.674 ms 64 بايت من 93.184.216.34: icmp_seq=4 ttl=56 الزمن = 11.127 مللي ثانيةإحصائيات اختبار الاتصال (ping) لموقع www.example.com --- تم إرسال 5 حزم، تم استلام 5 حزم، نسبة فقدان الحزم 0.0%، زمن الاستجابة ذهابًا وإيابًا (الأدنى/المتوسط/الأقصى/الانحراف المعياري) = 9.674/10.968/11.726/0.748 مللي ثانية

يعرض الناتج كل رسالة اختبار والنتائج التي تم الحصول عليها. وأخيرًا، يعرض إحصائيات الاختبار بأكمله. في هذا المثال، كان أقصر زمن ذهاب وإياب 9.674 مللي ثانية، وكان المتوسط ​​10.968 مللي ثانية، والقيمة القصوى 11.726 مللي ثانية. وكان الانحراف المعياري للقياس 0.748 مللي ثانية.

مؤشرات الخطأ

في حال عدم تلقي أي استجابة من المضيف المستهدف، لا تعرض معظم التطبيقات أي شيء أو تعرض إشعارات دورية حول انتهاء المهلة. تشمل نتائج اختبار الاتصال (ping) المحتملة التي تشير إلى وجود مشكلة ما يلي:

  • H أو !N أو !P - المضيف أو الشبكة أو البروتوكول غير قابل للوصول 
  • S - فشل مسار المصدر 
  • F - الحاجة إلى التجزئة 
  • U أو !W - شبكة/مضيف الوجهة غير معروف 
  • أنا المضيف المصدر معزول 
  • أ - الاتصال بشبكة الوجهة محظور إدارياً 
  • Z الاتصال بالمضيف الوجهة ممنوع إدارياً 
  • س – بالنسبة لشروط الخدمة هذه ، فإن الشبكة المستهدفة غير قابلة للوصول 
  • T بالنسبة لشروط الخدمة هذه، يكون المضيف الوجهة غير قابل للوصول 
  • X الاتصال ممنوع إدارياً 
  • V انتهاك أسبقية المضيف 
  • ج - قطع الأسبقية ساري المفعول 

في حالة حدوث خطأ، يُرسل المضيف المستهدف أو جهاز توجيه وسيط رسالة خطأ ICMP، مثل " المضيف غير قابل للوصول" أو "تجاوز وقت البقاء أثناء النقل" . بالإضافة إلى ذلك، تتضمن هذه الرسائل أول ثمانية بايتات من الرسالة الأصلية (في هذه الحالة، رأس طلب صدى ICMP، بما في ذلك قيمة الإخماد)، حتى تتمكن أداة ping من مطابقة الاستجابات مع الاستعلامات الأصلية. [ 8 ]

تنسيق الرسالة

حزمة ICMP المنقولة باستخدام IPv4

تبدو حزمة ICMP المنقولة باستخدام IPv4 على هذا النحو.

بيانات IPv4
إزاحةثمانية0123
ثمانيةقليل012345678910111213141516171819202122232425262728293031
00الإصدار  (4)القانون الدولي الإنساني  (5)DSCP  (0)ECN  (0)الطول الإجمالي
432تعريفالأعلامإزاحة الجزء
864حان وقت العيشالبروتوكول  (1)مجموع التحقق من رأس الملف
1296عنوان المصدر
16128عنوان الوجهة
حزمة طلب صدى ICMP
إزاحةثمانية0123
ثمانيةقليل012345678910111213141516171819202122232425262728293031
20160النوع  (8)الرمز  (0)مجموع التحقق
24192المعرفرقم التسلسل
28224(الحمولة)
32256
النوع : 8 بت
اضبطه على 8 للإشارة إلى "طلب صدى". [ 9 ]
مجموع التحقق : 16 بت
مجموع التحقق هو المتمم الأحادي ذو 16 بت لمجموع المتمم الأحادي لحزمة ICMP، بدءًا من حقل النوع ، [ 10 ] بما في ذلك الحمولة . لا يتم تضمين رأس IP .
المعرّف : 16 بت
يمكن للعميل استخدامها لمطابقة الرد مع الطلب الذي تسبب في الرد.
رقم التسلسل : 16 بت
يمكن للعميل استخدامها لمطابقة الرد مع الطلب الذي تسبب في الرد.
الحمولة : طول متغير
اختياري. حمولة البيانات لأنواع الإجابات المختلفة؛ يمكن أن يكون طولها عشوائيًا، ويترك ذلك لتفاصيل التنفيذ.

تستخدم معظم أنظمة لينكس مُعرّفًا فريدًا لكل عملية اختبار اتصال (ping)، ورقم تسلسلي هو رقم متزايد داخل تلك العملية. أما نظام ويندوز، فيستخدم مُعرّفًا ثابتًا يختلف باختلاف إصدارات ويندوز، ورقمًا تسلسليًا لا يُعاد ضبطه إلا عند بدء التشغيل.

يتم إرجاع رد الصدى على النحو التالي :

حزمة رد صدى ICMP
إزاحةثمانية0123
ثمانيةقليل012345678910111213141516171819202122232425262728293031
20160النوع  (0)الرمز  (0)مجموع التحقق
24192المعرفرقم التسلسل
28224(الحمولة)
32256
النوع : 8 بت
اضبط القيمة على 0 للإشارة إلى "رد الصدى". [ 9 ]
المعرّف : 16 بت
تم نسخها من طلب الصدى وإعادتها.
رقم التسلسل : 16 بت
تم نسخها من طلب الصدى وإعادتها.
الحمولة : طول متغير
اختياري. يتم نسخ البيانات من طلب الصدى وإعادتها.

حزمة ICMPv6 المنقولة باستخدام IPv6

تبدو حزمة ICMP المنقولة باستخدام IPv6 على النحو التالي.

حزمة بيانات IPv6
إزاحةثمانية0123
ثمانيةقليل012345678910111213141516171819202122232425262728293031
00الإصدار  (6)فئة المرورتسمية التدفق
432طول الحمولةالعنوان التالي  (58)حد القفز
864عنوان المصدر
1296
16128
20160
24192عنوان الوجهة
28224
32256
36288
حزمة طلب صدى ICMPv6
إزاحةثمانية0123
ثمانيةقليل012345678910111213141516171819202122232425262728293031
40320النوع  (128)الرمز  (0)مجموع التحقق
44352المعرفرقم التسلسل
48384(الحمولة)
52416
النوع : 8 بت
اضبط القيمة على 128 للإشارة إلى "طلب الصدى".
المعرّف : 16 بت
يمكن للعميل استخدامها لمطابقة الرد مع الطلب الذي تسبب في الرد.
رقم التسلسل : 16 بت
يمكن للعميل استخدامها لمطابقة الرد مع الطلب الذي تسبب في الرد.
مجموع التحقق : 16 بت
يتم حساب مجموع التحقق من رسالة ICMP (بدءًا من حقل النوع )، مسبوقة برأسية IPv6 زائفة . [ 11 ]
الحمولة : طول متغير
اختياري. حمولة البيانات لأنواع الإجابات المختلفة؛ يمكن أن يكون طولها عشوائيًا، ويترك ذلك لتفاصيل التنفيذ.

تستخدم معظم أنظمة لينكس مُعرّفًا فريدًا لكل عملية اختبار اتصال (ping)، ورقم تسلسلي هو رقم متزايد داخل تلك العملية. أما نظام ويندوز، فيستخدم مُعرّفًا ثابتًا يختلف باختلاف إصدارات ويندوز، ورقمًا تسلسليًا لا يُعاد ضبطه إلا عند بدء التشغيل.

يتم إرجاع رد الصدى على النحو التالي :

حزمة رد صدى ICMPv6
إزاحةثمانية0123
ثمانيةقليل012345678910111213141516171819202122232425262728293031
40320النوع  (129)الرمز  (0)مجموع التحقق
44352المعرفرقم التسلسل
48384(الحمولة)
52416
النوع : 8 بت
اضبطه على 129 للإشارة إلى "رد الصدى".
المعرّف : 16 بت
تم نسخها من طلب الصدى وإعادتها.
رقم التسلسل : 16 بت
تم نسخها من طلب الصدى وإعادتها.
الحمولة : طول متغير
اختياري. يتم نسخ البيانات من طلب الصدى وإعادتها.

الحمولة

عادةً ما تكون حمولة الحزمة مليئة بأحرف ASCII ، كما يظهر في مخرجات أداة tcpdump في آخر 32 بايت من المثال التالي (بعد رأس ICMP المكون من ثمانية بايتات والذي يبدأ بـ 0x0800 ):

16:24:47966461 IP (tos 0x0, ttl 12 8, id 1510 3, o ff set 0, fl ag s [none], proto: ICMP (1), length: 60 ) 19 2. 16 8. 14 6. 22 > 19 2. 16 8. 14 4.5: طلب صدى ICMP ، المعرف التسلسل 38 ، الطول 40 0x 0000 : 4500 003c 3aff 0000 8001 5c55 c0a8 9216 E..<:.....\U.... 0x 0010 : c0a8 9005 0800 4d35 0001 0026 6162 6364 ......M5...&abcd 0x 0020 : 6566 6768 696a 6b6c 6d6e 6f70 7172 7374 efghijklmnopqrst 0x 0030 : 7576 7761 6263 6465 6667 6869  uvwabcdefghi

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

قد تتضمن الحمولة أيضًا حزمة سحرية لبروتوكول Wake-on-LAN ، ولكن في هذه الحالة، يكون الحد الأدنى للحمولة أطول من الموضح. عادةً لا يتلقى طلب الصدى أي رد إذا كان المضيف في وضع السكون، ولكنه يستيقظ من وضع السكون إذا كانت واجهته مُهيأة لقبول طلبات التنبيه. إذا كان المضيف نشطًا بالفعل ومُهيأً للسماح بالردود على حزم طلبات صدى ICMP الواردة ، فيجب أن يتضمن الرد المُعاد نفس الحمولة. يمكن استخدام هذا للكشف عن تنبيه المضيف البعيد فعليًا عن طريق تكرار طلب جديد بعد فترة تأخير للسماح له باستئناف خدمات الشبكة. إذا كان المضيف في وضع السكون النشط منخفض الطاقة، فإن طلبًا واحدًا يُوقظه بالقدر الكافي للسماح لخدمة رد الصدى بالرد فورًا إذا كانت هذه الخدمة مُفعّلة. لا يحتاج المضيف إلى تنبيه جميع الأجهزة بالكامل، وقد يعود إلى وضع الطاقة المنخفضة بعد فترة تأخير قصيرة. يمكن استخدام هذا التكوين لتجنب دخول المضيف في وضع السكون، مع تأخير تنبيه أطول بكثير، بعد مرور بعض الوقت في وضع الطاقة المنخفضة النشط.

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

ثغرات أمنية

لتنفيذ هجوم حجب الخدمة ، قد يرسل المهاجم طلبات اختبار الاتصال (ping) بأسرع ما يمكن، مما قد يُغرق الضحية بطلبات صدى بروتوكول ICMP. تُسمى هذه التقنية بـ" فيضان اختبار الاتصال" (ping flood ). [ 12 ]

يمكن استخدام طلبات Ping إلى عناوين متعددة، أو عمليات مسح Ping ، للحصول على قائمة بجميع المضيفين على الشبكة.

انظر أيضاً

مراجع

  1. ١ ٢ ٣ ٤ مايك موس . " قصة برنامج PING" . مختبر أبحاث الجيش الأمريكي. مؤرشف من الأصل في ٢٥ أكتوبر ٢٠١٩. تم الاطلاع عليه في ٨ سبتمبر ٢٠١٠. كان الدافع الأصلي لكتابة برنامج PING لنظام التشغيل BSD UNIX 4.2a هو ملاحظة عابرة للدكتور ديف ميلز في يوليو ١٩٨٣  ... أطلقت عليه هذا الاسم نسبةً إلى صوت السونار، مستوحىً من مبدأ تحديد الموقع بالصدى  ... من وجهة نظري، PING ليس اختصارًا لعبارة Packet InterNet Grouper، بل هو تشبيه بالسونار. مع ذلك، سمعت من مصدر غير مباشر أن ديف ميلز هو من اقترح هذا التفسير للاسم، لذا ربما نكون على صواب.
  2. سالوس، بيتر (1994). ربع قرن من يونكس . أديسون-ويسلي . ISBN 978-0-201-54777-1.
  3. ميلز، د. ل. (ديسمبر 1983). تجارب تأخير الإنترنت . IETF . doi : 10.17487/RFC0889 . RFC 889. تم الاطلاع عليه بتاريخ 26 نوفمبر 2019 .
  4. "قسم ping في صفحة الدليل 8" . www.manpagez.com .
  5. "حزمة ibiblio.org لنظام التشغيل FreeDOS -- ping (الشبكات)" . www.ibiblio.org .
  6. "GitHub - reactos/reactos: نظام تشغيل مجاني متوافق مع نظام ويندوز" . 8 أغسطس 2019 - عبر GitHub.
  7. ر. برادن ، محرر. (أكتوبر 1989). متطلبات مضيفي الإنترنت - طبقات الاتصال . مجموعة عمل الشبكة. doi : 10.17487/RFC1122 . STD 3. RFC 1122 .معيار الإنترنت 3. تم تحديثه بواسطة RFC 1349 و 4379 و 5884 و 6093 و 6298 و 6633 و 6864 و 8029 و 9293 . يجب على كل مضيف تنفيذ وظيفة خادم صدى ICMP التي تستقبل طلبات الصدى وترسل ردود الصدى المقابلة. 
  8. "بروتوكول رسائل التحكم في الإنترنت (ICMP)" . repo.hackerzvoice.net . 13 يناير 2000. مؤرشف من الأصل في 4 أغسطس 2016. تم الاطلاع عليه في 4 ديسمبر 2014 .
  9. 1 2 ج. بوستل (سبتمبر 1981). بروتوكول رسائل التحكم في الإنترنت - مواصفات بروتوكول برنامج الإنترنت التابع لداربا . مجموعة عمل الشبكة. doi : 10.17487/RFC0792 . STD 5. RFC 792 .المعيار الخامس للإنترنت. تحديثات RFC 760 و 777 وIENs 109 و128. تم تحديثه بواسطة RFC 950 و 4884 و 6633 و 6918 .  
  10. "صفحة دليل RFC حول بروتوكول ICMP" . مؤرشفة من الأصل في 6 يوليو 2018. تم الاطلاع عليها في 20 ديسمبر 2010 .
  11. أ. كونتا؛ س. ديرينغ (مارس 2006). م. غوبتا (محرر). بروتوكول رسائل التحكم في الإنترنت (ICMPv6) لمواصفات بروتوكول الإنترنت الإصدار 6 (IPv6) . مجموعة عمل الشبكة. doi : 10.17487/RFC4443 . STD 89. RFC 4443 .المعيار 89 للإنترنت . يلغي RFC 2463. يُحدّث RFC 2780. تم تحديثه بواسطة RFC 4884 .   
  12. "ما هو هجوم Ping Flood | هجوم ICMP Flood | مسرد مصطلحات هجوم DDoS | Imperva" . مركز التعلم . تم الاطلاع عليه بتاريخ 26 يوليو 2021 .

للمزيد من القراءة