Intelligent adaptive transport layer to enhance performance using multiple channels
Abstract
A set of connections is established, continuously evaluated and maintained between two endpoints of a computer network for use in transmitting information flows in a more efficient and controlled manner. New connections are established and existing connections are terminated in a continual search for connections with better and/or different performance characteristics. Each connection may utilize the same or a different path through the network and may have performance characteristics that change over time. Several paths can be used simultaneously for a given information flow to improve network metrics including: throughput, transaction time, data consistency, latency and packet loss. Flows of information can be broken into one or more sub-flows and sub-flows can be assigned to one or more active connections. Furthermore, dynamic decisions regarding how flows are broken up and how they are assigned to connections can be made in response to network conditions. Through the use of these connections, a reduced cost can be offered and application QoS/QoE can be guaranteed, allowing existing networks such as the public Internet to provide an enterprise class connection, which can be used to accelerate enterprise cloud adoption without modifying the present Internet infrastructure.
Claims
exact text as granted — not AI-modified1 . A method of communicating a flow of information over a plurality of available connections in a system comprising a plurality of network hosts coupled to a network capable of communicating information between hosts, wherein the system utilizes a plurality of connections between the network hosts, the method comprising:
receiving a request to transfer an application information flow between a first network host and a second network host; breaking the application information flow into a plurality of sub-flows; assigning each of the plurality of sub-flows to a connection from among a plurality of connections between said first network host and said second network host; communicating data from said plurality of sub-flows over one or more of said plurality of connections based on said step of assigning.
2 . The method of claim 1 wherein said plurality of connections are pre-existing tunnels maintained independently from the communication of the application information flow.
3 . The method of claim 1 wherein said request is associated with application characteristics comprising one or more characteristics taken from the set consisting of: packet size, flow size, flow duration, latency requirements, and priority.
4 . The method of claim 1 wherein said step of assigning is based on at least one performance metric associated with at least one of said plurality of connections.
5 . The method of claim 1 wherein said step of breaking changes how the application information flow is divided into sub-flows dynamically during transfer of the application information flow.
6 . The method of claim 1 wherein said step of assigning changes an assignment of one or more of the plurality of sub-flows to a different connection among said plurality of connections during transfer of the application information flow.
7 . The method of claim 1 wherein at least one of said plurality of sub-flows is bidirectional and each direction of said at least one of said plurality of sub-flows is assigned to different ones of said plurality of connections.
8 . The method of claim 1 wherein said first network host comprises a first network interface and said second network host comprises a second network interface, and wherein at least two of said plurality of connections are established that utilize both said first network interface and said second network interface.
9 . The method of claim 1 further comprising the steps of:
receiving a second request to transfer a second application information flow between said first network host and said second network host;
breaking the second application information flow into a second plurality of sub-flows;
assigning each of the second plurality of sub-flows to a connection from among said plurality of connections between said first network host and said second network host;
communicating data from each of said second plurality of sub-flows over one or more of said second plurality of connections based on said step of assigning each of the second plurality of sub-flows.
10 . The method of claim 9 wherein at least one of said plurality of connections communicates data from both the application information flow and the second application information flow.
11 . An apparatus for communicating information flows between network hosts over a network coupling the network hosts, the apparatus comprising:
a first network host comprising at least one processor in communication with least one memory storing processor readable instructions, wherein the at least one processor is operably configured by the processor readable instructions to: receive a request to transfer an application information flow to a second network host; break the information flow into a plurality of sub-flows; assign each of the plurality of sub-flows to a connection from among a plurality of connections between said first network host and said second network host; communicate data from said plurality of sub-flows over one or more of said plurality of connections.
12 . The apparatus of claim 11 wherein said plurality of connections are pre-existing tunnels maintained independently from the communication of the application information flow.
13 . The apparatus of claim 11 wherein said wherein said request is associated with application characteristics comprising one or more characteristics taken from the set consisting of: packet size, flow size, flow duration, latency requirements, and priority.
14 . The apparatus of claim 11 wherein said processor is operably configured to assign each of the plurality of sub-flows to a connection based on at least one performance metric associated with at least one of said plurality of connections.
15 . The apparatus of claim 11 wherein said processor is operably configured to change how the application information flow is divided into said plurality of sub-flows dynamically during transfer of the application information flow.
16 . The apparatus of claim 11 wherein said processor is operably configured to change an assignment of one or more of the plurality of sub-flows to a different connection among said plurality of connections during transfer of the application information flow.
17 . The apparatus of claim 11 wherein at least one of said plurality of sub-flows is bidirectional and each direction of said at least one of said plurality of sub-flows is assigned to different ones of said plurality of connections.
18 . The apparatus of claim 11 wherein said first network host comprises a first network interface and said second network host comprises a second network interface, and wherein at least two of said plurality of connections are established that utilize both said first network interface and said second network interface.
19 . The apparatus of claim 11 wherein the at least one processor is further operably configured by the processor readable instructions to:
receive a second request to transfer a second application information flow between said first network host and said second network host;
break the second application information flow into a second plurality of sub-flows;
assign each of the second plurality of sub-flows to a connection from among said plurality of connections between said first network host and said second network host;
communicate data from each of said second plurality of sub-flows over one or more of said second plurality of connections.
20 . The apparatus of claim 19 wherein at least one of said plurality of connections communicates data from both the application information flow and the second application information flow.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.