With the continuous advances in technology, decreasing cost of electronics, and increased user demand for mobile data, it is the norm nowadays to find devices with various network interfaces. These devices such as laptops, netbooks, tablets, and various smart phones, are equipped with a variety of networking interfaces to communicate with any technology available, such as Bluetooth, Wi-Fi, 3G/4G and WiMax (w/max). Such devices, however, are currently not able to utilize these existing interfaces together to enhance the overall system performance.
There have been many approaches that address the multiple interface bandwidth aggregation problem over the years. These techniques are implemented at different layers of the protocol stack. Application layer solutions typically require applications to be aware of the existence of multiple interfaces and be responsible for utilizing them. Socket level solutions, on the other hand, modify the kernel socket handling functions to enable existing applications to use multiple interfaces. Although this method does not modify existing applications, it requires changes to the legacy servers in order to support these new sockets. In addition, some methods require feedback from the applications about their performance, and hence are not backwards compatible with previous versions of the applications.
Many bandwidth aggregation techniques, however, naturally lie in the transport layer. These solutions replace TCP with mechanisms and protocols that handle multiple interfaces. Such techniques require changes to the legacy servers and hence have a huge deployment barrier. Finally, network layer approaches update the network layer to hide the variation in interfaces from the running TCP protocol. One known method requires having a proxy server that communicates with the client and is aware of the client's multiple interfaces. Others implement their system at both connection ends which makes their deployment reliant on updating the legacy servers. It is also known to require having a special router as well as an optional proxy server. The fact that modern operating systems, such as Windows, MAC OS, and Linux, allow users to use only one of the available interfaces, even if multiple of them are connected to the Internet, attest that all the current proposals for bandwidth aggregation face a steep deployment barrier.
The solutions described, however, mainly focus on leveraging these interfaces to increase system throughput, while overlooking all other aspects that characterize an optimal, energy-efficient, and deployable bandwidth aggregation system. An effective bandwidth aggregation system should be: (1) Easily deployable without requiring changes to legacy servers, applications, or the addition of new hardware (such as proxy servers); (2) Energy-efficient to conserve the limited battery resources of mobile devices while being flexible in meeting the needs of users of optimal throughput, if required; and (3) Leveraging incremental system adoption and deployment to further enhance performance gains.
Previous work in deployable bandwidth aggregation systems (DBAS) focuses on the actual implementation of the basic core system. This work was then extended with G-DBAS which added energy awareness to the basic DBAS systems. These systems, however, either operate only in the connection-oriented mode, or do not provide optimal scheduling algorithms that exploit the full potential of the interfaces available.
A novel optimal, energy-efficient, and deployable bandwidth aggregation system for multiple interface enabled devices has been developed. The system is based on a middleware that lies right below the application layer, requiring no changes to either the OS kernel nor the applications. The system uses multiple interfaces simultaneously by partitioning and distributing data across them to achieve higher throughput while minimizing energy consumption.
The architecture of the present system is such that it can work with current legacy servers and leverage any enabled servers to further enhance performance. One of the core functionalities of the middleware of the invention is to schedule different connections to different interfaces. The scheduling problem has been formulated to allow the user to achieve a desired throughput with minimal energy consumed. It is demonstrated that this is a mixed integer programming problem that has a special structure allowing it to be efficiently solved.
The system was evaluated via implementation on the Windows OS, as well as via simulation, and the results were compared to the optimal achievable throughput and energy consumption. The results show that, with no changes to the current legacy servers, the system can achieve a 150% enhancement in throughput as compared to the current operating systems, with no increase in energy consumption. In addition, with only 25% of the nodes becoming enabled, the system performance reaches the throughput upper-bound. This highlights that the invention achieves the goals of being optimal, energy efficient, as well as easily and incrementally deployable.
This invention describes an optimal, energy-efficient, deployable bandwidth aggregation system for multiple interface enabled devices.
System Architecture
In reference to
In a second operational mode, if the other end of the connection (i.e., server 200) is also equipped with components of the invention (hereinafter referred to as being “enabled”), the system is able to further enhance performance by switching to a packet-based mode, where each packet can be scheduled independently on a different interface.
The system is composed of the following components as shown in
Application Characteristics Estimator 110. To be fully deployable, the invention does not require any changes to existing applications. Knowing the application characteristics, however, enables full utilization of the available interfaces and allows the system to make better scheduling decisions. Application characteristics estimator 110 automatically estimates the characteristics of the applications based on their behavior. These characteristics are stored in a database for keeping track of the behavior of the applications. The characterization of the applications utilizes both qualitative and quantitative measures.
In qualitative measures, application characteristics estimator 110 uses some features to characterize the behavior of an application. For example, the process name can be used to determine whether the process is realtime (e.g. Skype), or bandwidth intensive (e.g. an FTP client). Similarly, specific ports reserved by the application can also be used to characterize the behavior of the application.
In quantitative measures, application characteristics estimator 110 also estimates the average connection data demand in bytes for any given application. After a connection is terminated, application characteristics estimator 110 updates the estimated values of connection data demand (Cdemand) as:
C
demand=(1−α)Cdemand+αCCdemand (1)
where CCdemand is the number of bytes transmitted by the terminated connection and a is a smoothing coefficient, taken equal to 0.125 to evaluate the equation efficiently. Note the granularity of estimation can be rendered more fine grained at the expense of increased complexity and lower scalability.
Mode Detection Module 200. The purpose of mode detection module 210 is to detect whether the end point of the connection (server 200) supports the invention such that the second mode of operation, the packet-oriented mode, may be enabled. This module is implemented as a service that runs on a specific port reserved for the invention. When client 100 tries to establish a new connection, it first attempts to open a dummy connection to this portion server 200. If successful, this indicates that the invention is supported at the end point and, as such, the packet-oriented mode can be used.
If packet-oriented mode is enabled, multiple connections to the destination will be seamlessly opened from the application over multiple interfaces (shown in
Interface Characteristics Estimator 130. This module is responsible for estimating the characteristics of each network interface. In particular, it estimates the available bandwidth at each interface. It periodically connects and communicates with various geographically dispersed servers to estimate the uplink and downlink available bandwidth for each interface. These estimates are then combined with the statistics collected during the normal data transfer operation. These estimates are sufficient as the bandwidth bottlenecks typically exist at client 100 and not at server 105, which is typically connected to a high bandwidth link and designed to scale with the number of clients.
Battery Sensor 1400. This module senses the available battery level and whether or not client 100 is plugged to a power source or running on battery.
User Interface Module 150. This module is responsible for obtaining the user's preferences and interface usage policies (utility). The user can configure this module to enforce some interface selection criteria. For example, the user may wish to assign specific applications (e.g. realtime applications) to specific interfaces (e.g. wired). Similarly, the user might prefer to reduce cost and give higher priority/weight to interfaces that have a free connection or low energy.
Received Data Reordering Module 220. This module is utilized in the packet-oriented mode. It is responsible for reordering the incoming data chunks from different interfaces and to pass them on to the application layer at the receiving end. This is enabled by the sender adding a special header to each data packet which only contains a “chunkId” that is used in reordering the “chunks” when they reach the destination. When an interface is down, unacknowledged chunks can be re-sent over other interfaces, showing the effect of connection migration.
Scheduler 160. This module is the core of the invention. It uses the application, interface characteristics estimators, and the device status to schedule the connections to different interfaces. Table 2 contains a list of symbols used in the description of scheduler 160.
For purposes of this description, assume a mobile device with m interfaces, each with rate and energy consumption rate of aj, where aj equals the difference in power consumption between the active and idle states of interface j. The device runs a set of applications that share these interfaces. A standard network connection is referred to as a stream. The goal of scheduler 160 is to assign streams to interfaces to minimize the required energy (ε) to achieve a desired throughput (T). Scheduling decisions are made when a new stream (number of streams active in the system is n, including the new stream) is requested from an application. Mode detection module 220 determines whether the operation mode is connection-based (Sn=1), or packet-based (Sn=0), if server 200 is enabled. If the operation mode is connection-based, the goal of scheduler 160 is to determine which interface the connection should be assigned (sets xnj=1 for only one interface j) to each application. In either case, the percentage of packets to be assigned to each interface, i.e. interfaces relative packet load (wj), is re-calculated based on the current system load (L).
Utility Function
The target throughput for scheduler 160 is set based on a user utility function that balances the system throughput and the energy consumption. At one extreme, the goal of scheduler 160 can be to minimize energy (E) required to consume the system load. This can be achieved by assigning all traffic (streams) to the interface (ip
Optimal Scheduling
Here is described the objective function and system constraints. The decision variables are: (1) If Sj=1, which interface to assign the new stream to (variable xnj) and (2) the new values for wj, ∀j: 1≦j≦m.
Objective Function:
The overall objective of the scheduler is to minimize the overall system energy consumption (E) to consume the system load:
where, Ej is the energy consumption of interface j. For interface j, this energy can be divided into two parts: (1) energy needed to finish the load of the connection-oriented streams and (2) energy needed to finish the load of the packet-oriented streams. The former is equal to ajtj, where tj is the time required for interface to finish its connection-oriented load, tj=Σ=1mLi Sixij/rj. Similarly, the latter is equal to Σin=aj thcal Li(1−Si)wj/rj. Since connection-oriented streams cannot be re-assigned to other interfaces, the objective function becomes:
Constraints:
The following constraints must be satisfied:
Target Throughput: As defined above, the user utility function defines a minimum throughput that should be achieved (TTarget=ri
where Δ1 is the time needed by interface j to finish all its load (connection and packet based).
Rearranging:
Note that the RHS is constant.
Integral Association: If the new stream is connection-oriented, it should be assigned to only one interface:
Note that when Sn=0, xnj=0, ∀j, which is the case when the new stream is determined to be packet-based by the Mode Detection Module.
Packet Load Distribution: For packet-oriented streams, their total load should be distributed over all interfaces:
Variable Ranges: The trivial constraints for the range of the decision variables
wj≧0, 1≦j≦m (7)
xnj ∈ {0, 1}, 1≦j≦m (8)
Scheduling Algorithm
In summary, it is a goal of the invention to minimize the energy consumed based on Equation 2, while satisfying the set of constraints mentioned above. In general, this problem is a mixed 0-1 Integer Programming problem. However, it has a special structure that allows for an efficient solution. In particular, we have two cases: if the new stream that triggered the scheduling decisions is packet-based (Sn=0) and if it is connection-based (Sn=1). Algorithm 1 summarizes the algorithm of scheduler 160
),
using Equation 2
using Equation 3
Solution for the packet-based case: In this case, xnj=0 ∀j. The problem becomes a standard linear programming problem. Actually, it can be mapped to the continuous Knapsack problem which can be solved in linear time. In particular, to minimize E, the interfaces with the smallest
are utilized in order. Therefore, the interfaces are sorted in an ascending order according to their
Then from the throughput constraint (Equation 4) it's found that:
It is then iterated on the interfaces setting wj using the following formula:
Solution for the connection-based case: In this case, the binary variables ∀jxnj are determined such that only one of them equals 1 and others are 0. A quadratic time algorithm sets each one of them to 1 and then solves for ∀jwj using the linear time algorithm in the previous section. The values that have the minimum E are selected.
There are some interesting special cases that can be obtained from the general framework presented in this section. First, if the goal is to maximize throughput, i.e. α=1, then TTarget=Σi±1mri. In addition, if all streams are packet-based, i.e. all servers are enabled, scheduler 160 reduces to a weighted round robin scheduler based on Equation 4. For the case when the user is interested in energy consumption, i.e. α<1, scheduler 160 is reduced to a weighted round robin scheduler for the subset of interfaces that have the least airi ratio, based on the required saving in energy consumption. This means that the interfaces with high energy per bit consumption will be inactive, until we reach the extreme case of utilizing only the interface with the minimum energy per bit when α=0.
Implementation
The middleware providing the functionality of the invention was implemented as a Layered Service Provider (LSP), which is installed as part of the TCP/IP protocol stack under Windows OS, however implementations need not be restricted to Windows OS. This middleware uses the same concept adopted in implementing firewalls and network proxies to control traffic flows. The procedure starts when the application, aiming to connect to the Internet, uses the Winsock 2 API. Windows will dynamically link it to the Winsock 2 library which contains the implementation of all the Winsock 2 functions. This library sends its requests to the service provider which later forwards it to the base protocol, such as TCP/IP. Our LSP intercepts the Winsock 2 API requests and either schedules the connection to its selected interface or distributes data across the different network interfaces based on the mode of operation. In addition, it performs the functionality of the mode detection, application characteristic estimation, and interface characteristic estimation described above.
The monitoring application implemented represents the user interface module that captures the user's preferences and interface usage policies and further monitors behavior of the invention. This module is utilized to enable the user to enter the desired utility function as well as for testing purposes, where it allows the user to select one of the scheduling techniques outlined above. It also provides the ability to perform manual assignment of certain applications to certain interfaces. Finally, this module allows users to monitor internal data structures by interfacing with the middleware.
Performance Evaluation
Experimental Setup
Table 3 lists the main parameters employed in the evaluation. Without loss of generality, the testbed consists of four nodes: an enabled server, a legacy server, a client, and an intermediate traffic shaper node. Both servers are connection destinations. The intermediate node is a device running the NIST-NET network emulator to emulate the varying network characteristics of each interface. The client is the connection generator enabled with multiple network interfaces. On the client, different applications were run that vary in terms of the number of connections they open per second (β) and the average connection data demand (λ). The client is connected to the intermediate node through three interfaces: IF1, IF2 and IF3 representing Wi-Fi, Bluetooth and GSM network interfaces. Each server is connected to the intermediate node using a high bandwidth link, L1 and L2. Note that the combined bandwidth of IF1, IF2 and IF3 is less than each server bandwidth to test the impact of varying the interface characteristics and scheduling strategies. We define γ ∈ [0, 100] as the percentage of connections that have the enabled server as its destination. When γ=0 all the connections have the legacy server as their destination. However when γ=100 all the connections have the enabled server as their destination.
The invention was evaluated using two classes of applications: small load, and large load. Small load applications represent typical web browsing applications with an average connection demand of λsmall=2138 KB. Large load applications, on the other hand, represent P2P and FTP applications with an average connection demand of λlarge=0.25 MB. The connection establishment rate follows a Poisson process with mean (β) connections per second. βsmall and βlarge are changed to achieve different application mixes. Each experiment represents the average of 15 runs.
Overall, throughput and energy consumption per unit data are used for metrics while varying several parameters including user utility (α), stream type mix (γ), interface characteristics, and estimation error. We compare scheduler 160 to four baseline schedulers:
Throughput Optimal Scheduler: This imaginary scheduler represents the maximum achievable throughput.
Energy Optimal Scheduler: This imaginary scheduler represents the minimum energy consumption.
Round Robin (RR): Assigns streams or packets, based on the destination server type (legacy or enabled), to network interfaces in a rotating basis.
Weighted Round Robin (WRR): Similar to RR scheduler but weights each interface by its estimated bandwidth.
Results
The effect of the stream-type mix on the performance of the invention, its adoption to interface dynamics, its performance for different utility functions, its robustness to estimation error, and effect of connection heterogeneity are described herein. The performance of the invention to the baseline scheduling algorithms is also compared.
Impact of Stream-Type Mix (γ): As discussed, the invention performs best when all streams are packet-based as the scheduler can leverage the fine grained granularity to enhance the performance.
A number of interesting observations are revealed:
Impact of Interface Dynamics: The effects of dynamically changing the interface bandwidth were examined For this, we fix the bandwidth of IF2 and IF3 as shown in Table 3 and change the bandwidth of IF1 from 0.25 to 2 Mbps.
Note that the usage of each interface changes as the bandwidth of IF1 changes and becomes more attractive in terms of the energy consumed per bit for the OPRTA-CUR-OS variant. Even though the overall throughput may be constant, the used interfaces change to minimize the energy consumption as the system dynamics change. When IF1 bandwidth reaches 1.5 Mbps, its it ratio becomes better than IF3, and therefore, it completely replaces IF3.
User Utility: In this example, the effect of changing the parameter α on performance is examined.
To provide further insight about the system dynamics, the instantaneous values of the data transmitted and energy consumed for two different user utility functions are shown (
Impact of the Connection Heterogeneity (λLarge):
Robustness to Estimation Error: In this example, the robustness of the invention to error in the estimation of application characteristics was evaluated. A severe error model was used where the estimator consistently causes a fixed error ratio.
For OPRTA-XPUT, both overestimating the mean stream demand as well as underestimating it decreases the overall system throughput because all the interfaces are balanced and utilized to their maximum. Incurring estimation errors affects this balance, which would lead to the decrease in the overall systems throughput. However, it is observed that underestimating the mean stream demand is more critical because it makes the scheduler push more streams on the low bandwidth interface. On the other hand, for OPRTA-MID we observe that underestimating the mean connection demand renders the scheduler unable to achieve the required throughput, while overestimating it makes the scheduler push more data onto the high bandwidth interfaces achieving 11% more throughput than needed with consuming energy at 114% of the optimal energy consumption. Similar results were obtained when we tested other less severe error models.
Comparison with Baseline Schedulers: In this example, we compare the performance of the OPRTA-XPUT (α=1) with the round robin and weighted round robin schedulers. We fix the bandwidth of IF2 and IF3 as shown in Table 3 and change the bandwidth of IF1 from 0.25 to 2 Mbps.
In terms of the energy consumption per unit data, a similar trend is observed; the round robin scheduler performs the worst as it does not take the interface characteristics into account. The OPRTA-XPUT variant consumes almost the same energy as the weighted round robin with significant gain in throughput.
In conclusion, the invention achieves a user defined throughput with optimal minimum energy-consumption while maintaining the core features of being deployable, as well as providing incremental performance gain as it becomes more adopted over the Internet. The invention can be tuned to achieve different user utility goals. In the throughput maximization mode, it can provide more than 150% enhancement in throughput compared to the current operating systems, with no changes to the current legacy servers. This result comes with no increase in energy consumption. Moreover, the performance gain increases with the increase in percentage of enabled servers, reaching the maximum achievable throughput with changes to as few as 25% of servers. We also showed that in order to achieve the same throughput as current operating systems requires significantly less energy (saving up to 44%).
The present invention has been described in accordance with several examples, which are intended to be illustrative in all aspects rather than restrictive. Thus, the present invention is capable of many variations in detailed implementation, which may be derived from the description contained herein by a person of ordinary skill in the art. The intended scope of the invention is as claimed.
This application claims the benefit of U.S. provisional application Ser. No. 61/850,432, filed Feb. 14, 2013.
Number | Date | Country | |
---|---|---|---|
61850432 | Feb 2013 | US |