US 12,081,446 B2
Systems and methods for pacing data flows
John Burnette, Seattle, WA (US); Ben Hadorn, Shoreline, WA (US); Jeffrey Harrang, Seattle, WA (US); and David Gibbons, Seattle, WA (US)
Assigned to Opanga Networks, Inc., Bellevue, WA (US)
Filed by Opanga Networks, Inc., Bellevue, WA (US)
Filed on Dec. 21, 2022, as Appl. No. 18/069,904.
Application 18/069,904 is a continuation of application No. 17/061,445, filed on Oct. 1, 2020, granted, now 11,546,268, issued on Jan. 3, 2023.
Application 17/061,445 is a continuation of application No. 16/358,595, filed on Mar. 19, 2019, granted, now 10,834,002, issued on Nov. 10, 2020.
Application 16/358,595 is a continuation of application No. 15/060,486, filed on Mar. 3, 2016, granted, now 10,270,700, issued on Apr. 23, 2019.
Claims priority of provisional application 62/277,320, filed on Jan. 11, 2016.
Claims priority of provisional application 62/207,529, filed on Aug. 20, 2015.
Claims priority of provisional application 62/127,753, filed on Mar. 3, 2015.
Prior Publication US 2023/0122266 A1, Apr. 20, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 47/25 (2022.01); H04L 43/0882 (2022.01); H04L 43/0888 (2022.01); H04L 47/10 (2022.01)
CPC H04L 47/25 (2013.01) [H04L 43/0882 (2013.01); H04L 43/0888 (2013.01); H04L 47/29 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A non-transient Computer-Readable media (CRM) comprising computer programming instructions which, when executed by one or more processors, perform a method for managing data flows between a user equipment and a first network equipment, the method comprising:
examining a first data packet transmitted to the user equipment from the first network equipment, the user equipment and the first network equipment being remotely located from each other and linked by at least one network;
determining, according to a delivery throughput of a plurality of packets transmitted between the user equipment and the first network equipment prior to the transmission of the first data packet, an expected data throughput for data transmitted to the user equipment from the first network equipment;
determining a data flow type of the first data packet;
when the first data packet is determined to have a data flow type of a first type indicating a type of data flow relating to Internet telephony, allowing the first data packet to be transmitted to the user equipment without performing a flow management process; and
when the first data packet is determined to have a data flow type of a second type indicating a type of data flow relating to video streaming, selecting the first data packet for the flow management process, wherein the flow management process includes:
determining a delivery throughput of the first data packet to the user equipment over a data flow path, the data flow path having a plurality of network nodes and being a shared connection between the user equipment and the first network equipment, the delivery throughput relating to a data transfer rate to the user equipment from the first network equipment over the data flow path;
comparing the determined delivery throughput of the first data packet to the expected data throughput; and
pacing transmission of data packets having the data flow type of the second type to the user equipment when the comparison of the determined delivery throughput and the expected data throughput indicates a congestion exists over the data flow path between the user equipment and the first network equipment.