1 / 15

ВВЕДЕНИЕ В NS2

ВВЕДЕНИЕ В NS2. Киричёк Р.В. Network Simulator (ns-2) Почему специалисты используют имитационное моделирование сетей связи? подтверждение правильности работы протоколов ; создание экспериментальных топологий сетей; низкая цена в $, время, сотрудничество. Почему мы выбираем пакет ns 2?

teddy
Download Presentation

ВВЕДЕНИЕ В NS2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ВВЕДЕНИЕ В NS2 Киричёк Р.В.

  2. Network Simulator (ns-2) • Почему специалисты используют имитационное моделирование сетей связи? • подтверждениеправильностиработыпротоколов; • создание экспериментальных топологий сетей; • низкая цена в $, время, сотрудничество. • Почему мы выбираем пакет ns2? • Обеспечиваетимитацию: • протоколов: TCP, UDP, HTTP и т.д. • Модели трафика: Web Traffic, CBR и др. • Инструментызаданиянужнойтопологии • Большойпакетинструментоввизуализации • (люди верят, когда видят работу сети)

  3. Языки программирования в NS2 • C++ планировщик событий и протоколы (чаще всего) • TCL scriptsпротоколы (главным образом расширения к ядру C ++) • TCL objectsвыставляют интерфейс языка C ++ (скрытые сценарии) в соответствии с конфигурацией системы (значения по умолчанию и т.д.)

  4. Пример использования языка TCL set a 1 set b [expr $a + 2] proc list_total {list} { set tmp 0 foreach l $list { incr tmp $l } return $tmp } set c [list_total {1 2 3 4 5}] puts "a: $a b: $b c: $c" Пример использования объектного расширения языка TCL: oTCL Class car car instproc init (args) { $self instvar wheels set wheels 4 } Class vw -superclass car vw instproc init {args} { $self instvar wheels vendor set vendor "vw" eval $self next $args } set a [new car] puts "A: a car with [$a set wheels ] wheels" set b [new vw] puts "B: a [$b set vendor ] with [$b set wheels ] wheels"

  5. Стадии моделирования простейшей сети:Шаг 1: Создание топологииСначала мы создаем объект моделирования (Simulator object), который будем использовать, чтобы сгенерировать узлы и каналы. Нижеописанный код создаст топологию (2 узла, 1 связь между ними), но не будет генерировать трафик. Можно задать любой другой код tcl с большим числом узлов, а время моделирования будет задаваться с помощью комады $ns at... Здесь мы зададим модельное время равное 5 секундам.#Создание объекта моделированияset ns [new Simulator] Ask ns for nodes set nO [$ns node] set nl [$ns node]#Создание дуплексного звена между узлами n0 & n1 $ns duplex-link $n0 $n1 1Mb 10ms DropTail#Вызов команды «exit 0»через 5 секунд модельного времени $ns at 5.0 "exit 0“#Запуск моделирования $ns run

  6. Шаг 2: Создание агентов приложений Агенты осуществляют различные связи между узлами. Эти связи имеют различные типы протоколов: TCP, UDP и т.д. Здесь мы показываем простой пример создания UDP агента. Также необходимо создать агент - приемник UDP, для этого мы создадим Null agent (только в случае использования UDP!!!). #Создание агента UDP set udp1 [new Agent/UDP] #Создание агента-получателя set sink1 [new Agent/Null] #Присоединени агента UDP к node n0 $ns attach-agent $n0 $udp1 #Attach agent sinkl to node n1 $ns attach-agent $nl $sink1 #Connect the agents $ns connect $udp1 $sink1

  7. TCP агенты Конечно вместо того, чтобы использовать UDP мы могли использовать TCP, но тогда мы должны будем использовать специализированный агент-приемник, чтобы сгенерировать подтверждения о доставке. #Create a TCP agent set tcp1 [new Agent/TCP] #Create a Null agent set sink1 [new Agent/TCPSink] #Attach agent tcp1 to node n0 $ns attach-agent $n0 $tcp1 #Attach agent sinkl to node n1 $ns attach-agent $nl $sink1 #Connect the agents $ns connect $tcp1 $sink1

  8. Шаг 3: Создание приложений источниковОднако, наша сеть не будет передавать данные. Мы должны создать источник данных, который будет снабжать байтами нашего агента. Здесь мы генерируем источник с постоянной битовой скоростью передачи (CBR).#Create Source set cbr1 [new Application/Traffic/CBR]#Configure Source $cbrl set packetSize 500 $cbrl set interval 0.005#Attach source to agent $cbr1 attach-agent $udp1#Schedule cbr on$ns at 0.5 "$cbr1 start“#Schedule cbr off$ns at 4.5 "$cbr1 stop"

  9. Шаг 4: Трассировка До текущего момента моделирования мы создали источники и генерируемый трафик, который передается в заданном нами направлении, но это не интересно для нас так как мы не можем сделать выводы о результатах моделирования. Далее мы зададим команды для отслеживания всех процессов в модели. Укажите в полном файле кода, что команды trace-all и nam-trace-all должны выполняться прежде, чем будут созданы узлы и агенты, но временные команды трассировки должны быть выполнены впоследствии: # all packet trace: $ns trace-all [open out.tr w] # animator trace: $ns namtrace-all [open out.nam w] #variable trace: set tf [open "cwnd.tr" w] set tracer [new Trace/Var] $tracer attach $tf $tcp trace cwnd $tracer

  10. Шаг 4: Анимация работы сете в «nam» (Network Animator) Вы можете запускать network animator используя команду nam. %nam out.nam

  11. Trace Graph

  12. СПАСИБО за ВНИМАНИЕ !

More Related