IP Library Granted Patent US 11,438,265
Granted Patent B2
US 11,438,265 · App. 16/482,972 · Granted Sep 6, 2022

Packet transmission system and method

Inventors: David Sze (Waterloo, CA); Bogdan Frusina (Kitchener, CA); Jonathon Oberholzer (Waterloo, CA); Bernard Wong (Waterloo, CA); Sharon Hui Lun Choy (Kanata, CA); Todd Schneider (Waterloo, CA)
Assignee: DEJERO LABS INC.
H04L45/74H04L12/66H04L41/0896H04L43/0852H04L43/0882H04L43/106H04L45/22H04L45/302H04L47/125H04L47/2483H04L47/34H04L49/90
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 11,438,265
App. No.
16/482,972
Granted
Sep 6, 2022
Kind
B2
Abstract

A network gateway is provided for routing data flows across a plurality of network connections, the network gateway including a plurality of network interfaces for transmitting data over the plurality of network connections, the plurality of network interfaces including a first network interface; at least one processor configured for: transmitting a sequential burst of packets across the first network interface; based on timestamps recorded when packets in the sequential burst of packets are received at a receiving node, and the size of the packets, generating a bandwidth of the first network interface; and routing a data flow of sequential packets across the plurality of network connections based on the generated bandwidth of the first network interface.

Claims (74)

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;

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;

routing packets in the data flow across the plurality of network connections based on the data flow class, and the time-variant network transmission characteristics;

transmitting a sequential burst of packets across a first network interface of the plurality of network interfaces;

based on timestamps recorded when packets in the sequential burst of packets are received at a receiving node, and the size of the packets, generating a bandwidth estimate of the first network interface; and

routing packets in the data flow of packets across the plurality of network connections based on the generated bandwidth estimate of the first network interface.

2. The network gateway of claim 1 , wherein monitoring the time-variant network transmission characteristics includes generating a bandwidth delay product of at least one network interface of the plurality of networks based on the monitored time-variant network transmission characteristics; and wherein routing the packets in the data flow is based on the bandwidth delay product of the at least one network interface.

3. The network gateway of claim 1 , wherein the at least one processor is configured to parse at least one packet of each of a plurality of data flows of packets; and

routing the packets in each of the plurality of data flows based of the data flow class of each of the plurality of data flows, and available bandwidths of the network connections corresponding to the data flow classes of the respective data flows.

4. The network gateway of claim 1 , wherein generating the bandwidth estimate of the first network interface comprises: dividing a sum of packet sizes for packets between a first packet in the burst and a second packet in the burst 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.

5. The network gateway of claim 1 , wherein generating the bandwidth estimate of the first network interface comprises: generating the bandwidth estimate based on the timestamps of packets in the burst which are not coalesced with an initial or a final packet in the burst.

6. The network gateway of claim 1 , wherein generating the bandwidth estimate of the first network interface comprises: substituting a received timestamp for a particular packet in the burst with a sent timestamp of a packet sent after the particular packet.

7. The network gateway of claim 1 , wherein when the receiving node processes received packets at periodic intervals, generating the bandwidth estimate of the first network interface comprises:

generating a lower bandwidth value by using a received timestamp for a packet in the sequential burst selected as an end packet in the bandwidth determination; and

generating an upper bandwidth value by substituting the received timestamp for the packet in the sequential burst selected as the end packet with a received timestamp of a packet in the sequential burst preceding the end packet.

8. The network gateway of claim 1 , wherein the at least one processor is configured for:

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 monitored latencies 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.

9. The network gateway of claim 8 , wherein the desired sequence is an original sequence of packets in the data flow.

10. The network gateway of claim 8 , wherein the desired sequence is a sequence including at least one misordering of packets which does not trigger re-transmission of a packet in the sequence.

11. The network gateway of claim 1 , wherein the at least one processor is configured for:

receiving packets from a source interface for routing to a destination node via the plurality of network connections;

transmitting acknowledgements to the source interface before routing the packets to the destination node; and

storing the packets in at least one buffer before the packets are routed to the destination node.

12. The network gateway of claim 11 , wherein the at least one processor is configured for dynamically controlling a size of the at least one buffer based on a bandwidth delay product associated with the plurality of network connections.

13. The network gateway of claim 11 , wherein the at least one processor is configured for controlling the transmission of acknowledgements and storage of the packets based on monitored of transmission characteristics of the plurality of network connections, and an uneven distribution in the receipt of the data flow of packets.

14. The network gateway of claim 1 , wherein the at least one processor is configured to route the packets based on the bandwidth of the plurality of network connections, and reducing a number of network connections over which the data flow is routed.

15. The network gateway of claim 3 , wherein the at least one processor is configured to group packets of the plurality of data flows which have similar data flow classes; and routing grouped packets over the plurality of network connections based on a classification of the plurality of data flows.

16. The network gateway of claim 1 , wherein a data flow class of one of the data flows is automatically changed once a threshold volume of data of the corresponding data flow has been routed.

17. The network gateway of claim 1 , wherein the data flow of packets include data packets including at least one of video and audio data.

18. The network gateway of claim 1 , wherein the sequential burst of packets include both test packets utilized to perform a bandwidth estimate determination and data packets including at least one of video and audio data.

19. The network gateway of claim 18 , wherein the data packets including at least one of video and audio data transmitted across the sequential burst of packets are redundant data packets adapted to tolerate a quantity of lost data packets.

20. A method for routing data flows across a plurality of network interfaces for transmitting data over a plurality of network connections, the method comprising:

monitoring time-variant network transmission characteristics of the plurality of network connections;

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;

routing packets in the data flow across the plurality of network connections based on the data flow class, and the time-variant network transmission characteristics;

transmitting a sequential burst of packets across a first network interface of the plurality of network interfaces:

based on timestamps recorded when packets in the sequential burst of packets are received at a receiving node, and the size of the packets, generating a bandwidth estimate of the first network interface; and

routing packets in the data flow of packets across the plurality of network connections based on the generated bandwidth estimate of the first network interface.

21. The method of claim 20 , wherein monitoring the time-variant network transmission characteristics includes generating a bandwidth delay product of at least one network interface of the plurality of networks based on the monitored time-variant network transmission characteristics; and wherein routing the packets in the data flow is based on the bandwidth delay product of the at least one network interface.

22. The method of claim 20 , comprising:

parsing at least one packet of each of a plurality of data flows of packets; and

routing the packets in each of the plurality of data flows based of the data flow class of each of the plurality of data flows, and available bandwidths of the network connections corresponding to the data flow classes of the respective data flows.

23. The method of claim 20 , wherein the generating the bandwidth estimate of the first network interface comprises: dividing a sum of packet sizes for packets between a first packet in the burst and a second packet in the burst 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.

24. The method of claim 20 wherein the generating the bandwidth estimate of the first network interface comprises: generating the bandwidth estimate based on the timestamps of packets in the burst which are not coalesced with an initial or a final packet in the burst.

25. The method of claim 20 , wherein the generating the bandwidth estimate of the first network interface comprises: substituting a received timestamp for a particular packet in the burst with a sent timestamp of a packet sent after the particular packet.

26. The method of claim 20 , wherein when the receiving node processes received packets at periodic intervals, generating the bandwidth estimate of the first network interface comprises:

generating a lower bandwidth value by using a received timestamp for a packet in the sequential burst selected as an end packet in the bandwidth determination; and

generating an upper bandwidth value by substituting the received timestamp for the packet in the sequential burst selected as the end packet with a received timestamp of a packet in the sequential burst preceding the end packet.

27. The method of claim 20 , comprising:

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 monitored latencies 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.

28. The method of claim 27 , wherein the desired sequence is an original sequence of packets in the data flow.

29. The method of claim 27 , wherein the desired sequence is a sequence including at least one misordering of packets which does not trigger re-transmission of a packet in the sequence.

30. The method of claim 20 , comprising:

receiving packets from a source interface for routing to a destination node via the plurality of network connections;

transmitting acknowledgements to the source interface before routing the packets to the destination node; and

storing the packets in at least one buffer before the packets are routed to the destination node.

31. The method of claim 30 , comprising dynamically controlling a size of the at least one buffer based on a bandwidth delay product associated with the plurality of network connections.

32. The method of claim 30 , comprising controlling the transmission of acknowledgements and storage of the packets based on monitored of transmission characteristics of the plurality of network connections, and an uneven distribution in the receipt of the data flow of packets.

33. The method of claim 20 , comprising routing the packets based on the bandwidth of the plurality of network connections, and reducing a number of network connections over which the data flow is routed.

34. The method of claim 22 , comprising grouping packets of the plurality of data flows which have similar data flow classes; and routing grouped packets over the plurality of network connections based on a classification of the plurality of data flows.

35. The method of claim 20 , wherein a data flow class of one of the data flows is automatically changed once a threshold volume of data of the corresponding data flow has been routed.

36. The method of claim 20 , wherein the data flow of packets include data packets including at least one of video and audio data.

37. The method of claim 20 , wherein the sequential burst of packets include both test packets utilized to perform a bandwidth estimate determination and data packets including at least one of video and audio data.

38. The method of claim 37 , wherein the data packets including at least one of video and audio data transmitted across the sequential burst of packets are redundant data packets adapted to tolerate a quantity of lost data packets.

39. A non-transitory computer-readable medium storing a set of machine-interpretable instructions, which when executed, cause one or more processors to perform a method for routing data flows across a plurality of network interfaces for transmitting data over a plurality of network connections, the method comprising:

monitoring time-variant network transmission characteristics of the plurality of network connections;

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;

routing packets in the data flow across the plurality of network connections based on the data flow class, and the time-variant network transmission characteristics;

transmitting a sequential burst of packets across a first network interface of the plurality of network interfaces;

based on timestamps recorded when packets in the sequential burst of packets are received at a receiving node, and the size of the packets, generating a bandwidth estimate of the first network interface; and

routing packets in the data flow of packets across the plurality of network connections based on the generated bandwidth estimate of the first network interface.

Assignments (5)
SECURITY INTEREST Recorded Jan 6, 2026
From: DEJERO LABS INC.
To: MULTIPLIER GROWTH PARTNERS, LP, AS ADMINISTRATIVE AGENT
Reel/Frame 074213/0282 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2025
From: RUNWAY GROWTH FINANCE CORP.
To: DEJERO LABS INC.
Reel/Frame 072980/0220 →
SECURITY INTEREST Recorded Jan 11, 2022
From: DEJERO LABS INC.
To: RUNWAY GROWTH FINANCE CORP.
Reel/Frame 058613/0966 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2021
From: SZE, DAVID; FRUSINA, BOGDAN; OBERHOLZER, JONATHON; SCHNEIDER, TODD; WONG, BERNARD; CHOY, SHARON HUI LUN
To: DEJERO LABS INC.
Reel/Frame 055232/0647 →
SECURITY INTEREST Recorded Jan 4, 2021
From: DEJERO LABS INC.
To: COMERICA BANK
Reel/Frame 054802/0177 →