140 likes | 294 Vues
This recitation explores the PIF (Push-Interactive Flooding) algorithm and its variant, PIFD, focusing on message propagation among nodes in a distributed system. The initial algorithm sets parameters for nodes and describes message sending protocols. We analyze claims related to message delivery, algorithm completion, and knowledge of termination among nodes. Central to this discussion is the behavior of nodes and the possibility of message exchanges based on system states. Through theoretical examples, we aim to clarify these concepts in distributed algorithms.
E N D
Introduction to computer networking Distributed Algorithms Class Recitation
Ex. 1 - PIF Revisited • Given the PIF algorithm: Init: l N(l)0; m0; p0 Upon receipt of MSGs(l) N(l)1 if m=0 then p1 send MSGsto all lN-{l} m1 if l’ holds N(l’)=1 then send MSGs to p m0 l’ N(l’)0 • Is it possible that a node i will send messages to all its neighbors except its parent, p, before node p has? • Is it possible for node i to send a message to its parent p before node j has finished sending messages to its neighbors?
Ex. 2 • Given the PIFD algorithm, which is similar to the PIF algorithm, albeit with a second (other than the source) unique node D which behaves differently from the other nodes. For each of the following claims, determine whether the claim is true or false:
The Claims • All the nodes will receive the message after a finite time period and all will have m=1 eventually. • The algorithm ends. i.e. there is a finite time after which no more messages are transferred. • The source node knows when the algorithm has finished • When the source node finishes the algorithm, the algorithm has ended.
PIFD Algorithm For Node D: Init: Init: l N(l)0;m0; p0 Upon receipt of MSGs(l) N(l)1 if m=0 then p1 send MSGsto all neighbours m1
The Claims Revisited • All the nodes will receive the message after a finite time period and all will have m=1 eventually. • The algorithm ends. i.e. there is a finite time after which no more messages are transferred. • The source node knows when the algorithm has finished • When the source node finishes the algorithm, the algorithm has ended.