ns-2 network simulator - uspwiki.icmc.usp.br/images/8/82/talkns2-09mar2010-engcomp.pdf · 2018. 9....

24
1 NS-2 Network Simulator Prof. Edson dos Santos Moreira Redes de Computadores SSC-0641 Universidade de São Paulo – USP Instituto de Ciências Matemáticas e de Computação – ICMC Departamento de Sistemas de Computação - SSC

Upload: others

Post on 02-Feb-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

    NS-2 Network Simulator

    Prof. Edson dos Santos Moreira

    Redes de Computadores SSC-0641

    Universidade de São Paulo – USPInstituto de Ciências Matemáticas e de Computação – ICMC

    Departamento de Sistemas de Computação - SSC

  • 2

    Sumário

    � Introdução

    �Criando um script de simulação

    �Simulando protocolos TCP/IP

    �Simulando uma rede sem fio

    �Referências e tutoriais

  • 3

    O que é o NS2 � Simulador de evento discreto� Orientado a objetos (C++, Otcl) � Orientado a pacotes� Simula:

    � redes cabeadas� Point-to-point link, LAN� Unicast/multicast routing� Transport� Application layer

    � redes sem fio� Mobile IP� Ad hoc routing� Satellite network

  • O que é o NS2

    � Roda em:� plataforma UNIX e UNIX-like:

    � FreeBSD� Linux� Sun Solaris

    � Windows através do cygwin

    � NS 2 é implementado em :� C++ compilado (núcleo do NS2, modificado com menos frequência, código executado com mais frequência e mais rápido)

    � OTcl interpretado (configuração do cenário e controle)

  • Interface C++ e OTcl

    C++ OTcl

    Pure C++objects

    Pure OTclobjects

    C++/OTcl split objects

    ns

  • Pilha de protocolos TCP/IP

    � NS2 implementa as 5 camadas da pilha de protocolos TCP/IP

    � Endereçamento éhierárquico (diferente do formato IP)

    Modem, RDIS, RS-232, EIA-422, RS-449, Bluetooth

    1. Física

    Ethernet, 802.11 WiFi, IEEE 802.1Q, 802.11g, HDLC, Tokenring, FDDI, PPP

    2. Enlace

    IP (IPv4, IPv6) , ARP, RARP, ICMP, IPSec

    3. Rede

    TCP, UDP, SCTP, DCCP4. Transporte

    HTTP, SMTP, FTP, SSH, RTP, Telnet, SIP, RDP, IRC, SNMP, NNTP, POP3, IMAP, Ping, CBR

    5. Aplicação

    ProtocolosCamada

  • Importância da simulação

    � Muitas vezes é difícil criar ambiente real:� NGN – Redes de Próxima Geração

    � criação de novos protocolos

    � Custo reduzido

    � Aprimoramento didático

    � Quem utiliza: pesquisadores, desenvolvedores e educadores

  • Estrutura de diretórios do NS2

    TK8.0 OTcl tclclTcl8.0 ns-2 nam-1

    tcl

    ex test lib

    ...

    ...

    exemplos testes de validação

    código C++

    código OTcl

    ns-allinone

    mcast

  • 9

    Rodando simulações com NS2

    � Compilação/instalação: pacotes em separado(core do NS, Tcl, TK, OTcl, nam …) ou pacoteallinone

    � Escrever um script em Otcl� p. ex. my-test.tcl

    � Executar o simulador� p. ex. ns my-test.tcl

    � Opcionais� visualizar animação com “nam”� visualizar gráficos com “xgraph” ou “gnuplot”

  • 10

    Writing a Simulation Script

    � Create the event scheduler

    � Turn on tracing

    � Create network

    � Create transport connection (tcp or udp)

    � Create traffic

  • 11

    Creating Event Scheduler

    � Create event scheduler

    � set ns [new Simulator]

    � Schedule events

    � $ns at

    � : any legitimate ns/tcl commands� e.g [$ftp start]

    � Start scheduler

    � $ns run

  • 12

    Tracing

    � Trace packets on all links� $ns trace-all [open test.out w]

    � Must appear immediately after creating scheduler

    � Turn on tracing on specific links

    � $ns trace-queue $n0 $n1 ----

    + 1 0 2 + 1 0 2 cbrcbr 210 210 -------------- 0 0.0 3.1 0 00 0.0 3.1 0 0

    -- 1 0 2 1 0 2 cbrcbr 210 210 -------------- 0 0.0 3.1 0 00 0.0 3.1 0 0

    r 1.00234 0 2 r 1.00234 0 2 cbrcbr 210 210 -------------- 0 0.0 3.1 0 00 0.0 3.1 0 0

  • 13

    Creating Network� Nodes

    � set n0 [$ns node]

    � set n1 [$ns node]

    � Links and queuing

    � $ns duplex-link $n0 $n1

    � : DropTail, RED, CBQ, FQ, SFQ, DRR

  • 14

    Network Topology: Node

    n0 n1

    AddrClassifier

    PortClassifier

    classifier_

    dmux_

    entry_

    Node entry

    UnicastNode

    MulticastClassifier

    classifier_

    dmux_

    entry_

    Node entry

    MulticastNode

    multiclassifier_

  • 15

    Network Topology: Link

    n0 n1

    enqT_ queue_ deqT_

    drophead_ drpT_

    link_ ttl_

    n1entry_head_

    tracing simplex link

    duplex link

  • 16

    Routing

    n0 n1

    AddrClassifier

    PortClassifier

    classifier_

    dmux_

    entry_

    Node entry 0

    1enqT_ queue_ deqT_

    drophead_ drpT_

    link_ ttl_

    n1entry_

    head_

  • 17

    Routing (con’t)

    n0 n1

    AddrClassifier

    PortClassifier

    classifier_

    dmux_

    entry_

    0

    1

    AddrClassifier

    PortClassifier

    classifier_

    dmux_

    entry_

    1

    0Link n0-n1

    Link n1-n0

  • 18

    Creating Connection:

    � TCP

    � set tcp [new Agent/TCP]

    � set tcpsink [new Agent/TCPSink]

    � $ns attach-agent $n0 $tcp

    � $ns attach-agent $n1 $tcpsink

    � $ns connect $tcp $tcpsink

    � UDP similar

  • 19

    Transport

    0

    1

    n0 n1

    AddrClassifier

    PortClassifier

    classifier_

    dmux_

    entry_

    0 Agent/TCPagents_

    AddrClassifier

    PortClassifier

    classifier_

    dmux_

    entry_

    1

    0Link n0-n1

    Link n1-n0

    0 Agent/TCPSinkagents_

    dst_=1.0 dst_=0.0

  • 20

    Creating Traffic: On Top of TCP

    � FTP

    � set ftp [new Application/FTP]

    � $ftp attach-agent $tcp

    � Telnet

    � set telnet [new Application/Telnet]

    � $telnet attach-agent $tcp

    � CBR, Exponential, Pareto

  • 21

    Application: Traffic Generator

    0

    1

    n0 n1

    AddrClassifier

    PortClassifier

    classifier_

    dmux_

    entry_

    0 Agent/TCPagents_

    AddrClassifier

    PortClassifier

    classifier_

    dmux_

    entry_

    1

    0Link n0-n1

    Link n1-n0

    0Agent/TCPSink

    agents_

    dst_=1.0 dst_=0.0

    Application/FTP

  • 22

    Plumbing: Packet Flow

    0

    1

    n0 n1

    AddrClassifier

    PortClassifier

    entry_

    0 Agent/TCPAddr

    Classifier

    PortClassifier

    entry_

    1

    0Link n0-n1

    Link n1-n0

    0Agent/TCPSink

    dst_=1.0 dst_=0.0

    Application/FTP

  • Simulação wireless

    � exemplo de mobilidade – script3.tcl(Ethernet e Wi-Fi, com tráfego UDP usando Mobile IP)

  • 24

    Referências e tutoriais� ns-2 Webpage

    � http://www.isi.edu/nsnam/ns/

    � ns-2 Mailing List� [email protected]

    � Tutoriais:� Marc Greis’s Tutorial

    (http://www.isi.edu/nsnam/ns/tutorial/index.html) � Ns by example (http://nile.wpi.edu/NS/) � Wireless Tutorial (http://www.isi.edu/nsnam/ns/ns-

    tutorial/wireless.ppt )

    � Dúvidas/sugestões/curiosidades/orientação:� Mário Ezequiel ([email protected])