# US 10,374,963 B2 · Predictive management of a network buffer

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

- Number: US 10,374,963 B2
- Document ID: US10374963B2
- Status: Granted
- Kind: B2
- Application number: 15/627,859
- Filed: 2017-06-20
- Published: 2017-10-05
- Granted: 2019-08-06
- Earliest claimed: 2013-01-25
- Assignees: Cable Television Laboratories, Inc.
- Applicants: Cable Television Laboratories, Inc.
- Inventors: Gregory C. White; Joey Padden; Takashi Hayakawa
- Web page: https://patentgrep.com/patent/US10374963B2

## CPC

- H04L 47/32: by discarding or delaying data units, e.g. packets or frames
- G02B 6/29382: {including at least adding or dropping a signal, i.e. passing the majority of signals}
- H04L 1/0018: {based on latency requirement}
- H04L 1/1835: {Buffer management}
- H04L 43/0858: {One way delays}
- H04L 47/50: Queue scheduling
- H04L 47/56: implementing delay-aware scheduling
- H04L 47/6215: {Individual queue per QOS, rate or priority}
- H04L 67/5682: Policies or rules for updating, deleting or replacing the stored data
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04N 21/64792: {Controlling the complexity of the content stream, e.g. by dropping packets (intermediate media network packet handling H04L65/765; proxy provisioning conversion or adaptation for reducing the amount or size of exchanged application data H04L67/5651; negotiation of resources in wireless networks H04W28/16)}
- H04L 43/0864: Round trip delays
- H04L 43/106: using time related information in packets, e.g. by adding timestamps
- H04N 21/647: Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless {(real-time session protocols H04L65/1101)}
- H04W 28/02: Traffic management, e.g. flow control or congestion control
- H04W 28/0236: {radio quality, e.g. interference, losses or delay}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G02B: OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Predictive management of a network buffer is contemplated. The network buffer maybe predictively managed to control packet drop based at least in part on predicted sojourn time. The predicted sojourn time may be determined to predict time needed from an arriving packet to travel through a queue of the network buffer.

## Claims

### Claim 1

A non-transitory computer-readable medium having a plurality of instructions executable with a processor to facilitate predictively managing a network buffer, the network buffer having a queue configured to enqueue packets at an input and to dequeue packets at an output, the plurality of instructions being sufficient for:
predicting sojourn time for each packet prior to being enqueued to the queue, the sojourn time estimating time needed for the corresponding packet to travel through the queue; and
one of dropping and not dropping each packet prior to being enqueued based at least in part on the corresponding sojourn time.

### Claim 2 (depends on 1)

The non-transitory computer-readable medium of claim 1 wherein the plurality of instructions are sufficient for:
determining the sojourn times as a ratio of a number of bytes in the queue and an egress rate of the network buffer;
determining a first sojourn time of the sojourn times determined for a first packet of the packets to be greater than a sojourn threshold; and
dropping the first packet prior to being enqueued, the drop function resulting in the first packet being dropped after receipt at the network buffer and prior to reaching the queue.

### Claim 3 (depends on 2)

The non-transitory computer-readable medium of claim 2 wherein the plurality of instructions are sufficient for determining the ratio to equal the number of bytes in the queue divided by the egress rate.

### Claim 4 (depends on 3)

The non-transitory computer-readable medium of claim 3 wherein the plurality of instructions are sufficient for determining the egress rate as a bit per second (bps) value representing a speed the network buffer is able to dequeue packets from the queue to a network.

### Claim 5 (depends on 4)

The non-transitory computer-readable medium of claim 4 wherein the plurality of instructions are sufficient for measuring the bps value prior to receipt of each packet.

### Claim 6 (depends on 4)

The non-transitory computer-readable medium of claim 4 wherein the plurality of instructions are sufficient for estimating the bps value as an average of a plurality of egress rates measured prior to receipt of each packet.

### Claim 7 (depends on 1)

The non-transitory computer-readable medium of claim 1 wherein the plurality of instructions are sufficient for:
one of dropping and not dropping each packet prior to being enqueued based on a comparison of the corresponding sojourn time to a sojourn threshold;
dropping packets having sojourn times greater than the sojourn threshold prior to being enqueued; and
enqueuing packets into the queue having sojourn times less than or equal to the sojourn threshold.

### Claim 8

A non-transitory computer-readable medium having a plurality of instructions executable with a processor to facilitate predictively managing a network buffer, the network buffer having a queue configured to enqueue packets at an input and to dequeue packets at an output, the plurality of instructions are sufficient for:
predicting sojourn time for each packet prior to being enqueued to the queue, the sojourn time estimating time needed for the corresponding packet to travel through the queue;
determining to one of drop and not drop each packet prior to being enqueued based at least in part on the corresponding sojourn time; and
enqueuing packets determined to be not drop without adding a timestamp such that the corresponding packet travels through the queue without addition of a time-based marking.

### Claim 9

A network element comprising:
a queue operable to queue packets for subsequent transport over a link; and
a controller having non-transitory computer-readable medium with a plurality of instructions executable with a processor to facilitate to managing packet drops, the plurality of instructions being sufficient for:
calculating a sojourn time for packets prior to the corresponding packets entering the queue, each sojourn time estimating time needed for the corresponding packets to travel through an entirety of the queue before being dequeued; and
one of dropping and not dropping the packets depending on the sojourn time associated therewith, including dropping the packets having the sojourn time above a sojourn threshold and not dropping the packets having the sojourn time equal to or less than the sojourn threshold.

### Claim 10 (depends on 9)

The network element of claim 9 wherein the plurality of instructions are sufficient for tail dropping the packets having the sojourn time greater than the sojourn threshold, the tail dropping resulting in the corresponding packets being dropped prior to entering the queue.

### Claim 11 (depends on 10)

The network element of claim 10 wherein the plurality of instructions are sufficient for head dropping the packets having the sojourn time greater than the sojourn threshold, the head dropping resulting in the corresponding packets being dropped after entering the queue and prior to transport over the link.

### Claim 12 (depends on 9)

The network element of claim 9 wherein the plurality of instructions are sufficient for:
determining the predicted sojourn times as a ratio of a number of bytes in the queue relative to an egress rate of the link;
tail dropping the packets having the sojourn time above a sojourn threshold, the tail dropping resulting in the corresponding packets being dropped prior to entering the queue;
permitting entry into the queue for the packets having the sojourn time equal to or less than the sojourn threshold;
measuring queue time for the packets permitted entry into the queue, the queue time measuring actual time within the queue for the corresponding packets; and
head dropping the packets within the queue having the queue time above a queue threshold, the head dropping resulting in the corresponding packets being dropped after entry in to the queue and prior to transport over the link.

### Claim 13 (depends on 9)

The network element of claim 9 wherein the queue is included as part of a buffer, the buffer being a memory for temporarily storing the packets, wherein a first portion of a capacity of the buffer is allocated for storing packets prior to entry in to the queue and a second portion of the capacity is allocated to the queue.

### Claim 14 (depends on 9)

The network element of claim 9 wherein the plurality of instructions includes instructions for enqueuing packets into the queue without adding a timestamp thereto and without associating a timestamp therewith such that the corresponding packet travels through the queue without addition of a time-based marking.
