Communication transport optimized for data center environment
First Claim
1. A method for controlling network congestion, comprising:
- transmitting a first set of data packets from a source computing device to a destination computing device at a first transmission rate;
receiving, at the source computing device, information;
that identifies each data packet of the first set of data packets that was received at the destination computing device without a congestion marking;
that identifies each data packet of the first set of data packets that was received at the destination computing device with the congestion marking; and
that indicates, for each of the data packets of the first set of data packets, whether that specific data packet was received at the destination computing device with or without the congestion marking, wherein the information is received via indications transmitted by the destination computing device according to a state machine that transmits an indication for;
each series of M consecutive packets received by the destination computing device without the congestion marking, wherein M is greater than one;
each series of N consecutive packets received by the destination computing device with the congestion marking, wherein N is greater than one;
each particular packet received by the destination computing device without the congestion marking where a last packet received by the destination computing device relative to that particular packet was received by the destination computing device with the congestion marking; and
each given packet received by the destination computing device without the congestion marking where the last packet received by the destination computing device relative to that given packet was received by the destination computing device with the congestion marking;
determining an adjusted transmission rate, that is different from the first transmission rate, based at least in part on the received information; and
transmitting a second set of data packets from the source computing device to the destination computing device at the adjusted transmission rate.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for congestion control in computer networks achieve high burst tolerance, low latency and high throughput with shallow-buffered switches. A method for controlling congestion includes transmitting a set of data packets on a network connection from a first computing device to a second computing device, identifying each data packet in the set of data packets that experienced congestion on the network connection, sending, by the second computing device to the first computing device, a sequence of bits that represents the number of data packets in the set of data packets that were identified as having experienced congestion, and adjusting a rate of transmitting data packets on the network connection based on the sequence of bits sent to the first computing device.
-
Citations
20 Claims
-
1. A method for controlling network congestion, comprising:
-
transmitting a first set of data packets from a source computing device to a destination computing device at a first transmission rate; receiving, at the source computing device, information; that identifies each data packet of the first set of data packets that was received at the destination computing device without a congestion marking; that identifies each data packet of the first set of data packets that was received at the destination computing device with the congestion marking; and that indicates, for each of the data packets of the first set of data packets, whether that specific data packet was received at the destination computing device with or without the congestion marking, wherein the information is received via indications transmitted by the destination computing device according to a state machine that transmits an indication for; each series of M consecutive packets received by the destination computing device without the congestion marking, wherein M is greater than one; each series of N consecutive packets received by the destination computing device with the congestion marking, wherein N is greater than one; each particular packet received by the destination computing device without the congestion marking where a last packet received by the destination computing device relative to that particular packet was received by the destination computing device with the congestion marking; and each given packet received by the destination computing device without the congestion marking where the last packet received by the destination computing device relative to that given packet was received by the destination computing device with the congestion marking; determining an adjusted transmission rate, that is different from the first transmission rate, based at least in part on the received information; and transmitting a second set of data packets from the source computing device to the destination computing device at the adjusted transmission rate. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer storage memory encoded with instructions for performing operations to control network congestion, the operations comprising:
receiving a first set of data packets from a source computing device at a destination computing device; and transmitting, from the destination computing device, indications to the source computing device according to a state machine that transmits an indication to the source computing device for; each series of M consecutive packets received by the destination computing device without the congestion marking, wherein M is greater than one; each series of N consecutive packets received by the destination computing device with the congestion marking, wherein N is greater than one; each particular packet received by the destination computing device without the congestion marking where a last packet received by the destination computing device relative to that particular packet was received by the destination computing device with the congestion marking; and each given packet received by the destination computing device without the congestion marking where the last packet received by the destination computing device relative to that given packet was received by the destination computing device with the congestion marking, wherein each of the indications indicates, for each data packet received by the destination computing device from the source computing device since transmission of a last indication, whether that specific data packet was received at the destination computing device with or without the congestion marking. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
17. An apparatus for controlling network congestion, comprising a memory and a processor that are respectively configured to store and execute instructions that:
-
transmit a first set of data packets from a source computing device to a destination computing device at a first transmission rate; receive, at the source computing device, information; that identifies each data packet of the first set of data packets that was received at the destination computing device without a congestion marking; that identifies each data packet of the first set of data packets that was received at the destination computing device with the congestion marking; and that indicates, for each of the data packets of the first set of data packets, whether that specific data packet was received at the destination computing device with or without the congestion marking; determine an adjusted transmission rate, different from the first transmission rate, based at least in part on the received information; and transmit a second set of data packets from the source computing device to the destination computing device at the adjusted transmission rate, wherein; the adjusted transmission rate is determined as a function of at least; a ratio of data packets received at the destination computing device without the congestion marking to data packets received at the destination computing device with the congestion marking; and a reduction of a length of a data packet transmission window by a factor of a smoothed estimate of the ratio over multiple sets of data packets; and receiving the information includes; receiving indications transmitted by the destination computing device according to a state machine that transmits an indication for; each series of M consecutive packets received by the destination computing device without the congestion marking, wherein M is greater than one; each series of N consecutive packets received by the destination computing device with the congestion marking, wherein N is greater than one; each particular packet received by the destination computing device without the congestion marking where a last packet received by the destination computing device relative to that particular packet was received by the destination computing device with the congestion marking; and each given packet received by the destination computing device without the congestion marking where the last packet received by the destination computing device relative to that given packet was received by the destination computing device with the congestion marking. - View Dependent Claims (18, 19, 20)
-
Specification