高速網(wǎng)絡(luò)流量測(cè)量系統(tǒng)的設(shè)計(jì)-中國(guó)科學(xué)院_第1頁(yè)
高速網(wǎng)絡(luò)流量測(cè)量系統(tǒng)的設(shè)計(jì)-中國(guó)科學(xué)院_第2頁(yè)
高速網(wǎng)絡(luò)流量測(cè)量系統(tǒng)的設(shè)計(jì)-中國(guó)科學(xué)院_第3頁(yè)
高速網(wǎng)絡(luò)流量測(cè)量系統(tǒng)的設(shè)計(jì)-中國(guó)科學(xué)院_第4頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、高速 IP 網(wǎng)絡(luò)流量測(cè)量系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)王風(fēng)宇 1,2, 云曉春 1,3,申偉東 41(中國(guó)科學(xué)院計(jì)算技術(shù)研究所信息智能與信息安全研究中心,北京100080 )2(中國(guó)科學(xué)院研究生院,北京100039)3(哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)網(wǎng)絡(luò)與信息安全技術(shù)研究中心,黑龍江 哈爾濱 150001)4(西安交通大學(xué),電子與信息工程學(xué)院,陜西 西安 710049)摘要: 網(wǎng)絡(luò)流量測(cè)量是網(wǎng)絡(luò)流量分析建模的基礎(chǔ),也是網(wǎng)絡(luò)性能監(jiān)測(cè)的主要方法。不斷提高的網(wǎng)絡(luò)帶寬,使網(wǎng)絡(luò)流量測(cè)量面臨很大的困難。本文在分析傳統(tǒng)網(wǎng)絡(luò)流量測(cè)量系統(tǒng)存在的問(wèn)題的基礎(chǔ)上,采用零拷貝分組捕獲和裸設(shè)備存儲(chǔ)(零拷貝存儲(chǔ))等關(guān)鍵技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)被動(dòng)

2、式網(wǎng)絡(luò)流量測(cè)量系統(tǒng),使系統(tǒng)性能得到大幅提高,并具有較好的時(shí)間精確度。關(guān)鍵詞: 網(wǎng)絡(luò)流量測(cè)量;分組捕獲;零拷貝;裸設(shè)備;TSC(Timestamp Counter) 時(shí)間戳Design and Implementationofa High-speed NetworkTrafficMeasurement SystemWang Feng-Yu* *, Yun Xiao-Chun* *, Shen Wei-Dong*(ResearchCenterof InformationIntelligentand InformationSecurity,Instituteof ComputingTechnolog

3、y, Chinese Academy of Sciences, Beijing 100080)*(Graduate University of Chinese Academy of Science, Beijing 100039)*(ResearchCenterof Computer Network and InformationSecurityTechnology,Harbin Instituteof Technology, Harbin,150001)*(Institute of Electronic and information Engineering, Xian Jiaotong U

4、niversity, Xian710049)Abstract Through analyzing the problems of traditional network traffic measurement system, a passive network traffic measurement system is designed based on zero-copy packet capture, raw device storage and so on. The performance and the precision of network traffic measurement

5、are improved greatly. This system is suitable for the traffic measurement of 1Gb/s network.Keywordnetwork traffic measurement; packet capture; zero copy; raw device; TSC(Timestamp Counter)1. 引言Internet 的服務(wù)類型不斷增多,業(yè)務(wù)量成倍增長(zhǎng),對(duì)網(wǎng)絡(luò)服務(wù)質(zhì)量的要求也越來(lái)越高,好的服務(wù)質(zhì)量依賴于網(wǎng)絡(luò)的規(guī)劃設(shè)計(jì), 以及運(yùn)行時(shí)的控制和調(diào)整, 而這些都要以真實(shí)網(wǎng)絡(luò)流量的測(cè)量和分析為基礎(chǔ)。 網(wǎng)絡(luò)流量測(cè)量在網(wǎng)絡(luò)規(guī)

6、劃、 故障診斷、 應(yīng)用與協(xié)議性能等方面都有重要意義。當(dāng)前大部分被動(dòng)網(wǎng)絡(luò)流量測(cè)量軟件解決方案是基于UNIX/LINUX提供的Libpcap 庫(kù),Libpcap 是一個(gè)與實(shí)現(xiàn)無(wú)關(guān)的訪問(wèn)操作系統(tǒng)所提供的分組捕獲機(jī)制的分組捕獲函數(shù)庫(kù),廣泛應(yīng)用的網(wǎng)絡(luò)監(jiān)聽(tīng)程序 TCPDUMP 就是在它基礎(chǔ)上開(kāi)發(fā)的。操作系統(tǒng)所提供的分組捕獲機(jī)制主要有三種:BPF ( BSD 分組過(guò)濾器)1 , DLPI( 數(shù)據(jù)鏈路提供程序接口),及Linux下的1SOCK_PACKET 類型套接口,它們的實(shí)現(xiàn)機(jī)制基本類似。但這一類型的已有測(cè)量工具在性能方面有一定的局限性,一方面由于分組傳輸過(guò)程中一些關(guān)鍵通信路徑(如系統(tǒng)調(diào)用, 內(nèi)存數(shù)據(jù)拷貝

7、等)的存在,導(dǎo)致Libpcap 平臺(tái)本身效率不高;另一方面,帶寬的提高,對(duì)流量數(shù)據(jù)的時(shí)間精確度及存儲(chǔ)速率和空間也提出了更高的要求。清華大學(xué)針對(duì)Libpcap 的性能問(wèn)題作了一些改進(jìn) 2 ,但由于測(cè)量目的不同,其中還是存在一些影響性能的因素?;谶@種狀況, 很多研究機(jī)構(gòu)致力于基于硬件設(shè)備的流量測(cè)量系統(tǒng),把數(shù)據(jù)采集和時(shí)間戳等部分功能集中在專用捕包卡上34 。基于硬件的解決方案具有很好的性能和時(shí)間精確度,但是這類方案與軟件解決方案相比成本高、難以發(fā)布、靈活性不好。如何在有限的硬件支持下,解決傳統(tǒng)網(wǎng)絡(luò)流量測(cè)量中存在的關(guān)鍵問(wèn)題,提高流量測(cè)量系統(tǒng)的性能, 是我們的主要目標(biāo)。本文第二部分分析了高速網(wǎng)絡(luò)流量測(cè)

8、量中存在的問(wèn)題,并給出了相應(yīng)的解決方案,包括基于零拷貝的分組捕獲平臺(tái)、裸設(shè)備存儲(chǔ)方案以及基于TSC 計(jì)數(shù)器的硬件時(shí)鐘等; 第三部分在千兆網(wǎng)絡(luò)環(huán)境對(duì)該系統(tǒng)進(jìn)行了測(cè)試評(píng)估;最后對(duì)網(wǎng)絡(luò)流量測(cè)量系統(tǒng)作了總結(jié)。2. 高速 IP 流量測(cè)量系統(tǒng)設(shè)計(jì)被動(dòng)網(wǎng)絡(luò)流量測(cè)量包括三個(gè)基本處理 /傳輸環(huán)節(jié), 首先數(shù)據(jù)從網(wǎng)卡傳送到應(yīng)用程序空間;然后進(jìn)行字段提取及在線統(tǒng)計(jì); 最后傳送到到存儲(chǔ)設(shè)備。 其中第一和第三個(gè)環(huán)節(jié)是整個(gè)系統(tǒng)的關(guān)鍵所在,處理不好, 就會(huì)成為整個(gè)系統(tǒng)的瓶頸。通過(guò)分析可知,在高速網(wǎng)絡(luò)流量測(cè)量中面臨的的幾個(gè)關(guān)鍵問(wèn)題是:分組捕獲的效率;高精度時(shí)間的獲??;突發(fā)流量緩沖;高速數(shù)據(jù)存儲(chǔ)。我們?cè)诜治龊徒鉀Q這些問(wèn)題的基礎(chǔ)上

9、,設(shè)計(jì)了基于雙零拷貝的高速網(wǎng)絡(luò)流量測(cè)量系統(tǒng)DZC-TMS(Double Zero-Copy Traffic Measurement System) ,系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)是基于 Linux 操作系統(tǒng)的,系統(tǒng)模型如圖 1 所示,下面小節(jié)分別對(duì)各個(gè)部分加以說(shuō)明。循環(huán)緩沖區(qū) A循環(huán)緩沖區(qū) B線字 提段 取統(tǒng)及 協(xié)計(jì)用戶空間在 議系統(tǒng)空間零拷貝報(bào)文捕獲裸設(shè)備存儲(chǔ)并加入時(shí)間戳(零拷貝存儲(chǔ))網(wǎng)卡磁盤(pán)圖 1. 基于雙零拷貝的高速網(wǎng)絡(luò)流量測(cè)量系統(tǒng)模型2.1 基于零拷貝的分組捕獲平臺(tái)在傳統(tǒng)的流量測(cè)量工具中,數(shù)據(jù)從網(wǎng)卡到應(yīng)用程序空間的過(guò)程多數(shù)是基于類似Libpcap的分組捕獲模型實(shí)現(xiàn)的。這種分組捕獲模型如圖2(a)所

10、示 (內(nèi)核部分我們以BPF為例 1 )。在這種模型中數(shù)據(jù)傳輸是通過(guò)操作系統(tǒng)內(nèi)核來(lái)完成的,網(wǎng)絡(luò)分組到達(dá)后,首先以DMA 方式傳送到內(nèi)核緩沖區(qū), 并發(fā)出硬中斷,網(wǎng)卡驅(qū)動(dòng)在硬中斷處理程序中把到達(dá)的分組提交給BPF分組過(guò)濾器, 經(jīng)分組過(guò)濾器經(jīng)過(guò)濾后才到達(dá)用戶空間,其中存在很多影響系統(tǒng)性能的因素:數(shù)據(jù)分組通過(guò)單分組驅(qū)動(dòng)機(jī)制從內(nèi)核空間向用戶空間傳送,效率不高;用戶進(jìn)程頻繁的系統(tǒng)調(diào)用,消耗大量的資源;處理過(guò)程中經(jīng)過(guò)了從網(wǎng)卡到內(nèi)核緩沖區(qū),再?gòu)腂PF拷貝到用戶空間緩沖區(qū)的過(guò)程, 內(nèi)存拷貝操作要消耗大量的CPU周期和內(nèi)存資源。為了提高高速網(wǎng)絡(luò)環(huán)境下分組捕2獲的性能, 有必要減少分組傳輸過(guò)程的中間環(huán)節(jié)、減少或消除數(shù)

11、據(jù)拷貝次數(shù)。由此我們?cè)O(shè)計(jì)了零拷貝分組捕獲方案56,其模型如圖 2(b) 所示。零拷貝的基本思想是:數(shù)據(jù)報(bào)從網(wǎng)絡(luò)設(shè)備到用戶程序空間傳遞的過(guò)程中,減少數(shù)據(jù)拷貝次數(shù),減少系統(tǒng)調(diào)用, 降低 CPU在這方面的負(fù)載。實(shí)現(xiàn)零拷貝用到的最主要技術(shù)是DMA 數(shù)據(jù)傳輸、緩沖區(qū)訪問(wèn)同步以及內(nèi)存區(qū)域映射技術(shù)。零拷貝分組捕獲方案主要由三個(gè)部分組成:用戶網(wǎng)絡(luò)接口UNI、內(nèi)核代理模塊、網(wǎng)卡驅(qū)動(dòng)程序。用戶網(wǎng)絡(luò)接口處于用戶空間,用戶網(wǎng)絡(luò)接口UNI 類似于 Libpcap 接口,封裝了底層通信的實(shí)現(xiàn)細(xì)節(jié), 通過(guò)對(duì)用戶網(wǎng)絡(luò)接口UNI 的訪問(wèn), 應(yīng)用進(jìn)程能夠?qū)崿F(xiàn)與網(wǎng)絡(luò)硬件接口之間的零拷貝傳輸。 其他兩部分位于系統(tǒng)空間,內(nèi)核代理負(fù)責(zé)用

12、戶空間的虛擬地址和內(nèi)核空間物理地址轉(zhuǎn)換, 并創(chuàng)建緩沖區(qū)管理隊(duì)列;網(wǎng)卡驅(qū)動(dòng)程序則通過(guò)和內(nèi)核代理的交互修改緩沖區(qū)隊(duì)列狀態(tài),通知分組的到達(dá),并獲取DMA 操作所需的存儲(chǔ)區(qū)的物理地址,提供給DMA 進(jìn)行網(wǎng)絡(luò)分組傳輸。應(yīng)用程序應(yīng)用程序用戶空間緩沖區(qū)Libpcap用戶空間緩沖區(qū)UNI系統(tǒng)空間系統(tǒng)空間BPF分組過(guò)濾器軟中斷處理內(nèi)核代理模塊Sk_buff 收包隊(duì)列DMA網(wǎng)卡驅(qū)動(dòng)硬中斷處理網(wǎng)卡驅(qū)動(dòng)程序內(nèi)核緩沖區(qū)DMA網(wǎng)絡(luò)接口卡網(wǎng)絡(luò)接口卡(a). 傳統(tǒng)分組捕獲模型(b).零拷貝分組捕獲模型圖 2.兩種分組捕獲過(guò)程的比較用戶緩沖區(qū)和網(wǎng)絡(luò)接口之間分組的零拷貝傳輸是通過(guò)網(wǎng)絡(luò)接口DMA 方式來(lái)實(shí)現(xiàn)的。 由于用戶進(jìn)程使用的

13、是虛擬內(nèi)存地址,而網(wǎng)絡(luò)接口直接使用內(nèi)核提供的物理地址,在應(yīng)用程序緩沖區(qū)和網(wǎng)絡(luò)接口之間使用DMA傳輸必須解決用戶緩沖區(qū)的虛擬地址到物理地址的轉(zhuǎn)換問(wèn)題。我們?cè)趹?yīng)用進(jìn)程空間靜態(tài)分配一塊連續(xù)的頁(yè)對(duì)齊的內(nèi)存作為用戶數(shù)據(jù)緩沖區(qū),把用戶數(shù)據(jù)緩沖區(qū)分為2KB 的塊,因?yàn)樵?Linux系統(tǒng)中頁(yè)大小是4KB, 存放數(shù)據(jù)分組的數(shù)據(jù)塊又要大于一個(gè) MTU (最大傳輸單元) ,這樣每頁(yè)只放2 個(gè)數(shù)據(jù)分組, 保證了一個(gè)數(shù)據(jù)分組不會(huì)跨越兩個(gè)頁(yè), 方便了 DMA 操作。用戶進(jìn)程向內(nèi)核代理通告用戶數(shù)據(jù)緩沖區(qū)的起始虛擬地址和緩沖區(qū)大小。 Linux 操作系統(tǒng)為每個(gè)進(jìn)程維護(hù)了一個(gè)三級(jí)頁(yè)表,以實(shí)現(xiàn)虛擬地址到物理地址的轉(zhuǎn)換。內(nèi)核代理利

14、用該三級(jí)頁(yè)表完成虛擬地址頁(yè)到物理地址頁(yè)的轉(zhuǎn)換并將物理頁(yè)面鎖定于內(nèi)存中。我們建立了一個(gè)地址映射表AddrMapTable ,用于存儲(chǔ)虛擬地址頁(yè)和物理地址頁(yè)之間的對(duì)應(yīng)關(guān)系,這個(gè)地址映射表覆蓋了所有用于分組傳輸?shù)挠脩艟彌_塊的物理地址。傳統(tǒng)工作方式下, 網(wǎng)卡通過(guò)硬中斷方式通知分組的到達(dá)。然而中斷響應(yīng)的代價(jià)很高,在高速網(wǎng)絡(luò)下,頻繁的中斷會(huì)使操作系統(tǒng)自陷在中斷響應(yīng)中,形成活鎖。文獻(xiàn)7 中實(shí)現(xiàn)了一種半輪詢機(jī)制, 在大流量情況下使用軟中斷輪詢機(jī)制,否則使用硬中斷機(jī)制,使效率得到了很大提高。 由于流量測(cè)量還要考慮分組到達(dá)時(shí)間的精確度,我們?cè)谶@個(gè)基礎(chǔ)上作了修改,采用純輪詢機(jī)制。零拷貝分組捕獲中分組的傳輸過(guò)程如下:

15、在應(yīng)用進(jìn)程空間靜態(tài)分配用戶數(shù)據(jù)緩沖區(qū),向3內(nèi)核代理通告用戶數(shù)據(jù)緩沖區(qū)的起始虛擬地址和緩沖區(qū)大小。內(nèi)核代理模塊建立了兩個(gè)環(huán)形隊(duì)列用來(lái)管理數(shù)據(jù)緩沖區(qū),接收隊(duì)列RecBusyQ和接收空閑隊(duì)列 RecFreeQ。每個(gè)隊(duì)列都包含了指向用戶緩沖區(qū)數(shù)據(jù)塊的索引。分組到達(dá)網(wǎng)絡(luò)接口卡時(shí),直接以DMA 方式存儲(chǔ)到用戶空間緩沖區(qū), 然后發(fā)出硬中斷。在硬中斷響應(yīng)開(kāi)始,關(guān)閉網(wǎng)卡硬中斷,通過(guò)軟中斷進(jìn)入輪詢操作,如果接收了新的分組, 則往接收隊(duì)列添加分組索引,并從空閑隊(duì)列取得空閑數(shù)據(jù)塊索引,然后通過(guò)地址映射表 AddrMapTable 找到對(duì)應(yīng)的數(shù)據(jù)塊物理地址,提供給網(wǎng)卡驅(qū)動(dòng)程序供以后DMA 使用。接收隊(duì)列、接收空閑隊(duì)列以

16、及地址映射表放在連續(xù)的內(nèi)存空間,然后通過(guò)內(nèi)存映射技術(shù)使應(yīng)用程序也能夠訪問(wèn)。當(dāng)?shù)竭_(dá)的分組達(dá)到一定數(shù)量,喚醒應(yīng)用進(jìn)程, 應(yīng)用進(jìn)程從接收隊(duì)列獲得數(shù)據(jù)塊索引, 得到用戶緩沖區(qū)地址,當(dāng)處理完索引指向的分組后將其添加到接收空閑隊(duì)列。 從內(nèi)核空間到用戶空間的批量分組傳送,減少了用戶進(jìn)程的系統(tǒng)調(diào)用和狀態(tài)切換。2.2 基于 TSC(Timestamp Counter) 的時(shí)間戳分組到達(dá)的時(shí)間精確度對(duì)于流量分析具有重要意義,不論時(shí)間間隔分布, 還是相關(guān)系數(shù)分析, 都需要分組到達(dá)的精確的時(shí)間,否則會(huì)影響流量分析和建模的準(zhǔn)確性?;谟布臏y(cè)量系統(tǒng)在捕包卡上添加了時(shí)間戳功能48 ,效果比較理想,但成本較高,靈活性不好。

17、Linux 操作系統(tǒng)提供的時(shí)間函數(shù)gettimeofday() 最多能夠達(dá)到微秒級(jí)的時(shí)間精確度,TCPDump 程序就是通過(guò)這種方法取得的分組到達(dá)時(shí)間,但這種方法系統(tǒng)調(diào)用過(guò)程比較復(fù)雜。這里我們借助Intel 處理器中的TSC 計(jì)數(shù)器來(lái)獲得時(shí)間戳,開(kāi)機(jī)時(shí) TSC 的記數(shù)器清零, 然后在每個(gè)處理器時(shí)鐘周期都完成一次自增,因此它的精密程度近乎CPU 時(shí)鐘頻率。這個(gè)計(jì)數(shù)器使用一個(gè)64 位的寄存器來(lái)存儲(chǔ),它的長(zhǎng)度可以允許2GHz 的處理器連續(xù)使用292 年而不溢出。這種方法需要特定的模式支持并且與處理器的速度有關(guān),但通過(guò)這個(gè)方法可以有效解決時(shí)間戳的精確度, 而且由于直接訪問(wèn)寄存器, 減少了系統(tǒng)調(diào)用環(huán)節(jié),

18、 還可以最大程度的減小對(duì)系統(tǒng)性能的影響。雖然 TSC可以依 CPU狀況提供精確到納秒級(jí)的時(shí)間,由于網(wǎng)卡的緩存,以及中斷響應(yīng)時(shí)間具有不確定性, 實(shí)際應(yīng)用中精確度不高。 為了最大程度的提高時(shí)間精確度, 我們放棄了中斷和輪詢相結(jié)合的半輪詢機(jī)制, 采用了內(nèi)核全輪詢機(jī)制, 在輪詢獲知分組到達(dá)時(shí)添加時(shí)間戳,這樣在軟件部分得知分組到達(dá)的第一時(shí)間加入時(shí)間戳。同時(shí),我們?cè)贚inux 下采用了實(shí)時(shí)操作系統(tǒng)內(nèi)核模塊RTLinux ,保證了輪詢進(jìn)程的高優(yōu)先級(jí)別, 確保了對(duì)網(wǎng)卡輪詢的精確性。2.3 基于裸設(shè)備的存儲(chǔ)方案提取所需要的數(shù)據(jù)以后,接下來(lái)的問(wèn)題就是如何把數(shù)據(jù)存儲(chǔ)到硬盤(pán)。廣域網(wǎng)網(wǎng)絡(luò)流量具有自相似特征, 也就是說(shuō)在

19、不同的時(shí)間尺度上存在突發(fā)性 9 ,如果沒(méi)有緩沖措施平抑高峰流量的到達(dá), 硬盤(pán)存儲(chǔ)速率難以滿足要求。 我們采取了循環(huán)緩沖方案, 網(wǎng)絡(luò)數(shù)據(jù)采集程序和存儲(chǔ)程序分處不同的線程,放棄了阻塞進(jìn)程的同步方式,當(dāng)循環(huán)緩沖區(qū)滿時(shí),丟棄新到的包,這樣可以防止不必要的阻塞影響系統(tǒng)整體性能。相比于總線速度和內(nèi)存速度,硬盤(pán)存儲(chǔ)速度要低得多,是流量測(cè)量的主要瓶頸。有了內(nèi)存的緩沖作用, 這里可以不考慮網(wǎng)絡(luò)流量峰值,只要求達(dá)到平均速度。根據(jù)需求的不同,網(wǎng)絡(luò)流量測(cè)量只存儲(chǔ)IP 包的一部分字段,隨著存儲(chǔ)字段的增加,對(duì)硬盤(pán)存儲(chǔ)速度的要求也就提高。 DZC-TMS系統(tǒng)中,每個(gè) IP 分組我們存儲(chǔ) 48 字節(jié)( 20 字節(jié) IP 頭+

20、20 字節(jié) TCP 頭 +8字節(jié)時(shí)間戳) 。 DZC-TMS 采用基于裸設(shè)備(raw device )的存儲(chǔ)方案。裸設(shè)備是沒(méi)有建立文件系統(tǒng)的設(shè)備,是一種特殊字符設(shè)備。在Linux 下,把裸設(shè)備綁定到塊設(shè)備(例如磁盤(pán)) ,就可以像訪問(wèn)塊設(shè)備一樣對(duì)裸設(shè)備進(jìn)行讀寫(xiě)操作了。但不同的是,在文件系統(tǒng)方式下,數(shù)據(jù)首先從用戶空間復(fù)制到內(nèi)核空間,然后通過(guò)DMA 執(zhí)行 I/O 操作,而在裸設(shè)備方式下數(shù)據(jù)不再?gòu)?fù)制到內(nèi)核空間,而是 DMA 直接操作用戶緩沖區(qū)的數(shù)據(jù), 所以裸設(shè)備的訪問(wèn)是零拷貝 I/O 。4由于裸設(shè)備的I/O 操作包括對(duì)用戶進(jìn)程存儲(chǔ)區(qū)的直接硬件訪問(wèn),要求用戶進(jìn)程存儲(chǔ)區(qū)要從一個(gè)塊的起始地址開(kāi)始,最簡(jiǎn)單的方

21、法就是通過(guò)Linux 下的函數(shù)調(diào)用valloc() 來(lái)分配從塊的起始地址開(kāi)始的緩沖區(qū),同時(shí)要求存儲(chǔ)區(qū)的大小是塊的大小的倍數(shù)。由于使用裸設(shè)備避免了經(jīng)過(guò)Linux 文件系統(tǒng)層, 數(shù)據(jù)直接在磁盤(pán)和應(yīng)用程序之間進(jìn)行傳輸,所以在磁盤(pán)讀寫(xiě)非常頻繁,以至于磁盤(pán)讀寫(xiě)成為系統(tǒng)瓶頸的情況下,采用裸設(shè)備可以大大提高磁盤(pán)訪問(wèn)速度。由于裸設(shè)備使用的是原始分區(qū),沒(méi)有采用文件系統(tǒng)的管理方式,Linux維護(hù)文件系統(tǒng)的開(kāi)銷(xiāo)也都沒(méi)有了,這也能夠有效減少CPU 和內(nèi)存的消耗。為了對(duì)裸設(shè)備的性能加以驗(yàn)證,我們使用CPU 主頻 1.7G,內(nèi)存為128MB 的微機(jī),在同一塊硬盤(pán)上對(duì)裸設(shè)備和 Linux 文件系統(tǒng)管理下的文件作同樣的寫(xiě)操作

22、,連續(xù)寫(xiě)入1GB 數(shù)據(jù),結(jié)果對(duì)比如表-1所示, 裸設(shè)備無(wú)論在速率還是資源占用上, 都有優(yōu)勢(shì), 當(dāng)然裸設(shè)備同時(shí)也帶來(lái)了管理和操作上的困難,但在特定系統(tǒng)中,這是次要的。寫(xiě)入速率 (MB/sec)占用 CPU 百分比 (%)Linux 文件系統(tǒng)20.8311.575裸設(shè)備26.323.375表 1. 裸設(shè)備與 Linux 文件系統(tǒng)寫(xiě)入性能對(duì)比3. 系統(tǒng)性能測(cè)試系統(tǒng)測(cè)試環(huán)境的配置為:雙CPU-P 2.0G; 4G 內(nèi)存;操作系統(tǒng)+ RTLinux內(nèi)核模塊; Intel Pro 1000 千兆以太網(wǎng)卡;Ultra160-SCSI 硬盤(pán)。為了對(duì)測(cè)試結(jié)果加以量化,我們用 Router Tester 作為發(fā)包

23、機(jī), 控制分組長(zhǎng)度和發(fā)包速度,在不同分組長(zhǎng)度條件下,提高發(fā)包速度, 記錄發(fā)生丟包之前達(dá)到的最高發(fā)包速度。同時(shí)作為比較,我們用傳統(tǒng)的 Libpcap 和 Linux 文件系統(tǒng)替換了零拷貝分組捕獲和裸設(shè)備存儲(chǔ),做了同樣的測(cè)試,測(cè)試結(jié)果如圖 3 所示, DZC-TMS 系統(tǒng)的最高測(cè)量速度隨著分組長(zhǎng)度的增加,快速提高, 當(dāng)分組長(zhǎng)度為512 字節(jié)時(shí)最高測(cè)量速率就可以達(dá)到約950Mb/s ,此后基本不再有提高;而基于 Libpcap 和文件系統(tǒng)的流量測(cè)量系統(tǒng)的最高測(cè)量速度隨著分組長(zhǎng)度的增加提高不大,沒(méi)有超過(guò) 250Mb/s 。DZC-TMS 流量測(cè)量系統(tǒng)在總體性能上遠(yuǎn)遠(yuǎn)高于傳統(tǒng)的流量測(cè)量方法。100090

24、0)s800/b700M(度 600速 500量測(cè)400高300最100064128DZC-TMS傳統(tǒng)方法25651210241500分組長(zhǎng)度( BYTE)圖 3. 兩種流量測(cè)量系統(tǒng)的性能對(duì)比5在現(xiàn)有測(cè)試條件下,系統(tǒng)的瓶頸位于分組捕獲部分,也就是說(shuō)在達(dá)到最高測(cè)量速度時(shí),在分組捕獲部分首先出現(xiàn)丟包現(xiàn)象。我們?cè)趯?shí)際網(wǎng)絡(luò)中采用旁路監(jiān)聽(tīng)方式采集了電信及教育網(wǎng)千兆網(wǎng)絡(luò)出口的流量, 系統(tǒng)運(yùn)行穩(wěn)定, 沒(méi)有出現(xiàn)丟包的現(xiàn)象, 完全能夠滿足千兆網(wǎng)絡(luò)的流量測(cè)量需求。前面部分我們介紹了基于TSC 時(shí)間戳可以達(dá)到納秒級(jí)精確度,這里我們通過(guò)實(shí)驗(yàn)分析其執(zhí)行性能以及網(wǎng)絡(luò)分組到達(dá)的時(shí)間精確度。我們測(cè)試了TSC 時(shí)間獲取和通過(guò)系

25、統(tǒng)調(diào)用gettimeofday() 獲取時(shí)間的效率,在現(xiàn)有測(cè)試條件下,執(zhí)行一次gettimeofday() 所用的時(shí)間大約是 520ns,而執(zhí)行 TSC 時(shí)間獲取所用的時(shí)間大約是 32ns,二者的性能差別是明顯的。由于使用了 SMP(Symmetric Multi-Processor) 系統(tǒng)和實(shí)時(shí)操作系統(tǒng)模塊 RTLinux ,任務(wù)分派到不同的 CPU,而且設(shè)置分組輪詢進(jìn)程為高優(yōu)先級(jí),所以進(jìn)程調(diào)度對(duì)時(shí)間精確度影響可以控制在微秒級(jí)。由于網(wǎng)絡(luò)流量研究一般是在一定的時(shí)間尺度范圍內(nèi)的10 ,所以微秒級(jí)的時(shí)間精確度基本能夠滿足千兆網(wǎng)測(cè)量需求。4. 結(jié)束語(yǔ)本文在分析傳統(tǒng)網(wǎng)絡(luò)流量測(cè)量方法所存在的問(wèn)題的基礎(chǔ)上

26、,設(shè)計(jì)并實(shí)現(xiàn)了基于雙零拷貝的網(wǎng)絡(luò)流量測(cè)量系統(tǒng)DZC-TMS ,使流量測(cè)量系統(tǒng)的性能得到極大提高,能夠滿足千兆網(wǎng)絡(luò)的流量測(cè)量需求。當(dāng)然,本系統(tǒng)還存在一些局限性。由于軟件方案的限制,本系統(tǒng)在分組到達(dá)時(shí)間戳上的精確度還不夠高,這個(gè)問(wèn)題只能在硬件層次解決。要測(cè)量更高帶寬的流量,除了采用性能更高的計(jì)算機(jī)系統(tǒng)以外,分組捕獲和存儲(chǔ)系統(tǒng)之一必然成為整個(gè)測(cè)量系統(tǒng)中的瓶頸,如果存儲(chǔ)系統(tǒng)成為瓶頸,則可以采用RAID0技術(shù)提高存儲(chǔ)速度,甚至可以設(shè)計(jì)一個(gè)并行存儲(chǔ)系統(tǒng),通過(guò)局域網(wǎng)把存儲(chǔ)任務(wù)分配到多臺(tái)計(jì)算機(jī);如果分組捕獲成為瓶頸,則需要把網(wǎng)絡(luò)流量分流到不同的測(cè)量系統(tǒng)。 當(dāng)然這些都需要比較高的成本。 在高速網(wǎng)絡(luò)流量測(cè)量中采用

27、適當(dāng)采樣和壓縮技術(shù)而又不丟失流量特征, 將會(huì)極大緩解帶寬提高帶來(lái)的壓力, 是下一步重點(diǎn)研究的方向。網(wǎng)絡(luò)帶寬不斷提高, 網(wǎng)絡(luò)流量測(cè)量的難度會(huì)越來(lái)越大, 而網(wǎng)絡(luò)性能的提高會(huì)越來(lái)越和網(wǎng)絡(luò)流量的研究緊密結(jié)合,網(wǎng)絡(luò)流量測(cè)量技術(shù)需要持續(xù)的研究和提高。參考文獻(xiàn):1 S. McCanne and V . Jacobson. The BSD packet filter: A new architecture. for user-level packetcapture, In:”P(pán)roc of USENIX Winter Conf, Jan 1993. 259269,.2 李志春,張輝,有悅等. 高速主干網(wǎng)測(cè)量系

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論