350 likes | 433 Views
14th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS 2012) Toronto, Canada (1-4 October 2012). Self-Stabilizing End-to-End Communication in Bounded Capacity, Omitting, Duplicating and non-FIFO Dynamic Networks.
E N D
14th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS 2012) Toronto, Canada (1-4 October 2012) Self-Stabilizing End-to-End CommunicationinBounded Capacity, Omitting, Duplicating and non-FIFO Dynamic Networks Shlomi Dolev1, Ariel Hanemann1, Elad M. Schiller2, and Shantanu Sharma1 1 Department of Computer Science, Ben-Gurion University of the Negev, Israel 2 Department of Computer Science and Engineering, Chalmers University of Technology, Sweden
Outline • Introduction • Problem Specification • The Algorithm • Key Features • Conclusion 2 of 27
Introduction • End-to-end communication is an essential task in communicating systems • Intromission of errors in message transmission is common • Dynamic networks have a greater chance of having errors, like, omission, duplication, reordering, than conventional networks • Network has known capacityconstant, which is an upper bound on number of packets in the network Omission of packets Reorder Duplication by the sender capacity of the channel Duplication by the channel capacity of the “channel” R R R R S S S S S R R S capacity packets
Introduction • Self-Stabilization • A self-stabilizing system is a system that can automatically recover following the occurrence of transient faults • e.g.-token based mutual exclusion algorithm 4 of 27
Outline • Introduction • Problem Specification • The Algorithm • Key Features • Conclusion
Problem Specification • Design an algorithm for a bounded capacity non-FIFO network which • Guarantee exactly one copy of packet delivery • Tolerate corruption, omission, duplication of messagesby the “channel” and the sender • Deliver messages in the same order they were sent • Applied to topological independent network • Employed toany starting configuration 5 of 27
Problem Specification • Why new end-to-end communication protocol? • TCP is not self-stabilizing 6 of 27
Outline • Introduction • Problem Specification • The Algorithm • Key Features • Conclusion
The Algorithm-Motivation • Dolev et al* has presented self-stabilizing data link algorithm for reliable FIFO packet delivery over bounded non-FIFO andnon-duplicating channel • The sender sends a message infinitely often until it gets ‘3capacity + 2‘ identical acknowledgements • The receiver delivers a message when it gets identical‘capacity + 1‘ messages * Shlomi Dolev, Swan Dubois, Maria Potop-Butucaru, and Sébastien Tixeuil. Stabilizing data-link over non-fifo channels with optimal fault-resilience. Inf. Process. Lett., 111(18):912–920, 2011. 7 of 27
The Algorithm-Motivation 1 2 Last delivered alternating bit last_delivered = 1 Last delivered alternating bit last_delivered = 0 capacity acks for message in the channel from sender to receiver capacity+1 acks for the message sent by sender capacityacks for message in the channel from receiver to sender 1ack for bad initialization m 1st message Alternating bit ab = 0 ack(m, 0) ack(m, 0) ack(m, 0) ack(m, 0) ack(m, 0) ack(m, 0) m 2ed message capacity messages S R 3rd message m capacity m, 0 m, 0 m, 0 m, 0 m, 0 capacity messages capacity+1 But, the sender sends message until it gets 3capacity+2 acknowledgements. However, the receiver acknowledges all incoming message but do not store (due to same last_delivered=0) Now, the sender fetches new message, changes alternating bit to 1 and repeat the whole process Now, the receiver delivers the message m only once and changes last_delivered = 0 m capacity+1 message 3capacity+1 Messages 3capacity+2 Acknowledgments The channel may contain capacity (or zero) messages in the channel from receiver to sender Hence, the sender sends capacity +1 messages to the receiver. The channel may contain capacity (or zero) messages in the channel from sender to receiver Hence, the sender waits 3capacity+2 acknowledgement messages 8 of 27
The Algorithm-Motivation • Disadvantages Dolev et al*: • Explicit synchronization of the sender and the receiver • One packet delivery requires lots of packet flow overburden network • Does not consider duplication by the channel * Shlomi Dolev, Swan Dubois, Maria Potop-Butucaru, and Sébastien Tixeuil. Stabilizing data-link over non-fifo channels with optimal fault-resilience. Inf. Process. Lett., 111(18):912–920, 2011. 9 of 27
S2E2C Algorithm • S2E2C (Self-Stabilizing End-to-End Communication) Algorithm • Overcomes all the cons of Dolev et al (presented previously) • Sendsn messages (packets) infinitely often instead of one message at a time • Consider the duplication by the channel • Message to packet transformation of 27 10
S2E2C Algorithm Packet_set 1,0,m • With only one message 1,1,m 1,2,m (2,2,m) (1,2,m) 2,2,d3 Alternating Index AltIndexs= 1 LastDeliveredIndexr = 0 (1,3,m) (2,3,m) 1,3,m 2,3,m S R (1, 1, m) (1, 0, m) (2, 2, m) (2, 3, m) (1, 0, m) (0, 2, m) (1, capacity, m) (1, capacity+1, m) (1, 3,m) (1, 2, m) (1, 0, m) (1, 1, m) (1, capacity, m) (1, 1, m) (1, n-1, m) Correct messages m 1,capacity,m 1,capacity+1,m Data Label Capacity Alternating Index 1,n-1,m Now, the receiver selects majority of the message s and deliver it After the delivery of the correct messages, the receiver acknowledges the sender. Transmission of messages from the sender to the receiver. of 27 11
The Algorithm-The Idea • Distinct Labels with each outgoing packets • prevent duplication and guarantee in-order delivery of messages as they were sent • Alternating index0, 1 or 2 • avoids explicit synchronization between the sender and the receiver • The receiver accumulates packets of ‘n‘ distinct labels with identical alternating index before the delivery of messages • The sender waits for capacity+1 distinct labels acknowledgements before the next fetch of 27 12
S2E2C Algorithm Packet_set 1,0,d1 1,1,d2 ACK_set 0 1,2,d3 (2,2,d3) (1,2,d3) 2,2,d3 Alternating Index AltIndexs= 1 Correct messages Messages with errors LastDeliveredIndexr = 0 (1,3,d4) (2,3,d4) 1,3,d4 2,3,d4 1 1st message 1st message S R (1, 0, d1) (2, 2, d3) (1, 1, d2) (0, 2, d3) (2, 3, d4) (1, 0, d1) (1, capacity+1, dc+1) (1, capacity, dc) (1, 2, d3) (1, 3, d4) (1, 1, d2) (1, capacity, dc) (1, 0, d1) (1, 1, d2) (1, n-1, dn-1) 2edmessage 2edmessage capacity, 1 1 , 1 0, 1 3rd message 3rd message 1,capacity,dc capacity 1,capacity+1,dc+1 Data Label Capacity Alternating Index plth message plth message 1,n-1,dn-1 Now, the receiver selects n distinct labels which have identical alternating index except LastDeliveredIndex. After the delivery of the correct messages, the receiver acknowledges the sender. Transmission of acknowledgements from the receiver to the sender. Transmission of messages from the sender to the receiver. of 27 13
The Algorithm at Sender ml 1st message The sender fetches pl messages of mllength 2ed message 3rd message plth message of 27 14
The Algorithm at Sender ml n > ml lbl 1 2 3 ml n n-1 AltIndex ai ai ai ai ai ai 1st message Consider all the bits of each pl messages 2ed message 3rd message Error Correcting Encoding plth message 3rd bit 2ed bit mlth bit 1st bit 1st Packet 3rd Packet nth Pacet The sender appends redundant bits to each pl message which results in message length n (n>ml) Error Correcting Bits 2ed Packet of 27 15
The Algorithm at Sender • The transmitting packet has the form of ai, lbl, dat ai is alternating index lbl is labels dat is data which is formed by ith bit of all messages • The sender waits for capacity + 1 distinct label acknowledgements before next fetch • The sender changes its alternating index x to x+1 mod 3, at every fetch of 27 16
The Algorithm at Receiver • The receiver collects packets of ndistinct labels which have alternating index different from last delivered index • capacity distinct labels may be from the channel • n – capacity distinct label packets must be from the sender • The receiver forms messages form all incoming packets ith message is formed by the ith bit of every packet 1 2 3 ml n n-1 ai ai ai ai ai ai
The Algorithm at Receiver • After delivery of the message • Resets data structure • changes LastDeliveredIndex to the value of delivered message alternating index • The receiver acknowledges the sender with ’capacity + 1’ distinct labels and the value of LastDeliveredIndex of 27 18
Outline • Introduction • Problem Specification • The Algorithm • Key Features • Conclusion
Key Features • Handles capacity corruptions in the messages • Does one time delivery of message with handling of omission and reorder, i.e., simulate reliable FIFO message delivery over the non-FIFO network • No explicit synchronization between the sender and the receiver • No need of denotative reset operation at the sender and at the receiver • Topological independence of 27 19
Key Features • Handles capacity corruptions in the messages • The intromission of error correcting bits is capable to prevent capacity errors or loss of capacity packets • capacity corruption is equivalent to loss of distinct capacity labels packets 1 2 3 ml n n-1 ai ai ai ai ai ai of 27 20
Key Features • Handles capacity corruptions in the messages • Does one time delivery of message with handling of omission and reorder, i.e., simulate reliable FIFO message delivery over the non-FIFO network • No explicit synchronization between the sender and the receiver • No need of denotative reset operation at the sender and at the receiver • Topological independence
Key Features • Does one time delivery of message with handling of omission and reorder • The omission of packets is prevented by error correcting bits • The duplication of messages is done by either channel or the sender • The channel can duplicate up to capacity packets • The sender duplicates each packets infinity often • Distinct labels ensures one time order delivery of all the messages of 27 21
Key Features • Handles capacity corruptions in the messages • Does one time delivery of message with handling of omission and reorder, i.e., simulate reliable FIFO message delivery over the non-FIFO network • No explicit synchronization between the sender and the receiver • No need of denotative reset operation at the sender and at the receiver • Topological independence
Key Features • No explicit synchronization between the sender and the receiver • Synchronization of alternating index is necessary due to arbitrary initialization • If the sender and the receiver are having same alternating index, then the receiverdoes not deliverincoming messages. But, it acknowledges the sender by capacity + 1 distinct labels • On reception of capacity + 1 distinct labels, the sender changes alternating index and fetches new messages of 27 22
Key Features • No explicit synchronization between the sender and the receiver • Why alternating bit 0 and 1 is not useful in implicit synchronization? Packet_set (1,n-1,*) ACK_set 1,0,* 0,0,* 0,1 0,0 Alternating Index AltIndexs= 0 Alternating Index AltIndexs= 1 capacity,0 0,1,* 1,1,* LastDeliveredIndexr = 0 LastDeliveredIndexr = 1 1,1 1,0 S R 1,2,* 0,2,* (0, 0, *) (0, 2, *) (0, n-2, *) 0,1 Capacity-1,1 1,1 (0, 1, *) capacity-1,1 capacity-1,0 This situation is same as initial starting configuration, where the sender and the receiver are having alternting bit 0. Now, we are having alternating bit 1 at both the end capacity ,0 1,n -2,* 0,n -2,* 23 Such situation is successfully handled by alternating index 0, 1, 2 The receiver acknowledges the sender Now, the sender resets and changes AltIndexs The sender gets acknowledgement from the channel Now, the sender sends packets with AltIndexs 0 The receiver changes LastDeliveredIndexr to 1 and resets Packet_set of 27 1,n-1,*
Key Features • No explicit synchronization between the sender and the receiver • Use of alternating index 0, 1 and 2 Packet_set (1,n-1,*) (0,n-1,*) ACK_set 0,0,* 1,0,* 0,1 Alternating Index AltIndexs= 2 Alternating Index AltIndexs= 1 0, 1 Capacity, 1 1,1,* 0,1,* LastDeliveredIndexr = 1 LastDeliveredIndexr = 0 1,1 S R 0,2,* 1,2,* (1, 0, *) (1, n-2, *) (1, 2, *) (1, 1, *) capacity-1,1 capacity ,1 1,n -2,* 0,n -2,* 24 Now, the sender resets and changes AltIndexto 2 Now, the sender and the receiver are synchronized The receiver changesLastDeliveredIndexr to 1 and resets Packet_set Now, the sender sends packets with AltIndex 1 The sender gets acknowedgement from the channel The receiver gets packet form the channel The receiver changes LastDeliveredIndexr to 0 and resets Packet_set of 27 1,n-1,* 0,n-1,*
Key Features • Handles capacity corruptions in the messages • Does one time delivery of message with handling of omission and reorder, i.e., simulate reliable FIFO message delivery over the non-FIFO network • No explicit synchronization between the sender and the receiver • No need of denotative reset operation at the sender and at the receiver • Topological independence
Key Features • No need of denotative reset operation at the sender and at the receiver • In arbitrary initialization, the sender and the receiver may have some garbage in its data structure then both do reset • The reset process for garbage items is only required at arbitrary stages of 27 25
Key Features • Handles capacity corruptions in the messages • Does one time delivery of message with handling of omission and reorder, i.e., simulate reliable FIFO message delivery over the non-FIFO network • No explicit synchronization between the sender and the receiver • No need of denotative reset operation at the sender and at the receiver • Topological independence 26 of 27
Outline • Introduction • Problem Specification • The Algorithm • Key Features • Conclusion
Conclusion • A self-stabilizing end-to-end communication algorithm • Topological independent, fits for dynamic networks • Implicit sender/receiver synchronization • Simulate perfect FIFO behavior – in-order delivery, avoid omission, duplication by the sender, duplication by the channel - over non-FIFO networks Interested audience may refer the paper with the same title for details and proofs. 27 of 27
Presentation is available at http://www.cs.bgu.ac.il/~sharmas/publication.html Shlomi Dolev1, Ariel Hanemann1, Elad M. Schiller2, and Shantanu Sharma1 1 Department of Computer Science, Ben-Gurion University of the Negev, Israel {dolev,hanemann,sharmas}@cs.bgu.ac.il 2 Department of Computer Science and Engineering, Chalmers University of Technology, Sweden elad@chalmers.se