Data center congestion management for non-tcp traffic
Abstract
Methods, apparatus and software for implementing enhanced data center congestion management for non-TCP traffic. Non-congested transmit latencies are determined for transmission of packets or Ethernet frames along paths between source and destination end-end-nodes when congestion along the paths is not present or minimal. Transmit latencies are similarly measured along the same source-destination paths during ongoing operations during which traffic congestion may vary. Based on whether a difference between the transmit latency for a packet or frame and the non-congested transmit latency for the path exceeds a threshold, the path is marked as congested or not congested. A rate at which the non-TCP packets are transmitted along the path is then managed as function of a rate at which the path is marked as congested. In one implementation, non-TCP traffic is managed by mimicking a Data Center TCP technique, under which the congestion marking status of the path is substituted as an input to a DCTP algorithm in place of the normally-used ECN-Echo flag input. The congestion window output by the DCTCP algorithm is then used to manage the rate at which non-TCP packets to be forwarded via the path are transmitted from a source end-node.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method for implementing congestion management of non-TCP (Transmission Control Protocol) traffic in a network, comprising:
obtaining a non-congested overall transit latency for a one-way path between a source end-node and a destination end-node; obtaining overall transit latencies for transfer of non-TCP packets or Ethernet frames encapsulating non-TCP packets along the one-way path; determining, for transfer of at least a portion of the non-TCP packets or Ethernet frames, whether to mark the one-way path as congested or not congested based on a difference between the overall transit latency obtained for the non-TCP packet or Ethernet frame and the non-congested transit latency obtained for the one-way path; and managing a rate at which the non-TCP packets are transmitted from the source end-node to be forwarded via the one-way path to the destination end-node based as a function of a rate at which the one-way path is marked as congested.
2 . The method of claim 1 , further comprising mimicking Data Center TCP (DCTCP) for non-TCP traffic by:
inputting into a DCTCP algorithm a congestion marking status of the path in place of using a congestion marking status conveyed via an ECN-Echo flag as an input to the DCTCP algorithm; and employing a congestion windows (cwnd) output by the DCTCP algorithm to manage the rate at which the non-TCP packets are transmitted from the source end-node.
3 . The method of claim 1 , further comprising:
measuring a best frame transit time (BFTT) along the one-way path, and storing the BFTT for the one-way path; for each of a plurality of Ethernet frames encapsulating non-TCP packets, measuring a frame transfer time (FTT) along the one-way path for the Ethernet frames; subtracting the BFTT from the FTT and determining whether the result of the subtraction exceeds a threshold; when the result of the subtraction exceeds the threshold, marking a congestion flag in an ACK packet that is returned from the destination end-node to the source-destination end-node, otherwise leaving the congestion flag in the ACK packet unmarked; detecting a marked status of the ACK packet via inspection of the congestion flag; and employing the marked status to implement congestion management for the one-way path.
4 . The method of claim 1 , wherein the method is implemented for a plurality of one-way paths between a plurality of source and destination end-nodes, the plurality of one-way paths collectively traversing a plurality of switches, and wherein the method is implemented without any modification to the switches.
5 . The method of claim 1 , wherein the method is implemented by modifying at least one of software or hardware components configured to implement a conventional non-TCP protocol only at the source end-node, wherein the destination end-node employs conventional software and hardware components for implementing the non-TCP protocol.
6 . The method of claim 1 , wherein the non-TCP traffic comprises one of RDMA over Converged Ethernet (RoCE) traffic or Fiber Channel over Ethernet traffic.
7 . The method of claim 1 , wherein the method is facilitated via the use of timestamps corresponding to when an Ethernet frame is transmitted from a transmit port and received at a receive port, and further wherein at least one timestamp is added to a field in the Ethernet frame.
8 . The method of claim 1 , wherein the non-congested transit latency for the one-way path is obtained without using TCP.
9 . A server apparatus, configured to be implemented as an end-node in a data center, the server apparatus having a processor operatively coupled to memory and operatively coupled to a network interface configured to support network communication using an Ethernet protocol, the server apparatus further configured, upon operation, to:
facilitate operation of the server apparatus as a source end-node; transmit Ethernet frames outbound from the transmit port toward a destination end-node, at least a portion of the Ethernet frames encapsulating non-TCP (Transmission Control Protocol) packets, the Ethernet frames to be forwarded along a one-way source-destination path between the server apparatus and the destination end-node and traversing at least one switch; retrieve path congestion marking indicia received from the destination end-node for transfer of at least a portion of the Ethernet frames encapsulating non-TCP packets, the path congestion marking indicia for a given Ethernet frame identifying whether or not the one-way source-destination path was marked as congested for transfer of the Ethernet frame based on a difference between a latency for the one-way source-destination path measured for the Ethernet frame by the destination end-node, and a non-congested transit latency determined for the one-way source-destination path, each of the transit latency measured for the Ethernet frame by the destination end-node and the non-congested transit latency comprising an overall transit latency for the one-way source-destination path; and manage a rate at which the non-TCP packets are transmitted outbound from the transmit port to be forwarded via the one-way source-destination path to the destination end-node based as a function of a rate at which the path is marked as congested.
10 . The server apparatus of claim 9 , wherein the apparatus is further configured to:
input the path congestion marking indicia into a DCTCP (Data Center TCP) algorithm in place of using a congestion marking status conveyed via an ECN-Echo flag as an input to the DCTCP algorithm; update a congestion windows (cwnd) via the DCTCP algorithm; and employ cwnd to manage the rate at which non-TCP packets are transmitted outbound from the transmit port to be forwarded via the one-way source-destination path to the destination end-node.
11 . The server apparatus of claim 9 , wherein the apparatus is further configured to timestamp an Ethernet frame encapsulating a non-TCP packet proximate to when the Ethernet frame is transmitted from the transmit port.
12 . The server apparatus of claim 11 , wherein the timestamp is added via a software-based Ethernet MAC (Media Access Channel) layer or sub-layer implemented via execution of software on the processor.
13 . The server apparatus of claim 11 , wherein the timestamp is added via a hardware-based Ethernet MAC (Media Access Channel) layer or sub-layer implemented by the network interface.
14 . The server apparatus of claim 9 , wherein the apparatus is further configured to:
facilitate operation of the server apparatus as a destination end-node; retrieve a source transit timestamp contained in an Ethernet frame including an encapsulated non-TCP packet transmitted from a source end-node along a one-way source-destination path from the source end-node to the server apparatus, the source transit timestamp identifying a time at which the Ethernet frame was transmitted from the source end-node; retrieve a destination receive timestamp identifying a time at which the Ethernet frame is received at the receive port; and calculate a frame transit time (FTT) based on a difference between the destination receive timestamp and the source transit timestamp.
15 . The server apparatus of claim 14 , wherein the apparatus is further configured to:
retrieve a best frame transit time BFTT corresponding to a non-congested transit latency for the source-destination path; determine whether a difference between the FTT for an Ethernet frame and the BFTT exceeds a threshold; and if the difference between the FTT and BFTT exceeds the threshold, return an ACK packet containing indicia indicating the one-way source-destination path is marked as congested, otherwise, return an ACK packet containing indicia indicating the one-way source-destination path is not marked as congested.
16 . A machine-readable non-transitory storage medium having instructions stored thereon configured to be executed on a host processor of a server comprising a source end-node to enable the source end-node to:
obtain a non-congested overall transit latency for a one-way path between the source end-node and the destination end-node including at least one switch. transmit Ethernet frames outbound from a transmit port of the source end-node toward a destination end-node, the Ethernet frames to be forwarded along the one-way path; determine, for transfer of at least a portion of Ethernet frames encapsulating non-TCP packets, whether to mark the one-way path as congested or not congested based on a difference between an overall transit latency measured for the Ethernet frame for the one-way path and the non-congested overall transit latency obtained for the one-way path; and manage a rate at which the non-TCP packets are transmitted outbound from the transmit port of the source end-node to be forwarded via the one-way path to the destination end-node based as a function of a rate at which the one-way path is marked as congested.
17 . The machine-readable non-transitory storage medium of claim 18 , wherein the instructions are configured to enable the source end-node to:
maintain an estimate of a fraction of Ethernet frames that are marked, which is updated once for every window of data using the equation,
α←(1− g )× a+g×F
where F is the fraction of packets that were marked in the last window of data, and g is a
weight between 0 and 1 given to new samples against the past in the estimation of α;
input α into the following equation to adjust a size of a congestion window (cwnd),
cwnd←cwnd×(1−α/2); and
employ cwnd to manage rate at which the non-TCP packets are transmitted outbound from the transmit port of the source end-node to be forwarded via the path to the destination end-node.
18 . The machine-readable non-transitory storage medium of claim 16 , wherein the instructions are configured to embed a source transit timestamp in an Ethernet frame indicating when the Ethernet frame was transmitted outbound from the transmit port of the source end-node.
19 . The machine-readable non-transitory storage medium of claim 16 , wherein path congestion marking indicia is received from the destination end-node, and wherein the instructions are configured to inspect a congestion flag in an ACK packet comprising the path congestion marking indicia that is returned by the destination end-node in response to receiving an Ethernet frame encapsulating a non-TCP packet from the source-node, the congestion flag including indicia to whether the one-way path along which the Ethernet frame was forwarded was congested when the Ethernet frame traversed the one-way path.
20 . The machine-readable non-transitory storage medium of claim 16 , further having instructions stored thereon configured to be executed on a host processor of a server comprising a destination end-node to enable the destination end-node to:
retrieve a source transit timestamp contained in an Ethernet frame including an encapsulated non-TCP packet transmitted from a source end-node along a one-way source-destination path from the source end-node to the destination end-node, the source transit timestamp identifying a time at which the Ethernet frame was transmitted from the source end-node; retrieve a destination receive timestamp identifying a time at which the Ethernet frame is received at the destination end-node; and calculate a frame transit time (FTT) based on a difference between the destination receive timestamp and the source transit timestamp.
21 . The machine-readable non-transitory storage medium of claim 20 , wherein the instructions are further configured, upon execution, to:
retrieve a best frame transit time BFTT corresponding to a non-congested overall transit latency for the one-way source-destination path; determine whether a difference between the FTT for an Ethernet frame and the BFTT exceeds a threshold; and if the difference between the FTT and BFTT exceeds the threshold, returning an ACK packet containing indicia indicating the one-way source-destination path is marked as congested, otherwise, returning an ACK packet containing indicia indicating the one-way source-destination path is not marked as congested.Join the waitlist — get patent alerts
Track US2020220816A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.