DNIS: a middleware for dynamic multiple network interfaces scheduling

Wireless Intelligent Networks Center, Nile University, Smart Village, Egypt Many of today's mobile devices are equipped with multiple network interfaces that can be used to connect to the Internet, including Ethernet, WiFi, 3G, and Bluetooth. However, current operating systems, such as Windows and Linux, typically choose only one of the available network interfaces and assign all the traffic to it, even if more than one is connected to the Internet. This results in an obvious under utilization of the available bandwidth. Different bandwidth aggregation techniques suggested altering different layers of the TCP/IP stack which requires applying modifications on the client's stack and/or the cloud, which cannot be widely deployed easily. In this work, we present DNIS, a networking middleware that achieves bandwidth aggregation using per-TCP connection scheduling on different interfaces in a way that is transparent to both the user and the applications. DNIS is composed of two main components: (1) a parameter estimator that estimates the applications' characteristics and requirements as well as interfaces' properties; (2) a scheduler that uses the estimated parameters to assign different TCP connections to network interfaces. We present an implementation for DNIS for the Windows OS and show its performance for different scheduling algorithms. Our initial results show significant enhancement of the overall device's throughput, up to 54%, increasing resource utilization and enhancing the user's experience.