Motivation Architecture • Many of today’s mobile devices are equipped with multiple network interfaces that can be used to connect to the Internet. • Our DNIS middleware is divided into two subtasks: Process Estimator • Estimation the applications’ needs and characteristics, as well as the properties of the network interfaces. • Scheduling different connections to different network interfaces based on the estimated parameters. • Ethernet, Wi-Fi, 3G and Bluetooth. • Current OSs 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. Scheduler Interface Estimator Conventional Algorithms o Random selection o Round Robin • It selects one of the available interfaces for the incoming connection at random. o Selection using GetBestInterface() • It selects one of the available interfaces for the incoming connection in a rotating basis. • It selects one of the available interfaces that has the best route to the specified destination IP using the Windows API GetBestInterface() method. DNIS Algorithms o Profile-based • It constructs profiles for both the incoming connection and the interfaces, then it selects the interface that has the best fit profile to the connection’s one. o Max. Throughput At time t = 0 At time t = 4 IF1(100KB/s) IF1(100KB/s) P1(1000KB) • It selects one of the available interfaces that maximize the overall throughput regardless of its stability. P1(1000KB) IF2(60KB/s) P2(180KB) IF2(60KB/s) 0 2 4 6 8 10 P3(180KB) 4 6 8 10 At time t = 7 At time t = 2 IF1(100KB/s) IF1(100KB/s) P1(1000KB) P2(180KB) P1(1000KB) P2(180KB) IF2(60KB/s) P3(180KB) IF2(60KB/s) P4(1000KB) 2 4 6 8 10 7 9 11 13 15 17 19 21 Implementation Network Application (e.g. Firefox) • DNIS uses the same concepts used by firewalls and network proxies to control the network flow. • This service is called LSP stands for “Layered Service Provider”. Winsock Winsock 2 API • Each provider has a different LSP chain (i.e., LSP chain for TCP, UDP, etc.) WS2_32.DLL • One of its components is a service that is used to intercept socket-based connection requests and assign proper network interfaces to them. SPI DNIS Base Protocol (e.g. TCP/IP) Test LSP nonifs.dll Layered provider TCP/IP v4 wspm.dll Base provider TCP/IP v4 wspm.dll Base provider Provider chain ID = 0xAAAA Provider chain ID = 0x1111 Results λbig = 5, λmedium = 5 λbig = 5, λmedium = 10 14 16 12 12 14 10 12 10 Wi-Fi 8 Ethernet 6 Round-Robin 4 Random 2 Max. Throughput 0 0 5 10 λsmall Wi-Fi 8 Ethernet 6 Round-Robin 4 Random 2 Max. Throughput 0 0 5 10 λsmall Goodput (Mbps) 14 Goodput (Mbps) Goodput (Mbps) λbig = 5, λmedium = 0 10 Wi-Fi 8 Ethernet 6 Round-Robin 4 Random Max. Throughput 2 0 Note: λX represents the average number of process X per minute. 0 5 10 λsmall