Симулятор Ns2

Ns2 — это программное обеспечение, используемое для демонстрации сетевого потока пользователю. Это симулятор, который описывает маршрут или путь, по которому проходят пакеты в сети. Ниже приведен пример проблемы с решением, чтобы помочь объяснить имитацию Ns2.

Ns2 использует файл .tcl для просмотра моделирование сети.

цель

  • Эта сеть состоит из 4 узлов (n0, n1, n2, n3).

  • Дуплексные каналы между n0 и n2, а также n1 и n2 имеют пропускную способность 2 Мбит/с и задержку 10 мс. Дуплексный канал между n2 и n3 имеет пропускную способность 1,7 Мбит/с и задержку 20 мс.

  • Каждый узел использует очередь DropTail с максимальным размером 10.

  • Агент «TCP» присоединяется к n1, и устанавливается соединение с агентом «приемника» TCP, присоединенным к n3. Агент «приемника» TCP генерирует и отправляет пакеты ACK отправителю (агенту TCP) и освобождает полученные пакеты. Агент «UDP», подключенный к n0, подключен к «нулевому» агенту, подключенному к n3. «Нулевой» агент освобождает полученные пакеты.

  • Генераторы трафика «FTP» и «CBR» соответственно подключены к «TCP» и «UDP» агентов, а CBR сконфигурирован для генерации пакетов размером 1 Кбайт со скоростью 100 пакетов в секунду. FTP будет автоматически управлять трафиком в соответствии с механизмом ограничения в TCP.

  • Поток трафика UDP должен быть окрашен в красный цвет, а поток трафика TCP должен быть окрашен в синий цвет. «CBR» настроен на запуск на 0,1 секунды и остановку на 4,5 секунды; «FTP» настроен на запуск через 0,5 секунды и остановку на 4,0 секунды.

Решение

  #Creating simulator objectset ns [new Simulator] #creating two color class for ns object to  различать трафик, поступающий из разных источников $ ns color 0 blue $ ns color 1 red # Создание набора файлов nam nf [open out.nam w] $ ns namtrace-all $ nf # Finish Procedureproc finish {} {global ns nf $ ns flush  -trace close $ nf exec nam out.nam & exit 0} # Создание четырех узлов set n0 [$ ns node] set n1 [$ ns node] set n2 [$ ns node] set n3 [$ ns node] # Создание дуплексных ссылок  $ ns duplex-link $ n0 $ n2 2Mb 10ms DropTail $ ns duplex-link-op $ n0 $ n2 ориентировать вправо $ ns duplex-link $ n1 $ n2 2Mb 10ms DropTail $ ns duplex-link-op $ n1 $ n2  сориентировать вправо вверх $ ns дуплексная связь $ n2 $ n3 1. 7 Мб 20 мс DropTail $ ns duplex-link-op $ n2 $ n3 orient right # Ограничение очереди только 10 пакетами $ ns queue-limit $ n0 $ n2 10 $ ns queue-limit $ n1 $ n2 10 $ ns queue-limit $  n2 $ n3 10 # Создание агента TCP и подключение его к n1set tcp1 [новый агент/TCP] # Указание для трафика TCP синего цвета, как определено во второй строке программы $ tcp1 set fid_ 0 $ ns attach-agent $ n1  $ tcp1 # Создание агента приемника и присоединение его к n3setinkTCP3 [новый агент/TCPSink] $ ns attach-agent $ n3 $inkTCP3 # Подключение агента TCP к агенту приемника $ ns connect $ tcp1 $inkTCP3 # Указание набора агентов UDP udp0 [новое  Agent/UDP] # Указываем, что трафик udp должен иметь красный цвет, как определено во второй строке программы $ udp0 set fid_ 1 # Присоединение агента UDP с помощью n0 $ ns attach-agent $ n0 $ udp0 # Указание нулевого набора агентов null0 [новый агент /Null] # Присоединение агента NULL с помощью n3 $ ns attach-agent $ n3 $ null0 # Подключение агентов udp0 и null0 для передачи данных между n0 и n1 $ ns connect $ udp0 $ null0 # Создание FTP-агента для трафика и att  привязка к tcp1set ftp0 [новое приложение/FTP] $ ftp0 attach-agent $ tcp1 # Указание агента CBR для генерации трафика через udp0 agentset cbr0 [новое приложение/трафик/CBR] # Каждый пакет имеет 1 Кбайт $ cbr0 set packetSize_ 1000  # Каждый пакет будет сгенерирован через 10 мс, т. Е. 100 пакетов в секунду. $ Cbr0 set interval 0,010 # Присоединение cbr0 с udp0 $ cbr0 attach-agent $ udp0 # Запуск FTP-трафика $ ns при 0.5 "$ ftp0 start" $ ns at 4.0 "  $ ftp0 stop "# Запуск cbr0 при времени моделирования 0,5 $ нс при времени моделирования 0,1" $ cbr0 start "# Остановка cbr0 при времени моделирования 4,5 $ ns при 4,5" $ cbr0 stop "# Вызов процедуры завершения $ ns при 5,0" завершение "  # Запустить симуляцию $ ns run  

Комментарии в файле .tcl представлены символом ‘#’.

Вытянутое решение

Оцените статью
nanomode.ru
Добавить комментарий