Patent ID: 6779038
Filing Date: 2004-08-17
Classification: H04L

Abstract:
A router configured for use in virtual synchrony wide area network, the router comprising:a) a host processor; b) a memory connected to the host processor; c) at least one first interface connected to the host processor and connectable to a first local area network (LAN); d) at least one point-to-point capable network interface connected to the host processor and connectable through at least one first point-to-point link to a first router connected to a second LAN, and through at least one second point-to-point link to second router connected to the second LAN; and a computer program product having a medium with a computer program embodied for controlling the flow of messages through the router, the computer program comprising: a) computer program code executable for determining whether a most recently received message was received through the at least one first point-to-point link or through the at least one second point-to-point link point-to-point link; b) computer program code executable, upon a determination that a most recently received message was received through the at least one first point-to-point link or through the at least one second point-to-point link point-to-point link, for determining whether the most recently received message is a duplicate of a message previously received by the router; c) computer program code executable, upon a determination that the most recently received message is a duplicate of a message previously received by the router, for discarding the most recently received message; d) computer program code executable, upon a determination that the most recently received message is not a duplicate of a message previously received by the router, for storing the contents of the most recently received message in a queue of the memory of the router; e) computer program code executable, upon a determination that a most recently received message was not received through the at least one first point-to-point link or through the at least one second point-to-point link point-to-point link, for determining whether the original source of the message was a proximate LAN from which the most recently received message was received; f) computer program code executable, upon a determination that the original source of the most recently received message was a proximate LAN from which the most recently received message was received, for enqueueing the message to all other proximate LANs and to all point-to-point links; g) computer program code executable, upon a determination that the original source of the most recently received message was not a proximate LAN from which the most recently received message was received, for determining whether the contents of a previously received message stored in the queue are identical to the contents of the most recently received message, and whether the previously received message is destined for the LAN from which the previously received message was received; h) computer program code executable, upon a determination that the contents of a previously received message stored in the queue are identical to the contents of the most recently received message, and that the previously received message is destined for the LAN from which the previously received message was received, for discarding the previously received message and the most recently received message; and i) computer program code executable, upon a failure to determine that the contents of a previously received message stored in the queue are identical to the contents of the most recently received message, and that the previously received message is destined for the LAN from which the previously received message was received, for discarding the most recently received message.