專(zhuān)利名稱(chēng):一種實(shí)時(shí)監(jiān)控p2p應(yīng)用所消耗帶寬的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種實(shí)時(shí)監(jiān)控P2P應(yīng)用所消耗帶寬的方法,適用于互聯(lián)網(wǎng)接入服務(wù)領(lǐng)域。
背景技術(shù):
互聯(lián)網(wǎng)發(fā)展之初,應(yīng)用傳輸數(shù)據(jù)的方式主要是客戶(hù)機(jī)/服務(wù)器式客戶(hù)機(jī)向服務(wù)器建立連接、發(fā)送請(qǐng)求;服務(wù)器根據(jù)請(qǐng)求返回?cái)?shù)據(jù)。電子郵件、Web瀏覽等和用戶(hù)日常相關(guān)的應(yīng)用都采用傳統(tǒng)的客戶(hù)機(jī)/服務(wù)器方式工作。近來(lái),P2P(Peerto Peer)的服務(wù)方式逐漸發(fā)展起來(lái),它和傳統(tǒng)的客戶(hù)/服務(wù)器方式不同,有大量的數(shù)據(jù)在廣泛分布的客戶(hù)端之間傳送,服務(wù)器直接傳送給客戶(hù)端的數(shù)據(jù)很少,因而可以同時(shí)支持超大規(guī)模的用戶(hù)端數(shù)量。對(duì)于使用P2P應(yīng)用的用戶(hù)來(lái)說(shuō),由于P2P應(yīng)用向大量的其他客戶(hù)端建立了很多連接,搶占了傳統(tǒng)應(yīng)用的帶寬,使其他應(yīng)用如電子郵件、Web瀏覽的帶寬受到很大影響。目前,P2P應(yīng)用已經(jīng)在互聯(lián)網(wǎng)上迅速發(fā)展,對(duì)帶寬的消耗和浪費(fèi)很大,收發(fā)電子郵件和網(wǎng)頁(yè)瀏覽的效果大不如前,影響了寬帶網(wǎng)用戶(hù)對(duì)網(wǎng)絡(luò)的正常使用。而且由于P2P應(yīng)用建立大量地址和端口廣泛分布的連接,很難依靠在路由器上控制IP地址以及服務(wù)端口的方式,控制P2P應(yīng)用對(duì)普通網(wǎng)絡(luò)應(yīng)用的影響。
發(fā)明內(nèi)容
1、發(fā)明目的本發(fā)明的目的是通過(guò)實(shí)時(shí)分析互聯(lián)網(wǎng)上的數(shù)據(jù)包,識(shí)別出各種P2P應(yīng)用的數(shù)據(jù),實(shí)時(shí)計(jì)算其占用的帶寬,并對(duì)其流量按照適當(dāng)?shù)牟呗约右钥刂?,減少對(duì)其他網(wǎng)絡(luò)應(yīng)用的影響,便于電信運(yùn)營(yíng)商更好地提高用戶(hù)服務(wù)質(zhì)量。
2、為實(shí)現(xiàn)上述目的,本發(fā)明所述的一種實(shí)時(shí)監(jiān)控P2P應(yīng)用所消耗帶寬的方法,其特征是該方法包括以下步驟(1)利用分光器或網(wǎng)絡(luò)設(shè)備的鏡像功能或設(shè)備內(nèi)部的數(shù)據(jù)拷貝功能導(dǎo)出原始數(shù)據(jù),監(jiān)測(cè)到流經(jīng)某條通信鏈路上的所有IP分組。
在通信鏈路上進(jìn)行分光或利用網(wǎng)絡(luò)設(shè)備的鏡象功能得到原始IP分組數(shù)據(jù)的好處,在于當(dāng)系統(tǒng)硬件出現(xiàn)故障停機(jī)時(shí),不會(huì)造成互聯(lián)網(wǎng)數(shù)據(jù)傳輸中斷。
(2)參照主流P2P應(yīng)用的特征碼或特征協(xié)議分析這些IP分組,識(shí)別出各種P2P應(yīng)用并統(tǒng)計(jì)其消耗的帶寬。
對(duì)于已知的主流P2P應(yīng)用,本系統(tǒng)采用特征碼和協(xié)議特征進(jìn)行分析識(shí)別,例如BitTorrent P2P應(yīng)用,包含有“BitTorrent”特征碼字符串;OpenNap/NapsterP2P應(yīng)用,其協(xié)議特征為(1-2字節(jié)是包長(zhǎng),從第3個(gè)字節(jié)開(kāi)始)0x31(1byte),0x0000ca00(4bytes),0xc800,0xc900,0xcb00,0xcc00,0x0000,0xd600,0x0200,0x0300,0x0600,“SEND”,“GET”(3bytes)。系統(tǒng)中已有當(dāng)前主流的P2P應(yīng)用的特征庫(kù),并可以動(dòng)態(tài)更新。對(duì)識(shí)別出的數(shù)據(jù),按照網(wǎng)絡(luò)會(huì)話(huà)的5元組<協(xié)議號(hào),源IP地址,源端口,目的IP地址,目的端口>為網(wǎng)絡(luò)會(huì)話(huà)加上標(biāo)記,標(biāo)識(shí)其所對(duì)應(yīng)的P2P應(yīng)用類(lèi)別。如果一個(gè)網(wǎng)絡(luò)會(huì)話(huà)屬于某種P2P應(yīng)用,則將該網(wǎng)絡(luò)會(huì)話(huà)的所有IP分組的字節(jié)數(shù),都記入這類(lèi)P2P應(yīng)用所傳輸?shù)淖止?jié)數(shù)。將這類(lèi)P2P應(yīng)用在一個(gè)較短的時(shí)間間隔內(nèi)(例如5秒鐘)所傳輸?shù)淖止?jié)數(shù),除以時(shí)間間隔,就能計(jì)算出這類(lèi)P2P應(yīng)用實(shí)際所消耗的帶寬。
為了更好地對(duì)P2P應(yīng)用進(jìn)行疏導(dǎo),還可以計(jì)算出一組IP地址,使用某類(lèi)P2P應(yīng)用而消耗的實(shí)際網(wǎng)絡(luò)帶寬。參照Radius協(xié)議分析Radius IP分組,可以得到寬帶帳號(hào)與IP地址的動(dòng)態(tài)對(duì)應(yīng)表(同一個(gè)寬帶帳號(hào)每次連接到互聯(lián)網(wǎng)時(shí),可能會(huì)得到不同的IP地址),進(jìn)而可以計(jì)算出一組或一個(gè)寬帶用戶(hù),使用某類(lèi)P2P應(yīng)用而消耗的實(shí)際網(wǎng)絡(luò)帶寬。
(3)采用構(gòu)造并發(fā)送TCP Reset或ICMP目的不可達(dá)數(shù)據(jù)包,或通過(guò)指示網(wǎng)絡(luò)設(shè)備阻塞指定的網(wǎng)絡(luò)會(huì)話(huà)的方法,抑制P2P應(yīng)用消耗的帶寬。
(A)對(duì)P2P應(yīng)用的TCP連接,根據(jù)源、目的地址和端口,構(gòu)造并發(fā)送兩個(gè)TCP Reset的數(shù)據(jù)包一個(gè)Reset包表現(xiàn)為從P2P應(yīng)用連接的源地址發(fā)往目的地址,另一個(gè)Reset包表現(xiàn)為從目的地址發(fā)往源地址,內(nèi)容都是TCP Reset命令,令雙方都關(guān)閉連接不再發(fā)送數(shù)據(jù),例如可以向源地址發(fā)送如下TCP Reset命令如下IP包中協(xié)議類(lèi)型TCP;TCP源端口號(hào)原始數(shù)據(jù)包中的目的端口號(hào);TCP目的端口號(hào)原始數(shù)據(jù)包中的源端口號(hào);
TCP序列號(hào)原始數(shù)據(jù)包中的確認(rèn)號(hào)+1;TCP確認(rèn)號(hào)原始數(shù)據(jù)包中的序列號(hào);TCP標(biāo)志RST位和ACK位置位。
向目的地址發(fā)送的Reset命令如下IP包中協(xié)議類(lèi)型TCP;TCP源端口號(hào)原始數(shù)據(jù)包中的源端口號(hào);TCP目的端口號(hào)原始數(shù)據(jù)包中的目的端口號(hào);TCP序列號(hào)原始數(shù)據(jù)包中的序列號(hào)+數(shù)據(jù)長(zhǎng)度;TCP確認(rèn)號(hào)原始數(shù)據(jù)包中的確認(rèn)號(hào);TCP標(biāo)志RST位和ACK位置位。
(B)對(duì)P2P應(yīng)用的UDP會(huì)話(huà),向UDP數(shù)據(jù)的發(fā)送端發(fā)出經(jīng)過(guò)構(gòu)造的ICMP目的不可達(dá)指示數(shù)據(jù)包,其中載有原始的UDP數(shù)據(jù),通知發(fā)送端不再發(fā)送數(shù)據(jù),例如可發(fā)送如下ICMP目的不可達(dá)指示如下IP包中協(xié)議類(lèi)型ICMP;ICMP消息類(lèi)型3(目的地址不可達(dá));ICMP代碼3(端口不可達(dá));ICMP消息中的數(shù)據(jù)部分把原始數(shù)據(jù)的UDP包中的IP協(xié)議部分和UDP協(xié)議頭以及截取開(kāi)頭的最多不超過(guò)520字節(jié)數(shù)據(jù)。
(C)上述(A)、(B)將構(gòu)造出來(lái)的數(shù)據(jù)包,直接發(fā)送到互聯(lián)網(wǎng)中,抑制相應(yīng)的P2P應(yīng)用流量。也可針對(duì)(2)已經(jīng)打上P2P應(yīng)用類(lèi)別標(biāo)記的網(wǎng)絡(luò)會(huì)話(huà),直接發(fā)送指令指示網(wǎng)絡(luò)設(shè)備阻塞指定的網(wǎng)絡(luò)會(huì)話(huà)的方法,抑制相應(yīng)的P2P應(yīng)用消耗的帶寬,例如可發(fā)送如下指令給相關(guān)的網(wǎng)絡(luò)設(shè)備<協(xié)議號(hào),源IP地址,源端口,目的IP地址,目的端口,阻塞時(shí)長(zhǎng)>。
(4)通過(guò)負(fù)反饋機(jī)制,動(dòng)態(tài)調(diào)整對(duì)P2P應(yīng)用的抑制程度,控制一組用戶(hù)的P2P流量不超過(guò)預(yù)設(shè)的流量,或P2P流量占其總流量的百分比不超過(guò)預(yù)設(shè)的數(shù)值。
假設(shè)要將某類(lèi)P2P應(yīng)用P2PApp_1消耗的帶寬,控制在B bps以?xún)?nèi),步驟如下步驟一定時(shí)地按方法(2)計(jì)算得到P2PApp_1當(dāng)前消耗的帶寬,設(shè)為X bps;得到當(dāng)前運(yùn)行了P2PApp_1的5元組<協(xié)議號(hào),源IP地址,源端口,目的IP地址,目的端口>的集合以及每個(gè)5元組所消耗的網(wǎng)絡(luò)帶寬。
步驟二如果X小于B,則回到步驟一。
步驟三如果X大于B,則利用上述(A)或(B)或(C)三種方法,干擾P2PApp_1會(huì)話(huà)中的一部分,回到步驟一。這部分被干擾的會(huì)話(huà)應(yīng)從收集的5元組集合中選取。具體的選取策略可以是從5元組集合中隨機(jī)選取一部分,使這一部分5元組的帶寬之和等于或略大于(X-B)bps;也可以按照流量的大小對(duì)5元組集進(jìn)行排序,優(yōu)先選取流量高的5元組;或者按照預(yù)先設(shè)置的策略進(jìn)行選取。
(5)隨著互聯(lián)網(wǎng)上P2P應(yīng)用的不斷豐富,對(duì)P2P應(yīng)用特征碼、特征協(xié)議的識(shí)別會(huì)越來(lái)越困難、特別是當(dāng)P2P應(yīng)用對(duì)數(shù)據(jù)進(jìn)行加密之后,識(shí)別P2P應(yīng)用將會(huì)消耗極多的計(jì)算資源。針對(duì)這種情況,本發(fā)明可根據(jù)用戶(hù)建立的會(huì)話(huà)數(shù)量、流量、協(xié)議等行為特征,進(jìn)行智能識(shí)別。
其實(shí)現(xiàn)方法如下(a)建立當(dāng)前廣泛使用的因特網(wǎng)應(yīng)用協(xié)議的特征庫(kù),這樣就能保證智能識(shí)別時(shí)不會(huì)把非P2P的關(guān)鍵應(yīng)用識(shí)別為P2P應(yīng)用。由于廣泛使用的非P2P應(yīng)用的協(xié)議都是公開(kāi)的,因此能相當(dāng)容易地識(shí)別出Web,email,ftp,telnet等應(yīng)用。
(b)P2P應(yīng)用一般與不同的機(jī)器之間建立了大量的會(huì)話(huà)連接,并進(jìn)行大數(shù)據(jù)量、高速的數(shù)據(jù)傳送。因此當(dāng)一臺(tái)機(jī)器與其它機(jī)器的連接數(shù)超過(guò)M個(gè),且其數(shù)據(jù)傳送量大于N bps,且持續(xù)時(shí)間大于T秒時(shí),則可以將這些會(huì)話(huà)歸類(lèi)為P2P應(yīng)用。其中M,N,T為可調(diào)參數(shù)。
(c)可以進(jìn)一步的根據(jù)不同類(lèi)型的P2P應(yīng)用的不同特征來(lái)對(duì)P2P應(yīng)用進(jìn)行進(jìn)一步細(xì)分。如P2P流媒體應(yīng)用由于媒體源的編碼速率一般是恒定的,因此P2P流媒體到一個(gè)播放節(jié)點(diǎn)的傳送速率基本上是恒定的;而P2P文件下載一般會(huì)最大限度的利用可得到的帶寬,因此下載速度一般會(huì)有較大的起伏。
對(duì)智能識(shí)別出的P2P應(yīng)用,也能采用(4)對(duì)其帶寬進(jìn)行限制。
3、有益效果本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點(diǎn)是互聯(lián)網(wǎng)接入服務(wù)商采用本發(fā)明,可以掌握各種P2P應(yīng)用的流量在本網(wǎng)絡(luò)中所占比例,及時(shí)限制P2P應(yīng)用所消耗的帶寬,控制P2P應(yīng)用對(duì)其他正常網(wǎng)絡(luò)應(yīng)用的影響,節(jié)省帶寬資源、節(jié)約投資,更好地提高對(duì)用戶(hù)的服務(wù)質(zhì)量。
四
附圖是應(yīng)用系統(tǒng)具體實(shí)施方案示例圖。
五具體實(shí)施例方式
本方案的具體系統(tǒng),可采用如附圖所示方案。互聯(lián)網(wǎng)服務(wù)提供商構(gòu)建的城域網(wǎng)/省域網(wǎng)通過(guò)路由器_2與INTERNET骨干的路由器_1相連接;Radius服務(wù)器通過(guò)路由器_3接入到城域網(wǎng);計(jì)算機(jī)用戶(hù)_A、用戶(hù)_B、用戶(hù)_C、用戶(hù)_D連接在城域網(wǎng)上。
本方案利用分光或網(wǎng)絡(luò)設(shè)備的鏡像功能導(dǎo)出原始數(shù)據(jù),可以監(jiān)測(cè)到流經(jīng)某條通信鏈路上的所有IP數(shù)據(jù)分組。在圖中,本發(fā)明導(dǎo)出了路由器_1和路由器_2之間的IP數(shù)據(jù)分組,P2P應(yīng)用分析及統(tǒng)計(jì)模塊通過(guò)特征碼或特征協(xié)議分析、或智能識(shí)別,實(shí)時(shí)識(shí)別出P2P應(yīng)用并統(tǒng)計(jì)其消耗的帶寬;此外本發(fā)明還導(dǎo)出了路由器_3與Radius服務(wù)器之間的IP數(shù)據(jù)分組,Radius協(xié)議分析模塊參照Radius協(xié)議分析它,可以得到寬帶帳號(hào)、IP地址二者之間的動(dòng)態(tài)對(duì)應(yīng)表。在判斷出一組IP地址或一組用戶(hù)的P2P應(yīng)用所消耗的帶寬之后,利用本發(fā)明前述的構(gòu)造并發(fā)送TCP Reset或ICMP目的不可達(dá)數(shù)據(jù)包,或通過(guò)指示網(wǎng)絡(luò)設(shè)備阻塞指定的網(wǎng)絡(luò)會(huì)話(huà)的方法,抑制P2P應(yīng)用消耗的帶寬。
權(quán)利要求
1.一種實(shí)時(shí)監(jiān)控P2P應(yīng)用所消耗帶寬的方法,其特征是該方法包括以下步驟(1)利用分光器或網(wǎng)絡(luò)設(shè)備的鏡像功能或設(shè)備內(nèi)部的數(shù)據(jù)拷貝功能導(dǎo)出原始數(shù)據(jù),監(jiān)測(cè)到流經(jīng)某條通信鏈路上的所有IP分組;(2)參照主流P2P應(yīng)用的特征碼或特征協(xié)議分析這些IP分組,識(shí)別出各種P2P應(yīng)用并統(tǒng)計(jì)其消耗的帶寬;(3)采用構(gòu)造并發(fā)送TCP Reset或ICMP目的不可達(dá)數(shù)據(jù)包,或通過(guò)指示網(wǎng)絡(luò)設(shè)備阻塞指定的網(wǎng)絡(luò)會(huì)話(huà)的方法,抑制P2P應(yīng)用消耗的帶寬;(4)通過(guò)負(fù)反饋機(jī)制,動(dòng)態(tài)調(diào)整對(duì)P2P應(yīng)用的抑制程度,控制一組用戶(hù)的P2P流量不超過(guò)預(yù)設(shè)的流量,或P2P流量占其總流量的百分比不超過(guò)預(yù)設(shè)的數(shù)值。
2.根據(jù)權(quán)利要求1所述的一種實(shí)時(shí)監(jiān)控P2P應(yīng)用所消耗帶寬的方法,其特征是在步驟(2)中,可以根據(jù)用戶(hù)建立的會(huì)話(huà)數(shù)量、流量、協(xié)議等行為特征,智能識(shí)別新的P2P應(yīng)用以及加密的P2P應(yīng)用。
全文摘要
本發(fā)明公開(kāi)了一種實(shí)時(shí)監(jiān)控P2P應(yīng)用所消耗帶寬的方法,該方法是導(dǎo)出原始數(shù)據(jù),監(jiān)測(cè)到流經(jīng)某條通信鏈路上的所有IP分組;參照主流P2P應(yīng)用的特征碼或特征協(xié)議分析這些IP分組,識(shí)別出各種P2P應(yīng)用并統(tǒng)計(jì)其消耗的帶寬;采用構(gòu)造并發(fā)送TCP Reset或ICMP目的不可達(dá)數(shù)據(jù)包,或通過(guò)指示網(wǎng)絡(luò)設(shè)備阻塞指定的網(wǎng)絡(luò)會(huì)話(huà)的方法,抑制P2P應(yīng)用消耗的帶寬;通過(guò)負(fù)反饋機(jī)制,動(dòng)態(tài)調(diào)整對(duì)P2P應(yīng)用的抑制程度,控制一組用戶(hù)的P2P流量不超過(guò)預(yù)設(shè)數(shù)值,或P2P流量占其總流量的百分比不超過(guò)預(yù)設(shè)的數(shù)值。本發(fā)明的優(yōu)點(diǎn)是可以掌握各種P2P應(yīng)用的流量在本網(wǎng)絡(luò)中所占比例,及時(shí)限制其所消耗的帶寬,控制其對(duì)其他正常網(wǎng)絡(luò)應(yīng)用的影響。
文檔編號(hào)H04L12/56GK1889475SQ20061004085
公開(kāi)日2007年1月3日 申請(qǐng)日期2006年7月31日 優(yōu)先權(quán)日2006年7月31日
發(fā)明者汪渝波, 趙振平, 皺暢根 申請(qǐng)人:南京信風(fēng)軟件有限公司