II-3. Algorithme de réception de données
Si un nœud reçoit des paquets alors qu’il est à l’état endormi, ces paquets vont être rejetés.
Dans le cas où un nœud est à l’état actif et qu’il n’existe pas de nœuds voulant initier des communications avec lui alors il doit lancer une période d’écoute passive.
Dans le cas où un nœud récepteur est à l’état actif et il existe un deuxième nœud voulant initier une communication avec lui, alors selon le type du paquet reçu, le nœud récepteur doit agir de la manière suivante :
-
En cas de réception d’un paquet de synchronisation SYNC, le nœud doit lancer une période d’écoute passive.
-
En cas de réception d’un paquet RTS, le nœud récepteur doit lancer une période d’écoute active.
-
En cas de réception d’un paquet DATA, si le mode de transmission est point à point alors ne rien faire sinon le nœud doit lancer une période d’écoute active.
L’algorithme de réception est le suivant :
Début
Si le nœud est à l’état « endormi » alors
rejeter le paquet reçu (return)
Sinon
Si (l’indicateur de puissance du signal reçu < 0.5) alors lancer une période d’écoute
passive de durée égale à passive_preamble_time
Sinon
Selon le type de paquet reçu faire
Si le paquet est de type « SYNC » alors
Lancer une période d’écoute passive de durée (passive_preamble_time)
recevoir le paquet SYNC
Finsi
Si le paquet est de type « RTS » alors
Lancer une période d’écoute active de durée (3*passive_preamble_time)
recevoir le paquet RTS
Finsi
Si le paquet est de type « CTS » alors
recevoir le paquet CTS
Finsi
Si le paquet est de type « DATA » alors
Si (mode unicast) alors recevoir le paquet DATA
Sinon lancer une période d’écoute active (3*passive_preamble_time)
Et recevoir le paquet DATA.
Finsi
Si le paquet est de type « ACK » alors
recevoir le paquet ACK
Finsi
Finselon
Finsi
Finsi
Fin
Dostları ilə paylaş: |