Bandwidth utilization-based congestion control

US12495003B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12495003-B2
Application numberUS-202318214475-A
CountryUS
Kind codeB2
Filing dateJun 26, 2023
Priority dateJun 26, 2023
Publication dateDec 9, 2025
Grant dateDec 9, 2025

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Some embodiments of the invention provide a method for performing congestion control for a particular packet flow associated with a first machine operating in a network. The method is performed at a first machine executing on a first host computer. The method receives, from multiple machines operating in the network and executing on other host computers, remote state data associated with a first multiplicity of packet flows traversing the multiple machines in the network. The method collects local state data associated with a second multiplicity of packet flows associated with the first machine. Based on the received remote and local state data, the method adjusts an amount of bandwidth allocated to the particular packet flow associated with the first machine.

First claim

Opening claim text (preview).

The invention claimed is: 1 . A method for performing congestion control for a particular packet flow associated with a first machine operating in a network, the method comprising: at the first machine executing on a first host computer: receiving, from a plurality of machines operating in the network and executing on other host computers, remote state data associated with a first plurality of packet flows traversing the plurality of machines in the network; collecting local state data associated with a second plurality of packet flows associated with the first machine; based on the received remote and local state data, adjusting an amount of bandwidth allocated to the particular packet flow associated with the first machine by adjusting a size of a congestion control window, which comprises one of (i) increasing the size of the congestion control window to increase the amount of data that can be sent as part of the particular packet flow before an acknowledgement is received from the destination of the particular packet flow and (ii) decreasing the size of the congestion control window to decrease the amount of data that can be sent as part of the particular packet flow before an acknowledgement is received from the destination of the particular packet flow; wherein: the first machine is a source of the particular packet flow; adjusting the amount of bandwidth allocated to the particular flow comprises adjusting a size of a congestion control window that controls the amount of bandwidth allocated to the particular packet flow in order to adjust the amount of bandwidth allocated to the particular packet flow; and the congestion control window controls the amount of bandwidth allocated to the particular packet flow by controlling an amount of data sent on the network by the first machine as part of the particular packet flow before an acknowledgement is received from a destination of the particular packet flow. 2 . The method of claim 1 , wherein: local agents are deployed to the plurality of machines to distribute remote state data to other local agents deployed to other machines in the plurality of machines; and receiving remote state data associated with the plurality of packet flows from the plurality of machines comprises periodically receiving, at a first local agent deployed to the first machine, remote state data associated with the first plurality of packet flows from local agents deployed to the plurality of machines. 3 . The method of claim 2 , wherein the first local agent provides the periodically received state data to a networking stack of the first machine that performs said collecting and said adjusting. 4 . The method of claim 3 , wherein an application layer of the networking stack collects the local state data associated with second plurality of packet flows and provides the local state data to a transport layer of the networking stack for use in said adjusting. 5 . The method of claim 1 , wherein adjusting the size of the congestion control window further comprises adjusting a rate at which the size of the congestion control window is adjusted. 6 . The method of claim 5 , wherein adjusting the rate at which the size of the congestion control window is adjusted comprises any of (i) increasing the rate at which the size of the congestion control window is increased, (ii) decreasing the rate at which the size of the congestion control window is increased, (iii) increasing the rate at which the size of the congestion control window is decreased, and (iv) decreasing the rate at which the size of the congestion control window is decreased. 7 . The method of claim 1 , wherein: the received remote state data comprises indications of states of the plurality of flows; the states indicate whether an associated packet flow is an active packet flow or a completed packet flow; and completed packet flows comprises packet flows for which connections facilitating the packet flows have been terminated. 8 . The method of claim 7 , wherein adjusting the amount of bandwidth allocated to the particular packet flow based on the received remote state data and collected local state data comprises: determining that state data associated with a set of packet flows in the first plurality of packet flows indicate the set of packet flows are completed packet flows; and based on said determining, increasing the amount of bandwidth allocated to the particular packet flow. 9 . The method of claim 7 , wherein received remote state data for each packet flow in the plurality of packet flows further comprises a set of contextual data associated with the packet flow, each set of contextual data comprising (i) a flow type of the packet flow and (ii) a current bandwidth utilization computed for the packet flow. 10 . The method of claim 1 , wherein the second plurality of packet flows includes the particular packet flow, wherein the collected local state data for the second plurality of packet flows comprises collected sets of local contextual data associated with the second plurality of packet flows. 11 . The method of claim 10 , wherein each collected set of local contextual data comprises at least a flow type of an associated packet flow. 12 . The method of claim 11 , wherein at least one collected set of local contextual data further comprises a bandwidth threshold specified for the particular packet flow. 13 . The method of claim 12 , wherein when a lifecycle of the particular packet flow comprises a set of two or more packet flow phases, the collected sets of local contextual data further comprise an indication of a current packet flow phase of the particular packet flow. 14 . The method of claim 13 , wherein: each packet flow phase is associated with a different priority level, packet flow phases associated with a higher priority level are allocated more bandwidth than packet flow phases associated with a lower priority level, and adjusting the amount of bandwidth allocated to the particular packet flow based on the received remote state data and collected local state data comprises adjusting the amount of bandwidth allocated to the particular packet flow based on a priority level associated with a current packet flow phase of the particular packet flow. 15 . The method of claim 1 , wherein the received state data associated with the plurality of packet flows provides the first machine with a network- wide view of packet flows traversing the network. 16 . A non-transitory machine readable medium storing a program for execution by a set of processing units of a first host computer, the program for performing congestion control for a particular packet flow associated with a first machine operating in a network and executing on the first host computer, the program comprising sets of instructions for: receiving, from a plurality of machines operating in the network and executing on other host computers, remote state data associated with a first plurality of packet flows traversing the plurality of machines in the network; collecting local state data associated with a second plurality of packet flows associated with the first machine; based on the received remote and local state data, adjusting an amount of bandwidth allocated to the particular packet flow associated with the first machine by adjusting a size of a congestion control window, which comprises one of (i) increasing the size of the congestion control window to increase the amount of data that can be sent as part of the particular packet flow before an acknowledgement is received from the destination of the

Assignees

Inventors

Classifications

  • relying on flow classification, e.g. using integrated services [IntServ] · CPC title

  • Determination of shaping rate, e.g. using a moving window · CPC title

  • Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets · CPC title

  • for supporting services specification, e.g. SLA · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12495003B2 cover?
Some embodiments of the invention provide a method for performing congestion control for a particular packet flow associated with a first machine operating in a network. The method is performed at a first machine executing on a first host computer. The method receives, from multiple machines operating in the network and executing on other host computers, remote state data associated with a firs…
Who is the assignee on this patent?
VMware LLC
What technology area does this patent fall under?
Primary CPC classification H04L47/2441. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 09 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).