Path: utzoo!attcan!uunet!husc6!bloom-beacon!think!ames!eos!labrea!decwrl!ucbvax!BITSY.MIT.EDU!jis From: jis@BITSY.MIT.EDU (Jeffrey I. Schiller) Newsgroups: comp.protocols.tcp-ip Subject: Re: Dumb vs. smart host routing Message-ID: <8805150047.AA04159@BITSY.MIT.EDU> Date: 15 May 88 00:47:14 GMT References: <8805140444.AA13986@ATHENA.MIT.EDU> Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 30 > ...When a host needs to send >something off net and either A) does not have the IP Address of any >router (if it had one address, it could send a packet to that router >and get the redirect) or B) the host decides that the router it is >using is dead (e.g. TCP has retransmitted too often) then the host >broadcast a "Who can route to network X?" request and the routers on >the local network would respond. Now be VERY careful with protocols that broadcast questions that may get simultaneously answered by a large number of machines. In a network with only one or two routers what you suggest would work fine. However when you have about 20 routers on an Ethernet you are likely to get a monster Ethernet collision when they all go to respond to the broadcast. There have been several horror stories posted to this mailing list of "monster collision" problems (I know, I was one of the senders!). ARP works using broadcast questions, but in a properly functioning network exactly one machine should respond, so no collision. However you do bring up a problem with single threaded machines. What if we modify your scheme so that all routers on a network speak some (as yet undefined) protocol to elect one of them the "advertised default router" and only this router would respond to the "Who can route" message. If this router went down the other routers would know and elect a new default router. [Note I have simplified the question from "Who can route to network X?" to just a simple request for a default router. That router can then send redirects later when packets arrive.] -Jeff