隨著網(wǎng)絡(luò)的不斷發(fā)展,網(wǎng)絡(luò)的研究也越來(lái)越受到人們的關(guān)注,一方面需要不斷研究新的網(wǎng)絡(luò)協(xié)議和各種算法,滿足現(xiàn)有網(wǎng)絡(luò)存在的不足,提升性能,為網(wǎng)絡(luò)發(fā)展做出前瞻性的研究;另一方面也要考慮如何整合、利用現(xiàn)有的網(wǎng)絡(luò)資源,完善網(wǎng)絡(luò)結(jié)構(gòu),使現(xiàn)有網(wǎng)絡(luò)達(dá)到最高效能。IP網(wǎng)絡(luò)性能的分析是實(shí)現(xiàn)以上兩個(gè)方面的重要手段。
一般而言,在進(jìn)行網(wǎng)絡(luò)性能分析的研究時(shí)一般有以下3種手段:分析方法、實(shí)驗(yàn)方法和仿真方法。采用網(wǎng)絡(luò)仿真,網(wǎng)絡(luò)仿真就是用計(jì)算機(jī)程序?qū)W(wǎng)絡(luò)進(jìn)行模型化,通過(guò)程序的運(yùn)行模擬仿真網(wǎng)絡(luò)的運(yùn)行過(guò)程。網(wǎng)絡(luò)仿真利用數(shù)學(xué)建模和統(tǒng)計(jì)分析的方法模擬網(wǎng)絡(luò)行為,通過(guò)建立網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)鏈路的統(tǒng)計(jì)模型,模擬網(wǎng)絡(luò)流量的傳輸,從而獲取網(wǎng)絡(luò)設(shè)計(jì)及優(yōu)化所需要的網(wǎng)絡(luò)性能數(shù)據(jù)。
筆者主要研究不同網(wǎng)絡(luò)拓?fù)鋵?duì)IP網(wǎng)絡(luò)性能的影響,選用網(wǎng)絡(luò)模擬軟件NS2進(jìn)行仿真分析。通過(guò)對(duì)四種典型網(wǎng)絡(luò)拓?fù)涞难訒r(shí)、抖動(dòng)、丟包率和吞吐量等關(guān)鍵性能指標(biāo)的提取,進(jìn)而進(jìn)行相應(yīng)的研究和探討。
1 網(wǎng)絡(luò)仿真軟件NS2
NS2即Network Simulator Version 2,是由美國(guó)加州Lawrence Berkeley國(guó)家實(shí)驗(yàn)室等單位開(kāi)發(fā)的開(kāi)源免費(fèi)網(wǎng)絡(luò)仿真軟件。NS2是一個(gè)面向?qū)ο、可擴(kuò)展的離散事件驅(qū)動(dòng)的網(wǎng)絡(luò)仿真器,其核心部分是一個(gè)離散事件模擬引擎。NS2仿真器具有強(qiáng)大的數(shù)據(jù)處理功能,可擴(kuò)展性強(qiáng),執(zhí)行效率高,且仿真結(jié)果的可靠性高。NS2支持TCP、UDP等網(wǎng)絡(luò)協(xié)議,可以模擬網(wǎng)絡(luò)數(shù)據(jù)傳輸如FTP、CBR等以及路由隊(duì)列的管理機(jī)制如DropTa il,RED和CBQ等。同時(shí),NS2可以進(jìn)行無(wú)線通信網(wǎng)絡(luò)和衛(wèi)星網(wǎng)絡(luò)的仿真,以及多播和MAC層上協(xié)議的仿真。
NS2具有一個(gè)模擬時(shí)鐘,同時(shí)又有一個(gè)“調(diào)度器”類,負(fù)責(zé)記錄當(dāng)前的時(shí)間,調(diào)度事件隊(duì)列中的事件,提供所需函數(shù)產(chǎn)生新的事件,并指定事件發(fā)生的時(shí)間。
NS2采用分裂對(duì)象模型開(kāi)發(fā)機(jī)制,采用兩級(jí)體系結(jié)構(gòu),NS2將數(shù)據(jù)通道與控制通道的實(shí)現(xiàn)相分離,事件調(diào)度器和大部分基本的網(wǎng)絡(luò)組件對(duì)象后臺(tái)使用C++實(shí)現(xiàn)和編譯,稱為編譯層,主要功能是實(shí)現(xiàn)對(duì)數(shù)據(jù)包的處理;NS2的前端可以說(shuō)是Otcl的腳本解釋器,稱為解釋層,主要功能是對(duì)模擬環(huán)境的配置、建立。在NS2中,通過(guò)TclCL把C++和Otcl兩種語(yǔ)言中的對(duì)象和變量聯(lián)系起來(lái),一個(gè)Otcl對(duì)象映射到一個(gè)C++對(duì)象上,呈現(xiàn)一一對(duì)應(yīng)的形式。
NS2對(duì)于網(wǎng)絡(luò)的仿真也分為兩個(gè)層次:一個(gè)是基于OTcl編程的層次,也就是只需編寫OTcl腳本來(lái)進(jìn)行仿真,無(wú)需改動(dòng)C++定義的各種已有的網(wǎng)絡(luò)元素。另一個(gè)是基于C++和OTcl編程的層次,即如果在NS2中找不到仿真所需的網(wǎng)絡(luò)元素,則要對(duì)NS2進(jìn)行擴(kuò)展,包括使用C++添加新的類以滿足所需的網(wǎng)絡(luò)元素以及修改Otcl腳本,然后進(jìn)行仿真。在仿真過(guò)程中同時(shí)開(kāi)啟Trace跟蹤文件,記錄仿真過(guò)程中各種網(wǎng)絡(luò)元素的變化或出現(xiàn)的現(xiàn)象,以便仿真結(jié)束后利用各種分析工具提取追蹤文件中各種相關(guān)的參數(shù)數(shù)據(jù)并對(duì)其進(jìn)行分析。
2 IP網(wǎng)絡(luò)及其性能指標(biāo)
2.1 IP網(wǎng)絡(luò)簡(jiǎn)介
IP是英文Internet Protocol的縮寫,即網(wǎng)絡(luò)之間互連的協(xié)議,中文簡(jiǎn)稱為“網(wǎng)協(xié)”,也就是為計(jì)算機(jī)網(wǎng)絡(luò)相互連接實(shí)現(xiàn)通信及數(shù)據(jù)傳輸而設(shè)計(jì)的協(xié)議。IP網(wǎng)絡(luò)就是指?jìng)鬏斖ㄐ挪捎肨CPIP協(xié)議族的通信網(wǎng)絡(luò)。在因特網(wǎng)中,TCP/IP協(xié)議族是使網(wǎng)上的所有計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)相互通信的一套規(guī)則,規(guī)定了計(jì)算機(jī)在因特網(wǎng)上進(jìn)行通信時(shí)應(yīng)當(dāng)遵守的規(guī)則。
2.2 IP網(wǎng)絡(luò)性能參數(shù)的定義及選取
隨著網(wǎng)絡(luò)的發(fā)展和網(wǎng)絡(luò)技術(shù)的不斷進(jìn)步,人們對(duì)網(wǎng)絡(luò)的要求越來(lái)越高。對(duì)于網(wǎng)絡(luò)性能的分析,成為研究人員對(duì)網(wǎng)絡(luò)進(jìn)行評(píng)價(jià)的重要研究?jī)?nèi)容,也是改善網(wǎng)絡(luò)性能的前提。一般按照屬性分類,性能指標(biāo)可以分為連通性、吞吐量、帶寬、信道利用率、信道容量、帶寬利用率、包損失率、傳輸延時(shí)、延時(shí)抖動(dòng)等。本文仿真實(shí)驗(yàn)中主要對(duì)以下幾個(gè)性能參數(shù)進(jìn)行測(cè)量來(lái)評(píng)估IP網(wǎng)絡(luò)性能:端點(diǎn)到端點(diǎn)的延時(shí)、延時(shí)變化、吞吐量、丟包率。
2.3 影響IP網(wǎng)絡(luò)性能的因素
現(xiàn)代網(wǎng)絡(luò)中,影響網(wǎng)絡(luò)性能的因素很多,包括網(wǎng)絡(luò)設(shè)備影響、人為因素影響等,本文主要研究網(wǎng)絡(luò)傳輸中的影響因素,重點(diǎn)分析總線型、星型、環(huán)型和網(wǎng)型這四種網(wǎng)絡(luò)拓?fù)漕愋蛯?duì)網(wǎng)絡(luò)傳輸性能的影響。
3 仿真實(shí)驗(yàn)的結(jié)果分析
3.1 實(shí)驗(yàn)概述
本次實(shí)驗(yàn)主要對(duì)上文所述的四種網(wǎng)絡(luò)拓?fù)溥M(jìn)行仿真分析。每種拓?fù)淠P桶?個(gè)節(jié)點(diǎn),總線型、星型、網(wǎng)型采用帶寬2 M,鏈路延時(shí)為10 ms,隊(duì)列管理機(jī)制為Droptail的雙向連接,環(huán)型采用帶寬2 M,鏈路延時(shí)為10 ms,隊(duì)列管理機(jī)制為Droptail的單向連接。
在對(duì)網(wǎng)絡(luò)性能分析之前,使用NAM工具演示4種不同網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的仿真過(guò)程,在該仿真實(shí)驗(yàn)中,同時(shí)發(fā)送一個(gè)cbr數(shù)據(jù)流和兩個(gè)ftp數(shù)據(jù)流,性能參數(shù)的分析以cbr數(shù)據(jù)流作為研究對(duì)象。cbr本身是固定數(shù)據(jù)包大小的數(shù)據(jù)源,為了體現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)量的變化,在本次仿真實(shí)驗(yàn)中,對(duì)cbr數(shù)據(jù)源進(jìn)行了設(shè)置,使其在一定時(shí)間內(nèi)可以發(fā)生變化,初始速率為1mb/s,包大小為1 000 B。在2.0 s、3.0 s、4.0 s和5.0 s這4個(gè)時(shí)刻分別將cbr數(shù)據(jù)源改變?yōu)? mb/s,包大小1 000 B、0.5 mb/s,包大小1 000 B、0.5 mb/s,包大小4 000 B、0.5 mb/s包大小2 000 B。
3.2 實(shí)驗(yàn)結(jié)果分析
對(duì)于仿真實(shí)驗(yàn)的結(jié)果分析,首先使用AWK語(yǔ)言編寫提取性能參數(shù),再使用Gnuplot工具繪制性能參數(shù)圖形。
4種不同網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的傳輸延時(shí)如圖1所示。從中可以看出,在網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)目比較少的環(huán)境下,相對(duì)于星型與網(wǎng)型拓?fù)涠,總線型與環(huán)型拓?fù)鋫鬏斞訒r(shí)明顯高出。這是因?yàn)樾切屯負(fù)渲械乃泄?jié)點(diǎn)都連接到同一個(gè)中心節(jié)點(diǎn),連接訪問(wèn)時(shí)只牽涉到一個(gè)節(jié)點(diǎn)和中心節(jié)點(diǎn),控制訪問(wèn)方法較簡(jiǎn)單。網(wǎng)型拓?fù)涞膫鬏敻切皖愃,不用?jīng)過(guò)其他節(jié)點(diǎn)中轉(zhuǎn)。這樣一來(lái),這兩種網(wǎng)絡(luò)的傳輸延時(shí)相對(duì)而言就比較小了。
在cbr數(shù)據(jù)流中加入ftp數(shù)據(jù)流或者cbr數(shù)據(jù)流自身傳輸速率及包大小發(fā)生變化時(shí),4種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的延時(shí)也都發(fā)生了變化,且星型和網(wǎng)型的變化更加明顯,波動(dòng)也相對(duì)較大,說(shuō)明這兩種網(wǎng)路拓?fù)浣Y(jié)構(gòu)在網(wǎng)絡(luò)穩(wěn)定性方面不如總線型與環(huán)型拓?fù)。同時(shí)從總線型和環(huán)型拓?fù)溲訒r(shí)中也可以看出,cbr數(shù)據(jù)流的傳輸速率對(duì)其傳輸延時(shí)的影響比包大小的影響更加明顯。而對(duì)于星型和環(huán)型拓?fù)鋪?lái)說(shuō),這兩者的影響幾乎相同。
4種不同網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的延時(shí)抖動(dòng)如圖2所示。當(dāng)只有cbr數(shù)據(jù)流時(shí),4種拓?fù)浣Y(jié)構(gòu)的延時(shí)抖動(dòng)都接近為零。加入ftp數(shù)據(jù)流后,4種拓?fù)浣Y(jié)構(gòu)的延時(shí)抖動(dòng)都發(fā)生了明顯變化,其中環(huán)型拓?fù)涞难訒r(shí)變化最不明顯,而總線型的延時(shí)變化最明顯,星型和網(wǎng)型的延時(shí)變化次之。同時(shí),從圖中也很明顯地發(fā)現(xiàn),延時(shí)變化分為前后兩個(gè)階段,前一階段是cbr數(shù)據(jù)流傳輸速率在發(fā)生變化,后一階段是cbr數(shù)據(jù)包大小在發(fā)生變化,由此可知數(shù)據(jù)包大小對(duì)延時(shí)抖動(dòng)的影響比數(shù)據(jù)傳輸速率對(duì)延時(shí)抖動(dòng)的影響更為明顯。
4種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的丟包率如圖3所示。從以上4個(gè)圖中很明顯地看出,在環(huán)型拓?fù)浣Y(jié)構(gòu)中,至始至終其丟包率都為零,主要是環(huán)型網(wǎng)絡(luò)采用令牌網(wǎng)機(jī)制,只有擁有“令牌”的設(shè)備才能在網(wǎng)絡(luò)中傳輸數(shù)據(jù),在此過(guò)程中有UDP和TCP兩種不同數(shù)據(jù)流,UDP始終搶占網(wǎng)絡(luò)所以沒(méi)有丟包,但可以預(yù)見(jiàn)TCP肯定出現(xiàn)了丟包。其他3種拓?fù)浣Y(jié)構(gòu)中,丟包現(xiàn)象主要發(fā)生在3 s之前,也就是cbr速率較高的時(shí)候,其中總線型拓?fù)涞膩G包率在2.7%左右,網(wǎng)型拓?fù)涞膩G包率在3.8%左右,而星型拓?fù)涞膩G包率最高,在4.2%左右。
4種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的吞吐量如圖4所示。當(dāng)只有cbr數(shù)據(jù)流時(shí),吞吐量始終維持在1 000 kb/s上,當(dāng)加入ftp數(shù)據(jù)流后,吞吐量發(fā)生明顯變化。環(huán)型拓?fù)浣Y(jié)構(gòu)的吞吐量變化最不明顯,即其網(wǎng)絡(luò)吞吐量最穩(wěn)定。而總線型相對(duì)于其他3種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),其吞吐量始終維持在相對(duì)較低的水平上。星型和網(wǎng)型拓?fù)浣Y(jié)構(gòu)的吞吐量變化比較相似,它們的吞吐量水平與環(huán)型拓?fù)湎喈?dāng),但并沒(méi)有環(huán)型的穩(wěn)定。
通過(guò)對(duì)總線型、星型、環(huán)型和網(wǎng)型這4種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的性能分析,可以知道在網(wǎng)絡(luò)節(jié)點(diǎn)較少的網(wǎng)絡(luò)中,總線型拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)傳輸延時(shí)和延時(shí)抖動(dòng)較大,但其網(wǎng)絡(luò)還比較穩(wěn)定,吞吐量和丟包率都保持在一個(gè)較好的水平上。星型拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò),具有較小的延時(shí)并且吞吐量保持在一個(gè)較好的水平上,但其網(wǎng)絡(luò)不夠穩(wěn)定,延時(shí)抖動(dòng)較大,丟包嚴(yán)重。環(huán)型拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)最穩(wěn)定,雖然傳輸延時(shí)較高,但其延時(shí)抖動(dòng)和網(wǎng)絡(luò)吞吐量都比較穩(wěn)定,且具有很低的丟包率,保證了數(shù)據(jù)的完整傳輸。網(wǎng)型拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)最復(fù)雜,延時(shí)較低,延時(shí)抖動(dòng)較大,吞吐量和丟包率也都保持在一個(gè)中等水平上。
4 結(jié)束語(yǔ)
隨著網(wǎng)絡(luò)的不斷發(fā)展,網(wǎng)絡(luò)結(jié)構(gòu)越來(lái)越復(fù)雜,人們對(duì)網(wǎng)絡(luò)的要求也越來(lái)越高,隨之對(duì)網(wǎng)絡(luò)性能的分析也變得越來(lái)越重要。通過(guò)仿真的的方法模擬網(wǎng)絡(luò)從而了解網(wǎng)絡(luò)各個(gè)方面的性能,在此基礎(chǔ)上,研究人員就可以進(jìn)一步對(duì)網(wǎng)絡(luò)資源進(jìn)行改善,使網(wǎng)絡(luò)資源得到充分利用。同時(shí)也可以通過(guò)了解現(xiàn)有網(wǎng)絡(luò)資源及其存在的問(wèn)題,從而研究和開(kāi)發(fā)新的網(wǎng)絡(luò)協(xié)議,使網(wǎng)絡(luò)更加完善且能夠滿足人們不斷發(fā)展的需求。
作者:趙吉波 周宇 周紅瓊 來(lái)源:電子設(shè)計(jì)工程