PalmRouter:

networking sporadically connected devices

Andras Ferencz   Robert Szewczyk

ferencz@cs.berkeley.edu  szewczyk@cs.berkeley.edu


Most modern communication systems assume that all parties that wish to participate are physically connected by a network. If a link does not exist, direct communication is not possible. As personal computers are often disconnected from the network, communication programs have attempted to provide an "offline mode" where data from the network is cached when the link is active and presented to the user after disconnection. However, this mechanism requires that the user be directly connected to the network periodically. While this assumption is often valid for personal computers and laptops, it is less so for PDA's, which often are not equipped with a modem.

These devices, such as the PalmPilot, may communicate more often with one another or with a single personal computer than with an entire network. We can model this system as a set of nodes connected by a dense but very faulty network in which most links are down most of the time. In this case, two parties who wish to communicate may never be in direct contact but rather need to exchange messages through one or more intermediaries who must store the messages until an appropriate link appears. Currently, Internet e-mail is based on this paradigm.

We wish to create a communication infrastructure for the PalmPilot that is based on peer-to-peer message passing. Messages from one user to another travel link by link as the links appear, until the message eventually reaches its destination. Although we cannot guarantee delivery, since a virtual route may never exist, we can guarantee that a message is never lost until it's delivery has been acknowledged. In contrast to Internet e-mail, which often has a fixed path along which mail is sent, we do not know how much progress we have made with the delivery of a message, as we never know for sure which links will be created in the future.


Design of the system:

Implementation:

(not necessarily in this order)
  • Peer-to-peer communication protocols (one link) (on top of TCP ?? IP??) (a peer may either be a PDA or a larger machine - conceptually they should be similar, apart from the implementation and possibly some additional responsibilities that may be assigned to the larger (networked) machines)
  • The distributed algorithms that maintain collective state and consistency
  • Message management on each machine (based on 2)
  • An API for programers to write applications on top of this system
  • A UI for the user to manage memory usage and connection bandwidth
  • Updates:

    PalmRouter is now available in both source and binary form. Also available PalmRouter writeup in PostScript form. HTML coming soon.

    Links:

    to places we find useful for developing such a project.



    Last Modified: 10/9/98 by ferencz@cs.berkeley.edu