TP4 : modélisation d'un réseau plus complexe


Nous allons, pour ce dernier TP, réaliser un réseau plus complexe et simuler trois flux FTP qui vont devoir se partager la bande passante. Nous allons ensuite visualiser le résultat à l'aide de graphes.

Vous devrez d'abord contruire la topologie suivante (vous pouvez utiliser le convertisseur) (chaque lien aura la même capacité):

Cette topologie peut simuler différents LANs reliés entre eux par un "backbone". (Ce backbone devrait permettre des débits plus élevés pour être réaliste, mais il faudrait alors générer de nombreux flux pour obtenir quelque chose d'exploitable).

Pour simuler les congestions, nous utiliserons les files d'attente de chaque noeud. Pour cela, vous mettrez deux lignes supplémentaires pour configurer ces iles d'attente que nous choisissons toujours avec une politique de service FIFO.

$ns queue-limit $n0 $n1 10
$ns duplex-link-op $n0 $n1 queuePos 0.25

La première ligne indique la taille de la mémoire en nombre de paquets pouvant être en attente dans le noeud.
La deuxième ligne indique la position de la file d'attente dans le fichier de visualisation (cette ligne n'a aucun intérêt pour ns). 0.25 signifie un huitieme de tour en partant de l'horizontale (c'est un nombre en radians).
Il faut donc rajouter ces deux lignes après avoir défini les quatre liens centraux.

Nous allons faire tomber des liens, donc nous allons utiliser le protocole DV pour le routage dynamique.

Vous définirez quatre connexions FTP entre 6 et 9, puis entre 7 et 4 et enfin entre 8 et 5. (Penser à appliquer trois couleurs différentes aux connexions)
Pour visualiser le trafic, nous pourrons utiliser les variables d'état de chaque connexion tcp "ack_" qui donne le numéro le plus élevé des paquets acquittés. Pour construire les fichiers de trace, nous définirons une fonction traceack :

proc traceack {} {
    global tcp ackt
    set ns [Simulator instance]
    set time 0.01
    set now [$ns now]
    puts $ackt "$now [$tcp set ack_]"
    $ns at [expr $now+$time] "traceack"
    }

Ns va écrire dans le fichier défini par la variable ackt (fichier que nous avons   préalablement ouvert en écriture) toutes les 10 ms le temps plus le nombre de paquet acquitté par le flux nommé tcp. Il faut la lancer manuellement la première fois par la ligne habituelle :

$ns at 0.0 "traceack"

Vous améliorerez cette fonction pour faire la trace des trois flux FTP dans trois fichiers différents.

Pour visualiser les traces, vous pourrez utiliser le logiciel GNUplot (par exemple).

Enfin, vous lancerez le premier FTP à l'instant 0.3, le deuxième à 0.5, le troisième à 1.0.
Vous ferez tomber le lien du noeud 0 au noeud 3 à l'instant 2.0 et remettrez en marche le lien à l'instant 2.5.

Voici le fichier nam de la simulation, ainsi que les trois fichiers de trace : ackt1, ackt2 et ackt3


[TP précédent] [Retour à la page d'accueil]