ReOrg Overheads and Tradeoffs
three hops may remain between primary relays as shown in Figure 4. An additional step is required to ensure a fully connected graph.
In the second phase, each node identifies relays in its two-hop neighborhood and learns whether these primary relays are con-
nected, either directly or through neighboring relays. A candidate for bridging disconnected relays must be within two hops of each
relay see secondary relays in Figure 4 c. Nodes do not have to store every neighbor’s neighbor list. Instead, each node maintains a
soft-state list of primary relays within two hops and tags each to indicate if it is reachable. This list is included in OrgHello mes-
sages. Because primary relays that are two hops away are discov- ered indirectly, primary relay addresses are tagged with a sequence
number updated by the primary relay upon state changes to ensure asynchronously received data remains fresh and consistent. Upon
receipt of an OrgHello message, a node updates an adjacency list to track connectivity between primary relays in the two-hop neighbor-
hood. Secondary relays bridge disconnected primary relays, using an election technique similar to other backbone selection protocols
[5]. When a non-relay node discovers two or more primary relays in its two-hop neighborhood that are not connected via the back-
bone, it sets a random timer to select itself as a secondary relay. The random timer is inversely proportional to a weighted average of
the number and proximity of disconnected primary relays and the relay metric of the node and will tend to select the best-connected
nodes with the best relay metrics to bridge gaps. The result is a fully connected topology, as shown in three example cases in Figure
4. In the worst case Figure 4 c two nodes must independently elect themselves as secondary relays to connect a pair of primary
relays. ReOrg does not guarantee election of a minimum number of secondary relays, since nodes are only aware of their two-hop
neighborhoods. However, because each node only tracks its local neighborhood, storage and communication complexity are low,
allowing implementation on resource constrained nodes.
As relay metrics change e.g., due to greater energy consumption by relays, nodes dynamically update the backbone by changing relay
selections using the mechanisms described above, thus spreading the burden of routing over time. When a relay becomes a non-relay,
it should inform the routing layer that routes must be repaired, but it may continue to forward data messages for a short time.