A computer-implemented method of propagating data packets in a network of nodes, the method comprising: collecting, at a network node, a set of first data packets during a first time period, the set including at least one of said first data packets received from one or more first nodes in the network; determining an available bandwidth in links of the network node to a plurality of neighbouring nodes connected to the network node; determining a mapping that assigns each of the first data packets for relay to one or more neighbouring nodes of said plurality of neighbouring nodes, the mapping indicating an expected time of relay of each of the first data packets, wherein determining the mapping includes using the available bandwidth as a basis for setting, for each of the first data packets, at least one of: a first number of the one or more neighbouring nodes to which the first data packet is assigned for relay by the mapping, a first length of time, representing a delay after the expected time of relay in relaying the first data packet to the one or more neighbouring nodes, and a number of hops that the first data packet will travel once it is transmitted by the network node; identifying, for at least one first data packet selected from the set of first data packets: a first set of neighbouring nodes to which the at least one first data packet is assigned for relay, and a second subset of the first set, the second subset including only those neighbouring nodes that are designated to relay the at least one first data packet to their own neighbouring nodes upon receiving the at least one first data packet from the network node; transmitting said at least one first data packet, according to the determined mapping (1112, 1114), to the second subset of nodes and transmitting modified first data packets to the nodes in the first set that are not in the second subset, each said modified first data packet including the at least one first data packet that is modified to indicate that further relays of the at least one first data packet to neighbouring nodes are prohibited. collecting, at a network node, a set of first data packets during a first time period, the set including at least one of said first data packets received from one or more first nodes in the network; determining an available bandwidth in links of the network node to a plurality of neighbouring nodes connected to the network node; determining a mapping that assigns each of the first data packets for relay to one or more neighbouring nodes of said plurality of neighbouring nodes, the mapping indicating an expected time of relay of each of the first data packets, wherein determining the mapping includes using the available bandwidth as a basis for setting, for each of the first data packets, at least one of: a first number of the one or more neighbouring nodes to which the first data packet is assigned for relay by the mapping, a first length of time, representing a delay after the expected time of relay in relaying the first data packet to the one or more neighbouring nodes, and a number of hops that the first data packet will travel once it is transmitted by the network node; a first number of the one or more neighbouring nodes to which the first data packet is assigned for relay by the mapping, a first length of time, representing a delay after the expected time of relay in relaying the first data packet to the one or more neighbouring nodes, and a number of hops that the first data packet will travel once it is transmitted by the network node; identifying, for at least one first data packet selected from the set of first data packets: a first set of neighbouring nodes to which the at least one first data packet is assigned for relay, and a second subset of the first set, the second subset including only those neighbouring nodes that are designated to relay the at least one first data packet to their own neighbouring nodes upon receiving the at least one first data packet from the network node; a first set of neighbouring nodes to which the at least one first data packet is assigned for relay, and a second subset of the first set, the second subset including only those neighbouring nodes that are designated to relay the at least one first data packet to their own neighbouring nodes upon receiving the at least one first data packet from the network node; transmitting said at least one first data packet, according to the determined mapping (1112, 1114), to the second subset of nodes and transmitting modified first data packets to the nodes in the first set that are not in the second subset, each said modified first data packet including the at least one first data packet that is modified to indicate that further relays of the at least one first data packet to neighbouring nodes are prohibited.