# WiseMAC

Le WiseMAC (Wireless Sensor MAC) est l'une des couches MAC (Media Access Control) les plus économiques en énergie pour les réseaux de capteur, elle a été développée par le Centre suisse d'électronique et de microtechnique (CSEM) dans l'optique d'une utilisation avec les réseaux de capteurs WiseNET, il se base sur des contrôles cycliques du réseau et l'alternance de périodes d'activité et de sommeil. Dans beaucoup de scénarios où les réseaux de capteurs interviennent, le débit est limité quand la charge de trafic augmente, c'est-à-dire que si plusieurs capteurs sont en activités et tentent de communiquer avec la base (ou un nœud), le débit s'effondre.
Avec l'architecture WiseMAC, les nœuds surchargés qui causent des goulots d'étranglements restent éveillés tout le temps, ils se distinguent donc des autres nœuds qui dorment périodiquement et l'augmentation du temps de fonctionnement permet donc d'augmenter le volume de données échangées. L'économie d'énergie est la principale préoccupation lors de la mise en place de réseau de capteurs.
L'évaluation de performance indique que l'énergie requise augmente linéairement en fonction du débit. Cependant, le débit peut être réduit, même si le trafic global est faible. Cela s'explique par la configuration en arbre des réseaux de capteurs, un nœud qui reçoit des informations de plusieurs sources est susceptible de devenir un goulot d'étranglement, l'ajout du bit de WiseMAC permet d'échanger plus de données entre deux nœuds, mais cela ne s'applique que dans le cadre d'une communication de gros messages entre deux nœuds précis.

## Mécanisme de base

Le système de réveil ne suit pas un cycle périodique à proprement parler, des contrôles sont périodiquement effectués pour scanner le réseau, si ce dernier s'avère inactif alors les nœuds dorment jusqu'au prochain contrôle. Les contrôles sont destinés à détecter un signal d'annonce prévenant de l'émission imminente de paquets et chaque transmission est précédée d'une phase d'annonce. Tous les nœuds ne sont pas nécessairement synchronisés et tous ne se réveillent pas au même instant.
Le but du signal d'annonce est double, d'une part il attend le contrôle du nœud de destination, et d'autre part, il lui demande de ne pas se remettre en veille une fois réveillé. La durée du signal d'annonce est donc variable. Après réception d'un paquet, le destinataire garde en mémoire l'horloge de l'émetteur (contenu dans le paquet transmit). Le but est de conserver une table de décalage avec l'horloge de chaque voisin, cela permet de minimiser la durée des transmissions d'annonce et elle est mise à jour périodiquement. Comme l'émetteur connait à quel moment le récepteur va effectuer son contrôle, la durée du signal d'annonce n'excède jamais la durée maximale de dérive de l'horloge.

## Mécanisme more bit

Lors de l'envoi d'un paquet, le protocole WiseMAC ajoute dans l'entête un flag, si ce flag vaut 1 cela indique au récepteur que d'autres paquets vont suivre. Aussi, lorsque ce récepteur reçoit le premier flag, il peut passer en mode transmission pour envoyer l'acquittement et aussitôt repasser en mode réception. De son côté, l'émetteur peut envoyer le paquet n+1 aussitôt l'acquittement du paquet n reçu, car il sait que le destinataire ne se met pas en veille.

## Mécanisme extended more bit

La méthode expliquée dans la partie précédente n'augmente la bande passante qu'entre deux nœuds, cela ne permet pas de régler le problème des goulots d'étranglement que l'on peut rencontrer avec des topologies en arbre. Le protocole WiseMAC propose dans ce cas la solution du extended more bit. Dans le cas où deux sources tentent de communiquer avec le même destinataire, la première qui transmet avec le more bit à 1 se réserve l'exclusivité de la destination, mais au moment où le destinataire passe en mode émission pour envoyer l'acquittement à la source émettrice, elle envoie également une promesse à la source qui patiente, informant ce nœud qu'il ne doit pas s'endormir car son tour arrive. Lorsque la source émettrice a terminé d'envoyer ses données, le destinataire envoie cette fois non plus une promesse à la source en attente, mais un message l'autorisant à commencer son envoi. Ce système n'intervient que dans le cadre d'un échange de plusieurs paquets.