Hacker News new | past | comments | ask | show | jobs | submit login
The Story of the Ping Program (1997) (army.mil)
150 points by teufelsec on July 30, 2019 | hide | past | favorite | 35 comments



Mike was killed in a car accident in 2000. Nice to see his website is still up almost 20 years later.


I was beaming from that story about the vocoder, that was a fast descent.

I frequently use ping to look like I know what I am doing when trying to fix connectivity problems.


I knew Mike as an undergrad at Johns Hopkins. I'm still sad about his untimely death.


The story of ping wouldn't be complete without a link to that book review: https://www.amazon.com/review/R2VDKZ4X1F992Q


In fact quoted in the article itself. And very good it is too...


What's very good? The book or the review? grin


also the author of brl-cad, fwiw:

https://en.wikipedia.org/wiki/BRL-CAD

here, by a PDP/11 (not sure which person he is):

https://en.wikipedia.org/wiki/BRL-CAD#/media/File:Pdp11,70_6...

and mentioned in Clifford Stolls book 'the cuckoos egg' (1989):

https://en.wikipedia.org/wiki/The_Cuckoo%27s_Egg

which is a complete must read story for anyone interested in this kind of article and led to much of the current cyber-crime coordination in the US (e.g. US-CERT, etc).

from that book:

    "On the heels of Steve's call, Mike Muuss of the Ballistic Research Laboratory called. 
    In Aberdeen, Maryland, the Army runs a research and development laboratory;
    it's one of the last government labs that doesn't farm out its research to private
    contractors. Mike's their computer honcho.

    Mike Muuss's famous throughout the Unix community as a pioneer in networking and as a 
    creator of elegant programs to replace awkward ones. As Mike puts it, good programs 
    aren't written or built. They're grown. A six-foot-tall, mustached runner, 
    he's incredibly driven, intense, and obsessed. Mike's paid his dues on ancient 
    versions of Unix, dating back to the '70s. When Mike talks, other wizards listen."
RIP.


Now, I'm wondering if there's a BRL-CAD around that will still run on a PDP-11/70 so I have some actual excuse to buy and build the PiDP-11... https://obsolescence.wixsite.com/obsolescence/pidp-11


> Sadly, Mike Muuss was killed in an automobile accident on November 20, 2000.

Thank-you for your work. RIP.


> My passion at the moment is real-time ray-tracing, with 3-D atmosphere, to create a physics-based "virtual reality" simulator.

Wow. Imagine if he were here to experience RTX cards in consumer machines.


There is an unusual (ab)use of ping that I hope no-one here needs but just in case; I and a tech was doing some dos scripting (in windows) at a client and we needed short delays. We couldn't find anything in dos, but a web search suggested an obscure but natty trick - pinging localhost.

ping -n <seconds> 127.0.0.1

It worked (edit: I couldn't stop laughing). To be fair, I've used it and its big brother traceroute (very useful!) for its designed purpose.


    choice /T 1 /D Y
Standard Windows NT command to sleep 1 second. This is actually intended to let the user select an option Yes/No and default after 1 second without answer.


What was the use of ICMP Echo packets when there was no ping?


The Internet's designers had not heard of YAGNI. They thought ahead a great deal. They even had features for PMTUD long before anyone sat down to figure out how to do PMTUD.

That's because the Internet's designers were smart, experienced, and visionary, but they didn't have infinite resources, so they did what they could, and a lot of what they could was just a sketch for others to color-in.

We should get so lucky again!


"ICMP (Internet Control Message Protocol) is an error-reporting protocol network devices like routers use to generate error messages to the source IP address when network problems prevent delivery of IP packets."


They were asking specifically of Echo packets, though. It seems ping covers the whole use of them. I wonder if any other part of an OS tends to make Echo packets.


I imagine the designers of ICMP did envision something like ping eventually coming along, maybe not necessarily as a command, though.


Ping is how I found a compromised server once in a large, poorly wired server rack. The sys admins were out and the supervisor did not know anything about the server room (nor did I... the security guy) so he pinged the infected box from a laptop while I went behind the rack and unplugged each machine one at a time.... found it after a dozen or so cables. How about now? Yep, that's the one.





I've always wondered if these foundational utilities could ever evolve a bit.

I'd love to have a "ping --reachable <secs> <host>" that just silently returned a return code whether a host was pingable.

(of course you could do "ping -w 5 10.0.0.1 >/dev/null 2>&1" but still)


An nmap pingscan can do that.


Sadly the link to the source redirects to the US Army home page now. Anyone got a link?


Looks like it’s fixed. Worked for me: https://ftp.arl.army.mil/~mike/ping.html


No, the link he provided in the document to the original PING source. It's supposed to go to http://ftp.arl.army.mil/pub/ping.shar But ends up at https://www.arl.army.mil/www/default.cfm





obviously not the original source code from 1983.



    pr_pack( buf, cc, from )
    char *buf;
    int cc;
    struct sockaddr_in *from;
    {
I know this ship has sailed, but after reading through the code you linked to, I finally understand the merit to this old-style C function definition syntax, and actually think it might look nicer than the modern way of doing the same thing for longer parameter lists:

    pr_pack( char *buf,
             int cc,
             struct sockaddr_in *from )
    {
It reminds me of how in TypeScript, if a function gets too many arguments, I'll split them out into an interface, and use destructuring to get to each element in the actual parameter list for convenience.


I have hundreds of pings running 24/7 from dozens of devices to machines on 6 continents monitoring for packet loss, never even considered the history of the command


Respect!


put a year on this title I think it's from...2000




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: