Mike Muuss kreeg zijn nieuwe programma werkend voor zonsopgang. Tegen die tijd had zijn collega Chuck Kennedy de netwerkhardware gerepareerd die het moest onderzoeken. Muuss had de nacht doorgebracht met het bouwen van een hulpmiddel voor een probleem dat verdween voordat hij zijn eerste testpakket kon versturen. Hij noemde het programma ping.[1]

In december 1983 had Muuss te maken met vreemd gedrag op het IP-netwerk van het Ballistic Research Laboratory van het Amerikaanse leger. Een opmerking die hij maanden eerder had gehoord, bood een startpunt. Op een DARPA-vergadering in Noorwegen in juli had Dave Mills beschreven hoe elektronische echo's getimed konden worden om te meten hoe lang berichten erover deden om langs een netwerkpad te reizen. Muuss herinnerde zich het idee en begon te coderen.[1]

Zijn programma compileerde succesvol, maar weigerde vervolgens te werken. De UNIX-kernel eronder miste ondersteuning voor de ruwe ICMP-sockets die zijn code nodig had. Muuss beschreef zichzelf als "woedend". Hij schreef ook de ontbrekende kernelondersteuning, waardoor beide onderdelen vóór zonsopgang werkten. Kennedy, bekend als Kermit, had de hardware al gevonden en gerepareerd tegen de tijd dat Muuss zijn eerste ping-pakket kon versturen.[1]

Muuss had op de universiteit sonar- en radarsystemen gemodelleerd, en hij leende het geluid van sonar voor de naam. Een puls reist naar buiten; een echo komt terug. Zijn software gebruikte berichten die al waren gedefinieerd in het Internet Control Message Protocol: Echo en Echo Reply. Het protocol specificeerde dat de ontvangende machine de gegevens die ernaar werden verzonden, moest terugsturen. Het timen van die uitwisseling gaf Muuss een manier om de reis naar een andere machine en terug te onderzoeken.[1][2]

Bij Berkeley namen ontwikkelaars de broncode en zijn kernelmodificaties op in Berkeley UNIX. De noodreparatie was zonder ping uitgevoerd, maar andere mensen konden de volgende kopie gebruiken zonder hun eigen nachtelijke fix te schrijven. Muuss beschreef zijn programma later als een avondje knutselen van duizend regels en grapte dat, als hij had geweten dat het zijn beroemdste prestatie zou worden, hij misschien nog een dag of twee had besteed aan het toevoegen van opties.[1]

Een moderne Linux-handleiding beschrijft dezelfde uitwisseling van verzoeken en antwoorden, met round-trip tijden en statistieken over pakketverlies. Het biedt ook een hoorbare optie. Het programma kan een geluid produceren wanneer een antwoord arriveert, waardoor iemand kan luisteren naar een werkende verbinding in plaats van elke nieuwe regel te zien verschijnen.[3]

Op een USENIX-conferentie hoorde Muuss een verhaal over een beheerder die dat luisteridee aanzienlijk verder had uitgewerkt. Volgens het verhaal dat Muuss optekende, verbond de man ping met een vocoder, stuurde de uitvoer ervan via zijn kantoorstereo en zette het volume zo hard als hij kon verdragen. Eén keer per seconde riep de computer "Ping, ping, ping..." terwijl hij door het gebouw liep en aan Ethernet-connectoren wiebelde.[1]

Muuss noemde het het beste ping-verhaal dat hij had gehoord. De naam die hij van sonar had geleend, was een hoorbaar hulpmiddel voor foutopsporing geworden: de beheerder bleef van connector naar connector bewegen totdat het roepen stopte. Die stilte vertelde hem waar de intermitterende storing zich bevond.[1]

Bronnen

  1. Mike Muuss, Het Verhaal van het PING-programma
  2. RFC 792, Internet Controle Bericht Protocol
  3. Linux handleiding, ping(8)

Foto: Chuck Kennedy (links), Mike Muuss (midden) en Doug Kingston in het Ballistic Research Laboratory. Deze foto toont niet de nacht waarin ping werd geschreven. Ron Natalie, Wikimedia Commons, CC BY-SA 4.0. Bijgesneden en verkleind; afgeleid onder dezelfde licentie.