行政院國家科學委員會專題研究計畫 成果報告
使用網路系統晶片建構兼具高效能及自我調適特性之網路
流量辨識系統(II)
研究成果報告(精簡版)
計 畫 類 別 : 個別型
計 畫 編 號 : NSC 98-2220-E-151-001-
執 行 期 間 : 98 年 08 月 01 日至 99 年 07 月 31 日
執 行 單 位 : 國立高雄應用科技大學資訊工程系暨研究所
計 畫 主 持 人 : 羅孟彥
計畫參與人員: 碩士班研究生-兼任助理人員:柯名澤
碩士班研究生-兼任助理人員:董耀文
碩士班研究生-兼任助理人員:王聖爵
處 理 方 式 : 本計畫涉及專利或其他智慧財產權,2 年後可公開查詢
中 華 民 國 100 年 01 月 07 日
1
行政院國家科學委員會補助專題研究計畫
行政院國家科學委員會補助專題研究計畫
行政院國家科學委員會補助專題研究計畫
行政院國家科學委員會補助專題研究計畫
■
■
■
■ 成 果 報 告
成 果 報 告
成 果 報 告
成 果 報 告
□
□
□
□期中進度報告
期中進度報告
期中進度報告
期中進度報告
使用網路系統晶片建構兼具高效能及自我調適特性之網路流量辨識系統(II)
計畫類別:
■
個別型計畫 □整合型計畫
計畫編號:NSC 98- 2220 - E - 151 - 001
-
執行期間: 98 年 8 月 1 日至 99 年 7 月 31 日
執行機構及系所:國立高雄應用科技大學 資訊工程系
計畫主持人:羅孟彥
共同主持人:
計畫參與人員:柯名澤、董耀文、王聖爵
成果報告類型(依經費核定清單規定繳交):■精簡報告 □完整報告
本計畫除繳交成果報告外,另須繳交以下出國心得報告:
□赴國外出差或研習心得報告
□赴大陸地區出差或研習心得報告
□出席國際學術會議心得報告
□國際合作研究計畫國外研究報告
處理方式:
除列管計畫及下列情形者外,得立即公開查詢
■涉及專利或其他智慧財產權,□一年■二年後可公開查詢
中 華 民 國 99 年 10 月 30 日
摘要
摘要
摘要
摘要
本計畫主要的目的在於研究如何以網路系統晶片實現一個網路流量辨識與管理的系統,我們首先研究 網路系統晶片的架構,了解其如何分割網路處理功能於 slow path 與 fast path 的基本原理,我們於 是以模組化的方式設計與實作我們的流量辨識與處理系統,期能結合特製化硬體高速處理的優點,又 能保持軟體實作的靈活性,減少網路系統在設計、實作以及修改時所需的時間與成本。我們於 Linux 的 核心中實現這樣一個模組化的系統架構,然後將其移植至不同的系統平台中,第一個是以一般嵌入式 處理器(PXA270)所建構而成的系統,實驗結果證實這樣的系統可以足以應付小型企業或是大樓網路的 需求,第二個是以網路處理器建構的系統,我們也將系統實際上線運作於我們的校園網路中,實際分 析與記錄進出我們校園骨幹網路的流量,實測證實,它能夠應付一個中型大學校園網路的流量管理需 求。 關鍵詞:流量辨識、網路系統晶片、網路管理 1.前言前言 前言前言 為確保網路能正常運作,管理者通常需持續的監控網路運作情形,檢查是否有不當之應用、異常 的流量、或是網路攻擊行為存在;或是找出缺乏效率的頻寬濫用、誤用的情形,再藉由進一步的管制措 施,限制某些應用的傳輸,以確保其他應用的正常傳遞;甚或是瞭解網路傳輸瓶頸,並據以規劃後續擴 充作業。這些工作要能被正確的執行,很重要的前提是要先能分析出網路流量是由哪些應用所造成的、 從何而來、流向何處。然而,近年來許多新的網路應用或無意或惡意的並沒有使用固定的通訊埠號碼 來躲避防火牆的阻擋,例如:線上遊戲、即時通訊軟體、Bittorrent、Foxy 、eMule 的各式 P2P 軟體 等等,使得網路應用日益不易辨識,讓網路流量分析與管理成為一個棘手且困難的問題。 由於前一年的計劃執行後,我們已經完成一個能夠實際上線的軟體系統,系統實際的運作結果也 吸引很多廠商的興趣,然而目前以軟體方式實作這類網路流量分析管理系統,最大的顧慮應該就是系 統效能能否支撐網路的流量,本年度計畫主要的目的在於以網路系統晶片實作成一個嵌入式系統,以 尋求更高效能以及完整功能的實現,進而完成一個能夠實際管控網路流量的網路設備。本系統的結果 日後可以延伸應用於有效的分析網路上各種應用,得以分辨非法或是惡意的網路應用;也才能夠施以策 略性的控制來有效管理網路流量,使得重要的網路應用得以獲得所需的服務品質;也得以對網路資源的 使用趨勢做全面性且長期性的分析與評估,因而能對整體網路的資源投資與規劃作出最佳的決策。 在本報告的第二部份我們將先介紹本計畫實施的研究方法,以及實作的相關過程,然後第三部份 是成果自評,第四部份則是分析應用性與未來研究方向。 2.研究方法研究方法 研究方法研究方法 本研究計畫目的在基於第一年的軟體實作經驗,將系統移植到嵌入式系統,我們主要將利用網路 處理器的系統晶片來實作,因此我們先深入的分析各式網路系統晶片的架構,從而挑選出最適合的系 統來實作。這個部份主要的困難在於須充分的考慮到底層硬體架構的多樣性,因此我們的解決方法是 將系統採取模組化的設計,使得我們的系統各個功能能夠被彈性的配置至不同的硬體模組,也才可以 輕易的被移植至各式的嵌入式平台中,根據我們前一年以軟體實作的經驗,我們將系統規劃成如圖一 所示,我們將所需的各種功能整合於一個嵌入式系統平台之上。底層將直接與底層網路晶片硬體協同 合作,我們結合了內容比對(content-based)與網路行為比對的演算法,實作成一個流量辨識模組,能 夠正確的辨識各種網路流量(除了一般網路應用外,還包括各式 P2P 軟體、VoIP 等新興應用),這個部 份將實作在網路系統晶片的 data plane。上層則是提供系統動態組態的功能,系統可以隨時加入新的
3 流量辨識規則,以應付新興的網路應用;管理者也能夠設定各式網管政策,限制每種網路應用或是使 用者的流量或網路使用權,讓每位網路使用者都能夠得到他所應得的頻寬。 接著我們開始研究網路系統晶片的內部架構,由於網路系統晶片在設計策略上廣泛的使用了平行 處理的概念,所以目前絕大部分網路系統晶片內部都是具有多重處理器的架構。這些內部處理器可以 分為兩種:一種是具有一般運算能力和指令存儲能力的處理器,這通常被規劃為處理慢速資料路徑;另 一種是能夠完成特定處理任務的特殊處理器,目的在於能夠高速的處理快速資料路徑的問題。此外, 網路系統晶片還引入以硬體實作的多執行緒(multi-thread)技術來加以解決,因此這個階段的實作與 研究重點在於將前一年度以軟體實作的封包攔截與處理機制,有效的實作於這些硬體設計與架構上, 參與人員因而也獲致寶貴的經驗。 下一階段則是研究記憶體的配置策略與實作規劃,由於我們的流量分類系統須執行封包分類與內 容比對的工作,在以軟體實作的系統中,只要控制記憶體的大小,至於配置與管理工作是作業系統來 提供;若是改以網路系統晶片來實現,則需自行處理記憶體的規劃,也就是須研究如何將資料結構排 放在合適的記憶體。因此這個階段的研究重點在於如何配置系統記憶體的使用。研究的重點有兩個: 搜尋機制與資料結構。搜尋是封包分類模組的核心機制,搜尋演算法本身的瓶頸通常在於記憶體存取 次數,如果在固定的時間內只能從記憶體中取出一筆資料,則不管硬體搜尋電路做再多的平行化或是 管線化,都無法加快搜尋的速度。因此設計重點在於盡量減少記憶體的存取次數。空間需求則是搜尋 的資料結構所需的記憶體空間,這個部份與所使用的演算法通常是息息相關的,由於系統晶片所提供 的記憶體階層通常不同,有些配有速度較快但高價的記憶體,因此如何將所需資料結構擺放至合適的 記憶體位置是一個重要的設計考量。 圖一 光是使用平行多處理器架構以及高速硬體並不能保證網路系統會有好的效能,高效能的網路處理 需要巧妙的資料結構、演算法以及對於細節的額外考量,因此計畫執行的最後一個階段在於整合之前 的軟體實作與前兩階段的實作,在完成系統的規劃與實作於網路系統晶片後,我們則開發與建立系統 量測工具與環境,並讓系統實際上線運作。 3. 3. 3. 3.成果自評成果自評成果自評成果自評
本計畫的成果可分為三個方面: 一、 系統實作方面: 本年度計畫的具體目標是在網路系統晶片上實作一個流量辨識系統,我們已 經具體達成這個目標,已完成一個能有效監控以及管理網路流量的系統。我們首先在實驗室中, 根據去年預存下來的流量資料(有完整封包內容的),我們撰寫一個程式將封包以原始速度匯給我 們的系統,經過除錯後,我們的系統已經可以達成跟前一年以軟體實作的系統有一樣的正確性。 就系統實作面而言,本年度計畫執行的達成率相對於計畫內容來看 95%都已完成。我們接著測試系 統 的 效 能 是 否 能 接 近 線 速 (wire speed) , 我 們 跟 廠 商 借 了 一 台高 速 網 路 效 能 分 析 系 統 (I X I A ,www.ixiacom.com),測試前一年的軟體系統(without NP)以及今年的實作系統(With NP), 受限於精簡報告篇幅限制,我們僅列出主要實測數據如表一。 表一 結果可以看到,在純粹以軟體實作的版本(Without NP)的情況下,流量只要超過 500Mb/s 的時候, 就已經有非常顯著的 packet loss rate,相較之下,以網路處理器實作的系統,在流量速度到達 800Mb/s 的時候,才開始有掉封包的現象,直到以線速的速率送時,仍然保持的一定處理效能,至於 6.3%的掉 封包比例對於某些商用網路或系統來看還是偏高,我們進一步分析,主因在於我們的機制是整個封包 的內容都掃描,如果我們能夠只掃描每一個封包的部份內容的話,就能達到線速要求,因此我們針對 真實流量去做很詳盡的統計,結果(如圖二所示)發現,根據我們的演算法,只要我們掃描到每一個封 包的前 650 bytes,就能夠達到原本的 95%的準確率,如果掃描到每一個封包的前 800 bytes,就能夠 達到 100%的準確率,而若我們調整成系統只掃描前每一個封包的前 800 bytes,則在線速的流量下仍 能達到沒有任何 packet loss 的情況。 圖二 二、 學術價值方面: 本計畫在學術研究上的具體成果是實際系統實作以及效能評估,經過實際的 效能量測,透過網路系統晶片實作的流量辨識與管理系統,效能有顯著的提升,足以應付中大型 的網路流量監控需求。而且其運作效率也可用來解決複雜的運算處理任務。我們也已蒐集許多實
5 測的數據,部份已經發表[1,2,3],其餘正在整理並投稿於國際期刊中。我們的實際經驗與數據將 可釐清如何建置一個更高智能的網路設備、以及如何設計網路系統晶片等相關問題,因此將具有 重要的學術價值。也可以供作其他研究者在開發應用系統時之參考依據,這個部份的實作經驗對 國內相關廠商也將有所助益,藉由我們實作雛形系統的經驗,可以縮短日後開發類似產品的時程。 三、 人才培育方面: 在實作的過程,參與的人員深入的了解如何有效的模組化並結合軟硬體的資 源,來實作一個能夠處理高流量的網路系統,參與人員對於硬體架構有更清楚的了解與實務經驗, 雖然過程中遇到很多的問題,但參與人員因而有親自將一個網路處理系統實作出來的經驗,最大 的收穫是能夠了解如何將系統透過適當的模組化設計,使得我們得以結合網路系統晶片完成一個 流量辨識系統,計畫參與人員並且在下列比賽有獲獎記錄: 98 學年度大學校院網路通訊軟體與創意應用競賽,在網際應用與服務組榮獲第二名,在嵌入 式系統組入圍決賽。 2010 中華電信加值應用大賽,在 637 參賽隊伍中,獲得佳作佳作佳作佳作肯定。 4. 4. 4. 4.成果可應用性成果可應用性成果可應用性成果可應用性 本計畫以網路系統晶片實作一流量辨識與管理系統,由於網路系統晶片不只可以應用在核心骨幹網路 (core/backbone network)的設備上,而且正被快速的應用在各式網路邊緣的設備上,這些邊緣設備雖 然不像核心網路設備需要滿足高頻寬的需求,但是它將負責更為複雜的處理任務,因此網路系統晶片 的高度彈性在這個領域被寄與厚望,例如各式智能的路由/交換設備、網路安全設備(如防火牆、VPN 及入侵偵測系統等)、無線/Ad Hoc/3G 網路中的路由設備、各式網路監控設備等等。因此本計畫的實 際經驗與數據將可釐清如何建置一個更高智能的網路設備、以及如何設計網路系統晶片等相關問題, 因此將具有重要的學術價值。也可以供作其他研究者在開發應用系統時之參考依據,這個部份的實作 經驗對國內相關廠商也將有所助益,藉由我們實作雛形系統的經驗,可以縮短日後開發類似產品的時 程。 參考文獻:
1. Chu-Sing Yang, Ming-Yi Liao, Mon-Yen Luo and Shin-Min Wang, "A Network Management System Based on DPI," in the Proceeding of the fourth International Workshop on Advanced Distributed and Parallel Network Applications (ADPNA-2010). Takayama, Gifu, Japan, Sept. 14-16, 2010.
2. Mou-Sen Chen, Ming-Yi Liao, Pang-Wei Tsai, Mon-Yen Luo, Chu-Sing Yang, C. Eugene Yeh, “Using NetFPGA to Offload Linux Netfilter Firewall,” The NetFPGA Developers Workshop, CA, USA, 2010.
3. 蔡邦維,鄭佩汶,陳茂森,羅孟彥,劉德隆,楊竹星, “Planning and Deployment of OpenFlow Networks over Internet,” in Proceedings of the Taiwan Academic Network Conference 2010 (TANET 2010).
4. 吳睿紘, 羅孟彥, ”基於應用層特徵之網路流量監控與分析系統” in Proceedings of the Taiwan Academic Network Conference 2009 (TANET 2009).