mike@BRL.ARPA (Mike Muuss) (09/17/87)
The strategy that we have used at BRL (implemented by J. Pistritto) for many years now is to run a simple program on each local net host (called "router") that is given a prioritized list of "default routes". The highest priority route that meets certain maximum roundtrip times (< 5 sec) and maximum packet loss rates (50%) is selected. When the highest priority route is not selected, all higher priority ones are PINGed at a slow rates (once/minute). When a higher priority path becomes acceptable again, the default route is switched back to it. No PINGs leave the local network, and the ping rate is very low. 4.3 BSD does the rest, handling redirects, etc., that the gateway issues, and reconsulting the routing tables when a TCP connection is "halfway" timed out. We have found this strategy to work very successfully. FYI -Mike
phil@BRL.ARPA (Phil Dykstra) (09/18/87)
Mark, You guessed correctly. When the current default route goes away "router" crafts up a new default entry, removes the old one, and then removes any references to the old default (letting the kernal rebind to the new one). The end result is that your applications can usually keep on talking without realizing that their route has been changed. - Phil
phil@BRL.ARPA (Phil Dykstra) (09/18/87)
Mark, You guessed correctly. When the current default route goes away, "router" crafts up a new default, deletes the old one, and then removes any references to the old default (letting the kernel rebind them to the new one). The end result is that your applications can usually keep on talking without realizing that their route has changed. - Phil