Daintree Networks

Joining a ZigBee Network 

The following is an excerpt from Daintree's popular ZigBee Primer. 


There are two ways to join a ZigBee network: MAC Association and NWK Rejoin.

MAC Association 

MAC Association is the bare-bones default, which every ZigBee device must support, since it is actually mandated by and implemented in the underlying MAC layer. In this case, a ZigBee router or coordinator that wishes to allow other devices to join must issue a NLME-PERMIT-JOINING.request. Then the joining device, after it has discovered which network to join and to which specific device on that network it should make its request, must issue a NLME-JOIN.request with the rejoin flag set to FALSE.

This last request kicks off a MAC protocol, as shown below, whereby the joining device makes a request to join the network and the receiving device issues a response, which includes an address for the device to use while associated with that network. Note that MAC association is an unsecured protocol since all the associated frames are sent in the clear (with no security).

MAC Association 

Network Rejoin 

Network rejoin, which despite the name may also be used to join a network for the first time, is a NWK layer protocol. What this means, first of all, is that it is not subject to the MAC's built-in mechanism for permitting devices to join the network and can be used whether the ZigBee router has issued a NLME-PERMIT-JOINING.request or not. Second, it means that the transaction may be secured if the joining device knows the current NWK key. This could be true if the device is actually rejoining the network, or else if the device is joining for the first time but has obtained the NWK key via some out-of-band mechanism.

The figure shown below omits the optional network discovery steps shown in the previous case to stress the point that it is not necessary to discover which devices have permitted joining. 

Network Rejoin