# US 8,000,235 B2 · Bandwidth allocation method and apparatus

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,000,235 B2
- Document ID: US8000235B2
- Status: Granted
- Kind: B2
- Application number: 12/409,562
- Filed: 2009-03-24
- Published: 2010-04-08
- Granted: 2011-08-16
- Earliest claimed: 2008-10-05
- Assignees: ConteXtream Ltd.
- Inventors: Ariel Noy; Gideon Kaempfer
- Web page: https://patentgrep.com/patent/US8000235B2

## CPC

- H04L 47/10: Flow control; Congestion control
- H04L 47/20: Traffic policing
- H04L 47/215: using token-bucket
- H04L 47/2441: relying on flow classification, e.g. using integrated services [IntServ]
- H04L 47/29: {using a combination of thresholds}
- H04L 47/70: Admission control; Resource allocation
- H04L 47/805: {QOS or priority aware}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

System for bandwidth assignment to manage congestion over a network bottleneck, comprises a regulation point being set up downstream of the bottleneck in the network to manage congestion in data packets arriving from various sources via the bottleneck. For each of the sources, a priority level assigner assigns priority levels to respective data packets. A token bucket assigns tokens at a limiting rate to the prioritized data packets, the tokens allowing passage of packets to which they are assigned. The token bucket is a multi-priority token bucket, meaning it has at least two thresholds corresponding to the priority levels assigned to the packets. The token bucket only assigns a token to an arriving packet having a respective priority level if there are sufficient tokens currently in the bucket to reach the threshold corresponding to the packet's priority level.

## Claims

### Claim 1

A system for bandwidth assignment to manage congestion over a network bottleneck, the system comprising a regulation point being set up downstream of said bottleneck in said network to manage congestion in data packets arriving from at least two sources via said bottleneck, the system comprising, for each of said at least two sources, a priority level assigner for assigning priority levels to respective data packets, and at least one token bucket for assigning tokens at a limiting rate to said prioritized data packets, said tokens allowing passage of packets to which they are assigned, said token bucket being a multi-priority token bucket having at least two thresholds corresponding to priority levels assignable to packets, and said token bucket assigning a token to an arriving packet having a respective priority level if there are sufficient tokens currently in said bucket to reach a one of said thresholds corresponding to said respective priority level, wherein said at least one token bucket is arranged to define an overall bandwidth, said overall bandwidth being lower by a finite margin than a maximum bottleneck bandwidth, wherein said at least one token bucket is configured to supply a quantity of tokens, the quantity being selected to define said overall bandwidth.

### Claim 2 (depends on 1)

The system of claim 1, wherein said thresholds respectively define minimal numbers of tokens required within the token bucket for a packet of a corresponding priority to be eligible for token consumption.

### Claim 3 (depends on 1)

The system of claim 1, wherein each threshold corresponds to a single priority level.

### Claim 4 (depends on 1)

The system of claim 1, the network comprising a hierarchy of bottlenecks, the system comprising a hierarchy of multi-priority token buckets for said hierarchy of bottlenecks.

### Claim 5 (depends on 4)

The system of claim 4, wherein the hierarchy of token buckets is placed downstream of said hierarchy of bottlenecks.

### Claim 6 (depends on 1)

The system of claim 1, wherein said margin is dynamically variable.

### Claim 7 (depends on 1)

The system of claim 1, wherein said bottleneck comprises a network access link, including an Internet access link.

### Claim 8 (depends on 1)

The system of claim 1, wherein said bottleneck comprises any one of the group consisting of:
a link between an Optical Line Termination (OLT) point and a network service provider network;
a digital subscriber line access multiplexer (DSLAM) link and a network service provider network;
a broadband remote access server (BRAS) link and a network service provider;
a cable modem termination system (CMTS) and a network service provider;
a serving GPRS (general packet radio service) support node (SGSN) and a network service provider;
an LTE (long term evolution) compatible link and a network service provider; and
a wireless access link.

### Claim 9

A token bucket limiter for congestion management over a network bottleneck, the token bucket limiter comprising a bucket for storing tokens for assignment to data packets, the bucket limiter comprising:
an input unit for receiving packets of a given source with assigned priority levels;
a rate limiter for inserting tokens into said bucket at a given rate;
a thresholder for providing thresholds associated with priority levels, said thresholds defining numbers of tokens to be present before packets below said associated priority are eligible for token assignment, an overall number of said tokens defining a limiter bandwidth; and
a token assigner for assigning tokens to arriving packets according to a respective priority level and associated threshold to allow passage of said packets; and
wherein the token bucket limiter is located downstream of a congestion bottleneck having a bottleneck bandwidth, and wherein the limiter bandwidth is selected to be lower than said bottleneck bandwidth by a finite margin.

### Claim 10

A method of congestion management for a plurality of sources sending data packets over a network bottleneck, the method comprising:
setting an overall bandwidth over said bottleneck, said overall bandwidth being less by a finite margin than a maximum bandwidth physically allowed by said bottleneck;
assigning said bandwidth between said sources as per source bandwidth allocations by:
assigning priority levels to packets for each source; and
for each source assigning highest priority packets in precedence per source;
setting said finite margin in said overall bandwidth over said bottleneck to be a variable margin; and
regulating said overall bandwidth assignment and variable margin from a point downstream of said bottleneck.

### Claim 11 (depends on 10)

The method of claim 10, further comprising dynamically varying said margin.

### Claim 12 (depends on 11)

The method of claim 11 wherein said dynamically varying said margin comprises probing cycles carried out at predetermined or dynamically adjusted intervals, each cycle comprising increasing the margin if no high priority packets are being dropped and as long it is detected that the incoming traffic rate remains equal to the network capacity but otherwise decreasing the margin from the actual network capacity.
