# US 2014/0153387 A1 · Tuning Congestion Notification for Data Center Networks

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0153387 A1
- Document ID: US20140153387A1
- Status: Published application
- Kind: A1
- Application number: 13/690,345
- Filed: 2012-11-30
- Published: 2014-06-05
- Earliest claimed: 2012-11-30
- Assignees: Microsoft Corporation
- Applicants: Microsoft Corporation
- Inventors: Haitao Wu; Guohan Lv; Chuanxiong Guo; Yongqiang Xiong; Yongguang Zhang
- Web page: https://patentgrep.com/patent/US20140153387A1

## CPC

- H04L 47/36: by determining packet size, e.g. maximum transfer unit [MTU]
- H04L 47/30: in combination with information about buffer occupancy at either end or at transit nodes
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system, method or computer readable medium to provide efficient congestion notification is described herein. In various embodiments, a packet is received at an intermediate node of one or more data center networks. A current queue length at the intermediate node is determined. A threshold value for the current queue length is tuned by dynamically computing an upper bound and a lower bound based at least in part on the network. The packet is marked to indicate possible congestion in the one or more data center networks when the current queue length exceeds the threshold value. In some embodiments, the packet is marked when it is being de-queued. In a further embodiment, Flexible Initial Packet Size (FIPS) may be utilized to improve the efficiency of the tuning.

## Claims

### Claim 1

A system comprising:
one or more processors;
a memory coupled to the one or more processors to store:
a congestion detection module configured to:
determine a current queue length at an intermediate node of one or more data center networks;
a threshold module configured to:
set a threshold value for the current queue length by determining an upper bound and a lower bound;
a congestion notification module configured to mark a packet to indicate possible congestion in the one or more data center networks when the current queue length exceeds the threshold value, wherein the congestion notification module comprises a de-queue marking module configured to mark the packet when the packet is being de-queued; and
a flexible initial packet size (FIPS) module configured to probe the network with a plurality of small packets having a smaller payload size than the packet.

### Claim 2 (depends on 1)

The system of claim 1, wherein the threshold value is larger than the lower bound and smaller than the upper bound.

### Claim 3 (depends on 2)

The system of claim 2, wherein the upper bound for the threshold value is determined such that no packet is dropped due to buffer overflow.

### Claim 4 (depends on 2)

The system of claim 2, wherein the lower bound is determined such that throughput performance is not affected after a congestion window at a source node is reduced.

### Claim 5 (depends on 1)

The system of claim 1, wherein the packet is marked by setting a bit in a header of the packet to indicate congestion.

### Claim 6 (depends on 1)

The system of claim 1, wherein the packet is marked when the current queue length is greater than or equal to the threshold value.

### Claim 7 (depends on 1)

The system of claim 1, wherein a congestion window size is bounded by the threshold value and a bandwidth delay product.

### Claim 8 (depends on 1)

The system of claim 1, wherein congestion control is used at end hosts of the one or more data center networks without modification of an explicit congestion control (ECN) protocol.

### Claim 9 (depends on 1)

The system of claim 1, wherein the congestion notification module marks the small packets to indicate possible congestion in the one or more data center networks based at least in part on the current queue length and the threshold value.

### Claim 10 (depends on 1)

The system of claim 1, wherein the threshold value is set based at least in part on the small packets

### Claim 11

A computer-implemented method comprising:
determining a parameter for a number of small packets based at least in part on a capacity of a network;
determining an amount of application data to be transmitted;
transmitting the application data using the small packets based at least in part on the number and the amount;
providing a count of sent small packets; and
sending the application data packets with maximum transmission size after the count of sent small packets reaches a predetermined value or after a congestion indicator or a timeout is received.

### Claim 12 (depends on 11)

The method of claim 11, further comprising determining a size of the small packets based at least in part on an initial congestion window.

### Claim 13 (depends on 11)

The method of claim 11 further comprising adjusting a threshold value at an intermediate node based at least in part on the small packets.

### Claim 14 (depends on 13)

The method of claim 13, wherein the intermediate node uses de-queue marking.

### Claim 15 (depends on 13)

The method of claim 13, wherein the intermediate node marks the small packets to indicate possible congestion in one or more data center networks based at least in part on a current queue length and a threshold value at the intermediate node.

### Claim 16

One or more computer-readable media storing a plurality of executable instructions configured to program a computing device to perform operations comprising:
determining a current queue length at an intermediate node of one or more data center networks;
setting a threshold value for the current queue length based at least in part on an upper bound and a lower bound; and
when a packet is being de-queued at the intermediate node, marking the packet to indicate possible congestion in the one or more data center networks based at least in part on the current queue length and the threshold value.

### Claim 17 (depends on 16)

The computer-readable media of claim 16, the operations further comprising probing the one or more data center networks with a plurality of small packets having a smaller payload size than the packet.

### Claim 18 (depends on 17)

The computer-readable media of claim 17, wherein probing the one or more data center networks comprises:
determining a number of the small packets to transmit based at least in part on a capacity of the one or more data center networks;
determining an amount of data packets to be transmitted;
transmitting the data using the small packets based at least in part on the amount;
performing a count of sent small packet; and
sending the data packets with maximum transmission size after the count exceeds a predetermined value or after a congestion indicator or a timeout is received.

### Claim 19 (depends on 16)

The computer-readable media of claim 16, wherein setting the threshold value is further based at least in part on small packets.

### Claim 20 (depends on 16)

The computer-readable media of claim 16, wherein the packet being de-queued is marked when the current queue length is larger than or equal to the threshold value.
