亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        網(wǎng)絡(luò)系統(tǒng)實(shí)驗(yàn)平臺(tái):發(fā)展現(xiàn)狀及展望

        2019-10-14 06:45:24楊林瑤韓雙雙李玉珂王飛躍
        自動(dòng)化學(xué)報(bào) 2019年9期
        關(guān)鍵詞:軟件節(jié)點(diǎn)優(yōu)化

        楊林瑤 韓雙雙 王 曉 李玉珂 王飛躍

        網(wǎng)絡(luò)技術(shù)自誕生以來經(jīng)歷了飛速的發(fā)展,當(dāng)前,計(jì)算機(jī)網(wǎng)絡(luò)和通信網(wǎng)絡(luò)已經(jīng)融入人們生活的方方面面.近年來,隨著網(wǎng)絡(luò)商業(yè)化應(yīng)用的進(jìn)步,新的網(wǎng)絡(luò)結(jié)構(gòu)不斷涌現(xiàn),新的協(xié)議和算法被不斷提出和應(yīng)用.然而,目前的網(wǎng)絡(luò)也面臨著許多問題,比如缺乏高效的資源管理能力、服務(wù)定制能力薄弱、難以提供有效的用戶管理[1?2]等,現(xiàn)有的網(wǎng)絡(luò)體系結(jié)構(gòu)越來越難以滿足未來的發(fā)展需要.在這種情況下,如何高效、低成本地設(shè)計(jì)有效的新型網(wǎng)絡(luò)結(jié)構(gòu)、開發(fā)新的網(wǎng)絡(luò)協(xié)議和算法,以解決目前網(wǎng)絡(luò)結(jié)構(gòu)不靈活、網(wǎng)絡(luò)開發(fā)部署成本高等問題,已經(jīng)成為一個(gè)焦點(diǎn)問題[3].

        網(wǎng)絡(luò)仿真通過軟件計(jì)算網(wǎng)絡(luò)中的實(shí)體如節(jié)點(diǎn)、路由器、交換機(jī)、鏈路等之間的交互來建模網(wǎng)絡(luò)中的行為,將網(wǎng)絡(luò)中的行為如收發(fā)數(shù)據(jù)等價(jià)為隨機(jī)發(fā)生的離散事件進(jìn)行排隊(duì)處理[4?7],是一種由統(tǒng)計(jì)模型驅(qū)動(dòng)的網(wǎng)絡(luò)規(guī)劃、設(shè)計(jì)和分析技術(shù),能夠?yàn)榫W(wǎng)絡(luò)研究提供客觀、可靠的依據(jù).因此,在當(dāng)前網(wǎng)絡(luò)規(guī)模和結(jié)構(gòu)復(fù)雜性急劇上升的情況下,網(wǎng)絡(luò)仿真技術(shù)可以靈活、精準(zhǔn)地設(shè)計(jì)、模擬網(wǎng)絡(luò)的結(jié)構(gòu),以較低的成本進(jìn)行網(wǎng)絡(luò)研究,并準(zhǔn)確評(píng)估算法的性能和效果[8?11],極大地方便了研究人員進(jìn)行研究和設(shè)計(jì).當(dāng)前,國內(nèi)在網(wǎng)絡(luò)仿真軟件的設(shè)計(jì)和研究上的成果不多,但國外已經(jīng)有很多成功的應(yīng)用軟件[12?39].其中,有適用于多種網(wǎng)絡(luò)類型的通用仿真軟件[12?35]如開源的NS-2、NS-3、OMNeT++、J-SIM 等及商業(yè)仿真軟件OPNET、QualNet 等,還有一些針對(duì)特定網(wǎng)絡(luò)設(shè)計(jì)的專用網(wǎng)絡(luò)仿真軟件[36?39],它們極大地方便了網(wǎng)絡(luò)研究并得到了廣泛的應(yīng)用.

        然而,網(wǎng)絡(luò)仿真技術(shù)還存在準(zhǔn)確度過分依賴于模型精度和參數(shù)設(shè)置,不能自適應(yīng)地調(diào)整模型和參數(shù),緊密耦合的仿真層次設(shè)計(jì)限制了高層應(yīng)用的靈活性等缺陷.為了克服傳統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的缺陷,提高網(wǎng)絡(luò)的靈活性,降低網(wǎng)絡(luò)設(shè)計(jì)和更新成本,Mckeown 教授提出了軟件定義網(wǎng)絡(luò)(Software-defined network,SDN))技術(shù)[40].SDN 采用轉(zhuǎn)發(fā)與控制分離、網(wǎng)絡(luò)全局信息對(duì)控制可見的設(shè)計(jì),解耦了網(wǎng)絡(luò)的軟硬件資源,并將其作為服務(wù)開放出去,極大地提高了網(wǎng)絡(luò)的靈活性和開放性.但是,SDN 仍不能很好地進(jìn)行動(dòng)態(tài)優(yōu)化和控制.為了滿足網(wǎng)絡(luò)自適應(yīng)優(yōu)化,提高服務(wù)質(zhì)量的需要,未來的網(wǎng)絡(luò)架構(gòu)應(yīng)當(dāng)進(jìn)化為基于ACP(Artificial societies,computational experiments,and parallel execution)方法(即人工社會(huì)、計(jì)算實(shí)驗(yàn)和平行執(zhí)行)[41?43],面向網(wǎng)絡(luò)大數(shù)據(jù)的平行網(wǎng)絡(luò)架構(gòu)[44].

        平行網(wǎng)絡(luò)基于真實(shí)網(wǎng)絡(luò)的數(shù)據(jù)建模人工網(wǎng)絡(luò),通過構(gòu)建靈活的網(wǎng)絡(luò)智能體和規(guī)則構(gòu)建大量的人工網(wǎng)絡(luò)場(chǎng)景[45?48],生成完備的人工網(wǎng)絡(luò)場(chǎng)景數(shù)據(jù).大規(guī)模的人工網(wǎng)絡(luò)數(shù)據(jù)結(jié)合真實(shí)網(wǎng)絡(luò)的數(shù)據(jù),通過各種計(jì)算實(shí)驗(yàn)[49?52],給出對(duì)真實(shí)網(wǎng)絡(luò)優(yōu)化運(yùn)行的指導(dǎo)意見.同時(shí),將優(yōu)化方案在人工網(wǎng)絡(luò)和真實(shí)網(wǎng)絡(luò)中平行執(zhí)行,使網(wǎng)絡(luò)模型訓(xùn)練和評(píng)估在線化、長期化[53?55],能夠持續(xù)優(yōu)化網(wǎng)絡(luò)系統(tǒng),提高復(fù)雜網(wǎng)絡(luò)的運(yùn)行效果.平行網(wǎng)絡(luò)系統(tǒng)為從整體上描述網(wǎng)絡(luò)的狀態(tài)提供了基本思路,并為開展網(wǎng)絡(luò)的優(yōu)化運(yùn)行實(shí)驗(yàn)提供了可行的方法.其綜合型和主動(dòng)性的建模方式使計(jì)算實(shí)驗(yàn)可以全面考慮各種因素對(duì)系統(tǒng)的影響,實(shí)現(xiàn)對(duì)系統(tǒng)整體的模擬[56?61],而傳統(tǒng)的仿真方式只能實(shí)現(xiàn)局部行為的模擬.

        作為平行網(wǎng)絡(luò)技術(shù)研究的重要手段,仿真技術(shù)的研究和應(yīng)用十分關(guān)鍵.網(wǎng)絡(luò)仿真軟件數(shù)量眾多、特點(diǎn)不同[7],為了使讀者深入了解網(wǎng)絡(luò)仿真技術(shù)及其主要平臺(tái)的原理和主要特點(diǎn),推動(dòng)下一代網(wǎng)絡(luò)分析和計(jì)算實(shí)驗(yàn)技術(shù)的研究,本文主要做了以下工作:

        1)系統(tǒng)地分析了主流的通用型網(wǎng)絡(luò)仿真平臺(tái)的發(fā)展現(xiàn)狀、特點(diǎn)和優(yōu)缺點(diǎn)及網(wǎng)絡(luò)仿真技術(shù)的缺陷[62?66]和發(fā)展趨勢(shì),對(duì)各網(wǎng)絡(luò)仿真軟件的主要性能進(jìn)行了對(duì)比分析和評(píng)價(jià);

        2)介紹了平行網(wǎng)絡(luò)的架構(gòu)并著重介紹了計(jì)算實(shí)驗(yàn)的理論、方法、應(yīng)用[43?53]和平臺(tái)架構(gòu)等相關(guān)問題,設(shè)計(jì)了一個(gè)計(jì)算實(shí)驗(yàn)驗(yàn)證該方法的合理性和可行性,以期為未來網(wǎng)絡(luò)研究和網(wǎng)絡(luò)仿真技術(shù)研究提供有益的啟發(fā)和借鑒.

        本文的組織結(jié)構(gòu)為:第1 節(jié)概述網(wǎng)絡(luò)仿真平臺(tái)的發(fā)展現(xiàn)狀和研究情況;第2 節(jié)對(duì)主要的通用型網(wǎng)絡(luò)仿真軟件進(jìn)行介紹,并對(duì)其優(yōu)勢(shì)和主要的缺陷進(jìn)行了分析;第3 節(jié)分析當(dāng)前網(wǎng)絡(luò)仿真技術(shù)面臨的主要問題和挑戰(zhàn);第4 節(jié)分析網(wǎng)絡(luò)仿真的發(fā)展趨勢(shì)和展望;第5 節(jié)介紹平行網(wǎng)絡(luò)的計(jì)算實(shí)驗(yàn)方法的相關(guān)理論和實(shí)驗(yàn)案例;第6 節(jié)總結(jié)本文的主要內(nèi)容并對(duì)平行網(wǎng)絡(luò)的發(fā)展前景進(jìn)行了展望.

        1 網(wǎng)絡(luò)系統(tǒng)實(shí)驗(yàn)平臺(tái)概述

        計(jì)算機(jī)網(wǎng)絡(luò)仿真軟件興起于20 世紀(jì)80 年代,它的出現(xiàn)很好地彌合了網(wǎng)絡(luò)設(shè)計(jì)及其應(yīng)用之間的鴻溝.網(wǎng)絡(luò)仿真具有如下的特點(diǎn):1)簡單易用,可以很方便地進(jìn)行網(wǎng)絡(luò)協(xié)議的驗(yàn)證與設(shè)計(jì)[4];2)應(yīng)用廣泛,可以用于大規(guī)模網(wǎng)絡(luò)的設(shè)計(jì)分析,這是其他技術(shù)難以比擬的;3)成本較低,設(shè)計(jì)和修改比較容易,使用起來靈活方便;4)具有較高的精度,能夠很好地刻畫網(wǎng)絡(luò)的特性,具有良好的統(tǒng)計(jì)復(fù)用性.

        網(wǎng)絡(luò)仿真是對(duì)網(wǎng)絡(luò)中隨機(jī)發(fā)生的離散事件如丟包、延遲等的模擬,因此,網(wǎng)絡(luò)仿真軟件的內(nèi)核大多是離散事件驅(qū)動(dòng)的.仿真軟件的原理框圖如圖1 所示.網(wǎng)絡(luò)仿真軟件內(nèi)部一般都配置有一個(gè)離散事件調(diào)度器,按照隊(duì)列組織離散事件.在進(jìn)行仿真時(shí),每次從隊(duì)首取出一個(gè)離散事件進(jìn)行處理并將其從隊(duì)列中刪除,并且根據(jù)離散事件的結(jié)果修改全局變量也就是網(wǎng)絡(luò)中的狀態(tài)變量并產(chǎn)生過程統(tǒng)計(jì)數(shù)據(jù),然后接著取下一個(gè)事件,直至隊(duì)列為空即為仿真結(jié)束[5].仿真時(shí)鐘用于記錄仿真的進(jìn)程,隨處理的離散事件的增加而推進(jìn).為了模擬網(wǎng)絡(luò)中的隨機(jī)性如數(shù)據(jù)包在網(wǎng)絡(luò)中的逗留時(shí)間和丟失率等,仿真系統(tǒng)需要引入能夠產(chǎn)生隨機(jī)分布的隨機(jī)數(shù)發(fā)生器.隨機(jī)數(shù)發(fā)生器一般是用一定的算法實(shí)現(xiàn)的偽隨機(jī)數(shù)發(fā)生器,本質(zhì)上不具備真正的隨機(jī)性,并且在算法遇到重復(fù)值時(shí),隨機(jī)數(shù)會(huì)發(fā)生周期性重復(fù),此時(shí)便不能有效模擬網(wǎng)絡(luò)的隨機(jī)性.因此,仿真軟件模擬的隨機(jī)事件數(shù)量不能超過偽隨機(jī)數(shù)發(fā)生器的循環(huán)周期,偽隨機(jī)數(shù)發(fā)生器的設(shè)計(jì)至關(guān)重要[6].

        網(wǎng)絡(luò)仿真軟件的一般使用流程[7]為:1)明確研究對(duì)象仿真需求,如仿真的對(duì)象、層次、規(guī)模等.2)根據(jù)需求創(chuàng)建仿真模型,部署節(jié)點(diǎn)、交換機(jī)、路由器等仿真實(shí)體.3)創(chuàng)建仿真場(chǎng)景,設(shè)計(jì)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)和設(shè)定特殊場(chǎng)景參數(shù)如移動(dòng)場(chǎng)景下的速度等.4)設(shè)定其他網(wǎng)絡(luò)參數(shù),如帶寬、數(shù)據(jù)率等.5)啟動(dòng)仿真進(jìn)程,采集數(shù)據(jù).6)運(yùn)用數(shù)據(jù)分析工具對(duì)采集到的結(jié)果統(tǒng)計(jì)數(shù)據(jù)進(jìn)行可視化分析.

        圖1 仿真軟件原理框圖Fig.1 Schematic diagram of simulators

        網(wǎng)絡(luò)仿真技術(shù)主要應(yīng)用在網(wǎng)絡(luò)性能評(píng)估和網(wǎng)絡(luò)吞吐量規(guī)劃、預(yù)測(cè)新協(xié)議的性能和進(jìn)行新協(xié)議的開發(fā)及快速進(jìn)行網(wǎng)絡(luò)部署設(shè)計(jì)等領(lǐng)域[8].經(jīng)過三十多年的發(fā)展,網(wǎng)絡(luò)仿真領(lǐng)域已經(jīng)產(chǎn)生了數(shù)量龐大,特點(diǎn)各異、用途不一的仿真軟件簇.當(dāng)前的網(wǎng)絡(luò)仿真軟件大多基于分組級(jí)仿真設(shè)計(jì),都可以在單機(jī)上運(yùn)行,但是每一種仿真軟件都有或多或少獨(dú)特的側(cè)重方向,都有自己的優(yōu)缺點(diǎn)和適用的領(lǐng)域,例如物理層的仿真通常選擇具有更高物理層精度的NS-2[9],大量節(jié)點(diǎn)的網(wǎng)絡(luò)仿真需要選擇具有分布式處理能力的平臺(tái),如果需要較少的成本最好選擇開源的軟件等,因此用戶在選擇仿真工具時(shí)應(yīng)當(dāng)面向具體應(yīng)用,根據(jù)仿真的需求來選擇合適的仿真軟件.

        評(píng)價(jià)仿真軟件優(yōu)劣的主要指標(biāo)有:1)內(nèi)存效率,即仿真軟件仿真一定數(shù)量的節(jié)點(diǎn)需要的計(jì)算機(jī)內(nèi)存[10],所需內(nèi)存越少,內(nèi)存效率越高;2)仿真能力,即軟件在滿足精度要求的條件下所能夠仿真的最大節(jié)點(diǎn)數(shù)量;3)速度,即仿真軟件仿真一定節(jié)點(diǎn)數(shù)量時(shí)需要的運(yùn)行時(shí)間,特別是對(duì)于大型網(wǎng)絡(luò)的仿真時(shí)間;4)靈活性,即仿真模型設(shè)計(jì)和修改的方便程度;5)可擴(kuò)展性,即對(duì)仿真軟件進(jìn)行擴(kuò)展或修改應(yīng)用到新的領(lǐng)域所需要的工作量,越容易添加新模塊和功能的仿真軟件,其可擴(kuò)展性越高;6)易用性,即軟件的用戶界面和仿真設(shè)計(jì)、分析輔助工具和其他用戶支持等[11].

        網(wǎng)絡(luò)仿真平臺(tái)按照其適用領(lǐng)域可以分為通用仿真平臺(tái)[12?35]和專用仿真平臺(tái)[36?39],通用的仿真平臺(tái)可以用于絕大多數(shù)類型網(wǎng)絡(luò)及網(wǎng)絡(luò)的不同層次,主流的通用網(wǎng)絡(luò)仿真軟件主要有NS-2、NS-3、GlomoSim(Global mobile information system simulator)等,而專用的仿真平臺(tái)是專為某一類型的網(wǎng)絡(luò)如無線傳感網(wǎng)(wireless sensor networks,WSN)[36]、點(diǎn)對(duì)點(diǎn)(Peer-to-Peer,P2P)網(wǎng)絡(luò)[37]、車載自組織網(wǎng)絡(luò)[39](Vehicular ad-hoc networks,VANET)等設(shè)計(jì)的,只有有限的使用范圍.表1 列出了通用型網(wǎng)絡(luò)仿真平臺(tái)和一些專用于特定類型網(wǎng)絡(luò)的仿真軟件.

        數(shù)量龐大的網(wǎng)絡(luò)仿真軟件為研究人員和工程師挑選合適的工具帶來了困難,也催生了很多針對(duì)仿真軟件對(duì)比的研究工作,這些工作大多按照一定的標(biāo)準(zhǔn)對(duì)不同的平臺(tái)進(jìn)行對(duì)比,或者針對(duì)特定的項(xiàng)目或場(chǎng)景進(jìn)行性能比較.如文獻(xiàn)[9]對(duì)NS-2、J-SIM、GlomoSim、OMNeT++、QualNet和OPNET 的特點(diǎn)進(jìn)行了概述,文獻(xiàn)[12]對(duì)JSIM、OMNeT++、NS-2、OPNET 的特性進(jìn)行了比較,文獻(xiàn)[21]對(duì)GlomoSim、NS-2、OMNeT++、JSIM 進(jìn)行了全面的分析,文獻(xiàn)[66]則對(duì) JSIM、OMNeT++、NS-2 就其安裝簡易度、說明文檔、可視化和數(shù)據(jù)分析能力進(jìn)行了比較.還有的工作通過實(shí)驗(yàn)對(duì)不同平臺(tái)針對(duì)特定問題的仿真能力進(jìn)行了比較,如文獻(xiàn)[67]就仿真準(zhǔn)確度對(duì)NS-2、OPNET 進(jìn)行了對(duì)比,文獻(xiàn)[68]則進(jìn)一步比較了OPNET、NS-2、GlomoSim 的準(zhǔn)確度.不同論文研究的軟件對(duì)象不盡相同,側(cè)重點(diǎn)也不完全一樣.為了給網(wǎng)絡(luò)研究人員選擇恰當(dāng)?shù)木W(wǎng)絡(luò)仿真軟件提供可以依據(jù)的參考,本文對(duì)主流的通用型網(wǎng)絡(luò)仿真平臺(tái)進(jìn)行了對(duì)比分析和評(píng)價(jià),全面涉及使用最廣泛的仿真軟件,同時(shí),針對(duì)目前通信網(wǎng)絡(luò)數(shù)據(jù)面和控制面分離的趨勢(shì),對(duì)兩種SDN 常用的仿真軟件進(jìn)行了功能介紹與分析.

        表1 常用仿真軟件分類Table 1 Common simulators classification

        2 基礎(chǔ)實(shí)驗(yàn)平臺(tái)介紹

        本節(jié)主要對(duì)NS-2、NS-3、GlomoSim 等主流的通用型網(wǎng)絡(luò)仿真軟件及Mininet 和EstiNet 這兩種重要的SDN 仿真軟件的背景、框架、仿真設(shè)計(jì)等進(jìn)行了介紹,并對(duì)其優(yōu)缺點(diǎn)進(jìn)行了分析,最后小結(jié)部分對(duì)它們進(jìn)行了比較分析.

        2.1 NS-2

        NS(Network Simulator)起源于1989 年美國軍方的Real Network Simulator 項(xiàng)目,是最早的網(wǎng)絡(luò)仿真器之一,NS-2 是NS 比較成熟的版本.NS-2是一種面向?qū)ο蟮木W(wǎng)絡(luò)仿真器,本質(zhì)上是一個(gè)離散事件模擬器,是目前學(xué)術(shù)界使用最廣泛的網(wǎng)絡(luò)仿真軟件.NS-2 的軟件架構(gòu)如圖2 所示,它基于C++和Otcl(Object tcl)兩種編程語言開發(fā).其中,Otcl可以快速進(jìn)行修改,用于構(gòu)成解釋器,適于編寫仿真模型和進(jìn)行仿真參數(shù)配置;而C++程序具有很高的執(zhí)行效率,主要構(gòu)成編譯器負(fù)責(zé)執(zhí)行仿真進(jìn)程,用戶可以基于C++編寫自己的庫或協(xié)議,并利用Make 模塊添加到NS-2 的庫文件中.解釋器和編譯器之間通過TclCL(Tcl with classes)接口進(jìn)行交互,TclCL 可以將Otcl 腳本解釋為C++代碼執(zhí)行,并基于模型配置腳本生成對(duì)應(yīng)的編譯層變量[12].NS-2 內(nèi)封裝了許多功能模塊,包括事件調(diào)度器、隊(duì)列、節(jié)點(diǎn)、鏈路、傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議(Transmission Control Protocal/Internet Protocol,TCP/IP)等,用于表示仿真中的網(wǎng)絡(luò)元素并控制仿真進(jìn)程.NS-2 也是離散事件驅(qū)動(dòng)的仿真器,事件調(diào)度器負(fù)責(zé)激活仿真隊(duì)列中的事件,并通過虛擬的仿真時(shí)鐘記錄仿真時(shí)間.NS-2 選擇了網(wǎng)絡(luò)動(dòng)畫演示工具(Network animator,NAM)和Xgraph作為數(shù)據(jù)可視化工具,用戶可以在網(wǎng)絡(luò)配置腳本中添加Trace 信息設(shè)置語句,仿真時(shí)就會(huì)生成相應(yīng)的基于文本的Trace 文件,用戶可以使用Xgraph 將數(shù)據(jù)曲線畫出,也可以用NAM 將仿真過程以動(dòng)畫展示出來.

        圖2 NS-2 雙語言軟件結(jié)構(gòu)Fig.2 Two language structure of NS-2

        NS-2 支持包括TCP、路由、廣播協(xié)議在內(nèi)的廣泛的協(xié)議仿真,目前已經(jīng)形成了十分完善的協(xié)議庫,對(duì)正在使用的大多數(shù)協(xié)議都可以直接調(diào)用庫進(jìn)行仿真.它還支持有線、無線、局域網(wǎng)、衛(wèi)星網(wǎng)絡(luò)等多種網(wǎng)絡(luò)類型的仿真,其仿真結(jié)果具有較高的可信度.NS-2 支持簡化的開放式系統(tǒng)互聯(lián)(Open System interconnect,OSI)網(wǎng)絡(luò)分層模型,省略掉了會(huì)話層和表示層[13].NS-2 可以與真實(shí)的網(wǎng)絡(luò)進(jìn)行交互,它可以與真實(shí)網(wǎng)絡(luò)進(jìn)行連接并捕捉網(wǎng)絡(luò)中的數(shù)據(jù)包,同時(shí)也可以向外界的網(wǎng)絡(luò)發(fā)送數(shù)據(jù).NS-2 相比于其他軟件具有較好的移動(dòng)性支持,可以更精準(zhǔn)地建模移動(dòng)網(wǎng)絡(luò)模型,對(duì)網(wǎng)絡(luò)底層仿真具有較高精度.

        但是,由于NS-2 的兩種編程語言的復(fù)雜架構(gòu),創(chuàng)建一個(gè)新的模型或協(xié)議是比較困難的,導(dǎo)致它的可擴(kuò)展性和靈活性比較差,同時(shí),它本身沒有GUI支持,使用比較繁瑣.另外,NS-2 對(duì)一些硬件設(shè)備的支持不盡如人意,例如對(duì)于天線的支持不夠,只支持雙向天線和無向天線.但是,得益于其活躍的用戶社區(qū),NS-2 擁有很全面的說明文檔,很方便的應(yīng)用程序編程接口(Application programming interface,API),及大量的擴(kuò)展工具可以供用戶添加使用.

        2.2 NS-3

        為了簡化NS-2 的框架,降低復(fù)雜度,NS-3 研究社區(qū)的開發(fā)者在NS-2 基礎(chǔ)上開發(fā)了NS-3.NS-3始于2006 年,它與NS-2 最大的不同也是優(yōu)勢(shì)在于其核心代碼和功能模塊完全基于C++開發(fā),并且大部分模塊提供可選的Python 擴(kuò)展接口,極大地降低了用戶的編程復(fù)雜度.NS-3 架構(gòu)由一系列基于C++類開發(fā)的功能模塊組合而成,各模塊可以實(shí)現(xiàn)網(wǎng)絡(luò)的不同功能如移動(dòng)模型、路由協(xié)議等,模塊之間同時(shí)存在一定的調(diào)用和依賴關(guān)系.NS-3 的基本模塊及其組織結(jié)構(gòu)如圖3 所示,其中,Core 模塊是NS-3 的核心模塊,包含事件調(diào)度、隨機(jī)變量、回調(diào)(Callback,NS-3 中簡化函數(shù)調(diào)用的機(jī)制)、日志(Logging,用于輸出內(nèi)部模塊執(zhí)行過程和調(diào)試信息)等核心功能[14],Network、Mobility 等模塊用于實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)分組、節(jié)點(diǎn)移動(dòng)模型等相應(yīng)的網(wǎng)絡(luò)功能,Helper 包含模塊的Helper 類代碼,Test 則包含模塊的測(cè)試代碼,Waf 是NS-3 的代碼編譯工具,所有的仿真代碼都由它編譯運(yùn)行.NS-3 的仿真模型具有清晰的邏輯和較高的可讀性,模型的組成及其順序一般包括:選擇相應(yīng)的模塊、配置Logging 和Trace、設(shè)定命令行參數(shù)、創(chuàng)建節(jié)點(diǎn)、安裝網(wǎng)絡(luò)設(shè)備、安裝協(xié)議棧、設(shè)定移動(dòng)性模型、安裝應(yīng)用層協(xié)議、啟動(dòng)仿真等.

        圖3 NS-3 模塊體系結(jié)構(gòu)Fig.3 Module architecture of NS-3

        NS-3 仿真層次類似于OSI 網(wǎng)絡(luò)體系結(jié)構(gòu),它將數(shù)據(jù)按照設(shè)備層、網(wǎng)絡(luò)層、傳輸層、API 套接字和應(yīng)用層的順序封裝,由類模擬數(shù)據(jù)按照TCP/IP 協(xié)議傳輸?shù)倪^程,具有良好的靈活性和可擴(kuò)展性.NS-3同樣是事件驅(qū)動(dòng)的仿真器,事件由節(jié)點(diǎn)觸發(fā),仿真內(nèi)核中的事件處理器按照對(duì)應(yīng)的仿真時(shí)間從隊(duì)列中取出相應(yīng)的事件進(jìn)行處理,數(shù)據(jù)包的轉(zhuǎn)發(fā)由指針的交互完成,仿真進(jìn)程占用內(nèi)存資源較少且運(yùn)行速度較快.NS-3 的數(shù)據(jù)傳輸過程與物理網(wǎng)絡(luò)的真實(shí)模型類似,因而其仿真結(jié)果具有較高的可信度.NS-3 的結(jié)果數(shù)據(jù)包括網(wǎng)絡(luò)場(chǎng)景數(shù)據(jù)和統(tǒng)計(jì)數(shù)據(jù),場(chǎng)景數(shù)據(jù)可以通過離線的NetAnim 或在線的PyViz 可視化工具展示[10],從而使用戶直觀觀測(cè)到仿真過程,而統(tǒng)計(jì)數(shù)據(jù)可以利用NS-3 的Tracing 系統(tǒng)動(dòng)態(tài)跟蹤仿真生成的Pcap 統(tǒng)計(jì)文件,并可利用Wireshark 等工具分析輸出結(jié)果.NS-3 還支持分布式處理和并行仿真,仿真速度最高可以提升三十倍.

        NS-3 目前并不完善,是正在發(fā)展中的仿真器,它只有少量的現(xiàn)有協(xié)議的模型和庫,實(shí)現(xiàn)像NS-2 那樣完善的協(xié)議庫還需要較長的時(shí)間和社區(qū)用戶的共同努力.但是NS-3 發(fā)展正強(qiáng)勁,NS-2 已經(jīng)停止更新,而NS-3 還在不斷維護(hù)更新.作為NS-2 的升級(jí),NS-3 還將在功能上進(jìn)行擴(kuò)展,例如提供面向仿真過程透明的統(tǒng)一對(duì)外編程接口等.

        表2 列出了一些NS-2 與NS-3 之間的比較.

        表2 NS-2 和NS-3 的比較Table 2 Comparison of NS-2 and NS-3

        2.3 GlomoSim

        GlomoSim 是加利福尼亞大學(xué)洛杉磯分校并行計(jì)算實(shí)驗(yàn)室開發(fā)的一個(gè)基于庫的并行仿真軟件,主要用于仿真無線網(wǎng)絡(luò).GlomoSim 采用模塊化的設(shè)計(jì)思想,很好地支持了OSI 協(xié)議分層.它基于Parsec 語言(一種基于C 的仿真語言,用于實(shí)現(xiàn)離散事件仿真模型的順序和并行執(zhí)行)[15]編寫了一系列庫,每一個(gè)庫專門用于仿真某一層的某個(gè)協(xié)議[16],每個(gè)庫有一個(gè)API 與其他庫進(jìn)行交互,用于調(diào)用其他層的協(xié)議,實(shí)現(xiàn)多協(xié)議聯(lián)合仿真,新的協(xié)議需要使用Parsec 編寫并添加到庫里.這種設(shè)計(jì)提高了不同層的模型和協(xié)議的獨(dú)立性,用戶可以很方便地修改和替換某一層的庫[17],有效提升了它的可擴(kuò)展性.GlomoSim 可以運(yùn)行在共享內(nèi)存或分布式處理器上,通過一些同步協(xié)議進(jìn)行協(xié)作,可以實(shí)現(xiàn)并行仿真和分布式處理,因此能夠被用于大型網(wǎng)絡(luò)的仿真.GlomoSim 引入了網(wǎng)格的概念,在網(wǎng)格中,一個(gè)簡單的實(shí)體可以仿真系統(tǒng)中的若干節(jié)點(diǎn),當(dāng)網(wǎng)絡(luò)中增加新的節(jié)點(diǎn)時(shí),仿真的實(shí)體數(shù)目可以保持不變,仿真前所需規(guī)劃的僅僅是該系統(tǒng)應(yīng)該采用多少個(gè)實(shí)體來表示.因此,GlomoSim 可以支持上百萬節(jié)點(diǎn).同時(shí),它可以提供節(jié)點(diǎn)和層次聚類,這是很多仿真器無法實(shí)現(xiàn)的[18].但是,GlomoSim 缺少TCP 應(yīng)用,并且不支持圖形用戶界面(Graphical user interface,GUI)界面.

        GlomoSim 在2000 年發(fā)行2.0 版本后,便不再進(jìn)行更新,現(xiàn)在推出的是商業(yè)化的版本QualNet.QualNet 是用C++編寫的應(yīng)用于無線、有線及混合動(dòng)態(tài)網(wǎng)絡(luò)的快速、精確的開發(fā)、仿真系統(tǒng),主要是對(duì)移動(dòng)通信網(wǎng)絡(luò)仿真進(jìn)行了優(yōu)化處理,在仿真速度上得到了很大的提升,同時(shí)通過對(duì)無線信道和射頻技術(shù)的強(qiáng)化建模也保證了較高的仿真精度.QualNet 基于普林斯頓共享內(nèi)存計(jì)算機(jī)應(yīng)用程序庫(The Princeton application repository for sharedmemory computers,PARSEC)并行仿真內(nèi)核,每個(gè)節(jié)點(diǎn)都獨(dú)立進(jìn)行運(yùn)算,這也和現(xiàn)實(shí)相符合,允許用戶在真正的并行仿真環(huán)境當(dāng)中優(yōu)化仿真性能.因此,仿真速度快是QualNet 的突出優(yōu)勢(shì),對(duì)小規(guī)模同等復(fù)雜度的網(wǎng)絡(luò)模型仿真,QualNet 仿真速度是其他仿真器的幾倍,對(duì)于大規(guī)模網(wǎng)絡(luò),QualNet 仿真速度是其他仿真器的十幾倍到幾十倍,如果使用并行仿真模式,能達(dá)到比其他仿真器快千倍的速度.

        2.4 OMNeT++

        OMNeT++是一個(gè)免費(fèi)的多協(xié)議離散事件仿真軟件,它不是專為網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)的,原則上可以用于任何相互傳遞信息的組件系統(tǒng)的仿真.該軟件已經(jīng)有很多網(wǎng)絡(luò)方面的擴(kuò)展應(yīng)用,例如通信網(wǎng)絡(luò)之間的流量建模、協(xié)議仿真、排隊(duì)網(wǎng)絡(luò)和復(fù)雜網(wǎng)絡(luò)等[19].OMNeT++的基本組件是模塊,其結(jié)構(gòu)是一種嵌套層次結(jié)構(gòu),模塊可以是原子的也可以是其他子模塊組成的,模塊之間可以進(jìn)行通信.OMNeT++基于面向?qū)ο蟮脑O(shè)計(jì)思想,采用C++作為編程語言,新的組件和模塊的編寫主要通過調(diào)用C++類庫中的仿真內(nèi)核、隨機(jī)數(shù)發(fā)生器、數(shù)據(jù)采集器等實(shí)現(xiàn),因而具有較高的靈活性和可擴(kuò)展性.

        盡管OMNeT++靈活的嵌套模塊化結(jié)構(gòu)難以理解,它的使用卻是相對(duì)容易的.OMNeT++在配置網(wǎng)絡(luò)模型時(shí)不一定要使用C++編程,它支持更易于掌握的網(wǎng)絡(luò)描述語言(Network description,NED),只有最低層次的模塊需要用C++編寫[19].同時(shí),OMNeT++有良好的GUI 支持,可以很方便地在圖形化界面下調(diào)試參數(shù)、修改模型和觀察結(jié)果,而且,它還擁有十分全面的用戶手冊(cè)、API說明文檔以及一些教程,用戶可以得到良好的支持.OMNeT++通過信息傳遞接口(Message passing interface,MPI)和并行虛擬機(jī)(Parallel virtual machine version 3,PVM3)實(shí)現(xiàn)了并行仿真功能,在設(shè)計(jì)時(shí)就考慮了擴(kuò)展性,因此很適合開發(fā)和修改,它的程序兼容性很好,其他軟件編寫的仿真程序經(jīng)過少許修改就可以應(yīng)用到OMNeT++中,它的程序也可以移植到任意一臺(tái)沒有安裝OMNeT++仿真環(huán)境的主機(jī)上運(yùn)行.但是OMNeT++的協(xié)議沒有很好地按照OSI 模型組織,同時(shí)對(duì)移動(dòng)性建模的支持也比較差.

        2.5 OPNET

        OPNET 最早由麻省理工學(xué)院于1986 年推出,現(xiàn)在已經(jīng)發(fā)展成為一個(gè)廣泛使用的商業(yè)離散事件仿真器,但是研究人員可以獲得一個(gè)免費(fèi)的開放版使用.OPNET 是基于C++編寫的,其商業(yè)應(yīng)用最為廣泛[20],近幾年被第三方權(quán)威機(jī)構(gòu)(如Network World 等)評(píng)選為“世界級(jí)網(wǎng)絡(luò)仿真軟件”第一名[21].OPNET 支持大量的無線網(wǎng)絡(luò)技術(shù),如IEEE 802.11、IEEE 802.16、3 G、超寬帶、藍(lán)牙和衛(wèi)星網(wǎng)絡(luò)等,它有很多有線和無線網(wǎng)絡(luò)協(xié)議模型,用戶可以直接從這些預(yù)定義的模型中選擇協(xié)議構(gòu)建自己的模型,易于使用.OPNET 仿真內(nèi)核采用層次化的模擬方式,其協(xié)議模型按照業(yè)務(wù)層、TCP 層、IP層、IP 封裝層、地址解析協(xié)議(Address resolution protocol,ARP)層、介質(zhì)訪問控制(Media access control,MAC)層、物理層的層次模型設(shè)計(jì),符合OSI 分層模型的設(shè)計(jì)[22];其網(wǎng)絡(luò)仿真模型與網(wǎng)絡(luò)、設(shè)備、協(xié)議的實(shí)際網(wǎng)絡(luò)層次結(jié)構(gòu)對(duì)應(yīng),分為進(jìn)程層、節(jié)點(diǎn)層、網(wǎng)絡(luò)層三層.最底層為進(jìn)程模型,用狀態(tài)機(jī)來描述協(xié)議,并可使用Proto-C 語言編碼節(jié)點(diǎn)模型中處理機(jī)及隊(duì)列的行為.進(jìn)程層模型的行為由狀態(tài)轉(zhuǎn)移圖刻畫,進(jìn)程按照狀態(tài)轉(zhuǎn)移圖的轉(zhuǎn)移條件在阻塞和活動(dòng)兩個(gè)狀態(tài)之間循環(huán),并根據(jù)執(zhí)行代碼執(zhí)行相應(yīng)的動(dòng)作.第二層為節(jié)點(diǎn)模型,可以反映設(shè)備的特性,由相應(yīng)的協(xié)議模型構(gòu)成,每個(gè)節(jié)點(diǎn)模塊用于實(shí)現(xiàn)真實(shí)網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備的一個(gè)或幾個(gè)功能,多個(gè)模塊組合在一起實(shí)現(xiàn)節(jié)點(diǎn)的完整功能.最上層為網(wǎng)絡(luò)模型,包含子網(wǎng)、節(jié)點(diǎn)和通信鏈路等,用于封裝網(wǎng)絡(luò)設(shè)備、通信鏈路和業(yè)務(wù)配置等[23].

        OPNET 的仿真模型都可以看作由多個(gè)相互連通的子系統(tǒng)組合成的分布式系統(tǒng),子系統(tǒng)之間由不同的消息傳遞機(jī)制進(jìn)行交互,包括基于包的通信、應(yīng)用接口控制信息通信和基于通信鏈路的通信等[23].其中,基于包的信息傳遞機(jī)制可以模擬實(shí)際網(wǎng)絡(luò)中包的流動(dòng)及包的封裝和拆解,適用于同一節(jié)點(diǎn)內(nèi)部不同模塊之間的通信;接口控制信息是用戶自定義的與事件相關(guān)的數(shù)據(jù)列表,可以用到各種有關(guān)事件調(diào)度的場(chǎng)景;基于通信鏈路的消息傳遞用一系列管道去模擬物理鏈路中不同節(jié)點(diǎn)的通信,包括點(diǎn)對(duì)點(diǎn)鏈路、總線鏈路和無線鏈路.

        OPNET 將統(tǒng)計(jì)結(jié)果分為矢量統(tǒng)計(jì)量和標(biāo)量統(tǒng)計(jì)量,以便于對(duì)仿真結(jié)果進(jìn)行分析處理.其中,矢量統(tǒng)計(jì)量分為本地統(tǒng)計(jì)量和全局統(tǒng)計(jì)量,分別針對(duì)單個(gè)模塊和整個(gè)網(wǎng)絡(luò)模型的統(tǒng)計(jì)信息進(jìn)行收集,并向用戶提供四種不同的采集模式,即All value(收集所有值)、Sample(采樣收集)、Bucket(取平均)、Glitch removal(使平滑),增強(qiáng)了多角度分析結(jié)果的能力[24].標(biāo)量統(tǒng)計(jì)量一般由用戶手動(dòng)設(shè)置,可以針對(duì)某個(gè)參數(shù)設(shè)置不同的數(shù)值水平,同時(shí)執(zhí)行多個(gè)場(chǎng)景仿真,從而根據(jù)標(biāo)量統(tǒng)計(jì)量同時(shí)進(jìn)行多個(gè)參數(shù)水平的測(cè)試,極大地提高了研究效率.

        OPNET 既支持多個(gè)程序并行執(zhí)行,又支持分布式仿真,同時(shí)它的系統(tǒng)在環(huán)機(jī)制可以與真實(shí)網(wǎng)絡(luò)環(huán)境中的軟硬件進(jìn)行交互.作為一個(gè)商業(yè)軟件,OPNET 提供了全面的用戶手冊(cè),并提供良好的圖形編程界面,模型創(chuàng)建、仿真執(zhí)行、結(jié)果分析等都可以在GUI 下很方便地進(jìn)行,這些都極大地降低了開發(fā)的難度.相比于NS-2、GlomoSim 等仿真軟件,OPNET 支持對(duì)特殊的硬件設(shè)備如收發(fā)器和天線等的仿真.OPNET 的偽隨機(jī)數(shù)發(fā)生器的循環(huán)長度比較短,對(duì)大規(guī)模網(wǎng)絡(luò)的仿真能力較弱.

        2.6 J-SIM

        J-SIM 是俄亥俄州立大學(xué)的一個(gè)研究小組用Java 開發(fā)的通用仿真平臺(tái),它的結(jié)構(gòu)是一種靈活的基于組件松耦合的軟件架構(gòu).在J-SIM 中,節(jié)點(diǎn)、連接、協(xié)議等都是組件,大的組件可以由幾個(gè)內(nèi)部組件組成.組件之間可以通過它們的端口相互通信,并且支持一對(duì)一、一對(duì)多和多對(duì)多的通信模式.組件的行為由一個(gè)契約定義,契約規(guī)定了組件應(yīng)該對(duì)它的每個(gè)端口接收到數(shù)據(jù)做出什么反應(yīng)[25],組件在運(yùn)行時(shí)可以自發(fā)處理數(shù)據(jù),因此,可以單獨(dú)對(duì)組件進(jìn)行設(shè)計(jì)、運(yùn)行、測(cè)試,而不需要過分關(guān)注整體系統(tǒng),十分易于進(jìn)行擴(kuò)展.J-SIM 庫的設(shè)計(jì)基于Java 類,并且基于圖論的思想,仿真模型直接用圖來表示[26],不同的節(jié)點(diǎn)之間以單端方式連接.J-SIM 運(yùn)行時(shí)由Java虛擬機(jī)調(diào)度線程執(zhí)行,因此,J-SIM 可以跨操作系統(tǒng)平臺(tái)運(yùn)行.J-SIM 仿真是一種查詢驅(qū)動(dòng)的仿真,當(dāng)用戶提出一個(gè)仿真查詢,系統(tǒng)會(huì)在保存以前模型結(jié)果的數(shù)據(jù)庫中查找信息,如果查到所需的結(jié)果,就直接返回給用戶,否則系統(tǒng)就實(shí)例化這個(gè)模型,執(zhí)行它然后將結(jié)果返回給用戶并將結(jié)果保存到數(shù)據(jù)庫中.

        J-SIM 支持網(wǎng)絡(luò)分層,并且可以仿真任意層數(shù)的網(wǎng)絡(luò),它的自治組件結(jié)構(gòu)使得它可以很方便地實(shí)現(xiàn)不同層的節(jié)點(diǎn)之間的連接,因此還可以進(jìn)行交叉層的仿真.J-SIM 提供圖形化的用戶界面,用戶直接畫圖拖放節(jié)點(diǎn)來定義網(wǎng)絡(luò)模型,大幅減少代碼量.模型還可以很好地重利用,只需要將建好的模型當(dāng)作子圖添加即可,也便于理解.J-SIM 還提供接口可以與其他的腳本語言進(jìn)行整合,新發(fā)布的版本還提供了一個(gè)Tcl 的Java 命令語言(Java command language,Jacl)解釋器[26],因此,一些其他語言編寫的工具如NAM 也可以整合到J-SIM 中.

        J-SIM 提供一些小型網(wǎng)絡(luò)的示例和說明,但是缺少大型仿真的指導(dǎo)文檔,用戶進(jìn)行復(fù)雜網(wǎng)絡(luò)開發(fā)難以得到良好的支持.另外,J-SIM 和OPNET 一樣,其隨機(jī)數(shù)發(fā)生器是Java 自帶的,隨機(jī)數(shù)的循環(huán)長度比較小,因此對(duì)于大規(guī)模網(wǎng)絡(luò)的仿真能力較差.

        2.7 JiST/SWANS

        JiST(Java in simulation time)是一種運(yùn)行在Java 虛擬機(jī)上的網(wǎng)絡(luò)仿真平臺(tái),它是新一代離散事件仿真器的原型,即基于虛擬機(jī)的仿真[27].SWANS(Scalable Wireless ad Hoc Network Simulator)是一個(gè)在JiST 平臺(tái)之上搭建的無線網(wǎng)絡(luò)仿真器,它由獨(dú)立的軟件組件構(gòu)成,可以通過組件結(jié)合搭建出無線網(wǎng)絡(luò)模型,具有較高的靈活性.JiST 的框架由四部分組成:編譯器、虛擬機(jī)、字節(jié)代碼重寫器和基于語言的仿真時(shí)間內(nèi)核.JiST 的仿真執(zhí)行過程為:首先對(duì)模型代碼進(jìn)行編譯,然后在加載時(shí)動(dòng)態(tài)重寫代碼,最后由仿真時(shí)間內(nèi)核生成仿真時(shí)間執(zhí)行語義,控制虛擬機(jī)執(zhí)行仿真可執(zhí)行代碼[28].

        JiST/SWANS 最大的特點(diǎn)就是非常高效,相比于其他類型的仿真平臺(tái)無論在速度還是內(nèi)存消耗上都有優(yōu)勢(shì),表3 給出了一些節(jié)點(diǎn)數(shù)下JiST/SWANS與GlomoSim 和NS-2 的對(duì)比.

        表3 JiST/SWANS 與GlomoSim 和NS-2 的性能對(duì)比Table 3 Comparison of JiST/SWANS,GlomoSim and NS-2

        JiST 還具有較高的靈活性,其仿真程序不需要用專門的仿真語言編寫,也不需要調(diào)用各種仿真函數(shù),而是可以用Java 直接定義,它將Java 虛擬機(jī)直接轉(zhuǎn)換為仿真平臺(tái),可以在普通的Java 編譯器上編譯,因此具有良好的跨平臺(tái)性和可移植性.JiST/SWANS 支持移動(dòng)性模型,并且協(xié)議按照OSI標(biāo)準(zhǔn)組織,對(duì)分層協(xié)議的支持較好.

        2.8 GTNetS

        GTNetS(Georgia Tech Network Simulator)是美國喬治亞工學(xué)院基于C++編寫的面向?qū)ο蟮姆植际礁咝ЬW(wǎng)絡(luò)仿真平臺(tái),它具有良好的可擴(kuò)展性,主要面向大型網(wǎng)絡(luò)設(shè)計(jì),支持超過100 000 個(gè)節(jié)點(diǎn).它通過降低待處理的離散事件規(guī)模、優(yōu)化內(nèi)存管理、減小日志文件的大小這三方面的優(yōu)化有效地提高了大量節(jié)點(diǎn)時(shí)的仿真效率.基于分布式和并行處理設(shè)計(jì),GTNetS 可以有效地提高數(shù)據(jù)的處理能力和仿真速度.GTNetS 的每一個(gè)協(xié)議棧都屬于一個(gè)獨(dú)立的C++類,并且協(xié)議分層是按照現(xiàn)實(shí)中的協(xié)議分層設(shè)計(jì)的[29].GTNetS 支持圖形化顯示,并且支持對(duì)節(jié)點(diǎn)和鏈路的禁用和啟用.

        GTNetS 是一個(gè)全特性的網(wǎng)絡(luò)模擬環(huán)境,其設(shè)計(jì)理念是創(chuàng)造一個(gè)完全近似于實(shí)際網(wǎng)絡(luò)的模擬環(huán)境,使?fàn)顟B(tài)仿真的結(jié)果能夠更準(zhǔn)確地反映真實(shí)網(wǎng)絡(luò)運(yùn)行狀態(tài)并且提高其代碼的可移植性,使程序可以很方便地移植到真實(shí)的網(wǎng)絡(luò)設(shè)備中去.GTNetS 嚴(yán)格按照網(wǎng)絡(luò)協(xié)議分層設(shè)計(jì),其不同層的協(xié)議棧之間有明確的界限.GTNetS 中的數(shù)據(jù)包包含一類數(shù)據(jù)單元協(xié)議數(shù)據(jù)單元(Protocol data unit objects,PDUs)用以定義數(shù)據(jù)包的傳輸協(xié)議,這些數(shù)據(jù)單元會(huì)隨著數(shù)據(jù)包在協(xié)議棧中的上下傳輸被添加或刪除.GTNetS 中的節(jié)點(diǎn)設(shè)計(jì)與實(shí)際網(wǎng)絡(luò)中的終端節(jié)點(diǎn)如電腦、網(wǎng)卡等類似,一個(gè)節(jié)點(diǎn)可以有多個(gè)網(wǎng)絡(luò)接口,每個(gè)接口又可以綁定一個(gè)IP 地址或與一個(gè)子網(wǎng)相連接[30].GTNetS 的傳輸層實(shí)體也模擬真實(shí)網(wǎng)絡(luò)場(chǎng)景構(gòu)建,其采用類似TCP 的方式與端口綁定,通過端口與其他傳輸層實(shí)體進(jìn)行交互.

        2.9 SSFNet

        SSFNet(Scalable simulation framework network models)是一個(gè)用于互聯(lián)網(wǎng)協(xié)議和網(wǎng)絡(luò)結(jié)構(gòu)仿真的基于Java SSF(Simple seam framework)的組件集合,主要用于仿真IP 層以上的網(wǎng)絡(luò)模型,具有良好的可擴(kuò)展性,物理層和鏈路層可以在單獨(dú)的組件中進(jìn)行仿真.SSFNet 模型是自我配置的,也就是每一個(gè)SSFNet 類實(shí)例可以通過查詢配置數(shù)據(jù)庫自動(dòng)進(jìn)行配置.網(wǎng)絡(luò)配置文件采用領(lǐng)域建模語言(Domain modeling language,DML)格式,用來配置一個(gè)完整的網(wǎng)絡(luò)模型,并且在一個(gè)可擴(kuò)展的DML 數(shù)據(jù)庫包的幫助下實(shí)例化一個(gè)仿真[31].用于構(gòu)建虛擬互聯(lián)網(wǎng)模型的主類分成兩個(gè)衍生的框架:SSF.OS(包括ProtocolGraph、ProtocolSession、ProtocolMessage and PacketEvent 三個(gè)主類)用于建模主機(jī)和系統(tǒng)組件,SSF.NET(包括Net、Host and Router、NIC 和Link 四個(gè)主類)用于建模網(wǎng)絡(luò)的連通性、創(chuàng)建節(jié)點(diǎn)和鏈接配置.SSFNet 仿真的運(yùn)行過程為:首先SSFNet 中的Net.Net 對(duì)象查詢DML 庫,將模型加載到運(yùn)行配置數(shù)據(jù)庫對(duì)象Configuration 中,然后Net.Net 對(duì)象將實(shí)例化所有實(shí)體如節(jié)點(diǎn)、協(xié)議等,最后調(diào)用初始化方法進(jìn)行初始化,仿真程序便開始運(yùn)行,并輸出仿真的過程參數(shù).

        SSFNet 在設(shè)計(jì)時(shí)格外重視內(nèi)存占用,因此資源消耗比較小,同時(shí),具有有效的線程調(diào)度程序和內(nèi)存到內(nèi)存的消息傳遞機(jī)制,可以實(shí)現(xiàn)并行化處理,因此支持較多的節(jié)點(diǎn)數(shù)量.但是,SSFNet 缺少對(duì)用戶的擴(kuò)展工具支持,也無法很方便地對(duì)結(jié)果進(jìn)行分析[32],這些對(duì)用戶的使用造成了障礙.

        2.10 Mininet

        Mininet 是2010 年Standford 大學(xué)基于Linux操作系統(tǒng)開發(fā)的虛擬網(wǎng)絡(luò)仿真平臺(tái),是目前主流的SDN 仿真平臺(tái).Mininet 可以對(duì)基于Open-Flow、OpenVswitch 模型的各種協(xié)議進(jìn)行開發(fā)驗(yàn)證,且代碼可以很好地遷移到硬件設(shè)備中[33].Mininet 利用Linux 內(nèi)核提供的輕量級(jí)虛擬機(jī)制如進(jìn)程和命名空間來創(chuàng)建網(wǎng)絡(luò)模型并實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)之間的數(shù)據(jù)轉(zhuǎn)發(fā)和交互,它可以通過命令行實(shí)現(xiàn)復(fù)雜的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的構(gòu)建和修改,且提供Python API 定制各種工具,支持多人協(xié)同研發(fā).

        Mininet 具有良好的可擴(kuò)展性,它的輕量級(jí)結(jié)構(gòu)使得它在一臺(tái)主機(jī)上就可以輕松模擬具有上千個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò),并且可以驗(yàn)證、測(cè)試一個(gè)包含主機(jī)、鏈路、交換機(jī)等的完整網(wǎng)絡(luò)體系.Mininet 還具有很好的可移植性,由于它完全基于Linux 內(nèi)核開發(fā),它的程序可以移植到其他Linux 主機(jī)中,其他Linux 程序也可以在Mininet 環(huán)境下運(yùn)行.但是,Mininet 的中央處理器(Central processing unit,CPU)周期由虛擬主機(jī)、虛擬交換機(jī)和控制器共享,CPU 調(diào)度器不能準(zhǔn)確地控制調(diào)度順序,因此,Mininet 的仿真結(jié)果準(zhǔn)確度不夠高且難以重現(xiàn)[34].

        2.11 EstiNet

        EstiNet 是臺(tái)灣SDN 解決方案提供商思銳科技(EstiNet)研發(fā)的商用OpenFlow 網(wǎng)絡(luò)仿真器,能夠模擬數(shù)千個(gè)OpenFlow 1.0 和1.3 交換機(jī).它具有良好的用戶界面并提供可視化工具,能夠?qū)pen-Flow 控制器發(fā)送的數(shù)據(jù)包進(jìn)行分析,并且在網(wǎng)絡(luò)故障時(shí)可以快速地進(jìn)行分析.EstiNet 利用一種稱為內(nèi)核重進(jìn)入(Kernel re-entering)[35]的方法使用隧道網(wǎng)絡(luò)接口來捕捉從IP 層向下發(fā)送的數(shù)據(jù)包并將它們送入仿真內(nèi)核.在仿真內(nèi)核中,每一個(gè)虛擬主機(jī)都有自己的協(xié)議棧,協(xié)議棧包含MAC 層、物理層和其他IP 層之下的協(xié)議層,這些協(xié)議層可以仿真時(shí)延、帶寬等,然后,將包發(fā)回給目的主機(jī)的物理層.

        EstiNet 的仿真過程如圖4 所示:首先虛擬主機(jī)1 的應(yīng)用程序發(fā)送的數(shù)據(jù)包依次經(jīng)過各層協(xié)議被隧道1 抓取,隧道1 按照先進(jìn)先出的順序?qū)?shù)據(jù)送入仿真內(nèi)核,仿真內(nèi)核通過仿真協(xié)議棧各層依次對(duì)數(shù)據(jù)進(jìn)行分析,然后仿真內(nèi)核再依次經(jīng)過各層對(duì)數(shù)據(jù)進(jìn)行處理,最后再通過仿真內(nèi)核的接口將數(shù)據(jù)依次通過物理層到傳輸層傳送到目的主機(jī)2.所有Linux程序不經(jīng)修改即可作為應(yīng)用程序加入到EstiNet 的仿真中,并且使用Linux 內(nèi)核構(gòu)建的真實(shí)TCP/IP協(xié)議棧來傳送數(shù)據(jù),因此EstiNet 具有良好的擴(kuò)展性和準(zhǔn)確性.相比于Mininet,EstiNet 的仿真結(jié)果可以復(fù)現(xiàn)且更加精確,同時(shí),在大規(guī)模網(wǎng)絡(luò)仿真上EstiNet 的性能更加優(yōu)越.

        圖4 EstiNet 仿真過程Fig.4 EstiNet simulation process

        2.12 總結(jié)、分析與評(píng)價(jià)

        網(wǎng)絡(luò)仿真是網(wǎng)絡(luò)科學(xué)研究和通信網(wǎng)絡(luò)協(xié)議開發(fā)必不可少的重要手段,網(wǎng)絡(luò)仿真平臺(tái)具有數(shù)量龐大、適用范圍不一的特點(diǎn),本章對(duì)比較常用的通用網(wǎng)絡(luò)仿真軟件進(jìn)行了介紹.

        其中,NS-2 是應(yīng)用最廣泛的仿真軟件,盡管它的雙語言架構(gòu)難以掌握,但是它擁有完善的協(xié)議庫,因此廣受青睞.NS-3 是NS-2 的升級(jí),由雙語言架構(gòu)簡化為單語言架構(gòu),更加靈活且易于掌握,但是目前協(xié)議庫尚不完善.GlomoSim 的最大特點(diǎn)是通過分布式計(jì)算和并行處理技術(shù)實(shí)現(xiàn)了大規(guī)模網(wǎng)絡(luò)的仿真運(yùn)算,能夠支持百萬級(jí)的節(jié)點(diǎn)數(shù)量,其缺點(diǎn)在于缺少TCP 支持且缺乏良好的用戶界面.QualNet 是基于GlomoSim 推出的商業(yè)化的仿真軟件,其最大的優(yōu)勢(shì)在于運(yùn)算迅速,但是它不開源,成本高.OMNeT++也是一個(gè)很活躍的仿真平臺(tái),被學(xué)術(shù)界廣泛使用,它的嵌套層次結(jié)構(gòu)可以提供非常靈活的仿真支持,易于修改和開發(fā),但是缺少對(duì)層次協(xié)議和移動(dòng)性模型的支持.OPNET 是最常用的商業(yè)網(wǎng)絡(luò)仿真軟件,擁有十分完善的圖形界面和協(xié)議庫,但是它的可擴(kuò)展性較差,難以進(jìn)行二次開發(fā).J-SIM 是一款基于Java 開發(fā)的仿真平臺(tái),它基于圖形化思想設(shè)計(jì),擁有很好的GUI,允許畫圖設(shè)計(jì)網(wǎng)絡(luò),大大簡化了代碼設(shè)計(jì),但是它的說明文檔不充分,使用范圍不如上述的平臺(tái)廣.JiST/SWANS 是一個(gè)基于Java虛擬機(jī)的仿真平臺(tái),它可以直接用Java 編寫仿真模型,并且在Java 虛擬機(jī)上運(yùn)行,因此比較靈活方便.GTNetS 的設(shè)計(jì)理念是創(chuàng)建一個(gè)完全近似于真實(shí)網(wǎng)絡(luò)的模擬環(huán)境,代碼可以在真實(shí)網(wǎng)絡(luò)和虛擬環(huán)境之間很方便地移植.SSFNet 也是基于Java 開發(fā)的,它的主要優(yōu)點(diǎn)是內(nèi)存消耗比較小并且節(jié)點(diǎn)可以自動(dòng)配置,但是它的功能較弱,只能仿真IP 層以上協(xié)議.

        SDN 是未來重要的發(fā)展方向之一,經(jīng)典的網(wǎng)絡(luò)仿真平臺(tái)一般對(duì)SDN 的支持不夠強(qiáng)大,例如NS-3只能支持0.89 版本的OpenFlow 協(xié)議,而最新的OpenFlow 協(xié)議已經(jīng)升級(jí)到1.5 以上了,所以針對(duì)SDN 網(wǎng)絡(luò)一般使用專門的SDN 仿真平臺(tái),其中最有代表性的是Mininet 和EstiNet.Mininet 是一個(gè)開源的SDN 網(wǎng)絡(luò)仿真平臺(tái),Mininet 運(yùn)行在Linux內(nèi)核上,采用基于流程的思想設(shè)計(jì),可以用Python編寫仿真程序,是目前使用最廣泛,最活躍的SDN仿真軟件,但是Mininet 的仿真結(jié)果不能復(fù)現(xiàn)且精確度差一些.EstiNet 是商業(yè)化的SDN 軟件,兼具仿真和調(diào)試的功能,基于內(nèi)核重進(jìn)入的設(shè)計(jì)思想,使用隧道對(duì)數(shù)據(jù)包進(jìn)行分析仿真,因此精度較高且結(jié)果易復(fù)現(xiàn).

        大量研究對(duì)不同網(wǎng)絡(luò)仿真軟件的性能進(jìn)行了實(shí)驗(yàn)對(duì)比,基于文獻(xiàn)[66?70]的實(shí)驗(yàn)結(jié)果并結(jié)合作者對(duì)各平臺(tái)的實(shí)驗(yàn)驗(yàn)證,表4 對(duì)文中所介紹的仿真軟件的特性進(jìn)行了分析評(píng)價(jià)(使用* 表示對(duì)某一評(píng)價(jià)指標(biāo)的優(yōu)劣,* 越多表示其對(duì)應(yīng)指標(biāo)越優(yōu)).

        3 現(xiàn)存問題與挑戰(zhàn)

        網(wǎng)絡(luò)仿真技術(shù)作為當(dāng)前網(wǎng)絡(luò)研究和設(shè)計(jì)的主流技術(shù),取得了較大的發(fā)展和進(jìn)步,多種多樣的仿真平臺(tái)為網(wǎng)絡(luò)結(jié)構(gòu)和協(xié)議設(shè)計(jì)和分析提供了有力的工具.但是,網(wǎng)絡(luò)復(fù)雜度和用戶需求的進(jìn)一步提升對(duì)網(wǎng)絡(luò)仿真技術(shù)提出了更高的要求,網(wǎng)絡(luò)仿真技術(shù)還面臨著許多問題和挑戰(zhàn).

        首先,隨著網(wǎng)絡(luò)規(guī)模和復(fù)雜度的不斷提升,大規(guī)模網(wǎng)絡(luò)計(jì)算和處理技術(shù)需要進(jìn)一步應(yīng)用到網(wǎng)絡(luò)仿真中[62?63].目前提高網(wǎng)絡(luò)仿真軟件速度的方法主要有:1)并行和分布式處理技術(shù),并行計(jì)算指的是同時(shí)處理多條指令的技術(shù),這主要通過共享內(nèi)存的方式實(shí)現(xiàn),GlomoSim 已經(jīng)有所實(shí)現(xiàn),主要用于有線網(wǎng)絡(luò)的模擬上,而分布式處理技術(shù)是將任務(wù)分配到多個(gè)處理器上同時(shí)進(jìn)行處理,可以有效地提高軟件的可擴(kuò)展性;2)分段仿真技術(shù)[71],它通過消除冗余計(jì)算的方式提高計(jì)算效率、節(jié)約計(jì)算資源;3)混合模擬技術(shù),它通過將解析模型和離散模型相結(jié)合的方式加速仿真器的運(yùn)行[64].但是多數(shù)仿真軟件尚未有效利用這些技術(shù),同時(shí),近年來興起的圖形處理器(Graphics processing unit,GPU)加速計(jì)算[72]等技術(shù)被證明可以有效提升計(jì)算能力,而網(wǎng)絡(luò)仿真對(duì)這些技術(shù)的應(yīng)用比較遲滯.

        其次,智能分析和優(yōu)化方法在網(wǎng)絡(luò)仿真軟件中的應(yīng)用不足.網(wǎng)絡(luò)仿真軟件的數(shù)據(jù)分析可以分為兩種:一種被稱為在線序列分析,是指在仿真的同時(shí)計(jì)算誤差,只有當(dāng)誤差充分小的時(shí)候仿真停止,這種方法可以獲得較為精確的仿真結(jié)果;另一種方法稱為離線序列分析,為了獲得誤差較小的結(jié)果,離散序列分析可能需要用統(tǒng)計(jì)獨(dú)立的偽隨機(jī)數(shù)重復(fù)仿真過程,直到獲得可靠的結(jié)果.當(dāng)前,網(wǎng)絡(luò)仿真軟件只能對(duì)仿真數(shù)據(jù)進(jìn)行簡單的處理和展示,對(duì)模型的分析和優(yōu)化主要依靠人工完成,而缺乏更有效的分析方法.少有網(wǎng)絡(luò)仿真軟件能夠提供完善的機(jī)器學(xué)習(xí)等分析工具,無法對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行深度的分析從而為用戶優(yōu)化網(wǎng)絡(luò)設(shè)計(jì)提供更有效的支持.

        表4 仿真軟件性能對(duì)比Table 4 Performance comparison of simulators

        再次,仿真軟件與真實(shí)設(shè)備的交互不足,既難以利用實(shí)際網(wǎng)絡(luò)的數(shù)據(jù)支持更逼真的仿真模型設(shè)計(jì),又無法加速仿真算法應(yīng)用到實(shí)際網(wǎng)絡(luò)設(shè)備中[65].當(dāng)前,多數(shù)網(wǎng)絡(luò)仿真軟件沒有提供可與實(shí)際網(wǎng)絡(luò)設(shè)備進(jìn)行交互的接口,仿真模型無法同時(shí)在網(wǎng)絡(luò)設(shè)備上進(jìn)行驗(yàn)證,也無法接受實(shí)際網(wǎng)絡(luò)的反饋.同時(shí),將仿真的模型和算法應(yīng)用到實(shí)際網(wǎng)絡(luò)上也比較困難.

        現(xiàn)有的仿真平臺(tái)已越來越難以滿足規(guī)模日益增長的網(wǎng)絡(luò)的需要,同時(shí)也無法對(duì)現(xiàn)實(shí)網(wǎng)絡(luò)進(jìn)行在線的評(píng)估和優(yōu)化,無法高效地幫助提升實(shí)際網(wǎng)絡(luò)的性能.為此,必須對(duì)網(wǎng)絡(luò)仿真技術(shù)進(jìn)行改進(jìn)升級(jí),不斷提升其模擬大規(guī)模網(wǎng)絡(luò)系統(tǒng)的能力.

        4 發(fā)展趨勢(shì)與展望

        隨著技術(shù)不斷發(fā)展,網(wǎng)絡(luò)仿真軟件也在不斷改進(jìn),并呈現(xiàn)出許多新的發(fā)展趨勢(shì).

        1)隨著并行計(jì)算和網(wǎng)格計(jì)算等技術(shù)的興起和發(fā)展,越來越多的仿真軟件開發(fā)了分布式處理和并行仿真機(jī)制,能夠利用更多的分布式計(jì)算資源加強(qiáng)運(yùn)算能力,不斷提升仿真速度,例如,文獻(xiàn)[73?76]等都基于并行和分布式計(jì)算技術(shù)對(duì)NS-2 進(jìn)行了提升,實(shí)現(xiàn)了對(duì)大規(guī)模網(wǎng)絡(luò)的快速仿真,后期推出的仿真軟件如NS-3 等也都應(yīng)用了分布式和網(wǎng)格計(jì)算等技術(shù)強(qiáng)化運(yùn)算能力.2)模塊化的架構(gòu)設(shè)計(jì)被不斷強(qiáng)化,且基于OSI 的層次化設(shè)計(jì)被更多網(wǎng)絡(luò)仿真軟件采用以提高網(wǎng)絡(luò)模型設(shè)計(jì)的邏輯性和可讀性.新開發(fā)的網(wǎng)絡(luò)仿真器的模型基本按照簡化的OSI 協(xié)議分層組織,仿真過程中的數(shù)據(jù)包以類似的層次結(jié)果傳輸和處理,使網(wǎng)絡(luò)仿真與真實(shí)的物理網(wǎng)絡(luò)過程更相似.3)專用的仿真語言逐漸被摒棄,C++、Java、Python等通用編程語言被完全用于軟件的開發(fā)和模型設(shè)計(jì),極大地降低了用戶的學(xué)習(xí)和使用難度.這一方面得益于計(jì)算能力的提升,仿真效率不再依賴于特定的編程語言;另一方面,龐大的開源庫使得通用編程語言也可以輕易實(shí)現(xiàn)網(wǎng)絡(luò)系統(tǒng)的建模.4)用戶支持不斷加強(qiáng),當(dāng)前仍在更新的仿真軟件大多提供全面的用戶文檔,同時(shí),GUI 和結(jié)果分析及展示工具越來越完善,支持越來越多的開源工具和算法輔助仿真數(shù)據(jù)的分析.5)對(duì)網(wǎng)絡(luò)優(yōu)化分析的支持逐步加強(qiáng),與機(jī)器學(xué)習(xí)等算法的結(jié)合越來越廣泛,開始提供機(jī)器學(xué)習(xí)等優(yōu)化分析的擴(kuò)展工具,使網(wǎng)絡(luò)設(shè)計(jì)更加高效,例如,NS-3 甚至發(fā)布了ns3-gym-App[77]以提供強(qiáng)化學(xué)習(xí)工具.

        為有效提升網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng)的性能,克服傳統(tǒng)仿真無法自適應(yīng)優(yōu)化網(wǎng)絡(luò)等缺陷,我們?cè)谝陨习l(fā)展趨勢(shì)的基礎(chǔ)上引入了基于平行網(wǎng)絡(luò)的計(jì)算實(shí)驗(yàn)平臺(tái),從而為網(wǎng)絡(luò)設(shè)計(jì)和優(yōu)化技術(shù)的發(fā)展提供新的思路.

        5 平行網(wǎng)絡(luò)計(jì)算實(shí)驗(yàn)平臺(tái)

        傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)面臨著靈活性不足、開發(fā)應(yīng)用慢、運(yùn)維要求高等一系列問題,SDN 技術(shù)將控制層和數(shù)據(jù)層分離,解除了它們之間的緊密耦合,數(shù)據(jù)層僅負(fù)責(zé)轉(zhuǎn)發(fā)和接收數(shù)據(jù),控制層掌握全局的控制信息,提供面向用戶的可編程接口,提高了網(wǎng)絡(luò)的可編程性、靈活性和開放性.但是,SDN 只能基于當(dāng)前網(wǎng)絡(luò)信息和既定策略控制網(wǎng)絡(luò),無法充分評(píng)估不同網(wǎng)絡(luò)策略的效果,同時(shí),它也無法針對(duì)網(wǎng)絡(luò)攻擊等稀疏場(chǎng)景預(yù)先給出最優(yōu)策略.為此,未來的網(wǎng)絡(luò)將是基于人工網(wǎng)絡(luò)大數(shù)據(jù)建模,能夠全面優(yōu)化網(wǎng)絡(luò)的平行網(wǎng)絡(luò)系統(tǒng).

        5.1 平行網(wǎng)絡(luò)概念與架構(gòu)

        平行網(wǎng)絡(luò)基于ACP 方法提出,并融合了SDN的思想,所謂ACP,是人工網(wǎng)絡(luò)、計(jì)算實(shí)驗(yàn)、平行執(zhí)行三者的有機(jī)結(jié)合[1].人工網(wǎng)絡(luò)融合了SDN 轉(zhuǎn)發(fā)與控制相分離的思想[41],將底層資源封裝起來,提供開放的可編程接口并可基于多智能體方法[42]對(duì)復(fù)雜網(wǎng)絡(luò)系統(tǒng)進(jìn)行建模,進(jìn)一步提升了網(wǎng)絡(luò)的靈活性;計(jì)算實(shí)驗(yàn)可以基于一定的策略和規(guī)則生成完備的人工網(wǎng)絡(luò)場(chǎng)景[43],進(jìn)而基于大量且完備的人工網(wǎng)絡(luò)數(shù)據(jù)和實(shí)際網(wǎng)絡(luò)數(shù)據(jù)計(jì)算和優(yōu)化網(wǎng)絡(luò),產(chǎn)生對(duì)各種網(wǎng)絡(luò)場(chǎng)景的最優(yōu)控制策略;平行執(zhí)行通過人工網(wǎng)絡(luò)與實(shí)際網(wǎng)絡(luò)之間的動(dòng)態(tài)交互引導(dǎo)實(shí)際網(wǎng)絡(luò)逼近更優(yōu)的人工網(wǎng)絡(luò),從而達(dá)到對(duì)網(wǎng)絡(luò)的集中控制、整體優(yōu)化[44].平行網(wǎng)絡(luò)不僅使網(wǎng)絡(luò)更加開放,而且可以充分利用完備的人工網(wǎng)絡(luò)大數(shù)據(jù),對(duì)各種可能的網(wǎng)絡(luò)場(chǎng)景下的參數(shù)和控制策略預(yù)先進(jìn)行學(xué)習(xí)、訓(xùn)練和評(píng)估[45],從而能夠?yàn)榫W(wǎng)絡(luò)提供更全面的解決方案,提升了網(wǎng)絡(luò)的自適應(yīng)優(yōu)化能力.平行網(wǎng)絡(luò)及其計(jì)算解析架構(gòu)如圖5 所示,總體而言,平行網(wǎng)絡(luò)的ACP 由三部曲組成.

        1)人工網(wǎng)絡(luò)是與實(shí)際網(wǎng)絡(luò)相對(duì)應(yīng)的虛擬的網(wǎng)絡(luò),它融合了SDN 轉(zhuǎn)發(fā)與控制分離、控制邏輯集中及網(wǎng)絡(luò)能力開放的思想,將網(wǎng)絡(luò)底層資源抽象為虛擬的、邏輯獨(dú)立的網(wǎng)絡(luò)容器,并向控制平面提供開放的可編程接口,形成一個(gè)與底層物理網(wǎng)絡(luò)無關(guān)的軟件可控的系統(tǒng).借助知識(shí)表示、知識(shí)工程與多智能體建模等方法,人工網(wǎng)絡(luò)可以構(gòu)建大量可編程、可重構(gòu)、可計(jì)算的軟件定義的對(duì)象、軟件定義的流程、軟件定義的場(chǎng)景,進(jìn)而將它們共同組合成復(fù)雜網(wǎng)絡(luò)的“計(jì)算實(shí)驗(yàn)室”[46].人工網(wǎng)絡(luò)由真實(shí)網(wǎng)絡(luò)的小數(shù)據(jù)驅(qū)動(dòng),通過對(duì)真實(shí)網(wǎng)絡(luò)的參數(shù)學(xué)習(xí)產(chǎn)生人工網(wǎng)絡(luò)的初始參數(shù),并結(jié)合一定的規(guī)則學(xué)習(xí)方法生成智能體之間的交互規(guī)則、行為規(guī)則,產(chǎn)生大量不同的人工網(wǎng)絡(luò)子系統(tǒng).人工網(wǎng)絡(luò)中智能體的產(chǎn)生、交互和演化是完備的[47],能夠產(chǎn)生大量且完備的人工網(wǎng)絡(luò)大數(shù)據(jù),能夠模擬所有可能的網(wǎng)絡(luò)場(chǎng)景,因而能夠模擬整個(gè)網(wǎng)絡(luò)系統(tǒng).

        圖5 平行網(wǎng)絡(luò)及其計(jì)算解析Fig.5 Parallel network and its computational analysis

        2)計(jì)算實(shí)驗(yàn)可以基于人工網(wǎng)絡(luò)這一“計(jì)算實(shí)驗(yàn)室”設(shè)計(jì)各類網(wǎng)絡(luò)智能體的組合及交互規(guī)則,生成各種網(wǎng)絡(luò)場(chǎng)景,并且利用各種學(xué)習(xí)和訓(xùn)練手段求得適用于各種網(wǎng)絡(luò)場(chǎng)景下的不同策略,并基于一定的策略評(píng)估不同的方案,得到針對(duì)不同網(wǎng)絡(luò)場(chǎng)景的最佳方案[48].因此,計(jì)算實(shí)驗(yàn)主要包含兩種模式,即“學(xué)習(xí)與訓(xùn)練”和“實(shí)驗(yàn)與評(píng)估”[49].在學(xué)習(xí)與訓(xùn)練模式下,它能夠自動(dòng)學(xué)習(xí)和生成人工網(wǎng)絡(luò)數(shù)據(jù)的標(biāo)注信息,從而可以基于數(shù)據(jù)學(xué)習(xí)到大量不同場(chǎng)景的知識(shí),進(jìn)行許多無法在真實(shí)網(wǎng)絡(luò)中開展的實(shí)驗(yàn)[50].同時(shí),也可以設(shè)定具體的目標(biāo),面向特定的網(wǎng)絡(luò)場(chǎng)景和應(yīng)用進(jìn)行訓(xùn)練.例如,計(jì)算實(shí)驗(yàn)可以基于一定的規(guī)則生成許多危險(xiǎn)網(wǎng)絡(luò)場(chǎng)景如網(wǎng)絡(luò)遭受攻擊,并基于此類場(chǎng)景的數(shù)據(jù)學(xué)習(xí)應(yīng)對(duì)此類場(chǎng)景的策略.在實(shí)驗(yàn)與評(píng)估模式下,它能夠模擬所有方案在人工網(wǎng)絡(luò)中的效果[51],進(jìn)而評(píng)估其在對(duì)應(yīng)場(chǎng)景中的表現(xiàn).

        3)計(jì)算實(shí)驗(yàn)?zāi)軌蚧谌斯ぞW(wǎng)絡(luò)“大數(shù)據(jù)”和實(shí)際網(wǎng)絡(luò)“小數(shù)據(jù)”組成的“海量數(shù)據(jù)”進(jìn)行大量的學(xué)習(xí)[52],訓(xùn)練并評(píng)估特定場(chǎng)景下最佳的網(wǎng)絡(luò)運(yùn)行方案,此時(shí),人工網(wǎng)絡(luò)的結(jié)果不再是實(shí)際網(wǎng)絡(luò)的仿真,而是系統(tǒng)運(yùn)行的一種可能結(jié)果.平行網(wǎng)絡(luò)的目標(biāo)是基于在人工網(wǎng)絡(luò)上的計(jì)算實(shí)驗(yàn)訓(xùn)練及優(yōu)化特定場(chǎng)景的人工網(wǎng)絡(luò)模型參數(shù)[53],并通過平行執(zhí)行引導(dǎo)實(shí)際網(wǎng)絡(luò)朝著更優(yōu)的人工網(wǎng)絡(luò)優(yōu)化運(yùn)行.一方面,計(jì)算實(shí)驗(yàn)得到的優(yōu)化參數(shù)和策略可以應(yīng)用到實(shí)際網(wǎng)絡(luò)上,提升實(shí)際網(wǎng)絡(luò)的性能;另一方面,人工網(wǎng)絡(luò)接收到實(shí)際網(wǎng)絡(luò)的反饋,進(jìn)行實(shí)時(shí)、在線的借鑒、預(yù)估和引導(dǎo),使兩者平行調(diào)諧,協(xié)同優(yōu)化[54].

        4)在數(shù)據(jù)層面,平行網(wǎng)絡(luò)基于實(shí)際網(wǎng)絡(luò)數(shù)據(jù),借助生成式對(duì)抗網(wǎng)絡(luò)等計(jì)算實(shí)驗(yàn)手段生成相對(duì)完備的“海量網(wǎng)絡(luò)數(shù)據(jù)”,通過對(duì)海量網(wǎng)絡(luò)數(shù)據(jù)的學(xué)習(xí)、訓(xùn)練求解網(wǎng)絡(luò)優(yōu)化解并進(jìn)行優(yōu)化解評(píng)估,使之具有更廣泛的適用性;在控制層面,平行網(wǎng)絡(luò)利用人工網(wǎng)絡(luò)與實(shí)際網(wǎng)絡(luò)的虛實(shí)交互、雙向驗(yàn)證實(shí)現(xiàn)兩者的協(xié)同進(jìn)化以及對(duì)整個(gè)網(wǎng)絡(luò)的多目標(biāo)優(yōu)化管理與控制.它不僅可以優(yōu)化整個(gè)網(wǎng)絡(luò),還可以主動(dòng)學(xué)習(xí)并評(píng)估網(wǎng)絡(luò)管控效果并自適應(yīng)調(diào)整未來策略,因此更智能.

        5.2 面向平行網(wǎng)絡(luò)的計(jì)算實(shí)驗(yàn)平臺(tái)

        傳統(tǒng)的網(wǎng)絡(luò)仿真技術(shù)通過數(shù)學(xué)建模和數(shù)值方法模擬網(wǎng)絡(luò)運(yùn)行過程,其主要目的是逼近真實(shí)網(wǎng)絡(luò)的狀態(tài)[55?56].而計(jì)算實(shí)驗(yàn)方法通過在人工網(wǎng)絡(luò)上構(gòu)建大量的網(wǎng)絡(luò)場(chǎng)景生成完備的人工網(wǎng)絡(luò)數(shù)據(jù),基于對(duì)人工網(wǎng)絡(luò)大數(shù)據(jù)和實(shí)際網(wǎng)絡(luò)數(shù)據(jù)的訓(xùn)練和評(píng)估生成各種網(wǎng)絡(luò)場(chǎng)景下的最優(yōu)方案,以優(yōu)化的人工網(wǎng)絡(luò)引導(dǎo)實(shí)際網(wǎng)絡(luò)[57],從而提升網(wǎng)絡(luò)的性能.

        計(jì)算實(shí)驗(yàn)的主要流程是:基于機(jī)器學(xué)習(xí)、統(tǒng)計(jì)分析等技術(shù),從真實(shí)網(wǎng)絡(luò)的數(shù)據(jù)中提取網(wǎng)絡(luò)的特征和規(guī)律[58].隨后,基于提取到的特征構(gòu)建人工網(wǎng)絡(luò)智能體的行為和交互規(guī)則并生成網(wǎng)絡(luò)場(chǎng)景,實(shí)現(xiàn)對(duì)真實(shí)網(wǎng)絡(luò)的模擬,在此基礎(chǔ)上,可以針對(duì)特定的目標(biāo)和應(yīng)用設(shè)計(jì)特定的實(shí)驗(yàn)方案,進(jìn)而基于完備的人工網(wǎng)絡(luò)數(shù)據(jù)訓(xùn)練和評(píng)估相應(yīng)場(chǎng)景下的控制策略[59],并將最符合實(shí)驗(yàn)?zāi)繕?biāo)的控制策略作為網(wǎng)絡(luò)的優(yōu)化方案.

        基于以上思想,計(jì)算實(shí)驗(yàn)平臺(tái)的系統(tǒng)流程圖如圖6 所示,它包含實(shí)驗(yàn)設(shè)計(jì)、動(dòng)態(tài)仿真、學(xué)習(xí)優(yōu)化、分析評(píng)估與數(shù)據(jù)中心五個(gè)主要模塊[60],通過模塊之間的交互和協(xié)作,實(shí)現(xiàn)對(duì)復(fù)雜網(wǎng)絡(luò)系統(tǒng)的解析、預(yù)測(cè)和引導(dǎo)[61].

        實(shí)驗(yàn)設(shè)計(jì)模塊的主要任務(wù)是協(xié)助用戶制定相應(yīng)的實(shí)驗(yàn)方案,并生成相應(yīng)的人工網(wǎng)絡(luò)規(guī)則和場(chǎng)景.它的主要功能是通過物理信號(hào)傳感器和社會(huì)信號(hào)傳感器獲取實(shí)際網(wǎng)絡(luò)信號(hào)和社會(huì)輿情信號(hào)并借助機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘等技術(shù)對(duì)其進(jìn)行學(xué)習(xí),從而獲取實(shí)際網(wǎng)絡(luò)的參數(shù).通過自然語言處理、平行學(xué)習(xí)等知識(shí)自動(dòng)化技術(shù),它可以解析用戶對(duì)網(wǎng)絡(luò)的需求,從而理解網(wǎng)絡(luò)優(yōu)化任務(wù),并通過智能規(guī)劃、專家系統(tǒng)等方法生成相應(yīng)的實(shí)驗(yàn)方案.基于解析的實(shí)驗(yàn)?zāi)繕?biāo)和方案,它可以自動(dòng)生成人工網(wǎng)絡(luò)智能體的行為和交互規(guī)則,進(jìn)而生成相應(yīng)的網(wǎng)絡(luò)場(chǎng)景.

        動(dòng)態(tài)仿真模塊基于傳統(tǒng)的網(wǎng)絡(luò)仿真平臺(tái),能夠執(zhí)行基于智能體的網(wǎng)絡(luò)實(shí)驗(yàn),演化出完備的人工網(wǎng)絡(luò)數(shù)據(jù).它的主要功能是基于實(shí)驗(yàn)設(shè)計(jì)模塊產(chǎn)生的網(wǎng)絡(luò)場(chǎng)景和規(guī)則生成一定數(shù)量的智能體并模擬它們的行為及交互,并采集實(shí)驗(yàn)的過程數(shù)據(jù),同時(shí)根據(jù)指定的目標(biāo)對(duì)數(shù)據(jù)進(jìn)行標(biāo)注或處理.

        學(xué)習(xí)優(yōu)化模塊的主要功能是對(duì)動(dòng)態(tài)仿真產(chǎn)生的人工網(wǎng)絡(luò)大數(shù)據(jù)結(jié)合實(shí)際網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行分析和學(xué)習(xí),從而獲取網(wǎng)絡(luò)的具體知識(shí),產(chǎn)生網(wǎng)絡(luò)的優(yōu)化調(diào)參方案.學(xué)習(xí)優(yōu)化模塊包含模糊控制、動(dòng)態(tài)規(guī)劃、人工神經(jīng)網(wǎng)絡(luò)、遺傳算法、蟻群算法等控制算法,也包含深度學(xué)習(xí)、強(qiáng)化學(xué)習(xí)等人工智能算法,能夠基于大量的計(jì)算實(shí)驗(yàn)優(yōu)化網(wǎng)絡(luò)參數(shù).同時(shí),學(xué)習(xí)優(yōu)化模塊還具有一定的自我學(xué)習(xí)和調(diào)整能力,可以靈活地對(duì)計(jì)算實(shí)驗(yàn)用到的算法進(jìn)行選擇和優(yōu)化.

        分析評(píng)估模塊主要負(fù)責(zé)對(duì)計(jì)算實(shí)驗(yàn)的過程和結(jié)果數(shù)據(jù)進(jìn)行評(píng)價(jià)和分析,從而判斷最符合實(shí)驗(yàn)?zāi)繕?biāo)的網(wǎng)絡(luò)運(yùn)行方案,并對(duì)實(shí)驗(yàn)過程進(jìn)行檢查,查看實(shí)驗(yàn)過程是否產(chǎn)生錯(cuò)誤并對(duì)錯(cuò)誤進(jìn)行分析和糾錯(cuò).

        基于大量的場(chǎng)景實(shí)驗(yàn)和訓(xùn)練評(píng)估,計(jì)算實(shí)驗(yàn)平臺(tái)能夠生成大量針對(duì)不同場(chǎng)景的優(yōu)化方案和控制策略.為了便于在面臨新的網(wǎng)絡(luò)狀況時(shí)快速給出相應(yīng)的解決方案,數(shù)據(jù)中心模塊將存儲(chǔ)各種網(wǎng)絡(luò)場(chǎng)景下的最優(yōu)方案,并可基于實(shí)際網(wǎng)絡(luò)的參數(shù)快速查詢相應(yīng)場(chǎng)景的解決方案[53].

        圖6 計(jì)算實(shí)驗(yàn)平臺(tái)系統(tǒng)流程圖Fig.6 System flowchart of computational experiment platform

        由此可見,仿真器是網(wǎng)絡(luò)智能體運(yùn)行和交互的場(chǎng)所,是計(jì)算實(shí)驗(yàn)平臺(tái)的核心,基礎(chǔ)仿真平臺(tái)的選擇將直接影響到計(jì)算實(shí)驗(yàn)平臺(tái)的性能.平行網(wǎng)絡(luò)計(jì)算實(shí)驗(yàn)平臺(tái)仿真器的選擇將主要基于以下幾點(diǎn):是否擁有標(biāo)準(zhǔn)的可編程接口、是否開源、是否具有較高的靈活性和可擴(kuò)展性、是否具有全面的說明文檔等[55].基于本文對(duì)通用網(wǎng)絡(luò)仿真平臺(tái)的介紹和分析,滿足以上需求的仿真平臺(tái)有很多,例如NS-3 等都可以作為候選的仿真器嵌入計(jì)算實(shí)驗(yàn)平臺(tái).

        但是,計(jì)算實(shí)驗(yàn)方法與仿真方法有著本質(zhì)的不同,計(jì)算實(shí)驗(yàn)是一種主動(dòng)控制技術(shù)[57],它不僅能夠模擬和預(yù)測(cè)真實(shí)網(wǎng)絡(luò)的狀態(tài),而且能夠基于對(duì)完備的人工網(wǎng)絡(luò)數(shù)據(jù)的學(xué)習(xí)找到各種網(wǎng)絡(luò)場(chǎng)景下和優(yōu)化參數(shù)和最佳控制方案,進(jìn)而引導(dǎo)實(shí)際網(wǎng)絡(luò)系統(tǒng)優(yōu)化運(yùn)行[60].

        基于其更全面的控制策略和全局網(wǎng)絡(luò)的自適應(yīng)優(yōu)化能力,計(jì)算實(shí)驗(yàn)將在下一代網(wǎng)絡(luò)中具有廣泛且重要的應(yīng)用,為網(wǎng)絡(luò)升級(jí)和服務(wù)能力提升提供強(qiáng)有力的助力.例如,當(dāng)前,中國的4G 網(wǎng)絡(luò)基站數(shù)已經(jīng)達(dá)到了100 萬以上,長期演進(jìn)(Long term evolution,LTE)網(wǎng)絡(luò)有大量的參數(shù)可供優(yōu)化,存在很大的服務(wù)質(zhì)量提升空間.然而,上萬級(jí)的規(guī)模為網(wǎng)絡(luò)參數(shù)的最優(yōu)配置帶來了困難,既很難在海量的參數(shù)中選擇有價(jià)值的參數(shù)進(jìn)行優(yōu)化,又難以在實(shí)際基站小區(qū)中進(jìn)行實(shí)驗(yàn),同時(shí)面對(duì)復(fù)雜多變的網(wǎng)絡(luò)場(chǎng)景也不能自適應(yīng)地進(jìn)行調(diào)整.為此,可以構(gòu)造與真實(shí)小區(qū)相對(duì)應(yīng)的軟件定義的人工網(wǎng)絡(luò),在其上進(jìn)行大量的計(jì)算實(shí)驗(yàn),綜合運(yùn)用專家系統(tǒng)推薦算法、機(jī)器學(xué)習(xí)算法、聚類算法等[78]提取網(wǎng)絡(luò)的個(gè)性化特征,自動(dòng)推薦個(gè)性化的網(wǎng)絡(luò)參數(shù),對(duì)重要的參數(shù)計(jì)算分析其優(yōu)化值.由此,便可自動(dòng)完成海量參數(shù)的選擇、優(yōu)化,并可通過對(duì)大量場(chǎng)景的學(xué)習(xí)提升網(wǎng)絡(luò)的自適應(yīng)調(diào)節(jié)優(yōu)化能力.

        5.3 計(jì)算實(shí)驗(yàn)設(shè)計(jì)與驗(yàn)證

        計(jì)算實(shí)驗(yàn)方法能夠有效利用社會(huì)信號(hào)[79?81]和物理網(wǎng)絡(luò)信號(hào)解析網(wǎng)絡(luò),針對(duì)具體場(chǎng)景提供最佳的網(wǎng)絡(luò)優(yōu)化指導(dǎo).為了驗(yàn)證計(jì)算實(shí)驗(yàn)方法的有效性,本小節(jié)設(shè)計(jì)了基于該方法的網(wǎng)絡(luò)優(yōu)化實(shí)驗(yàn).本文以微信網(wǎng)絡(luò)的數(shù)據(jù)傳輸為例,基于多種計(jì)算實(shí)驗(yàn)方法分析其朋友圈鏈接內(nèi)容被瀏覽并轉(zhuǎn)發(fā)的可能性,并進(jìn)一步將相關(guān)數(shù)據(jù)緩存至轉(zhuǎn)發(fā)者附近的服務(wù)器,從而降低轉(zhuǎn)發(fā)者的跟隨好友的訪問時(shí)延.

        微信是國內(nèi)使用最廣泛的即時(shí)通信軟件,微信朋友圈之間存在一種雙向鏈接關(guān)系[82],即通信雙方彼此為好友.微信朋友圈只能被自己的好友看到,但同時(shí)好友具有一定的轉(zhuǎn)發(fā)權(quán)限,進(jìn)而影響好友的好友,使信息進(jìn)一步擴(kuò)散出去.通常,微信好友多為與用戶擁有更多相似性的本地好友,數(shù)據(jù)多存放在更多被訪問的發(fā)布者本地服務(wù)器,因此,轉(zhuǎn)發(fā)者及其跟隨者訪問數(shù)據(jù)也需要訪問較遠(yuǎn)距離的本地服務(wù)器,增加了跟隨者的訪問時(shí)延和本地服務(wù)器的負(fù)載.

        為了從整體上提高微信用戶的訪問效率,Zhang等[83]提出了一種對(duì)服務(wù)器重新分配位置的反向貪婪算法,通過計(jì)算所有可能的組合形式,并計(jì)算每種可能組合的整體通信負(fù)載選擇具有最小負(fù)載的方案,進(jìn)而提升網(wǎng)絡(luò)的服務(wù)質(zhì)量.然而,該算法需要遍歷所有可能的組合,計(jì)算復(fù)雜度高,且該方法對(duì)網(wǎng)絡(luò)的優(yōu)化需要將服務(wù)器的位置重新安置,成本需求較高.在通信網(wǎng)絡(luò)中,緩存機(jī)制被認(rèn)為是一種有效的降低網(wǎng)絡(luò)負(fù)載并提高用戶體驗(yàn)的技術(shù)并得到了廣泛的研究.通常,緩存是將一片區(qū)域內(nèi)最流行的內(nèi)容存儲(chǔ)到該區(qū)域內(nèi)的服務(wù)器[84],當(dāng)用戶提出請(qǐng)求瀏覽該內(nèi)容時(shí),可以就近從本地服務(wù)器上獲取,進(jìn)而降低傳輸時(shí)延,并且避免大量請(qǐng)求造成的通信過載.

        為了更有效地優(yōu)化微信數(shù)據(jù)傳輸網(wǎng)絡(luò),我們首先基于對(duì)微信轉(zhuǎn)發(fā)行為的特征提取分析微信用戶的行為模式,進(jìn)而利用多種機(jī)器學(xué)習(xí)方法預(yù)測(cè)用戶的轉(zhuǎn)發(fā)行為,分析用戶對(duì)網(wǎng)絡(luò)的需求.接著,我們通過緩存機(jī)制優(yōu)化網(wǎng)絡(luò)性能,并基于仿真平臺(tái)預(yù)測(cè)和評(píng)估網(wǎng)絡(luò)的性能,進(jìn)而驗(yàn)證該方案的效果.

        我們基于文獻(xiàn)[85]公布的微信朋友圈鏈接瀏覽記錄數(shù)據(jù)集分析用戶的行為特征,該數(shù)據(jù)集由大量的五元組構(gòu)成,包含鏈接ID、發(fā)布者ID、瀏覽者ID、瀏覽者地址、瀏覽時(shí)間等內(nèi)容.瀏覽者在瀏覽發(fā)布者發(fā)布的鏈接內(nèi)容時(shí),可能對(duì)感興趣的鏈接進(jìn)行轉(zhuǎn)發(fā),而后轉(zhuǎn)發(fā)者的好友仍可能瀏覽或轉(zhuǎn)發(fā)該鏈接.為了分析微信朋友圈的轉(zhuǎn)發(fā)行為,我們首先對(duì)數(shù)據(jù)集進(jìn)行標(biāo)注,將由轉(zhuǎn)發(fā)產(chǎn)生的數(shù)據(jù)標(biāo)注為1,其他標(biāo)記為0,從而將問題轉(zhuǎn)化為一個(gè)二分類問題[86?87].接著,我們對(duì)能夠有效預(yù)測(cè)用戶行為的特征進(jìn)行提取,數(shù)據(jù)中的特征包括瀏覽日期、持續(xù)瀏覽時(shí)間、瀏覽頁數(shù)、總頁數(shù)、二者之比等.同時(shí),用戶的個(gè)性是對(duì)其轉(zhuǎn)發(fā)與否的重要影響因素,個(gè)別用戶比較傾向于轉(zhuǎn)發(fā)好友的鏈接.為此,我們基于數(shù)據(jù)集計(jì)算生成了一個(gè)新的特征,即用戶的歷史轉(zhuǎn)發(fā)頻度.在此,我們選取3 個(gè)主觀上最有價(jià)值的特征,即持續(xù)瀏覽時(shí)間、瀏覽頁數(shù)/總頁數(shù)、用戶的歷史轉(zhuǎn)發(fā)頻度.

        分類算法的性能一般用準(zhǔn)確率來表示,其定義如式(1)所示,其中,TP、TN、FP、FN 分別表示轉(zhuǎn)發(fā)樣本被正確預(yù)測(cè)數(shù)、未轉(zhuǎn)發(fā)樣本被正確預(yù)測(cè)數(shù)、未轉(zhuǎn)發(fā)樣本被錯(cuò)誤預(yù)測(cè)數(shù)及轉(zhuǎn)發(fā)樣本被正確預(yù)測(cè)數(shù).

        通常,轉(zhuǎn)發(fā)數(shù)據(jù)相比一般的瀏覽數(shù)據(jù)較為稀疏,在本數(shù)據(jù)集中只有2.5% 左右.而為了較高精度的做到提前緩存,我們更關(guān)注轉(zhuǎn)發(fā)數(shù)據(jù)被正確預(yù)測(cè)的比例,即分類模型的召回率:

        隨機(jī)選取一個(gè)鏈接,提取其數(shù)據(jù)記錄并將其分為訓(xùn)練集和測(cè)試集,基于不同的特征組合和分類算法,我們得到轉(zhuǎn)發(fā)預(yù)測(cè)的召回率如表5 所示.表中未列出的特征和分類算法組合不能正確分類轉(zhuǎn)發(fā)與未轉(zhuǎn)發(fā)數(shù)據(jù),由預(yù)測(cè)結(jié)果可知,基于瀏覽時(shí)間和歷史轉(zhuǎn)發(fā)頻度,以支持向量機(jī)(Support vector machine,SVM)作為分類器可以達(dá)到最高的分類性能,其預(yù)測(cè)召回率高達(dá)92.07%.因此,這兩類簡單的社交網(wǎng)絡(luò)特征可以幫助我們精準(zhǔn)預(yù)測(cè)用戶的轉(zhuǎn)發(fā)行為,進(jìn)而為網(wǎng)絡(luò)優(yōu)化提供參考.

        表5 轉(zhuǎn)發(fā)預(yù)測(cè)召回率Table 5 Recall rate of retweet prediction

        基于對(duì)用戶行為和網(wǎng)絡(luò)需求的精準(zhǔn)分析,可以通過將數(shù)據(jù)預(yù)先緩存至轉(zhuǎn)發(fā)者附近的服務(wù)器,降低后續(xù)瀏覽者的訪問時(shí)延,優(yōu)化網(wǎng)絡(luò)的服務(wù).為了驗(yàn)證該方案的效果,我們選取了一段時(shí)間內(nèi)某鏈接的瀏覽記錄進(jìn)行了簡化處理.本實(shí)驗(yàn)通過OPNET 仿真軟件進(jìn)行了對(duì)比仿真,對(duì)相應(yīng)的時(shí)延和本地服務(wù)器吞吐量進(jìn)行了分析.在該實(shí)驗(yàn)中,共有50 個(gè)不同省市的節(jié)點(diǎn)向位于北京的發(fā)布者本地服務(wù)器請(qǐng)求數(shù)據(jù),其中,有16 個(gè)節(jié)點(diǎn)為位于廣東的轉(zhuǎn)發(fā)者的本地跟隨者,根據(jù)以上設(shè)計(jì),本實(shí)驗(yàn)設(shè)定了兩種實(shí)驗(yàn)場(chǎng)景,一種為所有節(jié)點(diǎn)向北京本地服務(wù)器發(fā)送請(qǐng)求,另一種為基于轉(zhuǎn)發(fā)預(yù)測(cè)結(jié)果將數(shù)據(jù)緩存至廣州本地服務(wù)器,跟隨者節(jié)點(diǎn)向轉(zhuǎn)發(fā)者本地服務(wù)器發(fā)送請(qǐng)求.網(wǎng)絡(luò)為客戶機(jī)/服務(wù)器模式,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為星型,服務(wù)器節(jié)點(diǎn)模型選擇Sm_Int_server,客戶機(jī)節(jié)點(diǎn)模型為Sm_Int_wkstn,網(wǎng)絡(luò)業(yè)務(wù)為Light database 業(yè)務(wù),鏈路帶寬為10 Mbps,仿真時(shí)間設(shè)置為30 分鐘.

        兩種方式的整體時(shí)延和北京本地服務(wù)器的負(fù)載分別如圖7(a)和7(b)所示.可見,基于轉(zhuǎn)發(fā)預(yù)測(cè)及緩存方法,可以有效降低用戶的平均訪問時(shí)延,同時(shí),服務(wù)器的負(fù)載得以均衡化,有利于整體提升網(wǎng)絡(luò)的利用率和服務(wù)質(zhì)量.因此,基于計(jì)算實(shí)驗(yàn)方法,能夠基于數(shù)據(jù)有效解析用戶的網(wǎng)絡(luò)需求,并評(píng)估網(wǎng)絡(luò)優(yōu)化方案的效果,以此指導(dǎo)實(shí)際網(wǎng)絡(luò)的優(yōu)化.

        5.4 小結(jié)與討論

        本節(jié)介紹了平行網(wǎng)絡(luò)架構(gòu)及其計(jì)算實(shí)驗(yàn)方法,該方法基于實(shí)際網(wǎng)絡(luò)數(shù)據(jù)建模人工網(wǎng)絡(luò),并進(jìn)一步生成完備的人工網(wǎng)絡(luò)大數(shù)據(jù),同時(shí),它可以基于社會(huì)信號(hào)解析用戶的網(wǎng)絡(luò)需求,基于特定的目標(biāo)從人工網(wǎng)絡(luò)大數(shù)據(jù)和實(shí)際網(wǎng)絡(luò)數(shù)據(jù)中學(xué)習(xí)和訓(xùn)練針對(duì)具體場(chǎng)景的網(wǎng)絡(luò)優(yōu)化方案.基于微信朋友圈轉(zhuǎn)發(fā)預(yù)測(cè)和內(nèi)容緩存的網(wǎng)絡(luò)優(yōu)化實(shí)驗(yàn)證明計(jì)算實(shí)驗(yàn)方法可以有效提升網(wǎng)絡(luò)的服務(wù)能力,更好地滿足用戶的需要.

        圖7 傳統(tǒng)網(wǎng)絡(luò)與計(jì)算實(shí)驗(yàn)優(yōu)化性能對(duì)比Fig.7 Performance comparison of traditional method and parallel network computational experiment

        6 總結(jié)與展望

        網(wǎng)絡(luò)仿真技術(shù)為網(wǎng)絡(luò)設(shè)計(jì)、開發(fā)和診斷提供了強(qiáng)有力的工具.本文全面調(diào)研了主流的通用型網(wǎng)絡(luò)仿真平臺(tái),對(duì)各種軟件的主要特點(diǎn)和技術(shù)基礎(chǔ)進(jìn)行了介紹,并對(duì)比分析了不同平臺(tái)的優(yōu)缺點(diǎn).同時(shí),本文還對(duì)網(wǎng)絡(luò)仿真技術(shù)的主要問題和發(fā)展趨勢(shì)進(jìn)行了分析,在此基礎(chǔ)上介紹了基于ACP 方法的平行網(wǎng)絡(luò)架構(gòu),并重點(diǎn)介紹了其計(jì)算實(shí)驗(yàn)平臺(tái).

        平行網(wǎng)絡(luò)有效提升了網(wǎng)絡(luò)的靈活性及自適應(yīng)優(yōu)化能力,其計(jì)算實(shí)驗(yàn)方法綜合仿真、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)及知識(shí)自動(dòng)化等技術(shù),以可計(jì)算、可比較、可實(shí)現(xiàn)的方式解析復(fù)雜的網(wǎng)絡(luò)系統(tǒng),為未來網(wǎng)絡(luò)的智能管理和控制提供了新思路及方法.

        此外,網(wǎng)絡(luò)系統(tǒng)是一個(gè)涉及到多方個(gè)體的復(fù)雜系統(tǒng),與用戶的主觀和客觀因素有很大關(guān)系.ACP方法中基于多智能體的建模方式能夠有效模擬各種個(gè)體的行為及其相互影響,為車聯(lián)網(wǎng)等多種網(wǎng)絡(luò)系統(tǒng)的規(guī)劃、管理和資源分配等提供適應(yīng)的解決方案,使網(wǎng)絡(luò)從“人適應(yīng)系統(tǒng)”向“系統(tǒng)適應(yīng)人”轉(zhuǎn)變.平行網(wǎng)絡(luò)系統(tǒng)作為一個(gè)集成驗(yàn)證平臺(tái),必將成為未來網(wǎng)絡(luò)系統(tǒng)發(fā)展的一個(gè)重要方向,為不斷發(fā)展的網(wǎng)絡(luò)業(yè)務(wù)需求,特別是智聯(lián)網(wǎng)[88?89]的需求提供有力支持.

        猜你喜歡
        軟件節(jié)點(diǎn)優(yōu)化
        CM節(jié)點(diǎn)控制在船舶上的應(yīng)用
        超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
        禪宗軟件
        英語文摘(2021年10期)2021-11-22 08:02:26
        Analysis of the characteristics of electronic equipment usage distance for common users
        民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        基于AutoCAD的門窗節(jié)點(diǎn)圖快速構(gòu)建
        軟件對(duì)對(duì)碰
        抓住人才培養(yǎng)的關(guān)鍵節(jié)點(diǎn)
        老男人久久青草AV高清| 亚洲成av人综合在线观看| 国产男女猛烈无遮挡免费网站| 荡女精品导航| 果冻国产一区二区三区| 一区二区三区四区黄色av网站 | 成人久久黑人中出内射青草| 人妻插b视频一区二区三区| 国产女精品视频网站免费| 无码伊人久久大蕉中文无码| 日本一区二区三区经典视频| 日本少妇浓毛bbwbbwbbw| 亚洲成色在线综合网站| 九月色婷婷免费| 日本免费久久高清视频| 少妇人妻综合久久中文字幕| 精精国产xxxx视频在线| 亚洲av套图一区二区| 国产一区av男人天堂| 日韩亚洲欧美中文在线| 日本丰满妇人成熟免费中文字幕| av免费网站不卡观看| www婷婷av久久久影片| 丰满人妻被黑人中出849| 囯产精品无码一区二区三区AV| av高潮一区二区三区| 男人边做边吃奶头视频 | 久久av一区二区三区黑人| 成 人片 黄 色 大 片| 99久久免费精品高清特色大片| 国产精品一区二区午夜久久| 国产一区二区三区视频在线观看 | 99久久久无码国产精品6| 国产精品原创巨作av无遮| 精品国产一区二区av麻豆不卡| 久久国产劲爆∧v内射-百度| 国产999精品久久久久久| 国产精品亚洲一区二区极品| 精品视频在线观看日韩| 撕开奶罩揉吮奶头视频| www.91久久|