IP Library Granted Patent US 8,644,164
Granted Patent B2
US 8,644,164 · App. 13/592,460 · Granted Feb 4, 2014

Flow-based adaptive private network with multiple WAN-paths

Inventors: John Earnest Averi (Cary, NC); Stephen Craig Connors (Raleigh, NC); John Edward Dickey (Apex, NC); Andrew Joshua Gottlieb (Cupertino, CA)
Assignee: Talari Networks Incorporated
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 8,644,164
App. No.
13/592,460
Granted
Feb 4, 2014
Kind
B2
Abstract

Systems and techniques are described which improve performance, reliability, and predictability of networks without having costly hardware upgrades or replacement of existing network equipment. An adaptive communication controller provides WAN performance and utilization measurements to another network node over multiple parallel communication paths across disparate asymmetric networks which vary in behavior frequently over time. An egress processor module receives communication path quality reports and tagged path packet data and generates accurate arrival times, send times, sequence numbers and unutilized byte counts for the tagged packets. A control module generates path quality reports describing performance of the multiple parallel communication paths based on the received information and generates heartbeat packets for transmission on the multiple parallel communication paths if no other tagged data has been received in a predetermined period of time to ensure performance is continually monitored. An ingress processor module transmits the generated path quality reports and heartbeat packets.

Claims (44)

1. A method for bandwidth allocation among a plurality of paths, the method comprising:

quantifying performance of each path of a plurality of paths that are configured by an external control point to connect a first node across a network to a second node, wherein the performance of each path is based on a first network time in the first node and a second network time in the second node and wherein the first network time and the second network time are both calibrated according to a master clock in the external control point remotely coupled to the first node and to the second node; and

allocating bandwidth to each path in accordance with the quantified performance of each path of the plurality of paths.

2. The method of claim 1 further comprising:

allocating a maximum usable bandwidth to each path according to each paths performance.

3. The method of claim 1 , wherein the bandwidth is allocated to achieve a lowest average path latency for each path.

4. The method of claim 1 , wherein based on the performance of each path, a fastest path is allocated with a first maximum bandwidth usable by the fastest path, a second fastest path is allocated with a second maximum bandwidth usable by the second fastest path, continuing allocation until each path of the plurality of paths has an allocation of bandwidth.

5. The method of claim 1 further comprising:

calibrating the first network time in the first node based on a first send time measured in the first node for a first request message sent from the first node to the external control point, a first reply send time measured in the external control point and sent in a first reply message to the first node, and a first reply arrival time measured in the first node for the first reply message received in the first node; and

calibrating the second network time in the second node based on a second send time measured in the second node for a second request message sent from the second node to the external control point, a second reply send time measured in the external control point and sent in a second reply message to the second node, and a second reply arrival time measured in the second node for the second reply message received in the second node.

6. The method of claim 1 further comprising:

generating in each node a ratio of an average reply send time versus an average reply arrival time for a plurality of samples of a reply send time and a plurality of samples of a reply arrival time; and

calibrating the first network time in the first node and the second network time in the second node based on an evaluation in the first node and in the second node of a function of the ratio, current time at each node, and a round trip time between each node and the external control point.

7. The method of claim 1 further comprising:

adjusting network time at the first node and at the second node based on a slope-intercept function y=m×+b of samples averaged at each node repeatedly over time, wherein y is time at the external control point, x is local time at each node, b is a base offset between x and y, and m is a rate of change of y versus x.

8. A method for bandwidth allocation among a plurality of paths, the method comprising:

quantifying performance of each path of a plurality of paths that are configured by an external control point to connect a first node across a network to a second node, wherein the performance of each path is based on a first network time in the first node and a second network time in the second node to determine a listing of fastest path to slowest path among the plurality of paths and wherein the first network time and the second network time are both calibrated according to a master clock in the external control point remotely coupled to the first node and to the second node; and

allocating bandwidth to each path according to the listing of fastest path to slowest path to achieve a selected performance of the plurality of paths.

9. The method of claim 8 further comprising:

allocating a usable bandwidth less than or equal to a maximum permitted bandwidth to each path according to each paths idealized data capacity.

10. The method of claim 8 further comprising:

allocating a fastest path with a first maximum bandwidth usable by the fastest path;

allocating a second fastest path with a second maximum bandwidth usable by the second fastest path; and

continuing allocating bandwidth to each path until each path of the plurality of paths has an allocation of bandwidth, wherein each allocation of bandwidth is based on the performance of each path.

11. The method of claim 8 further comprising:

calibrating the first network time in the first node based on a first send time when a first message is sent from the first node to the external control point, a first reply send time when a first reply message is sent from the remote control point to the first node, and a first reply arrival time when the reply message is received in the first node; and

calibrating the second network time in the second node based on a second send time when a second message is sent from the second node to the external control point, a second reply send time when a second reply message is sent from the remote control point to the second node, and a second reply arrival time when the reply message is received in the second node.

12. The method of claim 8 further comprising:

generating in each node a ratio of an average reply send time versus an average reply arrival time for a plurality of samples of a reply send time and a plurality of samples of a reply arrival time; and

calibrating the first network time in the first node and the second network time in the second node based on a first evaluation in the first node and a second evaluation in the second node of a function of the ratio, current time at each node, and a round trip time between each node and the external control point, respectively.

13. The method of claim 8 further comprising:

allocating bandwidth among the plurality of paths to achieve a lowest average path latency for each path.

14. The method of claim 8 further comprising:

adjusting network time at the first node and at the second node based on a slope-intercept function y=m×+b of samples averaged at each node over a pre-specified period, wherein y is time at the external control point, x is local time at each node, b is a base offset between x and y, and m is a rate of change of y versus x.

15. The method of claim 8 further comprising:

analyzing an accounting of incoming packets received at the first node over time to determine whether a deficit in data capacity as compared to an idealized capacity at the first node has occurred, wherein a deficit indicates the path to the first node is congested.

16. The method of claim 15 further comprising:

reducing bandwidth allocation for the path to the first node to reduce congestion on the path.

17. A computer readable non-transitory medium encoded with computer readable program data and code, the program data and code when executed comprises operations to:

quantify performance of each path of a plurality of paths that are configured by an external control point to connect a first node across a network to a second node, wherein the performance of each path is based on a first network time in the first node and a second network time in the second node to determine a listing of fastest path to slowest path among the plurality of paths and wherein the first network time and the second network time are both calibrated according to a master clock in the external control point remotely coupled to the first node and to the second node; and

allocate bandwidth to each path according to the listing of fastest path to slowest path to achieve a selected performance of the plurality of paths.

18. The computer readable non-transitory medium of claim 17 further comprises operations to:

generate in each node a ratio of an average reply send time versus an average reply arrival time for a plurality of samples of a reply send time and a plurality of samples of a reply arrival time; and

calibrate the first network time in the first node and the second network time in the second node based on a first evaluation in the first node and a second evaluation in the second node of a function of the ratio, current time at each node, and a round trip time between each node and the external control point, respectively.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2018
From: PACIFIC WESTERN BANK (AS SUCCESSOR IN INTEREST BY MERGER TO SQUARE 1 BANK)
To: TALARI NETWORKS, INC.
Reel/Frame 047633/0286 →
CHANGE OF ASSIGNEE ADDRESS Recorded Oct 9, 2015
From: ARES VENTURE FINANCE, L.P.
To: ARES VENTURE FINANCE, L.P.
Reel/Frame 036827/0188 →
SECURITY INTEREST Recorded Oct 2, 2015
From: TALARI NETWORKS, INC.
To: ARES VENTURE FINANCE, L.P.
Reel/Frame 036745/0095 →
SECURITY INTEREST Recorded Apr 2, 2014
From: TALARI NETWORKS, INC.
To: SQUARE 1 BANK
Reel/Frame 032578/0944 →
Continuity (4)
Continuation 13353693 · Jan 19, 2012
Continuation 12482766 · Jun 11, 2009
Provisional Application 61060846 · Jun 12, 2008
Related Publication 20120314578A1 · Dec 13, 2012