Multi-path transport design
AssigneeAmazon Technologies, Inc.
InventorsLeah Shalev, Nafea Bshara, Georgy Machulsky, Brian William Barrett
Life of this patent
Estimating the term…
Abstract
Disclosed herein is a method including receiving, from a user application, data to be transmitted from a source address to a destination address using a single connection through a network; and splitting the data into a plurality of packets according to a communication protocol. For each packet of the plurality of packets, a respective flowlet for the packet to be transmitted in is determined from a plurality of flowlets. Assignment of the flowlets to the packets can be dynamically adjusted based on utilization of the flowlets.
Claims20
A method of data communication in a network, the method comprising:
- receiving data from a send queue of a queue pair that includes the send queue and a receive queue on a first device to be transmitted to a second device, wherein the first device is associated with a source address on the network, and the second device is associated with a destination address on the network;
- splitting the data from the send queue into packets for transport on a plurality of flowlets according to a transport service of a transport layer, wherein each flowlet of the plurality of flowlets uses a different path in the network;
- for each packet associated with the data from the send queue:
- before placing the packet onto a flowlet, dynamically selecting which flowlet from the plurality of flowlets to transport the packet based on respective utilization levels of the plurality of flowlets;
- assigning the selected flowlet to the packet;
- and
- sending, to the destination address via the network, the packet on the flowlet assigned to that packet according to the transport service, wherein the flowlet is reassigned to a different path when a network metric of the flowlet satisfies a threshold condition.
An apparatus comprising:
- processing logic;
- and
- a computer readable storage device coupled to and readable by the processing logic, wherein the computer readable storage device includes instructions for causing the processing logic to perform operations including:
- receiving data from a send queue of a queue pair that includes the send queue and a receive queue on a first device to be transmitted to a second device on a network, wherein the first device is associated with a source address on the network, and the second device is associated with a destination address on the network;
- splitting the data from the send queue into packets for transport on a plurality of flowlets according to a transport service of a transport layer, wherein each flowlet of the plurality of flowlets uses a different path in the network;
- and
- for each packet associated with the data from the send queue:
- before placing the packet onto a flowlet, dynamically selecting which flowlet from the plurality of flowlets to transport the packet based on respective utilization levels of the plurality of flowlets;
- assigning the selected flowlet to the packet;
- and
- sending, to the destination address via the network, the packet on the flowlet assigned to that packet according to the transport service, wherein a flowlet is reassigned to a different path when a network metric of that flowlet satisfies a threshold condition.
Dependencies are inferred from the claim text.