1. Trang chủ
  2. » Công Nghệ Thông Tin

NS-2 Tutorial (Part 2) pdf

17 118 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 129,5 KB

Nội dung

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