The two generals problem

This problem in an example of a distributed system where the processes are reliable, but the network is not. The problem is as follows:

Two divisions of an army are headed by generals A1 and A2. They both want to attack another army led by general C. A1 and A2 can win against C, but only if they both attack together. A1 and A2 are physically separated and can communicate using a messengerhowever this channel is unreliable! The messenger can be caught and killed, and so the message may not have made it to the other general! Note not just the message, but the acknowledgement of the message is also needed for generals A1 and A2 to be fully certain:

(Image: Wikipedia)

This problem cannot be reliably solved. Of course it has a solution: one message and an acknowledgement is enough for the armies to succeed. But there is no way to guarantee that scenario over an unreliable network.

The following sections describe ways in which processes (a substitute for the generals, here) can work on getting consensus over unreliable networks.

This problem can be further complicated if we assume that one of the generals can behave in an unethical manner. This is called the Byzantine Army problem. For more on this, read Leslie Lamport's paper: http://research.microsoft.com/en-us/um/people/lamport/pubs/byz.pdf.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset