8

Thread have produced a document about their protocol, Thread Stack Fundamentals, which I've been reading to try and understand more about how Thread works.

On page 5, the document explains that despite having no single point of failure, a Leader is needed to make decisions for the network:

A Router or Border Router can assume a Leader role for certain functions in the Thread Network. This Leader is required to make decisions within the network. For example, the Leader assigns Router addresses and allows new Router requests. The Leader role is elected and if the Leader fails, another Router or Border Router assumes the Leader role. It is this autonomous operation that ensures there is no single point of failure.

How is the Leader elected by the devices in the Thread network? Is there a set of criteria that are evaluated when the devices 'vote' for or select the Leader?

6

Great question! I found an article from radio-electronics.com which really helps explain in some more detail how Thread works. Basically, the first eligible router node self-designates as the leader.

In other words, when a node is added, if it is unable to find a leader in the system, it will automatically designate itself as the leader. Otherwise, it will fall into line under the existing leader node. I quote from the article referenced above:

Router Eligible nodes become routers if they are needed to support the mesh. The first Router Eligible node to form the network will be autonomously designated a router as well as the Leader. A Leader performs additional network management tasks and makes decisions on behalf of the network. Other Router Eligible nodes in the network can assume the role of a Leader, but there is only one Leader per network at a given time.

In other words, it's a one man machine election. Not very democratic, but in computers, it works.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.