US 12,255,816 B2
Packet transmission system and method
David Sze, Waterloo (CA); Bogdan Frusina, Kitchener (CA); Jonathon Oberholzer, Waterloo (CA); Bernard Wong, Waterloo (CA); Sharon Hui Lun Choy, Kanata (CA); and Todd Schneider, Waterloo (CA)
Assigned to DEJERO LABS INC., Waterloo (CA)
Filed by DEJERO LABS INC., Waterloo (CA)
Filed on Jan. 15, 2024, as Appl. No. 18/413,010.
Application 18/413,010 is a continuation of application No. 17/903,024, filed on Sep. 5, 2022, granted, now 11,876,711.
Application 17/903,024 is a continuation of application No. 16/482,972, granted, now 11,438,265, issued on Sep. 6, 2022, previously published as PCT/CA2017/051584, filed on Dec. 21, 2017.
Claims priority of provisional application 62/558,610, filed on Sep. 14, 2017.
Claims priority of provisional application 62/437,635, filed on Dec. 21, 2016.
Prior Publication US 2024/0163212 A1, May 16, 2024
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 45/74 (2022.01); H04L 12/66 (2006.01); H04L 41/0896 (2022.01); H04L 43/0852 (2022.01); H04L 43/0882 (2022.01); H04L 43/106 (2022.01); H04L 45/00 (2022.01); H04L 45/302 (2022.01); H04L 47/125 (2022.01); H04L 47/2483 (2022.01); H04L 47/34 (2022.01); H04L 49/90 (2022.01)
CPC H04L 45/74 (2013.01) [H04L 12/66 (2013.01); H04L 41/0896 (2013.01); H04L 43/0852 (2013.01); H04L 43/0882 (2013.01); H04L 43/106 (2013.01); H04L 45/22 (2013.01); H04L 45/302 (2013.01); H04L 47/125 (2013.01); H04L 47/2483 (2013.01); H04L 47/34 (2013.01); H04L 49/90 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A network gateway for routing data flows across a plurality of network connections, the network gateway comprising:
a plurality of network interfaces for transmitting data over the plurality of network connections; and
at least one processor configured for:
monitoring time-variant network transmission characteristics of the plurality of network connections;
generate a bandwidth estimate of a first network connection of the plurality of network connections based on timestamps when test packets are received at a receiving node and a size of the test packets, the test packets sent alongside data packets or as payloads embedded within the data packets;
parsing at least one packet of a data flow of packets to identify a data flow class for the data flow, wherein the data flow class is associated with at least one network interface requirement for the data flow;
transmitting the test packets as a sequential burst of packets across a first network interface of the plurality of network interfaces;
for each packet of the packets in the data flow, providing the packet for routing over one of the plurality of network connections based on the data flow class and the bandwidth estimate of the plurality of network connections and the network connections of other packets in the data flow such that the packets in the data flow arrive at a destination node in a desired sequence; and
wherein the bandwidth estimate of the first network interface is generated using a sum of packet sizes for packets between a first packet in the burst and a second packet in the burst that are divided by a time elapsed between a timestamp for the first packet and a timestamp for the second packet, wherein the first packet is not the initial packet in the burst, and wherein the second packet is subsequent to the first packet in the burst.