新四季網

一種基於應用層檢測的對等網絡流量控制方法

2023-08-09 15:26:51

專利名稱:一種基於應用層檢測的對等網絡流量控制方法
技術領域:
本發明是一種針對特定網絡服務的流量識別與控制的方法。主要用來解決對等網絡(P2P) 應用對網絡資源爭用,改善由此帶來的網絡阻塞情況,屬T P2P流量識別與控制領域。
背景技術:
P2P網絡的流量有以下特點 不確定性
由於P2P應用的多樣性導致其網絡流量不僅在流量特徵上,而且在行為特徵上也表現出不確 定性。此外,P2P網絡節點的動態性也增加了對等網絡流量的不確定性。
海量性
P2P網絡規模較大,給流量的實時檢測帶來了性能問題。
加密性
由於P2P網絡屬於應用層,因此為了躲避內容監管,現有P2P系統均對其載荷進行了加密處理。
現有的一些檢測技術,可分為基於流量特徵的識別方法(TLI)和基於深層數據包識別方法 (DPI)兩類
(1) 基於流量特徵的P2P流量檢測方法的基本思想是通過對傳輸層數據包(包括TCP和UDP 數據包)進行分析,並結合P2P系統所表現出來的流量特徵,來識別某個網絡流是否屬於P2P。但 是這類技術比較多,但普遍存在難以實際應用的缺點由於P2P多採用隨機埠技術,因此TCP /UDP埠識別技術存在嚴重的漏報問題;網絡直徑的計算需要記錄整個網絡的連接狀態,因此 不僅存儲和計算開銷大,而且也不支持P2P流量的實時識別與過濾;節點角色分析技術也需要記 錄整個網絡的連接狀態,因此同樣面臨存儲與計算開銷大、無法供P2P流量的實時識別與過濾功 能等問題;由於域名伺服器(DNS)等應用也會同時使用TCP協議和UDP協議,因此協議對分析技術 存在嚴重的誤報問題;地址埠對具有性能高的優點,但是缺乏實時識別與過濾的能力。
(2) 基於應用層數據檢測的P2P流量識別技術是通過協議分析與還原技術,通過對具體的 P2P協議及其對應的P2P系統的載荷進行特徵提取,建立特徵庫。對於流經的實時網絡流,採用 模式匹配算法,判斷其中是否包含特徵庫中的特徵串。如果特徵匹配成功,該網絡流就是P2P 數據。該方法對新P2P應用的流量識別具有滯後性,即在未升級特徵庫前無法檢測新的P2P應用, P2P軟體修改加密方案將導致舊的特徵庫失效。所以這種方案存在可擴展性差、缺乏分析加密數 據功能等問題。

發明內容
技術問題本發明的主要目的是提供一種基於應用層檢測的對等網絡流量控制方法,本 發明相比以往的方案,顯著的提高了識別準確率,改善了擴展性差的問題,具有實時性強、部 署成本低的優點。技術方案本發明分成兩個模塊分別部署在主機和路由器上,主機在應用程式調用插口層 編程接口時對P2P數據進行識別,並對P2P數據包加標籤,路由器收到數據包後做相應的分析 處理,並根據控制規則對P2P數據加以處理。
基於應用層檢測的P2P流量控制方法由基於文件信息分析的主機識別方法和基於Linux路 由器的分層令牌桶(HTB)流量控制方法組成,其中,基於文件信息分析的主機識別方法實現步 驟為
步驟1).編寫自定義套接字服務接口 (Windows Sockets SPI)框架,取代默認的SPI 連結庫,
步驟2).分析目前主流P2P軟體的文件信息,將它們的源文件名添加到識別庫, 步驟3).將主機識別軟體和識別庫發布到網內各個主機上, 步驟4).當主機連網時,發出P2P數據包被加上標記, 步驟5).根據出現的新的P2P軟體更新識別庫,並發布到主機, 步驟6).如果主機沒有安裝主機識別插件,則無法上網,並在其連網時自動轉到步驟
3);
基於Linux路由器的HTB流量控制方法實現步驟為
步驟21).路由器安裝流量控制模塊,配置HTB隊列的參數,
步驟22).收到主機發來的數據包,檢査服務優先級(TOS)欄位,為零則說明主機沒有安 裝P2P識別插件,將數據包丟棄,
步驟23).根據數據包的源/目的地址分類,
步驟24).源/目的地址均屬內網的數據包,根據TOS欄位送入相應的HTB隊列, 步驟25).對於內網發往外網的P2P數據包,提取其源地址/埠 ,査詢P2P埠映射表, 如果沒有找到,則作將其為新的表項插入,然後將此數據包送入HTB隊列;經過協議地址轉換 (NAT)轉換後的數據包,如果是內網發往外網的,則對其進行逆向協議地址轉換(De-SNAT)操作, 得到源地址/埠,然後以此查詢P2P埠映射表,找到對應的表項後,將該數據包的源地址/ 埠,分別填到路由器地址/埠欄位,
步驟26).對於外網發往內網的數據包,取出其目的地址/埠並査詢P2P埠映射表,即 可獲知該數據包是否為P2P數據包,然後將其送入HTB隊列。
有益效果本發明提出了一種控制P2P流量的方法,相對以往的方法有一些顯著的優點
(1) 識別準確率達到100%,消除了誤判。軟體的版本信息是在程序編譯時生成的,普通用 戶無法修改,對版本信息中的源文件名識別,不會出現漏判、誤判等情況,而傳統的在路由器 上進行識別的方式一般僅能達到90 % 95 %的識別命中率。
(2) 實現對P2P管理的細分,可以針對不同的P2P軟體釆取不同的流量控制策略。比如QQ, MSN 等聊天工具也是基於P2P技術的,它們並不會造成帶寬緊張,但按照一些傳統的控制方法,有的 無法將這類軟體區分出來,有的即使能做到也存在誤判問題。
(3) 擴展性強。不需要進行數據包的協議分析,因此不需要跟隨P2P軟體協議而更新識別庫, 對運行時可變多協議P2P軟體也能實現控制。由於不需要協議解密,對網絡管理員的要求也非常 低,僅需對新出現的P2P軟體發布新的識別庫即可,相對以往的方法,大大降低了管理成本。
(4) 完全實時控制,對可變埠P2P軟體也能實現控制,識別效率極高。本發明在P2P軟體發 送第一個數據包時就能識別出來,消除傳統方法的滯延性,對主機P2P埠的變化全程跟蹤。相對傳統方法,本發明將識別操作分布到各個主機進行,路由器僅實現控制策略,減輕了路由器 的壓力,僅對P2P數據進行相關操作,對非P2P數據的傳輸完全沒有影響,效率大大提高。


圖1是主機識別模塊的結構示意圖。圖2是主機識別模塊的流程圖。圖3和圖4是分類隊列的具體策略。圖5是路由器流量控制模塊的示意圖,其中三種箭頭代表三類不同數據包的處理流程,以 及處理過程中需要訪問的資源。圖中①處為PREROUTING攔截點,圖中②處為POSTROUTING攔 截點。
具體實施方式
體系結構自定義Winsock 2 SPI框架Windows Sockets 2. O版本提供了SPI編程接口,這種接口可以在Socket中插入一層,從而 實現傳輸質量控制(QOS),擴展TCP/IP協議棧等功能。Winsock是為上層應用程式提供的一種標 準網絡接口。上層應用程式不關心其實現細節,它只為上層應用程式提供透明的服務。Winsock 2. O引入的SPI編程接口就是打破服務提供者的透明,讓開發人員可以編寫自己的服務提供者接 口程序。SPI以動態連結庫的形式存在,工作在應用層,為上層API調用提供接口函數。本發明將自己編寫的SPI程序安裝到系統中,所有的Winsock請求都會發送到這個程序,並 由它完成P2P識別和標記工作。系統提供的SPI能夠完成傳輸功能,所以在本模塊中,只是將它 們隱藏起來,在識別過程結束之後,再調用它們完成網絡傳輸。Linux路由器HTB帶寬管理隊列本發明釆用Linux提供的帶寬管理功能進行P2P流量控制。Linux系統提供了多種隊列管理機 制,本發明使用的是HTB隊列。HTB (Hierarchical Token Bucket,分層的令牌桶)是一種分類隊 列,相對無類隊列更加複雜,但能利用分類器實現數據包調度,從而使非P2P數據包優先於P2P 數據包傳輸。另外HTB隊列相比其他分類隊列配置比較簡單,並支持帶寬分割和帶寬借用功能。數據包分類標籤模塊本模塊的功能是將路由器收到的數據包分三類做不同處理[內網]端〈一一〉端[內網],[內 網]端<——〉端[外網],[外網]端〈一一〉端[內網]。Linux核心裡的Netfilter子系統所提供了 五個攔截點,分別是PRER0UTING、 INPUT、 F0RWARD、 P0STR0UTING以及0UTPUT。本發明在 PRER0UTING點,截獲剛剛到達路由器的數據包,提取出其源目的地址加以分類。P2P—NAT埠映射表路由器產品提供NAT機制(Network address and port translators)來解決協議地址不足 的問題。NAT以及防火牆,將丟棄由外網主動向內網發送的數據包,保證連接從內部發起,即 先出後進。位於某個NAT後面的主機向另一個NAT後面的主機發送的數據包會被丟棄,P2P軟 件利用NAT穿透技術來解決這一問題。NAT穿透技術是指,如果主機A想向另一個NAT後的主 機B發送數據包,那麼主機A首先需要向公網上的伺服器S發起連接,然後由伺服器S將主機 A經過NAT轉換後的協議地址ia與埠 pa發送給主機B,這樣主機B就可以向ia/pa發送數據 包,但這個數據包會被主機A的路由器丟棄,然而這時候,主機A^主機B的單向路由已經建立起來,只要伺服器S將主機B經過NAT轉換後的協議地址ib與埠 pb發送給主機A,主機A 就可以向ib/pb (即主機B)發送數據了。同樣的方式建立主機B+A主機的路由,則兩臺主機 完成NAT穿透,可以互相發送數據。根據NAT穿透技術的原理,P2P軟體與外網主機通信,必須先在路由器上建立埠映射。 本發明利用P2P軟體的這一特點,自定義了一個P2P埠映射表,用於記錄路由器傳輸P2P數 據的埠,該表的表項包含路由器的IP位址和埠號,該埠所處理的P2P服務類型,以及與 之對應的主機IP和埠。方法流程本發明由主機對P2P發起連接請求的數據包進行識別,由路由器上的分類標籤模塊處理,利 用路由器上配置的HTB隊列進行流量控制。具體流程如下(1) P2P識別與標記在應用程式加載SPI動態連結庫的時候,可以得到應用程式的進程名,並根據進程名査詢該 應用程式的版本信息(FileVersionlnfo),取出其源文件名,源文件名無法被用戶修改,且一 般不會隨著軟體版本升級而變化,這時可依據進程的源文件名進行識別,如果是P2P軟體,則給 該進程加上標記,每當有進程調用SPI發送數據的時候,只需要檢査該標記,即可判斷是否為P2P 數據。但這樣做只能實現數據包的放行和丟棄兩種操作,而無法實現流量控制。路由器可以提 供完美的流量控制策略,所以必須通知路由器哪些數據是P2P。 Winsock 2.0的SPI提供了原始 套接字功能(RawSocket),通過它可以直接控制Windows下的多種協議,而且能夠對網絡底層 的傳輸機制進行控制。本發明利用這一功能,穿越作業系統網絡協議棧的分層機制,直接在應 用層對數據包的IP頭進行設置。本發明使用IP頭中的T0S欄位對P2P數據包進行標識。這樣,在 路由器接收到數據包的時候,只需要檢查數據包的TOS欄位即可。(2) 數據包分類當路由器收到數據包時,即提取其源/目的地址,進行分類後進行不同的處理。兩端均為內網P2P數據包,處理過程很簡單。只需要根據T0S欄位判斷是否是P2P數據, 如果是P2P數據,那麼這個它就屬於[內網]端〈一一〉端[內網]型P2P數據包,可直接根據TOS 欄位所反映出的P2P軟體類型,將其加入相應的HTB隊列。對於[內網]端--一〉端[外網]型P2P數據包,首先提取其源地址及埠號,以此査詢上述 P2P埠映射表,如果沒有找到,則作將其為新的表項插入,此時,該表項的路由器IP/埠兩 個欄位暫時為空,然後將此數據包送入HTB隊列。在NAT鏈的P0STR0UTING攔截點分析經過NAT 轉換後的數據包,如果是[內網]端----〉端[外網]型P2P數據包,則對其進行De-SNAT操作,得 到源IP/埠,然後以此查詢P2P埠映射表,找到對應的表項後,將該數據包的源IP/埠, 分別填到路由器埠/IP欄位。對於[外網]端----〉端[內網]型數據包,取出其目的IP/埠並査詢P2P埠映射表,即 可獲知該數據包是否為P2P數據包,然後將其送入HTB隊列。(3) HTB隊列分類後的數據包被送入不同的HTB類,本發明的具體分類策略如下 Classid 1:10這是最高優先權的類。這個類中的數據包擁有最低的延遲並最先取得空閒帶寬,需設置這 個類的峰值速率。要求低延遲的服務歸屬到該類中ssh、 telnet、 dns、 quake3、 irc和帶有SYN標記的數據包。 Classid 1:11這是用於放置大批量傳輸的類。包含比如用來處理從本地向WEB伺服器發出和瀏覽網頁 的數據包,郵件(SMTP、 pop3)相關及其他非P2P數據包。 Classid 1:12這個類中包含一些流量較小的P2P數據包,比如QQ, MSN等P2P聊天工具。 Classid 1:13這個類中包含數據流量較大的P2P軟體產生的數據包,比如文件共享類軟體。 通過設置上述四個分類的屬性,門限速率rate,借用帶寬限度ceil,優先級prio,可以 對P2P數據流量實施控制。即使鏈路中沒有其他數據通過,P2P也不能借用所有的帶寬,因為 對web的訪問等操作屬於突發行為,如果此時沒有剩餘帶寬,則會造成訪問延遲,所以要給P2P 數據設置可借用的最大帶寬ceil;另外,非P2P數據包比P2P數據包的優先級高。為方便描述,假定如下網絡環境主機A、 B通過路由器R訪問Internet,路由器R加載了 流量控制模塊,主機B安裝了 P2P識別插件;主機C通過路由器R'訪問Internet,三臺主機 都使用Eiimle (P2P文件共享類軟體)下載某個文件,Emule伺服器為S。
具體實施方式
如下(1) 主機A打開Enmle,並向伺服器S發起登陸請求。(2) 未安裝P2P識別插件,主機A發出的數據包的包頭TOS欄位為零,被路由器R丟棄,登 陸失敗,此時主機A無法連接Internet.(3) 主機A安裝P2P識別插件。(4) 主機A重新打開Emule, Emule進程載入自定義Winsock SPI框架。(5) 主機A向伺服器S發送登陸請求,數據包頭在主機A發送前被重構,獲得新的T0S值, 到達路由器R時,R根據T0S值發現P2P數據。(6) R記錄該數據包的源IP/埠,即主機A用f跟伺服器S通信的IP/埠 (Ia/Pa),並將 其加入P2P—NAT埠映射表,然後將數據包標記為Classid 1:13類並送入HTB隊列。(7) R上的分類標籤模塊,提取經過NAT轉換後的IP/埠 (Ira/Pra),對其進行De-SNAT 操作,得到(Ia/Pa),在埠映射表中找到剛才加入的表項,將經過NAT轉換後的IP/埠添 入路由器IP/埠欄位, 一個完整的映射表項建立起來。(8) 伺服器S將(Ia/Pa)發送給主機C,將C經過路由器R' NAT轉換後的(Ic/Pc)發送給 主機A。 A向(Ic/Pc)發送數據包,C向(Ia/Pa)發送數據包,完成NAT穿透。(9) 當路由器R接受到主機C向(Ia/Pa)發送的數據包時,査詢P2P—NAT埠映射表,發 現其是P2P數據,於是將數據包標記為Classid 1:13類並送入HTB隊列。至此,主機A相對於 其他路由器下的主機C的上下行流量均處於受控狀態。鵬主機B已經安裝了主機識別插件,因此主機B啟動Emule時,與主機A的(4) (7)相同。 但它與主機A屬於同一個內網,所以不需要進行NAT穿透操作。(11)主機A的Emule軟體直接向主機B的IP位址/埠發送數據,當數據到達路由器R時, R根據T0S值發現其為P2P,將其標記為Classid 1:13類並送入HTB隊列,此時主機A的上行 流量和主機B的下行流量處於受控狀態。主機B的Emule軟體直接向主機A的IP位址/埠發 送數據時,同理,主機B的上行流量和主機A的下行流量處於受控狀態。肪主機A與內網和外網的主機之間的雙向P2P流量均得到控制。
權利要求
1.一種基於應用層檢測的對等網絡流量控制方法,其特徵在於該方法由基於文件信息分析的主機識別方法和基於Linux路由器的分層令牌桶HTB流量控制方法組成,其中,基於文件信息分析的主機識別方法實現步驟為步驟1).編寫自定義套接字服務接口Windows Sockets SPI框架,取代默認的SPI連結庫,步驟2).分析目前主流P2P軟體的文件信息,將它們的源文件名添加到識別庫,步驟3).將主機識別軟體和識別庫發布到網內各個主機上,步驟4).當主機連網時,發出P2P數據包被加上標記,步驟5).根據出現的新的P2P軟體更新識別庫,並發布到主機,步驟6).如果主機沒有安裝主機識別插件,則無法上網,並在其連網時自動轉到步驟3);基於Linux路由器的HTB流量控制方法實現步驟為步驟21).路由器安裝流量控制模塊,配置HTB隊列的參數,步驟22).收到主機發來的數據包,檢查服務優先級TOS欄位,為零則說明主機沒有安裝P2P識別插件,將數據包丟棄,步驟23).根據數據包的源/目的地址分類,步驟24).源/目的地址均屬內網的數據包,根據TOS欄位送入相應的HTB隊列,步驟25).對於內網發往外網的P2P數據包,提取其源地址/埠,查詢P2P埠映射表,如果沒有找到,則作將其為新的表項插入,然後將此數據包送入HTB隊列;經過協議地址轉換NAT轉換後的數據包,如果是內網發往外網的,則對其進行逆向協議地址轉換De-SNAT操作,得到源地址/埠,然後以此查詢P2P埠映射表,找到對應的表項後,將該數據包的源地址/埠,分別填到路由器地址/埠欄位,步驟26).對於外網發往內網的數據包,取出其目的地址/埠並查詢P2P埠映射表,即可獲知該數據包是否為P2P數據包,然後將其送入HTB隊列。
全文摘要
基於應用層檢測的對等網絡流量控制方法分成兩個模塊分別部署在主機和路由器上,主機在應用程式調用插口層編程接口時對P2P數據進行識別,並對P2P數據包加標籤,路由器收到數據包後做相應的分析處理,並根據控制規則對P2P數據加以處理。基於應用層檢測的P2P流量控制方法由基於文件信息分析的主機識別方法和基於Linux路由器的分層令牌桶(HTB)流量控制方法組成,本發明相比以往的方案,顯著的提高了識別準確率,改善了擴展性差的問題,具有實時性強、部署成本低的優點。
文檔編號H04L29/08GK101599897SQ200910033230
公開日2009年12月9日 申請日期2009年6月10日 優先權日2009年6月10日
發明者敏 吳, 博 宮, 徐小龍, 支萌萌, 李玲娟, 李致遠, 王汝傳, 韓志傑, 元 饒 申請人:南京郵電大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀