يحظى أمر ping
بشعبية كبيرة لدى مديري الشبكات وممتهني التقنية لما يقدمه من خدمات في سبيل فحص الاتصال بين مضيفين Host. يقدّم هذا المقال تفاصيل أكثر عن هذا الأمر شائع الاستخدام.
ماهو أمر ping وكيف يعمل؟
يعمل أمر ping
على فحص إمكانية الوصول إلى عنوان IP، مضيف أو خادوم انطلاقا من شبكتك. يكثُر استخدام الأمر للتدقيق في أخطاء الشبكة وتحديد مشاكلها. يقوم الأمر على مبدأ عمل سهل ولكنه مفيد؛ إذ يُرسِل حزم بيانات تحوي الرسالة PING
إلى عنوان IP (أو المضيف) وينتظر الرد ثم يحسب الفترة الزمنية اللازمة لورود الجواب؛ يُشار لهذه المدّة بـRTT، وهي اختصار Round Trip Time أي زمن الذهاب والإياب؛ تُعرَف هذه المدة أيضا بزمن الوصول Latency.
يعني هذا أن بإمكانك معرفة ما إذا كان يمكن الوصول إلى مضيف من شبكتك وسرعة تلقي الرد منه باستخدام ping
. يشير العمل السريع لأمر ping
(زمن وصول قصير) إلى أن الاتصال متجاوب أكثر وهي مسألة مهمة في تطبيقات مثل الألعاب على الشبكة. يُقاس زمن الوصول عادة بجزء على ألف من الثانية (ثانية = 1000ms)؛ أزمان وصول أعلى تعني وجود مشاكل في الشبكة.
يتغيّر زمن الوصول حسب عوامل من بينها التوجيه Routing والموقع الجغرافي. ينتج عن تنفيذ أمر ping
لتجربة الوصول إلى مضيف في نفس البلد زمن أدنى من مضيف في بلد بقارة أخرى نظرا للموقع الجغرافي والقفزات Hops التي يتضمنها التوجيه.
تأتي أداة ping
مثبتة مسبقا على جميع أنظمة التشغيل الحديثة تقريبا ويمكن تنفيذها من سطر الأوامر (الطرفية على الأنظمة الشبيهة بيونكس أو محثّ وندوز Windows prompt).
ملحوظة: يمكن إعداد الخواديم أو المضيفات على حظر (عدم الرد) طلبات ping
لأسباب أمنية.
خيارات ping الأساسية
معرفة إصدار ping
يتيح الخيار V-
معرفة إصدار ping
المثبَّت في النظام:
ping -V
مثال على المخرجات:
ping utility, iputils-s20121221
استخدام أمر ping
المعطى الضروري الوحيد لأمر ping
هو اسم المضيف أو عنوان IP المراد فحصُه.
ping example.com
اسم المضيف في المثال أعلاه هو example.com
. في ما يلي مثال على مخرجات الأمر:
PING example.com (93.184.216.34) 56(84) bytes of data. 64 bytes from example.com (93.184.216.34): icmp_seq=1 ttl=42 time=116 ms 64 bytes from example.com (93.184.216.34): icmp_seq=2 ttl=42 time=154 ms 64 bytes from example.com (93.184.216.34): icmp_seq=3 ttl=42 time=163 ms 64 bytes from example.com (93.184.216.34): icmp_seq=4 ttl=42 time=1028 ms 64 bytes from example.com (93.184.216.34): icmp_seq=5 ttl=42 time=768 ms 64 bytes from example.com (93.184.216.34): icmp_seq=6 ttl=42 time=128 ms
ستحتاج لتوقيف تنفيذ الأمر بالضغط على الزرين CTRL
و C
وإلا فإن الأمر سيستمر في إرسال الحزم.
ملحوظة: توجد اختلافات يسيرة في الأمر بين لينكس ووندوز، يتوقف تنفيذ الأمر في وندوز بعد إرسال أربع حزم مبدئيا.
يظهر ملخّص بالإحصاءات بعد توقف الأمر:
^X^C --- example.com ping statistics --- 24 packets transmitted, 23 received, 4% packet loss, time 23041ms rtt min/avg/max/mdev = 114.323/307.465/1057.499/296.627 ms, pipe 2
يتضمن الملخّص:
- عدد الحزم المُرسَلة Transmitted
- عدد الحزم المستلمة Received
- نسبة فقدان الحزم Packet loss
-
الحد الأدنى للمدة الزمنية لوصول الإجابة
min
. -
متوسط وصول الإجابة
avg
. -
الحد الأقصى للمدة الزمنية لوصول الإجابة
max
.
تظهر في كل سطر مدة الإجابة وقيمة أخرى باسم ttl
. تحدّد القيمة الأخيرة عمر الحزمة (Time To Live). إن انقضت هذه القيمة دون أن يتمكن ping
من الاتصال بالوجهة فسيقرّر أنه لا يمكن الوصول إليها. لا يقتصر استخدام هذا المعطى على ping
بل مجالات أخرى مثل بروتوكول HTTP و نظام أسماء النطاقات.
لا يختلف فحص الاتصال بجهاز على الشبكة الداخلية عن فعل نفس الشيء بالنسبة لمضيف على الإنترنت. الأمر التالي مثلا يفحص الاتصال بجهاز على الشبكة الداخلية عبر عنوان IP الخاص به:
ping 192.168.1.5
عدد مرات تنفيذ الأمر
السلوك المبدئي لأمر ping
إن استخدم بدون خيارات هو الاستمرار في إرسال الحزم إلى أن يتدخل أحد لإيقافه؛ إلا أنه توجد طريقة لتحديد عدد مرات إرسال الحزم.
استخدم الخيار c-
متبوعا بعدد على النحو التالي:
ping -c 10 example.com
تظهر المخرجات كالتالي:
PING example.com (93.184.216.34) 56(84) bytes of data. 64 bytes from example.com (93.184.216.34): icmp_seq=1 ttl=43 time=129 ms 64 bytes from example.com (93.184.216.34): icmp_seq=2 ttl=43 time=127 ms 64 bytes from example.com (93.184.216.34): icmp_seq=3 ttl=43 time=126 ms 64 bytes from example.com (93.184.216.34): icmp_seq=4 ttl=43 time=125 ms 64 bytes from example.com (93.184.216.34): icmp_seq=5 ttl=43 time=284 ms 64 bytes from example.com (93.184.216.34): icmp_seq=6 ttl=43 time=132 ms 64 bytes from example.com (93.184.216.34): icmp_seq=7 ttl=43 time=131 ms 64 bytes from example.com (93.184.216.34): icmp_seq=8 ttl=43 time=130 ms 64 bytes from example.com (93.184.216.34): icmp_seq=9 ttl=43 time=178 ms 64 bytes from example.com (93.184.216.34): icmp_seq=10 ttl=43 time=128 ms --- example.com ping statistics --- 10 packets transmitted, 10 received, % packet loss, time 9011ms rtt min/avg/max/mdev = 125.003/149.335/284.433/47.508 ms
ينفَّذ الأمر - كما يظهر - عشر مرات ثم يتوقف ويعطي إحصائيات.
لفعل نفس الشيء على وندوز نضيف الخيار n-
بدلا من c-
:
ping -n 10 example.com
تعديل حجم حزمة البيانات
يُرسِل أمر ping
مبدئيا حزمة بحجم 64
بايت على لينكس، و32
بايت على وندوز. إن أردت تغيير الحجم المبدئي للحزمة على لينكس فيمكنك ذلك باستخدام الخيار s-
:
ping -s 100 -c 6 example.com
النتيجة:
PING example.com (93.184.216.34) 100(128) bytes of data. 108 bytes from example.com (93.184.216.34): icmp_seq=2 ttl=51 time=1113 ms 108 bytes from example.com (93.184.216.34): icmp_seq=3 ttl=51 time=253 ms 108 bytes from example.com (93.184.216.34): icmp_seq=4 ttl=51 time=263 ms 108 bytes from example.com (93.184.216.34): icmp_seq=5 ttl=51 time=253 ms 108 bytes from example.com (93.184.216.34): icmp_seq=6 ttl=51 time=1068 ms --- example.com ping statistics --- 6 packets transmitted, 5 received, 16% packet loss, time 4999ms rtt min/avg/max/mdev = 253.093/590.201/1113.044/408.995 ms, pipe 2
بالنسبة لوندوز فالخيار المستخدم هو l-
:
ping -l 100 -n 6 example.com
زيادة المدة الزمنية أو تقليصها
ينتظر أمر ping
مبدئيا ثانية واحدة قبل إرسال الحزمة الموالية إلى الوِجهة. يمكِّن استخدام الخيار i-
من زيادة هذا المجال أو تقليصه.
يحدّد الأمر التالي 3
ثوان مجالا بين إرسال حزمتين:
ping -i 3 example.com
يمكننا بنفس الطريقة التسريع من إرسال الحزم بدل انتظار ثانية في كل مرة:
ping -i 0.2 example.com
إغراق الوجهة بحزم ping
تُستخدم هذه الطريقة لاختبار أداء الشبكة. لا ينتظر أمر ping
بين إرسال حزمتين إن استخدم الخيار f-
بشرط تنفيذه بصلاحيات إدارية:
sudo ping -f example.com
ستلاحظ - حسب جودة الشبكة لديك - نقاطا تتحرك بسرعة. يطبع الأمر نقطة في الطرفية في كل مرة تُرسَل حزمة، وفي كل مرة يرد فيها جواب يُطبع رجوع إلى الخلف (تُحذَف نقطة) وهو ما يعطي فكرة عن عدد الحزم التي لم ترد عنها إجابات؛ وهو ما تمثله النقاط المتبقية.
اضغط زرّي CTRL
و C
لإيقاف الأمر.
عرض إحصاءات ping فقط
يمكن باستخدام الخيار q-
الإبقاء على إحصاءات الأمر فقط دون إظهار معلومات الحزم:
ping -c 5 -q example.com
النتيجة:
PING example.com (93.184.216.34) 56(84) bytes of data. --- example.com ping statistics --- 5 packets transmitted, 4 received, 20% packet loss, time 6221ms rtt min/avg/max/mdev = 259.175/723.504/1219.311/460.540 ms, pipe 2
يظهر التقرير فقط في مخرجات الأمر أعلاه.
تحديد مهلة لتنفيذ ping
إذا أردت تحديد مهلة زمنية تظهر بانقضائها إحصاءات أمر ping
فيمكنك ذلك بإضافة الخيار w-
:
ping -w 6 example.com
يعيّن الخيار w-
المدة الزمنية التي يقضيها الأمر في إرسال الحزم. حددنا في المثال أعلاه 6 ثوان سيتوقف بعدها تنفيذ الأمر وتظهر الإحصاءات.
رسائل الخطأ في أمر ping
تظهر عدة رسائل - حسب الحالة - في مخرجات ping
، في ما يلي شرح مدلولاتها.
Destination Host Unreachable
تشير الرسالة Destination Host Unreachable
(لا يمكن الوصول إلى المضيف الوِجهة) إلى أنه لا توجد طريق من الشبكة المحلية إلى المضيف الذي أرسلت إليه الحزم. يعني هذا عادة أنه يوجد خطأ في الاتصال. إن نفذت أمر ping
دون أن تكون متصلا فستظهر هذه الرسالة.
Request timed out
تعني هذه الرسالة Request timed oud
(انتهاء مهلة انتظار الرد) أن الأداة لم تحصُل على أجوبة على الحزم التي أرسلتها ضمن المهلة المحدّدة (1 ثانية مبدئيا). توجد عدّة أسباب ممكنة من أبرزها احتقان Congestion في الشبكة، حجب بعض الحزم في الجدار الناري firewall، مشكل في الموجِّه Router وغيرها.
Unknown host / Ping Request Could Not Find Host
تدلّ رسالة الخطأ Unknown host
(مضيف غير معروف) أو شبيهتها Ping Request Could Not Find Host
(لم يستطع طلب Ping العثور على مضيف) إلى خطأ في اسم المضيف؛ إما لكون اسم المضيف غير موجود أو أنه غير متاح لديك في الشبكة. عند تنفيذ الأمر التالي مثلا (لاحظ الخطأ في كتابة hsoubs
):
ping hsoubs.com
تظهر الرسالة:
ping: unknown host hsoubs.com
خاتمة
يختلف زمن الوصول باختلاف نوعية الشبكة وطريقة الاتصال (ألياف ضوئية، شبكة لا سلكية، … إلخ). إذا كانت الشبكة لديك جيدة فستكون نسبة الحزم المفقودة %0
وستحصُل على زمن وصول ببضعة أجزاء من الثانية.
ترجمة -وبتصرّف- لمقال All About PING Command لصاحبه Mohammad Forhad Iftekher.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.