NETWORK EMBEDDED SYSTEMS
Relia eliable ble Broadc
- adcas
Relia eliable ble Broadc oadcas ast t (et (et al.) al.) Hoa - - PowerPoint PPT Presentation
N ETWORK E MBEDDED S YSTEMS Relia eliable ble Broadc oadcas ast t (et (et al.) al.) Hoa Do O VERVIEW 19.04.2007 Motivation and Definition Best Effort Broadcast Regular Reliable Broadcast Lazy Reliable Broadcast Eager
Motivation and Definition Best Effort Broadcast Regular Reliable Broadcast
Lazy Reliable Broadcast Eager Reliable Broadcast
19.04.2007
2 / 28
Client-Server Computing Point-to point communication protocols Extremely useful is protocol is reliable
19.04.2007
3 / 28
19.04.2007
4 / 28
Best-effort: delivery among all correct processes if sender does not fail Regular Reliable: all-or-nothing delivery semantics, even if sender fails Uniform Reliable: set of message delivered by fault processes is always
a subset of messages delivered by correct processes
Totally ordered: delivery message follows the same global order Termination: processes either deliver a message or eventually are
aware that they should never deliver the message.
19.04.2007
5 / 28
19.04.2007
6 / 28
Weak form of reliability Process sends a message to all processes
One-shot operation Reliability is in charge of sender Remaining processes do not have to be concerned
No delivery guarantees if sender fails Uses perfect links
19.04.2007
7 / 28
Events: Request:
< bebBroadcast | m >: Used to broadcast message m to all
processes
Indication
< bebDeliver| src, m >: Used to deliver message m broadcast
by process src
Uses: PerfectPointToPointLinks (pp2p)
19.04.2007
8 / 28
upon event < bebBroadcast | m > do forall pi ∏ do trigger < pp2pSend | pi,m >;
trigger < bebDeliver| pi, m >:
19.04.2007
9 / 28
19.04.2007
10 / 28
BEB1. Validity: If pi and pj are correct, then every
BEB2. No duplication: No message is delivered more
BEB3. No creation: No message is delivered unless it
19.04.2007
11 / 28
Correctness:
derived from the properties of the underlying perfect point-to- point links (PL1: Reliable delivery)
Validity
derived from PL1 and the fact that the sender sends the message to every other process in the system
No Duplication
derived from PL2: No duplication
No Creation
derived from PL3: No creation
19.04.2007
12 / 28
19.04.2007
13 / 28
Stronger form of reliability Agreement is ensured even if sender fails Correct processes agree on the set of messages
Sender may fail before being able to transmit the
Uses perfect links Uses perfect failure detector (optional)
19.04.2007
14 / 28
Events: Request:
< rbBroadcast | m >: Used to broadcast message m
Indication
< rbDeliver| src, m >: Used to deliver message m broadcast by
process src
Uses BestEffortBroadcast (beb)
PerfectFailureDetector )
19.04.2007
15 / 28
Lazy Reliable Broadcast Eager Reliable Broadcast
19.04.2007
16 / 28
Uses Best Effort Broadcast to disseminate
Adds some protocol headers to the message
If sender does not crash, message will be delivered
If sender crashes, other process can detect that
Relays only a copy of the message and not the
19.04.2007
17 / 28
Algorithm is said to be lazy in the sense that it
Process detects the crash of the source Process delivers a message and realizes that the
19.04.2007
18 / 28
Implementation of (Lazy) ReliableBroadcast (rb):
upon event < Init > do: delivered := Ø; correct := ∏; forall pi ∏ do from [pi] := Ø; upon event < rbBroadcast | m > do trigger < bebBroadcast | [DATA, self, m] >; upon event < bebDeliver | pi, [DATA, sm, m] > do if ( m deliver ) then deliver := deliver {m}; trigger < rbDeliver | sm,m >; from [pi] := from [pi] {(sm,m )}; if (pi correct) then trigger < bebBroadcast | [DATA, sm, m] >; upon event <crash | pi > do correct := correct \ {pi}; forall (sm,m) from [pi] do trigger <bebBroadcast | [DATA, sm, m] >;
19.04.2007
19 / 28
RB1 = BEB1. Validity: If pi and pj are correct, then every
message broadcast by pi is eventually delivered by pj
RB2 = BEB2. No duplication: No message is delivered more
than once
RB3 = BEB3. No creation: No message is delivered unless it
was broadcast
RB4. Agreement: For any message m, if a correct
19.04.2007
20 / 28
If sender does not crash, the algorithm requires
Otherwise N2 messages and in the worst case
19.04.2007
21 / 28
If accuracy property of the failure detector is not
If completeness property of the failure detector is
19.04.2007
22 / 28
Every process that gets a message relays it
We consider the worst case → sender might have
This relaying phase is exactly what guarantees the
Algorithm assumes fail silent model and does not
19.04.2007
23 / 28
Implementation of (Eager) ReliableBroadcast (rb): upon event < Init > do: delivered := Ø; upon event < rbBroadcast | m > do deliver := deliver {m}; trigger < rbDeliver | self, m >; trigger <bebBroadcast | [DATA, self, m] >; upon event < bebDeliver | pi, [DATA, self, m] > do if m deliver do deliver := deliver {m}; trigger <rbDeliver | sm, m] >; trigger < bebBroadcast | [DATA, sm, m] >;
19.04.2007
24 / 28
RB1 = BEB1. RB2 = BEB2. RB3 = BEB3. RB4: Agreement: For any message m, if a correct process
delivers m, then every correct process delivers m
19.04.2007
25 / 28
19.04.2007
26 / 28
19.04.2007
27 / 28
Reliability in charge if
only ensures delivery
Uses perfect links All-or-nothing semantic Agreement is ensured
Uses perfect failure
Best Effort Broadcast Regular Reliable Broadcast
19.04.2007
28 / 28