1 / 13

Emulation in ns

Emulation in ns. Alefiya Hussain. What is Emulation ?. Ability to introduce the simulator into a live network Application: Allows testing real-world implementations Allows testing simulated protocols Requirements: Scheduler support Packet capture and generation capabilities .

etoile
Download Presentation

Emulation in ns

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. Emulation in ns Alefiya Hussain

  2. What is Emulation ? • Ability to introduce the simulator into a live network • Application: • Allows testing real-world implementations • Allows testing simulated protocols • Requirements: • Scheduler support • Packet capture and generation capabilities ns Tutorial 2002

  3. Scheduler • ns operates in virtual time using event- driven simulation • Real-time scheduler • Does not advance the virtual clock to next event • Dispatches event at real-time ns Tutorial 2002

  4. Emulation Objects • Interface between ns and network traffic • Network Objects Access to live network via BPF and raw sockets • Tap Objects Conversion between ns and network packet formats Capture: BPF network to ns ns ns to network Inject: Raw socket ns Tutorial 2002

  5. Modes of Operation • Packet conversion leads to two modes of operation • Opaque Mode Network packet fields are not interpreted • Protocol Mode • Network packet is interpreted • TTL values reflect hop count in simulator • Network packet fields are generated • Ping responder, TCP application ns Tutorial 2002

  6. Extern Source Destination Size Opaque Mode • Network packet is passed unmodified through simulator Source Destination Size Ns packet contains a pointer to the network packet Data ns Read packets Write packets Network Packet Network ns Tutorial 2002

  7. Source Source Destination Destination Size Size Protocol Mode • Network packet fields are generated by the simulator Host A Host B TCP Agent TCP Application Data The ns packet header is mapped onto the network packet header and visa versa . ns Network Packet Send/receive packets from application Send/receive packets from ns Network ns Tutorial 2002

  8. Applications • Opaque Mode • Cross-traffic interaction leading to drop, delay and re-ordering of packets • End to End application testing • Protocol Mode • Protocol and conformance testing • Evaluate effect of DDoS attacks • Wireless networks ns Tutorial 2002

  9. Example: Setup Goal: Make a ns TCP agent interact with a TCP server B 192.168.1.2 port 8000 A 192.168.1.1 nse TCP server • Disable IP forwarding sysctl –w net.inet.ip.forwarding=0 • Assign 10.0.0.1 and 6000 to TCP agent • Add route to dummy IP address route add 10.0.0.1 192.168.1.1 • Disable IP redirects sysctl –w net.inet.ip.redirect=0 Switch ns Tutorial 2002

  10. TCPTap BPF TCPTap RawSocket Example Script Activate ns and Change to real-time scheduler set ns [new Simulator] $ns use-scheduler RealTime set entry_node [$ns node] set tcp_node [$ns node] $ns duplex-link $entry_node \ $tcp_node 10Mb 1ms DropTail set tcp [new Agent/TCP/FullTcp] $ns attach-agent $tcp_node $tcp Create topology Create TCP Agent TCP Agent tcp_node entry_node ns Tutorial 2002

  11. Example Script set bpf [new Network/Pcap/Live] set dev [$bpf open readonly eth0] $bpf filter "src 192.168.1.2 and src port 8000 \ and dst 10.0.0.1 and dst port 6000“ set capture_tap [new Agent/TCPTap] $capture_tap network $bpf $ns attach-agent $entry_node $capture_tap $ns simplex-connect $capture_tap $tcp set rawsocket [new Network/IP] $rawsocket open writeonly set inject_tap [new Agent/TCPTap] $inject_tap advertised-window 512 $inject_tap extipaddr “192.168.1.2" $inject_tap extport 8000 $inject_tap network $rawsocket $ns attach-agent $entry_node $inject_tap $ns simplex-connect $tcp $inject_tap TCP Agent tcp_node CaptureTap InjectTap entry_node BPF RawSocket ns Tutorial 2002

  12. Example Script $ns at 0.01 "$tcp advance 1" $ns at 20.0 “exit 0" $ns run start nse A 192.168.1.1 B 192.168.1.2 TCP Agent TCP Server (8000) BPF Raw Socket ns Tutorial 2002 Switch

  13. Further Information • http://www.isi.edu/nsnam/ns/ns-emulation.html • Scripts ~ns/emulate Opaque Mode: • em.tcl Protocol Mode • thrutcp.tcl • pingdemo.tcl • tcpemu.tcl • Kevin Fall, Network Emulation in the Vint/NS Simulator, ISCC July 1999 ns Tutorial 2002

More Related