高速IP網(wǎng)絡(luò)流量測量系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
高速IP網(wǎng)絡(luò)流量測量系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
高速IP網(wǎng)絡(luò)流量測量系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
高速IP網(wǎng)絡(luò)流量測量系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
高速IP網(wǎng)絡(luò)流量測量系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGE2高速IP網(wǎng)絡(luò)流量測量系統(tǒng)的設(shè)計與實現(xiàn)摘要:網(wǎng)絡(luò)流量測量是網(wǎng)絡(luò)流量分析建模的基礎(chǔ),也是網(wǎng)絡(luò)性能監(jiān)測的主要方法。不斷提高的網(wǎng)絡(luò)帶寬,使網(wǎng)絡(luò)流量測量面臨很大的困難。本文在分析傳統(tǒng)網(wǎng)絡(luò)流量測量系統(tǒng)存在的問題的基礎(chǔ)上,采用零拷貝分組捕獲和裸設(shè)備存儲(零拷貝存儲)等關(guān)鍵技術(shù),設(shè)計并實現(xiàn)了一個被動式網(wǎng)絡(luò)流量測量系統(tǒng),使系統(tǒng)性能得到大幅提高,并具有較好的時間精確度。關(guān)鍵詞:網(wǎng)絡(luò)流量測量;分組捕獲;零拷貝;裸設(shè)備;TSC(TimestampCounter)時間戳DesignandImplementationofaHigh-speedNetworkTrafficMeasurementSystemWangFeng-Yu***,YunXiao-Chun****,ShenWei-Dong*****(ResearchCenterofInformationIntelligentandInformationSecurity,InstituteofComputingTechnology,ChineseAcademyofSciences,Beijing100080)**(GraduateUniversityofChineseAcademyofScience,Beijing100039)***(ResearchCenterofComputerNetworkandInformationSecurityTechnology,HarbinInstituteofTechnology,Harbin,150001)****(InstituteofElectronicandinformationEngineering,Xi’anJiaotongUniversity,Xi’AbstractThroughanalyzingtheproblemsoftraditionalnetworktrafficmeasurementsystem,apassivenetworktrafficmeasurementsystemisdesignedbasedonzero-copypacketcapture,rawdevicestorageandsoon.Theperformanceandtheprecisionofnetworktrafficmeasurementareimprovedgreatly.Thissystemissuitableforthetrafficmeasurementof1Gb/snetwork.Keywordnetworktrafficmeasurement;packetcapture;zerocopy;rawdevice;TSC(TimestampCounter)引言Internet的服務(wù)類型不斷增多,業(yè)務(wù)量成倍增長,對網(wǎng)絡(luò)服務(wù)質(zhì)量的要求也越來越高,好的服務(wù)質(zhì)量依賴于網(wǎng)絡(luò)的規(guī)劃設(shè)計,以及運行時的控制和調(diào)整,而這些都要以真實網(wǎng)絡(luò)流量的測量和分析為基礎(chǔ)。網(wǎng)絡(luò)流量測量在網(wǎng)絡(luò)規(guī)劃、故障診斷、應(yīng)用與協(xié)議性能等方面都有重要意義。當(dāng)前大部分被動網(wǎng)絡(luò)流量測量軟件解決方案是基于UNIX/LINUX提供的Libpcap庫,Libpcap是一個與實現(xiàn)無關(guān)的訪問操作系統(tǒng)所提供的分組捕獲機制的分組捕獲函數(shù)庫,廣泛應(yīng)用的網(wǎng)絡(luò)監(jiān)聽程序TCPDUMP就是在它基礎(chǔ)上開發(fā)的。操作系統(tǒng)所提供的分組捕獲機制主要有三種:BPF(BSD分組過濾器)[1],DLPI(數(shù)據(jù)鏈路提供程序接口),及Linux下的SOCK_PACKET類型套接口,它們的實現(xiàn)機制基本類似。但這一類型的已有測量工具在性能方面有一定的局限性,一方面由于分組傳輸過程中一些關(guān)鍵通信路徑(如系統(tǒng)調(diào)用,內(nèi)存數(shù)據(jù)拷貝等)的存在,導(dǎo)致Libpcap平臺本身效率不高;另一方面,帶寬的提高,對流量數(shù)據(jù)的時間精確度及存儲速率和空間也提出了更高的要求。清華大學(xué)針對Libpcap的性能問題作了一些改進[2],但由于測量目的不同,其中還是存在一些影響性能的因素?;谶@種狀況,很多研究機構(gòu)致力于基于硬件設(shè)備的流量測量系統(tǒng),把數(shù)據(jù)采集和時間戳等部分功能集中在專用捕包卡上[3][4]?;谟布慕鉀Q方案具有很好的性能和時間精確度,但是這類方案與軟件解決方案相比成本高、難以發(fā)布、靈活性不好。如何在有限的硬件支持下,解決傳統(tǒng)網(wǎng)絡(luò)流量測量中存在的關(guān)鍵問題,提高流量測量系統(tǒng)的性能,是我們的主要目標(biāo)。本文第二部分分析了高速網(wǎng)絡(luò)流量測量中存在的問題,并給出了相應(yīng)的解決方案,包括基于零拷貝的分組捕獲平臺、裸設(shè)備存儲方案以及基于TSC計數(shù)器的硬件時鐘等;第三部分在千兆網(wǎng)絡(luò)環(huán)境對該系統(tǒng)進行了測試評估;最后對網(wǎng)絡(luò)流量測量系統(tǒng)作了總結(jié)。2.高速IP流量測量系統(tǒng)設(shè)計被動網(wǎng)絡(luò)流量測量包括三個基本處理/傳輸環(huán)節(jié),首先數(shù)據(jù)從網(wǎng)卡傳送到應(yīng)用程序空間;然后進行字段提取及在線統(tǒng)計;最后傳送到到存儲設(shè)備。其中第一和第三個環(huán)節(jié)是整個系統(tǒng)的關(guān)鍵所在,處理不好,就會成為整個系統(tǒng)的瓶頸。通過分析可知,在高速網(wǎng)絡(luò)流量測量中面臨的的幾個關(guān)鍵問題是:分組捕獲的效率;高精度時間的獲?。煌话l(fā)流量緩沖;高速數(shù)據(jù)存儲。我們在分析和解決這些問題的基礎(chǔ)上,設(shè)計了基于雙零拷貝的高速網(wǎng)絡(luò)流量測量系統(tǒng)DZC-TMS(DoubleZero-CopyTrafficMeasurementSystem),系統(tǒng)的設(shè)計和實現(xiàn)是基于Linux操作系統(tǒng)的,系統(tǒng)模型如圖1所示,下面小節(jié)分別對各個部分加以說明。 圖1.基于雙零拷貝的高速網(wǎng)絡(luò)流量測量系統(tǒng)模型2.1基于零拷貝的分組捕獲平臺 在傳統(tǒng)的流量測量工具中,數(shù)據(jù)從網(wǎng)卡到應(yīng)用程序空間的過程多數(shù)是基于類似Libpcap的分組捕獲模型實現(xiàn)的。這種分組捕獲模型如圖2(a)所示(內(nèi)核部分我們以BPF為例[1])。在這種模型中數(shù)據(jù)傳輸是通過操作系統(tǒng)內(nèi)核來完成的,網(wǎng)絡(luò)分組到達后,首先以DMA方式傳送到內(nèi)核緩沖區(qū),并發(fā)出硬中斷,網(wǎng)卡驅(qū)動在硬中斷處理程序中把到達的分組提交給BPF分組過濾器,經(jīng)分組過濾器經(jīng)過濾后才到達用戶空間,其中存在很多影響系統(tǒng)性能的因素:數(shù)據(jù)分組通過單分組驅(qū)動機制從內(nèi)核空間向用戶空間傳送,效率不高;用戶進程頻繁的系統(tǒng)調(diào)用,消耗大量的資源;處理過程中經(jīng)過了從網(wǎng)卡到內(nèi)核緩沖區(qū),再從BPF拷貝到用戶空間緩沖區(qū)的過程,內(nèi)存拷貝操作要消耗大量的CPU周期和內(nèi)存資源。為了提高高速網(wǎng)絡(luò)環(huán)境下分組捕獲的性能,有必要減少分組傳輸過程的中間環(huán)節(jié)、減少或消除數(shù)據(jù)拷貝次數(shù)。由此我們設(shè)計從一個塊的起始地址開始,最簡單的方法就是通過Linux下的函數(shù)調(diào)用valloc()來分配從塊的起始地址開始的緩沖區(qū),同時要求存儲區(qū)的大小是塊的大小的倍數(shù)。由于使用裸設(shè)備避免了經(jīng)過Linux文件系統(tǒng)層,數(shù)據(jù)直接在磁盤和應(yīng)用程序之間進行傳輸,所以在磁盤讀寫非常頻繁,以至于磁盤讀寫成為系統(tǒng)瓶頸的情況下,采用裸設(shè)備可以大大提高磁盤訪問速度。由于裸設(shè)備使用的是原始分區(qū),沒有采用文件系統(tǒng)的管理方式,Linux維護文件系統(tǒng)的開銷也都沒有了,這也能夠有效減少CPU和內(nèi)存的消耗。為了對裸設(shè)備的性能加以驗證,我們使用CPU主頻1.7G,內(nèi)存為128MB的微機,在同一塊硬盤上對裸設(shè)備和Linux文件系統(tǒng)管理下的文件作同樣的寫操作,連續(xù)寫入1GB數(shù)據(jù),結(jié)果對比如表-1所示,裸設(shè)備無論在速率還是資源占用上,都有優(yōu)勢,當(dāng)然裸設(shè)備同時也帶來了管理和操作上的困難,但在特定系統(tǒng)中,這是次要的。LLinux文件系統(tǒng)裸設(shè)備寫入速率(MB/sec)占用CPU百分比(%)11.57526.32 3.375表1.裸設(shè)備與Linux文件系統(tǒng)寫入性能對比3.系統(tǒng)性能測試系統(tǒng)測試環(huán)境的配置為:雙CPU-PⅣ2.0G;4G內(nèi)存;RedHatLinux7.2-2.4.18-smp5操作系統(tǒng)+RTLinux內(nèi)核模塊;IntelPro1000千兆以太網(wǎng)卡;Ultra160-SCSI硬盤。為了對測試結(jié)果加以量化,我們用RouterTester作為發(fā)包機,控制分組長度和發(fā)包速度,在不同分組長度條件下,提高發(fā)包速度,記錄發(fā)生丟包之前達到的最高發(fā)包速度。同時作為比較,我們用傳統(tǒng)的Libpcap和Linux文件系統(tǒng)替換了零拷貝分組捕獲和裸設(shè)備存儲,做了同樣的測試,測試結(jié)果如圖3所示,DZC-TMS系統(tǒng)的最高測量速度隨著分組長度的增加,快速提高,當(dāng)分組長度為512字節(jié)時最高測量速率就可以達到約950Mb/s,此后基本不再有提高;而基于Libpcap和文件系統(tǒng)的流量測量系統(tǒng)的最高測量速度隨著分組長度的增加提高不大,沒有超過250Mb/s。DZC-TMS流量測量系統(tǒng)在總體性能上遠遠高于傳統(tǒng)的流量測量方法。 圖3.兩種流量測量系統(tǒng)的性能對比在現(xiàn)有測試條件下,系統(tǒng)的瓶頸位于分組捕獲部分,也就是說在達到最高測量速度時,在分組捕獲部分首先出現(xiàn)丟包現(xiàn)象。我們在實際網(wǎng)絡(luò)中采用旁路監(jiān)聽方式采集了電信及教育網(wǎng)千兆網(wǎng)絡(luò)出口的流量,系統(tǒng)運行穩(wěn)定,沒有出現(xiàn)丟包的現(xiàn)象,完全能夠滿足千兆網(wǎng)絡(luò)的流量測量需求。前面部分我們介紹了基于TSC時間戳可以達到納秒級精確度,這里我們通過實驗分析其執(zhí)行性能以及網(wǎng)絡(luò)分組到達的時間精確度。我們測試了TSC時間獲取和通過系統(tǒng)調(diào)用gettimeofday()獲取時間的效率,在現(xiàn)有測試條件下,執(zhí)行一次gettimeofday()所用的時間大約是520ns,而執(zhí)行TSC時間獲取所用的時間大約是32ns,二者的性能差別是明顯的。由于使用了SMP(SymmetricMulti-Processor)系統(tǒng)和實時操作系統(tǒng)模塊RTLinux,任務(wù)分派到不同的CPU,而且設(shè)置分組輪詢進程為高優(yōu)先級,所以進程調(diào)度對時間精確度影響可以控制在微秒級。由于網(wǎng)絡(luò)流量研究一般是在一定的時間尺度范圍內(nèi)的[10],所以微秒級的時間精確度基本能夠滿足千兆網(wǎng)測量需求。4.結(jié)束語本文在分析傳統(tǒng)網(wǎng)絡(luò)流量測量方法所存在的問題的基礎(chǔ)上,設(shè)計并實現(xiàn)了基于雙零拷貝的網(wǎng)絡(luò)流量測量系統(tǒng)DZC-TMS,使流量測量系統(tǒng)的性能得到極大提高,能夠滿足千兆網(wǎng)絡(luò)的流量測量需求。當(dāng)然,本系統(tǒng)還存在一些局限性。由于軟件方案的限制,本系統(tǒng)在分組到達時間戳上的精確度還不夠高,這個問題只能在硬件層次解決。要測量更高帶寬的流量,除了采用性能更高的計算機系統(tǒng)以外,分組捕獲和存儲系統(tǒng)之一必然成為整個測量系統(tǒng)中的瓶頸,如果存儲系統(tǒng)成為瓶頸,則可以采用RAID0技術(shù)提高存儲速度,甚至可以設(shè)計一個并行存儲系統(tǒng),通過局域網(wǎng)把存儲任務(wù)分配到多臺計算機;如果分組捕獲成為瓶頸,則需要把網(wǎng)絡(luò)流量分流到不同的測量系統(tǒng)。當(dāng)然這些都需要比較高的成本。在高速網(wǎng)絡(luò)流量測量中采用適當(dāng)采樣和壓縮技術(shù)而又不丟失流量特征,將會極大緩解帶寬提高帶來的壓力,是下一步重點研究的方向。網(wǎng)絡(luò)帶寬不斷提高,網(wǎng)絡(luò)流量測量的難度會越來越大,而網(wǎng)絡(luò)性能的提高會越來越和網(wǎng)絡(luò)流量的研究緊密結(jié)合,網(wǎng)絡(luò)流量測量技術(shù)需要持續(xù)的研究和提高。參考文獻:[1]S.McCanneandV.Jacobson.TheBSDpacketfilter:Anewarchitecture.foruser-levelpacketcapture,”In:ProcofUSENIXWinterConf,Jan1993.259–269,.[2]李志春,張輝,有悅等.高速主干網(wǎng)測量系統(tǒng)的設(shè)計與實現(xiàn).計算機工程,2003.29(1):53-55[3]J.Cleary,S.Donnelly,I.Graham,A.McGregor,M.Pearson.DesignPrinciplesforAccuratePassivemeasurement,In:PassiveandActiveMeasurementWorkshop,Hamilton(NewZealand),April2000.[4]Micheel,J.,S.Donnelly,andI.Graham.PrecisionTimestampingforNetworkPackets.In:ProceedingsoftheACMSIGCOMMInternetMeasurementWorkshop,SanFrancisco,California,Nov.2001[5]王佰靈,方濱興,云曉春.零拷貝報文捕獲平臺的研究與實現(xiàn),計算機學(xué)報,2005.28(1):46-52[6]楊武,方濱興,云曉春等.基于Linux系統(tǒng)的報文捕獲技術(shù)研究.計算機工程與應(yīng)用,2003(26):28-30[7]田志宏,方斌興,云曉春.RTLinux下基于半輪詢驅(qū)動的用戶級報文傳輸機制.軟件學(xué)報,2004.15(6):834-841[8]W.E.LelandandD.V.Wilson.Hightime-resolutionmeasurementandanalysisoflantraffic:Implicationsforlaninterconnections.In:IEEEInfocom’91.13

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論