nsBench.docx
- 文档编号:8607725
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:22
- 大小:1.61MB
nsBench.docx
《nsBench.docx》由会员分享,可在线阅读,更多相关《nsBench.docx(22页珍藏版)》请在冰豆网上搜索。
nsBench
實驗六nsBench
實驗目的
學習如何使用nsBench來自動產生模擬TCL程式碼,以進行有線網路模擬。
背景知識
nsBench是採用拖放(drag-and-drop)使用者介面來幫助使用者快速並簡單的產生所需模擬的TCL檔案。
目前可以支援的功能為
(1)node、simplex/duplexlink、LAN
(2)Agents:
TCP,UDP,TCPSink,TCP/Fack,TCP/FullTcp,TCP/Newreno,TCP/Reno,TCP/Sack1,TCPSink,TCPSink/Sack1,TCPSink/DelAck,TCPSink/Sack1/DelAck,TCP/Vegas,NullAgent
(3)Applications/Traffic:
FTP,Telent,Http/Server,Http/Client,Http/Cache,webtraf,Traffic/CBR,Traffic/Pareto,Traffic/Exponential
(4)Services:
Multicast,PacketScheduling,RED,DiffServ
(5)Creating"Groups"concepttocompensatefor"loops"
(6)Scenariogenerator
(7)LinkMonitors
(8)LossModels
(9)RoutingProtocols
這邊要請讀者留意的,nsBench主要是用來產生有線網路的模擬TCL碼,並無支援無線網路。
準備工具
由於nsBench是由Java所開發的,因此在實行nsBench之前必需先安裝JVM,此軟體可到Sun的網站下載,而筆者所使用的是jre-1_5_0_03-windows-i586-p.exe。
安裝完後,接著就是下載nsBench,下載網址是http:
//www.mnlab.cs.depaul.edu/projects/nsbench/download/nsBench-1.0b3.jar。
實驗步驟
[執行方法]
1.打開cygwin的視窗
2.切換到nsBench檔案的資料夾(假設nsBench-1.0b3.jar是放在ns-allinone-2.29/ns-2.29/book/lab6的目錄下)
3.執行nsBench
4.產生如下的視窗
[範例一]設計出如同計算機網路實驗--以NS2模擬工具實作這本書中的第三章模擬網路環境
1.建立節點
2.請建立四個節點,建立後如下圖所示。
3.按住節點,並拖曳到適當的位置,如下圖所示。
4.建立連線。
以n0到n2為例,先把滑鼠移至到n0上,等到游標變成”+”後按住左鍵,並拖曳到n2上。
5.設定n0到n2的Link相關參數。
在n0到ns2的link上快速的連續按兩次,則可出現如下圖所示。
(讀者則可以根據需要在此視窗中做設定)
6.以n2到n3的link為例,需要把Bandwidth改為1.7Mbps。
7.所有link都設定完,則如下圖所示。
8.接著,我們要建立FTP連線,但在建立FTP應用程式之前,必須先建立TCPagent。
由於FTP是要建立在n0之上,因此請先點選n0一下,然後再選Insert->Transport->TCPTahoe。
所產生的tcp0位置可能會與下圖不一樣,讀者可以自行按住tcp0並拖曳到想要的位置。
9.先點選n3,然後再選Insert->Transport->TCPSink。
10.先點選tcp0,然後再選Insert->Traffic->FTP,以產生一個FTP的應用程式。
11.在tcp0和sink0之間建立連線。
先把滑鼠移至tcp0上,等到游標變成”+”後按住左鍵,並拖曳到sink0上。
12.使用相同的方法,在n1上建立UDPagent,在n3上建立Null,並建立CBR應用程式。
13.快速的按cbr0兩次,設定CBR參數。
14.當網路的拓樸和其相關的參數設定完後,接著就要設定應用程式的開始和結束時間與模擬需要執行多久。
點選Configuration->Scenario
(按AddRow,並把相關的資料填入。
Time是需要自己手動輸入,Application和Action可以使用點選的方式)
15.設定模擬過程記錄檔名稱。
16.儲存project檔。
17.產生TCL檔。
18.觀看TCL程式。
(會使用wordpad開啟sim.tcl檔案,內容如下所示)(book/lab6/sim.tcl)
#CreatingNewSimulator
setns[newSimulator]
#Settingupthetraces
setf[openout.trw]
setnf[openout.namw]
$nsnamtrace-all$nf
$nstrace-all$f
procfinish{}{
globalnsnff
$nsflush-trace
puts"Simulationcompleted."
close$nf
close$f
exit0
}
#
#CreateNodes
#
setn0[$nsnode]
puts"n0:
[$n0id]"
setn1[$nsnode]
puts"n1:
[$n1id]"
setn2[$nsnode]
puts"n2:
[$n2id]"
setn3[$nsnode]
puts"n3:
[$n3id]"
#
#SetupConnections
#
$nsduplex-link$n0$n22Mb10msDropTail
$nsduplex-link$n1$n22Mb10msDropTail
$nsduplex-link$n2$n31.7Mb10msDropTail
#
#SetupTransportationLevelConnections
#
settcp0[newAgent/TCP]
$nsattach-agent$n0$tcp0
setsink0[newAgent/TCPSink]
$nsattach-agent$n3$sink0
setudp0[newAgent/UDP]
$nsattach-agent$n1$udp0
setnull0[newAgent/Null]
$nsattach-agent$n3$null0
#
#Setuptrafficsources
#
setftp0[newApplication/FTP]
$ftp0attach-agent$tcp0
setcbr0[newApplication/Traffic/CBR]
$cbr0setrate_1Mb
$cbr0setpacketSize_1000
$cbr0attach-agent$udp0
$nsconnect$tcp0$sink0
$tcp0setfid_0
$nsconnect$udp0$null0
$udp0setfid_1
#
#Startupthesources
#
$nsat0.1"$cbr0start"
$nsat1"$ftp0start"
$nsat4.0"$ftp0stop"
$nsat4.5"$cbr0stop"
$nsat5.0"finish"
$nsrun
19.執行模擬。
(請到cygwin下執行模擬,不要使用Script->Run)
[範例二]Multicast的例子
1.請先產生如下圖的網路拓樸。
2.要模擬multicast,首先必須先把multicast的功能打開,選擇Configuration->Routing
選擇想使用的multicast路由協定。
3.點選udp0設定其傳送資料的目的位址為multicast的位置。
4.選擇Configuration->Scenario。
注意:
只有node才能join和leave群播群組
5.儲存project並產生TCL檔案。
6.產生的TCL。
(book/lab6/multicast.tcl)
#CreatingNewSimulator
setns[newSimulator-multicaston]
setgroup0[Nodeallocaddr]
#Settingupthetraces
setf[openout.trw]
$nstrace-all$f
procfinish{}{
globalnsnff
$nsflush-trace
puts"Simulationcompleted."
close$f
exit0
}
#
#CreateNodes
#
setn0[$nsnode]
puts"n0:
[$n0id]"
setn1[$nsnode]
puts"n1:
[$n1id]"
#
#SetupConnections
#
$nsduplex-link$n0$n12Mb10msDropTail
#
#SetupTransportationLevelConnections
#
setudp0[newAgent/UDP]
$udp0setdst_addr_$group0
$nsattach-agent$n0$udp0
setlossMonitor0[newAgent/LossMonitor]
$nsattach-agent$n1$lossMonitor0
#
#Setuptrafficsources
#
setExponential0[newApplication/Traffic/Exponential]
$Exponential0attach-agent$udp0
setmprotoDM
setmrthandle[$nsmrtproto$mproto]
#
#Startupthesources
#
$nsat0"$n1join-group$lossMonitor0$group0"
$nsat10"$n1leave-group$lossMonitor0$group0"
$nsat0"$Exponential0start"
$nsat10"$Exponential0stop"
$nsat10.0"finish"
$nsrun
參考資料
1.http:
//www.mnlab.cs.depaul.edu/projects/nsbench/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- nsBench
![提示](https://static.bdocx.com/images/bang_tan.gif)