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