Mike Muuss a fait fonctionner son nouveau programme avant le lever du soleil. À ce moment-là, son collègue Chuck Kennedy avait déjà réparé le matériel réseau qu'il était censé investiguer. Muuss avait passé la nuit à créer un outil pour un problème qui a disparu avant qu'il ne puisse envoyer son premier paquet de test. Il a appelé le programme ping.[1]

En décembre 1983, Muuss faisait face à un comportement étrange sur le réseau IP du Laboratoire de Recherche Balistique de l'armée américaine. Une remarque qu'il avait entendue des mois auparavant lui offrit une piste de départ. Lors d'une réunion de la DARPA en Norvège en juillet, Dave Mills avait décrit le chronométrage d'échos électroniques pour mesurer le temps de trajet des messages le long d'un chemin réseau. Muuss se souvint de l'idée et commença à coder.[1]

Son programme a compilé avec succès, puis a refusé de fonctionner. Le noyau UNIX sous-jacent manquait de support pour les sockets ICMP brutes dont son code avait besoin. Muuss s'est décrit comme étant "furieux". Il a également écrit le support manquant du noyau, faisant fonctionner les deux éléments avant le lever du jour. Kennedy, connu sous le nom de Kermit, avait déjà trouvé et réparé le matériel au moment où Muuss a pu lancer son premier paquet ping.[1]

Muuss avait modélisé des systèmes de sonar et de radar à l'université, et il a emprunté le son du sonar pour le nom. Une impulsion se propage vers l'extérieur ; un écho revient. Son logiciel utilisait des messages déjà définis dans le protocole ICMP (Internet Control Message Protocol) : Écho et Réponse d'Écho. Le protocole spécifiait que la machine réceptrice devait renvoyer les données qui lui étaient envoyées. Le chronométrage de cet échange a donné à Muuss un moyen de sonder le trajet vers une autre machine et retour.[1][2]

À Berkeley, les développeurs ont intégré le code source et ses modifications du noyau dans Berkeley UNIX. La réparation d'urgence avait été effectuée sans ping, mais d'autres personnes pouvaient utiliser la copie suivante sans avoir à écrire leur propre correctif du jour au lendemain. Muuss a décrit plus tard son programme comme un "hack" du soir de mille lignes et a plaisanté en disant que, s'il avait su que cela deviendrait son accomplissement le plus célèbre, il aurait pu passer un jour ou deux de plus à ajouter des options.[1]

Un manuel Linux moderne décrit le même échange de requêtes et de réponses, avec des temps d'aller-retour et des statistiques de perte de paquets. Il offre également une option sonore. Le programme peut produire un son lorsqu'une réponse arrive, permettant à quelqu'un d'écouter une connexion fonctionnelle au lieu de regarder chaque nouvelle ligne apparaître.[3]

Lors d'une conférence USENIX, Muuss a entendu l'histoire d'un administrateur qui avait poussé cette idée d'écoute considérablement plus loin. Selon le récit enregistré par Muuss, l'homme a connecté ping à un vocodeur, a diffusé sa sortie via la chaîne hi-fi de son bureau et a monté le volume aussi fort qu'il pouvait le supporter. Une fois par seconde, l'ordinateur criait « Ping, ping, ping... » pendant qu'il traversait le bâtiment, en remuant les connecteurs Ethernet.[1]

Muuss a qualifié cela de meilleure histoire de ping qu'il ait entendue. Le nom qu'il avait emprunté au sonar était devenu un outil de détection de panne audible : l'administrateur continuait de passer d'un connecteur à l'autre jusqu'à ce que les cris cessent. Ce silence lui indiquait où se trouvait la panne intermittente.[1]

Sources

  1. Mike Muuss, L'Histoire du programme PING
  2. RFC 792, Protocole de message de contrôle Internet
  3. Manuel Linux, ping(8)

Photo : Chuck Kennedy (à gauche), Mike Muuss (au centre) et Doug Kingston au Laboratoire de Recherche Balistique. Cette photographie ne montre pas la nuit où ping a été écrit. Ron Natalie, Wikimedia Commons, CC BY-SA 4.0. Recadrée et redimensionnée ; œuvre dérivée sous la même licence.