NS2入门和提高课件

上传人:494895****12427 文档编号:241319949 上传时间:2024-06-17 格式:PPT 页数:83 大小:472.43KB
返回 下载 相关 举报
NS2入门和提高课件_第1页
第1页 / 共83页
NS2入门和提高课件_第2页
第2页 / 共83页
NS2入门和提高课件_第3页
第3页 / 共83页
点击查看更多>>
资源描述
NS2入门与提高 柯志亨 SeaSon 哈尔滨工业大学 2019-5-28计算机学院-数据库中心SeaSonNS2入门与提高 柯志亨 SeaSon计算机1目录nNS2 简介n安装n模拟流程n添加新协议n调试以及结果分析计算机学院-数据库中心SeaSon目录NS2 简介计算机学院-数据库中心SeaSon2NS2 简介n背景nNS2目标nNS2功能nNS2 组件nNS2体系结构计算机学院-数据库中心SeaSonNS2 简介背景计算机学院-数据库中心SeaSon3NS2 背景n1989 REAL network simulator n2019:DARPA VINT project at LBL,Xerox PARC,UCB,and USC/ISInPresent:DARPA SAMAN project and NSF CONSER project Collaboration with other researchersincluding CIRI计算机学院-数据库中心SeaSonNS2 背景1989 REAL network simula4NS2研究范围n支持网络协议的研究和教育 通信协议的设计,数据流的研究等 不同协议的比较n优点 与平台无关,有大量的协议、代码以及模型可供使用,开源的,不同的协议很容易进行比较。计算机学院-数据库中心SeaSonNS2研究范围支持网络协议的研究和教育计算机学院-数据库中心5NS2目标nNS2不适合做的?大多数任务都是单节点完成的,比如交换机的性能分析等。计算机学院-数据库中心SeaSonNS2目标NS2不适合做的?计算机学院-数据库中心SeaSo6NS2功能n有线网络 路由层 DV,LS,PIM-SM 传输层:TCP and UDP 流量产生:web,ftp,telnet,cbr,stochastic 队列模型:drop-tail,RED,FQ,SFQ QoS:IntServ and Diffserv计算机学院-数据库中心SeaSonNS2功能有线网络计算机学院-数据库中心SeaSon7NS2功能n无线网络网络类型:MANET,Sensor Networks路由:AODV,DSR,DSDV,Mobile IP以及HMIPv6等MAC:802.11,802.15.4,Smac等传输层、多种数据流模拟 计算机学院-数据库中心SeaSonNS2功能无线网络计算机学院-数据库中心SeaSon8NS2 组件nns:网络模拟器 执行tcl脚本,进行模拟,并将所有的模拟结果以trace文件的个是输出。nnam:网络 AniMator 将ns的结果可视化。n模拟的流程tcl 脚本ns-2Trace文件Nam文件namGawkgnuplot计算机学院-数据库中心SeaSonNS2 组件ns:网络模拟器tcl 脚本ns-2Trace9NS2体系结构n面向对象的设计 支持重用 容易维护 方便扩展,如添加新协议n分裂对象模型p C+是高效的编译执行语言,功能模拟,性能较好pOtcl 解释执行的,进行场景配置。不必重新编译更灵活计算机学院-数据库中心SeaSonNS2体系结构面向对象的设计计算机学院-数据库中心SeaSo10NS2体系结构nNS2结合两者的优点C+otcl计算机学院-数据库中心SeaSonNS2体系结构NS2结合两者的优点C+otcl计算机学院-11Tcl与C+对象绑定过程n以tcp为例,当你在tcl脚本中使用以下命令创建一个Tcp对象时set tcp0 new Agent/TCPn首先创建tcl对象,即解释对象proc new className args set o SplitObject getid#创建分裂对象if catch$className create$o$args msg return$o计算机学院-数据库中心SeaSonTcl与C+对象绑定过程以tcp为例,当你在tcl脚本中使12Tcl与C+对象绑定过程n然后通过Tcl对象的init()函数中创建对应的shadow对象SplitObject instproc init args$self nextif catch$self create-shadow$args error _FAILED_SHADOW_OBJECT_ 计算机学院-数据库中心SeaSonTcl与C+对象绑定过程然后通过Tcl对象的init()函13Tcl与C+对象绑定过程nCreate-shadow怎样找到tcl对象对应的C+对象?n答案就是TclClass类!static class TcpClass:public TclClass public:TcpClass():TclClass(Agent/TCP)TclObject*create(int,const char*const*)return(new TcpAgent();class_tcp;计算机学院-数据库中心SeaSonTcl与C+对象绑定过程Create-shadow怎样找到14NS2系统结构 -离散事件模拟n把世界上的一切都看成事件维护一个基于发生时间排序的 事件(events)队列维护一个系统的时间virtual time重复的执行以下的过程:n从对首取出一个事件,set virtual time=events timen处理这个事件n如果在处理时间过程中产生新的event,插入queuen每一个事件都有一个预定的执行(虚拟的)时间,独立于真实执行时间。CPU 执行的快慢不影响结果。计算机学院-数据库中心SeaSonNS2系统结构 -离散事件模拟把世界上的15离散事件模拟示例离散事件模拟示例时间时间事件事件A.1sS decides to send pkt to DS starts sending pktdelayvaluetransmission0.005spropagation0.01sDSSDB.1.005sS finishes transmitting pkt to DC.1.01sD begins to recv pktD.1.015sD recvs entire pkt and delivers to applicationB.D.C.A.事件队列事件队列计算机学院-数据库中心SeaSon离散事件模拟示例时间事件A.1sS decides to s16一个数据包怎样从源节点到目的节点n同一个节点内各层协议之间传数据?n节点之间怎么传?计算机学院-数据库中心SeaSon一个数据包怎样从源节点到目的节点同一个节点内各层协议之间传数17计算机学院-数据库中心SeaSon计算机学院-数据库中心SeaSon18n安装安装环境及方法安装问题计算机学院-数据库中心SeaSon安装计算机学院-数据库中心SeaSon19安装(1)n推荐直接安装all-inone版本(最新all-inone-2.29)Linux(直接install就行了)Windows+Cygwin+Ns2nwindows安装方法柯老师网站(不要看中文安装说明,选英文的)140.116.72.80/smallko/ns2/ns2.htm计算机学院-数据库中心SeaSon安装(1)推荐直接安装all-inone版本(最新all-i20安装(2)nwindows安装方法柯老师网站上Cygwin可以成功安装的ns2版本有NS-2.26,NS-2.27,NS-2.28,ns-2.29注:NS-2.26需要PATCH过.才能安装柯老师的安装经验:不過安裝的過程還是可能會有一些問題.最確保可以安裝成功的方法是:重新安裝WINDOWS.裝完馬上安裝CYGWIN+NS2,安裝後.在裝SERVICE PACK.或其他的軟件.這是我的經驗计算机学院-数据库中心SeaSon安装(2)windows安装方法计算机学院-数据库中心Sea21安装(3)nNS仿真软件-问题求助的地方 netforum/forum_topics.asp?FID=16&PN=1p常见错误原因p 主要问题gcc版本p 重装计算机学院-数据库中心SeaSon安装(3)NS仿真软件-问题求助的地方 计算机学院-数据库中22开始进行摸拟n一个简单的无线网络的例子(1)n无线场景的产生n利用NS模拟前搞清楚的问题n添加新协议n编译NS2计算机学院-数据库中心SeaSon开始进行摸拟一个简单的无线网络的例子(1)计算机学院-数据库23一个简单的无线网络的例子(1)n场景配置3 个mobile nodes平面拓扑 670mX670mad hoc 路由协议 DSDVRandom Waypoint mobility modelTCP and CBR traffic计算机学院-数据库中心SeaSon一个简单的无线网络的例子(1)场景配置计算机学院-数据库中24一个简单的无线网络的例子(2)set ns_ new Simulator;create a ns simulator instance#Define Global Variablesset topo new Topography;create a topology and$topo load_flatgrid 670 670 ;define it in 670 x670 area 计算机学院-数据库中心SeaSon一个简单的无线网络的例子(2)set ns_ new S25一个简单的无线网络的例子(3)#Define standard ns/nam traceset tracefd open 694demo.tr w$ns_ trace-all$tracefdset namtrace open 694demo.nam w$ns_ namtrace-all-wireless$namtrace 670 670 计算机学院-数据库中心SeaSon一个简单的无线网络的例子(3)#Define standar26一个简单的无线网络的例子(4)#Create “God”set god_ create-god 3 God 用来保存一个结点到另外一个结点直接的跳部数.例如例如:$ns_ at 899.00“$god_ setdist 2 3 1”计算机学院-数据库中心SeaSon一个简单的无线网络的例子(4)#Create “God”s27一个简单的无线网络的例子(5)#Define how a mobile node should be created$ns_ node-config-adhocRouting DSDV -llType LL -macType Mac/802_11 -ifqLen 50 -ifqType Queue/DropTail/PriQueue -antType Antenna/OmniAntenna -propType Propagation/TwoRayGround -phyType Phy/WirelessPhy -channelType Channel/WirelessChannel -topoInstance$topo -agentTrace ON -routerTrace OFF -macTrace OFF计算机学院-数据库中心SeaSon一个简单的无线网络的例子(5)#Define how a m28一个简单的无线网络的例子(6)#Create a mobile node and attach it to the channel set node$ns_ node$node random-motion 0;#disable random motion Use“for loop”to create 3 nodes:for set i 0$i3 incr i set node_($i)$ns_ node计算机学院-数据库中心SeaSon一个简单的无线网络的例子(6)#Create a mobil29一个简单的无线网络的例子(7)#Define traffic modelsource traffic-scenario-files#Define node movement model source movement-scenario-files 计算机学院-数据库中心SeaSon一个简单的无线网络的例子(7)#Define traffic30一个简单的无线网络的例子(8)#Define node initial position in namfor set i 0$i 3 incr i$ns_ initial_node_position$node_($i)20#Tell ns/nam the simulation stop time$ns_ at 200.00“$ns_ halt”#Start your simulation$ns_ run计算机学院-数据库中心SeaSon一个简单的无线网络的例子(8)#Define node in31无线场景的产生(1)n生成节点运动模型setdest-n -p pausetime-s -t -x -y Source:See ns-2/indep-utils/cmu-scen-gen/setdest/网上还可以下载更多的模型,如组移动模型等计算机学院-数据库中心SeaSon无线场景的产生(1)生成节点运动模型计算机学院-数据库中心S32无线场景的产生(2)n生成无线网络数据流CBR trafficns cbrgen.tcl-type cbf|tcp-nn nodes-seed seed-mc connections-rate rateSource:ns-allinone-2.29ns-2.29indep-utilscmu-scen-gen计算机学院-数据库中心SeaSon无线场景的产生(2)生成无线网络数据流计算机学院-数据库中心33利用NS模拟前搞清楚的问题计算机学院-数据库中心SeaSon利用NS模拟前搞清楚的问题计算机学院-数据库中心SeaSon34NS2 源代码目录simtk8.0otclTcltcl8.0ns-2nam-1tclextestlib.tcl codeexamplevalidation testC+codetcl code core计算机学院-数据库中心SeaSonNS2 源代码目录simtk8.0otclTcltcl8.035添加协议(1)n添加别人实现的协议为什么我安装总是出错?环境问题,OS,gcc版本,ns版本解决办法1.修改环境,装相应的os,gcc,ns2 2.移植到新的环境,怎么移?gdb调试,没有别的办法!计算机学院-数据库中心SeaSon添加协议(1)添加别人实现的协议计算机学院-数据库中心Sea36添加新协议(2)n自己写协议路由协议?应用层协议?MAC协议?最好的方法就是模仿已有的协议,代表协议AODV,MAC802.11,Ping添加路由协议,从Agent继承添加应用层协议,从Agent(更灵活)或者Application(有些不能实现)计算机学院-数据库中心SeaSon添加新协议(2)自己写协议计算机学院-数据库中心SeaSon37添加新协议(3)n示例:一个泛洪协议(Mflood)n协议类型:路由层协议n1.定义包头struct hdr_mflood nu_int32_tseq_;/根据需要定义变量,这个灵活决定 ./包头访问的方法,你只需要复制下来就OK了 static int offset_;/required by PacketHeaderManager inline static int&offset()return offset_;inline static hdr_sptree*access(const Packet*p)return(hdr_sptree*)p-access(offset_);计算机学院-数据库中心SeaSon添加新协议(3)示例:一个泛洪协议(Mflood)计算机学院38添加新协议(4)n2.实现协议class MFlood:public Agent public:MFlood();void recv(Packet*p,Handler*);int command(int,const char*const*);protected:inline int initialized()return 1&target_;/发送函数,其实就是调用目的节点的接受函数 inline void send(Packet*p)target_-recv(p);计算机学院-数据库中心SeaSon添加新协议(4)2.实现协议计算机学院-数据库中心SeaS39添加新协议(5)n3 关联tcl对象与C+对象(模板)static class MFloodclass:public TclClass public:MFloodclass():TclClass(Agent/MFlood)TclObject*create(int argc,const char*const*argv)assert(argc=5);return(new MFlood(nsaddr_t)atoi(argv4);/PBO agrv4 is index_ class_rtProtoMFlood;计算机学院-数据库中心SeaSon添加新协议(5)3 关联tcl对象与C+对象(模板)计算机40添加新协议(6)n4 关联关联tcl对象与对象与C+对象的包头(模板)对象的包头(模板)int hdr_mflood:offset_;static class MFloodHeaderClass:public PacketHeaderClass public:MFloodHeaderClass():PacketHeaderClass(PacketHeader/MFlood,sizeof(hdr_mflood)bind_offset(&hdr_mflood:offset_);class_mfloodhdr;计算机学院-数据库中心SeaSon添加新协议(6)4 关联tcl对象与C+对象的包头(模板)41添加新协议(7)n目前为止,所有的代码工作都已经完成了生下的工作就是将这个协议编译到NS2中。n需要修改一下文件n1.ns-packet.tcl(ns-allinone-2.29ns-2.29tcllib)n2.packet.h(ns-allinone-2.29ns-2.29common)n3 ns-lib.tcl(ns-allinone-2.29ns-2.29tcllib)对于我们这个应用层协议不需要修改计算机学院-数据库中心SeaSon添加新协议(7)目前为止,所有的代码工作都已经完成了计算机学42添加新协议(8)n1.修改ns-packet.tcl(ns-2.29/tcl/lib)foreach prot#add by season MFloodn目的:在目的:在NS启动的时候加载我们的包头。启动的时候加载我们的包头。计算机学院-数据库中心SeaSon添加新协议(8)1.修改ns-packet.tcl(ns-43添加新协议(9)n2.修改 packet.h(一共修改两处ns-2.29/common)p enum packet_t/insert new packet types here/add by seasonPT_MFLOOD,/Trace用到PT_NTYPE/This MUST be the LAST oneclass p_info public:p_info()/add by seasonname_PT_MFLOOD=“MFlood”;/与前面对应name_PT_NTYPE=undefined;目的:目的:Trace中使用,协议构造函数中使用,协议构造函数SpTreeAgent()初始初始化时使用化时使用计算机学院-数据库中心SeaSon添加新协议(9)2.修改 packet.h(一共修改两处ns44添加新协议(10)n如果是路由协议如(AODV)n还需要修改ns-lib.tclnSimulator instproc create-wireless-node args MFlood set ragent$self create-mflood-agent$node Simulator instproc create-mflood-agent node set ragent new Agent/MFlood$node id$node set ragent_$ragentreturn$ragent计算机学院-数据库中心SeaSon添加新协议(10)如果是路由协议如(AODV)计算机学院-数45添加新协议(11)n还有这段代码(Mflood未使用)ns-mobilenode.tcl#Special processing for AODVset aodvonly string first AODV$agent info class if$aodvonly!=-1$agent if-queue$self set ifq_(0);#ifq between LL and MAC 计算机学院-数据库中心SeaSon添加新协议(11)还有这段代码(Mflood未使用)ns-46添加新协议总结n5c+2t+1m(521规则)5c-必须实现的五个C+模块 MFlood与MFloodclass hdr_mflood与MFloodHeaderClass packt.h添加包头类型2t-修改两个tcl文件 ns-lib.tcl与ns-packet.tcl 有时候还会修改ns-defaut.tcl1m-修改Makefile,将新协议添加计算机学院-数据库中心SeaSon添加新协议总结5c+2t+1m(521规则)计算机学院-数据47添加新协议总结n关于添加应用协议如ping,跟路由协议类似,甚至跟简单,如果从Agent继承,除了不需要修改ns-lib.tcl之外其它类似。n但是别忘了设置包头的大小,不然你发出的所有数据包头的大小都是0!PingAgent:PingAgent():Agent(PT_PING)bind(packetSize_,&size_);n修改Ns-defautl.tclAgent/Ping set packetSize_ 64计算机学院-数据库中心SeaSon添加新协议总结关于添加应用协议如ping,跟路由协议类似,甚48编译NS2(1)n前面的过程是将代码添加到NS2里面,但尚未编译,只有经过编译才能使用。n一般我们将我们所有的C+代码放在一个文件夹内,如mflood,然后放在ns-2.29/之下n修改Makefile(无任何后缀的)添加如下红色所示代码,将mflood编译进NS2OBJ_CC=#add by season mflood/mflood.o mflood/mflood-seqtable.o计算机学院-数据库中心SeaSon编译NS2(1)前面的过程是将代码添加到NS2里面,但尚未编49编译NS2(2)n从cygwin进入ns-2.29目录下n执行 make clean#删除所有的*.o文件 make depend make#重新编译ns如果没有错误,则可以编写场景测试n什么时候要make clean?计算机学院-数据库中心SeaSon编译NS2(2)从cygwin进入ns-2.29目录下计算机50编译NS2(3)n如果添加新协议,或者修改了多个协议公用的NS中头文件,如packet.h我们都需要重新make clean 然后make depend,make。计算机学院-数据库中心SeaSon编译NS2(3)如果添加新协议,或者修改了多个协议公用的NS51编译NS2(4)n修改了C+文件 对于NS中已有的代码修改 不需要修改makefile,只需要 make 添加新的模块或协议修改Makefile并重新Make clean Make dependMake计算机学院-数据库中心SeaSon编译NS2(4)修改了C+文件计算机学院-数据库中心Sea52编译NS2(5)n修改了Otcl文件修改NS中已有的代码nrecompilensource 添加新的代码nsourcen修改 Makefile(NS_TCL_LIB),tcl/ns-lib.tcl(source)and recompile都只需要make即可计算机学院-数据库中心SeaSon编译NS2(5)修改了Otcl文件计算机学院-数据库中心Se53调试NSnTCL的调试nGdb的安装调试计算机学院-数据库中心SeaSon调试NSTCL的调试计算机学院-数据库中心SeaSon54调试(1)nTcl调试个人觉得没什么用途,如果你感兴趣我的space有安装方法Spaces.msnwowseasonnC+代码的调试(segment fault)调试工具gdb,另外自带的insight可视化界面,本质也是调用gdb下面介绍gdb的安装调试计算机学院-数据库中心SeaSon调试(1)Tcl调试计算机学院-数据库中心SeaSon55调试(2)ngdb安装安装gdb,以cygwin为例n重新运行cygwin的setup文件,选择界面中的keep(必须!否则会死的很惨的),然后找到gdb选择安装即可。n重新编译NS2,添加调试信息 修改Makefile在下面位置添加-g CCOPT=-g进入ns-2.29目录下面执行Make cleanMake depend#执行这个命令过程中如出错,不用管!Maken如果没有错误,就安装成功,V!计算机学院-数据库中心SeaSon调试(2)gdb安装计算机学院-数据库中心SeaSon56调试(2)nGdb调试NS2以命令行为例进入ns-2.29(%为命令提示符)%gdb nsgdb即进入调试计算机学院-数据库中心SeaSon调试(2)Gdb调试NS2计算机学院-数据库中心SeaSon57调试(3)n调试常用命令bt列出运行栈中信息b sptree:linenum 在sptree文件linenum行设置断点,注意中间”:”不能丢c 相当于vc中continue,n 相当于vc中nextdisplay var,显示变量var的值其他的参看gdb文档nNS中调试技巧以及演示计算机学院-数据库中心SeaSon调试(3)调试常用命令计算机学院-数据库中心SeaSon58结果分析n场景测试n工具使用及结果分析n其他计算机学院-数据库中心SeaSon结果分析场景测试计算机学院-数据库中心SeaSon59场景测试n为了使模拟更接近真实网络,参数选择,非常重参数选择,非常重要要!可以参看相关论文n简单测试 用两三个节点测试一下首发数据,根据trace文件分析。n功能测试 测试每一个功能,对于无线网络的,要测试多跳,各种拓扑。利用trace分析结果计算机学院-数据库中心SeaSon场景测试为了使模拟更接近真实网络,参数选择,非常重要!可以参60参数选择(802.11b)nThe Antenna height of transmitter and receiver is 1.5m.nThe propagation model is TwoRayGround model.nAntenna/OmniAntenna set Gt_ 1/Transmit antenna gain nAntenna/OmniAntenna set Gr_ 1/Receive antenna gain nPhy/WirelessPhy set L_ 1.0/System Loss Factor nPhy/WirelessPhy set freq_ 2.472e9/channel-13.2.472GHz nPhy/WirelessPhy set bandwidth_ 11Mb/Data Rate nPhy/WirelessPhy set Pt_ 0.031622777/Transmit Power nPhy/WirelessPhy set CPThresh_ 10.0/Collision Threshold nPhy/WirelessPhy set CSThresh_ 5.011872e-12/Carrier Sense Power nPhy/WirelessPhy set RXThresh_ 5.82587e-09/Receive Power Threshold;calculated under nTwoRayGround model by tools from NS2.n*Mac/802_11 set dataRate_ 11Mb/Rate for Data Frames n*Mac/802_11 set basicRate_ 1Mb/Rate for Control Frames 计算机学院-数据库中心SeaSon参数选择(802.11b)计算机学院-数据库中心SeaSon61常用工具以及结果分析n看代码推荐sourceinsightn画图,gnuplot,xgraph命令格式如下,示例演示%gnuplot delay.plotWindows下还有origin(收费的)n分析trace文件使用gawk命令格式gawk f delay.awk output.tr计算机学院-数据库中心SeaSon常用工具以及结果分析看代码计算机学院-数据库中心SeaSon62常用工具以及结果分析n柯老师强烈推荐模拟wireless网络,可以用edith.cse.nsysu.edu.tw/wordpress/?p=66生成无线网络场景,免去写tcl脚本的痛苦nWIRED NETWORK,可以建議使用NSBENCH 计算机学院-数据库中心SeaSon常用工具以及结果分析柯老师强烈推荐计算机学院-数据库中心Se63计算机学院-数据库中心SeaSon计算机学院-数据库中心SeaSon64常用工具以及结果分析n网络性能度量details on academ/nanog/june2019/performance.html1.Bandwidth utilizationThe aggregate of all traffic currently being consumed on a hop or path.2.Packets per second3.Round Trip TimeThe elapsed time for transit of a signal over a closed circuit.4.RTT variance cs.utk.edu/dunigan/tcptour/javis/tcp_rttvar.html5.packet loss6.Reachability7.Circuit Performance8.Bandwidth Utilization and Packets Per secondcisco/en/US/tech/tk648/tk362/technologies_tech_note09186a008009496e.shtml计算机学院-数据库中心SeaSon常用工具以及结果分析网络性能度量计算机学院-数据库中心Sea65常用工具以及结果分析n必须了解各种协议的trace格式n分析协议性能的gawk代码柯老师的网站n140.116.72.80/smallko/ns2/tool.htmNS FAQ Question 14nweb.syr.edu/dchen02/FAQ.txtn示例计算机学院-数据库中心SeaSon常用工具以及结果分析必须了解各种协议的trace格式计算机学66使用Gawk分析结果nGawk简介n与NS相关的基本知识n具体例子计算机学院-数据库中心SeaSon使用Gawk分析结果Gawk简介计算机学院-数据库中心Sea67使用Gawk分析结果n无线通信的trace格式s 10.107722800 _1_ AGT -22 tcp 43 0 2 1 800-1:0 2:0 30 2 13 0 0 0r 10.110474850 _2_ AGT -22 tcp 36 0 2 1 800-1:0 2:0 30 2 13 0 1 0计算机学院-数据库中心SeaSon使用Gawk分析结果无线通信的trace格式计算机学院-数据68Gawk简介n解释性的脚本语言n变量以及数组不用声明n按行处理n有pipe功能,可以将处理数据传给shell计算机学院-数据库中心SeaSonGawk简介解释性的脚本语言计算机学院-数据库中心SeaSo69Gawk相关语法ns 10.1 _1_ AGT -22 tcp 43 0 2 1 800-1:0 2:0 30 2 13 0 0 0(1).Gawk读入trace中的一行$0$1$2$3$4$5$6$7整行 s10.1 _1_AGT-22(uid)tcp 注:列之间一般用空格区分计算机学院-数据库中心SeaSonGawk相关语法s 10.1 _1_ AGT -2270Gawk相关语法$0$1$2$3$4$5$6$7整行 s10.1 _1_AGT-22tcp (2)执行动作Pattern1 Actions1 Pattern2 Actions2 Pattern3 Actions3 其中pattern为条件语句(或正则表达式)如:if($1=“s”&$4=“AGT”)Actions为动作,如:AgtNum+;计算机学院-数据库中心SeaSonGawk相关语法$0$1$2$3$4$5$6$7整行s1071Gawk相关语法 (3)IO操作 print、printf()、getline.(4)控制语句 if(.).else、while()计算机学院-数据库中心SeaSonGawk相关语法 (3)IO操作计算机学院-数据库中心S72Gawk工作流程nGawk反复执行以下四个步骤:1.自动从trace文件中读取一行。2.自动更新内建参数的值($n)。3.逐行执行程序中所有 的 Pattern Actions 代码。4.如果trace文件还有未读取的行,则循环执行上面步骤13。计算机学院-数据库中心SeaSonGawk工作流程Gawk反复执行以下四个步骤:计算机学院-数73Gawk程序的框架nBEGIN nAgtNum=0;nnn if($1=s&$4=AGT)n AgtNum+;nnEND n printf(Num of AGT pkts:%d n,AgtNum);nn最后保存文agtnum.awk文件计算机学院-数据库中心SeaSonGawk程序的框架BEGIN 计算机学院-数据库中心Se74执行的命令(演示)n可以在cygwin或者xwin窗口下执行n命令格式n$gawk f agtnum.awk out.trn对于mflood例子,输出结果nSeaSonColorfulSeaSon/ns-allinone-2.29/ns-2.29/test/pptn$gawk-f agtnum.awk mflood.trn Num of AGT pkts:50 计算机学院-数据库中心SeaSon执行的命令(演示)可以在cygwin或者xwin窗口下执行计75一个分析协议的完整例子(推荐推荐)nPerformance Evaluation of Ad Hoc Routing Protocols using ns2 simulations文章对ad hoc routing protocol进行了比較,包括DSDV,AODV,DSR其中TORA因为測不出來.就没进行比较作者把如何比較的程式碼都附在上面.n下载网址:ww.cs.utk.edu/gupta/Adhoc.doc 计算机学院-数据库中心SeaSon一个分析协议的完整例子(推荐)Performance Eva76其他n获得节点的位置,速度信息static Node*get_node_by_address(nsaddr_t);n获得节点能量,使节点进入休眠模式n跨层设计n将真实数据导入NS2ivs.cs.uni-magdeburg.de/EuK/forschung/projekte/nse/howtos/ns2uml_userguide.pdfnTcl与C+之间相互调用(演示)Tcl中调用C+函数nCommand()C+中调用tcl命令char out100;sprintf(out,%s setColor%d,name(),level);Tcl&tcl=Tcl:instance();tcl.eval(out);计算机学院-数据库中心SeaSon其他获得节点的位置,速度信息计算机学院-数据库中心SeaSo77其他nthreshold 计算通信半径使用前先complier threshold$cd ns-2.29/indep-utils/propagation/$g+-lm threshold-o threshold 示例$threshold-m TwoRayGround 250distance=250propagation model:TwoRayGround计算机学院-数据库中心SeaSon其他threshold 计算通信半径计算机学院-数据库中心S78联系我nEmail:yuhui.wu163nMSN:yuhui.wuhotmainQQ:67483698nNS仿真软件-season netforum/计算机学院-数据库中心SeaSon联系我Email:yuhui.wu163计算机学院-数据库79参考文献n柯老师的网站 140.116.72.80/smallko/ns2/ns2.htmnNS与网络模拟nns-2 Tutorialwww-scf.usc.edu/bhuangnIntroduction to Computer Networks Network simulator 2(ns-2)计算机学院-数据库中心SeaSon参考文献柯老师的网站计算机学院-数据库中心SeaSon80 OVER 谢谢计算机学院-数据库中心SeaSon OVER 谢谢计算机学院-数据库中心S81计算机学院-数据库中心SeaSon敬请指导!计算机学院-数据库中心SeaSon82骑封篙尊慈榷灶琴村店矣垦桂乖新压胚奠倘擅寞侥蚀丽鉴晰溶廷箩侣郎虫林森-消化系统疾病的症状体征与检查林森-消化系统疾病的症状体征与检查谢谢骑封篙尊慈榷灶琴村店矣垦桂乖新压胚奠倘擅寞侥蚀丽鉴晰溶廷83
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!