FIELD OF THE DISCLOSURE

The present application generally relates to data transmission over a network and routing traffic via one of a plurality of potential paths.

BACKGROUND OF THE DISCLOSURE

Many companies and enterprises have geographically distributed offices, including headquarters, branch or satellite offices, as well as staff working remotely from home or on the road. Computing devices at these remote locations may be connected both to internal networks (e.g. between sites, such as via virtual private network (VPN) connections), as well as to external networks (e.g. wide area networks (WANs), such as the Internet) via “exit points” from the internal networks. Simple traffic routing policies, such as routing internal traffic via internal VPN connections and external traffic via external WAN connections may be inefficient and slow in many implementations.

BRIEF SUMMARY OF THE DISCLOSURE

The systems and methods discussed herein provide for faster communications, particularly for high priority traffic, across a distributed network with multiple exit points to a Wide Area Network. Rather than simply routing traffic based on internal or external destination, an intelligent router may measure latency to an endpoint destination via multiple paths, both external and internal, and direct traffic accordingly. For example, in many implementations, high speed connections between geographically distributed branch offices may be faster paths for communications to nearby servers that are on the external network. Steering high priority traffic via the internal connection to an exit point near the destination server, and then to the server via the external network, may be faster than simply forwarding the connection via the external network from the exit point closest to the source device. Additionally, to reduce bandwidth requirements of the nearby exit point and provide capability for higher priority traffic, low priority traffic may be redirected back via the internal connection and transmitted via a distant exit point.

In one aspect, the present disclosure is directed to a system for routing traffic via a plurality of network interfaces. The system includes a routing device comprising a plurality of network interfaces, a connection monitor, and a traffic router. A first network interface of the plurality of network interfaces is connected via a first network to a client device. A second network interface of the plurality of network interfaces is connected via a second network to a remote server. A third network interface of the plurality of network interfaces is connected via a third network to a remote routing device, the remote routing device in communication with the remote server via a fourth network. The connection monitor is configured to measure a first connection latency to the remote server via the second network, and a second connection latency to the remote server via the third network, the remote routing device, and the fourth network. The traffic router is configured to, responsive to the measured first connection latency and the second connection latency, either redirect a packet received from the client device via the first network to the second network, or redirect the packet received from the client device via the first network to the third network, the remote routing device, and the fourth network.

In some implementations, the third network comprises a virtual private network. In some implementations, the remote routing device is geographically closer to the remote server than the routing device. In some implementations, the second network and the fourth network are the same network. In some implementations, the first connection latency exceeds the second connection latency, and the traffic router is configured to redirect the packet via the third network, the remote routing device configured to forward the packet to the remote server via the fourth network. In some implementations, the connection monitor is further configured to monitor total utilization of the second network and fourth network and utilization of the second network and fourth network by high priority traffic. In a further implementation, the traffic router is configured to redirect high priority traffic to the remote server from the first network via the third network, responsive to the first connection latency exceeding the second connection latency; and redirect low priority traffic received from the remote routing device via the third network to the second network, responsive to the utilization of the fourth network by high priority traffic exceeding a predetermined percentage of the total utilization of the fourth network.

In another aspect, the present disclosure is directed to a method for routing traffic via a plurality of network interfaces. The method includes measuring, by a connection monitor of a routing device in communication with a client device via a first network, a first connection latency to a remote server via a second network, and a second connection latency to the remote server via a third network and a remote routing device in communication with the remote server via a fourth network. The method also includes, responsive to the measured first connection latency and the second connection latency redirecting, by a traffic router of the routing device, a packet received from the client device via the first network via either (i) the second network, or (ii) the third network, the remote routing device, and the fourth network.

In some implementations of the method, the third network comprises a virtual private network. In some implementations of the method, the remote routing device is geographically closer to the remote server than the routing device. In some implementations of the method, the second network and the fourth network are the same network. In some implementations, the first connection latency exceeds the second connection latency, and the method includes redirecting, by the traffic router, the packet via the third network, the remote routing device configured to forward the packet to the remote server via the fourth network. In some implementations, the method includes monitoring, by the connection monitor, total utilization of the second network and fourth network and utilization of the second network and fourth network by high priority traffic. In a further implementation, the method includes redirecting, by the traffic router, high priority traffic to the remote server from the first network via the third network, responsive to the first connection latency exceeding the second connection latency; and redirecting, by the traffic router, low priority traffic received from the remote routing device via the third network to the second network, responsive to the utilization of the fourth network by high priority traffic exceeding a predetermined percentage of the total utilization of the fourth network.

In another aspect, the present disclosure is directed to a system for routing traffic via a plurality of network interfaces. The system includes a routing device comprising a plurality of network interfaces and a traffic router. A first network interface is connected via a first network to a server. A second network interface is connected via a second network to a remote routing device, the remote routing device in communication with a remote client device. A third network interface is connected via a third network to a local client device. The traffic router is configured to redirect a packet from the remote client device, received via the second network from the remote routing device, to the server via the first network. The traffic router is also configured to redirect a packet from the local client device to the server via the second network and the remote routing device, the remote routing device forwarding the packet from the local client device to the server via a fourth network.

In some implementations, the second network comprises a virtual private network. In some implementations, the routing device is geographically closer to the server than the remote routing device. In some implementations, the first network and the fourth network are the same network. In some implementations, the packet from the remote client device is identified as a high priority packet. In a further implementation, the packet from the local client device is identified as a low priority packet.

