Multipath Routing Architecture for Large Data Transfers

Abstract
A multipath routing architecture for large data transfers is disclosed. The architecture employs an overlay network that provides diverse paths for packets from communicating end hosts to utilize as much capacity as available across multiple paths while ensuring network-wide fair allocation of resources across competing data transfers. A set of transit nodes are interposed between the end-hosts and for each end-to-end connection, a transit node can logically operate as an entry gateway, a relay or exit gateway. Packets from the sender enter the entry node and go to the exit node either directly or through one of a plurality of relay nodes. The exit node delivers the packets to the receiver. A multipath congestion control protocol is executed on the entry node to harness network capacity for large data transfers.
Description

BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a schematic of an exemplary network architecture in accordance with an aspect of the invention;



FIG. 2 is a schematic of the overlay network architecture, showing details of how packets from a sender to a receiver are routed from an entry node to an exit node over multiple paths in the network and delivered to the receiver by the exit node in accordance with an aspect of the invention;



FIG. 3 is a schematic of multiple senders sharing a common path vs. a single path for illustrating an aspect of the invention;



FIG. 4 is a flow diagram of a path selection process at an entry node in the network of FIG. 2;



FIG. 5 is a flow diagram of a process for receiving packets at the exit node in the network of FIG. 2;



FIG. 6 is a flow diagram of process for estimating packet delays at the exit node; and



FIG. 7 is a flow diagram of a process for detecting packet loss at the exit node and determining which path the packet loss occurred at the entry node.


Claims
  • 1. 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; andsending the reordered packets from the exit node to the receiver.
  • 2. The method recited in claim 1, further comprising the step of 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.
  • 3. The method recited in claim 2, further comprising the step of 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.
  • 4. The method recited in claim 3, wherein the congestion control protocol at the entry node uses a multiplicative increase multiplicative decrease (MIMD) protocol for each path.
  • 5. The method recited in claim 4, wherein 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 wi←wi+α on path i by a parameter α;for packet delays from the entry node to the exit node for path i, decrementing the congestion window wi←max(1, wi−β×(wi×ξ+W×(1−ξ)) on path i, by a multiplicative decrease parameter β times the weighted sum of the congestion window wi on path i and the total congestion window on all paths W, where
  • 6. The method recited in claim 5, wherein
  • 7. The method recited in claim 5, wherein the exit node estimates packet delays based on a timestamp for each packet received at the exit node and a current time.
  • 8. The method recited in claim 7, wherein the exit node sends a congestion indication to the entry node if a packet is delayed by more than Δi=dmini+(dmaxi−dmini)×δ, where dmini is a minimum packet delay and dmaxi is a maximum packet delay observed by the exit node for packets on path i, and δ is a threshold parameter.
  • 9. The method recited in claim 5, further comprising the steps of: at the exit node, maintaining a variable last_byte_rcvdi for each path i that indicates the highest packet received on path i; maintaining a variable rcvnxt per connection with the entry node that indicates a next packet expected in the sequence;if last_byte_rcvdi exceeds rcvnxt, sending a packet loss indication to the entry node, the packet loss indication including a range of missing packets; andat the entry node, decrementing the congestion window wi for path i.
  • 10. The method recited in claim 5, further comprising the step of upon the congestion window wi reaching a threshold value, stopping packets from being sent over path i.
  • 11. The method recited in claim 5, further comprising the step of the entry node balancing load across the plurality of paths by choosing for each packet a path with a minimum
Provisional Applications (2)
Number Date Country
60743846 Mar 2006 US
60804674 Jun 2006 US