Mike Muuss mise in funzione il suo nuovo programma prima dell'alba. A quel punto, il suo collega Chuck Kennedy aveva già riparato l'hardware di rete che il programma avrebbe dovuto indagare. Muuss aveva passato la notte a costruire uno strumento per un problema che scomparve prima che potesse inviare il suo primo pacchetto di test. Chiamò il programma ping.[1]

Nel dicembre 1983, Muuss stava affrontando uno strano comportamento sulla rete IP presso il Ballistic Research Laboratory dell'esercito degli Stati Uniti. Un'osservazione che aveva sentito mesi prima offrì un punto di partenza. A una riunione DARPA in Norvegia quel luglio, Dave Mills aveva descritto la misurazione degli echi elettronici per calcolare il tempo impiegato dai messaggi per viaggiare lungo un percorso di rete. Muuss ricordò l'idea e iniziò a programmare.[1]

Il suo programma fu compilato con successo, ma poi si rifiutò di funzionare. Il kernel UNIX sottostante mancava del supporto per i socket ICMP raw di cui il suo codice aveva bisogno. Muuss si descrisse come "infuriato". Scrisse anche il supporto mancante per il kernel, mettendo in funzione entrambi i pezzi prima dell'alba. Kennedy, conosciuto come Kermit, aveva già trovato e riparato l'hardware quando Muuss poté lanciare il suo primo pacchetto ping.[1]

Muuss aveva modellato sistemi sonar e radar all'università, e prese in prestito il suono del sonar per il nome. Un impulso viaggia verso l'esterno; un'eco torna indietro. Il suo software utilizzava messaggi già definiti nel Protocollo di Messaggi di Controllo Internet: Echo ed Echo Reply. Il protocollo specificava che la macchina ricevente restituisse i dati inviati ad essa. Cronometrare questo scambio diede a Muuss un modo per sondare il viaggio verso un'altra macchina e ritorno.[1][2]

A Berkeley, gli sviluppatori integrarono il codice sorgente e le sue modifiche al kernel nel Berkeley UNIX. La riparazione d'emergenza era stata fatta senza ping, ma altre persone avrebbero potuto usare la copia successiva senza scrivere la propria soluzione notturna. Muuss in seguito descrisse il suo programma come un "hack serale" di mille righe e scherzò dicendo che, se avesse saputo che sarebbe diventato il suo più famoso successo, avrebbe potuto impiegare un altro giorno o due per aggiungere opzioni.[1]

Un manuale Linux moderno descrive lo stesso scambio di richieste e risposte, con tempi di andata e ritorno e statistiche di perdita di pacchetti. Offre anche un'opzione sonora. Il programma può produrre un suono quando arriva una risposta, permettendo a qualcuno di ascoltare una connessione funzionante invece di guardare ogni nuova riga apparire.[3]

A una conferenza USENIX, Muuss sentì una storia su un amministratore che aveva portato quell'idea di ascolto considerevolmente oltre. Secondo il resoconto registrato da Muuss, l'uomo collegò ping a un vocoder, alimentò la sua uscita attraverso lo stereo del suo ufficio e alzò il volume al massimo che poteva sopportare. Una volta al secondo, il computer gridava "Ping, ping, ping..." mentre camminava per l'edificio, muovendo i connettori Ethernet.[1]

Muuss la definì la migliore storia su ping che avesse mai sentito. Il nome che aveva preso in prestito dal sonar era diventato uno strumento udibile per la ricerca di guasti: l'amministratore continuò a spostarsi da un connettore all'altro finché le grida non cessarono. Quel silenzio gli indicò dove si trovava il guasto intermittente.[1]

Fonti

  1. Mike Muuss, La Storia del Programma PING
  2. RFC 792, Protocollo di Messaggi di Controllo Internet
  3. Manuale Linux, ping(8)

Foto: Chuck Kennedy (a sinistra), Mike Muuss (al centro) e Doug Kingston al Ballistic Research Laboratory. Questa fotografia non mostra la notte in cui ping fu scritto. Ron Natalie, Wikimedia Commons, CC BY-SA 4.0. Ritagliata e ridimensionata; opera derivata sotto la stessa licenza.