>> Tecnologia eletrônica >  >> Telefones >> Estações de conferência

Ns2 Simular uma LAN Ethernet usando n nós e definir múltiplas janelas de congestionamento de tráfego para diferentes destinos de origem?

```
// script ns-2 para simular uma LAN Ethernet com n nós.
// A janela de congestionamento do gráfico de tráfego será definida para diferentes
//pares origem-destino.

//Importa os pacotes necessários.
importar ns_lib;
importar tcl_lib;

//Crie uma rede.
definir sim_time 100s; //Tempo de simulação em segundos
definir num_nodes 10; //Número de nós na rede
definir ifq 1000; //Tamanho da fila de interface em pacotes

para {conjunto i 0} {$i <$num_nodes} {incr i} {
# Crie um nó.
set node($i) [nova fonte de agente/TCP];

# Anexe o nó à rede.
$ns agente de anexação $node($i)

# Defina o endereço MAC do nó.
$node($i) definir MAC

# Defina o endereço IP do nó.
$node($i) set addr_

# Define o tamanho da janela de congestionamento do nó.
$node($i) conjunto cwnd_ 20
}

Configurar origens e destinos de tráfego.


para {conjunto i 0} {$i <$num_nodes} {incr i} {
# Defina o tráfego de origem para cada nó.
$node($i) definir tráfego_type CBR
$node($i) definir start_time_ 0s
$node($i) definir cbr_rate_ 100Kbps
$node($i) definir rtt_ 50ms

# Defina o endereço IP de destino para cada fonte.
$node($i) definir pacoteDest_ 10.$i.2.1

# Defina o tráfego do coletor para cada nó.
set sink($i) [novo Agente/Nulo]
$sink($i) definir endereço_ 10.$i.2.1
$ns agente de anexação $sink($i)
}

Crie o switch Ethernet.


definir interruptor [novo CMUcsma]

Anexar switch aos nós.


para {conjunto i 0} {$i <$num_nodes} {incr i} {
$ns conecta $node($i) $switch
}

Execute a simulação.


$ns em 0,1 "$node(0) começa a enviar"
$ns em 1.1 "$node(1) começa a enviar"
$ns em 2.1 "$node(2) começa a enviar"
$ns em 3.1 "$node(3) começa a enviar"
$ns em 4.1 "$node(4) começa a enviar"
$ns em 5.1 "$node(5) começa a enviar"
$ns em 6.1 "$node(6) começa a enviar"
$ns em 7.1 "$node(7) começa a enviar"
$ns em 8.1 "$node(8) começa a enviar"
$ns em 9.1 "$node(9) começa a enviar"

$ns executado

Traçar resultados


definir gráfico [novo Plot/Xgraph -largura 640 -altura 480]

Selecione o estilo de plotagem.


$plot definir barras de estilo

Defina os rótulos dos eixos X e Y.


$plot set xlabel "Tempo(s)"
$plot set ylabel "Tamanho da janela de congestionamento"

Adicione rastreamentos para nós diferentes para traçar a janela de congestionamento.


para {conjunto i 0} {$i <$num_nodes} {incr i} {
$plot adicionar $node($i) cwnd_
}

Defina a legenda do gráfico.


para {conjunto i 0} {$i <$num_nodes} {incr i} {
$plot adicionar legenda $node($i)
}

Defina a escala automática para o gráfico.


$plot ativar escala automática

Salve o gráfico como uma imagem PNG.


$ plot salvar gráfico.png

```