版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
NS2入門與提高柯志亨SeaSon哈爾濱工業(yè)大學2019-5-28計算機學院-數(shù)據(jù)庫中心SeaSonNS2入門與提高柯志亨SeaSon計算機1目錄NS2簡介安裝模擬流程添加新協(xié)議調試以及結果分析計算機學院-數(shù)據(jù)庫中心SeaSon目錄NS2簡介計算機學院-數(shù)據(jù)庫中心SeaSon2NS2簡介背景NS2目標NS2功能NS2組件NS2體系結構計算機學院-數(shù)據(jù)庫中心SeaSonNS2簡介背景計算機學院-數(shù)據(jù)庫中心SeaSon3NS2背景1989REALnetworksimulator 2019:DARPAVINTprojectatLBL,XeroxPARC,UCB,andUSC/ISIPresent:DARPASAMANprojectandNSFCONSERprojectCollaborationwithotherresearchersincludingCIRI計算機學院-數(shù)據(jù)庫中心SeaSonNS2背景1989REALnetworksimula4NS2研究范圍支持網(wǎng)絡協(xié)議的研究和教育通信協(xié)議的設計,數(shù)據(jù)流的研究等不同協(xié)議的比較優(yōu)點與平臺無關,有大量的協(xié)議、代碼以及模型可供使用,開源的,不同的協(xié)議很容易進行比較。計算機學院-數(shù)據(jù)庫中心SeaSonNS2研究范圍支持網(wǎng)絡協(xié)議的研究和教育計算機學院-數(shù)據(jù)庫中心5NS2目標NS2不適合做的?大多數(shù)任務都是單節(jié)點完成的,比如交換機的性能分析等。計算機學院-數(shù)據(jù)庫中心SeaSonNS2目標NS2不適合做的?計算機學院-數(shù)據(jù)庫中心SeaSo6NS2功能有線網(wǎng)絡路由層DV,LS,PIM-SM傳輸層:TCPandUDP流量產(chǎn)生:web,ftp,telnet,cbr,stochastic隊列模型:drop-tail,RED,FQ,SFQQoS:IntServandDiffserv計算機學院-數(shù)據(jù)庫中心SeaSonNS2功能有線網(wǎng)絡計算機學院-數(shù)據(jù)庫中心SeaSon7NS2功能無線網(wǎng)絡網(wǎng)絡類型:MANET,SensorNetworks路由:AODV,DSR,DSDV,MobileIP以及HMIPv6等MAC:802.11,802.15.4,Smac等傳輸層、多種數(shù)據(jù)流模擬計算機學院-數(shù)據(jù)庫中心SeaSonNS2功能無線網(wǎng)絡計算機學院-數(shù)據(jù)庫中心SeaSon8NS2組件ns:網(wǎng)絡模擬器執(zhí)行tcl腳本,進行模擬,并將所有的模擬結果以trace文件的個是輸出。nam:網(wǎng)絡AniMator將ns的結果可視化。模擬的流程tcl腳本ns-2Trace文件Nam文件namGawkgnuplot計算機學院-數(shù)據(jù)庫中心SeaSonNS2組件ns:網(wǎng)絡模擬器tcl腳本ns-2Trace9NS2體系結構面向對象的設計支持重用容易維護方便擴展,如添加新協(xié)議分裂對象模型C++是高效的編譯執(zhí)行語言,功能模擬,性能較好Otcl解釋執(zhí)行的,進行場景配置。不必重新編譯更靈活計算機學院-數(shù)據(jù)庫中心SeaSonNS2體系結構面向對象的設計計算機學院-數(shù)據(jù)庫中心SeaSo10NS2體系結構NS2結合兩者的優(yōu)點C++otcl計算機學院-數(shù)據(jù)庫中心SeaSonNS2體系結構NS2結合兩者的優(yōu)點C++otcl計算機學院-11Tcl與C++對象綁定過程以tcp為例,當你在tcl腳本中使用以下命令創(chuàng)建一個Tcp對象時settcp0[newAgent/TCP]首先創(chuàng)建tcl對象,即解釋對象procnew{classNameargs}{
seto[SplitObjectgetid]
#創(chuàng)建分裂對象 if[catch"$classNamecreate$o$args"msg]{ … } return$o}計算機學院-數(shù)據(jù)庫中心SeaSonTcl與C++對象綁定過程以tcp為例,當你在tcl腳本中使12Tcl與C++對象綁定過程然后通過Tcl對象的init()函數(shù)中創(chuàng)建對應的shadow對象SplitObjectinstprocinitargs{ $selfnext if[catch"$selfcreate-shadow
$args"]{
error"__FAILED_SHADOW_OBJECT_""" }}計算機學院-數(shù)據(jù)庫中心SeaSonTcl與C++對象綁定過程然后通過Tcl對象的init()函13Tcl與C++對象綁定過程Create-shadow怎樣找到tcl對象對應的C++對象?答案就是TclClass類?。?!staticclassTcpClass:publicTclClass{public: TcpClass():TclClass("Agent/TCP"){} TclObject*create(int,constchar*const*){ return(newTcpAgent()); }}class_tcp;計算機學院-數(shù)據(jù)庫中心SeaSonTcl與C++對象綁定過程Create-shadow怎樣找到14
NS2系統(tǒng)結構
--離散事件模擬
把世界上的一切都看成事件維護一個基于發(fā)生時間排序的事件(events)隊列維護一個系統(tǒng)的時間[virtualtime]重復的執(zhí)行以下的過程:從對首取出一個事件,set[virtualtime]=event’stime處理這個事件如果在處理時間過程中產(chǎn)生新的event,插入queue每一個事件都有一個預定的執(zhí)行(虛擬的)時間,獨立于真實執(zhí)行時間。CPU執(zhí)行的快慢不影響結果。計算機學院-數(shù)據(jù)庫中心SeaSon
NS2系統(tǒng)結構
--離散事件模擬
把世界上的15離散事件模擬示例時間事件A.1sSdecidestosendpkttoDSstartssendingpktdelayvaluetransmission0.005spropagation0.01sDSSDB.1.005sSfinishestransmittingpkttoDC.1.01sDbeginstorecvpktD.1.015sDrecvsentirepktanddeliverstoapplicationB.D.C.A.事件隊列計算機學院-數(shù)據(jù)庫中心SeaSon離散事件模擬示例時間事件A.1sSdecidestos16一個數(shù)據(jù)包怎樣從源節(jié)點到目的節(jié)點同一個節(jié)點內(nèi)各層協(xié)議之間傳數(shù)據(jù)?節(jié)點之間怎么傳?計算機學院-數(shù)據(jù)庫中心SeaSon一個數(shù)據(jù)包怎樣從源節(jié)點到目的節(jié)點同一個節(jié)點內(nèi)各層協(xié)議之間傳數(shù)17計算機學院-數(shù)據(jù)庫中心SeaSon計算機學院-數(shù)據(jù)庫中心SeaSon18
安裝安裝環(huán)境及方法安裝問題計算機學院-數(shù)據(jù)庫中心SeaSon 安裝計算機學院-數(shù)據(jù)庫中心SeaSon19安裝(1)推薦直接安裝all-inone版本(最新all-inone-2.29)Linux(直接install就行了)Windows+Cygwin+Ns2windows安裝方法柯老師網(wǎng)站(不要看中文安裝說明,選英文的) 0/~smallko/ns2/ns2.htm計算機學院-數(shù)據(jù)庫中心SeaSon安裝(1)推薦直接安裝all-inone版本(最新all-i20安裝(2)windows安裝方法柯老師網(wǎng)站上Cygwin可以成功安裝的ns2版本有NS-2.26,NS-2.27,NS-2.28,ns-2.29注:NS-2.26需要PATCH過..才能安裝柯老師的安裝經(jīng)驗:不過安裝的過程還是可能會有一些問題..最確??梢园惭b成功的方法是:重新安裝WINDOWS..裝完馬上安裝CYGWIN+NS2,安裝後..在裝SERVICEPACK..或其他的軟件..這是我的經(jīng)驗計算機學院-數(shù)據(jù)庫中心SeaSon安裝(2)windows安裝方法計算機學院-數(shù)據(jù)庫中心Sea21安裝(3)NS仿真軟件-問題求助的地方
netforum/forum_topics.asp?FID=16&PN=1常見錯誤原因主要問題gcc版本重裝計算機學院-數(shù)據(jù)庫中心SeaSon安裝(3)NS仿真軟件-問題求助的地方計算機學院-數(shù)據(jù)庫中22開始進行摸擬一個簡單的無線網(wǎng)絡的例子(1)無線場景的產(chǎn)生利用NS模擬前搞清楚的問題添加新協(xié)議編譯NS2計算機學院-數(shù)據(jù)庫中心SeaSon開始進行摸擬一個簡單的無線網(wǎng)絡的例子(1)計算機學院-數(shù)據(jù)庫23一個簡單的無線網(wǎng)絡的例子(1)
場景配置3個mobilenodes平面拓撲670mX670madhoc路由協(xié)議DSDVRandomWaypointmobilitymodelTCPandCBRtraffic計算機學院-數(shù)據(jù)庫中心SeaSon一個簡單的無線網(wǎng)絡的例子(1)
場景配置計算機學院-數(shù)據(jù)庫中24一個簡單的無線網(wǎng)絡的例子(2)setns_[newSimulator] ;createanssimulatorinstance#DefineGlobalVariablessettopo[newTopography] ;createatopologyand$topoload_flatgrid670670;defineitin670x670area計算機學院-數(shù)據(jù)庫中心SeaSon一個簡單的無線網(wǎng)絡的例子(2)setns_[newS25一個簡單的無線網(wǎng)絡的例子(3)#Definestandardns/namtracesettracefd[open694demo.trw]$ns_
trace-all
$tracefd
setnamtrace[open694demo.namw]$ns_
namtrace-all-wireless
$namtrace670670 計算機學院-數(shù)據(jù)庫中心SeaSon一個簡單的無線網(wǎng)絡的例子(3)#Definestandar26一個簡單的無線網(wǎng)絡的例子(4)#Create“God”setgod_[create-god3]God用來保存一個結點到另外一個結點直接的跳部數(shù).例如:$ns_at899.00“$god_setdist231”計算機學院-數(shù)據(jù)庫中心SeaSon一個簡單的無線網(wǎng)絡的例子(4)#Create“God”s27一個簡單的無線網(wǎng)絡的例子(5)#Definehowamobilenodeshouldbecreated$ns_node-config
-adhocRouting
DSDV\ -llTypeLL\ -macTypeMac/802_11\ -ifqLen50\ -ifqTypeQueue/DropTail/PriQueue\ -antTypeAntenna/OmniAntenna\ -propTypePropagation/TwoRayGround\ -phyTypePhy/WirelessPhy\ -channelTypeChannel/WirelessChannel\ -topoInstance$topo -agentTraceON\ -routerTraceOFF\ -macTraceOFF計算機學院-數(shù)據(jù)庫中心SeaSon一個簡單的無線網(wǎng)絡的例子(5)#Definehowam28一個簡單的無線網(wǎng)絡的例子(6)#Createamobilenodeandattachittothechannelsetnode[$ns_node]$noderandom-motion0 ;#disablerandommotionUse“forloop”tocreate3nodes:for{seti<0}{$i<3}{incri}{setnode_($i)[$ns_node]}計算機學院-數(shù)據(jù)庫中心SeaSon一個簡單的無線網(wǎng)絡的例子(6)#Createamobil29一個簡單的無線網(wǎng)絡的例子(7)#Definetrafficmodelsourcetraffic-scenario-files#Definenodemovementmodelsourcemovement-scenario-files計算機學院-數(shù)據(jù)庫中心SeaSon一個簡單的無線網(wǎng)絡的例子(7)#Definetraffic30一個簡單的無線網(wǎng)絡的例子(8)#Definenodeinitialpositioninnamfor{seti0}{$i<3}{incri}{ $ns_initial_node_position$node_($i)20}#Tellns/namthesimulationstoptime$ns_at200.00“$ns_halt”#Startyoursimulation$ns_run計算機學院-數(shù)據(jù)庫中心SeaSon一個簡單的無線網(wǎng)絡的例子(8)#Definenodein31無線場景的產(chǎn)生(1)生成節(jié)點運動模型setdest-n<num_of_nodes>-ppausetime-s<maxspeed>-t<simtime>-x<maxx>-y<maxy>Source:Seens-2/indep-utils/cmu-scen-gen/setdest/網(wǎng)上還可以下載更多的模型,如組移動模型等計算機學院-數(shù)據(jù)庫中心SeaSon無線場景的產(chǎn)生(1)生成節(jié)點運動模型計算機學院-數(shù)據(jù)庫中心S32無線場景的產(chǎn)生(2)生成無線網(wǎng)絡數(shù)據(jù)流CBRtrafficnscbrgen.tcl[-typecbf|tcp][-nnnodes][-seedseed][-mcconnections][-raterate]Source:
ns-allinone-2.29\ns-2.29\indep-utils\cmu-scen-gen計算機學院-數(shù)據(jù)庫中心SeaSon無線場景的產(chǎn)生(2)生成無線網(wǎng)絡數(shù)據(jù)流計算機學院-數(shù)據(jù)庫中心33利用NS模擬前搞清楚的問題計算機學院-數(shù)據(jù)庫中心SeaSon利用NS模擬前搞清楚的問題計算機學院-數(shù)據(jù)庫中心SeaSon34NS2源代碼目錄simtk8.0otclTcltcl8.0ns-2nam-1tclextestlib......tclcodeexamplevalidationtestC++codetclcodecore計算機學院-數(shù)據(jù)庫中心SeaSonNS2源代碼目錄simtk8.0otclTcltcl8.035添加協(xié)議(1)添加別人實現(xiàn)的協(xié)議為什么我安裝總是出錯????? 環(huán)境問題,OS,gcc版本,ns版本解決辦法 1.修改環(huán)境,裝相應的os,gcc,ns22.移植到新的環(huán)境,怎么移?gdb調試,沒有別的辦法?。。∮嬎銠C學院-數(shù)據(jù)庫中心SeaSon添加協(xié)議(1)添加別人實現(xiàn)的協(xié)議計算機學院-數(shù)據(jù)庫中心Sea36添加新協(xié)議(2)自己寫協(xié)議路由協(xié)議?應用層協(xié)議?MAC協(xié)議? 最好的方法就是模仿已有的協(xié)議,代表協(xié)議AODV,MAC802.11,Ping添加路由協(xié)議,從Agent繼承添加應用層協(xié)議,從Agent(更靈活)或者Application(有些不能實現(xiàn))計算機學院-數(shù)據(jù)庫中心SeaSon添加新協(xié)議(2)自己寫協(xié)議計算機學院-數(shù)據(jù)庫中心SeaSon37添加新協(xié)議(3)示例:一個泛洪協(xié)議(Mflood)協(xié)議類型:路由層協(xié)議1.定義包頭
structhdr_mflood{ u_int32_t seq_;//根據(jù)需要定義變量,這個靈活決定….//包頭訪問的方法,你只需要復制下來就OK了staticintoffset_;//requiredbyPacketHeaderManagerinlinestaticint&offset(){returnoffset_;}inlinestatichdr_sptree*access(constPacket*p){return(hdr_sptree*)p->access(offset_);}};計算機學院-數(shù)據(jù)庫中心SeaSon添加新協(xié)議(3)示例:一個泛洪協(xié)議(Mflood)計算機學院38添加新協(xié)議(4)2.實現(xiàn)協(xié)議classMFlood:publicAgent{public:
MFlood();
voidrecv(Packet*p,Handler*);intcommand(int,constchar*const*);protected:
inlineintinitialized(){return1&&target_;} //發(fā)送函數(shù),其實就是調用目的節(jié)點的接受函數(shù)inlinevoidsend(Packet*p){target_->recv(p);}};計算機學院-數(shù)據(jù)庫中心SeaSon添加新協(xié)議(4)2.實現(xiàn)協(xié)議計算機學院-數(shù)據(jù)庫中心SeaS39添加新協(xié)議(5)3關聯(lián)tcl對象與C++對象(模板)staticclassMFloodclass:publicTclClass{public:
MFloodclass():TclClass("Agent/MFlood"){} TclObject*create(intargc,constchar*const*argv){ assert(argc==5); return(newMFlood((nsaddr_t)atoi(argv[4]))); //PBOagrv[4]isindex_} }}class_rtProtoMFlood;計算機學院-數(shù)據(jù)庫中心SeaSon添加新協(xié)議(5)3關聯(lián)tcl對象與C++對象(模板)計算機40添加新協(xié)議(6)4關聯(lián)tcl對象與C++對象的包頭(模板)inthdr_mflood::offset_;staticclassMFloodHeaderClass:publicPacketHeaderClass{public:
MFloodHeaderClass():PacketHeaderClass("PacketHeader/MFlood", sizeof(hdr_mflood)){ bind_offset(&hdr_mflood::offset_); }}class_mfloodhdr;計算機學院-數(shù)據(jù)庫中心SeaSon添加新協(xié)議(6)4關聯(lián)tcl對象與C++對象的包頭(模板)41添加新協(xié)議(7)目前為止,所有的代碼工作都已經(jīng)完成了 生下的工作就是將這個協(xié)議編譯到NS2中。需要修改一下文件1.ns-packet.tcl(ns-allinone-2.29\ns-2.29\tcl\lib)2.packet.h(ns-allinone-2.29\ns-2.29\common)3ns-lib.tcl(ns-allinone-2.29\ns-2.29\tcl\lib)
對于我們這個應用層協(xié)議不需要修改計算機學院-數(shù)據(jù)庫中心SeaSon添加新協(xié)議(7)目前為止,所有的代碼工作都已經(jīng)完成了計算機學42添加新協(xié)議(8)1.修改ns-packet.tcl(ns-2.29/tcl/lib)foreachprot{#addbyseason
MFlood……}目的:在NS啟動的時候加載我們的包頭。計算機學院-數(shù)據(jù)庫中心SeaSon添加新協(xié)議(8)1.修改ns-packet.tcl(ns-43添加新協(xié)議(9)2.修改packet.h(一共修改兩處ns-2.29/common)enumpacket_t{ //insertnewpackettypeshere //addbyseason
PT_MFLOOD,//Trace用到 PT_NTYPE//ThisMUSTbetheLASTone }classp_info{ public: p_info(){ //addbyseason
name_[PT_MFLOOD]=“MFlood”;//與前面對應 name_[PT_NTYPE]="undefined"; }目的:Trace中使用,協(xié)議構造函數(shù)SpTreeAgent()初始化時使用計算機學院-數(shù)據(jù)庫中心SeaSon添加新協(xié)議(9)2.修改packet.h(一共修改兩處ns44添加新協(xié)議(10)如果是路由協(xié)議如(AODV)還需要修改ns-lib.tclSimulatorinstproccreate-wireless-nodeargs{MFlood{setragent[$selfcreate-mflood-agent$node]}…}Simulatorinstproccreate-mflood-agent{node}{setragent[newAgent/MFlood[$nodeid]] $nodesetragent_$ragent return$ragent}計算機學院-數(shù)據(jù)庫中心SeaSon添加新協(xié)議(10)如果是路由協(xié)議如(AODV)計算機學院-數(shù)45添加新協(xié)議(11)還有這段代碼(Mflood未使用)~ns-mobilenode.tcl #SpecialprocessingforAODV setaodvonly[stringfirst"AODV"[$agentinfoclass]] if{$aodvonly!=-1}{ $agentif-queue[$selfsetifq_(0)];#ifqbetweenLLandMAC }
計算機學院-數(shù)據(jù)庫中心SeaSon添加新協(xié)議(11)還有這段代碼(Mflood未使用)~ns-46添加新協(xié)議總結5c+2t+1m(521規(guī)則)5c-必須實現(xiàn)的五個C++模塊MFlood與MFloodclasshdr_mflood與MFloodHeaderClasspackt.h添加包頭類型2t-修改兩個tcl文件ns-lib.tcl與ns-packet.tcl有時候還會修改ns-defaut.tcl1m-修改Makefile,將新協(xié)議添加計算機學院-數(shù)據(jù)庫中心SeaSon添加新協(xié)議總結5c+2t+1m(521規(guī)則)計算機學院-數(shù)據(jù)47添加新協(xié)議總結關于添加應用協(xié)議如ping,跟路由協(xié)議類似,甚至跟簡單,如果從Agent繼承,除了不需要修改ns-lib.tcl之外其它類似。但是別忘了設置包頭的大小,不然你發(fā)出的所有數(shù)據(jù)包頭的大小都是0?。。?!PingAgent::PingAgent():Agent(PT_PING){bind("packetSize_",&size_);}修改Ns-defautl.tclAgent/PingsetpacketSize_64計算機學院-數(shù)據(jù)庫中心SeaSon添加新協(xié)議總結關于添加應用協(xié)議如ping,跟路由協(xié)議類似,甚48編譯NS2(1)前面的過程是將代碼添加到NS2里面,但尚未編譯,只有經(jīng)過編譯才能使用。一般我們將我們所有的C++代碼放在一個文件夾內(nèi),如mflood,然后放在ns-2.29/之下修改Makefile(無任何后綴的)添加如下紅色所示代碼,將mflood編譯進NS2OBJ_CC=\#addbyseasonmflood/mflood.omflood/mflood-seqtable.o\計算機學院-數(shù)據(jù)庫中心SeaSon編譯NS2(1)前面的過程是將代碼添加到NS2里面,但尚未編49編譯NS2(2)從cygwin進入ns-2.29目錄下執(zhí)行makeclean#刪除所有的*.o文件makedependmake#重新編譯ns如果沒有錯誤,則可以編寫場景測試什么時候要makeclean???計算機學院-數(shù)據(jù)庫中心SeaSon編譯NS2(2)從cygwin進入ns-2.29目錄下計算機50編譯NS2(3)如果添加新協(xié)議,或者修改了多個協(xié)議公用的NS中頭文件,如packet.h我們都需要重新makeclean然后makedepend,make。計算機學院-數(shù)據(jù)庫中心SeaSon編譯NS2(3)如果添加新協(xié)議,或者修改了多個協(xié)議公用的NS51編譯NS2(4)修改了C++文件對于NS中已有的代碼修改 不需要修改makefile,只需要make添加新的模塊或協(xié)議 修改Makefile并重新MakecleanMakedependMake計算機學院-數(shù)據(jù)庫中心SeaSon編譯NS2(4)修改了C++文件計算機學院-數(shù)據(jù)庫中心Sea52編譯NS2(5)修改了Otcl文件修改NS中已有的代碼recompilesource添加新的代碼source修改Makefile(NS_TCL_LIB),tcl/ns-lib.tcl(source)andrecompile都只需要make即可計算機學院-數(shù)據(jù)庫中心SeaSon編譯NS2(5)修改了Otcl文件計算機學院-數(shù)據(jù)庫中心Se53調試NSTCL的調試Gdb的安裝調試計算機學院-數(shù)據(jù)庫中心SeaSon調試NSTCL的調試計算機學院-數(shù)據(jù)庫中心SeaSon54調試(1)Tcl調試個人覺得沒什么用途,如果你感興趣我的space有安裝方法Spaces.msn\wowseasonC++代碼的調試(segmentfault)調試工具gdb,另外自帶的insight可視化界面,本質也是調用gdb下面介紹gdb的安裝調試計算機學院-數(shù)據(jù)庫中心SeaSon調試(1)Tcl調試計算機學院-數(shù)據(jù)庫中心SeaSon55調試(2)gdb安裝安裝gdb,以cygwin為例重新運行cygwin的setup文件,選擇界面中的keep(必須?。?!否則會死的很慘的),然后找到gdb選擇安裝即可。重新編譯NS2,添加調試信息修改Makefile在下面位置添加-gCCOPT =-g進入ns-2.29目錄下面執(zhí)行MakecleanMakedepend#執(zhí)行這個命令過程中如出錯,不用管!Make如果沒有錯誤,就安裝成功,V!!計算機學院-數(shù)據(jù)庫中心SeaSon調試(2)gdb安裝計算機學院-數(shù)據(jù)庫中心SeaSon56調試(2)Gdb調試NS2以命令行為例進入ns-2.29(%為命令提示符)%gdbnsgdb〉即進入調試計算機學院-數(shù)據(jù)庫中心SeaSon調試(2)Gdb調試NS2計算機學院-數(shù)據(jù)庫中心SeaSon57調試(3)調試常用命令bt列出運行棧中信息bsptree:linenum在sptree文件linenum行設置斷點,注意中間”:”不能丟c相當于vc中continue,n相當于vc中nextdisplayvar,顯示變量var的值其他的參看gdb文檔NS中調試技巧以及演示計算機學院-數(shù)據(jù)庫中心SeaSon調試(3)調試常用命令計算機學院-數(shù)據(jù)庫中心SeaSon58結果分析場景測試工具使用及結果分析其他計算機學院-數(shù)據(jù)庫中心SeaSon結果分析場景測試計算機學院-數(shù)據(jù)庫中心SeaSon59場景測試為了使模擬更接近真實網(wǎng)絡,參數(shù)選擇,非常重要!可以參看相關論文簡單測試用兩三個節(jié)點測試一下首發(fā)數(shù)據(jù),根據(jù)trace文件分析。功能測試測試每一個功能,對于無線網(wǎng)絡的,要測試多跳,各種拓撲。 利用trace分析結果計算機學院-數(shù)據(jù)庫中心SeaSon場景測試為了使模擬更接近真實網(wǎng)絡,參數(shù)選擇,非常重要!可以參60參數(shù)選擇(802.11b)TheAntennaheightoftransmitterandreceiveris1.5m. ThepropagationmodelisTwoRayGroundmodel. Antenna/OmniAntennasetGt_ 1 //Transmitantennagain Antenna/OmniAntennasetGr_ 1 //Receiveantennagain Phy/WirelessPhysetL_1.0 //SystemLossFactor Phy/WirelessPhysetfreq_2.472e9 //channel-13.2.472GHz Phy/WirelessPhysetbandwidth_11Mb //DataRate Phy/WirelessPhysetPt_0.031622777 //TransmitPower Phy/WirelessPhysetCPThresh_10.0 //CollisionThreshold Phy/WirelessPhysetCSThresh_5.011872e-12 //CarrierSensePower Phy/WirelessPhysetRXThresh_5.82587e-09 //ReceivePowerThreshold;calculatedunder TwoRayGroundmodelbytoolsfromNS2. *Mac/802_11setdataRate_11Mb //RateforDataFrames *Mac/802_11setbasicRate_1Mb //RateforControlFrames 計算機學院-數(shù)據(jù)庫中心SeaSon參數(shù)選擇(802.11b)計算機學院-數(shù)據(jù)庫中心SeaSon61常用工具以及結果分析看代碼推薦sourceinsight畫圖,gnuplot,xgraph 命令格式如下,示例演示%gnuplotdelay.plotWindows下還有origin(收費的)分析trace文件使用gawk命令格式 gawk–fdelay.awkoutput.tr計算機學院-數(shù)據(jù)庫中心SeaSon常用工具以及結果分析看代碼計算機學院-數(shù)據(jù)庫中心SeaSon62常用工具以及結果分析柯老師強烈推薦模擬wireless網(wǎng)絡,可以用.tw/wordpress/?p=66生成無線網(wǎng)絡場景,免去寫tcl腳本的痛苦
WIREDNETWORK,可以建議使用NSBENCH計算機學院-數(shù)據(jù)庫中心SeaSon常用工具以及結果分析柯老師強烈推薦計算機學院-數(shù)據(jù)庫中心Se63計算機學院-數(shù)據(jù)庫中心SeaSon計算機學院-數(shù)據(jù)庫中心SeaSon64常用工具以及結果分析網(wǎng)絡性能度量detailsonacadem/nanog/june2019/performance.html1.BandwidthutilizationTheaggregateofalltrafficcurrentlybeingconsumedonahoporpath.2.Packetspersecond3.RoundTripTimeTheelapsedtimefortransitofasignaloveraclosedcircuit.4.RTTvariance
/~dunigan/tcptour/javis/tcp_rttvar.html5.packetloss6.Reachability7.CircuitPerformance8.BandwidthUtilizationandPacketsPersecond cisco/en/US/tech/tk648/tk362/technologies_tech_note09186a008009496e.shtml計算機學院-數(shù)據(jù)庫中心SeaSon常用工具以及結果分析網(wǎng)絡性能度量計算機學院-數(shù)據(jù)庫中心Sea65常用工具以及結果分析必須了解各種協(xié)議的trace格式分析協(xié)議性能的gawk代碼柯老師的網(wǎng)站0/~smallko/ns2/tool.htmNSFAQQuestion14/~dchen02/FAQ.txt示例計算機學院-數(shù)據(jù)庫中心SeaSon常用工具以及結果分析必須了解各種協(xié)議的trace格式計算機學66使用Gawk分析結果Gawk簡介與NS相關的基本知識具體例子計算機學院-數(shù)據(jù)庫中心SeaSon使用Gawk分析結果Gawk簡介計算機學院-數(shù)據(jù)庫中心Sea67使用Gawk分析結果無線通信的trace格式s10.107722800_1_AGT22tcp43[021800][1:02:0302][130]00r10.110474850_2_AGT22tcp36[021800][1:02:0302][130]10計算機學院-數(shù)據(jù)庫中心SeaSon使用Gawk分析結果無線通信的trace格式計算機學院-數(shù)據(jù)68Gawk簡介解釋性的腳本語言變量以及數(shù)組不用聲明按行處理有pipe功能,可以將處理數(shù)據(jù)傳給shell計算機學院-數(shù)據(jù)庫中心SeaSonGawk簡介解釋性的腳本語言計算機學院-數(shù)據(jù)庫中心SeaSo69Gawk相關語法s10.1_1_AGT22tcp43[021800][1:02:0302][130]00 (1).Gawk讀入trace中的一行$0$1$2$3$4$5$6$7…整行s10.1_1_AGT22(uid)tcp…注:列之間一般用空格區(qū)分計算機學院-數(shù)據(jù)庫中心SeaSonGawk相關語法s10.1_1_AGT2270Gawk相關語法$0$1$2$3$4$5$6$7…整行s10.1_1_AGT22tcp…(2)執(zhí)行動作 Pattern1 {Actions1} Pattern2 {Actions2} …………… Pattern3 {Actions3} 其中pattern為條件語句(或正則表達式)如:if($1==“s”&&$4==“AGT”)Actions為動作,如:AgtNum++;計算機學院-數(shù)據(jù)庫中心SeaSonGawk相關語法$0$1$2$3$4$5$6$7…整行s1071Gawk相關語法(3)IO操作
print、printf()、getline
(4)控制語句
if(...){...}else{…}、while(…){…}……計算機學院-數(shù)據(jù)庫中心SeaSonGawk相關語法(3)IO操作計算機學院-數(shù)據(jù)庫中心S72Gawk工作流程Gawk反復執(zhí)行以下四個步驟:1.自動從trace文件中讀取一行。2.自動更新內(nèi)建參數(shù)的值($n)。3.逐行執(zhí)行程序中所有的Pattern{Actions}代碼。4.如果trace文件還有未讀取的行,則循環(huán)執(zhí)行上面步驟1~3。計算機學院-數(shù)據(jù)庫中心SeaSonGawk工作流程Gawk反復執(zhí)行以下四個步驟:計算機學院-數(shù)73Gawk程序的框架BEGIN{AgtNum=0;}{ if($1=="s"&&$4=="AGT")AgtNum++;}END{printf("
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GH/T 1448-2024雅安藏茶原料要求
- 2024屆內(nèi)蒙古自治區(qū)錫林郭勒盟高三上學期期末考試歷史試題(解析版)
- 2024-2025學年浙江省杭州地區(qū)(含周邊)重點中學高二上學期期中考試歷史試題(解析版)
- 廣東省廣州市天河區(qū)2025屆高三上學期綜合測試(一)英語試卷含答案
- 《美術基本種類》課件
- 單位管理制度集合大合集【人員管理】十篇
- 單位管理制度匯編大合集【人力資源管理篇】十篇
- 單位管理制度合并匯編人員管理
- 單位管理制度分享匯編【職員管理】十篇
- 高中語文一些重要的文化常識
- 銀行資產(chǎn)保全業(yè)務管理辦法
- 汽車吊籃使用專項施工方案
- 2024-2025學年四年級科學上冊第三單元《運動和力》測試卷(教科版)
- 教育用地劃撥流程
- 制造業(yè)智能制造工廠布局方案
- 10《吃飯有講究》教學設計-2024-2025學年道德與法治一年級上冊統(tǒng)編版
- 2024年中考數(shù)學二輪復習二次函數(shù)綜合(含答案)
- 拆除鋁合金門窗及附窗安全協(xié)議書
- 體外診斷試劑-C反應蛋白(CRP)測定試劑盒(膠乳增強免疫比濁法)臨床評價報告-血清
- 八年級物理上冊(滬粵版2024)新教材解讀課件
- 人教版數(shù)學四上《大數(shù)的認識》說課稿
評論
0/150
提交評論