FAULT-TOLERANT COMMUNICATIONS IN ROUTED NETWORKS
A method for providing fault-tolerant network communications between a plurality of nodes for an application, including providing a plurality of initial communications pathways over a plurality of networks coupled between the plurality of nodes, receiving a data packet on a sending node from the application, the sending node being one of the plurality of nodes, the data packet being addressed by the application to an address on one of the plurality of nodes, and selecting a first selected pathway for the data packet from among the plurality of initial communications pathways where the first selected pathway is a preferred pathway.
1 . A system comprising a computing device that includes a plurality of protocol drivers, a final protocol driver, and a fault-tolerant driver that is configured for detecting a failure of any of a plurality of pathways, and that is further configured for receiving data from any of the plurality of protocol drivers and for forwarding the received data via the final protocol driver to a destination.
2 . The system of claim 1 where the fault-tolerant driver is further configured for enabling protocol reliability to be provided by the final protocol driver.
3 . The system of claim 1 where the fault-tolerant driver is further configured for not degrading route-ability of a protocol supported by the final protocol driver.
4 . The system of claim 1 where the fault-tolerant driver is further configured for mapping a virtual address used by the destination to an address used by a source of the received data.
5 . The system of claim 1 where the fault-tolerant driver comprises a tunnel adapter configured for maintaining a socket and for routing data via the socket between the final protocol driver and any of the plurality of protocol drivers.
6 . The system of claim 1 where the fault-tolerant driver is further configured for mapping physical addresses to virtual addresses.
7 . The system of claim 1 where the fault-tolerant driver is further configured for monitoring health of each of the plurality of pathways.
8 . A method comprising:
receiving data from any of a plurality of protocol drivers by a fault-tolerant driver operating on a computing device that includes the plurality of protocol drivers, a final protocol driver, and the fault-tolerant driver that is configured for detecting a failure of any of a plurality of pathways; and
forwarding, by the fault tolerant driver, the received data via the final protocol driver to a destination.
9 . The method of claim 8 where the fault-tolerant driver is further configured for enabling protocol reliability to be provided by the final protocol driver.
10 . The method of claim 8 where the fault-tolerant driver is further configured for not degrading route-ability of a protocol supported by the final protocol driver.
11 . The method of claim 8 where the fault-tolerant driver is further configured for mapping a virtual address used by the destination to an address used by a source of the received data.
12 . The method of claim 8 where the fault-tolerant driver comprises a tunnel adapter configured for maintaining a socket and for routing data via the socket between the final protocol driver and any of the plurality of protocol drivers.
13 . The method of claim 8 where the fault-tolerant driver is further configured for mapping physical addresses to virtual addresses.
14 . The method of claim 8 where the fault-tolerant driver is further configured for monitoring health of each of the plurality of pathways.
15 . At least one computer storage device storing computer-executable instructions that, when executed by a computing device, cause the computing device to perform a method comprising:
receiving data from any of a plurality of protocol drivers by a fault-tolerant driver configured for operating on the computing device that includes the plurality of protocol drivers, a final protocol driver, and the fault-tolerant driver that is configured for detecting a failure of any of a plurality of pathways; and
forwarding, by the fault tolerant driver, the received data via the final protocol driver to a destination.
16 . The at least one computer storage device of claim 15 where the fault-tolerant driver is further configured for enabling protocol reliability to be provided by the final protocol driver.
17 . The at least one computer storage device of claim 15 where the fault-tolerant driver is further configured for not degrading route-ability of a protocol supported by the final protocol driver.
18 . The at least one computer storage device of claim 15 where the fault-tolerant driver is further configured for mapping a virtual address used by the destination to an address used by a source of the received data.
19 . The at least one computer storage device of claim 15 where the fault-tolerant driver comprises a tunnel adapter configured for maintaining a socket and for routing data via the socket between the final protocol driver and any of the plurality of protocol drivers.
20 . The at least one computer storage device of claim 15 where the fault-tolerant driver is further configured for mapping physical addresses to virtual addresses or for monitoring health of each of the plurality of pathways.