# US 11,909,844 B2 · Packet processing of streaming content in a communications network

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

- Number: US 11,909,844 B2
- Document ID: US11909844B2
- Status: Granted
- Kind: B2
- Application number: 18/126,593
- Filed: 2023-03-27
- Published: 2023-07-20
- Granted: 2024-02-20
- Earliest claimed: 2020-08-06
- Assignees: Level 3 Communications, LLC
- Applicants: Level 3 Communications, LLC
- Inventors: Timothy Brown; Veronica Kravchenko
- Web page: https://patentgrep.com/patent/US11909844B2

## CPC

- H04L 67/5682: Policies or rules for updating, deleting or replacing the stored data
- H04L 49/252: {Store and forward routing}
- H04L 49/9005: using dynamic buffer space allocation
- H04L 49/9026: {Single buffer per packet}
- H04L 49/9036: {Common buffer combined with individual queues}
- H04L 49/9057: Arrangements for supporting packet reassembly or resequencing
- H04L 65/612: for unicast
- H04L 65/765: {intermediate}
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 67/5681: Pre-fetching or pre-delivering data based on network characteristics
- H04N 21/2225: Local VOD servers
- H04N 21/23106: {involving caching operations (prefetching while addressing of a memory level in which the access to the desired data or data block requires associative addressing means within memory systems or architectures G06F12/0862; caching at an intermediate stage in a data network H04L67/568)}
- H04N 21/232: Content retrieval operation {locally} within server, e.g. reading video streams from disk arrays {(storage management G06F3/0604; details of querying and searching of video data from a database G06F16/739)}
- H04N 21/44004: {involving video buffer management, e.g. video decoder buffer or video display buffer}
- H04N 21/6375: for requesting retransmission {, e.g. of data packets lost or corrupted during transmission from server}(ARQ protocols H04L1/18; implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP] H04L69/16)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Aspects of present disclosure include devices within a transmission path of streamed content forwarding received data packets of the stream to the next device or “hop” in the path prior to buffering the data packet at the device. In this method, typical buffering of the data stream may therefore occur at the destination device for presentation at a consuming device, while the devices along the transmission path may transmit a received packet before buffering. Further, devices along the path may also buffer the content stream after forwarding to fill subsequent requests for dropped data packets of the content stream. Also, in response to receiving the request for the content stream, a device may first transmit a portion of the contents of the gateway buffer to the requesting device to fill a respective buffer at the receiving device.

## Claims

### Claim 1

A method for processing data packets of a content stream, the method comprising:
receiving, from a source device, a portion of a content stream comprising an ordered sequence of data packets;
comparing, at a network device, a sequence identifier obtained from a received data packet of the ordered sequence of data packets to a storage array comprising sequence identifiers of data packets received at the network device; and
forwarding, prior to storing the received data packet in a buffer maintained by the network device and based on the sequence identifier of the received data packet missing from the storage array, the received data packet to a computing device.

### Claim 2 (depends on 1)

The method of claim 1 further comprising storing the received data packet in the buffer maintained by the network device after forwarding the received data packet to the computing device.

### Claim 3 (depends on 2)

The method of claim 2, wherein storing the received data packet comprises:
identifying, based on the sequence identifier of the received data packet, a location within the order of the sequence of data packets; and
inserting, based on the identified location, the received data packet in the buffer.

### Claim 4 (depends on 1)

The method of claim 1 further comprising:
receiving, at the network device and from a receiving device, a request for the content stream; and
transmitting, to the receiving device, a portion of the buffer, the portion comprising a plurality of data packets of the ordered sequence of data packets.

### Claim 5 (depends on 4)

The method of claim 4, wherein a size of the portion of the buffer is based on a bandwidth of a connection between the network device and the second receiving device.

### Claim 6 (depends on 1)

The method of claim 1 further comprising:
receiving, from a second source device, a second portion of the content stream; and
if a sequence identifier associated with a data packet of the second portion of the content stream is missing from the storage array, forwarding the data packet of the second portion to the computing device prior to storing the data packet of the second portion in the buffer.

### Claim 7 (depends on 6)

The method of claim 6 wherein the sequence identifier of the data packet of the second portion is less than the sequence identifier obtained from the received data packet of the ordered sequence of data packets.

### Claim 8

A data network comprising:
a source device comprising a buffer storing an ordered sequence of data packets of a content stream;
a first network device to:
receive a data packet of the ordered sequence of data packets the content stream from the source device; and
forward, prior to storing the received data packet in a buffer maintained by the first network device, the received data packet to a first receiving device; and
a second network device receiving the content stream from the first network device and transmitting the content stream to a second receiving device.

### Claim 9 (depends on 8)

The data network of claim 8, wherein forwarding of the received data packet to the receiving device is further based on a sequence identifier of the received data packet missing from a stored array of data packets received at the first network device.

### Claim 10 (depends on 8)

The data network of claim 8, wherein the first network device further transmits the content stream to a first plurality of receiving devices and the second network device transmits the content stream to a second plurality of receiving devices different than the first plurality of receiving devices.

### Claim 11 (depends on 8)

The data network of claim 8, wherein the first network device:
receives, from a third network device, a request for the content stream; and
transmits, to the third network device, a portion of the buffer, the portion comprising a plurality of data packets of the ordered sequence of data packets.

### Claim 12 (depends on 11)

The data network of claim 11, wherein a size of the portion of the buffer is based on a bandwidth of a connection between the first network device and the third network device.

### Claim 13 (depends on 8)

The data network of claim 8, wherein the second network device further receiving a second content stream from the source device, the second content stream comprising the ordered sequence of data packets.

### Claim 14 (depends on 13)

The data network of claim 13, wherein the second network device:
identifies, based on the sequence identifier of a received data packet of the second content stream, a location within the order of the sequence of data packets; and
inserts, based on the identified location, the received data packet in a buffer maintained by the second network device.

### Claim 15

A networking device comprising:
a communication port receiving a data packet of a sequence of data packets comprising a portion of a content stream;
one or more processors; and
a non-transitory storage device including computer executable instructions that, when executed by the one or more processors, cause the one or more processors to:
compare a sequence identifier obtained from the received data packet to an array of sequence identifiers associated with the content stream; and
forward, prior to storing in a buffer and based on the sequence identifier of the received data packet missing from the array, the received data packet to a receiving network device.

### Claim 16 (depends on 15)

The networking device of claim 15 wherein the computer executable instructions, when executed by the one or more processors, further cause the one or more processors to:
store the received data packet in the buffer after forwarding the received data packet to the receiving network device.

### Claim 17 (depends on 15)

The networking device of claim 15 wherein the computer executable instructions, when executed by the one or more processors, further cause the one or more processors to:
receive, from a receiving network device, a request for the content stream; and
transmit, to the receiving network device, a portion of the buffer, the portion comprising a plurality of data packets of the ordered sequence of data packets.

### Claim 18 (depends on 17)

The networking device of claim 17, wherein a size of the portion of the buffer is based on a bandwidth of a connection between the network device and the receiving network device.

### Claim 19 (depends on 15)

The networking device of claim 15 comprising a network interface device of a backbone network, the content stream received at the backbone network via a public network.
