• Aucun résultat trouvé

État de l’art

2.2 Protocoles de routage opportuniste pour les ré- ré-seaux de capteurs sans filré-seaux de capteurs sans fil

2.2.1 Norme ZigBee

La norme ZigBee [Zig08], définie par la ZigBee Alliance, se base sur les couches basses de la norme IEEE 802.15.4 [IEE06] (décrite dans la partie 2.1.1) pour apporter principalement des spécifications de la couche réseau et de la couche application. Nous décrirons uniquement la couche réseau qui assure la fonctionnalité de routage.

La figure 2.23 représente les composants et les interfaces de la couche réseau de la norme ZigBee. Cette couche fournit deux types de services via des points d’accès aux services notés SAP (pour Service Access Points).

Les entités NLDE (pour Network Layer Data Entity) et NLME (pour Network Layer Management Entity) assurent respectivement l’échange de primitives de données et de contrôle entre la couche réseau et la couche application. L’entité NLDE fournit

NLDE NLME NLDE-SAP NLME-SAP MCPS-SAP MLME-SAP Spécification de IEEE 802.15.4 Spécification de la ZigBee Alliance Couches basses NIB Couches supérieures

Figure 2.23 – Modèle de référence de la couche réseau ZigBee.

le service de transmission de données via son interface appelée NLDE-SAP. L’entité NLME assure un service de gestion via son interface appelée NLME-SAP.

L’entité NLME utilise l’entité NLDE pour assurer certaines de ses tâches de gestion, et maintient également une base de données des objets qu’elle gère connus sous le nom de la base d’information du réseau noté NIB (pour Network layer Information Base).

La double flèche représente une interface implicite entre l’entité NLME et l’entité NLDE et permet d’utiliser le service de données du réseau.

2.2.1.1 Description des topologies dans la norme ZigBee

Le standard ZigBee définit 3 types de nœuds (voir figure 2.24). Le coordinateur ZigBee, noté ZC (pour ZigBee Coordinator) est équivalent au coordinateur de PAN dans la norme IEEE 802.15.4. Il s’agit d’un nœud FFD qui gère l’ensemble du réseau. Le routeur ZigBee, noté ZR (pour ZigBee Router) est aussi une entité FFD qui a des capacités de routage. Le dispositif terminal, noté ZED (pour ZigBee End Device) est une entité RFD ou FFD mais ne peut pas assurer la fonction de routage.

Comme le montre la figure 2.24, la couche réseau de la norme ZigBee supporte trois types de topologies : en étoile, en arbre et maillée. Dans une topologie en étoile (voir figure 2.24 (1)), le réseau est contrôlé par un seul dispositif ZC qui est chargé d’initier et de maintenir tous les autres dispositifs (qui sont des ZED). Tous les dispositifs communiquent directement avec le ZC. Dans une topologie en arbre (voir figure 2.24 (2)) ou maillée (voir figure 2.24 (3)) le ZC est responsable du démarrage du réseau mais les communications peuvent passer par des ZR intermédiaires.

(1) Topologie en étoile (3) Topologie maillée (2) Topologie en arbre Coordinateur ZigBee (FFD) ZR (FFD) ZED (RFD ou FFD) Flux de communication Figure 2.24 – Topologies de la norme ZigBee.

2.2.1.2 Routage dans ZigBee

Le norme ZigBee s’appuie sur deux protocoles de routage. Le protocole de routage réactif AODV [PBRD03] (pour AdHoc On-demand Distance Vector) est utilisé pour router les données dans une topologie maillée, et le protocole de routage hiérarchique HRP (pour Hierarchical Routing Protocol) pour les topologies en arbre.

AODV est un protocole de routage qui opère à la demande, c’est-à-dire ne main-tient pas de routes inutilisées. Dans AODV, lorsqu’un nœud a un paquet à émettre pour une nouvelle destination, il diffuse une requête RREQ (pour Route REQuest) de demande de route à son voisinage. Un nœud qui reçoit cette requête et qui dispose d’un chemin dans sa table de voisinage pour cette destination, renvoie par le chemin inverse un RREP (pour Route REPly) au nœud demandeur. Après avoir reçu un RREP, le nœud source peut envoyer ses données.

Dans le routage hiérarchique, les communications sont réalisées suivant les liens parents-enfants de la topologie en arbre. Un mécanisme d’allocation d’adresses hiérar-chiques est utilisé pour affecter une adresse à chaque nœud du réseau en fonction de sa position dans l’arbre. Ce mécanisme fournit à chaque parent potentiel un sous-bloc d’adresses à attribuer à ses descendants. Ce mécanisme s’appuie sur des paramètres fixés par le ZC lors de l’établissement du réseau : le nombre maximum de fils par

rou-teur ZigBee noté Cm, le nombre maximum de fils routeurs par routeur ZigBee noté

Rm, et la profondeur maximale d’un nœud notée Lm. Une fonction appelée Cskip(voir

équation (2.1)) est utilisée pour calculer la taille des sous-blocs d’adresses à attribuer à chaque parent situé à une profondeur d.

Cskip(d) =    1 + Cm(Lm− d − 1) si Rm = 1, 1+Cm−Rm−Cm∗RLm−d−1m 1−Rm sinon. (2.1)

Pour les dispositifs ZED, l’adresse est affectée de manière séquentielle suivant

l’équation (2.2). An représente l’adresse du nème fils d’un coordinateur (Aparent) qui

est positionné à une profondeur d dans l’arbre.

An= Aparent+ Cskip(d) ∗ Rm+ n. (2.2)

Un nœud ZED communique uniquement avec son père et un nœud ZR maintient une table de voisinage comportant les adresses de ses descendants et celle du père auquel il est associé.

Lorsqu’un nœud ni de profondeur di et d’adresse réseau A envoie un paquet à un

autre nœud nj d’adresse réseau D, le prochain saut est déterminé selon l’algorithme

suivant :

ni détermine si nj est l’un de ses descendants en vérifiant si A < D < A+Cskip(di−1).

Si nj est un descendant de ni, dans ce cas, il détermine si l’adresse réseau D

est une feuille en vérifiant si D > A + Rm× Cskip(di).

Si, c’est une feuille le prochain saut est le nœud nj.

Sinon, le prochain saut est son fils coordinateur dont l’adresse réseau est

N = A + 1 + ⌊D−(A+1)C

skip(di)⌋ × Cskip(di)

Sinon, nj n’est pas un descendant de ni et le prochain saut est le père de ni.

Notons que les deux protocoles de routage proposés pas ZigBee nécessitent une connaissance préalable du réseau et le maintien d’une table de voisinage. De plus, AODV nécessite un échange important de messages de contrôle.