| PING(8) | iputils | PING(8) |
الاسم¶
ping - إرسال طلب صدى ICMP إلى مضيفي الشبكة
موجز¶
ping [-aAbBdCDfhHLnOqrRUvV346] [-c count] [-e identifier] [-F flowlabel] [-i interval] [-I interface] [-l preload] [-m mark] [-M pmtudisc_option] [-N nodeinfo_option] [-w deadline] [-W timeout] [-p pattern] [-Q tos] [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp option] [hop...] {destination}
الوصف¶
يستخدم ping مخطط بيانات ECHO_REQUEST الإلزامي لبروتوكول ICMP للحصول على استجابة ECHO_RESPONSE من مضيف أو بوابة. تحتوي مخططات بيانات ECHO_REQUEST (“ping”) على رأس IP و ICMP، متبوعًا بهيكل timeval ثم عدد عشوائي من بايتات “الحشو” المستخدمة لملء الحزمة.
يعمل ping مع كل من IPv4 و IPv6. يمكن فرض استخدام واحد منهما فقط بشكل صريح بتحديد -4 أو -6.
يمكن لـ ping أيضًا إرسال استعلامات معلومات العقدة IPv6 (RFC4620). قد لا يُسمح بـ القفزات الوسيطة، لأن توجيه المصدر IPv6 قد تم إهماله (RFC5095).
الخيارات¶
-3
-4
-6
-a
-A
-b
-B
-c count
-C
-d
-D
-e identifier
-f
-F flow label
-h
-H
-i interval
-I interface
-l preload
-L
-m mark
-M pmtudisc_opt
-N nodeinfo_option
help
name
ipv6
ipv6-global
ipv6-sitelocal
ipv6-linklocal
ipv6-all
ipv4
ipv4-all
subject-ipv6=ipv6addr
subject-ipv4=ipv4addr
subject-name=nodename
subject-fqdn=nodename
-n
-O
-p pattern
-q
-Q tos
في RFC2474، تُفسّر هذه الحقول على أنها خدمات متمايزة (DS) ذات 8 بت، تتكون من: البتات 0-1 (أدنى بتين) من بيانات منفصلة، والبتات 2-7 (أعلى 6 بتات) من نقطة رمز الخدمات المتمايزة (DSCP). في RFC2481 وRFC3168، تُستخدم البتات 0-1 لـ ECN.
تاريخياً (RFC1349، الذي أُبطل بواسطة RFC2474)، فُسّرت هذه على النحو التالي: البت 0 (أدنى بت) للمحجوز (يُعاد تعريفه حالياً كتحكم في الازدحام)، 1-4 لنوع الخدمة والبتات 5-7 (أعلى بتات) للأسبقية.
-r
-R
-s حجم_الحزمة
-S sndbuf
-t ttl
-T timestamp option
-U
-v
-V
-w deadline
-W timeout
عند استخدام ping لعزل الأعطال، يجب تشغيله أولاً على المضيف المحلي، للتحقق من أن واجهة الشبكة المحلية قيد التشغيل. ثم، يجب “اختبار اتصال” المضيفات والبوابات الأبعد فالأبعد. تُحسب أزمنة الرحلة ذهاباً وإياباً وإحصائيات فقدان الحزمة. إذا تم استلام حزم مكررة، لا تُدرج في حساب فقدان الحزمة، على الرغم من استخدام زمن الرحلة ذهاباً وإياباً لهذه الحزم في حساب أرقام زمن الرحلة ذهاباً وإياباً الأدنى/المتوسط/الأقصى/الانحراف المعياري.
الانحراف المعياري للسكان (mdev)، وهو أساسًا متوسط مدى بُعد كل RTT ping عن متوسط RTT. كلما زاد mdev، زاد تباين RTT (بمرور الوقت). مع تباين RTT العالي، ستواجه مشكلات في السرعة مع النقل الجماعي (سيستغرق وقتًا أطول مما هو ضروري بالمعنى الدقيق، حيث سيؤدي التباين في النهاية إلى انتظار المرسل لـ ACKs) وستكون جودة VoIP متوسطة إلى ضعيفة.
عند إرسال (واستلام) العدد المحدد من الحزم أو إذا تم إنهاء البرنامج بـ SIGINT، يتم عرض ملخص موجز. يمكن الحصول على إحصائيات حالية أقصر دون إنهاء العملية باستخدام الإشارة SIGQUIT.
هذا البرنامج مخصص للاستخدام في اختبار الشبكة وقياسها وإدارتها. نظرًا للحمل الذي يمكن أن يفرضه على الشبكة، فمن غير الحكمة استخدام ping أثناء العمليات العادية أو من البرامج النصية الآلية.
البيئة¶
متغير البيئة IPUTILS_PING_PTR_LOOKUP المضبوط على 0 يعطل تحليل DNS العكسي (بحث PTR) بشكل مبدئي. سيتم تجاوزه بواسطة الخيار -H أو -n.
حالة الخروج¶
إذا لم يستلم ping أي حزم رد على الإطلاق، فسيخرج برمز 1. إذا تم تحديد كل من count و deadline، وتم استلام عدد أقل من count من الحزم بحلول وقت وصول deadline، فسيخرج أيضًا برمز 1. عند خطأ آخر، يخرج برمز 2. وإلا، يخرج برمز 0. هذا يجعل من الممكن استخدام رمز الخروج لمعرفة ما إذا كان المضيف نشطًا أم لا.
وجهات IPv6 المحلية للرابط¶
بالنسبة لـ IPv6، عندما يكون عنوان الوجهة ذو نطاق محلي للرابط ويستخدم ping مقابس مخططات بيانات ICMP، يجب تحديد واجهة الإخراج. عندما يستخدم ping مقابس خام، ليس من الضروري بالمعنى الدقيق تحديد واجهة الإخراج ولكن يجب القيام بذلك لتجنب الغموض عند وجود واجهات إخراج متعددة محتملة.
هناك طريقتان لتحديد واجهة الإخراج:
• باستخدام ترميز %
ping fe80::5054:ff:fe70:67bc%eth0
ping fe80::5054:ff:fe70:67bc%2
• باستخدام الخيار -I
تفاصيل حزمة ICMP¶
رأس IP بدون خيارات هو 20 بايت. تحتوي حزمة ICMP ECHO_REQUEST على 8 بايت إضافية من رأس ICMP متبوعة بكمية عشوائية من البيانات. عند إعطاء packetsize، يشير هذا إلى حجم هذه القطعة الإضافية من البيانات (المبدئي هو 56). وبالتالي، ستكون كمية البيانات المستلمة داخل حزمة IP من نوع ICMP ECHO_REPLY دائمًا 8 بايت أكثر من مساحة البيانات المطلوبة (رأس ICMP).
إذا كانت مساحة البيانات على الأقل بحجم struct timeval، يستخدم ping البايتات الأولى من هذه المساحة لتضمين طابع زمني يستخدمه في حساب أوقات الرحلة ذهابًا وإيابًا. إذا كانت مساحة البيانات أقصر، لا يتم إعطاء أوقات رحلة ذهابًا وإيابًا.
الحزم المكررة والتالفة¶
سيبلغ ping عن الحزم المكررة والتالفة. لا ينبغي أن تحدث الحزم المكررة أبدًا، ويبدو أنها ناتجة عن إعادة إرسال غير مناسبة على مستوى الرابط. قد تحدث التكرارات في العديد من المواقف ونادرًا ما تكون (إن حدثت) علامة جيدة، على الرغم من أن وجود مستويات منخفضة من التكرارات قد لا يكون دائمًا مدعاة للقلق.
الحزم التالفة هي بوضوح سبب خطير للقلق وغالبًا ما تشير إلى عطل في الأجهزة في مكان ما في مسار حزمة ping (في الشبكة أو في المضيفين).
تصادمات المعرف¶
على عكس TCP وUDP، اللذين يستخدمان المنفذ لتحديد المستلم بشكل فريد لتسليم البيانات، يستخدم ICMP حقل المعرف (ID) للتحديد. لذلك، إذا استخدمت عمليتا ping على نفس الجهاز وفي نفس الوقت نفس المعرف، فقد يتم تسليم رد الصدى إلى مستلم خاطئ. هذه مشكلة معروفة بسبب الحجم المحدود لحقل المعرف ذي 16 بت. هذا قيد تاريخي للبروتوكول لا يمكن إصلاحه في الوقت الحالي ما لم نقم بتشفير معرف في حمولة حزمة ping. يطبع ping خطأ DIFFERENT ADDRESS ويكون فقدان الحزمة سالبًا.
يستخدم ping PID للحصول على رقم فريد. القيمة المبدئية لـ /proc/sys/kernel/pid_max هي 32768. على الأنظمة التي تستخدم ping بكثافة ومع pid_max أكبر من 65535، من المحتم حدوث تصادمات.
محاولة أنماط بيانات مختلفة¶
يجب ألا تعالج طبقة (الإنترنت) الشبكة الحزم بشكل مختلف اعتمادًا على البيانات الموجودة في جزء البيانات. لسوء الحظ، من المعروف أن المشكلات المعتمدة على البيانات تتسلل إلى الشبكات وتبقى غير مكتشفة لفترات طويلة من الزمن. في العديد من الحالات، النمط المحدد الذي سيواجه مشكلات هو شيء لا يحتوي على “تحولات” كافية، مثل كل الآحاد أو كل الأصفار، أو نمط على الحافة تمامًا، مثل كل الأصفار تقريبًا. ليس من الضروري بالضرورة تحديد نمط بيانات من كل الأصفار (على سبيل المثال) في سطر الأوامر لأن النمط المهم هو على مستوى وصلة البيانات، والعلاقة بين ما تكتبه وما تنقله وحدات التحكم يمكن أن تكون معقدة.
هذا يعني أنه إذا كان لديك مشكلة معتمدة على البيانات، فربما ستحتاج إلى إجراء الكثير من الاختبارات للعثور عليها. إذا كنت محظوظًا، فقد تتمكن من العثور على ملف لا يمكن إرساله عبر شبكتك أو يستغرق وقتًا أطول بكثير لنقله مقارنة بالملفات الأخرى ذات الطول المماثل. يمكنك بعد ذلك فحص هذا الملف بحثًا عن أنماط متكررة يمكنك اختبارها باستخدام الخيار -p من ping.
تفاصيل TTL¶
تمثل قيمة TTL لحزمة IP الحد الأقصى لعدد موجهات IP التي يمكن أن تمر بها الحزمة قبل التخلص منها. في الممارسة الحالية، يمكنك توقع أن يقوم كل موجه في الإنترنت بإنقاص حقل TTL بمقدار واحد بالضبط.
قد يأخذ حقل TTL لحزم TCP قيمًا مختلفة. القيمة القصوى الممكنة لهذا الحقل هي 255، والقيمة المبدئية الموصى بها هي 64. لمزيد من المعلومات، راجع قسم واجهة TCP/المستوى الأدنى من RFC9293.
في التشغيل العادي، يطبع ping قيمة TTL من الحزمة التي يستقبلها. عندما يستقبل نظام بعيد حزمة ping، يمكنه فعل أحد ثلاثة أشياء بحقل TTL في استجابته:
العلل¶
انظر أيضًا¶
التاريخ¶
ظهر أمر ping في 4.3BSD.
الإصدار الموصوف هنا هو نسخته السليلة الخاصة بـ Linux.
اعتبارًا من الإصدار s20150815، لم يعد الملف الثنائي ping6 موجودًا. تم دمجه في ping. إنشاء رابط رمزي باسم ping6 يشير إلى ping سيؤدي إلى نفس الوظيفة كما في السابق.
الأمن¶
يتطلب ping صلاحية CAP_NET_RAW للتنفيذ 1) إذا استُخدم البرنامج لاستعلامات غير الصدى (انظر الخيار -N) أو عندما يُضبط حقل التعريف على 0 لطلب ECHO_REQUEST (انظر -e)، أو 2) إذا لم تدعم النواة مقابس بيانات ICMP، أو 3) إذا لم يُسمح للمستخدم بإنشاء مقبس صدى ICMP. قد يُستخدم البرنامج كجذر set-uid.
التوفر¶
ping جزء من حزمة iputils.
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| iputils 20250605 |