《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 網絡數(shù)據(jù)小包吞吐量測試與分析

網絡數(shù)據(jù)小包吞吐量測試與分析

2009-04-10
作者:馬 濤1, 龔榮凡2,

??? 摘? 要: 吞吐量是評價網絡平臺性能的重要指標,,是網絡用戶關注的焦點,,對于不同幀長的以太網數(shù)據(jù)包,網絡平臺的處理能力存在較大差異,,主要體現(xiàn)在處理64B和128B小包數(shù)據(jù)時,吞吐量有明顯的降低,。針對這一問題,,以研祥一款網絡平臺專用主板NET-1715VD4N為測試對象,采用SmartBits 600B測試儀配合SmartFlow,、SmartWindow測試軟件,,進行了網絡吞吐量測試,并分析了造成小包吞吐量降低的原因,。?

??? 關鍵詞: 網絡小包,; 吞吐量

?

??? 隨著Internet的日益普及,企業(yè)內部網用戶訪問Internet的需求在不斷增加,,企業(yè)需要對外提供諸如WWW頁面瀏覽,、FTP文件傳輸、DNS域名解析等服務,,這些因素會導致網絡流量的急劇增加,。如果網絡平臺的吞吐量太小,就會成為網絡瓶頸,,給整個網絡的傳輸效率帶來負面影響,。因此,在對網絡平臺進行性能測試時,,考察吞吐量是一項十分重要的技術指標,,有助于更好地評價其性能表現(xiàn)。?

??? 根據(jù)RFC2544標準,,以太網數(shù)據(jù)包的幀長采用64B,、128B、256B,、512B,、1 024B,、1 280B、1 518B字節(jié),。目前大多數(shù)X86架構網絡平臺在處理256B,、512B、1 024B和1 518B這樣的中,、大包時,,吞吐量大都能近似線速,而處理64B和128B小包的時候,,性能差異立即體現(xiàn),。但是,近年來普及的一些應用,,包括MSN,、QQ、視頻,、線上游戲等,,都是以小包的形式在工作。因此,,人們對網絡平臺的小包數(shù)據(jù)處理能力的關注程度越來越高,。?

??? 本文以網絡小包為研究對象,以研祥一款網絡平臺專用主板NET-1715VD4N為測試對象,,采用SmartBits 600B測試儀配合SmartFlow,、SmartWindow測試軟件,,進行了網絡吞吐量測試,,并著重分析了造成小包吞吐量降低的原因。?

1 吞吐量測試方法?

??? 吞吐量(Throughput)是用來測試網絡設備的包轉發(fā)能力的重要參數(shù),,通常指設備在不丟包條件下的最大傳輸速率,。測試吞吐量的方法主要分為兩類:一類是基于PC軟件的測試,另一類是使用專門的測試儀器進行測試,。由于PC軟件測試的誤差比較大,,而且軟件本身就不成熟,不能真實反映出網絡設備的實際吞吐量大小,,因此大多數(shù)用戶不會采用PC軟件的測試方法,,而是采用專業(yè)測試儀表來進行測試。?

??? 目前業(yè)界普遍采用的測試儀表主要有Smartbits和ixia兩種,,吞吐量的測試原理基本相同,,都是采用二分法,即如果接收數(shù)據(jù)幀數(shù)等于發(fā)送數(shù)據(jù)幀數(shù),,則增加發(fā)送數(shù)據(jù)包的速率,;如果接收數(shù)據(jù)幀數(shù)小于發(fā)送數(shù)據(jù)幀數(shù),,則降低發(fā)送數(shù)據(jù)包的速率。使用二分法來確定發(fā)送數(shù)據(jù)幀數(shù)等于接收數(shù)據(jù)幀數(shù)時的最大發(fā)送數(shù)據(jù)包的速率,,即為網絡吞吐量,。?

??? 本文采用Smartbits 600B測試儀配合SmartFlow、SmartWindow測試軟件進行吞吐量測試,。Smartbits是全球最權威的網絡設備測試儀,,它配合不同的軟件可以測試OSI的2~3層和4~7層。對于網絡安全產品的制造商來說,,一般測試到OSI的2~3層即可,。常用的軟件有SmartWindow、SmartApplications,、SmartFlow,。SmartWindow是虛擬控制面板,SmartApplications是基于RFC2544標準的自動化測試軟件,,SmartFlow是QoS性能及MPLS路由測試軟件,。SmartApplications和SmartFlow都可以測試吞吐量并自動生成一份測試報告。?

2 測試實例?

??? X86架構網絡平臺的網絡性能與軟件和硬件都有直接的聯(lián)系,,其中CPU,、網絡芯片是影響網絡性能的主要因素。此外,,操作系統(tǒng)對于網絡性能也有很大的影響,,Linux系統(tǒng)比Windows系統(tǒng)的網絡性能要好,而Linux系統(tǒng)的內核版本與網卡驅動版本不同,,網絡性能也有比較大的差異,,通過優(yōu)化驅動可以提高網絡性能。?

??? 針對研祥一款網絡安全平臺專用主板NET-1715VD4N,,進行了數(shù)據(jù)包吞吐量的測試與分析,。這款主板主要應用于終端防火墻網絡安全產品中,支持目前主流Intel LGA775處理器,,Pentium4,、Celeron D、Pentium D及Conroe處理器,,前端系統(tǒng)總線最高支持1 066MHz,,搭配Intel 945G芯片組,雙通道DDR2,,最大支持4GB內存,。有4個板載千兆網口,其中LAN1和LAN2采用1片Intel82571,,可實現(xiàn)bypass功能,,LAN3和LAN4采用2片Intel82573E,。配有1個PCI插槽;1個PCI-E×4插槽,,可擴展4個電口或者2個GBIC或者2個SFP,。?

2.1 測試環(huán)境?

??? 測試使用的NET-1715VD4N平臺,搭配了Core 2 Duo E4500的CPU,,主頻2.2GHz,,二級緩存2MB,前端總線800MHz,;內存采用兩根Kingston 1G的DDR2/667,;硬盤采用Seagate SATA接口160G/7200rpm/8M。安裝Linux Fedora Core 6(kernel 2.6.18)操作系統(tǒng),,網口驅動采用FC6自帶的7.1.9版本,,軟件、驅動不進行任何優(yōu)化來做測試,,采用路由模式,。?

??? 測試儀器采用思博倫通信的網絡性能分析儀SmartBits 600B。測試軟件采用SmartFlow,。測試網絡拓撲結構如圖1所示,。?

?

?

??? Linux系統(tǒng)下的設置:?

??? (1) 關閉防火墻和SELinux服務?

??? # /etc/rc.d/init.d/iptables stop?

??? (2) 開啟Linux內核中的ip_forward功能?

??? #echo 1 > /proc/sys/net/ipv4/ip_forward?

??? (3) 設置IP地址 ?

??? #ifconfig eth0 192.168.100.1 netmask 255.255.255.0 up?

??? #ifcofnig eth1 192.168.200.1 netmask 255.255.255.0 up?

??? #ifconfig eth2 192.168.300.1 netmask 255.255.255.0 up?

??? #ifcofnig eth3 192.168.400.1 netmask 255.255.255.0 up?

??? (4) 設置靜態(tài)ARP?

??? #echo‘192.168.100.2 00:00:00:00:00:01’ >> /etc/ethers?

??? #echo‘192.168.200.2 00:00:00:00:00:02’ >> /etc/ethers?

??? #echo‘192.168.300.2 00:00:00:00:00:03’ >> /etc/ethers?

??? #echo‘192.168.400.2 00:00:00:00:00:04’ >> /etc/ethers?

??? #arp -f?

??? 其中,192.168.100.2,、00:00:00:00:00:01是SMB-600B流的源IP和源MAC,。?

2.2 測試結果?

??? 本次測試,測試時間設置為60s,,Acceptable Frame Loss設置為0,,幀長分別為64B、128B,、256B,、512B,、1 024B,、1 280B、1 518B,。?

??? 圖2是測試完成后,,由測試軟件自動生成的NET-1715VD4N平臺Intel82571和Intel82573E雙向吞吐量的測試結果,為了能更清楚地看到測試數(shù)據(jù),,將數(shù)據(jù)整理成表1,。?

?

?

?

??? 從圖2和表1中可以看出,吞吐量與幀長有關,,幀長越長,,其吞吐量越大,。對于LAN1和LAN2兩個網口,處理512B,、1 024B和1 518B的大包時,,吞吐量都達到了線速,沒發(fā)生丟包情況,;處理256B的中包,,吞吐量也非常接近線速;而在處理64B,、128B的小包時,,吞吐量達不到線速,存在不同程度的丟包,。?

2.3 測試結果分析?

??? NET-1715VD4N網絡平臺LAN1,、LAN2網口64B小包的雙向吞吐量接近50%,此時的CPU占用率高達99%,,而1 518B大包的吞吐量可以達到線速100%,,此時的CPU占用率卻只有19%。每一個以太網數(shù)據(jù)幀都包含有6B的目的MAC地址,、6B的源MAC地址,、2B的數(shù)據(jù)類型、46B~1 500B的凈荷以及4個字節(jié)的FCS,。對于64B幀長的數(shù)據(jù)包,,1Gb/s的速率等于1 488 095包/s,而對于1 518B幀長的數(shù)據(jù),,1Gb/s的速率等于81 274包/s,。也就是說,同樣1Gb/s的速率,,CPU響應64字節(jié)幀長的數(shù)據(jù)包中斷要比響應1 518B幀長的數(shù)據(jù)包中斷多得多,。CPU在響應64B數(shù)據(jù)包中斷時,由于無法及時處理全部中斷,,就將部分數(shù)據(jù)包丟棄了,。?

??? 在上述測試中,NET-1715VD4N平臺作為路由模式,,進行三層協(xié)議轉發(fā)來進行測試,。在三層協(xié)議棧轉發(fā)時,占用了CPU大部份資源,。如果在Linux系統(tǒng)下通過修改e1000_main.c文件中的代碼來做Loopback,,即把代碼中的netif_receive_skb(skb) 修改成e1000_xmit_frame(skb, adapter->netdev) 重新編譯,數(shù)據(jù)包不通過三層協(xié)議棧處理,,采用SmartWindow軟件,,測試64B小包,,發(fā)送采用1Gb/s的速率,LAN1網口的吞吐量可以達到90%,。這說明CPU在處理三層協(xié)議轉發(fā)時,,消耗了大部分資源,CPU是整個網絡平臺小包吞吐量達不到線速的最大瓶頸,。?

??? 吞吐量是評價網絡性能的一項重要指標,。小包數(shù)據(jù)由于其自身的特性,使得許多網絡平臺在處理小包數(shù)據(jù)時,,吞吐量都有比較明顯的降低,。因此,研究小包數(shù)據(jù)的吞吐量,,找到小包吞吐量偏低的原因,,具有十分重要的意義。本文通過對研祥網絡平臺產品NET-1715VD4N吞吐量的測試與分析,,得出了CPU是影響小包吞吐量的主要因素的結論,。如果采用更高性能的CPU,并通過優(yōu)化系統(tǒng)和網絡驅動及中斷方式,,可以使小包數(shù)據(jù)的吞吐量得到進一步提高,。?

參考文獻?

[1] 王國梁,陶洋,,張靜.網絡測試及性能評價模型研究[J].中國數(shù)據(jù)通信,,2003(11):26-29.?

[2] RFC2544:網絡互聯(lián)設備的基準方法,1999.3?

[3] 劉靜林,張世遠,,鐘亦平. 高性能主干網絡監(jiān)控系統(tǒng)的設計與實現(xiàn)[J]. 計算機工程,,2004,30(13):181-183.?

[4] 陳蓓. 基于嵌入式Linux安全網關的實現(xiàn)[D]. 西安交通大學碩士學位論文,,2000:40-42.

本站內容除特別聲明的原創(chuàng)文章之外,,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點,。轉載的所有的文章,、圖片、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者,。如涉及作品內容、版權和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]