|
Adaptive NetworkingWireless 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.
|