IP Library Granted Patent US 12,375,422
Granted Patent B2
US 12,375,422 · App. 18/583,429 · Granted Jul 29, 2025

Resilient data plane processing using multiple network streams

Inventors: Cullen Frishman Jennings (Calgary, CA); Vincent E. Parla (North Hampton, NH); Thomas Brennan Gillis, Jr. (Los Altos, CA); Stephen Craig Connors, Jr. (Nashville, TN)
Assignee: CISCO TECHNOLOGY, INC.
H04L47/80H04L47/2441
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,375,422
App. No.
18/583,429
Granted
Jul 29, 2025
Kind
B2
Abstract

An apparatus configured to perform resilient data plane processing using multiple network streams may comprise a memory and a processor communicatively coupled to one another. The processor may be configured to establish a connection with the data aggregator, and request access to one or more resources from a data aggregator. Further, the processor may be configured to receive a first data stream and a second data stream from the data aggregator, combine a version of the first data stream and a version of the second data stream into a local data stream, and present the local data stream.

Claims (150)

1. An apparatus, comprising:

a memory configured to store:

a local profile configured to indicate an association with a data aggregator configured to split one or more data streams; and

a processor communicatively coupled to the memory and configured to:

establish a connection with the data aggregator;

request access to one or more resources from the data aggregator, the data aggregator being configured to obtain the one or more resources and split the one or more resources into a first data stream comprising a first plurality of data packets and a second data stream comprising a second plurality of data packets;

upon performing a first plurality of network operations, receive the first data stream;

upon performing a second plurality of network operations, receive the second data stream;

determine whether the first plurality of data packets and the second plurality of data packets are of a same type;

in response to determining that the first plurality of data packets and the second plurality of data packets are the same type, determine that the second plurality of data packets are configured to replicate the first plurality of data packets;

in response to determining that the first plurality of data packets and the second plurality of data packets are not the same type, determine that the second plurality of data packets are configured to supplement the first plurality of data packets;

combine a version of the first data stream and a version of the second data stream into a local data stream; and

present the local data stream.

2. The apparatus of claim 1 , wherein:

the first data stream comprises a first bandwidth;

the first data stream is received via a first network device configured to forward the first data stream between the data aggregator and the apparatus using a first Quick UDP Internet Connections (QUIC) relay;

the first network device receives the first data stream via one or more cellular communications from the data aggregator;

the first plurality of network operations comprise one or more short-range wireless communications;

the second data stream comprises a second bandwidth;

the second bandwidth is greater than the first bandwidth;

the second data stream is received via a second network device configured to forward the second data stream between the data aggregator and the apparatus using a second QUIC relay;

the second network device receives the second data stream via one or more internet communications from the data aggregator; and

the second plurality of network operations comprise one or more additional internet communications.

3. The apparatus of claim 2 , wherein:

the first QUIC relay is a first portion of a transport layer network protocol configured to multiplex data between the data aggregator and the apparatus; and

the second QUIC relay is a second portion of the transport layer network protocol configured to multiplex data between the data aggregator and the apparatus.

4. The apparatus of claim 1 , wherein:

the processor is further configured to:

in conjunction with determining that the second plurality of data packets are configured to replicate the first plurality of data packets, determine whether the second plurality of data packets comprise the first plurality of data packets;

in response to determining that the second plurality of data packets do not comprise the first plurality of data packets, determine packet loss on the second data stream; and

receive a packet loss-corrected data stream from the data aggregator;

the first data stream is the version of the first data stream received upon performing the first plurality of network operations; and

the packet loss-corrected data stream is the version of the second data stream configured to correct the packet loss on the second data stream.

5. The apparatus of claim 1 , wherein:

the processor is further configured to:

in conjunction with determining that the second plurality of data packets are configured to replicate the first plurality of data packets, determine whether the second plurality of data packets comprise the first plurality of data packets; and

in response to determining that the second plurality of data packets comprise the first plurality of data packets, determine no packet loss on the second data stream;

the version of the first data stream is the first data stream received upon performing the first plurality of network operations; and

the version of the second data stream is the second data stream received upon performing the second plurality of network operations.

6. The apparatus of claim 1 , wherein:

the first data stream is a video parity stream;

the first data stream is received via a first network device configured to forward the first data stream between the data aggregator and the apparatus;

the first network device receives the first data stream via one or more cellular communications from the data aggregator;

the first plurality of network operations comprise one or more short-range wireless communications;

the second data stream is a high-definition video stream;

the second data stream is received via a second network device configured to forward the second data stream between the data aggregator and the apparatus;

the second network device receives the second data stream via one or more internet communications from the data aggregator; and

the second plurality of network operations comprise one or more additional internet communications.

7. The apparatus of claim 1 , wherein:

the first data stream comprises a first bandwidth;

the first data stream is received from the data aggregator upon performing a first plurality of multipath Quick UDP Internet Connections (QUIC) operations;

the first plurality of network operations comprise one or more cellular communications;

the second data stream comprises a second bandwidth;

the second bandwidth is greater than the first bandwidth;

the second data stream is received via a network device configured to forward the second data stream between the data aggregator and the apparatus upon performing a first plurality of multipath QUIC operations;

the network device receives the second data stream via one or more internet communications from the data aggregator; and

the second plurality of network operations comprise one or more additional internet communications.

8. A method, comprising:

establishing a connection with a data aggregator configured to split one or more data streams;

requesting access to one or more resources from the data aggregator, the data aggregator being configured to obtain the one or more resources and split the one or more resources into a first data stream comprising a first plurality of data packets and a second data stream comprising a second plurality of data packets;

upon performing a first plurality of network operations, receiving the first data stream;

upon performing a second plurality of network operations, receiving the second data stream;

determining whether the first plurality of data packets and the second plurality of data packets are of a same type;

in response to determining that the first plurality of data packets and the second plurality of data packets are the same type, determining that the second plurality of data packets are configured to replicate the first plurality of data packets;

in response to determining that that the first plurality of data packets and the second plurality of data packets are not the same type, determining that the second plurality of data packets are configured to supplement the first plurality of data packets;

combining a version of the first data stream and a version of the second data stream into a local data stream; and

presenting the local data stream.

9. The method of claim 8 , wherein:

the first data stream comprises a first bandwidth;

the first data stream is received via a first network device configured to forward the first data stream from the data aggregator using a first Quick UDP Internet Connections (QUIC) relay;

the first network device receives the first data stream via one or more cellular communications from the data aggregator;

the first plurality of network operations comprise one or more short-range wireless communications;

the second data stream comprises a second bandwidth;

the second bandwidth is greater than the first bandwidth;

the second data stream is received via a second network device configured to forward the second data stream from the data aggregator using a second QUIC relay;

the second network device receives the second data stream via one or more internet communications from the data aggregator; and

the second plurality of network operations comprise one or more additional internet communications.

10. The method of claim 9 , wherein:

the first QUIC relay is a first portion of a transport layer network protocol configured to multiplex data from the data aggregator; and

the second QUIC relay is a second portion of the transport layer network protocol configured to multiplex data from the data aggregator.

11. The method of claim 8 , further comprising:

in conjunction with determining that the second plurality of data packets are configured to replicate the first plurality of data packets, determining whether the second plurality of data packets comprise the first plurality of data packets;

in response to determining that the second plurality of data packets do not comprise the first plurality of data packets, determining packet loss on the second data stream; and

receiving a packet loss-corrected data stream from the data aggregator.

12. The method of claim 8 , further comprising:

in conjunction with determining that the second plurality of data packets are configured to replicate the first plurality of data packets, determining whether the second plurality of data packets comprise the first plurality of data packets; and

in response to determining that the second plurality of data packets comprise the first plurality of data packets, determining no packet loss on the second data stream.

13. The method of claim 8 , wherein:

the first data stream is a video parity stream;

the first data stream is received via a first network device configured to forward the first data stream from the data aggregator;

the first network device receives the first data stream via one or more cellular communications from the data aggregator;

the first plurality of network operations comprise one or more short-range wireless communications;

the second data stream is a high-definition video stream;

the second data stream is received via a second network device configured to forward the second data stream from the data aggregator;

the second network device receives the second data stream via one or more internet communications from the data aggregator; and

the second plurality of network operations comprise one or more additional internet communications.

14. The method of claim 8 , wherein:

the first data stream comprises a first bandwidth;

the first data stream is received from the data aggregator upon performing a first plurality of multipath Quick UDP Internet Connections (QUIC) operations;

the first plurality of network operations comprise one or more cellular communications;

the second data stream comprises a second bandwidth;

the second bandwidth is greater than the first bandwidth;

the second data stream is received via a network device configured to forward the second data stream from the data aggregator upon performing a first plurality of multipath QUIC operations;

the network device receives the second data stream via one or more internet communications from the data aggregator; and

the second plurality of network operations comprise one or more additional internet network communications.

15. A non-transitory computer readable medium storing instructions that when executed by a processor cause the processor to:

establish a connection with a data aggregator configured to split one or more data streams;

request access to one or more resources from the data aggregator, the data aggregator being configured to obtain the one or more resources and split the one or more resources into a first data stream comprising a first plurality of data packets and a second data stream comprising a second plurality of data packets;

upon performing a first plurality of network operations, receive the first data stream;

upon performing a second plurality of network operations, receive the second data stream;

determine whether the first plurality of data packets and the second plurality of data packets are of a same type;

in response to determining that the first plurality of data packets and the second plurality of data packets are the same type, determine that the second plurality of data packets are configured to replicate the first plurality of data packets;

in response to determining that the first plurality of data packets and the second plurality of data packets are not the same type, determine that the second plurality of data packets are configured to supplement the first plurality of data packets;

combine a version of the first data stream and a version of the second data stream into a local data stream; and

present the local data stream.

16. The non-transitory computer readable medium of claim 15 , wherein:

the first data stream comprises a first bandwidth;

the first data stream is received via a first network device configured to forward the first data stream from the data aggregator using a first Quick UDP Internet Connections (QUIC) relay;

the first network device receives the first data stream via one or more cellular communications from the data aggregator;

the first plurality of network operations comprise one or more short-range wireless communications;

the second data stream comprises a second bandwidth;

the second bandwidth is greater than the first bandwidth;

the second data stream is received via a second network device configured to forward the second data stream from the data aggregator using a second QUIC relay;

the second network device receives the second data stream via one or more internet communications from the data aggregator; and

the second plurality of network operations comprise one or more additional internet communications.

17. The non-transitory computer readable medium of claim 16 , wherein:

the first QUIC relay is a first portion of a transport layer network protocol configured to multiplex data from the data aggregator; and

the second QUIC relay is a second portion of the transport layer network protocol configured to multiplex data from the data aggregator.

18. The non-transitory computer readable medium of claim 15 , wherein:

the instructions further cause the processor to:

in conjunction with determining that the second plurality of data packets are configured to replicate the first plurality of data packets, determine whether the second plurality of data packets comprise the first plurality of data packets; and

in response to determining that the second plurality of data packets do not comprise the first plurality of data packets, determine packet loss on the second data stream;

receive a packet loss-corrected data stream from the data aggregator,

the first data stream is the version of the first data stream received upon performing the first plurality of network operations; and

the packet loss-corrected data stream is the version of the second data stream configured to correct the packet loss on the second data stream.

19. The non-transitory computer readable medium of claim 15 , wherein:

the instructions further cause the processor to:

in conjunction with determining that the second plurality of data packets are configured to replicate the first plurality of data packets, determine whether the second plurality of data packets comprise the first plurality of data packets; and

in response to determining that the second plurality of data packets comprise the first plurality of data packets, determine no packet loss on the second data stream;

the version of the first data stream is the first data stream received upon performing the first plurality of network operations; and

the version of the second data stream is the second data stream received upon performing the second plurality of network operations.

20. The non-transitory computer readable medium of claim 15 , wherein:

the first data stream is a video parity stream;

the first data stream is received via a first network device configured to forward the first data stream from the data aggregator;

the first network device receives the first data stream via one or more cellular communications from the data aggregator;

the first plurality of network operations comprise one or more short-range wireless communications;

the second data stream is a high-definition video stream;

the second data stream is received via a second network device configured to forward the second data stream from the data aggregator;

the second network device receives the second data stream via one or more internet communications from the data aggregator; and

the second plurality of network operations comprise one or more additional internet communications.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2024
From: JENNINGS, CULLEN FRISHMAN; PARLA, VINCENT E.; GILLIS, THOMAS BRENNAN, JR.; CONNORS, STEPHEN CRAIG, JR.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 066563/0211 →
Continuity (2)
Provisional Application 63581893 · Sep 11, 2023
Related Publication 20250088469A1 · Mar 13, 2025
References Cited (8)
US 9639910B2 · Geyzel · 2017 [cited by examiner]
US 10425339B2 · Thubert · 2019 [cited by examiner]
US 11496628B2 · Bhoria · 2022 [cited by examiner]
US 20170289215A1 · Lundrigan et al. · 2017 [cited by applicant]
US 20200120555A1 · Patil et al. · 2020 [cited by applicant]
US 20210399960A1 · Cunningham et al. · 2021 [cited by applicant]
US 20230208752A1 · Axelsson et al. · 2023 [cited by applicant]
WO 2023179891A1 · 2023 [cited by applicant]