互聯(lián)網(wǎng)流量流向研討

時間:2022-07-03 10:28:27

導(dǎo)語:互聯(lián)網(wǎng)流量流向研討一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

互聯(lián)網(wǎng)流量流向研討

隨著寬帶互聯(lián)網(wǎng)應(yīng)用的普及,互聯(lián)網(wǎng)用戶數(shù)量在不斷增加,各個領(lǐng)域的應(yīng)用也在逐步深入,網(wǎng)絡(luò)規(guī)模持續(xù)擴(kuò)展,網(wǎng)絡(luò)流量高速增長。尤其是P2P技術(shù)產(chǎn)生以來,互聯(lián)網(wǎng)網(wǎng)絡(luò)流量激增,對網(wǎng)絡(luò)的處理能力提出了更高的要求。同時,要合理、有效地疏導(dǎo)流量,必須對網(wǎng)絡(luò)流量進(jìn)行科學(xué)、細(xì)致的分析,通過流量分析可以有效地總結(jié)出網(wǎng)內(nèi)、網(wǎng)外流量比例,各區(qū)域用戶產(chǎn)生的流量大小,進(jìn)而對用戶使用習(xí)慣、各類應(yīng)用帶寬消耗情況等進(jìn)行分析,從而可以對不同區(qū)域用戶使用習(xí)慣、網(wǎng)內(nèi)資源建設(shè)方向等進(jìn)行有效的指導(dǎo)。不僅要依據(jù)數(shù)據(jù)的目的地址去疏導(dǎo)流量,還要明晰流量的來源和成分,區(qū)分流量類型,以精確地計算成本,合理分配IP地址數(shù)量和流量占用帶寬,使流量管理更加規(guī)范。Netflow技術(shù)最早由Cisco公司研發(fā),首先被用于網(wǎng)絡(luò)設(shè)備對數(shù)據(jù)交換進(jìn)行加速,并可同步實現(xiàn)對高速轉(zhuǎn)發(fā)的IP數(shù)據(jù)流進(jìn)行測量和統(tǒng)計。經(jīng)過多年的技術(shù)演進(jìn),Netflow對流經(jīng)網(wǎng)絡(luò)設(shè)備的IP數(shù)據(jù)流進(jìn)行測量和統(tǒng)計的功能更加成熟,并成為當(dāng)今互聯(lián)網(wǎng)領(lǐng)域公認(rèn)的最主要的IP/MPLS流量分析、統(tǒng)計和計費行業(yè)標(biāo)準(zhǔn)。Netflow技術(shù)能對IP/MPLS網(wǎng)絡(luò)的通信流量進(jìn)行詳細(xì)的行為模式分析和計量,并提供網(wǎng)絡(luò)運行的詳細(xì)統(tǒng)計數(shù)據(jù)。通過對某電信運營商的網(wǎng)絡(luò)進(jìn)行改造,引入互聯(lián)網(wǎng)流量分析系統(tǒng),以互聯(lián)網(wǎng)流量數(shù)據(jù)為分析對象,實現(xiàn)以下功能:(1)精確判斷流量歸屬地;(2)精確統(tǒng)計流量類型;(3)精確區(qū)分流量成分;(4)以天為單位,對某一天的流量及以天為周期單位的時間段產(chǎn)生的流量進(jìn)行查詢。

1流量分析系統(tǒng)設(shè)計

由于Netflow僅能宏觀地對網(wǎng)絡(luò)流量進(jìn)行分析和監(jiān)控,無法滿足精細(xì)化管理的要求。鑒于此,需要建立網(wǎng)絡(luò)流量分析系統(tǒng)。首先在省級主干路中引入流控設(shè)備,對全省網(wǎng)絡(luò)流量進(jìn)行控制。通過建立一臺Linux服務(wù)器(CMserver),在流控設(shè)備中將流量鏡像至此服務(wù)器的數(shù)據(jù)庫中,便可采集到全網(wǎng)的流量明細(xì),進(jìn)而通過存儲過程將各種需要分析的數(shù)據(jù)進(jìn)行聚合成表,便可對全網(wǎng)流量進(jìn)行實時監(jiān)控分析。本系統(tǒng)包括4個功能模塊,分別是數(shù)據(jù)采集模塊、接口程序模塊、數(shù)據(jù)庫模塊、頁面呈現(xiàn)模塊。

1.1數(shù)據(jù)采集模塊

要實現(xiàn)對流量源和目的地的分析,首先要進(jìn)行流量采集并存儲,采集的數(shù)據(jù)中要包含數(shù)據(jù)包的源地址、目的地址、數(shù)據(jù)包發(fā)送時間等信息。本系統(tǒng)采用NetflowV9版本進(jìn)行數(shù)據(jù)采集,需要對Netflow協(xié)議、待采集的路由器端口和數(shù)據(jù)采集存儲服務(wù)器等進(jìn)行配置。由于需要分析的路由器端口數(shù)據(jù)量很大,而且分析目的主要為各方向流量數(shù)據(jù)比例,綜合考慮數(shù)據(jù)處理量和數(shù)據(jù)準(zhǔn)確性之后,將采集周期定為5分鐘,采樣比例定為1000:1,此時每5分鐘Netflow數(shù)據(jù)流約有30萬~40萬條,存儲Netflow數(shù)據(jù)流的文件大小約20~30MB。在采集數(shù)據(jù)的端口選擇方面,既要采集所有流量數(shù)據(jù),保證數(shù)據(jù)的完整性;又要避免數(shù)據(jù)重復(fù)采集,以保證數(shù)據(jù)的準(zhǔn)確性。按照上述條件,選擇省級主干中路由器上行端口為流量采集端口,通過該端口既可以采集所有互聯(lián)網(wǎng)用戶訪問Internet的流量數(shù)據(jù),又不會發(fā)生流量數(shù)據(jù)重復(fù)采集情況。為分析路由器端口的網(wǎng)絡(luò)流量數(shù)據(jù),必須將從路由器中送出的Netflow數(shù)據(jù)收集并存儲,以便進(jìn)一步的處理,所以需要配置Netflow采集存儲服務(wù)器。具體配置為2.4GHz四核CPU、2G內(nèi)存,使用Linux系統(tǒng),并安裝CiscoNetflowCollector(NFC)采集軟件。

1.2接口程序模塊

經(jīng)過采集,每5分鐘會輸出一個格式為XML的文件,文件數(shù)據(jù)分3部分:數(shù)據(jù)頭、模板部分、數(shù)據(jù)部分。NetflowV9的數(shù)據(jù)格式可以自定義,根據(jù)分析需要,定義數(shù)據(jù)模板主要包括我們關(guān)心的13個字段,分別為:源地址、目的地址、源端口號、目的端口號、入接口、出接口、協(xié)議、服務(wù)類型、流數(shù)量、報文數(shù)、字節(jié)數(shù)、開始時間、結(jié)束時間。每個字段使用“|”分開。選用C++程序語言進(jìn)行數(shù)據(jù)的分析及入庫。程序語言完成的主要功能為按照字段定義進(jìn)行數(shù)據(jù)分列,并按要求建立數(shù)據(jù)表,然后將分析后的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫中。原始數(shù)據(jù)每天自動生成一個文件夾,文件夾中每5分鐘生成一個數(shù)據(jù)文件,為了達(dá)到自動讀取數(shù)據(jù)的功能,采用“日期+時間”循環(huán)來自動讀取數(shù)據(jù)文件。讀取數(shù)據(jù)文件對每行按照不同字段分列。由于每個數(shù)據(jù)文件的數(shù)據(jù)頭部分完全相同,而且不包含所要分析的數(shù)據(jù)信息,所以可以把數(shù)據(jù)頭部分跳過,然后根據(jù)每行數(shù)據(jù)的“|”將每個字段的數(shù)據(jù)進(jìn)行分列。再根據(jù)各字段數(shù)據(jù)分析的需要,轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)類型,并與數(shù)據(jù)庫連接寫入數(shù)據(jù)庫中。

1.3數(shù)據(jù)庫模塊

作為基于Netflow流量的分析系統(tǒng),數(shù)據(jù)庫成為系統(tǒng)的基礎(chǔ)及核心,一切功能模塊及數(shù)據(jù)采集均需建立在數(shù)據(jù)庫中,從性能、成本、易用性、可靠性等方面綜合考慮,選用MySQL作為本系統(tǒng)的數(shù)據(jù)庫。首先是基本表的設(shè)計。在程序操作數(shù)據(jù)表時,讀寫的性能受數(shù)據(jù)表字段所占字節(jié)數(shù)的影響,數(shù)據(jù)表字段所占字節(jié)數(shù)越大,則需要更長的讀寫操作時間,字段所占字節(jié)數(shù)越小,則其讀寫操作的性能將會有所提高。因此,設(shè)計數(shù)據(jù)庫字段的屬性對整個系統(tǒng)的性能至關(guān)重要。在分析程序?qū)?shù)據(jù)按照規(guī)則條件進(jìn)行匹配后,將更新數(shù)據(jù)表中IP地址等相應(yīng)的歸屬信息,但在數(shù)據(jù)的進(jìn)一步匯總中,如果匯總程序按照IP地址歸屬信息進(jìn)行數(shù)據(jù)分組匯總,則需要讀取歸屬信息的全部字節(jié)數(shù),這對于系統(tǒng)整體匯總而言,其運行效率仍會受到影響。本著讀取最少字節(jié)數(shù)以提升系統(tǒng)工作效率的原則,需要將歸屬信息代碼化,匯總程序僅需要根據(jù)歸屬信息代碼作為分組條件即可。根據(jù)Netflow的原始數(shù)據(jù)量,如果對其進(jìn)行一一匹配對應(yīng),則無法在5分鐘內(nèi)完成相應(yīng)的數(shù)據(jù)歸屬、流量分析等操作。為了提高數(shù)據(jù)庫效率,最直接的方法就是先進(jìn)行關(guān)鍵字段的聚合,然后進(jìn)行相應(yīng)的遞歸聚合,最后將分析數(shù)據(jù)進(jìn)行匹配分析,這樣可以有效地減少原始數(shù)據(jù)的運算量,尤其在磁盤I/O有限的條件下,性能提升更明顯。在數(shù)據(jù)遞歸聚合后,雖然數(shù)據(jù)量已經(jīng)有了極大的壓縮,但數(shù)據(jù)庫運算仍然十分緩慢,因此在各級數(shù)據(jù)表中,對需進(jìn)行運算的字段進(jìn)行索引配置。索引是用來快速地尋找那些具有特定值的記錄,所有MySQL索引都以B-樹的形式保存。如果沒有索引,執(zhí)行查詢時MySQL必須從第一個記錄開始掃描整個表的所有記錄,直至找到符合要求的記錄。表里面的記錄數(shù)量越多,這個操作的代價就越高。如果作為搜索條件的列上已經(jīng)創(chuàng)建了索引,MySQL無需掃描任何記錄即可迅速得到目標(biāo)記錄所在的位置。由索引帶來的效率提升則是非常明顯的,如同看書時按照目錄查詢章節(jié)一樣迅速。在本系統(tǒng)中,由于要從目的IP地址中分析出該IP的分公司歸屬,這對于運營商龐大的不連續(xù)的IP地址段數(shù)據(jù)表來說,其哈希運算將會帶來極大的系統(tǒng)符合,其運算效率也將隨著兩張數(shù)據(jù)表記錄的增長而成倍的增長。通過對比測試,在沒有配置索引的情況下,其數(shù)據(jù)運算的時間大約為20分鐘,而索引可以將此工作縮短至1分半鐘左右,這恰好可以完成數(shù)據(jù)在5分鐘內(nèi)的運算操作。

1.4頁面呈現(xiàn)模塊

在對數(shù)據(jù)進(jìn)行分析處理后,利用Eclipse+JSP+Tomcat平臺,將結(jié)果以網(wǎng)頁形式展現(xiàn)出來,并實現(xiàn)多種查詢功能(如圖1所示)。

2結(jié)束語

在研究互聯(lián)網(wǎng)技術(shù)和相關(guān)協(xié)議的基礎(chǔ)上,通過對互聯(lián)網(wǎng)流量數(shù)據(jù)的分析處理,運用C++,MySQL,Eclipse,JSP和Tomcat+Java等工具,實現(xiàn)了互聯(lián)網(wǎng)流量分析系統(tǒng)的設(shè)計,解決了互聯(lián)網(wǎng)流量分析管理過于宏觀的問題。在互聯(lián)網(wǎng)規(guī)模不斷擴(kuò)展和應(yīng)用領(lǐng)域不斷增加的趨勢下,互聯(lián)網(wǎng)流量的迅猛增長,使得流量成分越來越復(fù)雜,而過于宏觀的流量分析技術(shù)已經(jīng)不能滿足電信運營上的管理要求,只有通過可靠、有效的網(wǎng)絡(luò)業(yè)務(wù)流量監(jiān)測,并對互聯(lián)網(wǎng)絡(luò)以及網(wǎng)絡(luò)所承載的流量進(jìn)行細(xì)致的統(tǒng)計,準(zhǔn)確及時的流量流向分析,才能挖掘出網(wǎng)絡(luò)資源潛力,以達(dá)到控制網(wǎng)絡(luò)互聯(lián)成本,為企業(yè)的網(wǎng)絡(luò)規(guī)劃、優(yōu)化調(diào)整和業(yè)務(wù)發(fā)展提供有力的依據(jù)。