|View source on GitHub|
In a Thread network, nodes are split into two forwarding roles:
A Router is a node that:
- forwards packets for network devices
- provides secure commissioning services for devices trying to join the network
- keeps its transceiver enabled at all times
An End Device (ED) is a node that:
- communicates primarily with a single Router
- does not forward packets for other network devices
- can disable its transceiver to reduce power
Furthermore, nodes comprise a number of types.
Full Thread Device
A Full Thread Device (FTD) always has its radio on, subscribes to the all-routers multicast address, and maintains IPv6 address mappings. There are three types of FTDs:
- Router Eligible End Device (REED) — can be promoted to a Router
- Full End Device (FED) — cannot be promoted to a Router
An FTD can operate as a Router (Parent) or an End Device (Child).
Minimal Thread Device
A Minimal Thread Device does not subscribe to the all-routers multicast address and forwards all messages to its Parent. There are two types of MTDs:
- Minimal End Device (MED) — transceiver always on, does not need to poll for messages from its parent
- Sleepy End Device (SED) — normally disabled, wakes on occasion to poll for messages from its parent
An MTD can only operate as an End Device (Child).
Upgrading and downgrading
When a REED is the only node in reach of a new End Device wishing to join the Thread network, it can upgrade itself and operate as a Router:
Conversely, when a Router has no children, it can downgrade itself and operate as an End Device:
Other roles and types
The Thread Leader is a Router that is responsible for managing the set of Routers in a Thread network. It is dynamically self-elected for fault tolerance, and aggregates and distributes network-wide configuration information.
A Border Router is a device that can forward information between a Thread network and a non-Thread network (for example, Wi-Fi). It also configures a Thread network for external connectivity.
Any device may serve as a Border Router.
A Thread network might be composed of partitions. This occurs when a group of Thread devices can no longer communicate with another group of Thread devices. Each partition logically operates as a distinct Thread network with its own Leader, Router ID assignments, and network data, while retaining the same security credentials for all devices across all partitions.
Partitions in a Thread network do not have wireless connectivity between each other, and if partitions regain connectivity, they automatically merge into a single partition.
Note that the use of "Thread network" in this primer assumes a single partition. Where necessary, key concepts and examples are clarified with the term "partition." Partitions are covered in-depth later in this primer.
There are limits to the number of device types a single Thread network supports.
|End Device||511 per Router|
Thread tries to keep the number of Routers between 16 and 23. If a REED attaches as an End Device and the number of Routers in the network is below 16, it automatically promotes itself to a Router.
What you learned:
- A Thread device is either a Router (Parent) or an End Device (Child)
- A Thread device is either a Full Thread Device (maintains IPv6 address mappings) or a Minimal Thread Device (forwards all messages to its Parent)
- A Router Eligible End Device can promote itself to a Router, and vice versa
- Every Thread network partition has a Leader to manage Routers
- A Border Router is used to connect Thread and non-Thread networks
- A Thread network might be composed of multiple partitions