CPC H04L 63/1441 (2013.01) [G06F 16/27 (2019.01); H04L 63/0421 (2013.01)] | 17 Claims |
1. 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 first data packet received from one or more first nodes in the network and at least one first data packet generated by the network node;
determining an available bandwidth in links of the network node to a plurality of neighbouring nodes connected to the network node, by obtaining an indicator of available bandwidth in each of at least one of the links of the network node to the plurality of neighbouring nodes;
determining a mapping that assigns each first data packet of the set of first data packets for relay to one or more neighbouring nodes, the mapping indicating an expected time of relay of each first data packet of the set of first data packets, wherein determining the mapping includes:
using the available bandwidth as a basis for setting, for each first data packet of the set of first data packets, at least one of:
a first number of peer nodes to which the first data packet is assigned for relay by the mapping,
a first length of time delay in relaying the first data packet to one or more peer nodes, and
a number of hops of the first data packet from the network node to a peer node; and
for each of the at least one first data packets generated by the network node:
identifying a predetermined number of first data packets that were previously generated by the network node,
obtaining a list of relay node sets associated with the previously generated first data packets, the relay node sets including neighbouring nodes to which the previously generated first data packets are respectively relayed, and
selecting a first set of relay nodes based on identifying a set of neighbouring nodes that is different from the relay node sets in the obtained list; and
transmitting the first data packets of the set to the plurality of neighbouring nodes according to the determined mapping.
|