IP Library Granted Patent US 12,425,342
Granted Patent B2
US 12,425,342 · App. 17/747,421 · Granted Sep 23, 2025

Layer 4 load aware load balancing

Inventors: Zhiyuan Yao (Paris, FR); Yoann Louis Simon Desmouceaux (Paris, FR); Pierre Pfister (Roquefort-les-Pins, FR); William Mark Townsley (San Francisco, CA)
H04L47/125H04L43/067H04L43/0852H04L47/2441H04L47/522H04L67/1008H04L43/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,425,342
App. No.
17/747,421
Granted
Sep 23, 2025
Kind
B2
Abstract

Load aware load balancing may be provided. Flow duration data associated with a plurality of flows associated with a plurality of servers may be obtained. Then a plurality of queue lengths respectively associated with the plurality of servers may be obtained. Next, a Shortest Expected Delay (SED) score may be determined for each of the plurality of servers based on the flow duration data and the plurality of queue lengths. A flow may then be assigned to a one of the plurality of servers having the lowest SED score.

Claims (38)

1. A method comprising:

inferring, by a computing device, server processing speed data associated with a plurality of servers from flow duration data associated with a plurality of flows associated with the plurality of servers, wherein inferring the server processing speed data comprises using a Softmax normalization function on the flow duration data associated with the plurality of flows associated with the plurality of servers;

obtaining a plurality of queue lengths respectively associated with the plurality of servers;

determining a Shortest Expected Delay (SED) score for each of the plurality of servers from the inferred server processing speed data and the plurality of queue lengths; and

assigning a flow to the one of the plurality of servers having a lowest SED score.

2. The method of claim 1 , further comprising obtaining the flow duration data wherein obtaining the flow duration data comprises determining an average flow duration for each of the plurality of servers.

3. The method of claim 2 , wherein obtaining the flow duration data comprises deriving a normalization of the average flow duration for each of the plurality of servers.

4. The method of claim 3 , wherein obtaining the flow duration data comprises using a Kalman Filter on the normalization of the average flow duration for each of the plurality of servers.

5. The method of claim 1 , further comprising:

incrementing a one of the plurality of queue lengths when its corresponding server of the plurality of servers is assigned a new flow; and

decrementing the one of the plurality of queue lengths when a flow ends on its corresponding server of the plurality of servers.

6. The method of claim 1 , further comprising refreshing the server processing speed data periodically.

7. The method of claim 6 , wherein refreshing the server processing speed data periodically comprises refreshing the server processing speed data every 200 ms.

8. A system comprising:

a memory storage; and

a processing unit coupled to the memory storage, wherein the processing unit is operative to:

infer server processing speed data associated with a plurality of servers from flow duration data associated with a plurality of flows associated with the plurality of servers, wherein the processing unit being operative to infer the server processing speed data comprises the processing unit being operative to use a Softmax normalization function on the flow duration data associated with the plurality of flows associated with the plurality of servers;

obtain a plurality of queue lengths respectively associated with the plurality of servers;

determine a Shortest Expected Delay (SED) score for each of the plurality of servers from the inferred server processing speed data and the plurality of queue lengths; and

assign a flow to the one of the plurality of servers having a lowest SED score.

9. The system of claim 8 , wherein the processing unit is further operative to obtain the flow duration data wherein the processing unit being operative to obtain the flow duration data comprises the processing unit being operative to determine an average flow duration for each of the plurality of servers.

10. The system of claim 9 , wherein the processing unit being operative to obtain the flow duration data comprises the processing unit being operative to derive a normalization of the average flow duration for each of the plurality of servers.

11. The system of claim 10 , wherein the processing unit being operative to obtain the flow duration data comprises the processing unit being operative to use a Kalman Filter on the normalization of the average flow duration for each of the plurality of servers.

12. The system of claim 8 , comprising the processing unit being further operative to:

increment a one of the plurality of queue lengths when its corresponding server of the plurality of servers is assigned a new flow; and

decrement the one of the plurality of queue lengths when a flow ends on its corresponding server of the plurality of servers.

13. A non-transitory computer-readable medium that stores a set of instructions which when executed by a processor perform a method executed by the set of instructions comprising:

inferring, by a computing device, server processing speed data associated with a plurality of servers from flow duration data associated with a plurality of flows associated with the plurality of servers, wherein inferring the server processing speed data comprises using a Softmax normalization function on the flow duration data associated with the plurality of flows associated with the plurality of servers;

obtaining a plurality of queue lengths respectively associated with the plurality of servers;

determining a Shortest Expected Delay (SED) score for each of the plurality of servers from the inferred server processing speed data and the plurality of queue lengths; and

assigning a flow to the one of the plurality of servers having a lowest SED score.

14. The non-transitory computer-readable medium of claim 13 , further comprising obtaining the flow duration data wherein obtaining the flow data comprises determining an average flow duration for each of the plurality of servers.

15. The non-transitory computer-readable medium of claim 14 , wherein obtaining the flow duration data comprises deriving a normalization of the average flow duration for each of the plurality of servers.

16. The non-transitory computer-readable medium of claim 15 , wherein obtaining the flow duration data comprises using a Kalman Filter on the normalization of the average flow duration for each of the plurality of servers.

17. The non-transitory computer-readable medium of claim 13 , further comprising: incrementing a one of the plurality of queue lengths when its corresponding server of the plurality of servers is assigned a new flow; and decrementing the one of the plurality of queue lengths when a flow ends on its corresponding server of the plurality of servers.

18. The non-transitory computer-readable medium of claim 13 , further comprising refreshing the server processing speed data periodically.

19. The non-transitory computer-readable medium of claim 18 , wherein refreshing the server processing speed data periodically comprises refreshing the server processing speed data every 200 ms.

20. The system of claim 8 , further comprising refreshing the server processing speed data periodically.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2022
From: YAO, ZHIYUAN; DESMOUCEAUX, YOANN LOUIS SIMON; PFISTER, PIERRE; TOWNSLEY, WILLIAM MARK
To: CISCO TECHNOLOGY, INC.
Reel/Frame 059946/0731 →
Continuity (1)
Related Publication 20230403235A1 · Dec 14, 2023
References Cited (45)
US 6711137B1 · Klassen · 2004 [cited by examiner]
US 6748413B1 · Bournas · 2004 [cited by examiner]
US 6748414B1 · Bournas · 2004 [cited by examiner]
US 7010602B2 · Poindexter · 2006 [cited by examiner]
US 7231445B1 · Aweya · 2007 [cited by examiner]
US 7551623B1 · Feroz · 2009 [cited by examiner]
US 7756690B1 · Mogul · 2010 [cited by examiner]
US 8245238B2 · Neubauer · 2012 [cited by examiner]
US 9258272B1 · Durand et al. · 2016 [cited by applicant]
US 10277518B1 · Matthews · 2019 [cited by examiner]
US 10708152B2 · Kulshreshtha · 2020 [cited by examiner]
US 11128561B1 · Matthews · 2021 [cited by examiner]
US 20020042823A1 · DeBettencourt · 2002 [cited by examiner]
US 20030161321A1 · Karam · 2003 [cited by examiner]
US 20030179717A1 · Hobbs · 2003 [cited by examiner]
US 20030198204A1 · Taneja · 2003 [cited by examiner]
US 20030223366A1 · Jeffries · 2003 [cited by examiner]
US 20040250059A1 · Ramelson · 2004 [cited by examiner]
US 20060182034A1 · Klinker · 2006 [cited by examiner]
US 20070143460A1 · Ben-David · 2007 [cited by examiner]
US 20070268860A1 · Taneja · 2007 [cited by examiner]
US 20080085717A1 · Chhabra · 2008 [cited by examiner]
US 20090161548A1 · Zhu · 2009 [cited by examiner]
US 20090254660A1 · Hanson · 2009 [cited by examiner]
US 20110044174A1 · Szymanski · 2011 [cited by examiner]
US 20140169164A1 · Oguchi · 2014 [cited by examiner]
US 20150074679A1 · Fenoglio · 2015 [cited by examiner]
US 20160072766A1 · Jain et al. · 2016 [cited by applicant]
US 20160373406A1 · Kivinen et al. · 2016 [cited by applicant]
US 20170295247A1 · Llorca · 2017 [cited by examiner]
US 20180316625A1 · Xu · 2018 [cited by examiner]
US 20190129771A1 · Chen · 2019 [cited by examiner]
US 20200028795A1 · Tiwary · 2020 [cited by examiner]
US 20210014891A1 · Talarico · 2021 [cited by examiner]
US 20220014478A1 · Lee · 2022 [cited by examiner]
US 20220229451A1 · Shindin · 2022 [cited by examiner]
US 20230216564A1 · Chen · 2023 [cited by examiner]
WO WO2009083829A2 · 2009 [cited by examiner]
WO WO2022263869A1 · 2022 [cited by examiner]
Ahmed H, Arshad MJ, Muhammad S, Ahmad S, Zahid AH. Queue length-based load balancing in data center networks. Int J Commun Syst. 2020 (Year: 2020). [cited by examiner]
T. Hellemans and B. Van Houdt, “Improved Load Balancing in Large Scale Systems Using Attained Service Time Reporting,” in IEEE/ACM Transactions on Networking, vol. 30, No. 1, pp. 341-353, Feb. 2022 (Year: 2022). [cited by examiner]
N. Cardwell, S. Savage, and T. Anderson, Modeling TCP Latency, IEEE Infocom 2000, Apr. 2000 (Year: 2000). [cited by examiner]
Liu et al A port-based forwarding load-balancing scheduling approach for cloud datacenter networks, Journal of Cloud Computing: Advances, Systems and Applications, Oct. 13, 2021 (Year: 2021). [cited by examiner]
Wikipedia: Softtmax function, retrieved Jun. 14, 2024 https://en.wikipedia.org/wiki/Softmax_function (Year: 2024). [cited by examiner]
Dec, W., R. Asati, C. Congxiao, H. Deng, M. Boucadair, “Stateless 4VIA6 Address Sharing Draft-Dec-Stateless-4V5-04” Network Working Group, Apr. 16, 2012. [cited by applicant]