US2025106161A1PendingUtilityA1

Decoupling congestion management state and connection management state in high performance computing

Assignee: HEWLETT PACKARD ENTPR DEV LPPriority: Sep 22, 2023Filed: Jan 9, 2024Published: Mar 27, 2025
Est. expirySep 22, 2043(~17.1 yrs left)· nominal 20-yr term from priority
H04L 47/12H04L 47/62
54
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A first network endpoint establishes a connection with a second network endpoint by transmitting a control packet including a first identifier associated with the connection and the first network endpoint. The first network endpoint stores, in a first data structure based on the first identifier, a first connection state associated with the connection and stores, in a second data structure based on the first connection state, a first congestion state associated with the connection. The first network endpoint identifies, for a data flow associated with the first identifier, a congestion state corresponding to the data flow, by: obtaining the first connection state by searching the first data structure based on the first identifier; and identifying the first congestion state by searching the second data structure based on the obtained first connection state.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A computer-implemented method, comprising:
 establishing, by a first network endpoint, a connection with a second network endpoint by transmitting a control packet including a first identifier associated with the connection and the first network endpoint;   storing, by the first network endpoint in a first data structure based on the first identifier, a first connection state associated with the connection;   storing, by the first network endpoint in a second data structure based on the first connection state, a first congestion state associated with the connection; and   identifying, for a data flow associated with the first identifier, a congestion state corresponding to the data flow, identifying the corresponding congestion state comprising:
 obtaining the first connection state by searching the first data structure based on the first identifier; and 
 identifying the first congestion state by searching the second data structure based on the obtained first connection state. 
   
     
     
         2 . The method of  claim 1 , further comprising:
 identifying a data packet to be scheduled, the data packet associated with the first identifier; and   determining whether to schedule the data packet based on at least one of:
 a status of the identified first congestion state; 
 a status of the obtained first connection state; or 
 one or more statuses of connections associated with the identified first congestion state. 
   
     
     
         3 . The method of  claim 1 , further comprising:
 storing the first connection state in a first entry in the first data structure, the first data structure comprising connection states associated with connections between the first network endpoint and at least the second network endpoint; and   storing the first congestion state in a second entry in the second data structure, the second data structure comprising congestion states associated with the connections between the first network endpoint and at least the second network endpoint.   
     
     
         4 . The method of  claim 3 ,
 the first entry indicating at least the first identifier associated with the connection, one or more data packets pending to be transmitted, a first status associated with the connection, and a congestion index associated with the first congestion state stored in the second data structure, and   the method further comprising identifying the first congestion state by searching the second data structure further based on the congestion index indicated in the first entry.   
     
     
         5 . The method of  claim 4 ,
 the second entry in the second data structure indicating at least a second status associated with the first congestion state, one or more connection indices corresponding to elements in the first data structure, and one or more of a congestion window size and a congestion rate, and   the connection indices including at least the first identifier for the connection and corresponding to connections associated with the first congestion state.   
     
     
         6 . The method of  claim 3 ,
 the first entry in the first data structure indicating at least the first identifier associated with the connection, one or more data packets pending to be transmitted, and a first status associated with the connection,   the second entry in the second data structure indicating at least a second status associated with the first congestion state and one or more of a congestion window size and a congestion rate, and   the method further comprising identifying the first congestion state by searching the second data structure further based on an encoding associated with the first identifier.   
     
     
         7 . The method of  claim 6 ,
 the second entry in the second data structure further indicating an array comprising connection state entries from the first data structure, the second entry comprising the first congestion state, and   the method further comprising:
 including the connection states associated with the connection as a sub-element of the congestion state; 
 identifying the first congestion state by searching the second data structure further based on a first encoding associated with the first identifier; and 
 obtaining the first connection state by searching the array based on a second encoding associated with the first identifier. 
   
     
     
         8 . The method of  claim 7 , further comprising encoding the first identifier based on at least one of:
 obtaining a first index for the second data structure by shifting one or more bits of the first identifier, the first identifier and the first index comprising fully overlapping bits;   obtaining a second index for the second data structure by shifting one or more bits of the first identifier, the first identifier and the second index comprising no overlapping bits; or   obtaining the first index or the second index by masking the first identifier prior to shifting the one or more bits.   
     
     
         9 . The method of  claim 7 , further comprising:
 determining that the data flow comprises at least:
 first data transmitted from the first network endpoint to the second network endpoint; and 
 second data transmitted from the first network endpoint to the second network endpoint in response to a request from the second network endpoint; 
   storing, by the first network endpoint, the first connection state in the first data structure using a portion of the first identifier in response to the data flow comprising the first data, the first data structure further comprising connection states associated with the first network endpoint as a transmitting entity;   storing, by the first network endpoint, the first connection state in a third data structure using the same portion of the first identifier in response to the data flow comprising the second data, the third data structure comprising connection states associated with the first network endpoint as a receiving entity; and   storing, by the first network endpoint, the first congestion state in the second data structure using a remainder of the first identifier.   
     
     
         10 . A computer system, comprising:
 a processing resource; and   a non-transitory machine-readable storage device storing instructions executable by the processing resource to:
 transmit, by a first network endpoint, a control packet including a first identifier associated with the first network endpoint and a connection to be established with a second network endpoint; 
 store, by the first network endpoint based on the first identifier, a first connection state associated with the connection; 
 store, by the first network endpoint based on the first connection state, a first congestion state associated with the connection; and 
 identify, for a data flow associated with the first identifier, a congestion state corresponding to the data flow, by performing:
 a first search, using the first identifier, in a first structure which stores connection states associated with connections, the first search returning the first connection state; and 
 a second search, using the returned first connection state, in a second data structure which stores congestion states associated with connection states, the second search identifying the first congestion state. 
 
   
     
     
         11 . The computer system of  claim 10 , the instructions executable by the processing resource further to:
 determine whether to schedule a data packet associated with the first identifier based on at least one of:
 a status of the identified first congestion state; 
 a status of the returned first connection state; or 
 one or more statuses of connections associated with the identified first congestion state. 
   
     
     
         12 . The computer system of  claim 10 , the instructions executable by the processing resource further to:
 store the first connection state in a first entry in the first data structure, the first data structure comprising connection states associated with connections between the first network endpoint and at least the second network endpoint; and   store the first congestion state in a second entry in the second data structure, the second data structure comprising congestion states associated with the connections between the first network endpoint and at least the second network endpoint.   
     
     
         13 . The computer system of  claim 12 , the instructions executable by the processing resource further to:
 indicate, in the first entry in the first data structure, at least the first identifier associated with the connection, one or more data packets pending to be transmitted, a first status associated with the connection, and a congestion index associated with the first congestion state stored in the second data structure; and   perform the second search based on the congestion index indicated in the first entry.   
     
     
         14 . The computer system of  claim 13 , the instructions executable by the processing resource further to:
 indicate, in the second entry in the second data structure, at least a second status associated with the first congestion state, one or more connection indices corresponding to elements in the first data structure, and one or more of a congestion window size and a congestion rate; and   include in the connection indices at least the first identifier for the connection, the connection indices corresponding to connections associated with the first congestion state.   
     
     
         15 . The computer system of  claim 12 , the instructions executable by the processing resource further to:
 indicate, in the first entry in the first data structure, at least the first identifier associated with the connection, one or more data packets pending to be transmitted, and a first status associated with the connection;   indicate, in the second entry in the second data structure, at least a second status associated with the first congestion state and one or more of a congestion window size and a congestion rate; and   perform the second search based on an encoding associated with the first identifier.   
     
     
         16 . The computer system of  claim 15 , the instructions executable by the processing resource further to:
 indicate, in the second entry in the second data structure, an array comprising connection state entries from the first data structure, the second entry comprising the first congestion state;   include the connection states associated with the connection as a sub-element of the congestion state;   identify the first congestion state by searching the second data structure based on a first encoding associated with the first identifier; and   obtaining the first connection state by searching the array based on a second encoding associated with the first identifier.   
     
     
         17 . The computer system of  claim 16 , the instructions executable by the processing resource further to encode the first identifier by at least one of:
 obtaining a first index for the second data structure by shifting one or more bits of the first identifier, the first identifier and the first index comprising fully overlapping bits;   obtaining a second index for the second data structure by shifting one or more bits of the first identifier, the first identifier and the second index comprising no overlapping bits; or   obtaining the first index or the second index by masking the first identifier prior to shifting the one or more bits.   
     
     
         18 . A non-transitory computer-readable storage medium comprising instructions executable by a processing resource to:
 establish a connection between a first network endpoint and a second network endpoint by transmitting a control packet including a first identifier associated with the connection and the first network endpoint;   store, in a first entry in a first data structure based on the first identifier, a first connection state associated with the connection;   store, in a second entry in a second data structure based on the first connection state, a first congestion state associated with the connection;   identify, for a data flow associated with the first identifier, a congestion state corresponding to the data flow, by:
 obtaining the first connection state by searching the first data structure based on the first identifier; and 
 identifying the first congestion state by searching the second data structure based on the obtained first connection state; and 
   determine whether to schedule a data packet associated with the first identifier based on a status of the identified first congestion state or the returned first connection state.   
     
     
         19 . The non-transitory computer-readable storage medium of  claim 18 ,
 the first entry indicating at least the first identifier associated with the connection, one or more data packets pending to be transmitted, a first status associated with the connection, and a congestion index associated with the first congestion state stored in the second data structure, and   the instructions executable by the processing resource further to identify the first congestion state by searching the second data structure further based on the congestion index indicated in the first entry.   
     
     
         20 . The non-transitory computer-readable storage medium of  claim 18 ,
 the first entry in the first data structure indicating at least the first identifier associated with the connection, one or more data packets pending to be transmitted, and a first status associated with the connection,   the second entry in the second data structure indicating at least a second status associated with the first congestion state and one or more of a congestion window size and a congestion rate, and   the instructions executable by the processing resource further to:
 identify the first congestion state by searching the second data structure further based on an encoding associated with the first identifier; and 
 schedule the data packet further based on the first status and the second status.

Join the waitlist — get patent alerts

Track US2025106161A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.