US2020220816A1PendingUtilityA1

Data center congestion management for non-tcp traffic

Assignee: INTEL CORPPriority: May 22, 2014Filed: Mar 13, 2020Published: Jul 9, 2020
Est. expiryMay 22, 2034(~7.8 yrs left)· nominal 20-yr term from priority
H04L 43/0864H04L 43/16H04L 47/822H04L 43/0858H04L 12/4633H04L 47/18H04L 47/27
57
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
What 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.