[ Software Research Group ]

[Home] [Projects] [Members] [Publications] [Links] [Documents] [Demos] [Videos]

 

Adaptive Networking

Wireless connectivity is vital to ubiquitous computing to support mobile, untethered, and easy to deploy computing. Gaia is built on an adaptive communication substrate that enables seamless communication for active spaces, incorporating wired and wireless connectivity.  Connectivity for active spaces is governed by the communication technology on specific devices and the coverage area of that technology.  Many devices are normally built with multiple communication technologies and the capacity for expansion.  Laptops commonly come with built in infrared and with multiple PCMIA slots, allowing for multiple communication cards.  With the growing demand for mobility support, coverage areas for wireless connectivity are growing and overlapping.  Due to different administrative authorities and different underlying link layer technologies, the current infrastructures only support coordination and cooperation between homogenous support stations (“horizontal handoffs”).  In order to support better handoffs, communication quality and cost optimization, the mobile node’s operating system can coordinate the simultaneous use of multiple diverse communication channels, providing seamless connectivity as the mobile node migrates between coverage areas (“vertical handoffs”).  If the mobile node maintains multiple communication channels, the application can be guided as to which channels is currently the most appropriate .  Such support is limited to the use of one communication channel per application data stream.  The adaptive communication substrate in Gaia exposes the abstraction of a communication channel to the upper layer, namely the object bus.  This abstraction transparently supports the aggregation of multiple communication channels, enabling the seamless use of multiple channels for multiple and individual data streams. 

Successful techniques for the use of multiple communication channels must have an understanding of the effect of such use on the mobile node’s performance and available resources.  While adding communication channels certainly increases available bandwidth, it may also increase the node’s energy consumption.  Furthermore, the use of this extra bandwidth may have unexpected effects on the transmission of the applications data.  For example, the transmission of rate-base multimedia traffic may incur longer delays, due to the introduction of more bandwidth on a channel with a longer propagation delay.  The goal of this research is to provide intelligent support for the use of multiple communication channels based on knowledge of the needs of the application, the communication resources available from the channels and the energy resources available at the node.

The adaptive communication substrate has three major components: the resource manager, the protocol suite, and the upper layer interface.  The resource manager is responsible for discovering and monitoring available communication channels.  For channel discovery, the resource manager must determine when and if it is necessary to search for new channels.  These decisions are based on information about the current usage patterns of the application and current energy levels of the mobile node.  Usage patterns can be gathered from statistical monitoring of the application data stream or specified directly by the application.  Channel discovery algorithms must balance the tradeoff between timely discovery of communication channels and the amount of resources used to find such channels.

Traditional protocols used over multiple communication channels may not be able to efficiently use the bandwidth from all channels.  For example, packets send over different channels will often arrive in a different order than they were sent.  Although TCP can tolerate some messages arriving out of order, a protocol designed for a high degree of out-of-order packets will increase performance.  Additionally, a protocol that knows that there are multiple communication channels will be able to perform better resource estimations for each channel.  In order to efficiently support the use of multiple channels, we propose the design and implementation a suite of transport level protocols to support different classes of applications.

The upper layer interface provides a channel for exchanging resource information between the framework and the application or operating system.  By providing information about resource availability, the application can adapt its configuration to the current availability.  We specifically focus on bandwidth and energy.  We will define an interface that allows the framework to inform the application of its current options.  This will include information about the bandwidth and delay parameters for available channels and the energy consumption associated with the use of each channel.  The application can use this information to determine what quality of data to transmit based on the effect of the transmission of battery lifetime.  An example of the parameters of such an interface would include bandwidth, delay, and energy characteristics for various combinations of the available communication channels.  By aggregating the information before it is passed up to the application, the resource manager can hide specifics about the number and characteristics of individual channels.

In order to provide transparent lower layer connectivity and location management for mobility, our communication substrate integrates network-level location management techniques from MobileIP and the newly proposed micro-mobility protocols.  It has been suggested that the paradigm of locating a host is too low-level, and that what needs to be located is the actual person, or their intelligent proxy.  The introduction of multiple communication channels changes the paradigm for mobile communications, defining communication with any of the interfaces on a device to be successful communication.  Successful mobility management must provide the ability to find the device wherever it is currently connected to the Internet.  The challenge lies in expanding the current support for devices with a single interface to include multiple interfaces.