Patent ID: 7821930

Claim:
A method for providing an application with fault-tolerant network communications between a plurality of nodes, comprising: providing a plurality of initial communications pathways via a plurality of networks coupling the plurality of nodes wherein each of the plurality of networks is operationally independent of all others of the plurality of networks, and wherein each of the plurality of initial communications pathways is distinct from all others of the initial communications pathways; receiving, at a second protocol driver of a plurality of protocols driver operating on a sending node, a data packet from the application operating on the sending node, the sending node being one of the plurality of nodes, the data packet being addressed by the application to an address of one of the plurality of nodes other than the sending node; wherein the second protocol driver is configured to support a second routable transport protocol; selecting, by a fault-tolerant communications driver operating on a sending node, a first selected pathway from among the plurality of initial communications pathways, wherein the first selected pathway is a preferred pathway that is calculated by the fault-tolerant communications driver based on priority information determined at least in part by load-balancing network traffic over the plurality of pathways, and wherein the sending node includes a plurality of network interface cards with each of the plurality of network interface cards coupled to a distinct one of the plurality of initial communications pathways, and wherein a first network interface card (“NIC”) of the plurality of network interface cards is controlled by a first NIC driver of a plurality of NIC drivers operating on the sending node, the first NIC driver coupled to a first protocol driver of the plurality of protocol drivers, the first protocol driver coupled to the fault-tolerant communications driver that is coupled to the second protocol driver that is coupled to the application; receiving, at the fault-tolerant communications driver, the data packet from the second protocol driver; and providing, by the fault-tolerant communications driver, the data packet to the first protocol driver based on the selecting, wherein the first selected pathway is coupled to the first NIC that is controlled by the first NIC driver that is coupled to the first protocol driver, and wherein the first protocol driver is configured to support a first routable transport protocol.