• Aucun résultat trouvé

Echange indirect Pour favoriser l’aspect ´economie d’´energie, les stations feuilles initient la communi-cation avec leur coordinateur, et cela selon deux proc´edures : (i) dans un PAN en mode suivi de beacon, le coordinateur indique dans son beacon la liste des adresses des entit´es qui ont des trames en attente chez lui, (ii) dans un PAN en mode non suivi de beacon, la station feuille sollicite le coordinateur pour v´erifier s’il a des trames en attente pour elle.

Le coordinateur conserve les trames en attente pour une dur´ee de macTransactionPersistenceTime avant de les supprimer si la station concern´ee ne l’a pas sollicit´e pour les r´ecup´erer.

´

Echange en GTS L’allocation des GTS est faite uniquement par le coordinateur du PAN. Un GTS est allou´e soit en mode r´eception (du coordinateur du PAN vers la station) soit en mode ´emission (de la station vers le coordinateur du PAN).

Une station demande l’allocation d’un GTS aupr`es du coordinateur du PAN auquel elle est affili´ee. Le nombre maximal de GTS est limit´e `a 7, `a condition que la dur´ee de la CAP restante soit sup´erieure ou ´egale `a aMinCAPLength (aM inCAP Length = 7 ms pour la fr´equence de 2.4 GHz).

La r´eponse d’une requˆete de GTS est envoy´ee dans le beacon via des descripteurs de GTS. Cette infor-mation est gard´ee dans le beacon pour aGTSDescPersistenceTime (par d´efaut aGT SDescP ersistence-T ime = 4) beacons cons´ecutifs.

La d´esallocation d’un GTS peut ˆetre faite soit `a la demande de la couche sup´erieure de la station ayant le GTS, soit par la couche sup´erieure du coordinateur du PAN suite au constat que la station n’a plus utilis´e son GTS durant 2 ∗ n supertrames cons´ecutives10. Diff´erents m´ecanismes de gestion d’allocation des GTS ont ´et´e propos´es dans [43], [44] et [45].

2.3 Couche r´eseau ZigBee

La couche r´eseau de ZigBee est rest´ee compatible avec la couche MAC IEEE 802.15.4 en assurant des fonctionnalit´es compl´ementaires et compatibles avec celles de la couche MAC. Il s’agit soit de fonc-tionnalit´es li´ees `a la transmission de donn´ees, comme l’encapsulation des donn´ees applicatives et le choix du prochain saut du cheminement du paquet, soit de fonctionnalit´es li´ees `a la gestion, comme la gestion des tables de routage, la configuration de la topologie et l’allocation des adresses logiques. Dans cette partie, nous allons d´etailler les fonctionnalit´es de gestion essentielles suivantes de la couche r´eseau de la pile IEEE 802.15.4/ZigBee :

– cr´eation de la topologie, – allocation des adresses, – routage.

10

La norme IEEE 802.15.4/ZigBee

2.3.1 Cr´eation de la topologie

Comme pour la couche MAC IEEE 802.15.4, la couche r´eseau supporte deux types de topologies : topologie en ´etoile et topologie maill´ee. Un cas particulier d’une topologie maill´ee est la topologie arbo-rescente. Le topologie arborescente est appel´ee cluster-tree.

association

Coordinateur du PAN Coordinateur

Feuille Fig. 2.20 – Topologie cluster-tree.

Dans un r´eseau de topologie cluster-tree, le coordinateur du PAN transmet dans le beacon trois param`etres essentiels que chaque coordinateur doit respecter et qui d´efinissent la topologie en arbre du r´eseau. Ces trois param`etres sont :

– la profondeur maximale du r´eseau (Lm),

– le nombre maximal de fils par coordinateur (Cm),

– le nombre maximal de fils coordinateurs par coordinateur (Rm) . `

A noter que si Lm = 1 nous nous retrouvons dans une topologie en ´etoile.

2.3.2 Allocation des adresses

Avant d’ˆetre associ´ee au r´eseau, une entit´e n’a que son adresse MAC IEEE, appel´ee adresse longue. Cette adresse occupe 8 octets. Afin d’optimiser la taille des champs d’adressage dans les trames ´echang´ees, la couche r´eseau alloue une adresse courte logique qui n’occupe que 2 octets. Il existe deux m´ecanismes pour cette allocation : une allocation d’adresses hi´erarchiques et une allocation d’adresses al´eatoires.

Allocation d’adresses hi´erarchiques L’allocation des adresses courtes se fait en se basant sur la profondeur du coordinateur et sur les trois param`etres Lm, Rm et Cm [39]. Ce m´ecanisme d’allocation

La norme IEEE 802.15.4/ZigBee

est distribu´e. `A chaque coordinateur est confi´e une plage d’adresses selon sa profondeur. L’´etendue de cette plage d’adresses est appel´ee Cskip. Cskip pour une profondeur d donn´ee est calcul´e selon la formule suivante : Cskip(d) =            1 + Cm ∗ (Lm − d − 1) si Rm = 1, 1+Cm−Rm−Cm∗RmLmd1 1−Rm sinon

Les adresses sont allou´ees diff´eremment selon le type de la station qui s’associe :           

AdrC= AdrP + 1 + nbC ∗ Cskip(d), AdrF = AdrP + Rm ∗ Cskip(d) + n

o`u AdrC d´esigne l’adresse allou´ee pour un nouveau coordinateur, AdrP l’adresse du p`ere, AdrF

l’adresse allou´ee pour une nouvelle feuille, nbC le nombre actuel de coordinateurs fils et n est un entier sup´erieur `a 1 incr´ement´e suite `a chaque nouvelle association d’une feuille (1 ≤ n ≤ (Cm − Rm)).

Prenons le cas o`u Lm = 3, Rm = 3 et Cm = 5, valeurs que nous d´esignerons par (3, 3, 5). Cela nous donne les valeurs donn´ee sur le tableau 2.5 pour Cskip selon la profondeur d :

Profondeur Cskip

0 21

1 6

2 1

3 0

Tab.2.5 – Valeurs de Cskip pour l’exemple (3, 3, 5).

`

A noter qu’un coordinateur de profondeur Lm n’accepte aucune association. En appliquant le jeu de param`etres (3, 3, 5) au le cluster-tree de la figure 2.20, nous obtenons les adresses donn´ees sur la figure 2.21 pour chaque station.

Allocation d’adresses al´eatoires Dans le mode d’allocation d’adresses al´eatoires, les param`etres Lm, Rm, Cm et la profondeur n’ont plus d’effet sur le choix d’une adresse courte. Apr`es avoir accept´e l’association d’une entit´e, le coordinateur choisit al´eatoirement une adresse courte, en v´erifiant que cette adresse ne soit pr´esente dans aucune entr´ee de sa table NIB (Network layer Information Base) . Les ´eventuelles conflits d’adresses sont d´etect´es et r´esolus par un m´ecanisme suppl´ementaire [39].

La norme IEEE 802.15.4/ZigBee 44 43 22 64 65 48 45 62 23 27 41 1 8 2 7 0 6 Coordinateur du PAN Coordinateur Feuille

Fig.2.21 – Allocation des adresses hi´erarchiques sur un exemple. Le coordinateur 1 par exemple, qui est `a la profondeur 1, a allou´e l’adresse 2 `a son premier fils et 8 au deuxi`eme, 8 = 2 + Cskip(1).

2.3.3 Routage

Tout coordinateur qui poss`ede des capacit´es de routage, maintient une table de routage qui sera utilis´ee pour d´eterminer le prochain saut pour les paquets qui sont `a destination des stations qui se trouvent hors port´ee du coordinateur. Le protocole de routage utilis´e est AODV (Ad hoc On-demand Distance Vector) [46]. Nous allons nous limiter `a d´etailler le routage hi´erarchique uniquement.

Routage hi´erarchique L’allocation d’adresses hi´erarchiques offre la possibilit´e d’appliquer un routage hi´erarchique. Les coordinateurs n’ayant pas une strat´egie de routage particuli`ere appliquent le routage hi´erarchique. Ce routage ne demande pas d’´echanges suppl´ementaires pour trouver les routes, ni la construction de tables de routage.

Les routes utilis´ees pour acheminer les paquets dans un routage hi´erarchique sont uniquement les routes de l’arbre. Pour d´eterminer le prochain saut dans un routage hi´erarchique le coordinateur applique un algorithme qui retourne l’adresse du prochain saut en fonction de son adresse et l’adresse de la destination finale du paquet.

Nous d´esignons par Adr l’adresse du coordinateur qui cherche `a router le paquet selon le routage hi´erarchique, d sa profondeur, AdrP l’adresse de son p`ere, DestF inale l’adresse de la destination finale du paquet et Dest l’adresse du prochain saut.

La norme IEEE 802.15.4/ZigBee                                                   

si Adr < DestF inale ≤ Adr + Cskip(d − 1),

alors si DestF inale > Adr + Rm ∗ Cskip(d),

alors Dest = DestF inale,

sinon Dest = Adr + 1 + ⌊DestF inale−(Adr+1)Cskip(d) ⌋ ∗ Cskip(d), sinon Dest = AdrP

Si DestF inale est comprise entre Adr et Adr+Cskip(d−1), la destination finale est un descendant du coordinateur. Si ce n’est pas le cas, le coordinateur remonte le paquet `a son p`ere en mettant Dest = AdrP. Si la destination finale est un descendant, le coordinateur v´erifie si elle est une de ses feuilles. Si c’est le cas, il met Dest = DestF inale. Si la destination finale n’est pas une feuille, pour trouver le fils vers lequel il va router le paquet, le coordinateur applique la formule Dest = Adr+1+⌊DestF inale−(Adr+1)Cskip(d) ⌋∗Cskip(d) qui retourne l’adresse du fils coordinateur auquel il faut envoyer le paquet.