A method of transmitting data between a source node and destination node connected via multiple paths of a heterogeneous network, at least one of said paths delivering packets with a non-deterministic delivery time, said method comprising: dividing said data into frames, each frame comprising a number of packets N, where processing by the destination node of an information packet p is conditional on receipt of the data for any information packet i where i<p; allocating, for each network path k, a number of sequential transmission slots s, each for transmitting a given packet p of said frame; providing a set D of possible assignments x of packets to transmission slots for a frame; determining an assignment x with minimum in-order delivery delay of said packets: mi n x ∈ D ∑ p = 1 N E a p + E r p where: a p is the arrival time of packet p to its destination, E[ a p] is an expected arrival time of packet p to its destination: E [ a p] = E [∑ k ∑ s (T k + s.t k).x p,k,s] where: T k is a propagation delay of a packet through the network path k; x p,k,s = 1 where, in a given assignment x, a packet p is to be transmitted in a transmission slot s of network path k; and 0 otherwise; t k is a transmission delay for a packet through the network path k; r p is the reordering delay for packet p and E[r p] is an expected reordering delay for packet p: E r p = E max 0, max a 1, a 2,..., a p − 1 − a p; and transmitting said packets in accordance with said determined assignment x. dividing said data into frames, each frame comprising a number of packets N, where processing by the destination node of an information packet p is conditional on receipt of the data for any information packet i where i<p; allocating, for each network path k, a number of sequential transmission slots s, each for transmitting a given packet p of said frame; providing a set D of possible assignments x of packets to transmission slots for a frame; determining an assignment x with minimum in-order delivery delay of said packets: mi n x ∈ D ∑ p = 1 N E a p + E r p where: a p is the arrival time of packet p to its destination, E[ a p] is an expected arrival time of packet p to its destination: E [ a p] = E [∑ k ∑ s (T k + s.t k).x p,k,s] where: T k is a propagation delay of a packet through the network path k; x p,k,s = 1 where, in a given assignment x, a packet p is to be transmitted in a transmission slot s of network path k; and 0 otherwise; t k is a transmission delay for a packet through the network path k; r p is the reordering delay for packet p and E[r p] is an expected reordering delay for packet p: E r p = E max 0, max a 1, a 2,..., a p − 1 − a p; and transmitting said packets in accordance with said determined assignment x. T k is a propagation delay of a packet through the network path k; x p,k,s = 1 where, in a given assignment x, a packet p is to be transmitted in a transmission slot s of network path k; and 0 otherwise; t k is a transmission delay for a packet through the network path k; r p is the reordering delay for packet p and E[r p] is an expected reordering delay for packet p: E r p = E max 0, max a 1, a 2,..., a p − 1 − a p; and transmitting said packets in accordance with said determined assignment x.