DCTCP Congestion Control for Data Center Networks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current TCP protocols fall short in managing congestion in data center networks, particularly in maintaining low latency, high burst tolerance, and high throughput due to the mix of short and long flows, leading to packet losses and increased latency.

Innovation Solution

The DCTCP algorithm uses a marking scheme at switches to set a Congestion Experienced codepoint in data packets when buffer occupancy exceeds a threshold, allowing senders to adjust transmission rates based on the fraction of marked packets, thereby maintaining small queue occupancies and high throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If TCP protocol is used for congestion control, then network connectivity is maintained, but latency increases and throughput decreases for short flows

Engineering Contradiction:
Improvenetwork connectivityVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent changes the congestion detection parameter from binary (loss-based) to continuous (marking fraction-based). By using the fraction of marked packets rather than packet loss events, the system can detect congestion earlier and respond more granularly, reducing latency while maintaining connectivity through smooth rate adjustment rather than reactive retransmission cycles

Inventive Principle:
Principle #35Parameter changes

2Productivity

If buffer size is increased to handle long flows, then throughput for long flows improves, but latency for short flows increases

Engineering Contradiction:
Improvethroughput for long flowsVSAvoidlatency for short flows
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements feedback through explicit congestion marking at the buffer boundary. When the buffer occupancy reaches a threshold, packets are marked to provide feedback to senders about congestion conditions. This allows dynamic rate adjustment that prevents buffer overflow while maintaining throughput, eliminating the need to pre-size buffers for worst-case scenarios

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system dynamically adjusts transmission rates based on real-time congestion feedback from marked packets. Rather than using static buffer sizes, the buffer operates with adaptive control where the effective buffer utilization is regulated dynamically through sender rate adjustment, allowing small physical buffers to achieve large buffer performance

Inventive Principle:
Principle #15Dynamics

3Reliability

If transmission rate is reduced to prevent congestion, then packet losses decrease, but throughput decreases

Engineering Contradiction:
Improvepacket loss preventionVSAvoidthroughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies partial action by using only the fraction of marked packets to determine rate reduction, rather than reacting to every single marked packet. The sender computes the fraction of marked packets and adjusts rate proportionally, avoiding over-reaction that would cause unnecessary throughput reduction while still preventing packet losses through adequate rate control

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP2540042B1Communication transport optimized for data center environment
Publication Date: 2019.10.30 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2540042B1 patent drawingFigure 1
  • EP2540042B1 patent drawingFigure 2
  • EP2540042B1 patent drawingFigure 3

AI summary

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.