IP Library Granted Patent US 12,401,592
Granted Patent B2
US 12,401,592 · App. 18/295,783 · Granted Aug 26, 2025

Flexible load balancing on multipath networks

Inventors: Yan Sun (Los Angeles, CA); Hang Zhu (Los Angeles, CA); Lishan Li (Los Angeles, CA); Jianxi Ye (Los Angeles, CA); Huan Sun (Los Angeles, CA)
Assignee: LEMON INC.
H04L47/125H04L45/24H04L47/58
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,401,592
App. No.
18/295,783
Granted
Aug 26, 2025
Kind
B2
Abstract

A computer system for flexible load balancing on a multipath network includes a processor that implements a multipath transport protocol as a transport layer of a network stack, a load balancer that distributes network traffic across a plurality of paths, and a congestion controller in communication with the load balancer. The congestion controller determines parameters for a message based on information received from the load balancer. A scheduler included in the load balancer selects a load balancing algorithm from a plurality of load balancing algorithms based on the parameters of the message received from the congestion controller and, based on the selected load balancing algorithm, determines a timing and a path for the message to be sent to the transport layer.

Claims (56)

1. A computing system for flexible load balancing on a multipath network, comprising:

a processor that executes instructions using portions of associated memory to implement:

a multipath transport protocol, the multipath transport protocol being implemented as a transport layer on top of a user datagram protocol layer of a network stack;

a load balancer that distributes network traffic across a plurality of paths, the load balancer including a scheduler; and

a congestion controller in communication with the load balancer, the congestion controller being configured to determine parameters for a message to be sent based on information received from the scheduler, wherein

the scheduler selects a load balancing algorithm from a plurality of load balancing algorithms based on the parameters of the message received from the congestion controller,

based on the selected load balancing algorithm, the scheduler determines a timing and a path of the plurality of paths for the message to be sent to the transport layer, and

communication between the load balancer and the congestion controller to determine the timing and the path for the message to be sent comprises a closed loop with positive feedback from the load balancer to the congestion controller.

2. The computing system of claim 1 , wherein

the plurality of load balancing algorithms includes an earliest completion first algorithm, a delayed decision making algorithm, and a most stable path algorithm.

3. The computing system of claim 1 , wherein

the information includes at least one of priority and packet loss awareness.

4. The computing system of claim 1 , wherein

the scheduler is further configured to select a scheduling algorithm from a plurality of scheduling algorithms.

5. The computing system of claim 4 , wherein

the plurality of scheduling algorithms includes a round robin algorithm, a weighted round robin algorithm, a minimum message size algorithm, a least packet lost algorithm, a minimum round trip time algorithm, and a minimum smoothed round trip time algorithm.

6. The computing system of claim 1 , the processor further implements:

a path monitor configured to receive path information, the path information including a number of in-flight messages, a total remaining size of messaged waiting to be transferred, an average round trip time, a most recent round trip time, a shortest round trip time, an average sending rate without congestion, a most recent sending rate without congestion, a congestion notification, and a packet loss rate.

7. The computing system of claim 6 , wherein

the path monitor is further configured to select a congestion control algorithm for each path of the plurality of paths from a plurality of congestion control algorithms based on the path information.

8. The computing system of claim 7 , wherein

the selected congestion control algorithms determine a path status for each respective path based on the path information, and

the selected load balancing algorithm determines if a message will be sent to the transport layer, and when the message is sent.

9. The computing system of claim 1 , wherein

when the processor receives an acknowledgement for receipt of a sent message, the congestion controller is configured to increase a congestion window size by 1/n, with n being the number of paths.

10. A method for flexible load balancing on a multipath network, the method comprising:

implementing a multipath transport protocol as a transport layer on top of a user datagram protocol layer of a network stack;

distributing, by a load balancer including a scheduler, network traffic across a plurality of paths;

determining, by a congestion controller in communication with the load balancer, parameters for a message to be sent based on information received from the scheduler;

selecting, by the scheduler, a load balancing algorithm from a plurality of load balancing algorithms based on the parameters of the message received from the congestion controller; and

determining, by the scheduler, a timing and a path of the plurality of paths for the message to be sent to the transport layer based on the selected load balancing algorithm, wherein

communication between the load balancer and the congestion controller to determine the timing and the path for the message to be sent comprises a closed loop with positive feedback from the load balancer to the congestion controller.

11. The method of claim 10 , wherein

the plurality of load balancing algorithms includes an earliest completion first algorithm, a delayed decision making algorithm, and a most stable path algorithm.

12. The method of claim 10 , the method further comprising:

including in the information at least one of a priority and packet loss awareness.

13. The method of claim 10 , the method further comprising:

selecting, by the scheduler, a scheduling algorithm from a plurality of scheduling algorithms.

14. The method of claim 13 , wherein

the plurality of scheduling algorithms includes a round robin algorithm, a weighted round robin algorithm, a minimum message size algorithm, a least packet lost algorithm, a minimum round trip time algorithm, and a minimum smoothed round trip time algorithm.

15. The method of claim 10 , the method further comprising:

receiving, by a path monitor, path information including a number of in-flight messages, a total remaining size of messaged waiting to be transferred, an average round trip time, a most recent round trip time, a shortest round trip time, an average sending rate without congestion, a most recent sending rate without congestion, a congestion notification, and a packet loss rate.

16. The method of claim 15 , the method further comprising:

selecting, by the path monitor, a congestion control algorithm for each path of the plurality of paths from a plurality of congestion control algorithms based on the path information.

17. The method of claim 16 , the method further comprising:

determining, by the selected congestion control algorithms, a path status for each respective path based on the path information.

18. A computing system for flexible load balancing on a multipath network, comprising:

a processor that executes instructions using portions of associated memory to implement;

a multipath transport protocol, the multipath transport protocol being implemented as a transport layer on top of a user datagram protocol layer of a network stack;

a load balancer that distributes network traffic across a plurality of paths, the load balancer including a scheduler;

a congestion controller in communication with the load balancer, the congestion controller being configured to determine parameters for a message to be sent based on information received from the scheduler; and

a path monitor configured to receive path information, wherein

the scheduler selects a load balancing algorithm from a plurality of load balancing algorithms based on the parameters of the message received from the congestion controller,

the path monitor selects a congestion control algorithm for each path of the plurality of paths from a plurality of congestion control algorithms based on the path information,

a timing and a path of the plurality of paths for the message to be sent to the transport layer is determined based on the selected load balancing algorithm and the selected congestion control algorithm, and

communication between the load balancer and the congestion controller to determine the timing and the path for the message to be sent comprises a closed loop with positive feedback from the load balancer to the congestion controller.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2024
From: SUN, YAN; ZHU, HANG; LI, LISHAN; YE, JIANXI; SUN, HUAN
To: BYTEDANCE INC.
Reel/Frame 066392/0908 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2024
From: BYTEDANCE INC.
To: LEMON INC.
Reel/Frame 066393/0225 →
Continuity (1)
Related Publication 20230246966A1 · Aug 3, 2023
References Cited (23)
US 20080144504A1 · Marcondes · 2008 [cited by examiner]
US 20170366445A1 · Nemirovsky · 2017 [cited by examiner]
US 20200396635A1 · Seenappa · 2020 [cited by examiner]
US 20240256347A1 · Toal · 2024 [cited by examiner]
CN 103229460A · 2013 [cited by examiner]
CN 116017578A · 2023 [cited by examiner]
EP 3522479A1 · 2019 [cited by examiner]
KR 101344153B1 · 2013 [cited by examiner]
WO WO2011101425A1 · 2011 [cited by examiner]
Bonaventure, O. et al., “Multipath TCP Deployments,” IETF Journal, Nov. 1, 2016, 13 pages. [cited by applicant]
Brakmo, L. et al., “TCP Vegas: New Techniques for Congestion Detection and Avoidance,” Proceedings of the 1994 Conference on Communications Architectures, Protocols and Applications (SIGCOMM 1994), Aug. 31, 1994, London… [cited by applicant]
Cardwell, N. et al., “BBR: Congestion-Based Congestion Control: Measuring Bottleneck Bandwidth and Round-Trip Propagation Time,” ACM Queue, vol. 14, No. 5, Oct. 1, 2016, 34 pages. [cited by applicant]
Ha, S. et al., “CUBIC: A New TCP-Friendly High-Speed TCP Variant,” ACM SIGOPS Operating Systems Review, vol. 42, No. 5, Jul. 1, 2008, 11 pages. [cited by applicant]
Han, H. et al., “Overlay TCP for Multi-Path Routing and Congestion Control,” IEEE/ACM Transactions on Networking, vol. 14, No. 6, Dec. 1, 2006, 24 pages. [cited by applicant]
Honda, M. et al., “Multipath Congestion Control for Shared Bottleneck,” Proceedings of the 7th International Workshop on Protocols for Fast, Long-Distance Networks (PFLDNeT 2009), May 21, 2009, Tokyo, Japan, 6 pages. [cited by applicant]
Iyengar, J. et al., “Concurrent Multipath Transfer Using SCTP Multihoming Over Independent End-to-End Paths,” IEEE/ACM Transactions on Networking, vol. 14, No. 5, Oct. 1, 2006, 14 pages. [cited by applicant]
Kelly, F. et al., “Stability of End-to-End Algorithms for Joint Routing and Rate Control,” ACM SIGCOMM Computer Communication Review, vol. 35, No. 2, Apr. 1, 2005, 8 pages. [cited by applicant]
Khalili, R. et al., “MPTCP is not Pareto-Optimal: Performance Issues and a Possible Solution,” IEEE/ACM Transactions on Networking, vol. 21, No. 5, Aug. 21, 2013, 16 pages. [cited by applicant]
Raiciu, C. et al., “Coupled Congestion Control for Multipath Transport Protocols,” Internet Engineering Task Force RFC 6356, Oct. 1, 2011, 12 pages. [cited by applicant]
Wei, D. et al., “FAST TCP: Motivation, Architecture, Algorithms, Performance,” IEEE/ACM Transactions on Networking, vol. 14, No. 6, Dec. 1, 2006, 14 pages. [cited by applicant]
Wischik, D. et al., “Design, implementation and evaluation of congestion control for multipath TCP,” Proceedings of the 8th USENIX Symposium on Networked Systems Design and Implementation (NSDI '11), Mar. 30, 2011, Bost… [cited by applicant]
European Patent Office, Extended European Search Report Issued in Application No. 24167080.1, May 27, 2024, Germany, 9 pages. [cited by applicant]
European Patent Office, Communication pursuant to Rules 70(2) and 70a(2) EPC and reference to Rule 39(1) EPC for European Application No. 24167080.1, mailed Oct. 14, 2024, 2 pages. [cited by applicant]