[mod.protocols.tcp-ip] ICMP message caching

steve@BRILLIG.UMD.EDU.UUCP (03/29/87)

   Recently, I've been considering wedging some code into the 4.3 kernel
that would let me do some ICMP message caching both in individual hosts
and in gateways.  It seems to me that intelligent use of such a feature
could cut down on extra packet sends, especially in terms of behavior like
the recent mess with ISIB and domain name serving.  After all, if one
"connection" discovers that a host is down, there is no need for everything
else to find that information out for itself.  This would also fix the
problems with getting errors back on unconnected UDP sockets; a packet
to a down site would elicit an unreachability message which would
not be reported to the user, but the next send to that site would
result in an immediate error without ever going to the net.  It also
seems to me that doing this sort of caching in a gateway might not
be a bad idea, but Dave Mills' recent message seems to indicate that
people think this is an evil idea.

   It was suggested to me that ICMP messages should get delivered
(via raw ICMP socket, perhaps) to a user-level process, which has
more smarts to it than the kernel can reasonably have and which
uses ioctls to stick information into the kernel's cache.  That way,
it's relatively easy to change policies to ignore, for example, single
ICMP errors (a single ICMP unreachability error might be due to routing
changes, perhaps), but to add entries to the cache if it sees the
same error a number of times.  Also, it might be possible to associate
error information with routes so that a host trying to reach another
host and which has two different ways to get there can take note of
the error and try to send via a different route.

   It seems that this issue has been discussed before, and while I
don't remember what brought this idea to mind, I doubt that it is
at all original.  If this has been beaten to death publicly and
someone could give me some pointers to RFCs or into the archives,
I would appreciate it.  Otherwise, maybe we can discuss it here.

	-Steve

CERF@A.ISI.EDU.UUCP (04/02/87)

Steve,

there will be some howls, but I think the idea of ICMP caching to
be worth exploring. We are surely in agreement that the more knowledge 
you can obtain about the Internet condition, the better you can, at
the source, make decisions about traffic routing, retransmission,
attempts to set-up connections, etc.

I am sure this subject has come up before - some folks were uncomfortable
because it seemed to smack of protocol boundary crossing - Dave mIlls
mentioned a similar idea relative to caching such information th the
gateways, too.

Let's see what comments your notion uncovers!

Vint