Ns2 ¿Simular una LAN Ethernet utilizando n nodos y establecer múltiples ventanas de congestión de tráfico para diferentes fuentes y destinos?

```

// script ns-2 para simular una LAN Ethernet con n nodos.

// La ventana de congestión del gráfico de tráfico se configurará para diferentes

// pares origen-destino.

// Importar paquetes necesarios.

importar ns_lib;

importar tcl_lib;

// Crea una red.

establecer sim_time 100s; // Tiempo de simulación en segundos

establecer num_nodos 10; // Número de nodos en la red

establezca ifq 1000; // Tamaño de la cola de la interfaz en paquetes

para {establecer i 0} {$i <$num_nodes} {incr i} {

# Crea un nodo.

establecer nodo ($i) [nuevo Agente/fuente TCP];

# Conecte el nodo a la red.

$ns agente adjunto $nodo($i)

# Establecer la dirección MAC del nodo.

$nodo($i) establece MAC

# Establecer la dirección IP del nodo.

$nodo($i) establecer dirección_

# Establecer el tamaño de la ventana de congestión del nodo.

$nodo($i) establece cwnd_ 20

}

Configurar fuentes y sumideros de tráfico.

para {establecer i 0} {$i <$num_nodes} {incr i} {

# Establecer el tráfico de origen para cada nodo.

$nodo($i) establece tráfico_tipo CBR

$nodo($i) establece start_time_ 0s

$nodo($i) establece cbr_rate_ 100Kbps

$nodo($i) establece rtt_ 50ms

# Establezca la dirección IP de destino para cada fuente.

$nodo($i) establece paqueteDest_ 10.$i.2.1

# Establecer el tráfico receptor para cada nodo.

establecer fregadero ($i) [nuevo agente/nulo]

$sumidero($i) establecer dirección_ 10.$i.2.1

$ns agente adjunto $sumidero($i)

}

Cree el conmutador Ethernet.

interruptor de ajuste [nuevo CMUcsma]

Conecte el interruptor a los nodos.

para {establecer i 0} {$i <$num_nodes} {incr i} {

$ns conectar $nodo($i) $cambiar

}

Ejecutar la simulación.

$ns en 0.1 "$nodo(0) comienza a enviar"

$ns en 1.1 "$nodo(1) comienza a enviar"

$ns en 2.1 "$nodo(2) comienza a enviar"

$ns en 3.1 "$nodo(3) comienza a enviar"

$ns en 4.1 "$nodo(4) comienza a enviar"

$ns en 5.1 "$nodo(5) comienza a enviar"

$ns en 6.1 "$nodo(6) comienza a enviar"

$ns en 7.1 "$nodo(7) comienza a enviar"

$ns en 8.1 "$node(8) comienza a enviar"

$ns en 9.1 "$nodo(9) comienza a enviar"

$ ns ejecutar

Resultados de la trama

Establecer gráfico [nuevo gráfico/Xgraph -ancho 640 -alto 480]

Seleccione el estilo de trama.

$ barras de estilo de conjunto de trazado

Establezca las etiquetas de los ejes X e Y.

$plot set xlabel "Tiempo(s)"

$plot establece ylabel "Tamaño de ventana de congestión"

Agregue seguimientos para diferentes nodos para trazar la ventana de congestión.

para {establecer i 0} {$i <$num_nodes} {incr i} {

$plot agregar $nodo($i) cwnd_

}

Establece la leyenda de la trama.

para {establecer i 0} {$i <$num_nodes} {incr i} {

$plot agregar leyenda $nodo($i)

}

Establezca la escala automática para el gráfico.

$plot establece la escala automática en

Guarde el trazado como una imagen PNG.

$trazar guardar gráfico.png

```