Ping
Ping est une commande généralement utilisée pour tester la connectivité entre deux appareils mis en réseau ainsi que de tester la latence de communication entre ces appareils. Cette commande est présente dans la majorité des systèmes pouvant être mis en réseau et utilise le protocole standardisé ICMP.
ICMP est un protocole sans état (sans établissement de session) permettant l'envoi de messages simples entre deux appareils. Ping utilise principalement les messages de type 8 ou "echo" et de type 0 ou "echo reply". Par le nom de ces types de messages, on peut en déduire que "ping" fonctionne en envoyant un message et en attendant une réponse avec le même contenu. Si un appareil envoie une requête "echo" à un autre appareil contenant le message "12345", il s'attendra à recevoir une réponse contenant "12345". Toute autre réponse indiquerait que la donnée aurait été déformée en chemin soit vers où depuis la destination du ping.
Par défaut, la plupart des systèmes enverront une partie contigue (qui se suit) de la table ASCII à une longueur déterminée (Windows envoie par défaut 32 octets/32 caractères ASCII, Linux en envoie 64). Il est possible de personnaliser la longueur ainsi que le contenu de ce message des outils le permettant (ex. nping).
Exemple d'une requête echo telle que présentée par Wireshark
Internet Control Message Protocol
Type: 8 (Echo (ping) request)
Data (32 bytes)
Text: abcdefghijklmnopqrstuvwabcdefghi
[Length: 32]
Exemple d'une réponse echo telle que présentée par Wireshark
Internet Control Message Protocol
Type: 0 (Echo (ping) reply)
[Response time: 40.602 ms]
Data (32 bytes)
Text: abcdefghijklmnopqrstuvwabcdefghi
[Length: 32]
Cette application est parfois utilisée à des fins malveillantes pour "noyer" (flood) un système et surcharger sa connexion réseau. Ce type d'attaque se nomme une attaque de déni de service et pourrait être utilisée pour figer un serveur web ou pour augmenter la latence d'un compétiteur dans un jeu en ligne.