1. A method for propagating data over a network, the method comprising: determining a sequential first set of network addresses; mapping a range of addresses in the sequential first set of network addresses to a second set of addresses wherein the second set of addresses is a one to one mapping of the range of addresses in the first set and wherein the addresses in the second set are not in increasing address order, wherein the mapping comprises a function based on a primitive element selected using a primitive polynomial; traversing a plurality of addresses in the second set of addresses to find another element of the network; dividing a set of non-traversed addresses in the second set of addresses into a plurality of subsets of addresses, each subset of addresses comprising a respective range of addresses in the second set of addresses, wherein addresses in the second set of addresses that have been traversed are excluded from the dividing step and are excluded from the subsets of addresses; and transferring the data to the another element of the network along with an indication of at least one of the subsets of addresses.