Introduction générale cadre du projet Chapitre : Introduction 7


II-2. L'algorithme d’émission de données



Yüklə 351,68 Kb.
səhifə52/81
tarix09.01.2022
ölçüsü351,68 Kb.
#93754
1   ...   48   49   50   51   52   53   54   55   ...   81

II-2. L'algorithme d’émission de données

Cet algorithme concerne les types de données (SYNC, RTS, CTS, DATA, ACK) qu’un nœud pourrait émettre selon le mode de transmission « unicast » ou « broadcast ». En effet, un nœud ne peut émettre des données que s’il est à l’état actif, que son compteur NAV (vecteur d’allocation réseau) est à 0 et que l’indicateur de puissance du signal reçu est supérieur à 0.5.

Avant l’émission de paquet SYNC (paquet de synchronisation), de paquet RTS ou de paquet DATA en mode « broadcast », un nœud doit impérativement contentionner le canal pendant une durée égale TYPE_CONTEND_TIME avec TYPE = {SYNC, RTS, CTS, DATA}.

Pour le cas d’émission de paquet SYNC, le nœud reste en écoute passive de durée égale à passive_preamble_time.


Pendant l’émission de paquet RTS, CTS et DATA (mode « broadcast »), la période active est égale à 3 fois la valeur de « passive_preamble_time » car, lors d’une telle émission, de nouvelles transmissions de données vont être initiées.

Pour le cas d’émission de paquet DATA en mode « unicast » ou de paquet ACK, le nœud n’a pas besoin de contentionner le canal.



L’algorithme d’émission de données est le suivant :

Début
Si (l'état du noeud est “actif”)

alors

Si la variable NAV est à zéro alors

Si ((l'indicateur de puissance du signal reçu) > 0,5) alors

Rester à l’écoute passive (passive_preamble_time)

Sinon

Selon l'état du noeud faire
1er Cas : le noeud contentionne le canal (PROTO_STATE_CONTEND)

Selon le prochain état du nœud (next_state) faire :

1er sous-cas: Si le noeud se prépare à envoyer un paquet SYNC

(état PROTO_STATE_SEND_SYNC) alors il commence par contentionner le canal

pendant une durée SYNC_CONTEND_TIME.

rester à l’écoute passive (passive_preamble_time) et émettre le paquet SYNC

2ème sous-cas: Si le noeud se prépare à envoyer un paquet RTS

(état PROTO_STATE_SEND_RTS) alors il commence par contentionner le canal

pendant une durée RTS_CONTEND_TIME.

lancer une période d’écoute active (3 * passive_preamble_time) et émettre le paquet RTS

le nœud va changer d’état (état PROTO_STATE_WFCTS) pour montrer qu'il sera en

attente du paquet CTS pendant une durée égale à TIMEOUT_WFCTS.

3ème sous-cas: Si le noeud se prépare à envoyer un paquet DATA en mode

broadcast (état PROTO_STATE_SEND_DATA) alors il doit commencer par

contentionner le canal pendant une durée DATA_CONTEND_TIME.

lancer une période d’écoute active et émettre le paquet DATA.
4ème sous-cas: Si le noeud se prépare à envoyer un paquet CTS (état

PROTO_STATE_SEND_CTS) alors il doit commencer par contentionner le canal

pendant une durée CTS_CONTEND_TIME.

Le nœud va changer d’état (état PROTO_STATE_WFDATA) pour montrer qu'il sera

en attente du paquet DATA pendant une durée égale à TIMEOUT_WFDATA.

FinSelon
2ème cas : Si le noeud se prépare à envoyer un paquet DATA en mode unicast

(état PROTO_STATE_SEND_DATA) alors émettre le paquet DATA et

changer d’état (état PROTO_STATE_WFACK) pour montrer qu'il sera en attente du

paquet ACK pendant une durée égale à TIMEOUT_WFACK.
3ème cas: Si le noeud se prépare à envoyer un ACK (état

PROTO_STATE_SEND_ACK) alors émettre le paquet ACK.


FinSelon
Finsi
Fin


Yüklə 351,68 Kb.

Dostları ilə paylaş:
1   ...   48   49   50   51   52   53   54   55   ...   81




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2025
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin