詞語(yǔ)解釋
NS2是一種網(wǎng)絡(luò)模擬器,它是網(wǎng)絡(luò)研究領(lǐng)域的一種重要工具,它能夠模擬和分析復(fù)雜的網(wǎng)絡(luò)系統(tǒng),用于研究網(wǎng)絡(luò)的性能和行為。NS2是一種基于C++和OTcl的網(wǎng)絡(luò)模擬器,它可以模擬復(fù)雜的網(wǎng)絡(luò)系統(tǒng),如路由器,網(wǎng)絡(luò)節(jié)點(diǎn),網(wǎng)絡(luò)應(yīng)用程序等。 NS2的應(yīng)用主要是用于研究網(wǎng)絡(luò)的性能和行為,它可以模擬復(fù)雜的網(wǎng)絡(luò)系統(tǒng),如路由器,網(wǎng)絡(luò)節(jié)點(diǎn),網(wǎng)絡(luò)應(yīng)用程序等。NS2可以模擬多種網(wǎng)絡(luò)協(xié)議,如TCP,UDP,HTTP,F(xiàn)TP,SMTP,DNS,DHCP,IP,ARP,ICMP等。NS2可以模擬網(wǎng)絡(luò)環(huán)境中的各種網(wǎng)絡(luò)應(yīng)用,如文件傳輸,視頻會(huì)議,網(wǎng)絡(luò)游戲,多媒體傳輸,虛擬網(wǎng)絡(luò),虛擬機(jī)等。NS2還可以模擬網(wǎng)絡(luò)環(huán)境中的多種網(wǎng)絡(luò)算法,如路由算法,負(fù)載均衡算法,資源分配算法,路由更新算法,路由發(fā)現(xiàn)算法,擁塞控制算法,網(wǎng)絡(luò)安全算法等。 NS2可以模擬網(wǎng)絡(luò)環(huán)境中的各種網(wǎng)絡(luò)應(yīng)用,如文件傳輸,視頻會(huì)議,網(wǎng)絡(luò)游戲,多媒體傳輸,虛擬網(wǎng)絡(luò),虛擬機(jī)等。NS2可以模擬網(wǎng)絡(luò)環(huán)境中的多種網(wǎng)絡(luò)算法,如路由算法,負(fù)載均衡算法,資源分配算法,路由更新算法,路由發(fā)現(xiàn)算法,擁塞控制算法,網(wǎng)絡(luò)安全算法等。NS2可以模擬網(wǎng)絡(luò)環(huán)境中的各種網(wǎng)絡(luò)服務(wù),如Web服務(wù),F(xiàn)TP服務(wù),POP3服務(wù),SMTP服務(wù),DNS服務(wù),DHCP服務(wù)等。NS2還可以模擬網(wǎng)絡(luò)環(huán)境中的多種網(wǎng)絡(luò)策略,如路由策略,流量控制策略,負(fù)載均衡策略,網(wǎng)絡(luò)安全策略等。 NS2可以用于研究網(wǎng)絡(luò)的性能,如網(wǎng)絡(luò)吞吐量,網(wǎng)絡(luò)延遲,網(wǎng)絡(luò)擁塞,網(wǎng)絡(luò)可靠性等。NS2可以用于研究網(wǎng)絡(luò)的行為,如網(wǎng)絡(luò)節(jié)點(diǎn)的行為,網(wǎng)絡(luò)路由器的行為,網(wǎng)絡(luò)應(yīng)用程序的行為等。NS2還可以用于研究網(wǎng)絡(luò)的安全性,如網(wǎng)絡(luò)攻擊,網(wǎng)絡(luò)安全策略,網(wǎng)絡(luò)安全技術(shù)等。 總之,NS2是一種網(wǎng)絡(luò)模擬器,它是網(wǎng)絡(luò)研究領(lǐng)域的一種重要工具,它能夠模擬和分析復(fù)雜的網(wǎng)絡(luò)系統(tǒng),用于研究網(wǎng)絡(luò)的性能和行為。NS2可以模擬網(wǎng)絡(luò)環(huán)境中的各種網(wǎng)絡(luò)應(yīng)用,網(wǎng)絡(luò)算法,網(wǎng)絡(luò)服務(wù)和網(wǎng)絡(luò)策略,用于研究網(wǎng)絡(luò)的性能,行為和安全性。 1、NS2簡(jiǎn)介 NS2是指 Network Simulator version 2,NS(Network Simulator) 是一種針對(duì)網(wǎng)絡(luò)技術(shù)的源代碼公開(kāi)的、免費(fèi)的軟件模擬平臺(tái),研究人員使用它可以很容易的進(jìn)行網(wǎng)絡(luò)技術(shù)的開(kāi)發(fā),而且發(fā)展到今天,它所包含的模塊已經(jīng)非常豐富,幾乎涉及到了網(wǎng)絡(luò)技術(shù)的所有方面。所以,NS成了目前學(xué)術(shù)界廣泛使用的一種網(wǎng)絡(luò)模擬軟件。在每年國(guó)內(nèi)外發(fā)表的有關(guān)網(wǎng)絡(luò)技術(shù)的學(xué)術(shù)論文中,利用NS給出模擬結(jié)果的文章最多,通過(guò)這種方法得出的研究結(jié)果也是被學(xué)術(shù)界所普遍認(rèn)可的,此外,NS也可作為一種輔助教學(xué)的工具,已被廣泛應(yīng)用在了網(wǎng)絡(luò)技術(shù)的教學(xué)方面。因此,目前在學(xué)術(shù)界和教育界,有大量的人正在使用或試圖使用NS。 然而,對(duì)初學(xué)者來(lái)說(shuō),NS是非常難于掌握的,一般人從學(xué)習(xí)NS到上手至少需要半年多時(shí)間。原因是多方面的:一方面,NS內(nèi)容龐雜,隨軟件所提供的手冊(cè)更新不夠快,初學(xué)者閱讀起來(lái)非常困難;另一方面,使用NS還要掌握其它很多必備的相關(guān)知識(shí)以及相關(guān)工具,這會(huì)使初學(xué)者感到無(wú)從入手;有的使用者可能還不了解網(wǎng)絡(luò)模擬的過(guò)程或是對(duì)NS軟件的機(jī)制缺乏理解,這也影響了對(duì)NS的掌握。另外,不論在國(guó)外還是國(guó)內(nèi),還沒(méi)有一本書(shū)能集中回答和解決這些問(wèn)題,這也是NS難于被掌握的一個(gè)重要原因。 NS2(Network Simulator, version 2)是一種面向?qū)ο蟮木W(wǎng)絡(luò)仿真器,本質(zhì)上是一個(gè)離散事件模擬器。由UC Berkeley開(kāi)發(fā)而成。它本身有一個(gè)虛擬時(shí)鐘,所有的仿真都由離散事件驅(qū)動(dòng)的。目前NS2可以用于仿真各種不同的IP網(wǎng),已經(jīng)實(shí)現(xiàn)的一些仿真有:網(wǎng)絡(luò)傳輸協(xié)議,比如TCP和UDP;業(yè)務(wù)源流量產(chǎn)生器,比如FTP, Telnet, Web CBR和VBR;路由隊(duì)列管理機(jī)制,比如Droptail , RED和CBQ;路由算法,比如Dijkstra等。NS2也為進(jìn)行局域網(wǎng)的仿真而實(shí)現(xiàn)了多播以及一些MAC 子層協(xié)議。 NS2使用C++和Otcl作為開(kāi)發(fā)語(yǔ)言。NS可以說(shuō)是Otcl的腳本解釋器,它包含仿真事件調(diào)度器、網(wǎng)絡(luò)組件對(duì)象庫(kù)以及網(wǎng)絡(luò)構(gòu)建模型庫(kù)等。事件調(diào)度器計(jì)算仿真時(shí)間,并且激活事件隊(duì)列中的當(dāng)前事件,執(zhí)行一些相關(guān)的事件,網(wǎng)絡(luò)組件通過(guò)傳遞分組來(lái)相互通信,但這并不耗費(fèi)仿真時(shí)間。所有需要花費(fèi)仿真時(shí)間來(lái)處理分組的網(wǎng)絡(luò)組件都必須要使用事件調(diào)度器。它先為這個(gè)分組發(fā)出一個(gè)事件,然后等待這個(gè)事件被調(diào)度回來(lái)之后,才能做下一步的處理工作。事件調(diào)度器的另一個(gè)用處就是計(jì)時(shí)。NS是用Otcl和C++編寫(xiě)的。由于效率的原因,NS將數(shù)據(jù)通道和控制通道的實(shí)現(xiàn)相分離。為了減少分組和事件的處理時(shí)間,事件調(diào)度器和數(shù)據(jù)通道上的基本網(wǎng)絡(luò)組件對(duì)象都使用C++寫(xiě)出并編譯的,這些對(duì)象通過(guò)映射對(duì)Otcl解釋器可見(jiàn)。 當(dāng)仿真完成以后,NS將會(huì)產(chǎn)生一個(gè)或多個(gè)基于文本的跟蹤文件。只要在Tcl腳本中加入一些簡(jiǎn)單的語(yǔ)句,這些文件中就會(huì)包含詳細(xì)的跟蹤信息。這些數(shù)據(jù)可以用于下一步的分析處理,也可以使用NAM將整個(gè)仿真過(guò)程展示出來(lái)。 2、使用NS進(jìn)行網(wǎng)絡(luò)仿真的方法和一般過(guò)程。 進(jìn)行網(wǎng)絡(luò)仿真前,首先分析仿真涉及哪個(gè)層次,NS仿真分兩個(gè)層次:一個(gè)是基于OTcl編程的層次。利用NS已有的網(wǎng)絡(luò)元素實(shí)現(xiàn)仿真,無(wú)需修改NS本身,只需編寫(xiě)OTcl腳本。另一個(gè)是基于C++和OTcl編程的層次。如果NS中沒(méi)有所需的網(wǎng)絡(luò)元素,則需要對(duì)NS進(jìn)行擴(kuò)展,添加所需網(wǎng)絡(luò)元素,即添加新的C++和OTcl類(lèi),編寫(xiě)新的OTcl腳本。 假設(shè)用戶(hù)已經(jīng)完成了對(duì)NS的擴(kuò)展,或者NS所包含的構(gòu)件已經(jīng)滿(mǎn)足了要求,那么進(jìn)行一次仿真的步驟大致如下: (1)開(kāi)始編寫(xiě)OTcl腳本。首先配置模擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),此時(shí)可以確定鏈路的基本特性,如延遲、帶寬和丟失策略等。 (2)建立協(xié)議代理,包括端設(shè)備的協(xié)議綁定和通信業(yè)務(wù)量模型的建立。 (3)配置業(yè)務(wù)量模型的參數(shù),從而確定網(wǎng)絡(luò)上的業(yè)務(wù)量分布。 (4)設(shè)置Trace對(duì)象。NS通過(guò)Trace文件來(lái)保存整個(gè)模擬過(guò)程。仿真完后,用戶(hù)可以對(duì)Trace文件進(jìn)行分析研究。 (5)編寫(xiě)其他的輔助過(guò)程,設(shè)定模擬結(jié)束時(shí)間,至此OTcl腳本編寫(xiě)完成。 (6)用NS解釋執(zhí)行剛才編寫(xiě)的OTcl腳本。 (7)對(duì)Trace文件進(jìn)行分析,得出有用的數(shù)據(jù)。 (8)調(diào)整配置拓?fù)浣Y(jié)構(gòu)和業(yè)務(wù)量模型,重新進(jìn)行上述模擬過(guò)程。 NS2采用兩級(jí)體系結(jié)構(gòu),為了提高代碼的執(zhí)行效率,NS2 將數(shù)據(jù)操作與控制部分的實(shí)現(xiàn)相分離,事件調(diào)度器和大部分基本的網(wǎng)絡(luò)組件對(duì)象后臺(tái)使用C++實(shí)現(xiàn)和編譯,稱(chēng)為編譯層,主要功能是實(shí)現(xiàn)對(duì)數(shù)據(jù)包的處理;NS2的前端是一個(gè)OTcl 解釋器,稱(chēng)為解釋層,主要功能是對(duì)模擬環(huán)境的配置、建立。從用戶(hù)角度看,NS2 是一個(gè)具有仿真事件驅(qū)動(dòng)、網(wǎng)絡(luò)構(gòu)件對(duì)象庫(kù)和網(wǎng)絡(luò)配置模塊庫(kù)的OTcl腳本解釋器。NS2中編譯類(lèi)對(duì)象通過(guò)OTcl連接建立了與之對(duì)應(yīng)的解釋類(lèi)對(duì)象,這樣用戶(hù)間能夠方便地對(duì)C++對(duì)象的函數(shù)進(jìn)行修改與配置,充分體現(xiàn)了仿真器的一致性和靈活性。 3、NS2的功能模塊 NS2仿真器封裝了許多功能模塊,最基本的是節(jié)點(diǎn)、鏈路、代理、數(shù)據(jù)包格式等等,下面分別來(lái)介紹一下各個(gè)模塊。 (1)事件調(diào)度器:目前NS2提供了四種具有不同數(shù)據(jù)結(jié)構(gòu)的調(diào)度器,分別是鏈表、堆、日歷表和實(shí)時(shí)調(diào)度器。 (2)節(jié)點(diǎn)(node):是由TclObject對(duì)象組成的復(fù)合組件,在NS2中可以表示端節(jié)點(diǎn)和路由器。 (3)鏈路(link):由多個(gè)組件復(fù)合而成,用來(lái)連接網(wǎng)絡(luò)節(jié)點(diǎn)。所有的鏈路都是以隊(duì)列的形式來(lái)管理分組的到達(dá)、離開(kāi)和丟棄。 (4)代理(agent):負(fù)責(zé)網(wǎng)絡(luò)層分組的產(chǎn)生和接收,也可以用在各個(gè)層次的協(xié)議實(shí)現(xiàn)中。每個(gè)agent連接到一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上,由該節(jié)點(diǎn)給它分配一個(gè)端口號(hào)。 (5)包(packet):由頭部和數(shù)據(jù)兩部分組成。一般情況下,packet只有頭部、沒(méi)有數(shù)據(jù)部分。 4、NS2的軟件構(gòu)成 NS2包含Tcl/Tk, OTcl, NS,Tclcl。其中Tcl是一個(gè)開(kāi)放腳本語(yǔ)言,用來(lái)對(duì)NS2進(jìn)行編程;Tk是Tcl的圖形界面開(kāi)發(fā)工具,可幫助用戶(hù)在圖形環(huán)境下開(kāi)發(fā)圖形界面;OTcl是基于Tcl/Tk的面向?qū)ο髷U(kuò)展,有自己的類(lèi)層次結(jié)構(gòu);NS2為本軟件包的核心,是面向?qū)ο蟮姆抡嫫,用C++編寫(xiě),以O(shè)Tcl解釋器作為前端;Tclcl則提供NS2和OTcl的接口,使對(duì)象和變量出現(xiàn)在兩種語(yǔ)言中。為了直觀的觀察和分析仿真結(jié)果,NS2 提供了可選的Xgraphy、可選件Nam。 5、NS現(xiàn)有的仿真元素 從網(wǎng)絡(luò)拓?fù)浞抡、協(xié)議仿真和通信量仿真等方面介紹NS的相應(yīng)元素: (1)網(wǎng)絡(luò)拓?fù)渲饕ü?jié)點(diǎn)、鏈路。NS的節(jié)點(diǎn)由一系列的分類(lèi)器(Classifier,如地址分類(lèi)器等)組成,而鏈路由一系列的連接器(Connector)組成。 (2)在節(jié)點(diǎn)上,配置不同的代理可以實(shí)現(xiàn)相應(yīng)的協(xié)議或其它模型仿真。如NS的TCP代理,發(fā)送代理有:TCP,TCP/Reno,TCP/Vegas,TCP/Sack1,TCP/FACK,TCP/FULLTCP等,接收代理有:TCPSINK,TCPSINK/DELACK。TCPSINK/SACK1,TCPSINK/SACK1/DELACK等。此外,還提供有UDP代理及接收代理Null(負(fù)責(zé)通信量接收)、Loss Monitor(通信量接收并維護(hù)一些接收數(shù)據(jù)的統(tǒng)計(jì))。 (3)網(wǎng)絡(luò)的路由配置通過(guò)對(duì)節(jié)點(diǎn)附加路由協(xié)議而實(shí)現(xiàn)。NS中有三種單播路由策略:靜態(tài)、會(huì)話、動(dòng)態(tài)。 (4)在鏈路上,可以配置帶寬、時(shí)延和丟棄模型。NS支持:Drop-tail(FIFO)隊(duì)列、RED緩沖管、CBO(包括優(yōu)先權(quán)和Round-robin 調(diào)度)。各種公平隊(duì)列包括:FQ,SFQ,DRR等。 (5)通信量仿真方面,NS提供了許多通信應(yīng)用,如FTP,它產(chǎn)生較大的峰值數(shù)據(jù)傳輸;Telnet則根據(jù)相應(yīng)文件隨機(jī)選取傳輸數(shù)據(jù)的大小。此外,NS提供了四種類(lèi)型的通信量產(chǎn)生器:EXPOO,根據(jù)指數(shù)分布(On/Off)產(chǎn)生通信量,在On階段分組以固定速率發(fā)送,Off階段不發(fā)送分組,On/Off的分布符合指數(shù)分布,分組尺寸固定;POO,根據(jù)Pareto分布(On/Off)產(chǎn)生通信量,它能用來(lái)產(chǎn)生長(zhǎng)范圍相關(guān)的急劇通信量;CBR,以確定的速率產(chǎn)生通信量,分組尺寸固定,可在分組間隔之間產(chǎn)生隨機(jī)抖動(dòng);Traffic Trace,根據(jù)追蹤文件產(chǎn)生通信量。
1、NS2簡(jiǎn)介 NS2是指 Network Simulator version 2,NS(Network Simulator) 是一種針對(duì)網(wǎng)絡(luò)技術(shù)的源代碼公開(kāi)的、免費(fèi)的軟件模擬平臺(tái),研究人員使用它可以很容易的進(jìn)行網(wǎng)絡(luò)技術(shù)的開(kāi)發(fā),而且發(fā)展到今天,它所包含的模塊已經(jīng)非常豐富,幾乎涉及到了網(wǎng)絡(luò)技術(shù)的所有方面。所以,NS成了目前學(xué)術(shù)界廣泛使用的一種網(wǎng)絡(luò)模擬軟件。在每年國(guó)內(nèi)外發(fā)表的有關(guān)網(wǎng)絡(luò)技術(shù)的學(xué)術(shù)論文中,利用NS給出模擬結(jié)果的文章最多,通過(guò)這種方法得出的研究結(jié)果也是被學(xué)術(shù)界所普遍認(rèn)可的,此外,NS也可作為一種輔助教學(xué)的工具,已被廣泛應(yīng)用在了網(wǎng)絡(luò)技術(shù)的教學(xué)方面。因此,目前在學(xué)術(shù)界和教育界,有大量的人正在使用或試圖使用NS。 然而,對(duì)初學(xué)者來(lái)說(shuō),NS是非常難于掌握的,一般人從學(xué)習(xí)NS到上手至少需要半年多時(shí)間。原因是多方面的:一方面,NS內(nèi)容龐雜,隨軟件所提供的手冊(cè)更新不夠快,初學(xué)者閱讀起來(lái)非常困難;另一方面,使用NS還要掌握其它很多必備的相關(guān)知識(shí)以及相關(guān)工具,這會(huì)使初學(xué)者感到無(wú)從入手;有的使用者可能還不了解網(wǎng)絡(luò)模擬的過(guò)程或是對(duì)NS軟件的機(jī)制缺乏理解,這也影響了對(duì)NS的掌握。另外,不論在國(guó)外還是國(guó)內(nèi),還沒(méi)有一本書(shū)能集中回答和解決這些問(wèn)題,這也是NS難于被掌握的一個(gè)重要原因。 NS2(Network Simulator, version 2)是一種面向?qū)ο蟮木W(wǎng)絡(luò)仿真器,本質(zhì)上是一個(gè)離散事件模擬器。由UC Berkeley開(kāi)發(fā)而成。它本身有一個(gè)虛擬時(shí)鐘,所有的仿真都由離散事件驅(qū)動(dòng)的。目前NS2可以用于仿真各種不同的IP網(wǎng),已經(jīng)實(shí)現(xiàn)的一些仿真有:網(wǎng)絡(luò)傳輸協(xié)議,比如TCP和UDP;業(yè)務(wù)源流量產(chǎn)生器,比如FTP, Telnet, Web CBR和VBR;路由隊(duì)列管理機(jī)制,比如Droptail , RED和CBQ;路由算法,比如Dijkstra等。NS2也為進(jìn)行局域網(wǎng)的仿真而實(shí)現(xiàn)了多播以及一些MAC 子層協(xié)議。 NS2使用C++和Otcl作為開(kāi)發(fā)語(yǔ)言。NS可以說(shuō)是Otcl的腳本解釋器,它包含仿真事件調(diào)度器、網(wǎng)絡(luò)組件對(duì)象庫(kù)以及網(wǎng)絡(luò)構(gòu)建模型庫(kù)等。事件調(diào)度器計(jì)算仿真時(shí)間,并且激活事件隊(duì)列中的當(dāng)前事件,執(zhí)行一些相關(guān)的事件,網(wǎng)絡(luò)組件通過(guò)傳遞分組來(lái)相互通信,但這并不耗費(fèi)仿真時(shí)間。所有需要花費(fèi)仿真時(shí)間來(lái)處理分組的網(wǎng)絡(luò)組件都必須要使用事件調(diào)度器。它先為這個(gè)分組發(fā)出一個(gè)事件,然后等待這個(gè)事件被調(diào)度回來(lái)之后,才能做下一步的處理工作。事件調(diào)度器的另一個(gè)用處就是計(jì)時(shí)。NS是用Otcl和C++編寫(xiě)的。由于效率的原因,NS將數(shù)據(jù)通道和控制通道的實(shí)現(xiàn)相分離。為了減少分組和事件的處理時(shí)間,事件調(diào)度器和數(shù)據(jù)通道上的基本網(wǎng)絡(luò)組件對(duì)象都使用C++寫(xiě)出并編譯的,這些對(duì)象通過(guò)映射對(duì)Otcl解釋器可見(jiàn)。 當(dāng)仿真完成以后,NS將會(huì)產(chǎn)生一個(gè)或多個(gè)基于文本的跟蹤文件。只要在Tcl腳本中加入一些簡(jiǎn)單的語(yǔ)句,這些文件中就會(huì)包含詳細(xì)的跟蹤信息。這些數(shù)據(jù)可以用于下一步的分析處理,也可以使用NAM將整個(gè)仿真過(guò)程展示出來(lái)。 2、使用NS進(jìn)行網(wǎng)絡(luò)仿真的方法和一般過(guò)程。 進(jìn)行網(wǎng)絡(luò)仿真前,首先分析仿真涉及哪個(gè)層次,NS仿真分兩個(gè)層次:一個(gè)是基于OTcl編程的層次。利用NS已有的網(wǎng)絡(luò)元素實(shí)現(xiàn)仿真,無(wú)需修改NS本身,只需編寫(xiě)OTcl腳本。另一個(gè)是基于C++和OTcl編程的層次。如果NS中沒(méi)有所需的網(wǎng)絡(luò)元素,則需要對(duì)NS進(jìn)行擴(kuò)展,添加所需網(wǎng)絡(luò)元素,即添加新的C++和OTcl類(lèi),編寫(xiě)新的OTcl腳本。 假設(shè)用戶(hù)已經(jīng)完成了對(duì)NS的擴(kuò)展,或者NS所包含的構(gòu)件已經(jīng)滿(mǎn)足了要求,那么進(jìn)行一次仿真的步驟大致如下: (1)開(kāi)始編寫(xiě)OTcl腳本。首先配置模擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),此時(shí)可以確定鏈路的基本特性,如延遲、帶寬和丟失策略等。 (2)建立協(xié)議代理,包括端設(shè)備的協(xié)議綁定和通信業(yè)務(wù)量模型的建立。 (3)配置業(yè)務(wù)量模型的參數(shù),從而確定網(wǎng)絡(luò)上的業(yè)務(wù)量分布。 (4)設(shè)置Trace對(duì)象。NS通過(guò)Trace文件來(lái)保存整個(gè)模擬過(guò)程。仿真完后,用戶(hù)可以對(duì)Trace文件進(jìn)行分析研究。 (5)編寫(xiě)其他的輔助過(guò)程,設(shè)定模擬結(jié)束時(shí)間,至此OTcl腳本編寫(xiě)完成。 (6)用NS解釋執(zhí)行剛才編寫(xiě)的OTcl腳本。 (7)對(duì)Trace文件進(jìn)行分析,得出有用的數(shù)據(jù)。 (8)調(diào)整配置拓?fù)浣Y(jié)構(gòu)和業(yè)務(wù)量模型,重新進(jìn)行上述模擬過(guò)程。 NS2采用兩級(jí)體系結(jié)構(gòu),為了提高代碼的執(zhí)行效率,NS2 將數(shù)據(jù)操作與控制部分的實(shí)現(xiàn)相分離,事件調(diào)度器和大部分基本的網(wǎng)絡(luò)組件對(duì)象后臺(tái)使用C++實(shí)現(xiàn)和編譯,稱(chēng)為編譯層,主要功能是實(shí)現(xiàn)對(duì)數(shù)據(jù)包的處理;NS2的前端是一個(gè)OTcl 解釋器,稱(chēng)為解釋層,主要功能是對(duì)模擬環(huán)境的配置、建立。從用戶(hù)角度看,NS2 是一個(gè)具有仿真事件驅(qū)動(dòng)、網(wǎng)絡(luò)構(gòu)件對(duì)象庫(kù)和網(wǎng)絡(luò)配置模塊庫(kù)的OTcl腳本解釋器。NS2中編譯類(lèi)對(duì)象通過(guò)OTcl連接建立了與之對(duì)應(yīng)的解釋類(lèi)對(duì)象,這樣用戶(hù)間能夠方便地對(duì)C++對(duì)象的函數(shù)進(jìn)行修改與配置,充分體現(xiàn)了仿真器的一致性和靈活性。 3、NS2的功能模塊 NS2仿真器封裝了許多功能模塊,最基本的是節(jié)點(diǎn)、鏈路、代理、數(shù)據(jù)包格式等等,下面分別來(lái)介紹一下各個(gè)模塊。 (1)事件調(diào)度器:目前NS2提供了四種具有不同數(shù)據(jù)結(jié)構(gòu)的調(diào)度器,分別是鏈表、堆、日歷表和實(shí)時(shí)調(diào)度器。 (2)節(jié)點(diǎn)(node):是由TclObject對(duì)象組成的復(fù)合組件,在NS2中可以表示端節(jié)點(diǎn)和路由器。 (3)鏈路(link):由多個(gè)組件復(fù)合而成,用來(lái)連接網(wǎng)絡(luò)節(jié)點(diǎn)。所有的鏈路都是以隊(duì)列的形式來(lái)管理分組的到達(dá)、離開(kāi)和丟棄。 (4)代理(agent):負(fù)責(zé)網(wǎng)絡(luò)層分組的產(chǎn)生和接收,也可以用在各個(gè)層次的協(xié)議實(shí)現(xiàn)中。每個(gè)agent連接到一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上,由該節(jié)點(diǎn)給它分配一個(gè)端口號(hào)。 (5)包(packet):由頭部和數(shù)據(jù)兩部分組成。一般情況下,packet只有頭部、沒(méi)有數(shù)據(jù)部分。 4、NS2的軟件構(gòu)成 NS2包含Tcl/Tk, OTcl, NS,Tclcl。其中Tcl是一個(gè)開(kāi)放腳本語(yǔ)言,用來(lái)對(duì)NS2進(jìn)行編程;Tk是Tcl的圖形界面開(kāi)發(fā)工具,可幫助用戶(hù)在圖形環(huán)境下開(kāi)發(fā)圖形界面;OTcl是基于Tcl/Tk的面向?qū)ο髷U(kuò)展,有自己的類(lèi)層次結(jié)構(gòu);NS2為本軟件包的核心,是面向?qū)ο蟮姆抡嫫,用C++編寫(xiě),以O(shè)Tcl解釋器作為前端;Tclcl則提供NS2和OTcl的接口,使對(duì)象和變量出現(xiàn)在兩種語(yǔ)言中。為了直觀的觀察和分析仿真結(jié)果,NS2 提供了可選的Xgraphy、可選件Nam。 5、NS現(xiàn)有的仿真元素 從網(wǎng)絡(luò)拓?fù)浞抡、協(xié)議仿真和通信量仿真等方面介紹NS的相應(yīng)元素: (1)網(wǎng)絡(luò)拓?fù)渲饕ü?jié)點(diǎn)、鏈路。NS的節(jié)點(diǎn)由一系列的分類(lèi)器(Classifier,如地址分類(lèi)器等)組成,而鏈路由一系列的連接器(Connector)組成。 (2)在節(jié)點(diǎn)上,配置不同的代理可以實(shí)現(xiàn)相應(yīng)的協(xié)議或其它模型仿真。如NS的TCP代理,發(fā)送代理有:TCP,TCP/Reno,TCP/Vegas,TCP/Sack1,TCP/FACK,TCP/FULLTCP等,接收代理有:TCPSINK,TCPSINK/DELACK。TCPSINK/SACK1,TCPSINK/SACK1/DELACK等。此外,還提供有UDP代理及接收代理Null(負(fù)責(zé)通信量接收)、Loss Monitor(通信量接收并維護(hù)一些接收數(shù)據(jù)的統(tǒng)計(jì))。 (3)網(wǎng)絡(luò)的路由配置通過(guò)對(duì)節(jié)點(diǎn)附加路由協(xié)議而實(shí)現(xiàn)。NS中有三種單播路由策略:靜態(tài)、會(huì)話、動(dòng)態(tài)。 (4)在鏈路上,可以配置帶寬、時(shí)延和丟棄模型。NS支持:Drop-tail(FIFO)隊(duì)列、RED緩沖管、CBO(包括優(yōu)先權(quán)和Round-robin 調(diào)度)。各種公平隊(duì)列包括:FQ,SFQ,DRR等。 (5)通信量仿真方面,NS提供了許多通信應(yīng)用,如FTP,它產(chǎn)生較大的峰值數(shù)據(jù)傳輸;Telnet則根據(jù)相應(yīng)文件隨機(jī)選取傳輸數(shù)據(jù)的大小。此外,NS提供了四種類(lèi)型的通信量產(chǎn)生器:EXPOO,根據(jù)指數(shù)分布(On/Off)產(chǎn)生通信量,在On階段分組以固定速率發(fā)送,Off階段不發(fā)送分組,On/Off的分布符合指數(shù)分布,分組尺寸固定;POO,根據(jù)Pareto分布(On/Off)產(chǎn)生通信量,它能用來(lái)產(chǎn)生長(zhǎng)范圍相關(guān)的急劇通信量;CBR,以確定的速率產(chǎn)生通信量,分組尺寸固定,可在分組間隔之間產(chǎn)生隨機(jī)抖動(dòng);Traffic Trace,根據(jù)追蹤文件產(chǎn)生通信量。
抱歉,此頁(yè)面的內(nèi)容受版權(quán)保護(hù),復(fù)制需扣除次數(shù),次數(shù)不足時(shí)需付費(fèi)購(gòu)買(mǎi)。
如需下載請(qǐng)點(diǎn)擊:點(diǎn)擊此處下載
掃碼付費(fèi)即可復(fù)制
BT | 信元 | 中興通訊 | 諾基亞5800 | TBS | juniper | mesh | 手機(jī)監(jiān)控 | EPA | host | 展訊 | fax |
移動(dòng)通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助