A source node arranged to communicate with one or more destination nodes across a network, the network having a plurality of paths between the source node and the one or more destination nodes, the source node comprising: a processor and a memory configured to: prepare at least one of a plurality of uncoded packets for transmission on a first one (P1) of the plurality of paths from the source node (S) to a destination node (D); and generate a first coded packet for transmission on a second, different one (P2) of the plurality of paths from the source node (S) to the destination node (D), the first coded packet based upon a set of uncoded packets, wherein the set of uncoded packets comprises: a next uncoded packet to be transmitted by the source node; α previously transmitted uncoded packets where α is an integer equal to or greater than zero; and β uncoded packets that are to be transmitted after the next uncoded packet where β is an integer equal to or greater than zero; wherein the sum of α and β is greater than zero, characterized in that the processor and the memory are further configured to determine β based on relative delays of the first one (P1) of the plurality of the paths and the second one (P2) of the plurality of paths. a processor and a memory configured to: prepare at least one of a plurality of uncoded packets for transmission on a first one (P1) of the plurality of paths from the source node (S) to a destination node (D); and generate a first coded packet for transmission on a second, different one (P2) of the plurality of paths from the source node (S) to the destination node (D), the first coded packet based upon a set of uncoded packets, wherein the set of uncoded packets comprises: a next uncoded packet to be transmitted by the source node; α previously transmitted uncoded packets where α is an integer equal to or greater than zero; and β uncoded packets that are to be transmitted after the next uncoded packet where β is an integer equal to or greater than zero; wherein the sum of α and β is greater than zero, characterized in that the processor and the memory are further configured to determine β based on relative delays of the first one (P1) of the plurality of the paths and the second one (P2) of the plurality of paths. prepare at least one of a plurality of uncoded packets for transmission on a first one (P1) of the plurality of paths from the source node (S) to a destination node (D); and generate a first coded packet for transmission on a second, different one (P2) of the plurality of paths from the source node (S) to the destination node (D), the first coded packet based upon a set of uncoded packets, wherein the set of uncoded packets comprises: a next uncoded packet to be transmitted by the source node; α previously transmitted uncoded packets where α is an integer equal to or greater than zero; and β uncoded packets that are to be transmitted after the next uncoded packet where β is an integer equal to or greater than zero; wherein the sum of α and β is greater than zero, characterized in that the processor and the memory are further configured to determine β based on relative delays of the first one (P1) of the plurality of the paths and the second one (P2) of the plurality of paths. a next uncoded packet to be transmitted by the source node; α previously transmitted uncoded packets where α is an integer equal to or greater than zero; and β uncoded packets that are to be transmitted after the next uncoded packet where β is an integer equal to or greater than zero; wherein the sum of α and β is greater than zero, characterized in that the processor and the memory are further configured to determine β based on relative delays of the first one (P1) of the plurality of the paths and the second one (P2) of the plurality of paths. <EOS>