Communication Topics Jason Hill – jhill@cs.berkeley.edu http://www.cs.berkeley.edu/~jhill/cs294-8/MiniRetreat.ppt
High Level Communication Goals Support low power network devices Give intermittently connected devices the illusion and appearance of continuous IP connectivity Make scalability independent of end device Allow application to manage availability/consistency tradeoffs Mask device mobility from services & applications Provide application interface to low level network information (location)
How? Push as much of the complexity as possible into the infrastructure Assume compute cycles and network bandwidth are free once you get to the wired world
Quick look at existing wireless systems GSM Mobitex CDPD
GSM Overview…. Mobility achieved through the use of the Home Location Register (HLR) and the Visitor Location Register (VLR).
Mobitex Architecture Used by Palm VII Packet Switched Guaranteed message delivery (Message Queues) http://www.ericsson.se/wireless
CDPD – “Wireless IP” Uses Analog Cellular System 19.2 kbps data w/ 128 bit encryption Sends small data packets over unused voice channels “Mobile data intermediate systems” route packets Fixed “address”
Possible Architecture Traditional Clients/Services IP Infrastructure Based Services Device Proxies Delivery Q’s Base Stations Portable Devices
Device Properties Uniquely identifiable Bootstrap to nearest Access Point Not directly addressable AP’s can provide them temporary names (proximity based naming) Must phone home to inform proxy of temp. name Special client of proxy push/pull data to/from proxy
Access Points/Base Station Properties Permanently Connected Globally Addressable via IP Provides route to “local” devices Queues Data for recently seen devices Informs device proxies of “local” devices that it is in communication with
Proxy Service Properties Easy to find (immobile) Always available Has approximation of device state What is the consistency policy? Locatable by both devices and services Handles all requests to and from mobile devices – provides scalability Can learn temporary route to portable devices
Optimizations…. Ninja style code migration allows layers to collapse as an optimization Higher power devices can take on additional functionality Complex base stations can perform protocol translations for clients Device communication can avoid going to proxies
Optimization for data flowing from the device… Forward by any base station that hears clear transmission – minimize retransmissions at expense of wired bandwidth Duplicates removed by proxy If all 5 clients try to transmit, 4 would get through
Data flowing to the device… Base stations uses wired network to orchestrate communication Base stations learn which other base stations they conflict with for a given client Primary base station transmits to client but neighboring base stations also queue data in case client moves into their area
Last link communication options One option is use RF Monolithics – Low Power/Cost Device to AP protocol should not determine lowest power consumption of devices (i.e. Require device to be active minimum amount of time.) Are there any standard protocols we could use?
Issues… What is the internal structure of a device proxy? How inter-related are the designs for the proxies, mobility support, and last link communication protocols? Could a device proxy be built on top of CDMA/Mobitex providing continuous IP connectivity? Naming & Name Discovery Both proxy names and temp. names
Is this a big naming problem? Resolution and assignment of proximity based names Querying of proximity based name space?
Strengths… Complex Device drivers are pushed into the infrastructure where they are easy to write, debug, & upgrade Devices can be composed by the infrastructure (Speaker + Camera + Display Video Conference Device) Allow small devices to reliably service many clients (device proxies/surrogates) Heterogeneity can be masked by software adapters
Infrastructure Based Communication Protocols Support mobility in a transparent way Provide tiny devices the illusion of IP connectivity Make brief periods of disconnection invisible to the “real world” Buffer and Cache information for clients Attempt to optimize delivery overhead