A method implemented in a computing apparatus, the method comprising: generating, by the computing apparatus, a plurality of first data packets of a same length from a data segment to be transmitted via a plurality of parallel communication channels; generating, by the computing apparatus based on the first data packets, a plurality of packet sequences for the plurality of parallel communication channels respectively, wherein each respective sequence of the plurality of packet sequences includes a subsequent data packet that is scheduled to be transmitted in a respective channel of the plurality of parallel communication channels, that is a combination of a subset of the first data packets, and that is linearly independent of data packets that are scheduled to be transmitted in the respective channel before the subsequent data packet; and transmitting, by the computing apparatus to a recipient device, the plurality of sequences of packets in the plurality of parallel communication channels respectively; wherein the subsequent data packet is further linearly independent of further data packets that are transmitted in the plurality of parallel communication channels other than the respective channel in which the subsequent data packet is transmitted, wherein the further data packets and the data packets that are scheduled to be transmitted in the respective channel before the subsequent data packet form a base set of data packets; the base set has fewer data packets than the plurality of first data packets; and the subsequent data packet is linearly independent of the base set of data packets, wherein the subset of the first data packets is randomly selected according to a predetermined distribution from a portion of the plurality of first data packets which portion does not include any of the first packets that is scheduled to be transmitted in the respective channel before the subsequent data packet, and further comprising: repeating the random selection of subset for the subsequent data packet, according to the predetermined distribution, until a subset that is linearly independent of the base set is selected. generating, by the computing apparatus, a plurality of first data packets of a same length from a data segment to be transmitted via a plurality of parallel communication channels; generating, by the computing apparatus based on the first data packets, a plurality of packet sequences for the plurality of parallel communication channels respectively, wherein each respective sequence of the plurality of packet sequences includes a subsequent data packet that is scheduled to be transmitted in a respective channel of the plurality of parallel communication channels, that is a combination of a subset of the first data packets, and that is linearly independent of data packets that are scheduled to be transmitted in the respective channel before the subsequent data packet; and generating, by the computing apparatus based on the first data packets, a plurality of packet sequences for the plurality of parallel communication channels respectively, wherein each respective sequence of the plurality of packet sequences includes a subsequent data packet that is scheduled to be transmitted in a respective channel of the plurality of parallel communication channels, that is a combination of a subset of the first data packets, and that is linearly independent of data packets that are scheduled to be transmitted in the respective channel before the subsequent data packet; and transmitting, by the computing apparatus to a recipient device, the plurality of sequences of packets in the plurality of parallel communication channels respectively; wherein the subsequent data packet is further linearly independent of further data packets that are transmitted in the plurality of parallel communication channels other than the respective channel in which the subsequent data packet is transmitted, wherein the further data packets and the data packets that are scheduled to be transmitted in the respective channel before the subsequent data packet form a base set of data packets; the base set has fewer data packets than the plurality of first data packets; and the subsequent data packet is linearly independent of the base set of data packets, wherein the subset of the first data packets is randomly selected according to a predetermined distribution from a portion of the plurality of first data packets which portion does not include any of the first packets that is scheduled to be transmitted in the respective channel before the subsequent data packet, and further comprising: repeating the random selection of subset for the subsequent data packet, according to the predetermined distribution, until a subset that is linearly independent of the base set is selected.