Patent ID: 7929527

Claim:
A method for sending information to a destination, employing M different paths, comprising the steps of: at a source apparatus collecting k data segments from incoming information, where k<N and N is the size of a block; computing N−k proactive forward error correcting (PFEC) segments for said k data segments and g reactive forward error correcting (RFEC) segments, where g is a chosen integer; forming an N-segment block by combining said k data segments and said N−k PFEC segments; employing a congestion control element with each of said M paths; applying each of the N segments of said block to a chosen one of said congestion control elements for transmission over a path associated with the chosen congestion control element, where the chosen congestion control element is selected based on a probabilistic algorithm involving a measure of goodness that is evaluated for each of said M paths at said destination sending, over each of said M paths, a selective acknowledgement (SACK) message following reception of each segment; at said source apparatus from identical SACK messages arriving from said M paths relative to each received segment, accepting the first-arriving SACK message; distributing said accepted SACK message to all of said congestion control elements; when an accepted SACK message relative to one of the received segments indicates a need for m specific segments of said block, forming a secondary block of (a) said m specific segments of said block when m is greater than g, or (b) m of said RFEC segments when m is not greater than g, and transmitting the segments in said secondary block over a subset of said M paths, where said measure of goodness of said paths in said subset is greater than the measure of goodness of paths not in said subset; and returning to said step of collecting.