Uplink data congestion detection for low-latency services in wireless communication networks
US-2024373448-A1 · Nov 7, 2024 · US
US9450873B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9450873-B2 |
| Application number | US-201113171398-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 28, 2011 |
| Priority date | Jun 28, 2011 |
| Publication date | Sep 20, 2016 |
| Grant date | Sep 20, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Traffic in a cloud is controlled by the nodes participating in the cloud. Tenants of the cloud each have a ratio. On any given node, a current transmission rate of the node is allocated among the tenants of the node, or more specifically, their execution units (e.g., virtual machines) on the node. Thus each tenant receives a predefined portion of the transmission capacity of the node. The transmission capacity can vary as conditions on the network change. For example, if congestion occurs, the transmission capacity may be decreased. Nonetheless, each tenant receives, according to its ratio, a same relative portion of the overall transmission capacity.
Opening claim text (preview).
The invention claimed is: 1. A method of controlling network usage in a data center in which a plurality of server computers communicate via a network and host execution units that execute applications for a plurality of tenants of the data center, the data center comprising a network comprising network links providing interconnectivity between the server computers, wherein the tenants have respective pluralities of execution units executing on respective pluralities of the servers such that any given server is executing execution units of one or more tenants, the method performed at the servers, the method on a given server comprising: executing a plurality of the execution units on the given server, including a first execution unit of a first tenant and a second execution unit of a second tenant, wherein each of the execution units generates and attempts to transmit a respective plurality of packets; accessing allocation information comprising information indicating weights of the tenants, respectively, including a first weight of the first tenant and a second weight of the second tenant, each weight corresponding to a proportion of overall usage of the network that a corresponding tenant has been allocated; receiving network usage data indicating traffic carried on the network for the first and second tenants, and based on the network usage data, identifying which network links were on network paths that, within a preceding time period, carried traffic from the first and second tenants to destination nodes on the network, wherein a rate controller is instantiated on the given server for each of the identified network paths; and performing rate control on the given host, the rate control controlling transmission rates of packets for the first and second tenants, respectively, wherein a first transmission rate of the execution unit of the first tenant depends on the network usage data and on the weight of the first tenant and a second transmission rate of the execution unit of the second tenant depends on the network usage data and on the weight of the second tenant, wherein the rate control is performed such that when the rate control determines that the first and second transmission rates are to increase or decrease they do so proportionally according to the respective weights of the first and second tenants, wherein the rate controlling is performed by the instantiated rate controllers cumulatively applying feedback from the destination nodes, and wherein the rate control determines when to release a packet for transmission based on both the weight of the corresponding tenant and a total network usage of packets being transmitted by all execution units of the corresponding tenant in the data center. 2. A method according to claim 1 , wherein the network usage data indicates congestion along the network. 3. A method according to claim 2 , wherein the network usage data comprises feedback from the other server, and the other server has an execution unit thereon that is communicating with an execution unit on the given server. 4. One or more computer-readable storage devices storing information that enables a computer to perform a process, wherein the computer participates as a server in a pool of servers that use a network to mutually form a cloud, the cloud hosting tenant applications of tenants of the cloud, the applications transmitting packets via the network, the process comprising: transmitting outgoing flows of packets from the computer to destinations on the network, where the outgoing packets are generated by traffic sources of tenants on the computer, a traffic source of a tenant comprising a virtual machine or a process or a port; based on flows of each respective tenant, identifying, for each tenant, the respective links in the network that are carrying the packets of the flows of the respective tenant, and receiving traffic indications of each of the respective identified links; accessing predefined weights assigned to the tenants, respectively; regulating, by the computer, the transmitting of the packets such that a total rate of transmission for the outgoing packets is varied according to information indicating a changing condition of the network; and wherein the regulating is also performed such that each tenant's packets are at a collective rate according to the corresponding tenant's predefined weight, wherein, when the total rate of transmission is to increase or decrease, each tenant's collective rate increases or decreases in relative proportion to its corresponding weight, and wherein the regulating is performed using an additive-increase multiplicative-decrease algorithm such that increases in the total rate of transmission are provided to the traffic sources in proportion to the weights corresponding thereto. 5. One or more computer-readable storage media according to claim 4 , wherein the changing condition comprises congestion of a routing device that routed packets previously transmitted by the computer. 6. One or more computer-readable storage devices according to claim 4 , wherein the regulating is performed by a rate controller executing on the computer above the network level. 7. One or more computer-readable storage devices according to claim 4 , further comprising changing a rate of increase of the total rate of transmission following periods during which it is detected that there is no packet loss. 8. One or more computer-readable storage devices according to claim 4 , further comprising changing a rate of increase when approaching a point where transmission by the computer causes congestion. 9. One or more computer-readable storage media according to claim 4 , wherein a rate at which outgoing packets of a given tenant are transmitted by the computer is independent of how many traffic flows on the computer are associated with the given tenant. 10. One or more computer-readable storage devices according to claim 4 , wherein the information comprises feedback from other servers in the pool that have received packets from the computer and/or feedback from routing devices that have routed packets from the computer. 11. A computer configured to participate in a cloud of computers that host execution units for tenants of the cloud, the computer comprising: storage that when powered stores outgoing packets to be transmitted from the computer via a network shared by the computers, where the outgoing packets are generated by traffic sources of virtual machines (VMs) of respective tenants on the computer, the traffic sources residing above the network layer of the computer and comprising either virtual machines, processes, or ports, and wherein the number of traffic sources for a given tenant vary over time according to tenant software executing on the VMs, the storage further storing weights assigned to the tenants, respectively; and processing hardware of the computer, the processing hardware regulating per-tenant rate control of transmission for all of the outgoing packets by tracking which packets are associated with which tenant, wherein the transmitting of the packets is based on the total rate of transmission for the outgoing packets, wherein the total rate of transmission is computed to vary according to information indicating a changing condition of the network, wherein the regulating is also performed according to the total rate of transmission and the weights such that each traffic sourcing tenant's packets are transmitted at a respective total tenant-rate according to each traffic sourcing tenant's weight and independent of a number of traffic sources of each tenant and independent of a number of VMs of each tenant, wherein the weights control respective proportional sha
Avoiding congestion; Recovering from congestion · CPC title
Weighted service order · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.