Ns2 Simuler un réseau local Ethernet à l'aide de n nœuds et définir plusieurs fenêtres de congestion de tracé de trafic pour différentes destinations sources ?
// Script ns-2 pour simuler un LAN Ethernet avec n nœuds.
// La fenêtre de congestion du tracé de trafic sera définie pour différents
// paires source-destination.
// Importez les packages nécessaires.
importer ns_lib ;
importer tcl_lib ;
// Créer un réseau.
définissez sim_time sur 100 s ; // Temps de simulation en secondes
définir num_nodes 10 ; // Nombre de nœuds dans le réseau
définir ifq 1000 ; // Taille de la file d'attente de l'interface en paquets
pour {set i 0} {$i <$num_nodes} {incr i} {
# Créez un nœud.
set node($i) [nouvelle source Agent/TCP] ;
# Attachez le nœud au réseau.
$ns attach-agent $node($i)
# Définir l'adresse MAC du nœud.
$node($i) définit MAC
# Définir l'adresse IP du nœud.
$node($i) set addr_
# Définir la taille de la fenêtre de congestion du nœud.
$node($i) défini cwnd_ 20
}
Configurer les sources et les récepteurs de trafic.
pour {set i 0} {$i <$num_nodes} {incr i} {
# Définir le trafic source pour chaque nœud.
$node($i) définit traffic_type CBR
$node($i) définit start_time_ 0s
$node($i) définit cbr_rate_ 100 Kbps
$node($i) définit rtt_ 50 ms
# Définissez l'adresse IP de destination pour chaque source.
$node($i) set packetDest_ 10.$i.2.1
# Définir le trafic récepteur pour chaque nœud.
définir le récepteur ($ i) [nouvel agent/Null]
$évier($i) définir l'adresse_ 10.$i.2.1
$ns attach-agent $sink($i)
}
Créez le commutateur Ethernet.
régler le commutateur [nouveau CMUcsma]
Attachez le commutateur aux nœuds.
pour {set i 0} {$i <$num_nodes} {incr i} {
$ns connecter $node($i) $switch
}
Exécutez la simulation.
$ns à 0,1 "$node(0) commence à envoyer"
$ns à la version 1.1 "$node(1) commence à envoyer"
$ns à la version 2.1 "$node(2) commence à envoyer"
$ns à la version 3.1 "$node(3) commence à envoyer"
$ns à la version 4.1 "$node(4) commence à envoyer"
$ns à 5.1 "$node(5) commence à envoyer"
$ns à 6.1 "$node(6) commence à envoyer"
$ns à la version 7.1 "$node(7) commence à envoyer"
$ns à la version 8.1 "$node(8) commence à envoyer"
$ns à la version 9.1 "$node(9) commence à envoyer"
$ns courir
Tracer les résultats
définir le tracé [nouveau Plot/Xgraph -largeur 640 -hauteur 480]
Sélectionnez le style de tracé.
$plot définit les barres de style
Définissez les étiquettes des axes X et Y.
$plot set xlabel "Heure(s)"
$plot set ylabel "Taille de la fenêtre de congestion"
Ajoutez des traces pour différents nœuds pour tracer la fenêtre de congestion.
pour {set i 0} {$i <$num_nodes} {incr i} {
$plot ajouter $node($i) cwnd_
}
Définissez la légende du tracé.
pour {set i 0} {$i <$num_nodes} {incr i} {
$plot ajouter une légende $node($i)
}
Définissez l'échelle automatique pour le tracé.
$plot définir la mise à l'échelle automatique
Enregistrez le tracé sous forme d'image PNG.
$plot enregistrer le graphique.png
```