專利名稱::一種實時識別多種p2p-tv應用視頻流的方法
技術領域:
:本發明屬于網絡數據通信領域,特別是一種從網絡流量中實時準確地識別出PPLive、PPStream、SopCast和UUSee等P2P-TV應用系統視頻流的方法,具體地說是一種實時識別多種P2P-TV應用視頻流的啟發式方法。
背景技術:
:當前經過IP協議向桌面用戶分發電視流式內容是因特網的一種主流應用,并且由于P2P技術具有的資源聚合的經濟性、較好的擴展性和可靠性、自組織的動態性等優點,使這些系統大都利用P2P覆蓋網絡對播(peercast)流式內容。對播是指經過P2P網絡以多播、廣播或單播傳輸數據流的方式,常用的是P2P多播和P2P廣播。目前我們見到的最為流行的對播應用包括P2P應用無線電、P2P流式音樂和基于P2P的因特網電視(亦稱P2P-TV)。而P2P-TV又可以分為流式直播和點播兩種方式。與P2P文件共享不同,上述應用中的對等方不需要下載整個文件到本地就能夠收看或收聽流式(streaming)內容,這就大大改善了用戶體驗。由于電視媒體對人類文化和生活方式的重要影響力,以及它在網絡中產生的巨大流量,理解、管理和引導P2P-TV應用的行為是當前各研究機構、因特網服務提供商關注和研究的主題,而這一切的前提首先要能夠識別P2P-TV流。所謂P2P-TV流是指以P2P方式傳輸的電視信號報文集合,它們符合五元組{源IP地址,源端口號,目的IP地址,目的端口號,運輸層協議類型}流規范和64秒超時定義的雙向流[l],可以采用如文獻[4]類似的思路來解決流形成和按流分析等問題。本專利給出的實時識別P2P-TV應用視頻流的技術,主要是指識別當前流行的PPLive、PPStream、SopCast和UUSee應用系統的視頻流。由于當前大多數P2P應用都采用了隨機端口技術,因而無法利用周知端口號對P2P應用進行識別。當前識別P2P-TV應用視頻流的方法可分為3類:基于應用協議特征字的識別方法、基于行為特征的識別方法和基于機器學習的分類方法。基于應用協議特征字的識別方法通過分析P2P協議的應用層負~載,提取出能夠唯一標識出協議類型的特征字符串,以識別出P2P應用。這種識別方法也稱為深度分組檢測(DeepPacketInspection,DPI),它具有識別準確率高,但缺點是無法識別加密數據。基于行為特征的識別方法綜合利用了流的屬性、統計特性以及流的行為特征,根據啟發式規則對流進行分析,達到識別P2P應用的目的。這種方法識別時間較長,且識別準確率不夠高。基于機器學習的分類方法通過提取各類應用的流、分組等信息對分類器進行訓練,然后利用訓練好的分類器對數據進行分類。這種方法識別時間長,且準確性有待提高。文獻[2]根據不同的P2P-TV系統在起始階段所發送的分組數目是不同的,將系統啟動后固定大小的時間段按照等比數列劃分為若干個時間片,并計算出各個時間片內所發送的分組數占總分組數的比例,構成一個向量,并利用支持向量機識別網絡中的P2P-TV流量。文獻[3]通過分析PPLive報文結構,通過構造節點列表請求報文獲取網絡中的PPLive節點信息,從而提出了一種主動檢測PPLive流的方法。目前的這些識別P2P-TV視頻流的方法仍存在著識別率不夠高、識別滯后且節點信息殘存時間較長的缺陷,需要研制更好的識別方法。
發明內容本發明的目的是針對目前識別P2P-TV視頻流的方法存在的識別率不夠高、識別滯后且節點信息殘存時間較長的缺陷,提出一種從網絡流量中實時準確地識別出多種P2P-TV應用系統視頻流的方法。本發明的技術方案是1.一種實時識別多種P2P-TV應用視頻流的方法(簡稱基于啟發式的視頻流識別(Heuristic-basedIdentifyingVideoFlows,HIVF)方法),其特征在于,包括下列步驟A.初始化步驟由被識別的P2P-TV系統的服務器域名信息(參見表l)獲取相應服務器的IP地址并存入服務器地址集ServIPAddr中;由被識別的P2P-TV系統UDP報文應用層的前n個字節(nG25)作為特征字(參見表2)放入應用層特征字表StringBase中;構造一個節點信息表NodeSet,以存儲當前已識別的正在運行P2P-TV的主機IP地址,每個地址表項都有一個時間TTL與之關聯,NodeSet初始為空,繼續;B.初步識別步驟對每個到達的網絡鏈路的新報文,若流類型未知,由四元組(源IP地址,目的IP地址,源端口號,目的端口號}信息經散列函數判斷其是否屬于已有流;若該流記錄類型已知則返回至步驟B;否則,當報文是TCP分組則轉C,當報文是UDP分組轉D;.C.識別與服務器通信的步驟將報文目的IP地址和源IP地址與服務器地址集ServIPAddr中的服務器IP地址進行比對,若服務器地址集中有一個IP地址與一個報文的目的IP地址匹配,則將該分組的源IP地址及相關服務器所屬的P2P-TV類型放入NodeSet中,并設相應TTL為IO,返回至步驟B;否則直接返回至步驟B;D.匹配應用層特征字的步驟:將報文源IP地址和目的IP地址與NodeSet中的報文源地址進行比對,若報文源IP地址和目的IP地址均不在NodeSet中,返回至步驟B;否則將報文應用層第1~5個字節與StringBase中相應的P2P-TV應用層特征字比對,若不匹配繼續;否則該流標識為對應類型的P2P-TV視頻流,并設相應TTL為IO,返回至步驟B;E.更新NodeSet表步驟每經過16秒就檢查NodeSet所有非空表項,將其TTL值減1,若為零則刪除該表項,返回至步驟B;否則返回至步驟B。表1各種P2P-TV系統主要的服務器域名P2P-TV系統P2P-TV服務器域名PPLivepassport.pplive.com,vodchannel.pplive.com,iptable.pplive.com,pp.pplive.com,update.pplive.com,list.pplive.comPPStreamfds.ppstream.com,tvguide.pps.tv,vodguide.pps.tv,msg.ppstream.com,download.ppstream.com,5<table>tableseeoriginaldocumentpage6</column></row><table>注表l中的信息基本穩定,但以后也可能會有變化表2幾種P2P-TV系統應用層特征字及其位置信息(Ox表示16進制)<table>tableseeoriginaldocumentpage6</column></row><table>注表2信息適用于近期P2P-TV應用系統的版本號PPLive為2.2.26.0002,PPStream為2.3.550.1950,SopCast為3.0.3,UUSee為5.9.710.2。利用每個節點都具有不變的UDP監聽端口的特點,構造一個監聽端口表ListenPort,通過統計得到各個節點的監聽端口號并記錄在ListenPort中,這時可采用效率更高的端口識別方法來識別視頻流。本發明相對于現有技術具有以下優點1、識別率高。較之現有的識別方法,本發明有較高的識別率、較低的識別差錯率。這主要得益于HIVF方法采用了兩階段識別過程與服務器通信的過程,是根據P2P-TV節點必須訪問服務器地址集的行為;應用層特征字匹配過程,流的前幾個分組包括應用層特征字。2、效率較高,實時強。通過首先排除已經識別類型的流,使方法處理對象大為減少;識別方法有較低的計算復雜性,能夠實時在線及時處理完(不會積壓)網絡鏈路上所有分組,要求解決方案。圖1為本發明實施例運行的環境。圖2為本發明實施例對應HIVF方法流程圖。具體實施例方式下邊結合附圖和具體實施方式對本發明作進一步地說明。首先需要給出本發明提供的識別方法所需要的環境,如圖1所示在Intel-Linux架構的PC機上安裝并運行具有的本發明的HIVF識別方法的軟件,將該PC機的100/1000Mb/s以太網卡連接到接入網絡主干的局域網交換機上,并使之能夠接收到鏈路上的所有流量。如果要在高速網絡環境下應用本發明的識別方法,應當考慮用硬件實現相關識別方法。運行本發明提供的識別P2P-TV視頻流的系統配置如下在Intel-Linux架構的PC機上安裝并運行基于本發明HIVF的軟件,PC機的100/1000Mb/s以太網卡與網絡交換機相連。這些PC機硬件的主頻3.0GHz及以上的Pentium雙核CPU的PC機,內存^2GB,硬盤80GB,運行Fedora10操作系統。圖2給出了本發明基本HIVF方法的工作流程圖,該流程開始于步驟SiOl,由被識別的P2P-TV系統的域名信息獲取相應服務器的IP地址并存入服務器地址集ServIPAddr中;由被識別的P2P-TV系統UDP報文應用層的前幾個字節作為特征字放入應用層特征字表StringBase中;構造一個節點信息表NodeSet,以存儲當前已識別的正在運行P2P-TV的主機IP地址,NodeSet初始為空,每個地址表項都有一個時間TTL與之關聯,NodeSet初始為空,繼續轉S102。在步驟S102中,對每個到達的新報文,若流類型未知,由四元組(源IP地址,目的IP地址,源端口號,目的端口號}信息經散列函數判斷其是否屬于已有流;若該流記錄類型已知轉S102;否則,當報文是TCP分組則轉S103,當報文是UDP分組轉S104。在步驟S103中,將報文目的IP地址和源IP地址與服務器地址集ServIPAddr中的服務器IP地址進行比對,若服務器地址集中有一個IP地址與一個報文的目的IP地址匹配,則轉S105將該分組的源IP地址及相關服務器所屬的P2P-TV類型放入NodeSet中,并設相應TTL為TO,轉1ST02;否則轉S102。在步驟S104,若報文源和目的地址均不在NodeSet中,轉S102;否則轉~S106。在步驟S106中,將報文應用層第1~5個字節與StringBase中相應的P2P-TV應用層特征字比對,若不匹配轉S108;否則轉S107,將該流標識為對應類型的P2P-TV視頻流,并設相應TTL為IO,轉S102。在步驟S108中,每經過16秒就檢査NodeSet所有非空表項,將其TTL值減l,若為零則刪除該表項,轉S102;否則轉S102。本方法可以通過中斷方式M出。實施例本實施例給出了某ISP在PC上運行基于本發明識別算法的軟件對某企業網接入因特網的P2P-TV視頻流進行識別,以掌握該企業網中P2P-TV視頻流的應用情況并為制定控制管理P2P-TV視頻流方案提供科學依據。假定該企業網經100/1000Mb/s速率的以太網鏈路與某因特網服務提供商的網絡相連。在PC上運行基于本發明識別方法的軟件,將該PC的100/1000Mb/s以太網卡連接到與因特網服務提供商網絡連接的局域網交換機上,并將該交換機配置為能夠監聽與主干網相連的所有網絡流量。例如,當該企業網與因特網直接相連,所有機器都具有唯一的因特網IP地址,這時網絡用戶使用PPLive、PPStream、SopCast和UUSee應用系統觀看網絡電視。識別系統將調用HIVF方法,識別出基于UDP的這些應用的視頻流。通過收集上述識別出來的P2P-TV視頻流信息,ISP就能統計出用戶使用P2P-TV網絡電視的數量、時間長度、用戶分布等情況等。據此,ISP就能夠制定相應的策略管理和控制P2P-TV網絡電視了。本發明未涉及部分均與現有技術相同或可采用現有技術加以實現。參考文獻K.claffy.Internettrafficcharacterization.SanDiego:UniversityofCalifornia:1994.S.Valenti,D.Rossi,M.Meo,M.Mellia,P,Bermolen.Accurate,fine-grainedclassificationofP2P-TVapplicationsbysimplycountingpackets.InInternationalInTrafficMeasurementandAnalysis(TMA)WorkshopatIFIPNetworking'09Aachen,Germany,May2009.胡超,陳鳴,許博,李兵.一種基于爬蟲的分布式PPLive流實時檢測系統.解放軍理工大學學報,2008,9(5):512-516N.Brownlee,C.Mills,andG.Ruth.,TrafficFlowMeasurement:Architecture.RFC2722,1999.權利要求1.一種實時識別多種P2P-TV應用視頻流的方法,其特征在于,包括下列步驟A.初始化步驟由被識別的P2P-TV系統的服務器域名信息獲取相應服務器的IP地址并存入服務器地址集ServIPAddr中;由被識別的P2P-TV系統UDP報文應用層的前n個字節作為特征字放入應用層特征字表StringBase中;構造一個節點信息表NodeSet,以存儲當前已識別的正在運行P2P-TV的主機IP地址,每個地址表項都有一個時間TTL與之關聯,NodeSet初始為空,繼續;B.初步識別步驟對每個到達的網絡鏈路的新報文,若流類型未知,由四元組{源IP地址,目的IP地址,源端口號,目的端口號}信息經散列函數判斷其是否屬于已有流;若該流記錄類型已知則返回至步驟B;否則,當報文是TCP分組則轉C,當報文是UDP分組轉D;C.識別與服務器通信的步驟將報文目的IP地址和源IP地址與服務器地址集ServIPAddr中的服務器IP地址進行比對,若服務器地址集中有一個IP地址與一個報文的目的IP地址匹配,則將該分組的源IP地址及相關服務器所屬的P2P-TV類型放入NodeSet中,并設相應TTL為10,返回至步驟B;否則直接返回至步驟B;D.匹配應用層特征字的步驟將報文源IP地址和目的IP地址與NodeSet中的IP地址進行比對,若報文源IP地址和目的IP地址均不在NodeSet中,返回至步驟B;否則將報文應用層第1~5個字節與StringBase中相應的P2P-TV應用層特征字比對,若不匹配繼續;否則該流標識為對應類型的P2P-TV視頻流,并設相應TTL為10,返回至步驟B;E.更新NodeSet表步驟每經過16秒就檢查NodeSet所有非空表項,將其TTL值減1,若為零則刪除該表項,返回至步驟B;否則直接返回至步驟B。2、根據權利要求1的實時識別多種P2P-TV應用視頻流的方法,其特征是在步驟A中,利用每個節點都具有不變的UDP監聽端口的特點,構造一個監聽端口表ListenPort,通過統計得到各個節點的監聽端口號并記錄在ListenPort中,這時可采用效率更高的端口識別方法來識別視頻流。全文摘要本發明提出了一種實時識別多種P2P-TV應用視頻流的方法,從網絡流量中實時準確地識別出PPLive、PPStream、SopCast和UUSee等P2P-TV應用系統視頻流。該方法的基本思想是先針對P2P-TV節點必須訪問服務器地址集的行為,得到那些與服務器地址集內服務器通信的IP地址,并剔除非P2P-TV應用流分組;再對余下的流比對是否具有應用層特征字的特征,如果相匹配則將該流識別為特定的P2P-TV視頻流。本發明具有識別率高、識別差錯率低和實時性強的優點。文檔編號H04L29/08GK101668035SQ200910035459公開日2010年3月10日申請日期2009年9月28日優先權日2009年9月28日發明者兵李,超胡,鳴陳申請人:中國人民解放軍理工大學指揮自動化學院