Au niveau de la couche réseau, le routage est soit direct, soit indirect. Le routage est direct lorsquun dispositif voulant transmettre des données connaît ladresse réseau du destinataire. Cette adresse est donc transmise dans la trame pour atteindre et agir sur le dispositif prévu.
Dans le cas contraire, le routage indirect se fait lorsquun dispositif ne connaît pas ladresse du destinataire. Un équipement de type routeur ou coordinateur fait la relation avec le vrai destinataire daprès la table de routage et la table de découvertes des routes. Un dispositif qui na pas les capacités de routage (ZED) doit router les données suivant le routage hiérarchique (il remonte larbre).
La table de routage contient les données sur les destinataires. Il sagit de ladresse de destination de la route et le prochain dispositif à atteindre pour se « rapprocher » du destinataire.
La table de découverte dune route contient les informations sur les sources du message. Elle stocke ladresse dorigine du dispositif qui a fait la demande et ladresse du dispositif qui va transmettre les données en tant quintermédiaire (entre la source et la destination). Elle contient aussi les coûts de transmission entre la source jusquau nœud actuel et du nœud jusquau destinataire. Elle peut donc adapter la route pour être plus performante en mettant à jour les adresses à utiliser.
Le choix dune route, lorsque plusieurs routeurs en parallèle relaient linformation, se fait par rapport au routeur (ou coordinateur) au niveau du deuxième nœud au minimum. Lors de la demande de création de route, la table va recevoir plusieurs demandes à partir de la même adresse dorigine. Elle va alors comparer les « coûts » de transmission pour choisir le chemin ayant le coût le plus faible.
Lalgorithme de routage suggéré par la ZigBee Alliance pour les réseaux maillés est AODV (Ad hoc On-Demand Vector Routing). Cest un protocole de routage dit « réactif » : une route est établie uniquement sur demande. Lavantage est quil ne charge pas le trafic.
Le routage au niveau applicatif se fait grâce à la table de liaison, contenu dans le coordinateur ou un routeur.
Les liaisons permettent de créer des liens logiques entre des dispositifs dapplication complémentaires et des éléments de fins (capteurs). La table de liaison permet aussi dassocier à un attribut dun dispositif en entrée plusieurs attributs de dispositifs en sortie ou linverse. La table de liaison est implémentée dans le coordinateur ZigBee. Le choix de ce dispositif vient du fait que le coordinateur ZigBee est nécessaire au réseau. Le second intérêt est, vu que le coordinateur est indispensable au réseau, quil doit être (en général) alimenté par le secteur. Ces deux raisons font que la table de liaison sera toujours accessible.
La table de liaison se repose sur trois critères normalisés par la ZigBee Alliance :
Un profil permet de créer une application interopérable et distribuée. Il sagit donc de définir des formats de messages et le traitement des actions pour permettre à des dispositifs de demander, transmettre des données et savoir les interpréter.
Les profils sont développés par les entreprises pour permettre de répondre à des besoins spécifiques. Par exemple, le premier profil existant est fait pour gérer les lampes et des interrupteurs (home control lighting). Ce profil permet six types déchanges de messages de contrôle.
Les profils permettent de créer aussi une norme autour de chaque application pour permettre linteropérabilité des systèmes.
Les clusters sont associés avec des flots de données entrant ou sortant. Les identificateurs de clusters sont uniques dans un profil. Les clusters permettent de lier deux dispositifs par lassociation dun cluster en entrée et dun cluster en sortie en supposant quils appartiennent au même profil. En fait deux dispositifs sont liés sils partagent le même besoin (côté récepteur) et la même ressource (côté émetteur). La table de liaison (binding table) contient pour chaque cluster un identifiant pour le définir (sur 8 bits) et ladresse des deux dispositifs (source et destination).
Un attribut définit un capteur ou un actionneur. Cest lélément qui décrit de façon la plus précise lutilisation du dispositif (par exemple un capteur de mouvement, un buzzer, une lampe, etc.).
La table de liaison est la couche applicative qui permet de gérer la table de routage et la table de découverte de routes. Cest elle qui va permettre dassocier le relevé dun capteur sur un dispositif à une action spécifique sur un autre dispositif à travers toutes les couches du protocole ZigBee. Cest une façon de simplifier laccès lorsque le réseau contient beaucoup de connexions et de dispositifs : la reconnaissance entre les dispositifs qui dialoguent se fait par rapport à leurs « familles » (les profils et clusters) et leurs qualités (les attributs) communes.