NS-2 Tutorial (Part 2) pdf

17 118 0
NS-2 Tutorial (Part 2) pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 ns-2 Tutorial, part 2 Dave Anderson, Xiaowei Yang (Modified from Polly Huang’s slides) 2 Outline • Ns-2 internals – script -> internal structure • How to Extend ns 3 Script Code # Create a topology Set ns [new Simulator] set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail # Add Transport agents set tcp [new Agent/TCP] $ns attach-agent $n0 $tcp set tcpsink [new Agent/TCPSink] $ns attach-agent $n1 $tcpsink $tcp connect $tcpsink # Add application set ftp [new Application/FTP] $ftp attach-agent $tcp # Create a schedule $ns at 0.5 "$ftp start" $ns at 4.5 "$ftp stop" #Run the simulation $ns run n0 n1 1Mb 10ms FTP TCP FTP TCP 4 Discrete Event-Driven Simulator time_, uid_, next_, handler_ head_ -> handler_ -> handle() time_, uid_, next_, handler_ insert $ns at 0.5 “$ftp start” $ns at 4.5 “$ftp stop” $ns run 5 Ns Node n0 n1 Addr Classifier Port Classifier classifier_ dmux_ entry_ 0 1 Addr Classifier Port Classifier classifier_ dmux_ entry_ 1 0 set n0 [$ns node] set n1 [$ns node] 6 Network Topology - Link n0 n1 enqT_ queue_ deqT_ drophead_ drpT_ link_ ttl_ n1 entry_ head_ $ns duplex-link $n0 $n1 1Mb 10ms DropTail 7 Routing n0 n1 Addr Classifier Port Classifier classifier_ dmux_ entry_ 0 1 Addr Classifier Port Classifier classifier_ dmux_ entry_ 1 0 Link n0-n1 Link n1-n0 8 0 1 Transport n0 n1 Addr Classifier Port Classifier classifier_ dmux_ entry_ 0 Agent/TCP agents_ Addr Classifier Port Classifier classifier_ dmux_ entry_ 1 0 Link n0-n1 Link n1-n0 0 Agent/TCPSink agents_ dst_=1.0 dst_=0.0 set tcp [new Agent/TCP] $ns attach-agent $n0 $tcp 9 Application 0 1 n0 n1 Addr Classifier Port Classifier classifier_ dmux_ entry_ 0 Agent/TCP agents_ Addr Classifier Port Classifier classifier_ dmux_ entry_ 1 0 Link n0-n1 Link n1-n0 0 Agent/TCPSink agents_ dst_=1.0 dst_=0.0 Application/FTP set ftp [new Application/FTP] $tcp attach-agent $ftp 10 Packet Flow 0 1 n0 n1 Addr Classifier Port Classifier entry_ 0 Agent/TCP Addr Classifier Port Classifier entry_ 1 0 Link n0-n1 Link n1-n0 0 Agent/TCPSink dst_=1.0 dst_=0.0 Application/FTP [...]...Packet Format cmn header header data ip header tcp header rtp header trace header ts_ ptype_ uid_ size_ iface_ 11 Extending ns-2 Simulator 12 otcl and C++: The Duality C++ otcl • C++ for data – per packet action • otcl for control – periodic or triggered action 13 Adding New Classes variables New Class otcl bind() TclClass()... TclObject: bind() • C++ EchoAgent::TcpAgent() { bind(“msglen_”, &len_); … } • otcl Agent/Echo set msglen_ 50 16 • C++ TclObject: command() Int EchoAgent::command(int argc, const char*const* argv) { if (argc == 2) { if (strcmp(argv[1], “send”) == 0) { send(); return(TCL_OK); } else if (strcmp(argv[1], “recv”) == 0) { send(); return(TCL_OK); } } return (Agent::command(argc, argv); } • otcl set echo [new Agent/Echo] . 1 ns-2 Tutorial, part 2 Dave Anderson, Xiaowei Yang (Modified from Polly Huang’s slides) 2 Outline • Ns-2 internals – script -> internal structure. header tcp header rtp header trace header cmn header ts_ ptype_ uid_ size_ iface_ 12 Extending ns-2 Simulator 13 otcl and C++: The Duality • C++ for data – per packet action • otcl for control – periodic. 17 TclObject: command() • C++ Int EchoAgent::command(int argc, const char*const* argv) { if (argc == 2) { if (strcmp(argv[1], “send”) == 0) { send(); return(TCL_OK); } else if (strcmp(argv[1], “recv”)

Ngày đăng: 04/07/2014, 09:20

Mục lục

  • otcl and C++: The Duality

Tài liệu cùng người dùng

Tài liệu liên quan