Thread ======== .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **What is Thread?** Thread is a **low-power, IPv6-based mesh networking protocol** designed for **smart home and IoT devices**. It was developed by the **Thread Group**, led by companies like Google, Apple, and Silicon Labs. It aims to provide secure, reliable, and scalable device-to-device communication. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Why is Thread useful?** * Designed for **reliable mesh networking**, enabling self-healing communication paths. * Based on **open standards** (IPv6, 6LoWPAN, IEEE 802.15.4). * Supports **low power consumption**, making it ideal for battery-operated devices. * Built-in **security** with device authentication and encryption. * Works with **Matter**, making it a key technology in future-proof smart homes. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **How it works?** * Thread uses **IEEE 802.15.4** at the physical and MAC layers for low-power wireless communication in the 2.4 GHz band. * Uses **6LoWPAN** to compress IPv6 packets for efficient transmission. * Devices form a **mesh network**, with routers forwarding messages between endpoints. * A **Thread Border Router** connects the mesh network to other IP-based networks (like Wi-Fi or Ethernet). * Thread ensures **secure joining** and **dynamic rerouting** in case of node failures. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Where is Thread used?** * **Smart home devices**: lights, thermostats, locks, sensors. * **Consumer IoT**: appliances, environmental sensors. * **Building automation**: access control, HVAC systems. * **Matter-compatible devices**, as Matter supports Thread for low-power networking. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which OSI layer does this protocol belong to?** * Thread spans multiple OSI layers: * **Layer 1 (Physical)**: IEEE 802.15.4 radio. * **Layer 2 (Data Link)**: MAC layer of 802.15.4. * **Layer 3 (Network)**: IPv6 over 6LoWPAN. * **Layer 7 (Application)**: Supports application protocols like **Matter**. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **IS Thread Windows specific?** * No, **Thread is not Windows-specific**. * It is designed for embedded systems and microcontrollers, not desktop or server operating systems. * Windows-based applications can communicate with Thread networks via **Thread Border Routers**. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **IS Thread Linux Specific?** * No, **Thread is not Linux-specific**. * However, Linux is commonly used on **Thread Border Routers** (e.g., OpenThread Border Router). * End devices typically run on **bare-metal firmware** or **RTOS** platforms. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which Transport Protocol is used by Thread?** * Thread supports **IPv6 over 6LoWPAN**. * At the transport layer, it supports: * **UDP** (mainly used for low-overhead communication). * **ICMPv6** (for diagnostics and routing). * **TCP is not supported** due to overhead and power concerns. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which Port is used by Thread?** * Thread does not define a specific fixed port for all communication. * **Application protocols** (like **CoAP** over UDP) define their own ports. * Example: **CoAP typically uses UDP port 5683**. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Is Thread using Client server model?** * **Yes**, application protocols over Thread (like **CoAP** or **Matter**) follow a **client-server** or **request-response** model. * The **network layer itself** (Thread) handles routing and addressing in a **mesh topology**, not application roles. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Topics in this section, * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`Thread Version&IEEE Details ` * :ref:`Thread Basic Setup on Ubuntu using IPv4 ` * :ref:`Thread Basic Setup on Ubuntu using IPv6 ` * :ref:`Thread Protocol Packet Details ` * :ref:`Thread Usecases ` * :ref:`Thread Basic Features ` * :ref:`Reference links ` .. _Thread_step1: .. tab-set:: .. tab-item:: Learnings in this section * In this section, you are going to learn .. _Thread_step2: .. tab-set:: .. tab-item:: Terminology * Terminology .. _Thread_step3: .. tab-set:: .. tab-item:: Version Info * Version Info .. _Thread_step5: .. tab-set:: .. tab-item:: Thread Version&RFC Details * rfc details .. _Thread_step18: .. tab-set:: .. tab-item:: Thread Basic Setup on Ubuntu using IPv4 * setup .. _Thread_step19: .. tab-set:: .. tab-item:: Thread Basic Setup on Ubuntu using IPv6 * setup .. _Thread_step6: .. tab-set:: .. tab-item:: Thread Protocol Packet Details * packet details .. _Thread_step7: .. tab-set:: .. tab-item:: Thread Usecases * usecases .. _Thread_step8: .. tab-set:: .. tab-item:: Thread Basic Features * features .. _Thread_step17: .. tab-set:: .. tab-item:: Reference links * Reference links