(計算機應用技術(shù)專業(yè)論文)基于千兆網(wǎng)卡的高效數(shù)據(jù)包捕獲技術(shù)的應用與實現(xiàn).pdf_第1頁
(計算機應用技術(shù)專業(yè)論文)基于千兆網(wǎng)卡的高效數(shù)據(jù)包捕獲技術(shù)的應用與實現(xiàn).pdf_第2頁
(計算機應用技術(shù)專業(yè)論文)基于千兆網(wǎng)卡的高效數(shù)據(jù)包捕獲技術(shù)的應用與實現(xiàn).pdf_第3頁
(計算機應用技術(shù)專業(yè)論文)基于千兆網(wǎng)卡的高效數(shù)據(jù)包捕獲技術(shù)的應用與實現(xiàn).pdf_第4頁
(計算機應用技術(shù)專業(yè)論文)基于千兆網(wǎng)卡的高效數(shù)據(jù)包捕獲技術(shù)的應用與實現(xiàn).pdf_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

(計算機應用技術(shù)專業(yè)論文)基于千兆網(wǎng)卡的高效數(shù)據(jù)包捕獲技術(shù)的應用與實現(xiàn).pdf.pdf 免費下載

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

文檔簡介

, 目 i :, 嬲煳 獨創(chuàng)性聲明 本人聲明所呈交的學位論文是本人在導師指導下進行的研究工 作及取得的研究成果。據(jù)我所知,除了文中特別加以標注和致謝的地 方外,論文中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含 為獲得電子科技大學或其它教育機構(gòu)的學位或證書而使用過的材料。 與我一同工作的同志對本研究所做的任何貢獻均已在論文中作了明 確的說明并表示謝意。 簽名: 亟嶙 日期:沙c 。年f 月諺目 論文使用授權(quán) 本學位論文作者完全了解電子科技大學有關(guān)保留、使用學位論文 的規(guī)定,有權(quán)保留并向國家有關(guān)部門或機構(gòu)送交論文的復印件和磁 盤,允許論文被查閱和借閱。本人授權(quán)電子科技大學可以將學位論文 的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,可以采用影印、縮印或 掃描等復制手段保存、匯編學位論文。 ( 保密的學位論文在解密后應遵守此規(guī)定) 簽名:紐避 導師簽名: 日期:卅口 , 心 摘要 摘要 近十五年里因特網(wǎng)普及之迅速,據(jù)報道中國的網(wǎng)絡用戶由9 6 年的1 0 萬增長 到現(xiàn)在的3 3 8 億,可見人們已經(jīng)非常依賴網(wǎng)絡這個載體來交換信息和處理事務。 同時基于網(wǎng)絡的應用也日漸多元化,如:網(wǎng)上購物、聊天、電子郵件、博客等。 但是在含有眾多應用的網(wǎng)絡環(huán)境中也存在著各種隱患,網(wǎng)站遭受黑客攻擊,用戶 數(shù)據(jù)的泄露等事件頻繁發(fā)生。為了有效地應對復雜的網(wǎng)絡環(huán)境,各種防范軟件相 應浮出水面,如:網(wǎng)絡監(jiān)控系統(tǒng),殺毒軟件,防火墻軟件等。 無論上述的網(wǎng)絡應用還是網(wǎng)絡安全領域的各種防范軟件都依靠于底層的數(shù)據(jù) 包捕獲,可見數(shù)據(jù)包捕獲在高速發(fā)展的網(wǎng)絡領域中占據(jù)的重要地位。傳統(tǒng)的數(shù)據(jù) 包捕獲過程中的中斷處理,協(xié)議棧的處理和數(shù)據(jù)從內(nèi)核空間到用戶空間的拷貝等 過程都需要處理器資源。在網(wǎng)絡傳輸速度有很大提升的今天,對數(shù)據(jù)的實時采集 往往由中斷頻率過高和數(shù)據(jù)處理速度過慢造成丟包現(xiàn)象,直接影響到基于其工作 的系統(tǒng)的性能。如何高效地數(shù)據(jù)包捕獲成為很多學者研究的課題。 本文所研究的數(shù)據(jù)包捕獲方案是以某企業(yè)網(wǎng)絡監(jiān)控系統(tǒng)為背景,依靠以太網(wǎng) 的廣播特性實現(xiàn)的。重點研究的是在高流量的網(wǎng)絡環(huán)境下對數(shù)據(jù)包捕獲性能的改 善。我們首先通過對數(shù)據(jù)包捕獲流程的分析尋找出數(shù)據(jù)捕獲過程中影向其性能的 各種因素,然后根據(jù)這些因素將目前在數(shù)據(jù)包捕獲領域出現(xiàn)的改進方案進行歸類, 最后選擇零拷貝的思想實現(xiàn)網(wǎng)絡監(jiān)控系統(tǒng)中的底層數(shù)據(jù)捕獲部分,并在文章的最 后一部分對此捕獲系統(tǒng)進行了性能上的測試。 高效捕獲系統(tǒng)的具體實現(xiàn)是基于內(nèi)核提供給用戶空間的內(nèi)存映射接口去完成 的。我們的主要工作有三點:第一,需要修改網(wǎng)卡驅(qū)動源碼,將數(shù)據(jù)包放入指定 的內(nèi)核空間中;第二,設計內(nèi)核共享緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu),以便實現(xiàn)數(shù)據(jù)包的填充 和釋放的同步;第三,提供給后期編程者數(shù)據(jù)包獲取接口。在以后的工作中,我 們還要設計一個精簡的基于應用層的“網(wǎng)絡協(xié)議?!?,來完善數(shù)據(jù)包的處理功能。 關(guān)鍵詞:數(shù)據(jù)包捕獲,內(nèi)存映射,設備驅(qū)動,網(wǎng)絡監(jiān)控 a b s t r a c t a b s t r a c t t h es p r e a d i n gs p e e do fi n t e m e tw a sf a s ti nt h ep a s t15y e a r s ,a n di tw a sr e p o r t e d t h a tt h en u m b e ro fn e f i z e ni n c r e a s e d33m i l l i o n ,f r o m10 0t h o u s a n di n19 9 6t o3 3 8 m i l l i o ni n2 0 0 8 n o wp e o p l eh a v eb e e na c c u s t o m e dt oe x c h a n g i n gm e s s a g eo rd e a l i n g w i t ha f f a i r sb yt h ec a r r i e ro fi n t e m e t t h ea p p l i c a t i o n sb a s e do ni n t e r n e ta r ev a r i o u s , s u c ha se c o m m e n c e ,c h a t t i n g ,e - m a i l ,b l o ga n ds oo n h o w e v e r , t h e r ea r em a n ys e c u r i t y r i s k si nt h e c o m p l e x n e t w o r ke n v i r o n m e n t i no r d e rt o m a n a g e m e n t n e t w o r k e n v i r o n m e n te f f e c t i v e l y , s o m es o f t w a r es u c ha sn e t w o r km o n i t o r i n gs y s t e m ,i n t r u s i o n d e t e c t i o ns y s t e m ,a n df i r e w a l ls o f t w a r ea p p e a n w h e t h e rv a r i o u sa p p l i c a t i o n sb a s e do ni n t e m e to rn e t w o r ks e c u r i t y s o f t w a r e m e n t i o n e da b o v e ,t h e ya l w a y sr e l a yo nb o t t o mp a c k e tc a p t u r i n g n e t w o r kp a c k e t c a p t u r i n gp l a y sa ni m p o r t a n tr o l ei nt h er a p i dd e v e l o p m e n to f n e t w o r kf i e l d e s p e c i a l l y , t h ef a s t e rs p e e do fn e t w o r kl e a d st oh i g hf r e q u e n c yo fn i ci n t e r r u p t ,l o ws p e e do f p a c k e tp r o c e s s i n ga n dp a c k e tl o s s t h e s ef a c t o r sa b o v ec a ni m p a c to nt h ep e r f o r m a n c e o fu p p e rs y s t e m n o wm a n ys c h o l a r sr e s e a r c ho nh o wt oc a p t u r ep a c k e te f f i c i e n t l y o nt h eb a c k g r o u n do fe n t e r p r i s en e t w o r km o n i t o r i n gs y s t e m ,w er e l a yo nt h e b r o a d c a s t i n gf e a t u r eo fe t h e m e tt oc a p t u r ep a c k e t s h o wt oi m p r o v i n gt h ep e r f o r m a n c e o fc a p t u r ei nh i g h t r a f f i cn e t w o r ke n v i r o n m e n ti so u rf o c u s f i r s t ,w ei n t r o d u c en o r m a l p a c k e tc a p t u r i n gm e t h o d i nl i n u x ,a n dt h e nm o d e lt h ep r o c e s so fp a c k e tc a p t u r et of i n d o u tt h ef a c t o r sw h i c hi m p a c tp e r f o r m a n c eo fs y s t e m a c c o r d i n gt ot h e s ef a c t o r s ,w e i n t r o d u c es o m ei m p r o v e dt e c h n o l o g ya n dc h o o s ez e r o c o p yt oi m p l e m e n to u rs y s t e m a tl a s tw eb u i l dt e s t i n ge n v i r o n m e n t ,a n dt e s tt h ep e r f o r m a n c eo ft h es y s t e mb y d i f f e r e n tl e n g t hp a c k e t sa n dd i f f e r e n tt r a n s m i ts p e e d t h ei m p l e m e n t a t i o no fe f f i c ie n tp a c k e tc a p t u r i n gs y s t e mi sb a s e do nam e m o r y m a p p i n gi n t e r f a c e ,w h i c hi sp r o v i d e db yk e r n e l o u rm a i n w o r ke m p h a s e so nt h r e e i m p o r t a n tp a r t s t h ef i r s to n ei st om o d i f yt h es o u r c ec o d eo f n i cd r i v e ra n dp u tp a c k e t s i n t op r e a l l o c a t e dk e r n e ls p a c e ;t h es e c o n do n ei st od e s i g nd a t as t r u c t u r e sw h i c hm a k e t h ec o m m u n i c a t i o na n ds y n c h r o n i z a t i o nb e t w e e nn i ca n du s e rp r o c e s s e s ;t h el a s tp a r ti s a b s t r a c t t op r o v i d eap r o g r a m m i n gi n t e r f a c ef o ra p p l i c a t i o np r o g r a m m e r s i nt h ef u t u r e ,w ew i l l d e s i g nas i m p l i f i e dp r o t o c o ls t a c kw o r k i n gi nu s e rs p a c et oi m p r o v et h ef u n c t i o no f p a c k e tp r o c e s s i n g k e y w o r d s :p a c k e tc a p t u r i n g ,m e m o r ym a p p i n g ,d e v i c ed f i v e r ,n e t w o r km o n i t o r i n g i i i 第一 1 1 課題背景1 1 2 研究現(xiàn)狀2 1 3 主要工作3 1 4 論文特色4 1 5 組織結(jié)構(gòu)4 第二章提升數(shù)據(jù)包捕獲性能的方法及相關(guān)知識的介紹5 2 1 數(shù)據(jù)包捕獲流程的簡介5 2 2 類u n i x 系統(tǒng)中的數(shù)據(jù)包捕獲機制介紹6 2 2 1l i n u x 中的網(wǎng)絡套接字接口7 2 2 2b s d 中的b p f 過濾機制7 2 2 3s v r 4 中的數(shù)據(jù)鏈路提供者接口8 2 3 影響數(shù)據(jù)包捕獲性能的因素9 2 4 提高數(shù)據(jù)包捕獲性能的方法1 1 2 4 1 中斷結(jié)合1 1 2 4 2 中斷輪詢結(jié)合機制1 2 2 4 3 零拷貝思想1 4 2 4 4 硬件卸載引擎。1 5 2 4 5 提高l i n u x 系統(tǒng)的實時性的方法1 6 2 4 6 對改進方法的總結(jié)與選擇1 7 2 5 實現(xiàn)改進方法所需的基礎知識1 7 2 5 1 內(nèi)存映射1 7 2 5 2 設備驅(qū)動及設備類型2 1 2 5 3 進程通信機制2 2 2 5 4 模塊化的內(nèi)核編程2 4 2 6 本章小結(jié)2 5 第三章基于千兆網(wǎng)卡的數(shù)據(jù)包捕獲系統(tǒng)的概要設計2 6 i v 目錄 3 1 企業(yè)網(wǎng)絡行為監(jiān)控系統(tǒng)的簡介2 6 3 1 1 企業(yè)網(wǎng)絡行為監(jiān)控系統(tǒng)的功能簡介2 6 3 1 2 企業(yè)網(wǎng)絡行為監(jiān)控系統(tǒng)的架構(gòu)2 8 3 2 數(shù)據(jù)包捕獲系統(tǒng)的性能需求3 0 3 3 數(shù)據(jù)包捕獲子系統(tǒng)的設計方案3 2 3 3 1 數(shù)據(jù)包捕獲子系統(tǒng)的功能模塊劃分3 3 3 3 2 功能模塊間的同步3 3 3 3 3 用戶接口的設計3 5 3 4 本章小結(jié)3 5 第四章基于千兆網(wǎng)卡的數(shù)據(jù)包捕獲系統(tǒng)的詳細設計與實現(xiàn)3 6 4 1 千兆網(wǎng)卡驅(qū)動模塊的設計3 7 4 1 1 關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的分析3 7 4 1 2 網(wǎng)卡驅(qū)動接收流程的分析3 9 4 1 3 網(wǎng)絡驅(qū)動程序的修改4 2 4 2 內(nèi)核共享緩沖區(qū)模塊4 2 4 2 1 數(shù)據(jù)結(jié)構(gòu)的建立4 3 4 2 2 共享緩沖區(qū)中內(nèi)存的分配4 5 4 2 3 網(wǎng)卡與應用程序之間的同步4 8 4 3 接口函數(shù)模塊5 0 4 4 系統(tǒng)整體工作流程5 2 4 4 1 系統(tǒng)初始化階段流程5 2 4 4 2 系統(tǒng)運行階段流程5 3 4 5 本章小結(jié)5 5 第五章基于千兆網(wǎng)卡的數(shù)據(jù)包捕獲系統(tǒng)的測試與分析5 6 5 1 測試環(huán)境5 6 5 2 測試數(shù)據(jù)的分析5 7 5 3 本章小結(jié)5 9 第六章總結(jié)與展望6 0 6 1 全文總結(jié)6 0 6 2 工作展望6 0 致謝6 2 參考文獻6 3 v 攻碩 著分 九十 超過 人們 多元化,如:網(wǎng)頁沖浪、網(wǎng)上購物、聊天、電子郵件、博客等等。除此之外,大 多數(shù)企業(yè)也開始進入信息化規(guī)劃方案,架構(gòu)自己內(nèi)部的局域網(wǎng),并且通過s o a 拉j 理念等,開發(fā)一系列的e r p 3 】軟件來有效的管理企業(yè)。 當網(wǎng)絡技術(shù)帶給我們便利的同時它還帶來了很多安全隱患,如:網(wǎng)站遭受黑 客攻擊,用戶數(shù)據(jù)的泄露等等。據(jù)美國金融時報報道,在計算機網(wǎng)絡環(huán)境下 入侵事件的發(fā)生概率為平均2 0 秒次,超過1 3 的互聯(lián)網(wǎng)被攻破,全球范圍內(nèi)每年 由于信息系統(tǒng)的脆弱性而導致的經(jīng)濟損失達數(shù)億美元并且呈逐年上升趨勢。面對 這么多網(wǎng)絡安全問題,許多網(wǎng)絡入侵檢測系統(tǒng),網(wǎng)絡安全監(jiān)控系統(tǒng)浮出水面。不 管是基于網(wǎng)絡的各種應用還是網(wǎng)絡安全領域的各種防范軟件,它們的實現(xiàn)都離不 開數(shù)據(jù)捕獲( 我們這里介紹的數(shù)據(jù)捕獲都是在以太網(wǎng)下的) ,可見數(shù)據(jù)捕獲的研 究價值。 我國從撥號上網(wǎng)時代從0 3 年發(fā)展為頂峰,當時用戶的有效速率遠遠低于 5 6 k b p s ,到0 8 年寬帶用戶已經(jīng)占據(jù)絕對比例,2 0 0 8 年中國網(wǎng)絡國際出口帶寬達 到6 4 0 ,2 8 6 6 7m b p s ??梢娋W(wǎng)絡的發(fā)展是伴隨著上網(wǎng)配套的硬件設施也不斷的改進, 最直接表現(xiàn)的就是帶寬的上升。隨著這樣的發(fā)展趨勢,千兆網(wǎng)絡時代的到來并不 遙遠。 帶寬的擴充及網(wǎng)絡數(shù)據(jù)包傳輸流量變大將會對數(shù)據(jù)包捕獲技術(shù)提出一次新的 挑戰(zhàn)。在百兆網(wǎng)絡環(huán)境下,l i n u x 常見的數(shù)據(jù)包捕獲接e l 是l i b p c a p 【4 1 ( w i n d o w s 下存 在相應的w i n p c a p ) ,它的工作原理是旁路網(wǎng)卡通過中斷傳送給系統(tǒng)協(xié)議棧的數(shù)據(jù) 電子科技大學碩士學位論文 包,將它們存放在兩個大小3 2 k b 的公共緩沖區(qū),應用程序取出緩沖區(qū)中的數(shù)據(jù)進 行分析。在此過程數(shù)據(jù)還需要經(jīng)歷一次用戶空間到內(nèi)核空間的拷貝。但是在千兆 網(wǎng)絡下,它的捕獲性能明顯下降,對于小包的成功接收率不到百分之十。近些年 干兆網(wǎng)絡適配器的出現(xiàn)已解決了硬件上的丟包問題,數(shù)據(jù)包捕獲的瓶頸已不在于 網(wǎng)絡適配器,而在于操作系統(tǒng)協(xié)議棧對包的處理,比如系統(tǒng)接收數(shù)據(jù)包的中斷方 式,用戶空間與內(nèi)核空間數(shù)據(jù)拷貝方式等都是十分耗費系統(tǒng)資源【5 j 。據(jù)相關(guān)材料介 紹,千兆網(wǎng)絡環(huán)境下包長為6 4 字節(jié)的數(shù)據(jù)包到達速度最大可達到1 2 3 0 0 0 0 個秒, 每個數(shù)據(jù)包到達網(wǎng)卡產(chǎn)生一次中斷,中央處理器必須達到0 8 2 u s 的處理速度才能 保證收包率。但是一個p i i i4 5 0 m h 裝有l(wèi) i n u x2 2 1 0 的操作系統(tǒng)處理一個數(shù)據(jù)包 需要1 3 2 3 u s 6 | 。近些年出現(xiàn)了許多高頻率的處理器,但是處理器的頻率的線性增 加并不會使接收數(shù)據(jù)包產(chǎn)生的中斷消耗線性減小,主要原因還在于像主存、i o 設 備并不具備高速緩存的讀寫速度,大大限制了中斷處理時間的減少。一個主頻為 2 4 g h z 的處理器相對于8 0 0 m h z 的處理器性能上只提高了6 0 【7 】??梢妴渭兊耐?過提升處理器的性能并不能根本解決數(shù)據(jù)包捕獲的接收活鎖問題。 1 2 研究現(xiàn)狀 這些年,在高性能通信領域出現(xiàn)了很多研究課題,大致可以分為軟件實現(xiàn)和硬 件實現(xiàn)兩部分。在軟件領域?qū)?shù)據(jù)包捕獲性能研究做出最大貢獻的還屬于l u c a d e r i ,他開發(fā)的n t o p 軟件中使用了一種類型為p f 套接字【8 母】,這種套接字相對 于 而言,能夠使用戶進程直接訪問到內(nèi)核_r空in間glibpcap的數(shù)據(jù)包緩沖區(qū),避免了數(shù) 據(jù)從內(nèi)核空間到用戶空間的第二次拷貝。這種方式類似于零拷貝【1o j 但又有不同, 它將網(wǎng)卡中斷接收的數(shù)據(jù)先復制到內(nèi)核緩沖區(qū)空間,再將這個區(qū)間直接與用戶空 間進行映射。在后期l u c ad e r i 又提出一種n c a p n 】的捕獲方案,這種方案讓用戶進 程直接跟網(wǎng)卡進行交互,網(wǎng)卡硬件寄存器和內(nèi)部緩沖區(qū)都直接映射到用戶空i 白j 。 據(jù)關(guān)于資料報道,這種捕獲方式在處理器頻率足夠高的時候甚至可以達到千兆網(wǎng) 卡轉(zhuǎn)發(fā)速度的極限值1 4 8 m p s ,但是n c a p 的內(nèi)部實現(xiàn)機制并未公開。 在硬件領域的改善數(shù)據(jù)包捕獲方案的基本思想是用硬件分擔操作系統(tǒng)協(xié)議棧 對數(shù)據(jù)包處理的壓力,讓數(shù)據(jù)包的處理放到在網(wǎng)卡內(nèi)部完成,包括我們在第二章 將介紹到的協(xié)議棧卸載引擎【l2 1 。硬件方式捕獲數(shù)據(jù)包能力很強大,比較有名的 d a g t l 3 】卡和c o m b o 卡,特別是d a g 4 3 g e 在發(fā)送速率達到千兆每秒時的丟包率 為零( 包長1 5 0 0 字節(jié)和6 4 字節(jié)) ,但它的價格頗高,達到了幾萬甚至十萬人民幣。 2 第一章引言 由于價格因素,一般的網(wǎng)絡管理系統(tǒng),遠程監(jiān)控系統(tǒng),入侵檢測系統(tǒng)等還是基于 千兆網(wǎng)卡的普通硬件。后來生產(chǎn)d a g 卡的公司使用n c a p 技術(shù)開發(fā)出了一款新的 捕包軟件e n c a p ,這款收費軟件對硬件的要求不高,但可以很大程度對數(shù)據(jù)包的捕 獲能力,而且提供給用戶便捷的二次開發(fā)環(huán)境。 在國內(nèi),許多研究者把高性能的數(shù)據(jù)包捕獲研究重點放零拷貝的實現(xiàn)和中斷輪 詢機制的轉(zhuǎn)換兩個方面。在零拷貝的實現(xiàn)是直接將數(shù)據(jù)d m a 到用戶空間或者在內(nèi) 核空間開辟一片緩沖區(qū)采用地址映射機制讓用戶進程訪問內(nèi)核空間。在中斷輪詢 的切換方面,有根據(jù)即時網(wǎng)絡流量靈活控制的,也有在輪詢失敗后自動轉(zhuǎn)化的方 式。雖然實現(xiàn)的方法不一樣,但都是為了減少網(wǎng)絡適配器帶給中央處理器的中斷 消耗而建立的。 1 3 主要工作 本文所研究的數(shù)據(jù)包捕獲是以某企業(yè)網(wǎng)絡行為監(jiān)控系統(tǒng)為背景,依靠以太網(wǎng) 的廣播特性實現(xiàn)的。重點研究的是在高流量的網(wǎng)絡環(huán)境下對數(shù)據(jù)包捕獲性能的改 善。在對l i n u x 環(huán)境下各種網(wǎng)絡數(shù)據(jù)包捕獲技術(shù)的了解后,通過改變默認情況下數(shù) 據(jù)包的流向和利用內(nèi)核映像等方法來提高數(shù)據(jù)包的捕獲效率。 本人完成的主要工作如下: ( 1 ) 詳細地介紹了l i n u x 系統(tǒng)中數(shù)據(jù)包捕獲機制。 ( 2 ) 根據(jù)l i n u x 系統(tǒng)下數(shù)據(jù)包捕獲流程建立模型,推導出影響數(shù)據(jù)包捕獲性能兩 個重要因素( 硬中斷頻率,軟中斷處理速度) 及其關(guān)系。并根據(jù)這些因素將最近 提出的各種改進思想歸類分析,選擇零拷貝思想實現(xiàn)數(shù)據(jù)包的捕獲。 ( 3 ) 分析了千兆網(wǎng)卡驅(qū)動程序b r o a d c o mn e t x t r e m ei ig i g a b i te t h e m e td r i v e r 的 數(shù)據(jù)包接收流程和中斷機制。 ( 4 ) 深入了解l i n u x 虛擬內(nèi)存的實現(xiàn)機制( 分頁管理) ,編寫m m a p 系統(tǒng)調(diào)用實 現(xiàn)用戶空間到內(nèi)存空間的緩沖區(qū)映射。 ( 5 ) 對企業(yè)網(wǎng)絡監(jiān)控系統(tǒng)的數(shù)據(jù)包捕獲功能進行了改進,通過在原有系統(tǒng)中添 加虛擬設備模塊的形式實現(xiàn)了零拷貝思想。 ( 6 ) 搭建測試平臺以完成數(shù)據(jù)包捕獲系統(tǒng)性能上的測試,并對測試結(jié)果進行了 分析。 電子科技大學碩士學位論文 1 4 論文特色 根據(jù)企業(yè)網(wǎng)絡負載情況采用零拷貝的數(shù)據(jù)捕獲方案改善系統(tǒng)的性能。對零拷 貝實現(xiàn)主要基于以下幾點: 選擇在內(nèi)核態(tài)開辟空間,讓用戶進程通過內(nèi)存映射對數(shù)據(jù)包進行讀取。 引入虛擬字符設備概念管理內(nèi)核態(tài)的共享內(nèi)存,建立循環(huán)管理隊列解決了網(wǎng) 卡傳入數(shù)據(jù)與用戶進程取出數(shù)據(jù)的同步,采用互斥信號量方式控制多用戶進程對 虛擬字符設備的訪問。并為后期的數(shù)據(jù)包處理提供了數(shù)據(jù)捕獲接口。 1 5 組織結(jié)構(gòu) 本文在分析l i n u x 內(nèi)存管理及報文捕獲機制的基礎上提出了一種新的報文捕獲 方法,并以內(nèi)核模塊的形式實現(xiàn)底層數(shù)據(jù)的捕獲功能。下面我們對文章的各個章 節(jié)做一次概括以方便讀者閱讀。 第一章:簡明介紹了本課題的背景,研究現(xiàn)狀和主要內(nèi)容。 第二章:介紹了傳統(tǒng)的基于軟件的數(shù)據(jù)包捕獲方式,分析了產(chǎn)生數(shù)據(jù)包捕獲 瓶頸的關(guān)鍵參數(shù)。在此基礎上引出了各種的改善的方法,最終選擇零拷貝思想實 現(xiàn)數(shù)據(jù)包捕獲。最后介紹了實現(xiàn)零拷貝所需要的基礎知識。 第三章:介紹了數(shù)據(jù)捕獲系統(tǒng)的大項目背景及數(shù)據(jù)包捕獲系統(tǒng)的高性能要求, 最后將數(shù)據(jù)包捕獲系統(tǒng)進行模塊劃分,討論了各種模塊的交互及實現(xiàn)中需要考慮 的問題。 第四章:介紹數(shù)據(jù)捕獲系統(tǒng)的詳細設計與實現(xiàn)。 第五章:搭建測試環(huán)境,對數(shù)據(jù)包捕獲系統(tǒng)性能進行了一系列測試。 第六章:對整個課題進行總結(jié),提出后期工作的方向和目標。 4 第二章提升數(shù)據(jù)包捕獲性能的方法及相關(guān)知識的介紹 第二章提升數(shù)據(jù)包捕獲性能的方法及相關(guān)知識的介紹 2 1 數(shù)據(jù)包捕獲流程的簡介 數(shù)據(jù)包捕獲是指從網(wǎng)絡設備中取出數(shù)據(jù)包提交給系統(tǒng)協(xié)議?;蛘咂渌鄳?模塊接口以供其分析及其他用途。從底層網(wǎng)絡接入的環(huán)境來看,有兩種數(shù)據(jù)包捕 獲方法。一種是通過路由器對端口進行監(jiān)聽來捕獲全部網(wǎng)絡的數(shù)據(jù)包,這種方式 適合于很多網(wǎng)絡中,但是以太網(wǎng)本身的廣播特性給數(shù)據(jù)包捕獲提供了另一個途徑。 本文討論的數(shù)據(jù)包捕獲都屬于以太網(wǎng)的數(shù)據(jù)包捕獲【l 4 1 。 以太網(wǎng)是一種高速的局域網(wǎng),由于其采用的多路訪問協(xié)議( c s m a c d ) 0 5 設計簡單,高速率低成本等特性,所以它被普遍使用。以太網(wǎng)的廣播性表現(xiàn)為每 個主機發(fā)送的數(shù)據(jù)都在信道中傳輸,處于傳輸信道中的機器可以獲取到信道中的 所有數(shù)據(jù)。這種廣播特性可以為p c 機提供網(wǎng)絡數(shù)據(jù)包捕獲的基礎條件。網(wǎng)絡中的 主機系統(tǒng),數(shù)據(jù)的收發(fā)是由網(wǎng)卡來完成的。以太網(wǎng)卡工作在t c p i p 協(xié)議模型的數(shù) 據(jù)鏈路層,通過網(wǎng)膏的m a c 地址進行定位。 由于以太網(wǎng)的廣播特性,以太網(wǎng)卡( 在以太網(wǎng)下工作的網(wǎng)卡) 的工作模式可 以分為兩種:混雜模式和非混雜模式?;祀s模式就如上一段提到聯(lián)網(wǎng)的主機可以 通過以太網(wǎng)卡接收到流經(jīng)網(wǎng)絡的所有數(shù)據(jù)幀,并不需要檢查這些數(shù)據(jù)幀是否是發(fā) 送給本網(wǎng)卡的。非混雜模式下以太網(wǎng)卡只能接收目標地址與自己m a c 地址一致的 數(shù)據(jù)幀進行處理,其余的數(shù)據(jù)幀例如廣播幀等全部被丟棄。所以在數(shù)據(jù)捕獲過程 中我們必須將以太網(wǎng)卡設置為混雜模式。 混雜模式下的以太網(wǎng)卡進行數(shù)據(jù)捕獲時只需要將接收到數(shù)據(jù)幀通過中斷的方 式送往內(nèi)核協(xié)議棧,然后我們可以根據(jù)上層應用程序的需求對數(shù)據(jù)包進行物理地 址、m a c 地址、端口,或者內(nèi)容的分析來決定它們是否丟棄還是保留以備后期操 作。這個過程其實就是一次數(shù)據(jù)包的捕獲與處理。下面我們具體地了解數(shù)據(jù)包經(jīng) 過操作系統(tǒng)這一過程。 整個網(wǎng)絡體系架構(gòu)分為五個層次,分別為應用層,傳輸層,網(wǎng)絡層,數(shù)據(jù)鏈 路層和物理層,這種劃分與o s i 七層體系結(jié)構(gòu)非常類似,根據(jù)不同的功能將網(wǎng)絡 劃分層次的方式被廣泛的接受。各種操作系統(tǒng)根據(jù)這種劃分方式設計了類似的協(xié) 電子科技大學碩士學位論文 議棧去處理網(wǎng)絡數(shù)據(jù)。這里我們簡單介紹下l i n u x 網(wǎng)絡協(xié)議?!? 6 1 的架構(gòu)和數(shù)據(jù)包在 各層次中會經(jīng)歷哪些處理。l i n u x 協(xié)議棧的框架如下圖2 1 所示。 圖2 1l i n u x 網(wǎng)絡協(xié)議棧 數(shù)據(jù)包通過網(wǎng)卡中斷被送入操作系統(tǒng)內(nèi)核空間,并且在協(xié)議棧的等待隊列中 排隊等待軟中斷處理。軟中斷的處理就是對接收到的數(shù)據(jù)包進行逐層解析,將數(shù) 據(jù)幀一步步轉(zhuǎn)化為用戶可以讀取的消息。數(shù)據(jù)包在各個層次充當著不同的角色, 從物理層的p ,p d u 到鏈路層的幀,再到網(wǎng)絡層的分組和傳輸層的數(shù)據(jù)段,最后作 為消息到達應用層。協(xié)議棧會對鏈路層的數(shù)據(jù)幀進行一系列的校驗工作,根據(jù)幀 頭的m a c 地址對數(shù)據(jù)包進行丟棄、轉(zhuǎn)發(fā)或者上傳的操作,被上傳到網(wǎng)絡層的數(shù)據(jù) 包要根據(jù)i p 地址進行路由協(xié)議,仍然過傳輸層要對其端口檢查,端口的檢查可以 看做是對應用進程的匹配,明確數(shù)據(jù)包發(fā)往哪個進程。 準確的說,網(wǎng)絡適配器負責完成對鏈路層幀的操作。在上文中我們了解到網(wǎng) 卡可以通過不同的模式?jīng)Q定是否接收所有經(jīng)過的幀還足只接收與本機有關(guān)的數(shù)據(jù) 幀。操作系統(tǒng)的網(wǎng)絡協(xié)議棧負責完成數(shù)據(jù)包從網(wǎng)絡層到應用層的解析,在解析過 程中我們還可以在每層間對數(shù)據(jù)包進行各種操作,不一定必須要丟棄數(shù)據(jù)包。此 外,網(wǎng)絡協(xié)議棧對數(shù)據(jù)包的處理需要一定的時間。 2 2 類u nlx 系統(tǒng)中的數(shù)據(jù)包捕獲機制介紹 在本小節(jié)中,我們將介紹多種由u n i x 衍生的各種系統(tǒng)下的捕獲機制,所有 機制對數(shù)據(jù)包只是旁路監(jiān)聽,而啟不到攔截作用。 6 第二章提升數(shù)據(jù)包捕獲性能的方法及相關(guān)知識的介紹 2 2 。1lin u x 中的網(wǎng)絡套接字接口 l i n u x 系統(tǒng)中提供了多種類型的套接字,比如:鏈路層套接字s o c kp a c k e t , 流式套接字s o c ks t r e a m ,數(shù)據(jù)報套接字s o c kd g r a m 和原始套接字 s o c kr a m 。我們常用的套接字是鏈路層套接字,它是操作系統(tǒng)提供給用戶程序 訪問網(wǎng)絡鏈路層數(shù)據(jù)包的接口。用戶只需設置以太網(wǎng)卡模式為混雜模式,在用戶 態(tài)使用鏈路層套接字,就可以獲得所有由網(wǎng)卡提交給操作系統(tǒng)的數(shù)據(jù)包。對 s o c kp a c k e t 的調(diào)用不影響數(shù)據(jù)包在內(nèi)核中的流向,但是由于此套接字在內(nèi)核 中沒有緩沖區(qū),用戶通過它捕獲局域網(wǎng)中數(shù)據(jù)包效率低下在高速網(wǎng)絡中無法使用。 2 2 2b s d 中的b p f 過濾機制 b p f ( b s dp a c k e tf i l t e r ) 1 7 】的過濾機制被廣泛用于b s d 系統(tǒng)及起源于b s d 框架的其他系統(tǒng)中。與s o c k e tp a c k e t 一樣,b p f 對數(shù)據(jù)包的獲取也在鏈路層, 而且它還能實現(xiàn)數(shù)據(jù)包過濾的功能。為了理解b p f 的工作流程,我們需要對網(wǎng)絡 數(shù)據(jù)包的默認流向做個介紹:當有數(shù)據(jù)包到達網(wǎng)卡,網(wǎng)卡會產(chǎn)生中斷,操作系統(tǒng) 響應中斷,將數(shù)據(jù)包從硬件緩存區(qū)復制到內(nèi)核緩沖區(qū)中保存,隨后提交到操作系 統(tǒng)默認的協(xié)議棧進行相應的操作。b p f 在數(shù)據(jù)包提交到默認的協(xié)議棧之前,在網(wǎng) 卡中斷過程中對數(shù)據(jù)包進行過濾。它首先會過濾掉目的地址不是本主機的數(shù)據(jù)包, 然后根據(jù)過濾規(guī)則( 規(guī)則由調(diào)用b p f 的進程制定) 再對數(shù)據(jù)包進行過濾,經(jīng)過兩 次過濾后將最終數(shù)據(jù)包提交給上層協(xié)議棧。具體的過濾機制如下圖2 2 所示。 當網(wǎng)絡數(shù)據(jù)量過大時,b p f 的第一次過濾需要一定的處理時間,占用處理器 的資源,可能造成數(shù)據(jù)包的流入速度大于數(shù)據(jù)包第一次過濾速度的情況。這種情 況最典型的解決辦法就是建立緩沖區(qū)。其實,在實際應用中,b p f 取消了我們所 說的第一次過濾,而是先將所有數(shù)據(jù)包全部放到內(nèi)核緩沖區(qū)中,然后再根據(jù)過濾 原則進行過濾,滿足條件的數(shù)據(jù)包再由系統(tǒng)調(diào)用傳送到用戶空間。我們可以看到, 起初的數(shù)據(jù)包沒有經(jīng)過處理全部復制到內(nèi)核緩沖區(qū)中,但用戶空間的接收到得數(shù) 據(jù)包數(shù)量絕對要小于或者等于內(nèi)核空i 訓緩沖區(qū)數(shù)據(jù)包的數(shù)量,說明通過對內(nèi)核緩 沖區(qū)中數(shù)據(jù)包的過濾還可以減少所需申請的用戶空間的大小和數(shù)據(jù)包從內(nèi)核空間 到用戶空間的復制數(shù)量。b p f 支持多用戶調(diào)用的方式是為每個用戶進程在內(nèi)核中 開辟一個緩沖區(qū),一個b p f 對應于一個緩沖區(qū),各自不受影響。當數(shù)據(jù)過濾完成 后,在將此段緩沖區(qū)的數(shù)據(jù)一次性復制到對應的用戶空間。根據(jù)以上分析,可以 電子科技大學碩士學位論文 明顯得出b p f 優(yōu)于s o c kp a c k e t 。 系統(tǒng)地總結(jié),b p f 由兩部分組成:n e t w o r kt a p 和p a c k e tf i l t e r 。n e t w o r kt a p 用 于對鏈路層數(shù)據(jù)包的捕獲,p a c k e tf i l t e r 用于對捕獲的數(shù)據(jù)包進行過濾。應用程序 通過調(diào)用b p f 可以實現(xiàn)數(shù)據(jù)包的捕獲和過濾。它優(yōu)于s o c kp a c k e t 的原因有一 下幾點: 1 過濾機制的實現(xiàn)在內(nèi)核空間中,相對于用戶空間的過濾,速度快,開銷小。 2 p a c k e tf i l t e r 使得傳遞給用戶空間的數(shù)據(jù)包數(shù)量減少,減少了內(nèi)核空間到用 戶空間傳遞的資源消耗。 3 數(shù)據(jù)包不是一個一個傳送給用戶空間,而是一次性傳遞一定數(shù)量的數(shù)據(jù)包, 減少了系統(tǒng)調(diào)用產(chǎn)生的開銷。 圖2 - 2b p f 過濾機制 2 2 3s v r 4 中的數(shù)據(jù)鏈路提供者接口 數(shù)據(jù)鏈路提供者接口d l p i 1 8 】是由a t & t 設計出來的,它有良好的獨立于協(xié)議 的特性,不論數(shù)據(jù)鏈路層是基于以太網(wǎng)還是基于令牌環(huán)網(wǎng)的協(xié)議。此接口的實現(xiàn) 是基于u n i x 的流機制。接口的使用者( 上層協(xié)議或者用戶進程) 在不知道鏈路 層協(xié)議狀態(tài)的情況下可以通過此接口直接訪問數(shù)據(jù)包幀。使用者和服務提供者可 _ _ _ _ _ _ _ _ _ _ - _ r _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ i _ _ _ _ _ _ _ _ _ _ _ _ 。一 第二章提升數(shù)據(jù)包捕獲性能的方法及相關(guān)知識的介紹 以通過定義的原語集合和規(guī)則進行交互。 由于流消息的形式影響系統(tǒng)效率,設計者采取類似于b p f 的數(shù)據(jù)捕獲和過濾 機制,引入p f m o d 和b u f r n o d 兩個模塊【l 9 1 。前者對數(shù)據(jù)包分組過濾,后者將過濾 好的數(shù)據(jù)包復制到用戶空間。與b p f 不同的是,p f m o d 模塊的實現(xiàn)是通過虛擬機 完成,這樣避免了數(shù)據(jù)包拷貝的開銷;在b u f m o d 模塊中引入了超時機制和捕獲長 度機制等來減少系統(tǒng)調(diào)用次數(shù)和內(nèi)存拷貝數(shù)據(jù)量。但是基于底層協(xié)議為i e e e 8 0 2 的通信服務,還是要比b p f 慢。d l p i 具體的模塊關(guān)系如下圖2 3 所示。 圖2 - 3d l p i 接口 2 3 影響數(shù)據(jù)包捕獲性能的因素 傳統(tǒng)的l i n u x 報文捕獲【2 0 】可以分為兩部分:硬中斷和軟中斷。當報文到達網(wǎng) 絡適配器,適配器將利用中斷的方式通知操作系統(tǒng),系統(tǒng)調(diào)用已經(jīng)被注冊的中斷 處理函數(shù)進行接收,把數(shù)據(jù)包處理成一定格式放到一個由b a c k l o g 指針指向的鏈表 中等待上層傳輸。在此期間,系統(tǒng)處于關(guān)中斷階段,我們將這個階段稱為硬中斷。 捕獲流程的第二部分就是將b a c k l o g 隊列中的數(shù)據(jù)包通過軟中斷的方式向上層提 交。軟中斷過程中,系統(tǒng)處于開中斷狀態(tài),當有新的數(shù)據(jù)包到來時候,系統(tǒng)則會 停止軟中斷過程,回到第一部分的硬中斷階段,將鏈路層數(shù)據(jù)包接收到b a c k l o g 隊 列。具體的流程如下圖2 4 所示。 9 電子科技大學碩士學位論文 開始 網(wǎng)絡設備是否產(chǎn)生中斷 、f 系統(tǒng)進入硬件中斷 將數(shù)據(jù)包轉(zhuǎn)換成一定格式放 入b l a c k | o g 隊列 否 哆燃專 至 。竺鄉(xiāng)匕 上是 系統(tǒng)進入軟中斷 從b l a c k l o g 隊列中取出數(shù)據(jù) 進行處理 圖2 - 4l i n u x 數(shù)據(jù)捕獲流程圖 下面我們從兩個方面來分析報文捕獲的瓶頸,第一個方面是數(shù)據(jù)包接收存在 不同步性。假設軟每次中斷處理時間為,軟中斷產(chǎn)生的時間間隔為,硬中斷 產(chǎn)生的時間間隔,理想情況下: 0 。+ k ( 2 _ 1 ) 在低速網(wǎng)絡下,較大,所以容易滿足不等式( 2 1 ) 。在高速網(wǎng)絡下,每秒 鐘到達網(wǎng)絡設備的數(shù)據(jù)包增多,故每秒產(chǎn)生中斷的次數(shù)增多,變小,此時足 夠小才能滿足公式( 2 1 ) ,否則b l a c k l o g 隊列的輸入速率將大于輸出速率,造成 其擁塞即甚至丟包。 1 0 第二章提升數(shù)據(jù)包捕獲性能的方法及相關(guān)知識的介紹 第二個方面是軟中斷的處理速率對整個捕獲機制性能的影響。根據(jù)排隊論的 觀點,我們假設每秒鐘到達的數(shù)據(jù)包服從參數(shù)為a 的泊松分布,輪詢設備處理速度 服從參數(shù)為“2 的指數(shù)分布,每秒鐘b l a c k l o g 隊列中排隊的平均數(shù)據(jù)包量為,具 體模型如圖2 5 所示。 八 l 硬中斷 l 弋 圖2 - 5 中斷機制模型分析 在軟中斷階段,為假設兄為常量,我們研究下以u 2 為變量的函數(shù)的單調(diào)性。 馴2 毒南 。2 彩 “2l “2 一九j f 7 7 、 我們將( 2 2 ) 以“2 為變量求導,得出: 地) :一三 ( 2 3 ) 從等式( 2 3 ) 可以看出:由于u ,大于0 ,函數(shù)單調(diào)遞減,故只有增大才能 減小b l a c k l o g 隊列中數(shù)據(jù)包的數(shù)量。 2 4 提高數(shù)據(jù)包捕獲性能的方法 通過2 3 小節(jié)的分析可以知道,我們可以從提升軟中斷處理速度或者減少中斷 次數(shù)兩個方面來提高數(shù)據(jù)包的捕獲性能。下面我們將對從這兩方面對現(xiàn)有的一些 改進性能方法進行介紹,并引出本文采用的零拷貝思想。 2 。4 1 中斷結(jié)合 中斷結(jié)合( i n t e r r u p t c o a l e s i n g ) 1 2 1 】是千兆網(wǎng)絡下減少中斷的開銷的常見方法。 近些年,許多網(wǎng)絡適配器包括以太網(wǎng)卡都實現(xiàn)了中斷結(jié)合,而且許多操作系統(tǒng), 比如l i n u x ,w i n d o w s ,也支持中斷結(jié)合技術(shù)。與傳統(tǒng)的中斷模式相比較,中斷結(jié)合 將一個個到來的數(shù)據(jù)包歸組然后產(chǎn)生一次中斷,這種中斷模式適合接收包長較小 電子科技大學碩士學位論文 的數(shù)據(jù)包。當以太網(wǎng)卡在中斷結(jié)合模式下工作時,可以根據(jù)接收到數(shù)據(jù)包的數(shù)量 或者一定時間來產(chǎn)生中斷,數(shù)據(jù)包的個數(shù)和時問間隔都可以修改。 雖然中斷結(jié)合技術(shù)可以明顯地減少中斷開銷,但是它會增加數(shù)據(jù)包的平均延遲 時間。對有效的中斷結(jié)合參數(shù)的設定需要權(quán)衡數(shù)據(jù)包的延遲和處理器的處理性能 兩個方面。當網(wǎng)絡流量較低時,通過延時中斷并不能改善性能,因為數(shù)據(jù)包的傳 輸或接收速率不高,不會頻繁產(chǎn)生中斷,這種情況下采用減少時間間隔指標或者 數(shù)據(jù)包個數(shù)指標可以緩解數(shù)據(jù)包的延時。從另一方面考慮,選擇縮短時間間隔的 方式有可能導致在數(shù)據(jù)包還沒有到來時就產(chǎn)生中斷,這樣又浪費了處理器資源。 當網(wǎng)絡流量過大的情況下,增大時間間隔指標或數(shù)據(jù)包個數(shù)指標可以有效的減小 中斷開銷和提升處理性能。 2 4 2 中斷輪詢結(jié)合機制 通過2 3 小節(jié)的分析可以看到只有當數(shù)據(jù)包處理時間小于中斷時間的時候,才 能達到理想的捕獲性能。在千兆網(wǎng)絡下中斷的頻繁產(chǎn)生,f 。,變小,給后期的處理 帶來巨大壓力。為了改善數(shù)據(jù)包的處理性能,研究者們在對中斷的開啟或關(guān)閉機 制上做了一系列探索,一種基于半輪詢機制( n a p i ) 2 2 】的數(shù)據(jù)包接收方式隨后被 提出。 在單純的中斷關(guān)閉和開啟方案中,中斷關(guān)閉發(fā)生在內(nèi)核協(xié)議棧隊列不為空并且 處理器需要處理協(xié)議棧中的數(shù)據(jù)包的時候,中斷開啟發(fā)生在協(xié)議棧中的處理隊列 為空時。由于處理器對協(xié)議棧的數(shù)據(jù)包進行處理的時候是網(wǎng)卡中斷關(guān)閉的時候, 所以處理器不會受到新流入的數(shù)據(jù)包的產(chǎn)生的中斷干擾,避免了接收活鎖現(xiàn)象的 發(fā)生。 單純的輪詢機制是通過關(guān)閉數(shù)據(jù)接收中斷來徹底減少中斷開銷。在此種機制 下,操作系統(tǒng)每間隔一段時間對內(nèi)存緩沖區(qū)中的數(shù)據(jù)包進行處理,但是這種徹底 的關(guān)閉中斷方式難以實現(xiàn)。當有大量數(shù)據(jù)包需要處理的時候,我們常用規(guī)定一次 輪詢過程處理數(shù)據(jù)包的個數(shù),使其有時間預留給用戶態(tài)應用程序。單純輪詢機制 有兩大缺陷:第一,我們不能確定每時每刻內(nèi)存中都有數(shù)據(jù)包,當沒有數(shù)據(jù)包流 入的時候造成了處理器資源的浪費;第二,不能保證對最近流入的數(shù)據(jù)包進行及 時的處理。輪詢時間f a j 隔的選擇是非常關(guān)鍵的,當間隔過小,造成頻繁的輪詢, 會影響系統(tǒng)的性能造成額外的開銷,而當間隔過大,數(shù)據(jù)包又不能得到及時的處 理,造成延時。 第二章提升數(shù)據(jù)包捕獲性能的方法及相關(guān)知識的介紹 n a p i 已經(jīng)被用于一些操作系統(tǒng),l t & nl i n u x ,f r e e b s d 等。圖2 - 6 為l i n u x 系 統(tǒng)中半輪詢機制的實現(xiàn)流程。它主要用來減輕接收網(wǎng)絡數(shù)據(jù)產(chǎn)生的中斷開銷。 在f r e e b s d 4 6 和l i n u x 2 6 下都可以配置輪詢模式。他們都是引入配額概念來 實現(xiàn)輪詢,配額代表每個設備每次可被處理數(shù)據(jù)包的最大個數(shù)。但是在某些方面 還是有不同之處。前者在輪詢模式下,接收數(shù)據(jù)引起的中斷全部關(guān)閉,在輪詢期 間,一定配額的數(shù)據(jù)包會被送到協(xié)議棧進行處理。在這種情況下,當被輪詢的設 備數(shù)據(jù)包被逐個送入循環(huán)隊列進行處理完成后,設備內(nèi)部已經(jīng)沒有排隊數(shù)據(jù)包, 過一個時間間隔又產(chǎn)生一次輪詢,這樣將浪費處理器的資源。 圖2 - 6n a p i 輪詢機制流程 我們常提到的n a p i 輪詢屬于l i n u x 下的實現(xiàn)方式,為了保證操作系統(tǒng)內(nèi)部每 1 3 電子科技大學碩十學位論文 個設備能夠公平的享用處理器資源,除了引入配額概念,還引入了限額概念。限 額代表每次處理數(shù)據(jù)包的最大個數(shù)。假設一批數(shù)據(jù)包中的第一包到達,網(wǎng)絡設備 采用中斷方式通知系統(tǒng),系統(tǒng)將進入硬中斷階段,把該設備注冊到一個輪詢隊列。 此后,操作系統(tǒng)進入軟中斷階段,根據(jù)輪詢隊列對設備進行輪詢。在總限額大于 零的情況下,當設備的配額大于零且協(xié)議棧的等待隊列還中仍然有數(shù)據(jù)包未被處 理完,輪詢機制將在下一個階段被再次觸發(fā)。當某個設備端口發(fā)送的數(shù)據(jù)包被處 理完成后,此設備上的配額會實時的減少。上圖2 - 6 中進行了詳細的描述。 l i n u x 下的n a p i 輪詢機制在網(wǎng)絡負荷較大的情況下,趨近于輪詢機制,網(wǎng)絡 負荷輕松的情況下趨于中斷機制。所以它利于減少包長度較大數(shù)據(jù)包下的中斷開 銷,但對長度較小的數(shù)據(jù)包處理不夠及時。 2 4 3 零拷貝思想 在2 3 小節(jié)我們討論過:提高u ,能促進l i n u x 的報文捕獲能力。在此小節(jié)中, 我們將介紹零拷貝機制,它避免了多次拷貝造成的資源消耗,提高了報文的處理 速度。傳統(tǒng)的l i n u x 拷貝是指網(wǎng)絡數(shù)據(jù)從設備緩存區(qū)拷貝到內(nèi)核空間,再從內(nèi)核空 間拷貝到用戶空間。為了消除這些不必要的數(shù)據(jù)拷貝和系統(tǒng)調(diào)用,縮短網(wǎng)絡報文 的傳輸路徑,出現(xiàn)了零拷貝機制,它的基本思想是:利用d m a 技術(shù)將網(wǎng)絡數(shù)據(jù)包 直接存儲到內(nèi)核空間,這樣可以減少c p u 的

溫馨提示

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

評論

0/150

提交評論