Patent ID: 7643427

Claim:
A method for facilitating large data transfers between a sender and a receiver through a network comprising an entry node communicating with the sender, an exit node communicating with the receiver, and a plurality of paths between the entry node and the exit node, at least one of the plurality of paths being via at least one relay node between the entry node and the exit node to provide multipath routing of packets between the entry node and the exit node, comprising the steps of: receiving packets from the sender at the entry node; at the entry node, selecting at least one path among the plurality of paths over which to send the packets to the exit node, the selection of the at least one path being a function of path congestion; sending the packets from the entry node to the exit node via the at least one path among the plurality of paths between the entry node and exit node; reordering the packets received at the exit node; sending the reordered packets from the exit node to the receiver; executing a multi-path congestion control protocol at the exit node to detect congestion on each path between the entry node and the exit node based on packet delays and packet losses; executing a multipath congestion control protocol at the entry node to estimate the size of a congestion window for each path that indicates a stable sending rate for each path; wherein the congestion control protocol at the entry node uses a multiplicative increase multiplicative decrease (MIMD) protocol for each path and the MIMD protocol comprises the steps of: for each positive acknowledgement from the exit node to the entry node for a path i, incrementing a congestion window w i ←w i +α on path i by a parameter α: for packet delays from the entry node to the exit node for path i, decrementing the congestion window w i ←max(1,w i −β×(w i ×ξ+W×(1−ξ)) on path i, by a multiplicative decrease parameter β times the weighted sum of the congestion window w i on path j and the total congestion window on all paths W, where W = ∑ 1 n ⁢ w i , and ξ is a variable controlling the multiplicative decrease on path i; and for packet losses from the entry node to the exit node for path i, decrementing the congestion window w i ←max(1,w i −W/2).