
That's right, I am the author of the UNIX
ping program. Ping is a program a thousand lines long that I wrote in one evening and almost everyone knows about it. :-)
I named it after the sound of the sonar. In college, I did a lot of modeling of hydro-acoustic and radar systems, so the analogy with “Cyberspace” seemed very appropriate. Ping uses the same idea: send IP / ICMP
ECHO_REQUEST
and
ECHO_REPLY
ECHO_REQUEST
ECHO_REPLY
to measure the “distance” to the target computer.
')
My initial desire to write a ping for 4.2a BSD UNIX arose after David Mills’s careless remark made by him in July 1983 at a DARPA meeting in Norway about his work in measuring the delay in ICMP packet passing on Lz-11 Fuzball systems.
Creature
In December 1983, I was confronted with a strange network behavior at the Ballistic Research Laboratory. Recalling Mills's remarks, I quickly pinged, which opened a raw ICMP socket. The code compiled without problems, but did not work - there was no support for raw ICMP sockets in the kernel! Angered, I zakodil and her, thus forcing everything to work until the morning. No wonder Chuck Kennedy had already fixed network problems before I sent the first ping packet. Later, however, I used my program several times. * Grinning * If I only knew that this would be the greatest achievement in my life, I would work on it for a couple more days and add a few options.
The Berkeley guys have eagerly accepted my kernel changes and ping sources, so since then they have been a standard part of Berkeley UNIX. Since ping was free, it was ported to many other platforms, including Microsoft Windows 95 and Windows NT. You can identify this by character messages that look like this:
PING vapor.arl.army.mil (128.63.240.80): 56 data bytes
64 bytes from 128.63.240.80: icmp_seq=0 time=16 ms
64 bytes from 128.63.240.80: icmp_seq=1 time=9 ms
64 bytes from 128.63.240.80: icmp_seq=2 time=9 ms
64 bytes from 128.63.240.80: icmp_seq=3 time=8 ms
64 bytes from 128.63.240.80: icmp_seq=4 time=8 ms
^C
----vapor.arl.army.mil PING Statistics----
5 packets transmitted, 5 packets received, 0% packet loss
round-trip (ms) min/avg/max = 8/10/16
After creating
In 1993, ten years after writing ping, the USENIX association presented me with a beautiful letter announcing me as one of the recipients of the award of the USENIX Lifetime Achievement Award, presented to the research group of the University of Berkeley. “Awarded for solid intellectual achievement and unparalleled service to our community. By order of the leaders of the research group, we thus recognize the following persons and organizations as assistants and participants of the research group ... ”. Wow!
By the way, want to see the
source ?
From my point of view, “ping” is not an acronym for the Packet InterNet Grouper, but an analogy with a sonar. Although someone told me that Dave Mills used exactly this explanation, so maybe we are both right. Damn, I thought the government was engaged in stretching acronyms! :-)
Phil Dijkstra added record route support in ping, but in those early days only a few routers processed them, which made this feature useless. The limit on the number of hops recorded in the header of an IP packet prevented the tracking of very long routes.
I was very jealous of Van Jacobson from Lawrence Berkeley National Laboratory when he used my ICMP support code in the kernel to write a traceroute. He realized that he could receive ICMP Time-To-Live exceeded messages by modifying the TTL field of the IP packet. Why did I not think of this! :-) Of course, traceroute actually uses UDP datagrams, since routers should not generate error messages in response to ICMP messages.
Story
The best story about ping was told to me at the USENIX conference: a network administrator with a problematic Ethernet network connected ping with
a speech synthesis device , writing essentially the following:
ping goodhost | sed -e 's/.*/ping/' | vocoder
Then he connected the synthesizer output to the speakers in the office and turned the volume up to the limit. The computer began shouting “Ping, ping, ping” every second, and the administrator went to check every Ethernet connector in the building. At that moment, when the computer was silent, the breakdown on the network was found.
References:
Original article
About the author of the program (eng.)
From the translator:
I would be glad to hear remarks about inaccuracies in the translation of the terms and names of the mentioned institutions. In the very near future I plan to publish a translation of the article “Ten Things I Hate About Object-Oriented Programming” , and in the future I will upload articles-translations about programming and people involved in it.