Patent ID: 8780693

Claim:
In a network, a method of transmitting data from a source node to a destination node, the method comprising: (a) forming linear combinations of packets at the source node, wherein the linear combinations of packets represent the data to be transmitted; (b) delivering the linear combinations of packets formed at the source node from the source node to the destination node over multiple network paths, wherein no additional coding of the data is done between the source node and the destination node, wherein the source node includes a number of available tokens and delivering linear combinations of packets includes delivering a linear combination of packets for each token available at the source node; (c) providing feedback from the destination node to the source node in response to receipt of linear combinations, wherein the feedback is sent over the same network path that the corresponding linear combination was delivered over, wherein providing feedback includes returning corresponding tokens to the source node; (d) estimating congestion in individual network paths at the source node using feedback received from the destination node; (e) changing transmit rates within the multiple network paths based upon estimated congestion; and (f) forming new linear combinations of packets at the source node based on returned tokens associated with the feedback and delivering the new linear combinations of packets from the source node to the destination node.