daveb@gonzo.UUCP (Dave Brower) (11/01/88)
In my question of a week or so ago, I asked about running ping on a machine that did not support access to the icmp layer. This spawned an interesting revisit to the swamp of "what is tcp/ip, really?". The best answers I got said essentially use the udp echo instead of the icmp echo, and that is what I'll do if I ever have the time to get back to it. Others asked me to name names of the horrible icmp-less vendor, which I won't do for reasons having to do with my employment :-) I just don't see the point. Here are some hints, though. The problem is NOT that the machine does not support icmp. It is that it doesn't provide the programming access to let me, joe root, get at the icmp layer. That is, the /etc/protocols file has the icmp entry commented out, and the icmp related headers in /usr/include/netinet don't exist. But there is clearly an icmpd daemon doing stuff, and you can ping it from another machine quite happily. You just can't take ping.c and make it work. (I got the missing headers, made an executable, and put icmp back in the protocols file. Running ping provoked the "unsupported protocol" error. *sigh* This was when I sent the first question.) Now, is what I describe a "valid" tcp/ip implementation? I am resignedly inclined to say "yes." -dB