• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      新網(wǎng)絡(luò)仿真器NS3的研究綜述*

      2017-03-11 09:16:10茹新宇
      關(guān)鍵詞:仿真器網(wǎng)絡(luò)設(shè)備數(shù)據(jù)包

      茹新宇,劉 淵,陳 偉

      (1. 江蘇聯(lián)合職業(yè)技術(shù)學(xué)院 無(wú)錫交通分院,江蘇 無(wú)錫 214151; 2. 江南大學(xué) 數(shù)字媒體學(xué)院,江蘇 無(wú)錫 214122)

      新網(wǎng)絡(luò)仿真器NS3的研究綜述*

      茹新宇1,劉 淵2,陳 偉2

      (1. 江蘇聯(lián)合職業(yè)技術(shù)學(xué)院 無(wú)錫交通分院,江蘇 無(wú)錫 214151; 2. 江南大學(xué) 數(shù)字媒體學(xué)院,江蘇 無(wú)錫 214122)

      仿真可實(shí)現(xiàn)用相對(duì)較小的成本與時(shí)間研究探索并解決問(wèn)題。從簡(jiǎn)述NS2和NS3的特點(diǎn)與區(qū)別入手,分別從基本概念、核心概念及其模型三個(gè)方面詳細(xì)介紹了NS3的體系結(jié)構(gòu)、數(shù)據(jù)包傳輸過(guò)程、基本對(duì)象與類(lèi)及其跟蹤模型等細(xì)節(jié)。最后從理論上深度論述了NS3在研究領(lǐng)域的TCP實(shí)現(xiàn)過(guò)程。

      網(wǎng)絡(luò)仿真器;類(lèi);模型;應(yīng)用程序接口;套接字;繼承;帶寬

      0 引言

      仿真是指當(dāng)所研究的系統(tǒng)造價(jià)昂貴、實(shí)驗(yàn)危險(xiǎn)性大或需要很長(zhǎng)時(shí)間才能了解其參數(shù)變化所引起的后果時(shí),利用模型重現(xiàn)實(shí)況,并通過(guò)模仿一些真實(shí)的事務(wù)或過(guò)程狀態(tài)來(lái)研究已存在的或設(shè)計(jì)中的系統(tǒng)[1]。隨著仿真實(shí)驗(yàn)在多種場(chǎng)合的廣泛使用,其現(xiàn)已成為計(jì)算機(jī)領(lǐng)域較為普遍的評(píng)價(jià)方法之一。同樣,研究通信體系和網(wǎng)絡(luò)協(xié)議也需要網(wǎng)絡(luò)仿真器的支持。但目前許多典型的仿真器如OPNET、QualNet和REAL等,由于使用條款限制或研發(fā)成本過(guò)高而得不到廣泛應(yīng)用。考慮到實(shí)施成本、情景再現(xiàn)、現(xiàn)場(chǎng)難度等,安裝真實(shí)網(wǎng)絡(luò)并不可行,網(wǎng)絡(luò)仿真器NS應(yīng)運(yùn)而生。它通常用于路由、多播及AdHoc網(wǎng)絡(luò),支持當(dāng)前流行協(xié)議,為有線、無(wú)線網(wǎng)絡(luò)提供仿真結(jié)果。

      1 NS2與NS3的特點(diǎn)與區(qū)別

      網(wǎng)絡(luò)仿真器主要基于特定條件,通過(guò)提供虛擬環(huán)境,允許仿真指定節(jié)點(diǎn)或路徑的網(wǎng)絡(luò)行為,如流量建模與性能分析等。NS2是個(gè)離散事件仿真器,事件由節(jié)點(diǎn)觸發(fā)。當(dāng)數(shù)據(jù)包到達(dá)節(jié)點(diǎn)后,仿真器按事件預(yù)定的執(zhí)行時(shí)間排序隊(duì)列、按步處理。作為一款用于網(wǎng)絡(luò)教育和研究的開(kāi)源軟件,NS2在學(xué)術(shù)界已大獲成功,但也存在著較多問(wèn)題,如它采用分裂對(duì)象模型,由C++代碼以及腳本語(yǔ)言O(shè)Tcl協(xié)調(diào)完成,因而導(dǎo)致系統(tǒng)結(jié)構(gòu)松散,分析工具“各自為政”,學(xué)習(xí)難度較大。另外仿真期間,網(wǎng)絡(luò)層存在著大量抽象,導(dǎo)致不連續(xù)以及跟蹤困難,結(jié)果常需要通過(guò)解析文件來(lái)提取。

      NS3基于社區(qū)開(kāi)發(fā)和維護(hù),具有良好的發(fā)展勢(shì)頭。它是用C++編寫(xiě)的可選Python腳本的API離散事件網(wǎng)絡(luò)仿真器。它具有面向?qū)ο?、低耦合、互操作、適合無(wú)線管理、便捷性符合WSN協(xié)議等特點(diǎn)。同時(shí),它具有良好的開(kāi)發(fā)環(huán)境,包括COM類(lèi)的接口聚合與查詢、自動(dòng)內(nèi)存管理、回調(diào)對(duì)象等核心功能,便于仿真新的復(fù)雜模型。

      當(dāng)前,NS3已試圖避免重復(fù)出現(xiàn)NS2所存在的問(wèn)題,如模型之間的互操作性與耦合不足、缺乏內(nèi)存管理、分裂語(yǔ)言對(duì)象調(diào)試等。最明顯的區(qū)別是腳本語(yǔ)言的選擇,NS2在OTcl中編寫(xiě)腳本,仿真結(jié)果由NAM實(shí)現(xiàn)可視化,但它無(wú)法純粹地從C++運(yùn)行仿真。而NS3(包括協(xié)議和場(chǎng)景)完全用C++編寫(xiě),帶有可選的Python綁定,腳本編寫(xiě)方便。NS3提供了全新的動(dòng)畫(huà)顯示軟件Net Anim,可勾畫(huà)出網(wǎng)絡(luò)拓?fù)浼皹?biāo)記IP地址,便于更好地演示數(shù)據(jù)包發(fā)送、傳遞以及接收過(guò)程。

      2 NS3基本概念

      2.1 NS3概述

      NS3項(xiàng)目始于2006年,目前已發(fā)展到了3.26這一穩(wěn)定版本。它是廣泛汲取了當(dāng)前主流仿真器NS2、YANS和GTNets的成功經(jīng)驗(yàn)及其他新技術(shù)綜合而成的。其核心及各功能模塊由C++代碼完成[2],仿真效率極高[3]。其在功能實(shí)現(xiàn)、版本更新、用戶使用量等方面都飛速趕超著NS2[4]。

      NS3對(duì)外提供了豐富的擴(kuò)展接口,研究者依據(jù)自身需求可更改或增減模塊。它被構(gòu)建為庫(kù),其靜態(tài)或動(dòng)態(tài)鏈接到仿真拓?fù)洳?dòng)NS3主程序(該程序定義了拓?fù)浣Y(jié)構(gòu)和仿真啟動(dòng)時(shí)間)。NS3體系結(jié)構(gòu)的底層到頂層都是開(kāi)源的,用戶可獨(dú)立擴(kuò)展相應(yīng)模塊。它還將API導(dǎo)出至Python,允許Python以與C++相同方式導(dǎo)入模型。它雖沒(méi)有NS2的所有模型,但卻增加了部分新功能。另外NS2部分模型也已移植進(jìn)了NS3,其豐富的模型幾乎涉及網(wǎng)絡(luò)技術(shù)所有方面。它包含網(wǎng)絡(luò)組件模擬接口,如網(wǎng)絡(luò)傳輸協(xié)議、通信媒介、套接字服務(wù)、客戶端/服務(wù)器端應(yīng)用程序等;擁有事件調(diào)度器,可通過(guò)執(zhí)行相關(guān)事件,模擬真實(shí)的通信“行為”。同時(shí)它還具有完整的跟蹤機(jī)制及基于文本的跟蹤日志,方便用戶通過(guò)第三方軟件來(lái)解析數(shù)據(jù)傳輸過(guò)程及結(jié)果分析。

      2.2 NS3體系結(jié)構(gòu)

      NS3由一系列層次分明的功能模塊拼接而成,其最底層核心(core)模塊實(shí)現(xiàn)了NS3的核心功能,如智能指針、動(dòng)態(tài)類(lèi)型系統(tǒng)、事件調(diào)度器、回調(diào)機(jī)制、跟蹤記錄、對(duì)象聚合等功能,同時(shí)提供了額外的C++語(yǔ)法,使編程更容易。網(wǎng)絡(luò)(network)模塊包括數(shù)據(jù)包等網(wǎng)絡(luò)仿真對(duì)象,主要描述數(shù)據(jù)包、Pcap或Ascii文件操作及網(wǎng)卡和套接字等抽象基類(lèi)、IP地址、節(jié)點(diǎn)與隊(duì)列等。核心和網(wǎng)絡(luò)這兩個(gè)模塊組成一個(gè)適用于不同網(wǎng)絡(luò)類(lèi)型的通用仿真底層,當(dāng)前已實(shí)現(xiàn)了互聯(lián)網(wǎng)和移動(dòng)網(wǎng)。其他模塊(包括各種協(xié)議、應(yīng)用及設(shè)備等)都建立在這個(gè)底層模塊之上?;ヂ?lián)網(wǎng)(Internet)模塊包括IPv4/6和MAC-48 (EUI-48在IEEE 802的術(shù)語(yǔ)) 地址類(lèi),以及用于TCP/IP堆棧的抽象基類(lèi)。移動(dòng)(mobility)模塊包含移動(dòng)模型的抽象基類(lèi),為移動(dòng)網(wǎng)絡(luò)提供了豐富的移動(dòng)模型,如靜態(tài)、恒速、恒定加速度、隨機(jī)游走、隨機(jī)路點(diǎn)和隨機(jī)方向等。

      目前,NS3具有TCP/IP、WiFi、CSMA(以太網(wǎng))和P2P(點(diǎn)對(duì)點(diǎn))等模型。其中包含有OLSR協(xié)議等路由模塊。協(xié)議棧模塊是真實(shí)協(xié)議的抽象,執(zhí)行TCP/UDP/IPv4等堆棧的連接管理、傳輸控制及路由地址等功能。設(shè)備模塊為多個(gè)NetDevice類(lèi)的實(shí)現(xiàn),而應(yīng)用模塊則為應(yīng)用程序提供服務(wù)。

      Helper提供了一套簡(jiǎn)單的C++類(lèi),可實(shí)現(xiàn)不用指針即可訪問(wèn)已封裝的底層API。NS3程序可直接訪問(wèn)所有的API,頂層依據(jù)底層服務(wù)所編寫(xiě)的仿真腳本來(lái)運(yùn)行[5]。

      3 NS3核心概念

      3.1 基本對(duì)象與類(lèi)

      TCP類(lèi)在網(wǎng)絡(luò)模型中與IPv4/6協(xié)議一起駐留,實(shí)現(xiàn)彼此通信的多個(gè)類(lèi)與網(wǎng)絡(luò)層之間的交互,并向應(yīng)用層提供了可靠的數(shù)據(jù)傳送。NS3為真實(shí)環(huán)境提供了較低層次的抽象來(lái)構(gòu)造網(wǎng)絡(luò)組件[6],其基本對(duì)象是節(jié)點(diǎn)、應(yīng)用、信道和網(wǎng)絡(luò)設(shè)備等,借助類(lèi)來(lái)實(shí)現(xiàn)或表示。

      (1)節(jié)點(diǎn)(Node):狹義上將包含應(yīng)用程序、堆棧、網(wǎng)絡(luò)設(shè)備及具有內(nèi)存、CPU和I/O接口的計(jì)算機(jī)稱為節(jié)點(diǎn)。在NS3中把所有連接到網(wǎng)絡(luò)的基本計(jì)算單元或終端都抽象為節(jié)點(diǎn),由C++中的Node類(lèi)表示,給仿真提供管理計(jì)算設(shè)備的表示方法。在進(jìn)行開(kāi)發(fā)時(shí),用戶可將節(jié)點(diǎn)看作一臺(tái)主機(jī),進(jìn)行應(yīng)用、協(xié)議棧、網(wǎng)卡等添加,使其完成所需工作。

      (2)應(yīng)用(Application):它可在節(jié)點(diǎn)上運(yùn)行,并與堆棧通信,是數(shù)據(jù)包的發(fā)生器和“消費(fèi)者”。NS3不存在系統(tǒng)軟件,生成仿真活動(dòng)的用戶程序抽象成應(yīng)用,可將其部署在節(jié)點(diǎn)上來(lái)驅(qū)動(dòng)仿真器運(yùn)行。NS3應(yīng)用在C++中通過(guò)抽象Application類(lèi)來(lái)實(shí)現(xiàn),該類(lèi)用于管理用戶層應(yīng)用程序的多種仿真接口。開(kāi)發(fā)者在實(shí)現(xiàn)自己定義的應(yīng)用時(shí),只需要繼承Application類(lèi)即可。

      (3)信道(Channel):一組網(wǎng)絡(luò)設(shè)備對(duì)象間的物理連接器。NS3中把多個(gè)節(jié)點(diǎn)連在一起的對(duì)象稱為信道,在C++中,用Channel類(lèi)實(shí)現(xiàn)。該類(lèi)提供了管理通信子網(wǎng)和節(jié)點(diǎn)對(duì)象的連接方法,并具有模擬仿真數(shù)據(jù)包在傳輸過(guò)程中的傳播延遲和排隊(duì)延遲等功能。

      (4)網(wǎng)絡(luò)設(shè)備(NetDevice):在NS3中,要實(shí)現(xiàn)節(jié)點(diǎn)與信道交流,必須在節(jié)點(diǎn)上綁定網(wǎng)絡(luò)設(shè)備,由該設(shè)備連接節(jié)點(diǎn)和信道。網(wǎng)絡(luò)設(shè)備是仿真硬件和驅(qū)動(dòng)軟件的抽象表示,其“安裝”在節(jié)點(diǎn)內(nèi),可插入節(jié)點(diǎn)的I/O接口網(wǎng)卡,以便節(jié)點(diǎn)能通過(guò)信道與其他仿真節(jié)點(diǎn)互相通信。節(jié)點(diǎn)可經(jīng)過(guò)多個(gè)設(shè)備連接至多個(gè)信道。網(wǎng)絡(luò)設(shè)備必須綁定類(lèi)型匹配的信道,其抽象由C++中的NetDevice類(lèi)[7]表示,以提供管理節(jié)點(diǎn)和信道對(duì)象的連接。

      3.2 NS3代碼體系結(jié)構(gòu)

      NS3代碼由不同部分組成,從拓?fù)浣㈤_(kāi)始,定義要使用的模型,而后通過(guò)賦予地址和設(shè)置其他參數(shù)來(lái)配置模型,最后執(zhí)行代碼。NS3生成Pcap包跟蹤文件,以trace格式輸出,使用Wireshark等跟蹤工具分析結(jié)果數(shù)據(jù),或使用Net Anim來(lái)實(shí)現(xiàn)可視化。

      3.3 WAF生成系統(tǒng)

      NS3中使用WAF作為編譯系統(tǒng),而不再使用“./configure;make”。waf是一個(gè)基于Python的框架,可完成配置、編譯并實(shí)現(xiàn)應(yīng)用對(duì)象。它替代了其他工具,如Autotools、ScoNS、CMake及Ant等。例如要實(shí)現(xiàn)一個(gè)P2P仿真[8],具體步驟如下:(1)使用./waf -d[optimized|debug] configure檢查編譯環(huán)境;(2)使用./waf 來(lái)完成編譯任務(wù);(3)通過(guò)./waf-run來(lái)運(yùn)行仿真。

      3.4 NS3跟蹤模型

      跟蹤是NS3的一大特色,NS3建立了獨(dú)立的跟蹤源(tracing sources)和跟蹤宿(tracing sinks)機(jī)制。它基于回調(diào)收集統(tǒng)計(jì)信息。當(dāng)某跟蹤源產(chǎn)生了一新事件時(shí),可通過(guò)回調(diào)函數(shù)來(lái)了解其正在發(fā)生的內(nèi)部模擬和設(shè)備運(yùn)行情況。該設(shè)計(jì)將多個(gè)跟蹤源連接到跟蹤宿,源宿相分離,用戶可通過(guò)修改內(nèi)核來(lái)配置自己的源和宿,實(shí)現(xiàn)自定義跟蹤或統(tǒng)計(jì)輸出,而無(wú)需重建仿真核心??赏ㄟ^(guò)配置環(huán)境參數(shù)獲得“理想”網(wǎng)絡(luò),并可實(shí)時(shí)跟蹤和記錄關(guān)鍵節(jié)點(diǎn)的信息,從而獲得對(duì)網(wǎng)絡(luò)性能的評(píng)估。

      跟蹤源由其自身定義,與給它提供信息的對(duì)象類(lèi)相關(guān)聯(lián),由名稱標(biāo)識(shí),用于運(yùn)行時(shí)跟蹤所描述對(duì)象的屬性。它指示仿真中發(fā)生的事件并提供底層的數(shù)據(jù)訪問(wèn)。消耗跟蹤信息的實(shí)體稱為跟蹤宿。跟蹤源是事件的發(fā)生器,跟蹤宿則是“消費(fèi)者”。NS3提供了高、中、低三級(jí)跟蹤。高級(jí):使用內(nèi)置跟蹤源和跟蹤宿,并掛接跟蹤文件;中級(jí):使用命名空間自定義跟蹤源/宿的行為;低級(jí):將跟蹤源添加到命名空間或顯示跟蹤源。

      4 結(jié)論

      目前仍在大規(guī)模開(kāi)發(fā)的NS3并不兼容NS2,它主要用于NS2的替換轉(zhuǎn)型,同時(shí)建設(shè)并整合新的機(jī)制。本文首先比較了網(wǎng)絡(luò)仿真器NS2和NS3之間的特點(diǎn)與差異,重點(diǎn)對(duì)NS3作了介紹和研究。該仿真器符合更多、更有彈性的網(wǎng)絡(luò)模擬需求設(shè)計(jì),其編程用到了C++語(yǔ)言,并且兼容時(shí)下流行的Python。而NS2除了用到C++外,還需要Tcl/OTcl的輔助,這大大增加了編程難度。

      NS3雖然不具有NS2的所有模型,相關(guān)研究目前也較少,在無(wú)線場(chǎng)景的網(wǎng)絡(luò)動(dòng)畫(huà)、用戶友好性、易用性以及文檔教程等諸方面都非常需要社區(qū)的廣泛支持與良好測(cè)試,但同時(shí),它擁有單一的語(yǔ)言、良好的架構(gòu)、基于底層的開(kāi)發(fā)等特點(diǎn),使之具有更多NS2所不具備的“先天優(yōu)勢(shì)”,如節(jié)點(diǎn)多接口處理、IP尋址以及更多的因特網(wǎng)協(xié)議設(shè)計(jì)等功能。一些新的功能也正在積極地開(kāi)發(fā)之中,如更詳細(xì)的802.11模型等,非常值得期待。正如NS的研發(fā)者在其著作《NS3 Tutorial》中所說(shuō)的那樣,“NS3最終會(huì)逐漸取代NS2”。

      [1] 梁軍學(xué),林昭文,馬嚴(yán). 來(lái)互聯(lián)網(wǎng)試驗(yàn)平臺(tái)[J]. 計(jì)算機(jī)學(xué)報(bào),2013,36(7):1364-1374.

      [2] RILEY G F, HENDERSON T R. Modeling & tools for network simulation.[M]. Springer Berlin Heidelberg,2010.

      [3] WEINGARTNER E, VOM LEHN H, WEHRLE K. A performance comparison of recent network simulators.[C]. IEEE International Conference on Communications 2009 ICC’09,2009:1-5.

      [5] NS-3 Manual[EB/OL]. (2014-09-18)[2016-12-01].http://www.nsnam.org/.

      [6] 閔圣天, 曾文序, 李滿榮,等. 基于NS3的網(wǎng)絡(luò)協(xié)議分析與模擬[J]. 福建電腦, 2014, 30(2): 99-100.

      [7] 欒俊, 李太浩. 基于NS-3的WiFi場(chǎng)景仿真[J]. 農(nóng)業(yè)網(wǎng)絡(luò)信息, 2012, 1(1):18-20.

      [8] Wu Mingju, TSAI C J. A storage device emulator for system performance evaluation[J]. ACM Transactions on Embedded Computing Systems (TECS), 2015, 14(82): 1-27.

      A survey of new network simulator NS3

      Ru Xinyu1, Liu Yuan2, Chen Wei2

      (1. Wuxi Transportation College, Jiangsu Union Technical Institute, Wuxi 214151, China;2. School of Digital Media, Jiangnan University, Wuxi 214122, China)

      Simulation can be used to explore and solve problems with a relatively small cost and time. This paper introduces the characteristics and differences between NS2 and NS3, and discusses the details of the NS3 architecture, the process of data packet transmission, the basic objects and classes and their tracking models from the basic concept, core concept and model. Finally, it gets the TCP implementation process of NS3 in the research field with the theoretical depth.

      network simulator; class; model; application program interface; socket; inherit; bandwidth

      TP393

      A

      10.19358/j.issn.1674- 7720.2017.20.004

      茹新宇,劉淵,陳偉.新網(wǎng)絡(luò)仿真器NS3的研究綜述[J].微型機(jī)與應(yīng)用,2017,36(20):14-16.

      國(guó)家自然科學(xué)基金(61602213);江蘇省自然科學(xué)基金(BK20151131)

      2017-03-20)

      茹新宇(1977-),通信作者,男,碩士研究生,講師,主要研究方向:通信安全、擁塞控制及網(wǎng)絡(luò)安全。E-mail: ruxinyu21@163.com。

      劉淵(1967-),男,碩士研究生,教授,博士生導(dǎo)師,主要研究方向:無(wú)線通信管理、網(wǎng)絡(luò)測(cè)量及信息安全。

      陳偉(1981-),男,博士研究生,主要研究方向:人工智能、群體智能算法。

      猜你喜歡
      仿真器網(wǎng)絡(luò)設(shè)備數(shù)據(jù)包
      一種基于C# 的網(wǎng)絡(luò)設(shè)備自動(dòng)化登錄工具的研制
      SmartSniff
      數(shù)據(jù)中心唯“快”不破
      基于多線程的慣導(dǎo)邏輯仿真器設(shè)計(jì)
      基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
      基于列車(chē)監(jiān)測(cè)網(wǎng)絡(luò)設(shè)備的射頻功放模塊設(shè)計(jì)
      基于三層交換技術(shù)架構(gòu)數(shù)字化校園網(wǎng)絡(luò)設(shè)備的配置與管理
      視覺(jué)注意的數(shù)據(jù)包優(yōu)先級(jí)排序策略研究
      天文測(cè)量仿真器模擬星圖精度分析
      并行片上網(wǎng)絡(luò)仿真器ParaNSim的設(shè)計(jì)及性能分析
      绥芬河市| 合山市| 平昌县| 肇东市| 绥化市| 长泰县| 咸阳市| 香港 | 东乡族自治县| 民丰县| 彭山县| 晋中市| 会同县| 浦城县| 新野县| 鄂托克前旗| 临夏县| 吉水县| 铁力市| 武山县| 丽水市| 内乡县| 中西区| 宿州市| 闵行区| 五台县| 黑龙江省| 木兰县| 广昌县| 三都| 永泰县| 高雄县| 临洮县| 福州市| 白朗县| 新竹县| 松阳县| 嫩江县| 沽源县| 松阳县| 焉耆|