版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,SeaSon,NS2入門(mén)與提高,柯志亨 SeaSon 哈爾濱工業(yè)大學(xué) 2006-5-28,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,目錄,NS2 簡(jiǎn)介 安裝 模擬流程 添加新協(xié)議 調(diào)試以及結(jié)果分析,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,NS2 簡(jiǎn)介,背景 NS2目標(biāo) NS2功能 NS2 組件 NS2體系結(jié)構(gòu),SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,NS2 背景,1989 REAL network simulator 1995: DARPA VINT project at LBL,Xerox PARC, UCB, and USC/ISI Present: DARPA SAMAN
2、 project and NSF CONSER project Collaboration with other researchers including CIRI,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,NS2研究范圍,支持網(wǎng)絡(luò)協(xié)議的研究和教育 通信協(xié)議的設(shè)計(jì),數(shù)據(jù)流的研究等 不同協(xié)議的比較 優(yōu)點(diǎn) 與平臺(tái)無(wú)關(guān),有大量的協(xié)議、代碼以及模型可供使用,開(kāi)源的,不同的協(xié)議很容易進(jìn)行比較。,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,NS2目標(biāo),NS2不適合做的? 大多數(shù)任務(wù)都是單節(jié)點(diǎn)完成的,比如交換機(jī)的性能分析等。,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,NS2功能,有線(xiàn)網(wǎng)絡(luò) 路由層 DV, LS, PIM
3、-SM 傳輸層: TCP and UDP 流量產(chǎn)生:web, ftp, telnet, cbr, stochastic 隊(duì)列模型:drop-tail, RED, FQ, SFQ QoS: IntServ and Diffserv,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,NS2功能,無(wú)線(xiàn)網(wǎng)絡(luò) 網(wǎng)絡(luò)類(lèi)型:MANET, Sensor Networks 路由:AODV, DSR, DSDV,Mobile IP以及HMIPv6等 MAC: 802.11, 802.15.4,Smac等 傳輸層、多種數(shù)據(jù)流模擬,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,NS2 組件,ns: 網(wǎng)絡(luò)模擬器 執(zhí)行tcl腳本,進(jìn)行模擬,
4、并將所有的模擬結(jié)果以trace文件的個(gè)是輸出。 nam: 網(wǎng)絡(luò) AniMator 將ns的結(jié)果可視化。 模擬的流程,tcl 腳本,ns-2,Trace文件 Nam文件,nam,Gawk gnuplot,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,NS2體系結(jié)構(gòu),面向?qū)ο蟮脑O(shè)計(jì) 支持重用 容易維護(hù) 方便擴(kuò)展,如添加新協(xié)議 分裂對(duì)象模型 C+是高效的編譯執(zhí)行語(yǔ)言,功能模擬,性能較好 Otcl 解釋執(zhí)行的,進(jìn)行場(chǎng)景配置。不必重新編譯更靈活,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,NS2體系結(jié)構(gòu),NS2結(jié)合兩者的優(yōu)點(diǎn),C+,otcl,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,Tcl與C+對(duì)象綁定過(guò)程,以tcp為例
5、,當(dāng)你在tcl腳本中使用以下命令創(chuàng)建一個(gè)Tcp對(duì)象時(shí) set tcp0 new Agent/TCP 首先創(chuàng)建tcl對(duì)象,即解釋對(duì)象 proc new className args set o SplitObject getid # 創(chuàng)建分裂對(duì)象 if catch $className create $o $args msg return $o ,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,Tcl與C+對(duì)象綁定過(guò)程,然后通過(guò)Tcl對(duì)象的init()函數(shù)中創(chuàng)建對(duì)應(yīng)的shadow對(duì)象 SplitObject instproc init args $self next if catch $self crea
6、te-shadow $args error _FAILED_SHADOW_OBJECT_ ,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,Tcl與C+對(duì)象綁定過(guò)程,Create-shadow怎樣找到tcl對(duì)象對(duì)應(yīng)的C+對(duì)象? 答案就是TclClass類(lèi)! static class TcpClass : public TclClass public: TcpClass() : TclClass(Agent/TCP) TclObject* create(int , const char*const*) return (new TcpAgent(); class_tcp;,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中
7、心,NS2系統(tǒng)結(jié)構(gòu) -離散事件模擬,把世界上的一切都看成事件 維護(hù)一個(gè)基于發(fā)生時(shí)間排序的 事件(events)隊(duì)列 維護(hù)一個(gè)系統(tǒng)的時(shí)間virtual time 重復(fù)的執(zhí)行以下的過(guò)程: 從對(duì)首取出一個(gè)事件, set virtual time=events time 處理這個(gè)事件 如果在處理時(shí)間過(guò)程中產(chǎn)生新的event,插入queue 每一個(gè)事件都有一個(gè)預(yù)定的執(zhí)行(虛擬的)時(shí)間,獨(dú)立于真實(shí)執(zhí)行時(shí)間。 CPU 執(zhí)行的快慢不影響結(jié)果。,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,離散事件模擬示例,D,S,S,D,事件隊(duì)列,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,一個(gè)數(shù)據(jù)包怎樣從源節(jié)點(diǎn)到目的節(jié)點(diǎn),同一個(gè)節(jié)點(diǎn)內(nèi)各
8、層協(xié)議之間傳數(shù)據(jù)? 節(jié)點(diǎn)之間怎么傳?,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,安裝 安裝環(huán)境及方法 安裝問(wèn)題,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,安裝(1),推薦直接安裝all-inone版本(最新all-inone-2.29) Linux(直接install就行了) Windows+Cygwin+Ns2 windows安裝方法 柯老師網(wǎng)站(不要看中文安裝說(shuō)明,選英文的) 0/smallko/ns2/ns2.htm,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,安裝(2),windows安裝方法 柯老師網(wǎng)站上Cygwin可以成功
9、安裝的ns2版本有NS-2.26, NS-2.27, NS-2.28, ns-2.29 注:NS-2.26需要PATCH過(guò).才能安裝 柯老師的安裝經(jīng)驗(yàn): 不過(guò)安裝的過(guò)程還是可能會(huì)有一些問(wèn)題.最確??梢园惭b成功的方法是:重新安裝WINDOWS.裝完馬上安裝CYGWIN + NS2,安裝後.在裝SERVICE PACK.或其他的軟件.這是我的經(jīng)驗(yàn),SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,安裝(3),NS仿真軟件-問(wèn)題求助的地方 常見(jiàn)錯(cuò)誤原因 主要問(wèn)題gcc版本 重裝,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,開(kāi)始進(jìn)行摸擬,一個(gè)簡(jiǎn)單的無(wú)線(xiàn)網(wǎng)絡(luò)的例子(1) 無(wú)線(xiàn)場(chǎng)景的產(chǎn)生 利用NS模擬前搞清楚的問(wèn)題 添加新
10、協(xié)議 編譯NS2,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,一個(gè)簡(jiǎn)單的無(wú)線(xiàn)網(wǎng)絡(luò)的例子(1),場(chǎng)景配置 3 個(gè)mobile nodes 平面拓?fù)?670mX670m ad hoc 路由協(xié)議 DSDV Random Waypoint mobility model TCP and CBR traffic,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,一個(gè)簡(jiǎn)單的無(wú)線(xiàn)網(wǎng)絡(luò)的例子(2),set ns_ new Simulator ; create a ns simulator instance,#Define Global Variables,set topo new Topography ; create a to
11、pology and $topo load_flatgrid 670 670 ; define it in 670 x670 area,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,一個(gè)簡(jiǎn)單的無(wú)線(xiàn)網(wǎng)絡(luò)的例子(3),#Define standard ns/nam trace,set tracefd open 694demo.tr w $ns_ trace-all $tracefd,set namtrace open 694demo.nam w $ns_ namtrace-all-wireless $namtrace 670 670,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,一個(gè)簡(jiǎn)單的無(wú)線(xiàn)網(wǎng)絡(luò)的例子(4),#
12、Create “God”,set god_ create-god 3 God 用來(lái)保存一個(gè)結(jié)點(diǎn)到另外一個(gè)結(jié)點(diǎn)直接的跳部數(shù). 例如: $ns_ at 899.00 “$god_ setdist 2 3 1”,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,一個(gè)簡(jiǎn)單的無(wú)線(xiàn)網(wǎng)絡(luò)的例子(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 -antTyp
13、e Antenna/OmniAntenna -propType Propagation/TwoRayGround -phyType Phy/WirelessPhy -channelType Channel/WirelessChannel -topoInstance $topo -agentTrace ON -routerTrace OFF -macTrace OFF,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,一個(gè)簡(jiǎn)單的無(wú)線(xiàn)網(wǎng)絡(luò)的例子(6),#Create a mobile node and attach it to the channel,set node $ns_ node $node rand
14、om-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,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,一個(gè)簡(jiǎn)單的無(wú)線(xiàn)網(wǎng)絡(luò)的例子(7),SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,一個(gè)簡(jiǎn)單的無(wú)線(xiàn)網(wǎng)絡(luò)的例子(8),SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,無(wú)線(xiàn)場(chǎng)景的產(chǎn)生(1),生成節(jié)點(diǎn)運(yùn)動(dòng)模型 setdest -n -p pausetime -s -t -x -y Source: See ns-2/indep-utils/cmu-sce
15、n-gen/setdest/ 網(wǎng)上還可以下載更多的模型,如組移動(dòng)模型等,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,無(wú)線(xiàn)場(chǎng)景的產(chǎn)生(2),生成無(wú)線(xiàn)網(wǎng)絡(luò)數(shù)據(jù)流 CBR traffic ns cbrgen.tcl -type cbf|tcp -nn nodes -seed seed -mc connections -rate rate Source: ns-allinone-2.29ns-2.29indep-utilscmu-scen-gen,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,利用NS模擬前搞清楚的問(wèn)題,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,NS2 源代碼目錄,tcl code,example,va
16、lidation test,C+ code,tcl code core,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,添加協(xié)議(1),添加別人實(shí)現(xiàn)的協(xié)議 為什么我安裝總是出錯(cuò)? 環(huán)境問(wèn)題,OS, gcc版本,ns版本 解決辦法 1. 修改環(huán)境,裝相應(yīng)的os,gcc,ns2 2. 移植到新的環(huán)境,怎么移? gdb調(diào)試,沒(méi)有別的辦法!,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,添加新協(xié)議(2),自己寫(xiě)協(xié)議 路由協(xié)議?應(yīng)用層協(xié)議?MAC協(xié)議? 最好的方法就是模仿已有的協(xié)議,代表協(xié)議AODV, MAC802.11,Ping 添加路由協(xié)議,從Agent繼承 添加應(yīng)用層協(xié)議,從Agent(更靈活)或者Applicat
17、ion(有些不能實(shí)現(xiàn)),SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,添加新協(xié)議(3),示例:一個(gè)泛洪協(xié)議(Mflood) 協(xié)議類(lèi)型:路由層協(xié)議 1.定義包頭 struct hdr_mflood u_int32_tseq_; /根據(jù)需要定義變量,這個(gè)靈活決定 . / 包頭訪(fǎng)問(wèn)的方法,你只需要復(fù)制下來(lái)就OK了 static int offset_; / required by PacketHeaderManager inline static int,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,添加新協(xié)議(4),2. 實(shí)現(xiàn)協(xié)議 class MFlood: public Agent public: MFlood
18、(); void recv(Packet *p, Handler *); int command(int, const char *const *); protected: inline int initialized() return 1 ,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,添加新協(xié)議(5),3 關(guān)聯(lián)tcl對(duì)象與C+對(duì)象(模板) static class MFloodclass : public TclClass public: MFloodclass() : TclClass(Agent/MFlood) TclObject* create(int argc, const char*co
19、nst* argv) assert(argc = 5); return (new MFlood(nsaddr_t) atoi(argv4);/ PBO agrv4 is index_ class_rtProtoMFlood;,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,添加新協(xié)議(6),4 關(guān)聯(lián)tcl對(duì)象與C+對(duì)象的包頭(模板) int hdr_mflood:offset_; static class MFloodHeaderClass : public PacketHeaderClass public: MFloodHeaderClass() : PacketHeaderClass(PacketH
20、eader/MFlood, sizeof(hdr_mflood) bind_offset(,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,添加新協(xié)議(7),目前為止,所有的代碼工作都已經(jīng)完成了 生下的工作就是將這個(gè)協(xié)議編譯到NS2中。 需要修改一下文件 1. ns-packet.tcl (ns-allinone-2.29ns-2.29tcllib) 2. packet.h (ns-allinone-2.29ns-2.29common) 3 ns-lib.tcl (ns-allinone-2.29ns-2.29tcllib) 對(duì)于我們這個(gè)應(yīng)用層協(xié)議不需要修改,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,添加新
21、協(xié)議(8),1. 修改ns-packet.tcl(ns-2.29/tcl/lib) foreach prot # add by season MFlood 目的:在NS啟動(dòng)的時(shí)候加載我們的包頭。,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,添加新協(xié)議(9),2.修改 packet.h(一共修改兩處ns-2.29/common) enum packet_t / insert new packet types here /add by season PT_MFLOOD,/Trace用到 PT_NTYPE / This MUST be the LAST one class p_info public: p
22、_info() /add by season name_PT_MFLOOD= “MFlood”;/與前面對(duì)應(yīng) name_PT_NTYPE= undefined; 目的:Trace中使用,協(xié)議構(gòu)造函數(shù)SpTreeAgent()初始化時(shí)使用,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,添加新協(xié)議(10),如果是路由協(xié)議如(AODV) 還需要修改ns-lib.tcl Simulator instproc create-wireless-node args MFlood set ragent $self create-mflood-agent $node Simulator instproc create-
23、mflood-agent node set ragent new Agent/MFlood $node id $node set ragent_ $ragent return $ragent ,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,添加新協(xié)議(11),還有這段代碼(Mflood未使用)ns-mobilenode.tcl # Special processing for AODV set aodvonly string first AODV $agent info class if $aodvonly != -1 $agent if-queue $self set ifq_(0) ;# ifq
24、between LL and MAC ,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,添加新協(xié)議總結(jié),5c+2t+1m(521規(guī)則) 5c-必須實(shí)現(xiàn)的五個(gè)C+模塊 MFlood與MFloodclass hdr_mflood與MFloodHeaderClass packt.h添加包頭類(lèi)型 2t-修改兩個(gè)tcl文件 ns-lib.tcl與ns-packet.tcl 有時(shí)候還會(huì)修改ns-defaut.tcl 1m-修改Makefile,將新協(xié)議添加,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,添加新協(xié)議總結(jié),關(guān)于添加應(yīng)用協(xié)議如ping,跟路由協(xié)議類(lèi)似,甚至跟簡(jiǎn)單,如果從Agent繼承,除了不需要修改ns-lib.
25、tcl之外其它類(lèi)似。 但是別忘了設(shè)置包頭的大小,不然你發(fā)出的所有數(shù)據(jù)包頭的大小都是0! PingAgent:PingAgent() : Agent(PT_PING) bind(packetSize_, 修改Ns-defautl.tcl Agent/Ping set packetSize_ 64,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,編譯NS2(1),前面的過(guò)程是將代碼添加到NS2里面,但尚未編譯,只有經(jīng)過(guò)編譯才能使用。 一般我們將我們所有的C+代碼放在一個(gè)文件夾內(nèi),如mflood,然后放在ns-2.29/之下 修改Makefile(無(wú)任何后綴的) 添加如下紅色所示代碼,將mflood編譯進(jìn)NS
26、2 OBJ_CC = # add by season mflood/mflood.o mflood/mflood-seqtable.o,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,編譯NS2(2),從cygwin進(jìn)入ns-2.29目錄下 執(zhí)行 make clean # 刪除所有的*.o文件 make depend make # 重新編譯ns 如果沒(méi)有錯(cuò)誤,則可以編寫(xiě)場(chǎng)景測(cè)試 什么時(shí)候要make clean?,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,編譯NS2(3),如果添加新協(xié)議,或者修改了多個(gè)協(xié)議公用的NS中頭文件,如packet.h我們都需要重新make clean 然后make depend,
27、make。,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,編譯NS2(4),修改了C+文件 對(duì)于NS中已有的代碼修改 不需要修改makefile,只需要 make 添加新的模塊或協(xié)議 修改Makefile并重新 Make clean Make depend Make,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,編譯NS2(5),修改了Otcl文件 修改NS中已有的代碼 recompile source 添加新的代碼 source 修改 Makefile (NS_TCL_LIB), tcl/ns-lib.tcl (source) and recompile 都只需要make即可,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)
28、庫(kù)中心,調(diào)試NS,TCL的調(diào)試 Gdb的安裝調(diào)試,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,調(diào)試(1),Tcl調(diào)試 個(gè)人覺(jué)得沒(méi)什么用途,如果你感興趣我的space有安裝方法 Swowseason C+代碼的調(diào)試(segment fault) 調(diào)試工具gdb,另外自帶的insight可視化界面,本質(zhì)也是調(diào)用gdb 下面介紹gdb的安裝調(diào)試,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,調(diào)試(2),gdb安裝 安裝gdb,以cygwin為例 重新運(yùn)行cygwin的setup文件,選擇界面中的keep(必須!否則會(huì)死的很慘的),然后找到gdb選擇安裝即可。 重新編譯NS2,添加調(diào)試信息 修改Makefile在下
29、面位置添加-g CCOPT= -g 進(jìn)入ns-2.29目錄下面執(zhí)行 Make clean Make depend # 執(zhí)行這個(gè)命令過(guò)程中如出錯(cuò),不用管! Make 如果沒(méi)有錯(cuò)誤,就安裝成功,V!,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,調(diào)試(2),Gdb調(diào)試NS2 以命令行為例 進(jìn)入ns-2.29(%為命令提示符) % gdb ns gdb 即進(jìn)入調(diào)試,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,調(diào)試(3),調(diào)試常用命令 bt列出運(yùn)行棧中信息 b sptree.cc:linenum 在sptree.cc文件linenum行設(shè)置斷點(diǎn),注意中間”:”不能丟 c 相當(dāng)于vc中continue, n 相當(dāng)于v
30、c中next display var,顯示變量var的值 其他的參看gdb文檔 NS中調(diào)試技巧以及演示,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,結(jié)果分析,場(chǎng)景測(cè)試 工具使用及結(jié)果分析 其他,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,場(chǎng)景測(cè)試,為了使模擬更接近真實(shí)網(wǎng)絡(luò),參數(shù)選擇,非常重要!可以參看相關(guān)論文 簡(jiǎn)單測(cè)試 用兩三個(gè)節(jié)點(diǎn)測(cè)試一下首發(fā)數(shù)據(jù),根據(jù)trace文件分析。 功能測(cè)試 測(cè)試每一個(gè)功能,對(duì)于無(wú)線(xiàn)網(wǎng)絡(luò)的,要測(cè)試多跳,各種拓?fù)洹?利用trace分析結(jié)果,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,參數(shù)選擇(802.11b),The Antenna height of transmitter and r
31、eceiver is 1.5m. The propagation model is TwoRayGround model. Antenna/OmniAntenna set Gt_ 1 /Transmit antenna gain Antenna/OmniAntenna set Gr_ 1/Receive antenna gain Phy/WirelessPhy set L_ 1.0 /System Loss Factor Phy/WirelessPhy set freq_ 2.472e9 /channel-13. 2.472GHz Phy/WirelessPhy set bandwidth_
32、11Mb /Data Rate Phy/WirelessPhy set Pt_ 0.031622777 /Transmit Power Phy/WirelessPhy set CPThresh_ 10.0 /Collision Threshold Phy/WirelessPhy set CSThresh_ 5.011872e-12 /Carrier Sense Power Phy/WirelessPhy set RXThresh_ 5.82587e-09 /Receive Power Threshold; calculated under TwoRayGround model by tools
33、 from NS2. *Mac/802_11 set dataRate_ 11Mb /Rate for Data Frames *Mac/802_11 set basicRate_ 1Mb /Rate for Control Frames,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,常用工具以及結(jié)果分析,看代碼 推薦sourceinsight 畫(huà)圖,gnuplot,xgraph 命令格式如下,示例演示 % gnuplot delay.plot Windows下還有origin(收費(fèi)的) 分析trace文件 使用gawk 命令格式 gawk f delay.awk output.tr,SeaSon,計(jì)
34、算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,常用工具以及結(jié)果分析,柯老師強(qiáng)烈推薦 模擬wireless網(wǎng)絡(luò) ,可以用.tw/wordpress/?p=66 生成無(wú)線(xiàn)網(wǎng)絡(luò)場(chǎng)景,免去寫(xiě)tcl腳本的痛苦 WIRED NETWORK,可以建議使用NSBENCH,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,常用工具以及結(jié)果分析,網(wǎng)絡(luò)性能度量 details on 1.Bandwidth utilization The aggregate of all traffic currently being consumed on a hop or pa
35、th. 2.Packets per second 3.Round Trip Time The elapsed time for transit of a signal over a closed circuit. 4.RTT variance /dunigan/tcptour/javis/tcp_rttvar.html 5.packet loss 6.Reachability 7.Circuit Performance 8.Bandwidth Utilization and Packets Per second ,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,常
36、用工具以及結(jié)果分析,必須了解各種協(xié)議的trace格式 分析協(xié)議性能的gawk代碼 柯老師的網(wǎng)站 0/smallko/ns2/tool.htm NS FAQ Question 14 /dchen02/FAQ.txt 示例,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,使用Gawk分析結(jié)果,Gawk簡(jiǎn)介 與NS相關(guān)的基本知識(shí) 具體例子,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,使用Gawk分析結(jié)果,無(wú)線(xiàn)通信的trace格式 s 10.107722800 _1_ AGT - 22 tcp 43 0 2 1 800 - 1:0 2:0 30 2
37、 13 0 0 0 r 10.110474850 _2_ AGT - 22 tcp 36 0 2 1 800 - 1:0 2:0 30 2 13 0 1 0,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,Gawk簡(jiǎn)介,解釋性的腳本語(yǔ)言 變量以及數(shù)組不用聲明 按行處理 有pipe功能,可以將處理數(shù)據(jù)傳給shell,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,Gawk相關(guān)語(yǔ)法,s 10.1 _1_ AGT - 22 tcp 43 0 2 1 800 - 1:0 2:0 30 2 13 0 0 0 (1).Gawk讀入trace中的一行,注:列之間一般用空格區(qū)分,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,Gawk相關(guān)
38、語(yǔ)法,(2)執(zhí)行動(dòng)作 Pattern1 Actions1 Pattern2 Actions2 Pattern3 Actions3 其中pattern為條件語(yǔ)句(或正則表達(dá)式)如: if ($1 = “s” ,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,Gawk相關(guān)語(yǔ)法,(3)IO操作 print 、 printf( ) 、getline . (4)控制語(yǔ)句 if ( .) . else 、 while() ,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,Gawk工作流程,Gawk反復(fù)執(zhí)行以下四個(gè)步驟: 1. 自動(dòng)從trace文件中讀取一行。 2. 自動(dòng)更新內(nèi)建參數(shù)的值($n)。 3. 逐行執(zhí)行程序中所有 的 Pattern Actions 代碼。 4. 如果trace文件還有未讀取的行,則循環(huán)執(zhí)行上面步驟13。,SeaSon,計(jì)算機(jī)學(xué)院-數(shù)據(jù)庫(kù)中心,Gawk程序的框架,BEG
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版南京綠色建筑項(xiàng)目能源合同管理協(xié)議4篇
- 2025年度特色苗木種植與市場(chǎng)推廣服務(wù)合同4篇
- 2025年度鋁合金門(mén)窗企業(yè)戰(zhàn)略合作伙伴合同范本
- 2025年度時(shí)尚服飾區(qū)域分銷(xiāo)代理合同
- 2025年度高校教授職務(wù)評(píng)審及聘任合同4篇
- 二零二五年度土石方工程地質(zhì)災(zāi)害預(yù)警與應(yīng)急處理合同
- 二零二五年度冷鏈倉(cāng)儲(chǔ)與運(yùn)輸一體化服務(wù)合同4篇
- 二零二五年度棉花產(chǎn)業(yè)安全生產(chǎn)管理合同4篇
- 2025版美發(fā)師創(chuàng)業(yè)孵化項(xiàng)目聘用合同2篇
- 二零二五年度奢侈品銷(xiāo)售團(tuán)隊(duì)聘用合同范本
- 第1課 隋朝統(tǒng)一與滅亡 課件(26張)2024-2025學(xué)年部編版七年級(jí)歷史下冊(cè)
- 2025-2030年中國(guó)糖醇市場(chǎng)運(yùn)行狀況及投資前景趨勢(shì)分析報(bào)告
- 冬日暖陽(yáng)健康守護(hù)
- 水處理藥劑采購(gòu)項(xiàng)目技術(shù)方案(技術(shù)方案)
- 2024級(jí)高一上期期中測(cè)試數(shù)學(xué)試題含答案
- 盾構(gòu)標(biāo)準(zhǔn)化施工手冊(cè)
- 天然氣脫硫完整版本
- 山東省2024-2025學(xué)年高三上學(xué)期新高考聯(lián)合質(zhì)量測(cè)評(píng)10月聯(lián)考英語(yǔ)試題
- 不間斷電源UPS知識(shí)培訓(xùn)
- 三年級(jí)除法豎式300道題及答案
- 人教版八級(jí)物理下冊(cè)知識(shí)點(diǎn)結(jié)
評(píng)論
0/150
提交評(píng)論