(Supporting source code , software , Development Board and other resources, can be a blog with the same name QQ group: Napoleon 940911)
1. Joining direct to trust Center
Once the transport key is received by the joining device, it'll proceed to check the ' source ' of this Transport key command. In this case the 64-bit IEEE address is different from 0 's and FF ' s, since the TC exists in this network. The following steps describe the unsecure joining process to a centralized network.
1. Joining device sends association request.
2. Parent Device Sends association response.
3. Trust Center delivers the network key in a transport key command. This Transport key command are APS encrypted either withDefault Global centralized key or a Install Code Deri Ved key.
4. joining device is able to get thenetwork key from the encrypted key command andtransport S itself with a zdo device announce command.
5. joining device then queries the ZdO Node descriptor from the Trust Center.
6. joining device parses the Node descriptor to look in the stack version revision (this field has been added by R21 version of ZigBee specification).
A. If the stack version supported by the TC isn't present (0x00), this means it supports a version from before to R21 , so the joining process would finish in this step.
B. If The TC of the joined network is R21 or later, the joining Device update its APS Key. This are done by thejoining device by sending the APS Request Key command.
7. Trust Center would deliver the Unique Trust Center link Key and an APS transport key command.
8. joining device 'll update its key from Default status or provisional status if install code is used , to unverified, after which the key must is verified. To verify the key, thejoining device 'll send a APS verify key command to the TC containing the Unique Key hashed (to avoid sending the key in plain text).
9. Trust Center hashed the "key associated to" this device and compares against the hash received. If Those are the same, it wouldsend a APS Confirm Key command with status Success, after which the TCLK exchange Procedure is finished for the joining device.
The joining process into a Z3.0 centralized network directly to the "TC is illustrated in the" picture.
The joining device 'll attempt up to bdbc_rec_same_network_retry_attemps each step from steps 1 to 4, u Pon failure in any of these steps; The device would retry the next suitable network in the network descriptor list.
In the same way, the steps 5-to-8 are attempted up to Bdb_default_tc_link_key_exchange_attemps_max times each STE P, upon failure in any of these steps; The device would perform a Factory New reset, to erase the network parameters and keys obtained at the failing Ste P.
The application would receive a notification on this according to BDB notifications.
2. Joining when parent isn't the trust Center
A similar process occurs when the device joins through a parent device the TC. The parent device sends APS Update device commands to the "TC to notify" about the new device and from then the Parent device only relays the frames between the joining device and the TC as illustrated Picture.
(supporting source code , software , Development Board and other resources, can be used to blog QQ Group of the same name: Napoleon 940911 )