Εγχειρίδια για τη γραμμή εντολών

Man » Ping Manual online - αναλυτική διαδικτυακή τεκμηρίωση για τη σελίδα man του ping

🌍
ping - αποστολή ICMP ECHO_REQUEST σε hosts δικτύου

ΣΥΝΟΨΗ

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 χρησιμοποιεί το υποχρεωτικό πακέτο ICMP ECHO_REQUEST για να προκαλέσει μια απάντηση ICMP ECHO_RESPONSE
από έναν host ή μια πύλη. Τα πακέτα ECHO_REQUEST (“pings”) έχουν μια κεφαλίδα IP και ICMP, ακολουθούμενη από
μια δομή timeval και στη συνέχεια έναν αυθαίρετο αριθμό byte “πλήρωσης” που χρησιμοποιούνται για να συμπληρώσουν το πακέτο.

Το ping λειτουργεί τόσο με IPv4 όσο και με IPv6. Η χρήση μόνο ενός από αυτά μπορεί να επιβληθεί
καθορίζοντας τις επιλογές -4 ή -6.

Το ping μπορεί επίσης να στείλει ερωτήματα πληροφοριών κόμβων IPv6 (RFC4620). Οι ενδιάμεσοι κόμβοι ενδέχεται να μην επιτρέπονται,
επειδή η δρομολόγηση πηγής IPv6 έχει καταργηθεί (RFC5095).

ΕΠΙΛΟΓΕΣ

-3
Ακρίβεια RTT (μην στρογγυλοποιήσετε το αποτέλεσμα χρόνου).

-4
Χρήση μόνο IPv4.

-6
Χρήση μόνο IPv6.

-a
Ακούσιμο ping.

-A
Προσαρμοστικό ping. Το διάστημα μεταξύ των πακέτων προσαρμόζεται στον χρόνο ανταπόκρισης, έτσι ώστε στην ουσία να μην υπάρχει περισσότερο από ένα (ή περισσότερα, εάν έχει οριστεί η επιλογή preload) μη απαντημένο πακέτο στο δίκτυο. Η προεπιλεγμένη τιμή είναι 2 ms, για περισσότερες πληροφορίες δείτε την επιλογή -i. Σε δίκτυα με χαμηλό RTT, αυτή η λειτουργία είναι ουσιαστικά ισοδύναμη με τη λειτουργία πλημμύρας.

-b
Επιτρέψτε την αποστολή ping σε μια διεύθυνση εκπομπής.

-B
Μην επιτρέπεται στο ping να αλλάξει τη διεύθυνση πηγής των πακέτων. Η διεύθυνση συνδέεται με μια που επιλέχθηκε όταν ξεκίνησε το ping.

-c count
Σταματήστε μετά την αποστολή count πακέτων ECHO_REQUEST. Με την επιλογή deadline, το ping περιμένει για count πακέτα ECHO_REPLY, μέχρι να λήξει ο χρόνος αναμονής.

-C
Κλήση της συνάρτησης connect() στο socket κατά τη δημιουργία του.

-d
Ορίστε την επιλογή SO_DEBUG στο socket που χρησιμοποιείται. Στην ουσία, αυτή η επιλογή socket δεν χρησιμοποιείται από τον πυρήνα του Linux.

-D
Εκτύπωση της χρονικής σήμανσης (unix time + μικροδευτερόλεπτα όπως στην gettimeofday) πριν από κάθε γραμμή.

-e identifier
Ορίστε το πεδίο αναγνώρισης του ECHO_REQUEST. Η τιμή 0 υποδηλώνει τη χρήση ενός raw socket (δεν υποστηρίζεται σε ένα socket datagram ICMP). Η τιμή του πεδίου μπορεί να εκτυπωθεί με την επιλογή -v.

-f
Ping πλημμύρας. Για κάθε ECHO_REQUEST που αποστέλλεται, εκτυπώνεται μια τελεία “.”, ενώ για κάθε ECHO_REPLY που λαμβάνεται, εκτυπώνεται ένα backspace. Αυτό παρέχει μια γρήγορη απεικόνιση του πόσα πακέτα απορρίπτονται. Εάν δεν δοθεί διάστημα, ορίζει το διάστημα σε μηδέν και εξάγει πακέτα όσο γρήγορα μπορούν να επιστρέψουν ή εκατό φορές ανά δευτερόλεπτο, όποιο είναι μεγαλύτερο. Μόνο ο χρήστης root μπορεί να χρησιμοποιήσει αυτήν την επιλογή με διάστημα μηδέν.

-F flow label
Μόνο IPv6. Εκχωρήστε και ορίστε την ετικέτα ροής 20 bit (σε δεκαεξαδική μορφή) στα πακέτα αιτήματος echo. Εάν η τιμή είναι μηδέν, ο πυρήνας εκχωρεί μια τυχαία ετικέτα ροής.

-h
Εμφάνιση βοήθειας.

-H
Αναγκαστική ανάλυση DNS για την έξοδο. Χρήσιμο για αριθμητικό προορισμό ή την επιλογή -f, η οποία από προεπιλογή δεν εκτελεί αυτήν. Μπορεί επίσης να βοηθήσει στην επίλυση προβλημάτων ανάλυσης DNS. Αντικαθιστά την προηγουμένως καθορισμένη επιλογή -n. Δείτε επίσης τη μεταβλητή περιβάλλοντος IPUTILS_PING_PTR_LOOKUP.

-i interval
Χρόνος αναμονής σε δευτερόλεπτα μεταξύ της αποστολής κάθε πακέτου. Επιτρέπεται πραγματικός αριθμός με δεκαδικό διαχωριστικό (ανεξάρτητα από τη ρύθμιση της τοπικής ρύθμισης). Η προεπιλογή είναι να περιμένει ένα δευτερόλεπτο μεταξύ κάθε πακέτου κανονικά ή να μην περιμένει σε λειτουργία πλημμύρας. Μόνο ο χρήστης με δικαιώματα διαχειριστή μπορεί να ορίσει το διάστημα σε τιμές μικρότερες από 2 ms. Το ping broadcast και multicast έχουν ακόμη υψηλότερο περιορισμό για κανονικό χρήστη: το ελάχιστο είναι 1 δευτερόλεπτο.

-I interface
Το interface είναι είτε μια διεύθυνση, ένα όνομα διεπαφής ή ένα όνομα VRF. Εάν το interface είναι μια διεύθυνση, ορίζει τη διεύθυνση προέλευσης στην καθορισμένη διεύθυνση διεπαφής. Εάν το interface είναι ένα όνομα διεπαφής, ορίζει τη διεπαφή προέλευσης στην καθορισμένη διεπαφή. Εάν το interface είναι ένα όνομα VRF, κάθε πακέτο δρομολογείται χρησιμοποιώντας την αντίστοιχη πίνακα δρομολόγησης. Σε αυτήν την περίπτωση, η επιλογή -I μπορεί να επαναληφθεί για να καθοριστεί μια διεύθυνση προέλευσης. ΣΗΜΕΙΩΣΗ: Για το IPv6, κατά την εκτέλεση ping σε μια διεύθυνση με εύρος σύνδεσης, μπορεί να χρησιμοποιηθεί η προδιαγραφή σύνδεσης (με την ετικέτα '%'- στην προορισμό ή με αυτήν την επιλογή), αλλά δεν είναι πλέον απαραίτητο.

-l preload
Εάν καθοριστεί το preload, το ping στέλνει αυτόν τον αριθμό πακέτων χωρίς να περιμένει απάντηση. Μόνο ο χρήστης με δικαιώματα διαχειριστή μπορεί να επιλέξει preload μεγαλύτερο από 3.

-L
Καταστολή της επαναδρομολόγησης των πακέτων multicast. Αυτή η σημαία ισχύει μόνο εάν ο προορισμός του ping είναι μια διεύθυνση multicast.

-m mark
Χρησιμοποιήστε τη σήμανση για να επισημάνετε τα πακέτα που αποστέλλονται. Αυτό είναι χρήσιμο για διάφορους λόγους μέσα στον πυρήνα, όπως η χρήση της δρομολόγησης πολιτικής για την επιλογή συγκεκριμένης επεξεργασίας εξόδου. Απαιτείται η δυνατότητα CAP_NET_ADMIN ή CAP_NET_RAW (από την Linux 5.17), δείτε το socket(7).

-M pmtudisc_opt
Επιλέξτε στρατηγική Path MTU Discovery. Το pmtudisc_option μπορεί να είναι είτε do (ορίστε τη σημαία DF αλλά υπόκειται σε ελέγχους PMTU από τον πυρήνα, τα πακέτα που είναι πολύ μεγάλα θα απορρίπτονται), want (εκτελέστε το PMTU discovery, κατατμήστε τοπικά όταν το μέγεθος του πακέτου είναι μεγάλο), probe (ορίστε τη σημαία DF και παρακάμψτε τους ελέγχους PMTU, χρήσιμο για δοκιμή) ή dont (μην ορίσετε τη σημαία DF).

-N nodeinfo_option
Μόνο IPv6. Αποστολή Ερωτημάτων Πληροφοριών Κόμβου IPv6 (RFC4620) αντί για Αιτήματα Echo. Απαιτείται η δυνατότητα CAP_NET_RAW.

help
Εμφάνιση βοήθειας για την υποστήριξη NI.

name
Ερωτήσεις για Ονόματα Κόμβων.

ipv6
Ερωτήσεις για Διευθύνσεις IPv6. Υπάρχουν αρκετές συγκεκριμένες σημαίες IPv6.

ipv6-global
Αίτηση διευθύνσεων IPv6 με εύρος global.

ipv6-sitelocal
Αίτηση διευθύνσεων IPv6 με εύρος site-local.

ipv6-linklocal
Αίτηση διευθύνσεων IPv6 με εύρος link-local.

ipv6-all
Αίτηση διευθύνσεων IPv6 σε άλλες διεπαφές.

ipv4
Ερωτήσεις για Διευθύνσεις IPv4. Υπάρχει μία συγκεκριμένη σημαία IPv4.

ipv4-all
Αίτηση διευθύνσεων IPv4 σε άλλες διεπαφές.

subject-ipv6=ipv6addr
Διεύθυνση θέματος IPv6.

subject-ipv4=ipv4addr
Διεύθυνση θέματος IPv4.

subject-name=nodename
Όνομα θέματος. Εάν περιέχει περισσότερες από μία τελείες, υποτίθεται ότι είναι πλήρως προσδιορισμένο όνομα τομέα.

subject-fqdn=nodename
Όνομα θέματος. Υποτίθεται πάντα ότι είναι πλήρως προσδιορισμένο όνομα τομέα.

-n
Αριθμητική έξοδος μόνο. Δεν θα γίνει καμία προσπάθεια αναζήτησης συμβολικών ονομάτων για διευθύνσεις κεντρικών υπολογιστών (καμία αντίστροφη επίλυση DNS). Αυτή είναι η προεπιλογή για αριθμητικό προορισμό ή την επιλογή -f. Παρακάμπτει προηγουμένως ορισμένες επιλογές -H. Δείτε επίσης τη μεταβλητή περιβάλλοντος IPUTILS_PING_PTR_LOOKUP.

-O
Αναφορά εκκρεμών απαντήσεων ICMP ECHO πριν από την αποστολή του επόμενου πακέτου. Αυτό είναι χρήσιμο σε συνδυασμό με την επιλογή χρονικής σήμανσης -D για την καταγραφή της εξόδου σε ένα αρχείο διαγνωστικών και την αναζήτηση απαντήσεων που λείπουν.

-p pattern
Μπορείτε να καθορίσετε έως και 16 byte "γεμίσματος" για να συμπληρώσετε το πακέτο που στέλνετε. Αυτό είναι χρήσιμο για τη διάγνωση προβλημάτων που εξαρτώνται από τα δεδομένα σε ένα δίκτυο. Για παράδειγμα, το -p ff θα προκαλέσει το αποσταλμένο πακέτο να γεμίσει με όλα τα "1".

-q
Αθόρυβη έξοδος. Δεν εμφανίζεται τίποτα εκτός από τις γραμμές περίληψης κατά την έναρξη και κατά το τέλος.

-Q tos
Ορίστε τις σχετικές με την ποιότητα εξυπηρέτησης (Quality of Service) (QoS) bit στα datagrams ICMP. Το tos μπορεί να είναι δεκαδικός ή δεκαεξαδικός αριθμός (μόνο ping).

Στο RFC2474, αυτά τα πεδία ερμηνεύονται ως bit 8-bit Differentiated Services (DS), που αποτελούνται από: τα bit 0-1 (2 χαμηλότερα bit) ξεχωριστών δεδομένων και τα bit 2-7 (6 υψηλότερα bit) του Differentiated Services Codepoint (DSCP). Στα RFC2481 και RFC3168, τα bit 0-1 χρησιμοποιούνται για το ECN.

Ιστορικά (RFC1349, που έχει καταργηθεί από το RFC2474), αυτά ερμηνεύονταν ως: το bit 0 (χαμηλότερο bit) για αποκλειστική χρήση (που επαναπροσδιορίζεται επί του παρόντος ως έλεγχος συμφόρησης), 1-4 για τον Τύπο Υπηρεσίας και τα bit 5-7 (υψηλότερα bit) για την Προτεραιότητα.

-r
Παράκαμψη των κανονικών πινάκων δρομολόγησης και αποστολή απευθείας σε έναν κεντρικό υπολογιστή σε ένα συνδεδεμένο περιβάλλον. Εάν ο κεντρικός υπολογιστής δεν βρίσκεται σε ένα άμεσα συνδεδεμένο δίκτυο, επιστρέφεται ένα σφάλμα. Αυτή η επιλογή μπορεί να χρησιμοποιηθεί για τη σύνδεση ενός τοπικού κεντρικού υπολογιστή μέσω ενός περιβάλλοντος που δεν διαθέτει διαδρομή, με την προϋπόθεση ότι χρησιμοποιείται επίσης η επιλογή -I.

-R
μόνο ping. Καταγραφή διαδρομής. Περιλαμβάνει την επιλογή RECORD_ROUTE στο πακέτο ECHO_REQUEST και εμφανίζει το buffer διαδρομής στα πακέτα που επιστρέφονται. Σημειώστε ότι η κεφαλίδα IP είναι αρκετά μεγάλη για μόνο εννέα τέτοιες διαδρομές. Πολλοί κεντρικοί υπολογιστές αγνοούν ή απορρίπτουν αυτήν την επιλογή.

-s packetsize
Καθορίζει τον αριθμό των byte δεδομένων που θα αποσταλούν. Η προεπιλογή είναι 56, η οποία μεταφράζεται σε 64 byte δεδομένων ICMP όταν συνδυάζεται με τα 8 byte της κεφαλίδας δεδομένων ICMP. Η μέγιστη επιτρεπόμενη τιμή είναι 65507 για IPv4 (65467 όταν χρησιμοποιούνται οι επιλογές -R ή -T ή ενδιάμεσες διαδρομές) ή 65527 για IPv6, αλλά τα περισσότερα συστήματα περιορίζουν αυτόν τον αριθμό σε έναν μικρότερο, αριθμό που εξαρτάται από το σύστημα.

-S sndbuf
Ορισμός του socket sndbuf. Εάν δεν καθοριστεί, επιλέγεται ώστε να αποθηκεύει το πολύ ένα πακέτο.

-t ttl
μόνο ping. Ορίστε το IP Time to Live.

-T timestamp option
Ορίστε ειδικές επιλογές χρονικής σήμανσης IP. Η επιλογή χρονικής σήμανσης μπορεί να είναι tsonly (μόνο χρονικές σημάνσεις), tsandaddr (χρονικές σημάνσεις και διευθύνσεις) ή tsprespec host1 [host2 [host3 [host4]]] (χρονική σήμανση προκαθορισμένων διαδρομών).

-U
Εκτύπωση της πλήρους καθυστέρησης χρήστη σε χρήστη (η παλαιότερη συμπεριφορά). Συνήθως, το ping εκτυπώνει τον χρόνο μεταφοράς δικτύου, ο οποίος μπορεί να είναι διαφορετικός, π.χ. λόγω αστοχιών DNS.

-v

Λεπτομερής έξοδος. Μην καταστέλλετε τις διπλότυπες απαντήσεις κατά την εκτέλεση ping σε μια διεύθυνση multicast.

-V

Εμφάνιση της έκδοσης και έξοδος.

-w deadline

Καθορίστε ένα χρονικό όριο, σε δευτερόλεπτα, πριν το ping τερματιστεί, ανεξάρτητα από τον αριθμό των πακέτων που έχουν σταλεί ή ληφθεί. Σε αυτήν την περίπτωση, το ping δεν σταματά μετά την αποστολή ενός συγκεκριμένου αριθμού πακέτων, αλλά περιμένει είτε μέχρι να λήξει το χρονικό όριο, είτε μέχρι να απαντηθούν όλα τα πακέτα, είτε μέχρι να εμφανιστεί κάποια ένδειξη σφάλματος από το δίκτυο.

-W timeout

Χρόνος αναμονής για μια απάντηση, σε δευτερόλεπτα. Αυτή η επιλογή επηρεάζει μόνο το χρονικό όριο σε περίπτωση που δεν ληφθούν απαντήσεις, διαφορετικά το ping περιμένει για δύο RTT (Round Trip Time). Επιτρέπεται η χρήση δεκαδικού αριθμού με τελεία ως διαχωριστικό. Το 0 σημαίνει άπειρο χρονικό όριο.

Όταν χρησιμοποιείται το ping για την απομόνωση σφαλμάτων, θα πρέπει πρώτα να εκτελεστεί στην τοπική μηχανή, για να επαληθευτεί ότι η τοπική διεπαφή δικτύου είναι ενεργή και λειτουργεί. Στη συνέχεια, θα πρέπει να εκτελεστεί ping σε υπολογιστές και πύλες που βρίσκονται όλο και πιο μακριά. Υπολογίζονται οι χρόνοι μεταφοράς (round-trip times) και τα στατιστικά στοιχεία απώλειας πακέτων. Εάν ληφθούν διπλότυπα πακέτα, αυτά δεν συμπεριλαμβάνονται στον υπολογισμό της απώλειας πακέτων, αν και ο χρόνος μεταφοράς αυτών των πακέτων χρησιμοποιείται στον υπολογισμό του ελάχιστου/μέσου/μέγιστου/τυπικής απόκλισης χρόνου μεταφοράς.

Η τυπική απόκλιση (mdev) του πληθυσμού, ουσιαστικά μια μέση τιμή του πόσο μακριά βρίσκεται κάθε χρόνος μεταφοράς ping από τον μέσο χρόνο μεταφοράς. Όσο μεγαλύτερη είναι η mdev, τόσο πιο μεταβλητός είναι ο χρόνος μεταφοράς (με την πάροδο του χρόνου). Με υψηλή μεταβλητότητα χρόνου μεταφοράς, θα έχετε προβλήματα ταχύτητας στις μαζικές μεταφορές δεδομένων (θα χρειαστούν περισσότερο χρόνο από όσο θα έπρεπε, καθώς η μεταβλητότητα τελικά θα προκαλέσει την αναμονή του αποστολέα για τις επιβεβαιώσεις) και θα έχετε μέτρια έως κακή ποιότητα VoIP.

Όταν ο καθορισμένος αριθμός πακέτων έχει σταλεί (και ληφθεί) ή εάν το πρόγραμμα τερματιστεί με ένα SIGINT, εμφανίζεται μια σύντομη περίληψη. Μπορείτε να λάβετε πιο σύντομα τρέχοντα στατιστικά στοιχεία χωρίς τον τερματισμό της διαδικασίας με το σήμα SIGQUIT.

Αυτό το πρόγραμμα προορίζεται για χρήση σε δοκιμές, μετρήσεις και διαχείριση δικτύου. Λόγω της φόρτισης που μπορεί να επιβάλλει στο δίκτυο, δεν είναι συνετό να χρησιμοποιείτε το ping κατά τη διάρκεια της κανονικής λειτουργίας ή από αυτοματοποιημένα σενάρια.

ΠΕΡΙΒΑΛΛΟΝ

Η μεταβλητή περιβάλλοντος IPUTILS_PING_PTR_LOOKUP, όταν έχει οριστεί σε 0, απενεργοποιεί την αντίστροφη ανάλυση DNS (PTR lookup) από προεπιλογή. Αυτή η ρύθμιση θα παρακάμπτεται από τις επιλογές -H ή -n.

ΚΩΔΙΚΟΣ ΕΞΟΔΟΥ

Εάν το ping δεν λάβει καθόλου απαντητικά πακέτα, θα τερματιστεί με κωδικό 1. Εάν καθοριστεί τόσο ο αριθμός πακέτων όσο και το χρονικό όριο και λάβει λιγότερα από τον καθορισμένο αριθμό πακέτων μέχρι τη στιγμή που λήξει το χρονικό όριο, θα τερματιστεί επίσης με κωδικό 1. Σε περίπτωση άλλου σφάλματος, τερματίζεται με κωδικό 2. Διαφορετικά, τερματίζεται με κωδικό 0. Αυτό καθιστά δυνατή τη χρήση του κώδικα εξόδου για να διαπιστωθεί εάν ένας υπολογιστής είναι ενεργός ή όχι.

Για το IPv6, όταν η διεύθυνση προορισμού έχει εμβέλεια link-local και το ping χρησιμοποιεί υποδοχές ICMP datagram, η διεπαφή εξόδου πρέπει να καθοριστεί. Όταν το ping χρησιμοποιεί υποδοχές raw, δεν είναι αυστηρά απαραίτητο να καθοριστεί η διεπαφή εξόδου, αλλά θα πρέπει να γίνει για να αποφευχθεί η ασάφεια όταν υπάρχουν πολλές πιθανές διεπαφές εξόδου.

Υπάρχουν δύο τρόποι για να καθορίσετε τη διεπαφή εξόδου:

χρησιμοποιώντας την σημειογραφία %

Η διεύθυνση προορισμού συνοδεύεται από το σύμβολο % και το όνομα της διεπαφής εξόδου ή το ifindex, για παράδειγμα:

ping fe80::5054:ff:fe70:67bc%eth0

ping fe80::5054:ff:fe70:67bc%2

χρησιμοποιώντας την επιλογή -I

Όταν χρησιμοποιείτε υποδοχές ICMP, αυτή η μέθοδος υποστηρίζεται από τις ακόλουθες εκδόσεις πυρήνα: 5.17, 5.15.19, 5.10.96, 5.4.176, 4.19.228, 4.14.265. Επίσης, δεν υποστηρίζεται στην musl libc.

ΛΕΠΤΟΜΕΡΕΙΕΣ ΠΑΚΕΤΩΝ ICMP

Μια κεφαλίδα IP χωρίς επιλογές είναι 20 byte. Ένα πακέτο ICMP ECHO_REQUEST περιέχει επιπλέον 8 byte της κεφαλίδας ICMP και ένα αυθαίρετο ποσό δεδομένων. Όταν δίνεται ένα μέγεθος πακέτου, αυτό υποδεικνύει το μέγεθος αυτού του επιπλέον τμήματος δεδομένων (η προεπιλογή είναι 56). Επομένως, η ποσότητα των δεδομένων που λαμβάνονται μέσα σε ένα πακέτο IP τύπου ICMP ECHO_REPLY θα είναι πάντα 8 byte μεγαλύτερη από το απαιτούμενο χώρο δεδομένων (η κεφαλίδα ICMP).

Εάν ο χώρος δεδομένων είναι τουλάχιστον το μέγεθος μιας δομής timeval, το ping χρησιμοποιεί τα αρχικά byte αυτού του χώρου για να συμπεριλάβει μια χρονική σήμανση, την οποία χρησιμοποιεί στον υπολογισμό των χρόνων ανταπόκρισης. Εάν ο χώρος δεδομένων είναι μικρότερος, δεν παρέχονται χρόνοι ανταπόκρισης.

ΔΙΠΛΑ ΚΑΙ ΚΑΚΟΒΟΥΛΑ ΠΑΚΕΤΑ

το ping θα αναφέρει διπλά και κατεστραμμένα πακέτα. Τα διπλά πακέτα δεν θα πρέπει ποτέ να συμβαίνουν και φαίνεται ότι
προκαλούνται από ακατάλληλες επαναμεταδόσεις σε επίπεδο σύνδεσης. Τα διπλά μπορεί να συμβούν σε πολλές καταστάσεις
και σπάνια (αν όχι ποτέ) είναι καλό σημάδι, αν και η παρουσία χαμηλών επιπέδων διπλών δεν είναι πάντα λόγος ανησυχίας.

Τα κατεστραμμένα πακέτα είναι σαφώς σοβαρός λόγος ανησυχίας και συχνά υποδηλώνουν κατεστραμμένο υλικό κάπου στη διαδρομή του πακέτου ping (στο δίκτυο ή στους υπολογιστές).

ΣΥΓΚΡΟΥΣΕΙΣ ID

Σε αντίθεση με τα TCP και UDP, τα οποία χρησιμοποιούν θύρα για να προσδιορίσουν μοναδικά τον παραλήπτη για την παράδοση δεδομένων, το ICMP χρησιμοποιεί το πεδίο αναγνωριστικού (ID) για αναγνώριση. Επομένως, εάν στην ίδια μηχανή, την ίδια στιγμή, δύο διαδικασίες ping χρησιμοποιούν το ίδιο ID, η απάντηση μπορεί να παραδοθεί σε έναν λανθασμένο παραλήπτη. Αυτό είναι ένα γνωστό πρόβλημα λόγω του περιορισμένου μεγέθους του πεδίου ID 16 bit. Αυτός είναι ένας ιστορικός περιορισμός του πρωτοκόλλου που δεν μπορεί να διορθωθεί προς το παρόν, εκτός εάν κωδικοποιήσουμε ένα ID στο περιεχόμενο του πακέτου ping. Το ping εκτυπώνει σφάλμα ΔΙΑΦΟΡΕΤΙΚΗΣ ΔΙΕΥΘΥΝΣΗΣ και η απώλεια πακέτων είναι αρνητική.

το ping χρησιμοποιεί το PID για να λάβει έναν μοναδικό αριθμό. Η προεπιλεγμένη τιμή του /proc/sys/kernel/pid_max είναι 32768. Σε συστήματα που χρησιμοποιούν εκτενώς το ping και με pid_max μεγαλύτερο από 65535, οι συγκρούσεις είναι βέβαιο ότι θα συμβούν.

ΔΟΚΙΜΗ ΔΙΑΦΟΡΕΤΙΚΩΝ ΜΟΤΙΒΩΝ ΔΕΔΟΜΕΝΩΝ

Το (δια)δίκτυο δεν θα πρέπει ποτέ να μεταχειρίζεται διαφορετικά τα πακέτα ανάλογα με τα δεδομένα που περιέχονται στο τμήμα δεδομένων. Δυστυχώς, προβλήματα που εξαρτώνται από τα δεδομένα έχουν γίνει γνωστά ότι εισέρχονται σε δίκτυα και παραμένουν ανεντόπιστα για μεγάλα χρονικά διαστήματα. Σε πολλές περιπτώσεις, το συγκεκριμένο μοτίβο που θα προκαλέσει προβλήματα είναι κάτι που δεν έχει αρκετές «μεταβάσεις», όπως όλα τα 1 ή όλα τα 0, ή ένα μοτίβο ακριβώς στο όριο, όπως σχεδόν όλα τα 0. Δεν είναι απαραίτητα αρκετό να καθορίσετε ένα μοτίβο δεδομένων που αποτελείται από όλα τα 0 (για παράδειγμα) στη γραμμή εντολών, επειδή το μοτίβο που ενδιαφέρει βρίσκεται σε επίπεδο σύνδεσης δεδομένων και η σχέση μεταξύ αυτού που πληκτρολογείτε και αυτού που μεταδίδουν οι ελεγκτές μπορεί να είναι περίπλοκη.


Αυτό σημαίνει ότι εάν έχετε ένα πρόβλημα που εξαρτάται από τα δεδομένα, πιθανότατα θα πρέπει να κάνετε πολλές δοκιμές για να το εντοπίσετε. Αν είστε τυχεροί, ίσως καταφέρετε να βρείτε ένα αρχείο που είτε δεν μπορεί να σταλεί μέσω του δικτύου σας είτε χρειάζεται πολύ περισσότερο χρόνο για να μεταφερθεί από άλλα παρόμοιου μεγέθους αρχεία. Στη συνέχεια, μπορείτε να εξετάσετε αυτό το αρχείο για επαναλαμβανόμενα μοτίβα που μπορείτε να δοκιμάσετε χρησιμοποιώντας την επιλογή -p της εντολής ping.

ΛΕΠΤΟΜΕΡΕΙΕΣ TTL

Η τιμή TTL ενός πακέτου IP αντιπροσωπεύει τον μέγιστο αριθμό δρομολογητών IP από τους οποίους μπορεί να περάσει το πακέτο πριν απορριφθεί. Στη σύγχρονη πρακτική, μπορείτε να περιμένετε ότι κάθε δρομολογητής στο Διαδίκτυο θα μειώνει την τιμή του πεδίου TTL κατά ακριβώς ένα.

Το πεδίο TTL για πακέτα TCP μπορεί να έχει διάφορες τιμές. Η μέγιστη δυνατή τιμή αυτού του πεδίου είναι 255, μια συνιστώμενη αρχική τιμή είναι 64. Για περισσότερες πληροφορίες, δείτε την ενότητα TCP/Lower-Level Interface του RFC9293.

Σε κανονική λειτουργία, η εντολή ping εκτυπώνει την τιμή TTL από το πακέτο που λαμβάνει. Όταν ένα απομακρυσμένο σύστημα λαμβάνει ένα πακέτο ping, μπορεί να κάνει ένα από τα τρία ακόλουθα πράγματα με το πεδίο TTL στην απάντησή του:

*   Δεν το αλλάζει. Αυτό ήταν που έκαναν τα συστήματα Berkeley Unix πριν από την έκδοση 4.3BSD Tahoe. Σε αυτήν την περίπτωση, η τιμή TTL στο ληφθέν πακέτο θα είναι 255 μείον τον αριθμό των δρομολογητών στη διαδρομή μετάβασης.

*   Το ορίζει σε 255. Αυτό είναι που κάνουν τα τρέχοντα συστήματα Berkeley Unix. Σε αυτήν την περίπτωση, η τιμή TTL στο ληφθέν πακέτο θα είναι 255 μείον τον αριθμό των δρομολογητών στη διαδρομή από το απομακρυσμένο σύστημα στον υπολογιστή που εκτελεί την εντολή ping.

*   Το ορίζει σε μια άλλη τιμή. Ορισμένες συσκευές χρησιμοποιούν την ίδια τιμή για πακέτα ICMP με αυτή που χρησιμοποιούν για πακέτα TCP, για παράδειγμα είτε 30 είτε 60. Άλλες ενδέχεται να χρησιμοποιούν εντελώς τυχαίες τιμές.

ΣΦΑΛΜΑΤΑ

Πολλοί διακομιστές και πύλες αγνοούν την επιλογή RECORD_ROUTE.

Το μέγιστο μήκος της κεφαλίδας IP είναι πολύ μικρό για να είναι πλήρως χρήσιμες επιλογές όπως η RECORD_ROUTE. Ωστόσο, δεν υπάρχει και πολλά που μπορεί να γίνει γι' αυτό.

Η εκτέλεση της εντολής ping σε κατάσταση πλημμύρας δεν συνιστάται γενικά, και η εκτέλεση της εντολής ping στην διεύθυνση μετάδοσης θα πρέπει να γίνεται μόνο υπό πολύ ελεγχόμενες συνθήκες.

ΔΕΙΤΕ ΕΠΙΣΗΣ

ip(8), ss(8).

ΙΣΤΟΡΙΚΟ

Η εντολή 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 root.

ΔΙΑΘΕΣΙΜΟΤΗΤΑ

Η εντολή ping αποτελεί μέρος του πακέτου iputils.