Most network protocols are uni-modal: they employ a single set of algorithms that allows them to cope well only within a narrow range of operating conditions. This rigid design renders these protocols inefficient in the face of widely varying operating environments or in conditions different from the ones for which they are optimized. Such uni-modal protocols have great difficulty in the mobile computing world where the operating conditions, including number of nodes, computational capabilities and rate of mobility, are not fixed. Consider, for example, routing in a network of ad-hoc nodes. Solutions like DSDV work well when the number of nodes is small. Unfortunately, such schemes scale poorly to larger population sizes. In such situations, more scalable algorithms that impose a structure on the network of ad-hoc nodes, in a manner similar to routing protocols in the Internet, provides better results. However, these scalable algorithms tend to incur high overheads in situations that ...