Systems and methods for push-based data communications
AssigneeDejero Labs Inc.
InventorsDavid Pui Keung Sze, Imad Azzam, George Richard Jones
Life of this patent
Estimating the term…
Abstract
A data packet communication system is described, which can be implemented as a physical push based data packet communication device, such as a router, a gateway, or a controller circuit coupled to a router or a gateway adapted for controlling data packet communications. The data packet communication system is adapted to evaluate network capacity of each of the multiple networks at the time of a monitored communication event and assigns data packets accordingly.
Claims20
A packet communication controller coupled to a plurality of network connections, each having a corresponding output queue from a plurality of output queues, the packet communication controller including a processor configured to:
- monitor and maintain, in a data object, network characteristics associated with each network of the plurality of networks such that each network of the plurality of networks can be ordered in an order sequence based on the network characteristics;
- monitor whether a trigger event has occurred within the plurality of network connections, the trigger event including at least one of new data packets in an input queue of the plurality of connections, an acknowledgement that one or more previous data packets have been received at a destination device, and a negative acknowledgement that the one or more previous data packets have been received at the destination device;
- upon determining that the trigger event has occurred:
- establish the order sequence for network connections of a selected set of network connections based on the network characteristics;
- assign one or more data packets of unassigned data packets of the input queue to one or more corresponding output queues of the plurality of networks by assigning the one or more data packets to successive available network connections based on availability and the order sequence;
- update the data object storing the monitored network characteristics of the corresponding plurality of networks based on the one or more data packets which have been assigned to the plurality of network connections;
- assess the updated data object to determine that a current congestion window of the network connections has not been consumed by the assigned one or more data packets;
- and
- communicate the assigned data packets from the plurality of output queues to the destination device;
- wherein:
- for each of the plurality of network connections, measure the monitored network characteristics by:
- estimating at least one of a transmission rate of a bottleneck link, a round-trip time, and a round-trip propagation time;
- and
- comparing the at least one of the estimated round-trip propagation time, the estimated round-trip time, and the estimated transmission rate to, respective reference ranges of at least one of round-trip propagation times, reference ranges of round-trip times, and reference ranges of transmission to establish a score value for each of the at least one of the estimated round-trip propagation time, the estimated round-trip time, and the estimated transmission rate under consideration;
- measure modified monitored network characteristics that include system overhead processing time, and utilize either the original network characteristics or the modified network characteristics to determine at least one of a bandwidth delay product (BDP) and a congestion window;
- order the plurality of networks in the order sequence based on the score values for each of the plurality of networks and the at least one of the estimated transmission rate of a bottleneck link, the estimated round-trip time, the estimated round-trip propagation time, the BDP, and the congestion window;
- wherein the measured monitored network characteristics are measured across a dynamically adjusted sliding window history corresponding to a duration of one or more corresponding sliding window histories, the duration is adjusted based on at least one of packet loss and changes in the round-trip time, where dynamically adjusting the duration of one or more corresponding sliding window histories includes shortening the duration of the one or more corresponding sliding window histories when a packet loss event or an increase in round-trip time is monitored.
A method for packet communications using a packet communication controller coupled to a plurality of network connections, each having a corresponding output queue from a plurality of output queues, the method comprising:
- monitoring and maintaining, in a data object, network characteristics associated with each network of the plurality of networks such that each network of the plurality of networks can be ordered in an order sequence based on the network characteristics;
- monitoring whether a trigger event has occurred within the plurality of network connections, the trigger event including at least one of new data packets in an input queue of the plurality of connections, an acknowledgement that one or more previous data packets have been received at a destination device, and a negative acknowledgement that the one or more previous data packets have been received at the destination device;
- upon determining that the trigger event has occurred:
- establishing the order sequence for network connections of a selected set of network connections based on the network characteristics;
- assigning one or more data packets of unassigned data packets of the input queue to one or more corresponding output queues of the plurality of networks by assigning the one or more data packets to successive available network connections based on availability and the order sequence;
- updating the data object storing the monitored network characteristics of the corresponding plurality of networks based on the one or more data packets which have been assigned to the plurality of network connections;
- assess the updated data object to determine that a current congestion window of the network connections has not been consumed by the assigned one or more data packets;
- and
- communicating the assigned data packets from the plurality of output queues to the destination device;
- wherein:
- for each of the plurality of network connections, measure the monitored network characteristics by:
- estimating at least one of a transmission rate of a bottleneck link, a round-trip time, and a round-trip propagation time;
- and
- comparing the at least one of estimated round-trip propagation time, the estimated round-trip time, and the estimated transmission rate to, respective reference ranges of at least one of round-trip propagation times, reference ranges of round-trip times, and reference ranges of transmission to establish a score value for each of the at least one of estimated round-trip propagation time, the estimated round-trip time, and the estimated transmission rate under consideration;
- measure modified monitored network characteristics that includes system overhead processing time, and utilize either the original network characteristics or the modified network characteristics to determine at least one of a bandwidth delay product (BDP) and a congestion window,
- order the plurality of networks in the order sequence based on the score values for each of the plurality of networks and the at east one of the estimated transmission rate of a bottleneck link, the estimated round-trip time, the estimated round-trip propagation time, the BDP, and the congestion window;
- and
- wherein the measured monitored network characteristics are measured across a dynamically adjusted sliding window history corresponding to a duration of one or more corresponding sliding window histories, the duration is adjusted based on at least one of packet loss and change e round-trip time where dynamically adjusting the duration of one or more corresponding sliding window histories includes shortening the duration of the one or more corresponding sliding window histories when a packet loss event or an increase in round-trip time is monitored.
A non-transitory computer readable medium storing machine interpretable instructions, which when executed by a processor, cause the processor to perform a method for packet communications using a packet communication controller coupled to a plurality of network connections, each having a corresponding output queue from a plurality of output queues, the method comprising:
- monitoring and maintaining, in a data object, network characteristics associated with each network of the plurality of networks such that each network of the plurality of networks can be ordered in an order sequence based on the network characteristics;
- monitoring whether a trigger event has occurred within the plurality of network connections, the trigger event including at least one of new data packets in an input queue of the plurality of connections, an acknowledgement that one or more previous data packets have been received at a destination device, and a negative acknowledgement that the one or more previous data packets have been received at the destination device;
- upon determining that the trigger event has occurred:
- establishing the order sequence for network connections of a selected set of network connections based on the network characteristics;
- assigning one or more data packets of unassigned data packets of the input queue to one or more corresponding output queues of the plurality of networks by assigning the one or more data packets to successive available network connections based on availability and the order sequence;
- updating the data object storing the monitored network characteristics of the corresponding plurality of networks based on the one or more data packets which have been assigned to the plurality of network connections;
- assess the updated data object to determine that a current congestion window of the network connections has not been consumed by the assigned one or more data packets;
- and
- communicating the assigned data packets from the plurality of output queues to the destination device;
- wherein:
- for each of the plurality of network connections, measure the monitored network characteristics by:
- estimating at least one of a transmission rate of a bottleneck link, a round-trip time, and a round-trip propagation time;
- and
- comparing the at least one of the estimated round-trip propagation time, the estimated round-trip time, and the estimated transmission rate to, respective reference ranges of at least one of round-trip propagation times, reference ranges of round-trip times, and reference ranges of transmission to establish a score value for each of the at least one of estimated round-trip propagation time, the estimated round-trip time, and the estimated transmission rate under consideration;
- measure modified monitored network characteristics that includes system overhead processing time, and utilize either the original network characteristics or the modified network characteristics to determine at least one of a bandwidth delay product (BDP) and a congestion window;
- order the plurality of networks in the order sequence based on the score values for each of the plurality of networks and the at least one of the estimated transmission rate of a bottleneck link, the estimated round-trip time, the estimated round-trip propagation time, the BDP, and the congestion window;
- and
- wherein the measured monitored network characteristics are measured across a dynamically adjusted sliding window history corresponding to a duration of one or more corresponding sliding window histories, the duration is adjusted based on at least one of packet loss and changes in the round-trip time, where dynamically adjusting the duration of one or more corresponding sliding window histories includes shortening the duration of the one or more corresponding sliding window histories when a packet loss event or an increase in round-trip time is monitored.
Dependencies are inferred from the claim text.