SMAC Objectif : réduire les pertes d’énergie dûes aux causes qu’on a identifiées (idle-listening, collision, overhearing et control overhead.). Caractéristiques : Les trois composantes de base de SMACv1et2 sont : - Periodic Listen and Sleep - Collision and Overhearing avoidance - Message passing - Adaptive listening (SMACv2) 1-Periodic listen and Sleep : L’idée de SMAC est de limiter au maximum l’état « Idle-listening » en entrainant les nœuds dans un état endormi périodique. La consommation d’énergie en mode « Sleep » est trois fois plus petite que celle consommée en mode « idle listening ». Syncronisation et notion de cluster virtuel: Chaque nœud est libre de choisir sa propre séquence d’état « listen/sleep ». Cependant, afin de réduire « control overhead », chaque noeud doit synchroniser sa séquence d’états(listen/sleep) avec les nœuds qui lui sont proches : Les nœuds s’échangent par diffusion de paquets SYNC, leurs séquences d’états. Les nœuds synchronisés autour de la même séquence d’état forment un cluster virtuel et peuvent communiquer ensemble sans passer par un cluster head => SMAC permet une topologie peer-to-peer contrairement à TDMA et TRAMA 2-Evitement de collision Le principe est le même que celui utilisé dans DCF (distributed coordinated function) pour le cas de IEEE 802.11 qui utilise l’échange de RTS/CTS (problème de la station cachée) et l’écoute virtuel/physique de la porteuse : NAV… 3-Evitement du phénomène d’Overhearing Overhearing : le nœud reçoit des paquets qui sont normalement destinés à d’autres nœuds. SMAC essaie de remédier à ce problème en entraînant les nœuds directement voisins à l’émetteur et récepteur dans une phase de « sleep » juste après qu’ils entendent un paquet RTS ou CTS qui ne leur sont pas destinés (Voir exemple traité). => le throughput diminue (voir explication dans TMAC) 4-Message Passing L’approche utilisé dans SMAC pour la transmission des longs msgs est de fragmenter le long message en de petits fragments qui seront transmis enemble en utilisant un seul RTS et un seul CTS grâce auquels le support va être réservé pendant toute la transmission de ces fragments. Chaque petit fragment envoyé par l’émetteur doit être acquité par le récepteur. Avantage de cette approche en matière d’énergie: La transmission d’un long message en un seul paquet peut coûter beaucoup d’énergie à son émetteur car en cas d’erreurs survenant lors de cette transmission, il faut réemettre. dans le cas où on transmet ce long message en plusieurs petits paquets, on aura un retard de transmission important (RTS et CTS pour chaque paquet). Dans IEEE 802.11, si un émetteur échoue dans la réception de l’acquitement (ACK) d’un fragment X émis alors, il doit stopper sa transmission et essayer de réserver une autre fois le support. A ce moment, n’importe quel autre nœud a une chance pour transmettre ses données. Cette approche peut causer un retard important vis à vis du récepteur de X si ce récepteur a vraiement besoin du message entier pour débuter son traitement. L’approche du « message passing » adopté par SMAC remédie à ce problème puisqu’elle ne stoppe pas la transmission mais plutôt augmente le temps de transmission (champ existant dans RTS et CTS) et retransmet le paquet entier => Avec SMAC, moins d’attente et de contention. 5-Adaptive listening Lorsque le traffic est important, les intervalles périodiques « sleep » peuvent engendrer un retard de transmission qui s’accumule quand le paquet passe d’un saut à un autre. C’est pour cette raison que la nouvelle version de SMAC introduit un mécanisme appelé « adaptive listen » qui commute le nœud du mode « low-duty-cycle » vers un mode plus active et ceci dans le cas où le traffic est important. TMAC Objectif : réduire les pertes d’énergie dûes aux phénomènes d’idle listening… C’est un protocole qui a été conçu afin de remédier aux faiblesses du protocole SMAC en matière de charge de trafic variable. TMAC rend le duty-cycle dépendant du volume du trafic, contrairement au protocole SMAC qui adopte un duty-cycle fixe : - Si trafic lourd : augmenter le duty-cycle pour réduire le temps d’attente. - Si trafic faible : réduire le duty-cycle pour économiser de l’énergie. Principe de fonctionnement : Chaque nœud se réveille périodiquement pour communiquer avec ses voisins et ensuite retourne à son état endormi jusqu’au début du prochain cycle. Entre temps, les messages destinés à leur récepteur vont être stockés dans son buffer. La période « active » se termine quand il n’y a plus aucun événement d’activation (réception ou émission) pendant une durée TA (time-out timer) qui détermine la durée d’idle listening par séquence listen/sleep. Par conséquent, la période active est adaptée à la charge du traffic. Synchronisation : Le shéma de synchronisation décrit dans SMAC est adapté par TMAC. Ce type de synchronisation pousse les nœuds à former des clusters de telle sorte que chaque cluster est décrit par un schedule. Ceci permet un broadcast efficace et évite un maintien d’informations pour chaque nœud. Evitement de l’Overhearing TMAC considère l’évitement d’Overhearing comme une option du fait qu’il peut perturber les communications entre les nœuds dans le cas d’application qui requiert le maximum de throughput. En effet, pendant la période où le nœud A va entrer en phase « sleeping », il peut manquer la réception de paquets RTS ou CTS destinés vers lui et va donc perturber les communications avec autrui lors de son réveil. Malgré que l’évitement de l’Overhearing est un phénomène qui économise de l’énergie (cas de SMAC), il n’est pas conseillé de l’utiliser dans les applications où on veut assurer un maximum de throughput (option assuré grâce à TMAC). Le protocole TRAMA (Traffic-adaptive medium access protocol) Objectif: réduire la consommation d’énergie dans les réseaux de capteurs tout en assurant que les transmissions unicast, multicast, broadcast s’effectuent sans collision TRAMA se base sur une approche TDMA. Principe de fonctionnement : Le protocole TRAMA consiste en trois composants : - Le protocole voisin ou Neighbor Protocol (NP). - Le protocole d’échange de « schedule » ou Schedule Exchange Protocol (SEP). - L’algorithme d’élection adaptée ou Adaptive Election Algorithm (AEA). Les deux premiers protocoles NP et SEP permettent à un noeud d’échanger des informations (sur son voisinage) ainsi que son « schedule » avec ses voisins situés à deux sauts de lui. Quant à l’algorithme AEA, il utilise les informations échangées (Schedule et informations sur le voisinage) afin de sélectionner les émetteurs et les récepteurs pour le slot de temps courant, et permet aux autres noeuds ainsi, d’entrer en mode « low-power ». il existe deux types d’accès au support en fonction des slots de temps: - accès aléatoire (possiblité de collision) lors des slots de temps destinés à la signalisation : mis à jour des informations sur les nœuds, auto-configuration du réseau lors de l’ajout ou de la suppression de nœud. - accès déterministe (pas de collision) lors des slots de temps destinés à la transmission. TRAMA est un protocole qui maintient un bon throughput, une latence acceptable et une équité entre les nœuds. Le protocole Wise-MAC Wise-MAC utilise la technique de « Preamble Sampling » pour minimiser la perte d’énergie dûe au mode « idle listening ». Remarque : La technique de « Preamble Sampling » consiste à écouter le canal périodiquement pendant des périodes assez courtes pour vérifier s’il y a une activité sur le canal. Si le canal est occupé, le récepteur continue son écoute jusqu’à ce qu’un paquet lui parvient ou jusqu’à ce que le canal retourne à son état libre. Au niveau de l’émetteur, un préambule « Wake-up » est transmis avant chaque message pour s’assurer que le récepteur sera à un état « actif » lorsque le message va lui arriver. Wise-MAC offre dans ce cas une méthode qui permet de déterminer dynamiquement la longueur de ce préambule de telle sorte qu’il soit le plus petit possible pour économiser plus d’énergie. Cette méthode consiste à connaître les schedules « sleep » des voisins directes de l’émetteur. En connaissant ainsi le schedule « sleep » du destinataire, l’émetteur va émettre son préambule « Wake-up » pendant une période minimum Tp juste avant que le récepteur débute sa nouvelle période d’écoute. Chaque nœud maintient une table contenant les schedules « sleep » des voisins directes, qui sera lu et mis à jour par le nœud lui-même et ceci grâce au paquet ACK qui lui est renvoyé et qui non seulement acquitte son envoi mais aussi contient la durée restante au récepteur pour débuter son prochain écoute. Evitement de collision : Wise-MAC utilise une technique CSMA non-persistent avec un choix aléatoire du préambule « Wake-up ». Pour prévenir des collisions causées par deux ou plusieurs nœuds qui veulent émettre des données vers le même destinataire et au même instant, un préambule de réservation du canal est utilisé juste avant le préambule « Wake-up ». Le protocole LMAC L’objectif principal est de réduire le nombre de changements d’états du transceiver qui consomment eux aussi de l’énergie. Cette réduction revient en fait à rendre l’intervalle « sleep » adapté au volume du trafic de données. Le protocole LMAC est basé sur la technique TDMA : A chaque slot de temps, LMAC assigne un nœud qui sera le contrôleur de ce slot de temps. Durant un slot de temps, le nœud contrôleur de ce slot transmet un message qui contient deux sections qui sont respectivement : - le message de contrôle qui porte l’ID du contrôleur du slot de temps, l’ID du slot de temps utilisé, la distance (en nombre de sauts vers la passerelle, l’adresse du destinataire et la longueur de l’unité de données. - l’unité de données qui contient les données à transmettre. Synchronisation : La synchronisation entre les différents nœuds est maintenue grâce à l’ID du slot de temps utilisé. Principe de choix des slots de temps : Quand le réseau est initialisé (tous les nœuds sont power on), tous les nœuds sont désynchronisés. La passerelle (AP) est dans ce cas le responsable de la synchronisation de tous les nœuds. En effet, la passerelle commencera par le contrôle de son propre slot de temps et elle émettra un message de contrôle grâce auquel les nœuds voisins (1er saut) de la passerelle vont pouvoir synchroniser leurs « schedules ». Ensuite, ces nœuds vont choisir aléatoirement leurs slots de temps qu’ils vont contrôler (à part celui choisi par l’AP). Une fois les slot de temps sont choisis, ces nœuds vont émettre leurs messages de contrôle pour continuer le processus de synchronisation. Evitement du choix d’un slot déjà alloué (des messages de contrôle précisément): les nœuds maintiennent des tables contenant les identifiants des slots alloués aux nœuds situés dans un périmètre de trois sauts. Le protocole AI-LMAC L’objectif principal de ce protocole est d’adapter les opérations du protocole MAC aux besoins de l’application donc rendre le protocole dépendant de l’application ce qui n’est pas le cas pour la majorité des protocoles MAC proposés dans les WSN. AI-LMAC a été conçu pour les applications dans lesquelles l’opérateur (utilisateur, application) envoie des requêtes sur le réseau pour découvrir l’état courant d’un ou plusieurs capteurs. En connaissant les nœuds qui vont répondre à cette requête, AI-LMAC va ajuster le trafic qui sera généré par ces nœuds. Contrairement à LMAC, le protocole AI-LMAC permet aux nœuds de contrôler un ou plusieurs slots de temps. Il peut aussi faire varier le nombre de slots alloués à un nœud en fonction du trafic rencontré par ce nœud (en réception et émission), ceci permet d’assurer une équité entre les nœuds dans le sens que la bande passante allouée au nœud correspond bien au trafic rencontré par le nœud. AI-LMAC suppose que tous les nœuds du réseau sont organisés selon la structure d’un arbre dont la racine est la passerelle. Par conséquent, une relation père-fils existe entre tous les nœuds du réseau. La synchronisation Elle est la même que dans LMAC. Une fois que les nœuds sont synchronisés, la prochaine étape est l’allocation des slots de temps par le nœud père selon la quantité de données générée par le nœud fils suite à une éventuelle requête. Principe d’allocation des slots Mon analyse L’user interroge le réseau, des capteurs bien précis vont répondre. En fonction des requêtes, des statistiques (dans le DDT) vont être alors effectuées au niveau de chaque noeud sur le réseau. Ces statistiques vont être utilisées par le nœud père pour connaître les capteurs qui génèrent le plus d’informations (qui sont les plus importants). En connaissant ces capteurs, le nœud père va allouer les slots de temps (plusieurs pour les plus importants).