Zigbee

Zigbee is an IEEE 802.15.4-based specification for a suite of high-level communication protocols used to create personal area networks with small, low-power digital radios, such as for home automation, medical device data collection, and other low-power low-bandwidth needs, designed for small scale projects which need wireless connection. Hence, Zigbee is a low-power, low-data-rate, and close proximity (i.e., personal area) wireless ad hoc network.

The technology defined by the Zigbee specification is intended to be simpler and less expensive than other wireless personal area networks (WPANs), such as Bluetooth or more general wireless networking such as Wi-Fi (or Li-Fi). Applications include wireless light switches, home energy monitors, traffic management systems, and other consumer and industrial equipment that requires short-range low-rate wireless data transfer.

Its low power consumption limits transmission distances to 10–100 meters (30' to 300') line-of-sight, depending on power output and environmental characteristics. Zigbee devices can transmit data over long distances by passing data through a mesh network of intermediate devices to reach more distant ones. Zigbee is typically used in low data rate applications that require long battery life and secure networking. (Zigbee networks are secured by 128-bit symmetric encryption keys.) Zigbee has a defined rate of up to $250 kbit/s$, best suited for intermittent data transmissions from a sensor or input device.

Zigbee was conceived in 1998, standardized in 2003, and revised in 2006. The name refers to the waggle dance of honey bees after their return to the beehive.

Overview
Zigbee is a low-power wireless mesh network standard targeted at battery-powered devices in wireless control and monitoring applications. Zigbee delivers low-latency communication. Zigbee chips are typically integrated with radios and with microcontrollers.

Zigbee operates in the industrial, scientific and medical (ISM) radio bands. With the $2.4 GHz$ band being primarily used for lighting and home automation devices in most jurisdictions worldwide. While devices for commercial utility metering and medical device data collection often use sub-GHz frequencies, (902-928 MHz in North America, Australia, and Israel, 868-870 MHz in Europe, 779-787 MHz in China, even those regions and countries still using the 2.4 GHz for most globally sold Zigbee devices meant for home use. With data rates varying from around 20 kbit/s for sub-GHz bands to around 250 kbit/s for channels on the 2.4 GHz band range).

Zigbee builds on the physical layer and media access control defined in IEEE standard 802.15.4 for low-rate wireless personal area networks (WPANs). The specification includes four additional key components: network layer, application layer, Zigbee Device Objects (ZDOs) and manufacturer-defined application objects. ZDOs are responsible for some tasks, including keeping track of device roles, managing requests to join a network, as well as device discovery and security.

The Zigbee network layer natively supports both star and tree networks, and generic mesh networking. Every network must have one coordinator device. Within star networks, the coordinator must be the central node. Both trees and meshes allow the use of Zigbee routers to extend communication at the network level. Another defining feature of Zigbee is facilities for carrying out secure communications, protecting establishment and transport of cryptographic keys, ciphering frames, and controlling device. It builds on the basic security framework defined in IEEE 802.15.4.

History
Zigbee-style self-organizing ad hoc digital radio networks were conceived in the 1990s. The IEEE 802.15.4-2003 Zigbee specification was ratified on December 14, 2004. The Connectivity Standards Alliance (formerly Zigbee Alliance) announced availability of Specification 1.0 on June 13, 2005, known as the ZigBee 2004 Specification.

Cluster library
In September 2006, the Zigbee 2006 Specification was announced, obsoleting the 2004 stack The 2006 specification replaces the message and key–value pair structure used in the 2004 stack with a cluster library. The library is a set of standardised commands, attributes and global artifacts organised under groups known as clusters with names such as Smart Energy, Home Automation, and Zigbee Light Link.

In January 2017, Connectivity Standards Alliance renamed the library to Dotdot and announced it as a new protocol to be represented by an emoticon (||:). They also announced it will now additionally run over other network types using Internet Protocol and will interconnect with other standards such as Thread. Since its unveiling, Dotdot has functioned as the default application layer for almost all Zigbee devices.

Zigbee Pro
Zigbee Pro, also known as Zigbee 2007, was finalized in 2007. A Zigbee Pro device may join and operate on a legacy Zigbee network and vice versa. Due to differences in routing options, a Zigbee Pro device must become a non-routing Zigbee End Device (ZED) on a legacy Zigbee network, and a legacy Zigbee device must become a ZED on a Zigbee Pro network. It operates using the 2.4 GHz ISM band, and adds a sub-GHz band.

Use cases
Zigbee protocols are intended for embedded applications requiring low power consumption and tolerating low data rates. The resulting network will use very little power—individual devices must have a battery life of at least two years to pass certification.

Typical application areas include:
 * Home automation
 * Wireless sensor networks
 * Industrial control systems
 * Embedded sensing
 * Medical data collection
 * Smoke and intruder warning
 * Building automation
 * Remote wireless microphone configuration

Zigbee is not for situations with high mobility among nodes. Hence, it is not suitable for tactical ad hoc radio networks in the battlefield, where high data rate and high mobility is present and needed.

Application profiles
The first Zigbee application profile, Home Automation, was announced November 2, 2007. Additional application profiles have since been published.

The  specifications define an Internet Protocol-based communication protocol to monitor, control, inform, and automate the delivery and use of energy and water. It is an enhancement of the Zigbee Smart Energy version 1 specifications. It adds services for plug-in electric vehicle charging, installation, configuration and firmware download, prepay services, user information and messaging, load control, demand response and common information and application profile interfaces for wired and wireless networks. It is being developed by partners including: Zigbee Smart Energy relies on Zigbee IP, a network layer that routes standard IPv6 traffic over IEEE 802.15.4 using 6LoWPAN header compression.
 * HomeGrid Forum responsible for marketing and certifying ITU-T G.hn technology and products
 * HomePlug Powerline Alliance
 * International Society of Automotive Engineers SAE International
 * IPSO Alliance
 * SunSpec Alliance
 * Wi-Fi Alliance

In 2009, the Radio Frequency for Consumer Electronics Consortium (RF4CE) and Connectivity Standards Alliance (formerly Zigbee Alliance) agreed to deliver jointly a standard for radio frequency remote controls. Zigbee RF4CE is designed for a broad range of consumer electronics products, such as TVs and set-top boxes. It promised many advantages over existing remote control solutions, including richer communication and increased reliability, enhanced features and flexibility, interoperability, and no line-of-sight barrier. The Zigbee RF4CE specification uses a subset of Zigbee functionality allowing to run on smaller memory configurations in lower-cost devices, such as remote control of consumer electronics.

Radio hardware
The radio design used by Zigbee has few analog stages and uses digital circuits wherever possible. Products that integrate the radio and microcontroller into a single module are available.

The Zigbee qualification process involves a full validation of the requirements of the physical layer. All radios derived from the same validated semiconductor mask set would enjoy the same RF characteristics. Zigbee radios have very tight constraints on power and bandwidth. An uncertified physical layer that malfunctions can increase the power consumption of other devices on a Zigbee network. Thus, radios are tested with guidance given by Clause 6 of the 802.15.4-2006 Standard.

This standard specifies operation in the unlicensed 2.4 to 2.4835 GHz (worldwide), 902 to 928 MHz (Americas and Australia) and 868 to 868.6 MHz (Europe) ISM bands. Sixteen channels are allocated in the 2.4 GHz band, spaced 5 MHz apart, though using only 2 MHz of bandwidth each. The radios use direct-sequence spread spectrum coding, which is managed by the digital stream into the modulator. Binary phase-shift keying (BPSK) is used in the 868 and 915 MHz bands, and offset quadrature phase-shift keying (OQPSK) that transmits two bits per symbol is used in the 2.4 GHz band.

The raw, over-the-air data rate is 250 kbit/s per channel in the 2.4 GHz band, 40 kbit/s per channel in the 915 MHz band, and 20 kbit/s in the 868 MHz band. The actual data throughput will be less than the maximum specified bit rate because of the packet overhead and processing delays. For indoor applications at 2.4 GHz transmission distance is 10–20 m, depending on the construction materials, the number of walls to be penetrated and the output power permitted in that geographical location. The output power of the radios is generally 0–20 dBm (1–100 mW).

Device types and operating modes
There are three classes of Zigbee devices:
 * Zigbee Coordinator (ZC): The most capable device, the coordinator forms the root of the network tree and may bridge to other networks. There is precisely one Zigbee coordinator in each network since it is the device that started the network originally (the Zigbee LightLink specification also allows operation without a Zigbee coordinator, making it more usable for off-the-shelf home products). It stores information about the network, including acting as the trust center and repository for security keys.
 * Zigbee Router (ZR): As well as running an application function, router devices can act as intermediate routers, passing data on to other devices. These types of Zigbee products are typically mains-powered so they are always available on the network. Zigbee Router devices are sometimes called Zigbee repeaters or Zigbee range extenders.
 * Zigbee End Device (ZED): Contains just enough functionality to talk to the parent node (either the coordinator or a router); it cannot relay data from other devices. This relationship allows the node to be asleep a significant amount of the time thereby giving long battery life. These types of Zigbee device products are often battery-powered. A ZED requires the least amount of memory and thus can be less expensive to manufacture than a ZR or ZC.

The current Zigbee protocols support beacon-enabled and non-beacon-enabled networks.

In non-beacon-enabled networks, an unslotted CSMA/CA channel access mechanism is used. In this type of network, Zigbee routers typically have their receivers continuously active, requiring additional power. However, this allows for heterogeneous networks in which some devices receive continuously while others transmit when necessary. The typical example of a heterogeneous network is a wireless light switch: The Zigbee node at the lamp may constantly receive since it is reliably powered by the mains supply to the lamp, while a battery-powered light switch would remain asleep until the switch is thrown. In this case, the switch wakes up, sends a command to the lamp, receives an acknowledgment, and returns to sleep. In such a network the lamp node will be at least a Zigbee router, if not the Zigbee coordinator; the switch node is typically a Zigbee end device.

In beacon-enabled networks, Zigbee routers transmit periodic beacons to confirm their presence to other network nodes. Nodes may sleep between beacons, thus extending their battery life. Beacon intervals depend on data rate; they may range from 15.36 milliseconds to 251.65824 seconds at 250 kbit/s, from 24 milliseconds to 393.216 seconds at 40 kbit/s and from 48 milliseconds to 786.432 seconds at 20 kbit/s. Long beacon intervals require precise timing, which can be expensive to implement in low-cost products.

In general, the Zigbee protocols minimize the time the radio is on, so as to reduce power use. In beaconing networks, nodes only need to be active while a beacon is being transmitted. In non-beacon-enabled networks, power consumption is decidedly asymmetrical: Some devices are always active while others spend most of their time sleeping.

Except for Smart Energy Profile 2.0, Zigbee devices are required to conform to the IEEE 802.15.4-2003 Low-rate Wireless Personal Area Network (LR-WPAN) standard. The standard specifies the lower protocol layers—the physical layer (PHY), and the media access control portion of the data link layer. The basic channel access mode is carrier-sense multiple access with collision avoidance (CSMA/CA). That is, the nodes communicate in a way somewhat analogous to how humans converse: a node briefly checks to see that other nodes are not talking before it starts. CSMA/CA is not used in three notable exceptions:
 * Message acknowledgments.
 * Beacons are sent on a fixed-timing schedule.
 * Devices in beacon-enabled networks that have low-latency, real-time requirements may also use guaranteed time slots.

Network layer
The main functions of the network layer are to ensure correct use of the MAC sublayer and provide a suitable interface for use by the next upper layer, namely the application layer. The network layer deals with network functions such as connecting, disconnecting, and setting up networks. It can establish a network, allocate addresses, and add and remove devices. This layer makes use of star, mesh and tree topologies.

The data entity of the transport layer creates and manages protocol data units at the direction of the application layer and performs routing according to the current topology. The control entity handles the configuration of new devices and establishes new networks. It can determine whether a neighboring device belongs to the network and discovers new neighbors and routers.

The routing protocol used by the network layer is AODV. To find a destination device, AODV is used to broadcast a route request to all of its neighbors. The neighbors then broadcast the request to their neighbors and onward until the destination is reached. Once the destination is reached, a route reply is sent via unicast transmission following the lowest cost path back to the source. Once the source receives the reply, it updates its routing table with the destination address of the next hop in the path and the associated path cost.

Application layer
The application layer is the highest-level layer defined by the specification and is the effective interface of the Zigbee system to its end users. It comprises the majority of components added by the Zigbee specification: both ZDO (Zigbee device object) and its management procedures, together with application objects defined by the manufacturer, are considered part of this layer. This layer binds tables, sends messages between bound devices, manages group addresses, reassembles packets and also transports data. It is responsible for providing service to Zigbee device profiles.

Main components
The ZDO (Zigbee device object), a protocol in the Zigbee protocol stack, is responsible for overall device management, security keys, and policies. It is responsible for defining the role of a device as either coordinator or end device, as mentioned above, but also for the discovery of new devices on the network and the identification of their offered services. It may then go on to establish secure links with external devices and reply to binding requests accordingly.

The application support sublayer (APS) is the other main standard component of the stack, and as such it offers a well-defined interface and control services. It works as a bridge between the network layer and the other elements of the application layer: it keeps up-to-date binding tables in the form of a database, which can be used to find appropriate devices depending on the services that are needed and those the different devices offer. As the union between both specified layers, it also routes messages across the layers of the protocol stack.

Communication models
An application may consist of communicating objects which cooperate to carry out the desired tasks. Tasks will typically be largely local to each device, for instance, the control of each household appliance. The focus of Zigbee is to distribute work among many different devices which reside within individual Zigbee nodes which in turn form a network.

The objects that form the network communicate using the facilities provided by APS, supervised by ZDO interfaces. Within a single device, up to 240 application objects can exist, numbered in the range 1–240. 0 is reserved for the ZDO data interface and 255 for broadcast; the 241-254 range is not currently in use but may be in the future.

Two services are available for application objects to use (in Zigbee 1.0):
 * The key-value pair service (KVP) is meant for configuration purposes. It enables description, request and modification of object attribute through a simple interface based on get, set and event primitives, some allowing a request for a response. Configuration uses XML.
 * The message service is designed to offer a general approach to information treatment, avoiding the necessity to adapt application protocols and potential overhead incurred by KVP. It allows arbitrary payloads to be transmitted over APS frames.

Addressing is also part of the application layer. A network node consists of an IEEE 802.15.4-conformant radio transceiver and one or more device descriptions (collections of attributes that can be polled or set, or can be monitored through events). The transceiver is the basis for addressing, and devices within a node are specified by an endpoint identifier in the range 1 to 240.

Communication and device discovery
For applications to communicate, the devices that support them must use a common application protocol (types of messages, formats and so on); these sets of conventions are grouped in profiles. Furthermore, binding is decided upon by matching input and output unique within the context of a given profile and associated to an incoming or outgoing data flow in a device. Binding tables contain source and destination pairs.

Depending on the available information, device discovery may follow different methods. When the network address is known, the IEEE address can be requested using unicast communication. When it is not, petitions are broadcast. End devices will simply respond with the requested address while a network coordinator or a router will also send the addresses of all the devices associated with it.

This permits external devices to find out about devices in a network and the services that they offer, which endpoints can report when queried by the discovering device (which has previously obtained their addresses). Matching services can also be used.

The use of cluster identifiers enforces the binding of complementary entities using the binding tables, which are maintained by Zigbee coordinators, as the table must always be available within a network and coordinators are most likely to have a permanent power supply. Backups, managed by higher-level layers, may be needed by some applications. Binding requires an established communication link; after it exists, whether to add a new node to the network is decided, according to the application and security policies.

Communication can happen right after the association. Direct addressing uses both radio address and endpoint identifier, whereas indirect addressing uses every relevant field (address, endpoint, cluster, and attribute) and requires that they are sent to the network coordinator, which maintains associations and translates requests for communication. Indirect addressing is particularly useful to keep some devices very simple and minimize their need for storage. Besides these two methods, broadcast to all endpoints in a device is available, and group addressing is used to communicate with groups of endpoints belonging to a specified set of devices.

Security services
As one of its defining features, Zigbee provides facilities for carrying out secure communications, protecting establishment and transport of cryptographic keys and encrypting data. It builds on the basic security framework defined in IEEE 802.15.4.

Basic security model
The basic mechanism to ensure confidentiality is the adequate protection of all keying material. Keys are the cornerstone of the security architecture; as such their protection is of paramount importance, and keys are never supposed to be transported through an insecure channel. A momentary exception to this rule occurs during the initial phase of the addition to the network of a previously unconfigured device. Trust must be assumed in the initial installation of the keys, as well as in the processing of security information. The Zigbee network model must take particular care of security considerations, as ad hoc networks may be physically accessible to external devices. Also the state of the working environment cannot be predicted.

Within the protocol stack, different network layers are not cryptographically separated, so access policies are needed, and conventional design assumed. The open trust model within a device allows for key sharing, which notably decreases potential cost. Nevertheless, the layer which creates a frame is responsible for its security. As malicious devices may exist, every network layer payload must be ciphered, so unauthorized traffic can be immediately cut off. The exception, again, is the transmission of the network key, which confers a unified security layer to the grid, to a new connecting device.

Security architecture
The Zigbee security architecture is based on CCM*, which adds encryption- and integrity-only features to CCM mode. Zigbee uses 128-bit keys to implement its security mechanisms. A key can be associated either to a network, being usable by Zigbee layers and the MAC sublayer, or to a link, acquired through pre-installation, agreement or transport. Establishment of link keys is based on a master key which controls link key correspondence. Ultimately, at least, the initial master key must be obtained through a secure medium (transport or pre-installation), as the security of the whole network depends on it. Link and master keys are only visible to the application layer. Different services use different one-way variations of the link key to avoid leaks and security risks.

Key distribution is one of the most important security functions of the network. A secure network will designate one special device, the trust center, which other devices trust for the distribution of security keys. Ideally, devices will have the trust center address and initial master key preloaded; if a momentary vulnerability is allowed, it will be sent as described above. Typical applications without special security needs will use a network key provided by the trust center (through the initially insecure channel) to communicate.

Thus, the trust center maintains both the network key and provides point-to-point security. Devices will only accept communications originating from a key supplied by the trust center, except for the initial master key. The security architecture is distributed among the network layers as follows:
 * The MAC sublayer is capable of single-hop reliable communications. As a rule, the security level it uses is specified by the upper layers.
 * The network layer manages routing, processing received messages and is capable of broadcasting requests. If available, outgoing frames use the appropriate link key according to the routing. Otherwise, the network key is used.
 * The application layer offers key establishment and transport services to both ZDO and applications.

According to the German computer e-magazine Heise Online, Zigbee Home Automation 1.2 is using fallback keys for encryption negotiation which are known and cannot be changed. This makes the encryption highly vulnerable. The Zigbee 3.0 standard features improved security features and mitigates the aforementioned weakness by giving device manufacturers the option of using a custom installation key that is then shipped together with the device, thereby preventing the network traffic from ever using the fallback key altogether. This ensures that all network traffic is securely encrypted even while pairing the device. In addition, all Zigbee devices need to randomize their network key, no matter which pairing method they used, thereby improving security for older devices. The Zigbee coordinator within the Zigbee network can be set to deny access to devices that do not employ this key randomization, further increasing security. In addition, the Zigbee 3.0 protocol features countermeasures against removing already paired devices from the network with the intention of listening to the key exchange when re-pairing.

Simulation
Network simulators, like ns-2, OMNeT++, OPNET, and NetSim can be used to simulate IEEE 802.15.4 Zigbee networks. These simulators come with open source C or C++ libraries for users to modify. This way users can determine the validity of new algorithms before hardware implementation.