Patent ID: 8068491

Claim:
A method for routing a multicast message comprising the steps of: receiving a multicast message including at least a message, a source identifier, a sequence number, a time-to-live value and a multicast group destination; determining if the multicast group destination is in a multicast forwarding table; determining if the message has been previously received; adding the multicast message to the multicast forwarding table if it is determined that the message has not been previously received; determining if a node that received the multicast message is a forwarding node; setting, randomly a wait time for forwarding the multicast message if the node is a forwarding node; stopping the randomly set wait time if a second multicast message is received from a downstream node including at least the same message, source identifier, sequence number, and multicast group destination within the randomly set wait time; and forwarding the multicast message at the expiration of the wait time; wherein a determination of whether a second multicast message is received from a downstream node comprises the steps of: extracting a time-to-live value from the second multicast message; adding a preset number to the time-to-live value to generate an offset time-to-live value; retrieving a time-to-live value from the multicast forwarding table for the multicast message that includes the same message; and comparing the offset time-to-live value with the retrieved time-to-live value, wherein the wait time is stopped, if the retrieved time-to-live value is greater than the offset time-to-live value.