ping (logiciel)
Ping est le nom d'une commande informatique permettant de tester l'accessibilité d'une autre machine à travers un réseau IP. La commande mesure également le temps mis pour recevoir une réponse, appelé round-trip time (temps aller-retour).
Créateur | Mike Muuss |
---|---|
Fichiers exécutables |
ping (.exe ) |
Première version | |
Système d'exploitation | Type Unix, macOS, Microsoft Windows, ReactOS, Unix et FreeDOS |
Type |
Command-line tool (d) Utilitaire de réseau (en) |
Politique de distribution | incorporé aux systèmes |
Licence | Licence BSD |
Ping utilise une requête ICMP Request et attend une réponse Reply. L'envoi est répété pour des fins statistiques : déterminer le taux de paquets perdus et le délai moyen de réponse. Si d'autres messages ICMP sont reçus de la part de routeurs intermédiaires (comme TTL exceeded, Fragmentation needed, administratively prohibited…), ils sont affichés à l'écran.
Normalement le paramètre TTL (Time to Live) d'un paquet indique le nombre maximal de routeurs intermédiaires que l'on peut encore traverser pour atteindre la cible. Dans la réponse d'un ping, il permet donc de déterminer combien de routeurs ont été traversés pour effectuer le retour. Dans l'exemple ci-dessous un TTL de 53 signifie que l'on a probablement traversé 11 routeurs. (Par défaut le TTL initial est de 64 ou 128 voire plus rarement 255 et en moyenne un paquet traverse environ 10-15 routeurs pour la plupart des destinations)
Un délai élevé et variable, ou un taux de paquets perdus non nul, peut s'expliquer par un problème de congestion dans le réseau, un problème de qualité sur un lien ou un problème de performance affectant le système cible.
Des commandes avancées de ping permettent d'effectuer le test avec des tailles de paquets variables et de le répéter un certain nombre de fois. Il est parfois possible de lancer de nombreux paquets sans attendre de réponse (flood ping), ce qui peut constituer une attaque par déni de service si la machine de destination ou le réseau intermédiaire sont submergés.
Certains pare-feux bloquent les paquets ICMP Echo, rendant la commande inopérante.
Histoire
Le télégraphe, le radio-télégraphe, le télex utilisaient un signal "qui est là ", généralement connu comme WRU (Who are you?) qui réclame une identification de la machine distante[1].
Mike Muuss a écrit ce programme en pour déboguer un comportement anormal sur réseau IP. Le nom est tiré de l'onomatopée décrivant le son émis par un sonar puisque leur action est similaire (émission d'un signal qui vient rebondir sur une cible pour revenir à l'envoyeur)[2]. Par la suite, David L. Mills a fourni un rétro-acronyme : « Packet InterNet Groper ».
Exemples
Exemple de ping sous Windows, vers l'adresse IP du serveur DNS de Wikipédia :
C:\>ping 91.198.174.225
Ping 213.248.93.86 avec 32 octets de données :
RĂ©ponse de 213.248.93.86 : octets=32 temps<10ms TTL=53
RĂ©ponse de 213.248.93.86 : octets=32 temps<10ms TTL=53
RĂ©ponse de 213.248.93.86 : octets=32 temps<10ms TTL=53
RĂ©ponse de 213.248.93.86 : octets=32 temps<10ms TTL=53
Exemple de ping sous Linux, vers fr.wikipedia.org :
$ ping fr.wikipedia.org PING r, r.knams.wikimedia.org (145.97.39.137): 56 data bytes 64 bytes from 145.97.39.137: icmp_seq=0 ttl=53 time=51.9 ms 64 bytes from 145.97.39.137: icmp_seq=1 ttl=53 time=16.9 ms 64 bytes from 145.97.39.137: icmp_seq=2 ttl=53 time=16.7 ms --- rr.knams.wikimedia.org ping statistics --- 3 packets transmitted, 3 packets received, 0 % packet loss round-trip min/avg/max = 16.7/28.5/51.9 ms
fping est similaire à ping et dispose d'options supplémentaires et permet de tester de nombreuses cibles simultanément.
Exemple de (f)ping(6) sous Linux, vers une adresse IPv6 :
$ fping6 fe80::211:d8ff:fe25:2092 fe80::211:d8ff:fe25:2092 is alive
Autre exemple de (f)ping(6) sous Linux, vers une adresse IPv6 :
$ fping6 -c 2 -e fe80::211:d8ff:fe25:2092 fe80::211:d8ff:fe25:2092 : [0], 64 bytes, 0.06 ms (0.06 avg, 0 % loss) fe80::211:d8ff:fe25:2092 : [1], 64 bytes, 0.06 ms (0.06 avg, 0 % loss) fe80::211:d8ff:fe25:2092 : xmt/rcv/%loss = 2/2/0 %, min/avg/max = 0.06/0.06/0.06
Autres utilisations du terme
Le terme ping est parfois utilisé comme synonyme de Round trip time dans le jeu en ligne. Dans les jeux fortement interactifs, un délai élevé (désigné par lag ou latence) peut constituer un désavantage pour un joueur.
Certains autres protocoles de la couche application utilisent le nom ping quand il s'agit de déterminer un délai avec une cible. Sur la plupart des clients IRC par exemple, la commande /ping pour connaître le temps de réponse d'un utilisateur ou d'un salon de discussion.
Notes et références
- Commission électrotechnique internationale, « Télégraphie, fac-simile et communication de données », dans IEC 60050 Vocabulaire électrotechnique international, (lire en ligne), p. 721-10-20.
- The Story of the PING Program