使用NSG進(jìn)行有線網(wǎng)絡(luò)仿真_第1頁
使用NSG進(jìn)行有線網(wǎng)絡(luò)仿真_第2頁
使用NSG進(jìn)行有線網(wǎng)絡(luò)仿真_第3頁
使用NSG進(jìn)行有線網(wǎng)絡(luò)仿真_第4頁
使用NSG進(jìn)行有線網(wǎng)絡(luò)仿真_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、使用NSG進(jìn)行有線網(wǎng)絡(luò)仿真1 ubuntu密碼 1234562實驗?zāi)繕?biāo)和要求1 熟悉NS2環(huán)境,學(xué)會使用NS2工具進(jìn)行仿真實驗2 使用NSG進(jìn)行有線網(wǎng)絡(luò)仿真3觀察并解釋NAM動畫,分析trace文檔。4 分析模擬結(jié)果。學(xué)會使用awk和gnuplot分析端到端的延遲。3實驗步驟仿真的環(huán)境如圖所示:圖1 有線網(wǎng)絡(luò)拓?fù)? 轉(zhuǎn)到NSG目錄下,啟動NSG。cd /home/susan/Desktop/ns-allinone-2.34/ns-2.34/bookjava jar NSG2.1.jar )Step 1: 新增一個有線網(wǎng)絡(luò)的劇本,使用者可以透過ScenarioNew wired scenario

2、來建立(或按下快速鍵Ctrl+W),建立后如圖2所示,在預(yù)設(shè)的情況下NSG會切換到Node mode(Node按鈕會變成灰色),也就是說使用者一開始便可建立Node。圖2 新增一個有線網(wǎng)絡(luò)的劇本Step 2: 開始建立劇本所需要的Node,利用鼠標(biāo)直接點選想要擺放Node的位置以建立Node,在此范例中建立的六個Node其相對位置如圖3,可透過調(diào)整畫面右下方的橫桿顯示不同的比例。圖3 設(shè)定好六個node相關(guān)位置Step 3: 設(shè)定Node之間的鏈路,首先切換到Link mode(按下Link按鈕或快速鍵Ctrl+3),然后依序?qū)⑾铝械膮?shù)設(shè)定好。Link-type:duplex-linkQue

3、ue type:DropTailCapacity:2MbpsPropagation delay:10msQueue size:10Step 4: 以鼠標(biāo)點選的方式將n0-n2、n1-n2、n3-n4及n3-n5之間的鏈路建立起來,接著將Capacity設(shè)定為1Mbps,Propagation delay設(shè)定為20ms,然后再建立n2-n3間的鏈路,建立好后如圖4所示,如果建立的過程中有參數(shù)沒設(shè)定好,也可以在鏈路上按下鼠標(biāo)右鍵進(jìn)行修改。圖4 設(shè)定好六個node之間的鏈路Step 5: 接著切換到Agent mode(按下Agent按鈕或快速鍵Ctrl+4)來進(jìn)行通訊協(xié)議的設(shè)定。首先選取Agent

4、 type為UDP并設(shè)定封包大?。≒acket size)為1500 bytes,并在n0與n1上各建立一個Agent,接著選取Agent type為NULL,并在n4、n5上各建立一個NULL Agent。建立好Agent之后還要繼續(xù)設(shè)定Agent之間的聯(lián)機(jī),其設(shè)定的方式是用鼠標(biāo)選取要建立聯(lián)機(jī)的二個Agent,在此分別在(udp0、null2)和(udp1、null3)之間建立聯(lián)機(jī),建立好之后如圖5所示。圖5建立AgentsStep 6: 切換到Application mode(按下Application按鈕或快速鍵Ctrl+5)來進(jìn)行上層的應(yīng)用程序設(shè)定,將Application type設(shè)

5、定為CBR并設(shè)定啟動時間(Start time)為1秒,結(jié)束時間(Stop time)為4秒,封包大小為1500bytes,傳輸速度為1Mbps,然后在n0上建立一個CBR Application,接著將啟動時間(Start time)為2秒,結(jié)束時間(Stop time)為3秒,并在n1上再建立一個CBR Application,如圖6。圖6建立ApplicationStep7:最后,設(shè)定模擬的參數(shù)(按下Parameters鈕即可或快速鍵Ctrl+6),在這個例子中,因為是建立有線網(wǎng)絡(luò)的劇本,所以參數(shù)的部份只需要將模擬時間(Simulation time)設(shè)定為5.0,并且指定產(chǎn)生Trace

6、文件名稱即可,如圖7。圖7設(shè)定模擬參數(shù)Step8:當(dāng)一切都設(shè)定完畢之后按下TCL按鈕(快速鍵Ctrl+7)即可產(chǎn)生劇本檔了,每一次產(chǎn)生的劇本檔都會被建立在一個獨立的窗口,使用者這時候還可以根據(jù)自己的需求去做修正,如圖8所示。圖8產(chǎn)生劇本檔Step9:按下Save按鈕(快速鍵Alt+S)將產(chǎn)生出來的TCL檔儲存起來之后,便可交由ns2開始進(jìn)行模擬,產(chǎn)生出來的劇本檔如下。# This script is created by NSG2 beta1# #=# Simulation parameters setup#=set val(stop) 5.0 ;# time of simulation en

7、d#=# Initialization #=#Create a ns simulatorset ns new Simulator#Open the NS trace fileset tracefile open out.tr w$ns trace-all $tracefile#Open the NAM trace fileset namfile open out.nam w$ns namtrace-all $namfile#=# Nodes Definition #=#Create 6 nodesset n0 $ns nodeset n1 $ns nodeset n2 $ns nodeset

8、n3 $ns nodeset n4 $ns nodeset n5 $ns node#=# Links Definition #=#Createlinks between nodes$ns duplex-link $n0 $n2 2.0Mb 10ms DropTail$ns queue-limit $n0 $n2 10$ns duplex-link $n2 $n1 2.0Mb 10ms DropTail$ns queue-limit $n2 $n1 10$ns duplex-link $n4 $n3 2.0Mb 10ms DropTail$ns queue-limit $n4 $n3 10$ns

9、 duplex-link $n3 $n5 2.0Mb 10ms DropTail$ns queue-limit $n3 $n5 10$ns duplex-link $n2 $n3 1.0Mb 20ms DropTail$ns queue-limit $n2 $n3 10#Give node position (for NAM)$ns duplex-link-op $n0 $n2 orient right-down$ns duplex-link-op $n2 $n1 orient left-down$ns duplex-link-op $n4 $n3 orient left-down$ns du

10、plex-link-op $n3 $n5 orient right-down$ns duplex-link-op $n2 $n3 orient right#=# Agents Definition #=#Setup a UDP connectionset udp0 new Agent/UDP$ns attach-agent $n0 $udp0set null2 new Agent/Null$ns attach-agent $n4 $null2$ns connect $udp0 $null2$udp0 set packetSize_ 1500#Setup a UDP connectionset

11、udp1 new Agent/UDP$ns attach-agent $n1 $udp1set null3 new Agent/Null$ns attach-agent $n5 $null3$ns connect $udp1 $null3$udp1 set packetSize_ 1500#=# Applications Definition #=#Setup a CBR Application over UDP connectionset cbr0 new Application/Traffic/CBR$cbr0 attach-agent $udp0$cbr0 set packetSize_

12、 1500$cbr0 set rate_ 1.0Mb$cbr0 set random_ null$ns at 1.0 $cbr0 start$ns at 4.0 $cbr0 stop#Setup a CBR Application over UDP connectionset cbr1 new Application/Traffic/CBR$cbr1 attach-agent $udp1$cbr1 set packetSize_ 1500$cbr1 set rate_ 1.0Mb$cbr1 set random_ null$ns at 2.0 $cbr1 start$ns at 3.0 $cb

13、r1 stop#=# Termination #=#Define a finish procedureproc finish global ns tracefile namfile $ns flush-trace close $tracefile close $namfile exec nam out.nam & exit 0$ns at $val(stop) $ns nam-end-wireless $val(stop)$ns at $val(stop) finish$ns at $val(stop) puts done ; $ns halt$ns runNSG所產(chǎn)生出來的劇本檔會自動啟動N

14、AM來呈現(xiàn)模擬的過程,如圖9所示。圖94 仿真結(jié)果分析End-to-end delay Step1: 在原程序下,編寫awk代碼。sudo gedit measure_delay.awk代碼如下:# 這是測量CBR包端到端延遲的awk程序BEGIN#程序初始化,設(shè)置一變量記錄目前最高處理包的idhighest_packet_id = 0;action = $1;time = $2;from = $3;to = $4; type = $5;pktsize = $6;flow_id = $8;src = $9;dst = $10;seq_no = $11;packet_id = $12;# 記錄目

15、前最高的packet idif (packet_id highest_packet_id )highest_packet_id = packet_id;#記錄包傳送時間if ( start_timepacket_id=0)start_timepacket_id = time;#記錄CBR (flow_id =0)的接收時間if (flow_id = 0 & action != d)if ( action = r )end_timepacket_id = time;else#設(shè)置flow_id不是0的包或者是0但是被drop的時間為-1end_timepacket_id = -1;END#當(dāng)數(shù)據(jù)

16、行全部讀完后,開始計算有效包的端到端的延遲時間for ( packet_id =0; packet_id = highest_packet_id; packet_id+)start = start_timepacket_id;end = end_timepacket_id;packet_duration = ( end-start);# 只輸出接收時間大于傳送時間的記錄if (start cbr_delay 將結(jié)果輸出存到cbr_delay文件中。Step3: 啟用gnuplot,直接輸入 gnuplotplot “cbr_delay”,顯示結(jié)果。附1 NSG簡介NSG是一個專為ns2所設(shè)計的

17、劇本產(chǎn)生器,目前最新的版本為第二版(NSG2),和前一版(NSG1)比較起來最大的不同在于NSG2除了原本支持的無線網(wǎng)絡(luò)之外還支持有線網(wǎng)絡(luò)的劇本,以下列出NSG2主要的功能及支持ns2的對象種類 1.產(chǎn)生有線網(wǎng)絡(luò)及無線網(wǎng)絡(luò)的劇本(目前尚不支持無線及有線混合的劇本)2.支持的Node種類WirelessNode及WiredNode3.支持WirelessNode的移動設(shè)定4.支持的Link種類Duplex-link及Simplex-link 5.Agent支援(TCP、TCP/Tahoe、TCP/Reno、TCP/Newreno、TCP/Vegas、TCPSink(TCP的三個版本,根據(jù)擁塞控制

18、機(jī)制來劃分)、UDP及NULL) 6.支持的Application種類:CBR及FTP7.支持的Routing protocol種類DSDV、DSR、AODV及TORA8.支持的Queue種類DropTail、RED、FQ、DRR、SFQ及CBQ9.無線網(wǎng)絡(luò)相關(guān)設(shè)定10.802.11參數(shù)設(shè)定(NSG提供一組802.11b的預(yù)設(shè)參數(shù))CBR:constant bit rate,固定傳輸速率。固定碼率(英文constant bit rate,縮寫CBR)。這是一個用來形容通信服務(wù)質(zhì)量(QoS,Quality of Service)的術(shù)語。和該詞相對應(yīng)的詞是可變碼率或可變比特率(英文variable

19、 bit rate,縮寫VBR)。 當(dāng)形容編解碼器的時候,CBR編碼指的是編碼器的輸出碼率(或者解碼器的輸入碼率)應(yīng)該是固定制(常數(shù))。當(dāng)在一個帶寬受限的信道中進(jìn)行多媒體通訊的時候CBR是非常有用的,因為這時候受限的是最高碼率,CBR可以更好的易用這樣的信道。但是CBR不適合進(jìn)行存儲,因為CBR將導(dǎo)致沒有足夠的碼率對復(fù)雜的內(nèi)容部分進(jìn)行編碼(從而導(dǎo)致質(zhì)量下降),同時在簡單的內(nèi)容部分會浪費一些碼率。 大部分編碼方案的輸出都是可變長的碼字,例如霍夫曼編碼或者游程編碼(run-length coding),這使得編碼器很難做到完美的CBR。編碼器可以通過調(diào)整量化(進(jìn)而調(diào)整編碼質(zhì)量)來部分的解決這個問題

20、,如果同時使用填充碼來完美的達(dá)到CBR。(有時候,CBR也指一種非常簡單的編碼方案,比如將一個16位精度的音頻數(shù)據(jù)流通過抽樣得到一個8位精度的數(shù)據(jù)流)ftp: FTP 是File Transfer Protocol(文件傳輸協(xié)議)的英文簡稱,而中文簡稱為“文傳協(xié)議”。用于Internet上的控制文件的雙向傳輸。同時,它也是一個應(yīng)用程序(Application)。用戶可以通過它把自己的PC機(jī)與世界各地所有運行FTP協(xié)議的服務(wù)器相連,訪問服務(wù)器上的大量程序和信息。FTP的主要作用,就是讓用戶連接上一個遠(yuǎn)程計算機(jī)(這些計算機(jī)上運行著FTP服務(wù)器程序)察看遠(yuǎn)程計算機(jī)有哪些文件,然后把文件從遠(yuǎn)程計算機(jī)上拷到本地計算機(jī),或把本地計算機(jī)的文件送到遠(yuǎn)程計算機(jī)去。作業(yè)寫一個簡單的awk程序,分析丟包率。BEG

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論