IP Library Granted Patent US 10,142,164
Granted Patent B2
US 10,142,164 · App. 14/856,328 · Granted Nov 27, 2018

Methods and systems for dynamic path selection and data flow forwarding

Inventors: Kumar Ramachandran (Fremont, CA); Venkataraman Anand (San Ramon, CA); Navneet Yadav (Cupertino, CA); Arivu Ramasamy (San Jose, CA); Aaron Edwards (Sunnyvale, CA); Gopal Reddy (Fremont, CA)
Assignee: CLOUDGENIX, INC.
H04L41/0668G06F17/30598G06F17/30876H04L12/4633H04L12/4641H04L43/0817H04L45/28H04L47/781H04L47/825H04L63/061H04L69/40H04L43/0811H04L43/10H04L45/22H04L61/1511H04L61/1523H04L61/2503H04W84/04
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 10,142,164
App. No.
14/856,328
Granted
Nov 27, 2018
Kind
B2
Abstract

A method includes detecting a data flow and an associated originating interface on a network, determining a first link over which to forward the data flow, transmitting the data flow over the determined link, receiving a return data flow and moving a forward direction of the return data flow to a new path if the return data flow arrived via a link other than the first link, wherein all packets following a first packet on the flow are forwarded on the same path as the first packet.

Claims (34)

1. A method comprising:

designating, by a networked branch device on a network, a plurality of network data flows as belonging to a selected application if a network data flow is to or from a traffic source that initially accesses the selected application via an anchor domain of the selected application and if the network data flow occurs within a predetermined time period from an identified corresponding time of the initial access by that traffic source;

monitoring, by the networked branch device, any subsequent designated network data flows of the selected application and an associated originating interface and associated destination;

determining for each monitored network data flow of the selected application, by the networked branch device, a corresponding first path over which to forward the monitored network data flow to the associated destination, irrespective of a previous path of the monitored network data flow to the associated destination;

transmitting for each monitored network data flow of the selected application, by the networked branch device, the monitored network data flow over the determined corresponding first path;

receiving for each monitored network data flow of the selected application, by the networked branch device, a corresponding return data flow from the associated destination to the networked branch device;

determining for each monitored network data flow of the selected application, a corresponding second path on which the return data flow is received from the associated destination; and

moving for each monitored network data flow of the selected application, by the networked branch device, a forward direction of the network data flow, wherein the forward direction of the network data flow is from the associated originating interface to the associated destination, to a new path corresponding to the second path if the determined corresponding second path is different than the first path;

wherein for each monitored network data flow of the selected application, all packets following an initial packet of the network data flow in the forward direction on the corresponding second path are forwarded on the same second path as that initial packet in order to prevent flow asymmetry between the forward and the return network data flows.

2. The method of claim 1 , further comprising storing the determined first paths at Layer 4(L4) level in a flow table.

3. The method of claim 1 , wherein a network data flow is detected via one of a synchronized packet (SYN) and a detected unknown server-client user datagram protocol (UDP) session.

4. The method of claim 1 , wherein determining a first path comprises applying time-based application domain classification.

5. The method of claim 1 , wherein determining a first path and a second path comprises network mapping.

6. The method of claim 1 , further comprising modeling an application session.

7. The method of claim 1 , further comprising predicting bandwidth requirements for the network.

8. The method of claim 1 , wherein the network data flows are employed via synchronized packet (SYN).

9. The method of claim 1 , further comprising storing a detected anomalous flow at a configurable device.

10. A networked branch device configured to:

designate a plurality of network data flows as belonging to a selected application if a network data flow is to or from a traffic source that initially accesses the selected application via an anchor domain of the selected application and if the network data flow occurs within a predetermined time period from an identified corresponding time of the initial access by that traffic source;

monitor any subsequent designated data flow of the selected application and an associated originating interface and associated destination on a network via a processor having a memory storing instructions for performing actions;

determine, using the processor, for each monitored network data flow of the selected application, a corresponding first path over which to forward the monitored network data flow to the associated destination irrespective of a previous path of the monitored network data flow to the associated destination;

transmit for each monitored network data flow of the selected application, the monitored data flow over the determined corresponding first path;

receive for each monitored network data flow of the selected application, a corresponding return data flow from the associated destination to the networked branch device;

determine for each monitored network data flow of the selected application, using the processor, a corresponding second path on which a return data flow is received from the associated destination; and

move for each monitored network data flow of the selected application, a forward direction of the network data flow, wherein the forward direction of the network data flow is from the associated originating interface to the associated destination, to a new path corresponding to the second path if the determined corresponding second path is different than the first path;

wherein for each monitored network data flow of the selected application, all packets following an initial packet of the data flow in the forward direction on the corresponding second path are forwarded on the same second path as that initial packet in order to prevent flow asymmetry between the forward and the return network data flows.

11. The networked branch device of claim 10 further configured to store the determined first paths at Layer 4(L4) level in a flow table.

12. The networked branch device of claim 10 , wherein a network data flow is detected via one of a synchronized packet (SYN) and a detected unknown server-client user datagram protocol (UDP).

13. The networked branch device of claim 10 , wherein determining the first path comprises applying time-based application domain classification.

14. The networked branch device of claim 10 , wherein determining the first path and the second path comprises network mapping.

15. The networked branch device of claim 10 , further configured to model an application session.

16. The networked branch device of claim 10 , further configured to predict a bandwidth requirement for the network.

17. The networked branch device of claim 10 , wherein the data flows are employed via synchronized packet (SYN).

18. The networked branch device of claim 10 , further configured to store a detected anomalous flow at a configurable device.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2021
From: CLOUDGENIX INC.
To: PALO ALTO NETWORKS, INC.
Reel/Frame 058449/0010 →
RELEASE OF SECURITY INTEREST Recorded May 5, 2020
From: COMERICA BANK
To: CLOUDGENIX, INC.
Reel/Frame 052573/0502 →
SECURITY INTEREST Recorded Aug 22, 2018
From: CLOUDGENIX, INC.
To: COMERICA BANK
Reel/Frame 046668/0798 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2015
From: RAMACHANDRAN, KUMAR; ANAND, VENKATARAMAN; YADAV, NAVNEET; RAMASAMY, ARIVU; EDWARDS, AARON; REDDY, GOPAL
To: CLOUDGENIX, INC.
Reel/Frame 036691/0217 →
Continuity (2)
Provisional Application 62051293 · Sep 16, 2014
Related Publication 20160080251A1 · Mar 17, 2016
Cited By (2)
US 12,556,443 US 12,634,210