Implementing a Reliable Local Broadcast Primitive in Wireless Ad Hoc Networks

Reliable broadcast is an operation of great relevance for distributed applications. Much work in the past has focused on achievability of reliable broadcast in the presence of crashstop or Byzantine failures. More recently, the issue has been addressed in the context of radio networks [1], [2] that are characterized by a shared channel, and where a transmission is heard by all nodes within the sender’s neighborhood. This basic defining feature of the radio network model is what we term as the reliable local broadcast primitive. However, in actuality, wireless networks do not exhibit such perfect and predictable behavior. Factors such as fading, physical obstacles, and interference can lead to a situation where certain nodes in the theoretical neighborhood of a node do not receive the transmitted message. Thus any attempt at building systems for multi-hop wireless networks, based on the radio network model, requires the availability of a reliable local broadcast primitive that can provide guarantees of radio-network-like behavior. We describe a possible implementation of such a reliable local broadcast primitive, that relies on time synchronization to provide probabilistic guarantees. The probability that a node makes an error converges to 0 as the network density increases to infinity. The protocol exploits sender diversity, and hence can also be useful in achieving reliable broadcast when some links exhibit significant continuous periods of down-time (as when a transient obstacle moves in). I. A RELIABLE LOCAL BROADCAST PRIMITIVE Theoretical work on Byzantine fault-tolerant broadcast in wireless ad hoc networks has invoked the radio network model [1], [3], [4] wherein if a node transmits a message it is received by each and every node within a designated neighborhood in its spatial vicinity. This ensures local agreement as follows: when the sender is non-faulty, agreement is trivial, since all non-faulty neighbors of a non-faulty sender will receive the message directly. If the sender is faulty and sends multiple conflicting copies of the message, all non-faulty neighbors will receive all messages in the same order, and can agree on a one (say the first). While this model reflects the characteristics of wireless transmissions in terms of the shared nature of the medium, it fails to capture the unreliability that marks wireless transmissions. The wireless medium can be extremely unreliable, and show highly variable channel quality over time, This research is supported in part by the National Science Foundation. due to various effects such as fading, interference etc. This leads to an error probability that is not merely non-negligible, but can be fairly large. Thus, any attempt at designing reliable broadcast protocols based on theroetical radio network results must begin with an effort to implement a reliable local broadcast primitive. Such a primitive would ensure that if a node transmits a message, all non-faulty nodes in its neighborhood are able to agree on a single value for that message, and if the sender was non-faulty, the agreed-upon value is the one transmitted by the sender. This paper considers the possibility of realizing a probabilistic local broadcast primitive, and describes a simple proof-of-concept approach with which the probability that any given node makes an error diminishes as the network density increases (when a certain fraction of nodes in each neighborhood may exhibit Byzantine faults). However, as density increases, the delay also increases (due to increased load on a channel of fixed capacity). However, we envision that networks of moderate density would be suitable for such an approach, by allowing one to achieve fairly small error probabilities with acceptable delay. II. NETWORK AND COMMUNICATION MODEL The minimum degree of any node v in the network is d, and the minimum number of common neighbors shared by two neighbors u and v is do. Accidental collisions and interference are possible, but deliberate collisions by faulty nodes are not allowed. Address-spoofing is also assumed not to occur, i.e., for each message/packet, the node that put that packet on the air is uniquely and correctly identifiable. If a node transmits a message, the probability that a neighbor successfully receives it is ps. Thus possible errors due to fading, interference etc. are subsumed in the error probability (1− ps). We define a timeout T and a probability pa such that if a packet was put into a node’s outgoing queue at time t, then with probability at least pa, it gets a chance to transmit it by time t + T . The choice of T is such that pa may be large. It may be obtained via loose estimates on network density (and hence contention). All nodes possess a single transceiver and operate on a single channel. They also use a single transmission rate, and all valid messages are of a predetermined (and equal) size. We assume that the minimum time between two successive packet transmissions (transmission time + contention resolution etc.) is tδ. Note that tδ can be no less than the transmission time of a packet. The maximum propagation delay is dprop (note that dprop > 0). Nodes are externally synchronized with bound D < 2 (tδ − dprop max). Such highprecision synchronization may be feasible in the near future with the advent of on-chip atomic clocks [5]. Also observe that given the maximum clock skew D in the network, it is possible to ensure that the condition holds (albeit at the expense of inefficient bandwidth usage) by padding all messages with extra bits to increase the transmission time so that tδ > 2D + dprop, and the required condition holds. This condition ensures that if a node sends out two different messages on the same channel, then the node-local time at which any non-faulty node receives the later message shall always be greater than the node-local time at which any non-faulty node receives the first message. Distinct messages sent by a particular source are distinguished via identifiers, that we shall denote as id. The id is a number in some range [0,MAX ]. Individual nodes choose the sequence of ids for their messages in some privately determined pseudo-random manner (such that ids are re-used only after large intervals of time). Thus, if a node sends two conflicting versions of the same message, it implies that they both have the same id, but different values. Messages are represented as m(src, id,value). We assume that value can take values 0 or 1. If a message m is repeated by a neighbor, it is represented as REPEAT (m,orig src, timestamp).