• Aucun résultat trouvé

3.4 Description

3.4.1 Mécanisme de transmission

Dans CARTEE, lorsque la couche transport reçoit un flux de donnée à partir de la couche application, elle le divise en segments pouvant être transmis par l’interface réseau. Les segments obtenus après fragmentation sont insérés dans le tampon de transmission pour être transmis par la suite vers le puits en utilisant une trans-mission à base de fenêtre glissante. A la fin de chaque intervalle de la fenêtre glissante, la couche transport attend un NACK à partir de la couche MAC. A la réception d’un NACK, le nœud source ou intermédiaire vérifie la séquence de données et exécute un test de détection de congestion, et réagit selon le cas approprié (retransmission ou ajustement du taux de transmission). Si aucun NACK n’est détecté pendant un intervalle IACKW aitingT ime, le nœud suppose que le puits est inatteignable. La figure 3.8 représente un diagramme d’activité du nœud source.

CHAPITRE 3. LE PROTOCOLE DE TRANSPORT CARTEE Page 71

FIGURE3.8 : Diagramme d’activité du nœud source

Fonctionnement au niveau du nœud intermédiaire

A la réception d’un segment, le nœud intermédiaire vérifie la séquence de segments reçus pour détecter d’éven-tuels trous. En présence de trou, la séquence insuffisante est incluse dans le segment reçu et le segment est mis dans la file d’attente de transmission. Afin de transmettre le segment, le nœud intermédiaire exécute le

méca-CHAPITRE 3. LE PROTOCOLE DE TRANSPORT CARTEE Page 72

nisme d’envoi des segments décrit dans la figure 3.8. Avant d’acheminer les segments, le mécanisme d’envoi déclenche le mécanisme de détection de congestion. En présence d’une congestion et après l’estimation du taux de transmission, le nouveau taux de transmission est inclus dans le segment à acheminer. Dans la solution CARTEE, le champ des séquences insuffisantes et celui du taux de transmission sont utilisés pour être écoutés par le voisin en amont pour lui permettre de retransmettre les segments insuffisants ou ajuster son taux de transmission.

FIGURE3.9 : Diagramme d’activité du nœud intermédiaire

Transmission à base de fenêtre glissante fixe

Afin de réduire la latence et minimiser l’occupation des caches de données au niveau des nœuds intermédiaires, la transmission à base de fenêtre glissante fixe est utilisée dans ce protocole. Le choix de la taille de la fenêtre est crucial parce qu’elle influe profondément sur la latence et l’occupation du cache de données. L’utilisation d’une taille réduite pour la fenêtre augmente la latence, alors qu’une plus grande taille nécessite un cache de données de taille importante.

Selon notre étude (équation 3.14), l’utilisation d’une taille pour une fenêtre glissante fixée à la valeur 1 (w = 1), effectue une latence est similaire à celle du mécanisme Send-And-Wait. En incrémentant la valeur, la latence converge vers la transmission continue. On observe également qu’après la valeur w = 7, aucune amélioration de la latence n’est constatée (i.e. devient négligeable). Donc, dans le protocole CARTEE, la taille

CHAPITRE 3. LE PROTOCOLE DE TRANSPORT CARTEE Page 73

de la fenêtre w est fixée à la valeur sept (07) pour réduire la latence et l’occupation du cache de données. De plus, le choix de la valeur 7 est lié aussi au champ d’acquittement qui est lui aussi de taille 7 bits. Ce champ de contrôle sera discuté dans la section suivante.

Le nœud puits collecte les segments reçus afin de les rassembler dans un flux donné complet. Lorsque le flux est complet, il sera acheminé vers la couche application.

3.4.2 Mécanisme d’acquittement

CARTEE utilise la combinaison des acquittements implicites et explicites pour notifier un nœud émetteur à propos de l’état de réception des segments. Dans ce protocole, les paquets de données ainsi que les acquitte-ments possèdent un champ ACK permettant de signaler l’état de réception des segacquitte-ments. La structure générale d’un paquet CARTEE est présentée dans la figure suivante :

FIGURE3.10 : Structure du paquet CARTEE

Acquittement implicite

Chaque nœud source ou intermédiaire transmet n segments dans chaque intervalle de fenêtre glissante, où n est obtenu comme suite :

n ≤ w ( n = w , n paquets transmets n ≤ w , n paquets retransmets ) (3.15)

CHAPITRE 3. LE PROTOCOLE DE TRANSPORT CARTEE Page 74

Un intervalle de fenêtre glissante est divisé en deux intervalles : transmission (Itx) et acquittement IACK. L’intervalle de transmission est variable et peut être calculé en utilisant l’équation suivante :

Itx= n ∗ f (3.16)

Où f est le taux de transmission du nœud. Après la transmission de n segments, chaque nœud émetteur doit attendre un temps IACK pour qu’il écoute les segments transmis par son voisin (le prochain nœud vers le puits). Si un segment est écouté durant cet intervalle, le nœud récupère le champ acquittement à partir du segment afin de vérifier l’état de réception des segments. Les segments correctement reçus seront éliminés de la file d’attente de transmission par contre les segments insuffisants restent dans cette file d’attente. Après cette étape, le nœud reprend sa transmission à partir du début de la file d’attente.

Le numéro de séquence des segments reçus (qui doivent être enlevés de la file d’attente) peuvent être obtenu à partir de l’équation suivante :

seqN o = windex∗ w

windex = FseqN o

w ; 0 ≤ windex< Ff ragCount

w

ACKseqN o = seqN o + i

(3.17)

Avec i, l’index de chaque bit ayant la valeur 1 dans le champ d’acquittement (0 ≤ i < w), et windex ∈ N , l’index de la fenêtre glissante utilisée pour transmettre les segments. FseqN o est le numéro de séquence du segment écouté, Ff ragCount , représente le nombre de segments constituants le flux de données, seqN o, le premier numéro de séquence dans la fenêtre glissante ayant l’index windex et ACKseqN o, le numéro de séquence du segment correctement reçu.

Acquittement explicite

La taille du champ d’acquittement est souvent 1 octet, et il peut être 3 octets lorsque le segment insuffisant possède un numéro de séquence inferieur à seqN os. Dans une telle situation, le premier octet doit ajuster son bit de poids fort à 1 et les deux derniers octets indiquent le numéro de séquence du segment manquant. Puisque rien ne garantit qu’un nœud émetteur puisse clairement écouter son voisin, le mécanisme d’acquittement ex-plicite doit être introduit. Exactement, lorsqu’un nœud (e.g., Ni+1dans la figure 3.12) observe un retard dans la livraison de données (après un durée tEACK), il génère un acquittement explicite au nœud précédant (e.g., Ni dans la figure 3.12). Si aucun segment n’est reçu, le nœud Ni+1tente de retransmettre des acquittements explicites pendant chaque intervalle IEACK. Les tentatives s’arrêtent après un nombre de retransmissions (M axRetries).

Le temps d’expiration de retransmission (RTO) estimé par le protocole ERTP est une source de gaspillage de l’énergie qui provoque des retransmissions non nécessaires, ceci est à cause de la bande passante fixée par cette solution. La bande passante d’une interface de communication destinée pour les RCSF ne peut pas être fixe, et elle dépend du canal sélectionné au niveau de la couche physique. Pour éviter cette estimation, CARTEE délègue cette tâche au nœud récepteur qui possède des informations supplémentaires (comme le taux de réception des segments pour estimer tEACK et IEACK. Ces deux paramètres ont un impact sur la surcharge dans le réseau (dû aux paquets de contrôles EACK). CARTEE prolonge l’attente d’acquittement explicite en utilisant un temps noté M AX_W AIT _T IM E (fixé à une valeur suffisamment grande) pour garantir que les acquittements explicites seront effectués dans cette période.

CHAPITRE 3. LE PROTOCOLE DE TRANSPORT CARTEE Page 75

FIGURE3.11 : Transactions des acquittements implicites

Estimation du temps de l’acquittement explicite

L’acquittement explicite est utilisé lorsqu’un acquittement implicite échoue parce qu’il possède plus de chances pour être reçu par rapport à l’acquittement implicite. Donc, la transmission d’un acquittement explicite s’effec-tue après la détection d’un échec pour écouter un acquittement implicite. CARTEE calcule tEACKen utilisant une technique d’estimation de la moyenne du temps de réception des segments (la technique EWMA [42]).

tEACK = Pw

i=1Wi∗ T empsReceptioni Pw

i=0Wi ∗ a (3.18)

Avec T empsReceptioni représente le temps estimé entre le segment Fi et le segment Fi−1 d’une fenêtre glissante, a, le nombre de fragments insuffisants dans une fenêtre glissante (0 < a ≤ w) (i.e. calculé en se basant sur les segments reçus au niveau du nœud récepteur). Les poids Wi utilisés dans CARTEE sont représentés dans le vecteur W eight = {1, 1, 1, 0.8, 0.6, 0.4, 0.2}.

Pour estimer l’intervalle IEACK et réduire la surcharge dans le réseau, le temps d’aller-retour (RTT) entre l’émetteur et le récepteur doit être calculé. Le RTT peut être obtenue à partir de la couche MAC de l’interface IEEE 802.15.4 en utilisant la primitive PD-DATA-Indication.

CHAPITRE 3. LE PROTOCOLE DE TRANSPORT CARTEE Page 76

FIGURE3.12 : Transactions des acquittements explicites