易燦,劉彥姝
(湖南大眾傳媒職業技術學院,湖南長沙,410100)
目前,由于Web流量在整個網絡中所占的比例越來越高,因此變得越來越重要。通用的流量分類方法仍然可以將Web流量劃分為粗粒度類別,但并不能對它們進行細分。在當前的網絡環境中,Web流量所承載的應用程序遠遠超出了簡單的Web瀏覽任務。因此,盡管學術界和工業界已經在傳統的IP流量識別和Web流量識別中提出一些有效方法,但是在當前Web流量占據主導地位的當前網絡環境中,現有的方法遠遠不能滿足對Web流量進行精細識別的要求。因此,在現有研究成果的基礎上,繼續尋求能夠有效識別未知Web流量的理論和算法,對于提高網絡服務質量、網絡安全性能具有重要的理論意義。
由于以NetFlow是基于路由器策略轉發機制的流緩存技術,因此,在路由器板卡上緩存NetFlow會出現空間不足的現象,在高速網絡環境下,需要提前報告大量的流記錄。由于緩存空間不足,影響了流量監控的效果。目前,基于硬件探針的網絡流量監控設備和系統得到了廣泛的應用。它不依賴路由器的高速緩存,而是通過使用拆分器或節點設備的信息流復制功能來獲取消息的原始數據[1]。
硬件探測設備的輸出包括業務消息和流記錄消息。商業消息攜帶用于商業識別和商業信息提取的特定商業信息,例如HTTP請求和響應消息。流量數據包是流的統計信息,包括諸如字節數與消息數等信息。此消息信息通過Monitor傳遞到收集器,該收集器負責對消息進行分類和解釋。
隨著HTTP協議在媒體網站中的廣泛使用,Web流量已逐漸成為網絡中的最大流量,消耗了運營商最多的帶寬資源。為了優化網絡帶寬資源以提供更好的用戶體驗,操作員需要了解Web流量的來源。因此,對網絡流量的精細識別是運營商優化網絡帶寬資源分配的基礎。
典型的Web網頁是帶有鏈接到嵌入式對象的超文本文檔。對象是駐留在服務器上的文件。網頁通常包含兩種對象,主要對象和嵌入對象。主對象是指包含HTML文檔的對象,嵌入式對象是指鏈接指向超文本文檔的對象。鏈接通常是一個URL,它告訴瀏覽器如何檢索對象。典型的URL由三部分組成:方法、主字段以及路徑。主域代表網絡上計算機的名稱,可以是域名或IP地址。出于便于記錄的目的,大多數URL的主要域是域名。但是,帶有某些嵌入式對象的URL的主要域部分是IP地址。
城域網出口處部署了高性能流量監控設備TMS。它可以監視所有用戶訪問該網站的記錄,并且其監視結果以Web瀏覽記錄的形式存儲。對于流記錄,我們可以根據URL信息輕松地將兩個主頁的相應Web瀏覽記錄與網站相關聯。這兩個Web瀏覽記錄的對應流量稱作易知流量,而對應的IP地址稱作易知IP。但是,與兩個嵌入對象相對應的Web瀏覽記錄的URL的Host字段是IP地址,我們無法確定其歸屬。與這兩個流記錄相對應的流量稱為未知流量,而對應的IP地址稱作未知IP。
從Web流量生成過程的角度來看,Web流量可以視為一系列HTTP請求和響應。普通網頁通常由HTML文檔和一些嵌入式對象組成。用戶單擊網站鏈接或輸入URL后,瀏覽器將首先請求HTML頁面。將HTML完全加載到客戶端后,瀏覽器會根據HTML文件中每個嵌入對象的鏈接發出請求,直到整個頁面加載完畢。在網絡端,通過部署流量監控設備,監控給用戶訪問所有服務器的記錄,監控設備通常記錄信息的訪問時間t,訪問用戶id并訪問服務器的IP地址,訪問網站主域可以主要是域d,用于IP地址,IP,在訪問URL之前訪問站點可以表示為f,對流域名v的訪問。單個Web瀏覽記錄可以表示為,而所有Web瀏覽記錄可以表示為。通過對這些記錄的統計分析,我們可以找出這些服務器之間的關系,然后識別未知流量[2]。
與固定網絡類似,移動互聯網中的Web流量也是網絡中最大的流量,而固定網絡中Web流量的精細標識不能直接應用于移動互聯網,因為用戶訪問的方式網絡已經改變。對于運營商而言,將網絡流量與網絡側的特定APP相關聯,有利于網絡的精細管理,有利于分析用戶的行為特征,從而提供個性化服務。因此,在移動互聯網中,應用維度的精細流識別是國內外研究的熱點,具有現實意義。
隨著智能電話功能的增強,4G網絡的普及以及數據服務費用的降低,移動互聯網的流量正在迅速增加。因為基于HTTP協議易于構建Web應用程序并具有跨平臺開發的優勢,所以絕大多數移動應用程序都使用HTTP協議來傳輸客戶端和服務器之間的交互數據,從而促使Web流量在移動網絡中占主導地位,部分移動互聯網Web流量甚至占總流量的90%以上。然而,現有的基于端口和協議的流量識別方法無法細分移動互聯網中的Web流量。因此,對Web流量的精細識別已經成為研究的熱點。關于移動互聯網中Web流量的精細識別,現有方法可以分為三類:(1)把流量分為細粒度的服務類型;(2)與特定網站有關的流量;(3)與特定應用程序相關的流量[3]。
(1)方法通常根據HTTP數據包標題中的文件類型等信息對HTTP流量進行更精細的分類,可用于大致觀察網絡流量的分布。(2)方法通常將HTTP請求的“主機”字段與網站流量相關聯,該流量主要用于網站流量分析;(3)方法通常根據HTTP消息頭中的UA字段和Host56字段等指紋特征來獲取生成HTTP請求的應用程序名稱。當前,大多數(3)類方法仍保留在指紋特征提取的應用程序中,對于大多數中文應用程序,這些指紋特征通常是模糊的或不完整的應用程序名稱。因此,將應用程序指紋與應用程序名稱相關聯是此類方法進行細粒度HTTP流量識別的關鍵。指紋信息的不完整和模糊不清是無法識別應用程序全名的主要原因。為了更清楚地描述該應用程序并找到該應用程序的更多功能,提供了兩個思路:(1)根據應用產生的廣告流量,找到應用的唯一標識號;(2)綜合多個HTTP請求中的信息,以獲得可以全面應用的指紋功能。
3.3.1 應用識別系統框架
應用程序識別系統的每個模塊的功能描述如下:
UA功能提取:從UA中提取一個字符串,該字符串唯一地標識相應的應用程序。
互聯網知識的獲取:該模塊的功能是獲取Internet上UA的功能的相關信息,并形成UA的功能文本。
分詞:將從互聯網獲得的UA特征文本轉換為單詞。本文利用中文自然語言處理(NLP)開源項目組Ansj的中文分詞工具,該開源項目在TRECNovelty中文分詞系統中排名第一。分詞工具的輸入是一個句子,輸出是一個單詞/語音對。
應用程序名稱存儲庫:為了避免分詞算法將應用程序名稱劃分為不同的單詞,本文實現了一個程序,該程序從應用程序商店中檢索應用程序名稱,并構建一個appName存儲庫來存儲所有已檢索的應用程序名稱。代表詞中的詞性ository定義為appName。因此,當分詞工具進行檢測時,將與應用程序名稱存儲庫中的單詞相同的字符串分成一個單詞。
應用程序識別:此模塊的功能是從分詞結果中選擇與UA功能相對應的最可能的應用程序名稱
3.3.2 應用識別算法
應用程序識別系統的輸入數據是一組Web瀏覽記錄,可以表示為。瀏覽記錄包含請求的多個維度的信息。我們僅列出與本文內容相關的用戶ID和用戶代理UA。通過提取UA的功能并根據與這些功能相對應的APP用戶的數量從最高到最低對它們進行排序來獲得功能集。取x1,在搜索引擎中搜索,并將前5個搜索結果的標題作為x1的特征文本。根據某些規則將特征文本劃分為單詞,并計算每個單詞的出現次數。在獲得分詞結果之后,將應用識別問題轉化為從一系列候選詞中選擇一個詞作為與UA特征相對應的應用名稱,可以用公式(1)表示。

在公式;IPT代表查找X的應用程序的名稱,而:F代表選擇單詞的規則。
基于以上分析,我們分為五個步驟來實現對應用程序名稱的識別:
第1步:IPUA特征提取。IPHTTP消息的標頭通常包含UA信息,該信息包含客戶端的名稱標識符。此外,它可能包含有關客戶端的其他信息,例如電話類型,客戶端操作系統類型等。因此,UA字段可能包含多個字符串,而我們所需要的只是代表應用程序的UA特征字符串。因此,您需要在UA字段中過濾掉無用的信息。查看大量實際的HTTP請求數據包后,我們分兩步對UA進行了過濾。
第2步:獲取網絡知識。從UA個人資料排名最高的UA-100應用程序中刪除用戶,然后將這些UA作為關鍵字在搜索引擎中進行搜索,與移動應用程序相關聯,以便使搜索結果可以在每個UA關鍵字之后增加,對于每個UA搜索結果,均以前五個字段的標題作為UA文本的特征。
第3步:分詞。對于每個應用程序功能,計算功能文本中每個單詞的出現時間。由于帶有詞性appName的單詞是已知的應用程序名稱,因此這些單詞很可能是與UA功能相對應的應用程序名稱,因此應將更大的權重賦予這些單詞的出現次數。
第4步:應用程序識別。由于對應于不同應用指紋的候選應用名稱的出現時間相差很大,為便于統一設置不同應用指紋的詞選擇閾值,應通過以下公式對對應于同一應用指紋的單詞的出現時間進行標準化。等式(2)表明,對于某個應用程序指紋yn,其特征文本中的單詞出現yn的次數越多,S值越大,并且xm的應用程序名稱為yn的可能性就越大。

在尋找應用程序的UA特性的過程中,我們發現同一應用程序可能具有多個UA特性。這些UA特性可以分為兩類。一種是可以用于唯一確定應用程序名稱的UA特性,稱為專用代理[4]。另一種是用于實現應用程序功能的功能代理。由于功能代理沒有與其對應的實際應用,因此難以通過在搜索引擎中使用功能代理來搜索相應的應用名稱,從而降低了應用名稱識別的準確性。為了提高識別精度,需要過濾掉這些功能代理。
第5步:手動檢查識別結果。為了正確識別應用指紋,將存儲識別結果,以避免重復識別。對于已過濾的應用程序指紋,需驗證過濾結果是否正確。