Broadcast messages are efficiently directed to nodes of an overlay
network. Broadcast messages include an End ID parameter specifying the
range of key values for nodes that should receive the broadcast message.
Each node of an overlay network maintains a list of finger nodes and
their respective key values. Upon receiving a broadcast message, a node
assigns a finger node a new End ID value based upon the End ID value of
the broadcast message or the key value of an adjacent finger node. The
node compares a finger node's new End ID value with the finger node's key
value to determine whether to forward the broadcast message to that
finger node. A broadcast message forwarded to a finger node includes an
End ID parameter equal to the new End ID value determined for the finger
node. Nodes can aggregate response messages from its finger nodes.