• Aucun résultat trouvé

Auto-adaptation des paramètres du protocole

8.2 Description de SARI-MAC

8.2.6 Auto-adaptation des paramètres du protocole

Comme indiqué dans la Section 8.1, SARI-MAC adapte ses paramètres de fonction-nement en fonction du trafic estimé, des exigences de Qualité de Service (exprimées sous forme de délai moyen maximum et taux de livraison)2 et de façon à minimiser l’occupation du médium radio par les nœuds relais. À ces fins, SARI-MAC adapte ainsi les paramètres de fonctionnement suivants : la période d’attente avant envoi d’une nouvelle trame d’annonce (Tannonce), la taille de la fenêtre d’intention (k), la taille des codes des trames d’intention (c).

Figure 8.7 – Auto-adaptation des paramètres

Pour cela, comme l’illustre la Figure 8.7, les nœuds relais estiment le nombre de trames d’intentions qui leur sont destinées lors de la fenêtre d’intention : ˜n (1). Les nœuds relais dérivent de cette estimation le volume de trafic à supporter (2). À partir de cette nouvelle estimation, les nœuds calculent le temps d’attente avant la prochaine trame d’annonce de façon à (i) supporter le trafic entrant et (ii) respecter les exigences de délai. Au moment de transmettre la nouvelle trame d’annonce, les nœuds relais estiment le nombre de trames

2. Nous supposons que les exigences de Qualité de Service sont connues des nœuds relais, e.g. renseignées par l’applicatif.

d’intention attendues, na priori, en fonction du temps qui s’est réellement déroulé depuis la dernière période d’activité (3), l’émission de la trame d’annonce a en effet pu être retardée en raison de transmission en cours. Enfin les nœuds relais calculent la taille de la fenêtre de contention, k, et la taille des codes, c, en fonction de na priori et des exigences sur le taux de livraison.

8.2.6.1 Estimation du nombre de trames d’intention : ˜n

Cette estimation est construite à partir du nombre de transmissions détectées lors de la fenêtre d’annonce, noté detections. Remarquons qu’une trame d’annonce peut être détectée mais non reçue, e.g. collision, erreur de décodage, etc.

Cet estimateur est dérivé de la formule de l’espérance sur le nombre d’intervalles mar-qués parmi les k intervalles de la fenêtre d’intention pour n trames d’intentions distinctes. Cette espérance admet l’expression suivante :

E(detections) = k(1 − (1 −1 k)

n) (8.1)

où k est la taille de la fenêtre d’intention, n le nombre de trames d’intention et E(detections) l’espérance sur le nombre de détections.

Démonstration. Soit F = 1, 2, ..., k l’ensemble des intervalles de la fenêtre d’intention. Cha-cun des n nœuds tire un des intervalles au hasard selon une loi uniforme. Ses tirages sont notés : Xi pour i 2 1, 2, ..., n.

Pour chaque élément ` de F, définissons Y` le nombre de fois que l’intervalle ` a été choisi :

Y` = |{i 2 1, 2, ..., n : Xi = `}|

Posons maintenant Y = (Y1, Y2, ..., Yn). Par définition, Y suit une loi multinomiale de paramètres n et (1

k,1k, ...,1k).

Nous pouvons maintenant définir les deux variables aléatoires suivantes : U = |{` 2 {1, 2, .., k} : Y` = 0}|

V = |{` 2 {1, 2, .., k} : Y` > 0}|

où U représente le nombre d’intervalles non tirés et V le nombre d’intervalles distincts tirés par les n nœuds.

Soit I` la probabilité que l’intervalle ` ne soit pas choisi. L’espérance de I` est donnée par :

8` 2 {1, 2, ..., k}, E(I`) = (1 − 1 k)

n

Nous notons que U = Pk

`=1I` donc l’espérance de U est donnée par : E(U ) = n X `=1 E(I`) = k(1 −1 k) n

Finalement, nous remarquons que U + V = m soit le résultat : E(V ) = k(1 − (1 − 1

k)

Nous inversons l’équation 8.1 afin d’exprimer le nombre de détections en fonction de k et l’espérance sur le nombre de détection :

n = ln(k − E(detections)) − ln(k) ln(k − 1) − ln(k) et nous dérivons de cette expression l’expression de ˜n :

˜

n = ln(k − j) − ln(k)

ln(k − 1) − ln(k) (8.3)

avec j le nombre de détections effectives à la suite d’une fenêtre d’intention.

L’équation 8.3 n’est valide que si j 6= k, i.e. il existe au moins un intervalle dans lequel aucune transmission n’a été détectée. Dans le cas contraire, nous posons de manière arbitraire ˜n = 4k. Ce cas particulier nous incite à légèrement sur-provisionner la taille de la fenêtre d’intention : k, de façon à obtenir une estimation fidèle du nombre de trames d’intention.

8.2.6.2 Estimation du trafic supporté et fluctuations : λ et σ

Après avoir estimé le nombre de trames d’intention ˜n, un nœud relai met à jour son estimation du trafic à supporter : λ. Pour cela, le nœud relai calcule une moyenne glissante du nombre d’arrivées par unité de temps sur la base des nestimations dernières estimations de ˜n et de la date de ces estimations3. L’écart-type de cet estimateur, σ, est également calculé et mémorisé ; son usage est expliqué dans les sections suivantes.

8.2.6.3 Calcul de la période des trames d’annonce et adéquation avec le trafic relayé

Les nœuds relais adaptent la période des trames d’annonce en fonction de l’estimation du volume de trafic supporté. Cette période, Tannonce, est calculée de façon à (i) satisfaire les exigences de délai de livraison, (ii) supporter le trafic entrant. Afin de satisfaire la contrainte (i), la durée Tannonce est bornée par le délai maximum de livraison à un saut : Delai1saut. La contrainte (ii) implique quant à elle que le nombre d’instants de transmission proposés par un nœud relais suffise à écouler le trafic qui lui est destiné : le nombre de trames d’annonce par unité de temps est égal au nombres de trames à destination du relai par unité de temps :

T annonce = ( 1 λ si 1 λ < Delai1saut Delai1saut si 1 λ ≥ Delai1saut (8.4) 8.2.6.4 Calcul de la taille de la fenêtre d’intention et efficacité énergétique

SARI-MAC adapte également la taille de la fenêtre d’intention ainsi que la taille du champ code la trame d’intention de façon à minimiser l’énergie dépensée en signalisation tout en satisfaisant les exigences de taux de livraison. À cette fin, SARI-MAC doit (i) supporter les fluctuations transitoires du trafic : i.e. variations de trafic liées aux décalages d’horloges servant à programmer les instants de transmission et (ii) s’adapter à la dispo-nibilité du médium : i.e. le médium n’est pas disponible au moment prévu pour l’envoi de la trame d’annonce (exemple fourni par la Fig. 8.8).

3. Ce moyennage permet d’estimer le volume moyen de trafic étant destiné au nœud. Le volume de trafic supporté est supposé stationnaire ou quasi-stationnaire

Figure 8.8 – Exemple de retard de transmission de la trame d’annonce

Afin de pallier ces variations de trafic et l’incertitude sur la date des trames d’annonce, un nœud relai estime le nombre de trames d’intention à recevoir avant d’émettre une trame d’annonce. Ce nombre a priori de nœuds émetteurs, na priori, est dérivé du volume moyen de trafic, λ, de ces fluctuations σ et du temps effectif depuis la dernière période d’activité : Tattente :

na priori= d(λ + σ)Tattentee (8.5) Cette estimation est ensuite utilisée dans le calcul de la taille de la fenêtre d’intention : k. Dans SARI-MAC, nous cherchons à maximiser l’efficacité énergétique de la fenêtre d’in-tention, i.e. maximiser le pourcentage d’intervalles de la fenêtre d’intention dans lequel une trame d’intention est transmise avec succès au nœud récepteur. Soit pi = 1k la probabilité avec laquelle un nœud émetteur quelconque choisit un intervalle de la fenêtre d’intention, probabilité que nous supposons indépendante entre nœuds capteurs. Alors, le calcul de k revient à maximiser la probabilité qu’un unique nœud émette un trame d’annonce dans un intervalle donné. Soit un intervalle i quelconque de la fenêtre d’intention, la probabilité de l’évènement "n des na priori émetteurs choisissent l’intervalle i", Pi(n, na priori), suit une loi binomiale : n ⇠ B(na priori, pi) 8n 2 [0, na priori], Pi(n) = ✓na priori n ◆ pni(1 − pi)(na priori−n)

k est choisie de façon à maximiser la probabilité qu’une et une seule trame d’intention soit transmise par intervalle de la fenêtre, c’est à dire de façon à maximiser Pi(1) :

Pi(n = 1) = na priori1 k(1 −

1 k)

na priori−1

Cette équation admet un maximum pour k = na priori, i.e. quand la taille de la fenêtre d’intention est égale au nombre attendu de trames d’intentions et nous posons donc :

k = na priori (8.6)

Démonstration. La dérivée partielle de Pi(n = 1) admet l’expression suivante :

δ δkPi(n = 1) = − na priori(k−1 k )n(k − na priori) (k(k − 1)2) = −na priori(k − 1) na priori−2(k − na priori) kn+1 δ

pour toute valeur na priori strictement supérieure à 1. Au point k = na priori, on a : limk!n a priori δ δkPi(n = 1) ≥ 0 limk!n+ a priori δ δkPi(n = 1)  0 d’où le résultat.

8.2.6.5 Calcul de taille des codes et taux de livraison

La taille du champ code des trames d’intention est calculée telle que la probabilité d’une collision entre deux trames de données à destination du récepteur soit suffisamment faible pour satisfaire les exigences de taux de livraison. Dans ce scénario, une trame de données est perdue lorsque celle-ci est acquittée mais non reçue, i.e. deux ou plus nœuds choisissent le même intervalle de la fenêtre d’intention et le même code.

La probabilité de l’évènement "n des na priori émetteurs choisissent le même intervalle et le même code j" suit une loi binomiale :

Pi.j(n) = B(na priori, p.pc) Pi.j(n) = ✓na priori

n ◆

(p.pc)n.(1 − p.pc)na priori−n

où p est la probabilité avec laquelle un émetteur choisit un intervalle quelconque i et pc

la probabilité de choisir le code j (supposée uniforme pour toute valeur de j). D’après l’équation 8.6, nous avons p = 1

na priori. Soit c la taille du champ code, il existe alors 2c

codes différents. Dans ces conditions, la probabilité d’une collision est donnée par :

Pcollision = P (n ≥ 2|n ≥ 1) Pcollision = 1 − na priori 1 na priori.2c.(1 − n 1 a priori.2c)na priori−1 1 − (1 −n 1 a priori.2c)na priori

Calculer la taille du champ code revient donc à trouver la plus petite valeur de c telle que :

1 − Pcollision ≥ taux de livraison na priori na priori.2c− 1 (na priori.2c−1 na priori.2c )na priori 1 − (na priori.2c−1 na priori.2c )na priori ≥ taux de livraison