Wi-Fi, Bluetooth Smart and Zigbee are the most commonly talked about types of IoT wireless protocols today. But what about Thread? Beyond its advances in security, routing and fault tolerance, Thread also addresses the long-awaited pull in the market for mesh networking technology that supports IPv6 and 6LoWPAN, bringing much-needed IP connectivity to each individual end node in the IoT.
The Promise of Seamless Connectivity
Thread is a low-power, secure and scalable IP-based wireless mesh networking protocol. Built on IPv6 technology with 6LoWPAN as a foundation, Thread provides a self-healing mesh networking solution for over 250 nodes. Thread addresses the growing market need for a secure, IP-based mesh networking solution and provides support for sleepy nodes, allowing years of operation from a single battery.
Thread’s focus on low-power consumption and native support for IP delivers on the promise of seamless connectivity between “Things” and the Internet. It affords not only efficient communication between low-cost, battery-backed devices but also a simplified interface to the cloud and mobile devices. Thread offers a compelling and new wireless mesh networking solution designed to meet the needs of the connected home. What follows are the highlights of Thread:
Standards-Based Protocol
Open standards-based protocols reap the benefits of technical peer reviews, cross-vendor interoperability and competition. Thread is based on a foundation of existing IEEE and IETF standards including IEEE 802.15.4.
Thread does away with some of the complexities of prior mesh networking standards. There are only two different node types: Router Eligible or End Device. Router Eligible nodes become routers if 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 autonomously assume the role of a Leader but there is only one Leader per network at a given time. Nodes that join as End Devices do not support any routing capabilities. Instead, they send messages to a router designated as its “parent” and the parent performs routing operations on behalf of its “child.” End Devices route communication through parents and can be programmed to be “sleepy” to reduce power consumption. End Devices that are unable to communicate with their parent after multiple attempts will autonomously search and attach to a new parent.
Low-Power Operation
Thread provides extensive support for low-power operation using sleepy end nodes. As the name would suggest, these sleepy devices are meant to spend the majority of their time in a low-power sleep state. With Thread, sleepy devices are not required to check in with the network, enabling prolonged battery life. Messages for sleepy devices are buffered by their parents. Message transmission is triggered only after a sleepy device wakes up and polls its parent for any inbound messages.
IP-Based Messaging
Thread provides native support for IP. All devices in a Thread network have an IPv6 address and can be accessed directly by local devices on the Home Area Network (HAN) or off-network using Thread-capable IP routers called Border Routers. Nodes on the network form IPv6 global addresses from prefixes assigned by border routers, or locally by a self-assigned prefix to form a Unique Local Address (ULA). Routing IDs for use in the network are assigned by the Leader. Thread leverages UDP (User Datagram Protocol) for messaging instead of its heavier weight alternative, TCP (Transmission Control Protocol). Unlike TCP, UDP is a connectionless protocol that forgoes TCP features such as error checking, packet sequencing and retransmissions in exchange for faster and more efficient transmission.
This efficiency equates to less overhead which is extremely important for battery-backed, resource-constrained devices. Thread utilizes the Constrained Application Protocol (CoAP) in conjunction with UDP to remain lightweight but overcome some of the limitations of UDP. CoAP reincorporates support for retries and packet sequencing. CoAP further provides support for lightweight versions of GET, POST, PUT and DELETE methods that can be easily translated to HTTP for simplified integration with the web. Utilizing off-network CoAP to HTTP proxies, Thread makes it possible to query IoT devices directly from a browser.
Scalable, Resilient, Self-Healing
Thread was architected with the specific goal of supporting networks of 250+ nodes. With this constraint, features and capabilities were adapted to maximize throughput and minimize resource requirements. In a Thread network, the maximum number of active routers is 32. A direct and important consequence of this is that routing information can be efficiently distributed across the network and all routers are able to maintain visibility of all routes within the network. As nodes are added to the network and the topology changes, the network adapts by exchanging Mesh Link Establishment (MLE) messages. Additional routers can be autonomously added if there are Router Eligible devices operating as end devices. Such Router Eligible end devices or REEDs, listen to routing messages and will petition the Leader of the network to become a router if determined necessary to improve the overall performance of the network. Thread is a robust, self-healing mesh network that offers no single point of failure. If a router fails, the network will dynamically re-route traffic around the failed node. If a Leader fails, another router on the network will be autonomously elected the new Leader. Multiple border routers can be used to provide fail-safe redundancy for off-network communication.
Secure and User-Friendly
Thread networks are built to be simple to use yet extremely secure. Thread uses AES-128 to protect all networking transactions at the MAC level and utilizes a combination of ECC and J-PAKE algorithms to securely add devices to a network (i.e. commissioning). Applications have the option to utilize standards-based IP security protocols (e.g., DTLS) to additionally secure application payloads. The Thread network assumes that there is a commissioning device available for a user to designate to add new devices to the Thread network. Thread makes it possible to designate both off-network devices such as smart phones and computers and on-network Thread devices to become Commissioners. Off-network devices must first petition with a Thread Border Router to become a registered Commissioner using a secure DTLS authentication handshake specified by Thread. Once registered, the Border Router then performs arbitration with the Leader on behalf of the Commissioner candidate to become an authorized Commissioner. On-network devices do not require registration, but may need to perform arbitration with the Leader to be authorized. (The Leader ensures that only one commissioner is active on the network at a time.) Once authorized, the active Commissioner will be made known throughout the Thread network.
Application Development
Thread does not specify an application layer but instead provides basic messaging services such as unicast and multicast message services using UDP and CoAP. Similar to Wi-Fi, Thread focuses on the secure and reliable transport of information but rather by using a low-power mesh network instead of a high-powered star network. Tools such as Silicon Labs AppBuilder simplify the use of these IP messaging services by abstracting away stack level details through the use of easy-to-use callbacks and plug-ins. Application code development in this framework is highly portable and can be reused across supported 802.15.4 devices. AppBuilder providers a simple GUI to configure devices and networking parameters such as device type, commands, network forming and joining behaviors as well as security modes and operation. Silicon Labs provides a sample application for Thread to get started quickly that can be easily customized and extended.
Networking Debug
Understanding, adapting and tuning network level behavior is an important development phase in developing applications for mesh networks. Traditional solutions use wireless sniffers to remotely capture over-the-air networking transactions. Silicon Labs networking ICs build this capability in using a unique two-wire interface called Packet Trace that outputs every packet sent and received by the device appended with link quality information. This information can be aggregated across all nodes in the network into a single view using a tool called Desktop Network Analyzer, providing a complete and comprehensive view of all networking activity. Desktop Network Analyzer correlates all traffic into events and can decode Thread messages. Network activity can be logged over extended periods of time to identify issues that may be infrequent or occur intermittently in the network.
To learn more about Thread, please download the attached document (below) by Silicon Labs called "Thread Networking Protocol Simplifies Connecting “Things” in the Home and Beyond."
Ready to Get Started with Thread?
Because it supports mesh (Thread / ZigBee), Bluetooth Smart and proprietary networks, the EFR32 Mighty Gecko 2.4 GHz Mesh Networking Starter Kit is capable of being the development platform for all protocol stacks. The Kit includes ZigBee and Thread software stacks, sample code and integrated debug adapter. Multiple radio boards enable developers to create a mesh network and evaluate Mighty Gecko SoCs. With the supporting Simplicity Studio suite of tools, developers can take advantage of graphical wireless application development; mesh networking debug and packet trace; and visual energy profiling and optimization.