Failure, Disconnection and Partition Detection in Mobile Environment

Denis Conan, Pierre Sens, Luciana Arantes, Mathieu Bouillaguet
2008 2008 Seventh IEEE International Symposium on Network Computing and Applications  
In mobile environment, nodes can move around and voluntarily leave or join the network. Furthermore, they can crash or be disconnected from the network due to the absence of network signals. Therefore, failure, disconnection and mobility may create partitions in wireless networks which should be detected for fault and disconnection tolerance reasons. We present in this article an architecture of local and distributed detectors for mobile networks that detect failures, disconnections, and
more » ... ections, and partitions. It is basically composed of three unreliable detectors: a heartbeat failure detector, a vector-based disconnection detector, and an eventually perfect partition detector. Introduction Recent advancements in wireless data networking and portable information appliances have given rise to the concept of mobile computing. Users can access information and services irrespective of their movement and physical location. However, such an environment is extremely dynamic: Nodes can voluntarily disconnect themselves or move around; absence of wireless network signals can disconnect nodes from the network; nodes can fail and messages can be lost. Consequently, failure, disconnection, or mobility may cause a node or several of them to detach from the rest of the network, creating one or more network partitions. Another particularity of mobile environment is the fact that links are not bidirectional because, in practice, the two processes cannot rely on the same physical and logical resources in both directions. For argument's sake, small devices like PDAs consume more power energy for emitting than for upon initialisation do 2 nghbrs ← ∅ {neighbourhood at p} 3 HB[1..|Π|] ← {0, ..., 0} {heartbeat vector at p} 4 mreachable[1..|Π|] ← {∅, ..., ∅} {processes reachable through neighbours from p} 5 paths ← ∅ {set of paths received in heartbeats during last period of time} 6 upon local_receive(BL,nghset) do 7 for all q ∈ nghbrs \ nghset do mreachable[q] ← ∅ 8 for all q ∈ nghset \ nghbrs do mreachable[q] ← {q} 9 nghbrs ← nghset 10 periodically do 11 HB[p] ← HB[p] + 1 12 paths ← paths ∪ {{p}} 13 for all path ∈ paths : (∃r ∈ path : r appears more than twice in path) do paths ← paths \ path 14 for all q ∈ nghbrs do send(q, HBFD, paths ) 15 paths ← ∅ 16 local_send(EPPD, HBFD, HB, mreachable ) 17 upon receive(q, HBFD, pathsq ) do 18 for all path ∈ pathsq do 19 for all r ∈ Π : r appears after p in path do HB[r] ← HB[r] + 1 20 if ∃r ∈ Π : r appears right next to p in path then 21 for all s ∈ Π : s appears after r in path do mreachable[r] ← mreachable[r] ∪ {s} 22
doi:10.1109/nca.2008.18 dblp:conf/nca/ConanSAB08 fatcat:iekv2pwepzapvpfid3ididg6aq