WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Greedy perimeter stateless routing sur omnet++

( Télécharger le fichier original )
par Hassen DKHIL
Ecole nationale supérieur d'informatique - Ingénieur Informatique 2009
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Conclusion

Tout le long de ce chapitre, nous avons listé les besoins fonctionnels et non fonctionnels de notre projet accompagnés de diagrammes des cas d'utilisations. Nous allons détailler dans le chapitre suivant la conception de notre application à travers a les diagrammes de séquences, les diagrammes d'état transition ainsi que les diagrammes de classes.

Chapitre 5: Conception

Introduction:

Dans ce chapitre, nous allons présenter les diagrammes de séquences qui décrivent les services du protocole GPSR et surtout les services de la couche réseau. De plus, nous allons présenter les différentes classes utiles pour la partie implémentation.

1. Diagrammes de séquences

Diagramme d'interaction qui représente les objets participant à une interaction particulière et les messages qu'ils échangent organisé en séquences horaires. Axé sur ce que fait un système et non sur la manière dont il le fait, un diagramme de séquence définit la Logique d'une instance particulière d'un CAS d'utilisation. En général, dans un diagramme de séquence, la Dimension verticale représente les heures (de haut en bas) et la Dimension horizontale représente les différents objets.

1.1. Diagramme de séquences : Le scénario de simulation

Figure 5.1. : Diagramme de séquences : Le scénario de simulation

1.2. Diagramme de séquences :
Traitement lors de réception d'un beacon


Figure 5.2.
: Diagramme de séquences : Traitement lors de réception d'un beacon


Lors de la réception du paquet beacon, une mise à jour de la table de routage sera effectuée, Ces mises à jour régulières permettent de communiquer les modifications de topologie .Si le temps est dépassé et le noeud réceptrice ne reçoit pas le beacon du noeud enregistré dans la table de routage alors ce dernier sera supprimé.
1.3. Diagramme de séquences :
émission d'un message à partir de la couche Application



Figure 5.3.
: Diagramme de séquences : émission d'un message à partir de la couche Application

Ce diagramme explique les étapes à franchir pour envoyer un message de données à partir du noeud local vers une autre destinataire.

En premier temps, la couche application crée le message, à ce qui concerne les données à transmettre et le noeud destinataire .Puis l'interface supérieur passe le message au Greedy mode pour déterminer s'il y a une possibilité pour le transférer au plus proche voisin. Après un calcule de distance séparant le noeud local avec l'ensemble de ses voisins deux cas s'opposent :

ü Un transfert possible avec le Greedy mode (il ya un voisin plus proche que les autres)

ü Il n y a pas un voisin a l'apporté qui le plus proche voisin alors on doit passer au Perimeter mode.

A ce qui concerne le premier cas on termine par encapsuler le message dans interface inferieure et puis son envoi.

Dans le deuxième cas, il se déroule l'algorithme du perimeter mode .En effet, le module Perimetre mode consulte la liste des voisins du table de routage et en utilisant la règle de la main droite détermine le noeud prochain .Puis, il se déroule l'encapsulation et l'envoi.

1.4. Diagramme de séquence : le traitement d'un paquet de données lors de la réception

Figure 5.4. : Diagramme de séquences : le traitement d'un paquet de données lors de la réception

Ce diagramme de séquence décrit l'ensemble des traitements effectués lors de la réception d'un paquet de données. Après la décapsulation du paquet, l'interface inferieur identifie le type de message reçu.

Ø Si c'est un Greedy-mode message, il va être passé au Greedy-Mode. Après, une comparaison entre l'adresse de la destination et l'adresse du noeud locale deux cas possibles. Si le noeud locale est la destination, le message va être repassé à l'interface supérieur puis à la couche application. Sinon ,on va appliquer l'algorithme du Greedy-MODE en déterminant le plus proche voisin dont on va lui transmettre le message ,en se basant sur la liste de voisin du Table du Routage. Dans le cas ou on ne peut pas déterminer le plus proche voisin, on passe à l'algorithme du Perimetre-MODE.

Si c'est un Perimetre-mode message, on fera le même traitement si le message atteint la destination, sinon il y'aura d'abord, un essai d'envoi en utilisant le Greedy-Mode. Dans le cas ou on ne peut pas transmettre ce message avec l'algorithme du Greedy-Mode, le message va être retransmis au noeud voisin en utilisant la règle de la main droite.

2. Diagramme d'état transition:

2.1. Algorithme Greedy mode:

Figure 5.5. Diagramme d'état transition pour greedy mode

2.2. Algorithme Perimeter mode:

Figure 5.6. Diagramme d'état transition pour perimeter mode

Comme l'indique le figure 5.5, à l'arrivé d'un paquet de donnée le Greedy-Mode vérifie si le noeud local est la destination ou bien non. Si c'est la destination, le paquet passera à la réception. Sinon le Greedy-Mode va effectuer un relaie de ce paquet. Alors, il détermine le plus proche voisin qui devrait être unique. Dans le cas d'un échec, il passera au Perimetre-Mode décrit par le diagramme d'état de la figure 5.6. En effet, Perimetre-Mode applique la règle de la main droite pour retransmettre le message. D'ailleurs, l'algorithme de la main droite détermine le noeud adéquate en utilisant un calcule d'angle ayant comme sommet le noeud locale, comme première arrête celle formé par le noeud local et le noeud destination et comme deuxième arrête le noeud locale et le noeud voisin.

3. Diagramme de classe :

Figure 5.7. Diagramme de classe global

ü Interprétation des composants du diagramme de classe :

· BasicLayer: c'est une classe offerte par la Mobility FrameWork. Elle offre une abtraction simple permettant de développer une couche réseau ou une couche MAC. Elle offre les fonctionnalités de bases dont ont besoin les couches réseaux et MAC comme le handlemessage() et le handleselfmessage() nécessaires aux traitements des paquets.

· GPSRnetwLayer: c'est une classe qui hérite de BasicLayer. Elle correspond au module simple GPSRnetwLayer et constitue la couche réseau du noeud. Cette couche a été implémentée selon la spécification du protocole GPSR. Parmi les paramètres de cette classe on peut citer le headerlength qui spécifie la longueur de l'entête du paquet et le mynetwaddr qui est l'adresse réseau du noeud.

· BasicAppLayer: c'est une classe offerte par la Mobility FrameWork. Elle est la classe générique dont héritent toutes les couches applicatives développées sous la Mobility FrameWork.

· ApplicationLayer: c'est une classe héritée à partir de la BasicAppLayer. C'est une couche applicative qui se contente d'envoyer des messages qui seront encapsulés et routés par la GPSRnetwLayer.

· Cmessage: c'est une classe offerte par OMNet++. Elle représente des messages, des paquets et même des évènements. La plupart des messages et paquets implémentés dans OMNet++ héritent de cette classe.

· GPSRPKT: c'est une classe qui hérite de cmessage. Elle représente le paquet utilisé par GPSRnetwLayer avec ses spécificités.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Je voudrais vivre pour étudier, non pas étudier pour vivre"   Francis Bacon