專(zhuān)利名稱(chēng):一種對(duì)bt客戶端數(shù)據(jù)傳輸?shù)目刂品椒?br>
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)管理技術(shù)領(lǐng)域,特別是指一種對(duì)BT客戶端數(shù)據(jù)傳輸?shù)目刂品椒ā?br>
背景技術(shù):
BT(BitTorrent)作為一種用來(lái)進(jìn)行文件下載的共享軟件,是一個(gè)多點(diǎn)下載的P2P軟件。其特點(diǎn)可簡(jiǎn)單總結(jié)為下載的人越多,下載速度越快。它用的是一種傳銷(xiāo)的方式來(lái)達(dá)到下載資源共享的,其工作原理是某BT客戶端(peer)在下載的同時(shí),也同時(shí)將已經(jīng)下載的數(shù)據(jù)上傳給其他BT客戶端。參見(jiàn)圖1的組網(wǎng)進(jìn)行說(shuō)明。
BT軟件會(huì)將要下載的文件分成Z個(gè)部分,BT客戶端甲在服務(wù)器隨機(jī)下載了第N個(gè)部分,BT客戶端乙在服務(wù)器隨機(jī)下載了第M個(gè)部分,隨后甲就會(huì)根據(jù)情況到乙的電腦上去下載乙已經(jīng)下載好的M部分,乙就會(huì)根據(jù)情況到甲的電腦上去下載甲已經(jīng)下載好的N部分,可見(jiàn),BT客戶端在下載數(shù)據(jù)的時(shí)候也向其他BT客戶端上載其已經(jīng)下載的數(shù)據(jù),這樣就不但減輕了服務(wù)器端得負(fù)荷,也加快了甲、乙的下載速度,同樣減少了地域之間的限制。比如此刻還有BT客戶端丙開(kāi)始下載,要連到服務(wù)器去下載的話可能才幾K,但是丙還可同時(shí)連到甲和乙的電腦上去下載,就快得多了。所以說(shuō)BT軟件的特點(diǎn)是用的人越多,下載的人越多,下載的速度也就越快。
由于BT軟件的特點(diǎn),可同時(shí)從多個(gè)其他BT客戶端下載文件,因此其隨之而來(lái)的是對(duì)網(wǎng)絡(luò)帶寬的嚴(yán)重占用,導(dǎo)致其他網(wǎng)絡(luò)業(yè)務(wù)不能正常使用。尤其是在園區(qū)網(wǎng)(如校園網(wǎng)、運(yùn)營(yíng)商網(wǎng)絡(luò))中,由于用戶的訪問(wèn)量很大,而出口帶寬又是有限的,因此BT軟件的大量使用會(huì)使得網(wǎng)絡(luò)中經(jīng)常出現(xiàn)某BT客戶端無(wú)休止的占用出口的帶寬資源,導(dǎo)致連接數(shù)的增加和流量的突然增大,出口癱瘓的事件時(shí)有發(fā)生。
為了避免因BT客戶端下載文件時(shí)占用過(guò)多帶寬,需要對(duì)BT客戶端的下載過(guò)程進(jìn)行限流,目前通用的方法為確定出BT客戶端之間互連所使用的端口號(hào)(即上傳/下載文件所使用的端口號(hào)),通過(guò)封掉所確定出的部分端口來(lái)減少BT客戶端之間的連接,從而減少其所占用的帶寬。例如,當(dāng)BT客戶端之間的連接采用的端口范圍為6881~6889時(shí),則可通過(guò)封殺所有或部分具有這個(gè)端口范圍的報(bào)文來(lái)實(shí)現(xiàn)BT的限流。
這種方法在一定程度上是可行的,其前提是要確定出BT客戶端建立之間的連接所使用的端口。但是,由于不同BT客戶端軟件所采用的端口范圍有所不同,并且所述端口范圍可以通過(guò)一定的技術(shù)手段進(jìn)行更改,導(dǎo)致了通過(guò)端口限流存在一定的局限性。如下表1示出了一些BT客戶端軟件及所使用的端口范圍
表1由表1可以看出,由于不同BT客戶端所使用的端口范圍的可變化性,使得封殺端口來(lái)對(duì)BT客戶端的下載進(jìn)行限流的方法存在一定的局限性,對(duì)于不確定的BT客戶端使用的端口,沒(méi)有辦法進(jìn)行限流。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供了一種對(duì)BT客戶端數(shù)據(jù)傳輸?shù)目刂品椒ǎ梢愿鶕?jù)BT報(bào)文的協(xié)議字段識(shí)別報(bào)文從而進(jìn)行限流。
本發(fā)明提供的一種對(duì)BT客戶端數(shù)據(jù)傳輸?shù)目刂品椒?,包括以下步驟
A、接收到數(shù)據(jù)報(bào)文;B、判斷該數(shù)據(jù)報(bào)文是否含有BT的協(xié)議字段,若有,則進(jìn)行限流處理,否則作為正常的數(shù)據(jù)報(bào)文進(jìn)行接收。
其中,步驟A后進(jìn)一步包括判斷數(shù)據(jù)報(bào)文是否為T(mén)CP或UDP報(bào)文,若是,繼續(xù)當(dāng)前步驟,否則作為正常的數(shù)據(jù)報(bào)文進(jìn)行接收。
其中,設(shè)置一個(gè)記錄同一類(lèi)BT報(bào)文特征的BT限流表;步驟B前進(jìn)一步包括判斷數(shù)據(jù)報(bào)文是否命中BT限流表,若是,則進(jìn)行限流處理,否則,執(zhí)行步驟B。
其中,步驟B判斷數(shù)據(jù)報(bào)文含有BT的協(xié)議字段時(shí),進(jìn)一步包括將含有BT協(xié)議字段的數(shù)據(jù)報(bào)文的BT報(bào)文特征記錄入所述BT限流表。
其中,所述BT報(bào)文特征包括源IP地址、目的IP地址、源端口號(hào)、目的端口號(hào)和協(xié)議號(hào);所述命中為數(shù)據(jù)報(bào)文符合所設(shè)置的BT報(bào)文特征。
其中,所述BT的協(xié)議字段包括十進(jìn)制的數(shù)字19和字符串“BitTorrentprotocol”的組合。
其中,步驟A后進(jìn)一步包括根據(jù)訪問(wèn)控制列表ACL對(duì)所述數(shù)據(jù)報(bào)文進(jìn)行限流。
由上述方法可以看出,本發(fā)明根據(jù)識(shí)別出BT報(bào)文的協(xié)議字段進(jìn)行限流,解決了使用端口限流的局限性。
并且通過(guò)判斷是否為T(mén)CP或UDP協(xié)議,篩選出了基于TCP或UDP協(xié)議的BT對(duì)等協(xié)議的控制報(bào)文。
并且,通過(guò)建立BT限流表,記錄下所識(shí)別出報(bào)文的BT報(bào)文特征(如源IP、目的IP、源端口號(hào)、目的端口好、協(xié)議號(hào)等),對(duì)于后續(xù)同一類(lèi)報(bào)文,無(wú)需再分析BT的特征字段就可識(shí)別出BT報(bào)文;從而節(jié)約了處理時(shí)間,提高了效率。解決了逐包分析BT特征而使效率降低的問(wèn)題。
并且,可以與訪問(wèn)控制列表(ACL)技術(shù)相結(jié)合,可以根據(jù)不同的組網(wǎng)和客戶需求來(lái)制定BT限流方案,滿足BT限流方案的多樣性,適應(yīng)面比較廣。
圖1為BT客戶端下載組網(wǎng)示意圖。
圖2為本發(fā)明BT軟件下載流量的控制流程圖。
具體實(shí)施例方式
分析BT客戶端的數(shù)據(jù)下載技術(shù),各個(gè)BT客戶端需要采用BT對(duì)等協(xié)議實(shí)現(xiàn)之間的信息交換。BT對(duì)等協(xié)議是基于TCP或UDP的,其連接的建立過(guò)程是由一個(gè)握手開(kāi)始,后面是循環(huán)的消息流,在每個(gè)消息的前面,都有一個(gè)數(shù)字來(lái)表示消息的長(zhǎng)度。握手的過(guò)程首先發(fā)送19(十進(jìn)制),跟著是字符串“BitTorrent protocol”。19是字符串“BitTorrent protocol”的長(zhǎng)度。
因此BT報(bào)文的識(shí)別可參照BT對(duì)等協(xié)議的握手過(guò)程進(jìn)行識(shí)別。由上面的描述,握手的過(guò)程首先會(huì)發(fā)送19,跟著是字符串“BitTorrent protocol”,因此,標(biāo)識(shí)BT報(bào)文的協(xié)議字段可以認(rèn)為是數(shù)字“19”和字符串“BitTorrentprotocol”的組合。當(dāng)然,若BT協(xié)議的字符串“BitTorrent protocol”發(fā)生了該變,則標(biāo)識(shí)BT報(bào)文的協(xié)議字段也根據(jù)實(shí)際情況作相應(yīng)的改變。
本發(fā)明的主要思想就是根據(jù)協(xié)議字段來(lái)識(shí)別出BT報(bào)文,而后記錄該報(bào)文的特征用于進(jìn)行限流。這是一種非??煽康姆桨?,因?yàn)闊o(wú)論BT客戶端如何變化,它們必須遵守BT對(duì)等協(xié)議,否則BT客戶端之間的鏈接就建立不起來(lái),更談不上數(shù)據(jù)傳輸。
下面參見(jiàn)圖2示出的流程圖,對(duì)本發(fā)明進(jìn)行詳細(xì)描述,包括以下步驟步驟201收到數(shù)據(jù)報(bào)文后,首先判斷接收的數(shù)據(jù)報(bào)文是否為T(mén)CP或UDP報(bào)文,若是,則執(zhí)行步驟202;否則按照正常的數(shù)據(jù)報(bào)文進(jìn)行接收處理。
存在這一步的原因是目前的BT對(duì)等協(xié)議是基于TCP或UDP協(xié)議的,通過(guò)這個(gè)步驟可以免去對(duì)非TCP或UDP報(bào)文的后續(xù)的分析,節(jié)約了時(shí)間。若需要對(duì)所有的報(bào)文都按照后面的方式分析,或者BT軟件可以使用其他協(xié)議如UDP來(lái)傳送數(shù)據(jù)包文時(shí),這一步可以省略掉。
步驟202判斷該數(shù)據(jù)報(bào)文是否命中BT限流表,若是,則進(jìn)行BT報(bào)文的限流處理,否則執(zhí)行步驟203。
這里的BT限流表是用來(lái)記錄同一類(lèi)BT報(bào)文特征的表項(xiàng),如下表2示出的BT限流表,該BT限流表的表項(xiàng)可包括源IP地址、目的IP地址、源端口號(hào)、目的端口號(hào)、協(xié)議號(hào)及BT標(biāo)記位等(根據(jù)實(shí)際情況還可以增加其他表項(xiàng))。
表2表2中的內(nèi)容便是BT報(bào)文特征,其中,表2中必要的內(nèi)容是IP五元組(源IP、目的IP、源端口號(hào)、目的端口號(hào)、協(xié)議號(hào)),我們知道,通過(guò)IP五元組可以唯一的確定一條數(shù)據(jù)流,因此可以使用該五元組來(lái)標(biāo)識(shí)BT流。表2中的BT標(biāo)記位可以用來(lái)標(biāo)識(shí)對(duì)應(yīng)的IP五元組是否為BT流,若是,則可以將BT標(biāo)記位記為1(代表真),這樣當(dāng)檢測(cè)到IP報(bào)文對(duì)應(yīng)的BT標(biāo)記位位1時(shí),則表示該數(shù)據(jù)報(bào)文命中BT限流表。另外,不難理解若表2僅記錄BT報(bào)文,則可以不需要BT標(biāo)記位。
當(dāng)確認(rèn)數(shù)據(jù)報(bào)文命中BT限流表時(shí),可以按照現(xiàn)有的限流方式進(jìn)行限流,如進(jìn)行丟包處理等,限流的具體實(shí)現(xiàn)方案有多種,由于為現(xiàn)有技術(shù),這里不再贅述。
步驟203判斷該數(shù)據(jù)報(bào)文是否含有BT的協(xié)議字段,若有,則將該數(shù)據(jù)報(bào)文的BT報(bào)文特征寫(xiě)入BT限流表,并做BT限流處理,否則按照正常的數(shù)據(jù)報(bào)文進(jìn)行接收處理。
這里判斷數(shù)據(jù)報(bào)文是否包含有BT的協(xié)議字段,就是判斷該BT報(bào)文是否包括數(shù)字19和字符串“BitTorrent protocol”全部或部分的組合。
上述方法采用了BT限流表,這樣,對(duì)于已經(jīng)識(shí)別出的BT報(bào)文,接收到后續(xù)的同類(lèi)數(shù)據(jù)報(bào)文時(shí),只需根據(jù)BT限流表中記錄的BT報(bào)文特征,就可識(shí)別出是BT數(shù)據(jù)報(bào)文,無(wú)需再分析該數(shù)據(jù)報(bào)文的協(xié)議字段,最大限度的避免了逐包分析BT協(xié)議字段而導(dǎo)致效率的降低,從而節(jié)約了處理時(shí)間,提高了效率。
另外,將上述步驟和訪問(wèn)控制列表ACL(Access Control List)配合使用,可以根據(jù)不同的組網(wǎng)和用戶需要來(lái)制定ACL,對(duì)數(shù)據(jù)報(bào)文進(jìn)行限流。例如,通過(guò)ACL可以指定10.16.0.0網(wǎng)段用戶10M的帶寬,指定10.15.0.0網(wǎng)段用戶20M的帶寬。如可以控制網(wǎng)段為110.10.10.0,24位掩碼的用戶進(jìn)行BT限流。根據(jù)ACL也可以控制BT限流的方向,如可以根據(jù)源IP來(lái)進(jìn)行BT限流,也可以根據(jù)目的IP來(lái)進(jìn)行限流。滿足了BT限流方案的多樣性,適應(yīng)面比較廣。關(guān)于ACL技術(shù)由于是公知技術(shù),此處不再贅述。
使用ACL表可應(yīng)用在上述步驟201接收到數(shù)據(jù)報(bào)文之后。當(dāng)接收到數(shù)據(jù)報(bào)文后,首先讀取ACL表,將數(shù)據(jù)報(bào)文按照ACL表進(jìn)行處理,判斷該數(shù)據(jù)報(bào)文是被允許接收或者是被丟棄,當(dāng)判斷報(bào)文被接收后,在按照上述的BT限流過(guò)程進(jìn)行處理。
本發(fā)明雖然以BT業(yè)務(wù)的限流為例進(jìn)行說(shuō)明,但是對(duì)于類(lèi)似的業(yè)務(wù)(如P2P業(yè)務(wù)),或者病毒的識(shí)別,也可以采用本發(fā)明的思想,即用協(xié)議字段進(jìn)行識(shí)別,并記錄識(shí)別出的報(bào)文的特征(如源IP地址、目的IP地址、源端口號(hào)、目的端口號(hào)、協(xié)議號(hào)等)寫(xiě)入一個(gè)表項(xiàng),對(duì)后續(xù)報(bào)文的識(shí)別控制可根據(jù)該表項(xiàng)記錄的報(bào)文特征進(jìn)行識(shí)別控制。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種對(duì)BT客戶端數(shù)據(jù)傳輸?shù)目刂品椒ǎ涮卣髟谟?,該方法包括以下步驟A、接收到數(shù)據(jù)報(bào)文;B、判斷該數(shù)據(jù)報(bào)文是否含有BT的協(xié)議字段,若有,則進(jìn)行限流處理,否則作為正常的數(shù)據(jù)報(bào)文進(jìn)行接收。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A后進(jìn)一步包括判斷數(shù)據(jù)報(bào)文是否為T(mén)CP或UDP報(bào)文,若是,繼續(xù)當(dāng)前步驟,否則作為正常的數(shù)據(jù)報(bào)文進(jìn)行接收。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,設(shè)置一個(gè)記錄同一類(lèi)BT報(bào)文特征的BT限流表;步驟B前進(jìn)一步包括判斷數(shù)據(jù)報(bào)文是否命中BT限流表,若是,則進(jìn)行限流處理,否則,執(zhí)行步驟B。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,步驟B判斷數(shù)據(jù)報(bào)文含有BT的協(xié)議字段時(shí),進(jìn)一步包括將含有BT協(xié)議字段的數(shù)據(jù)報(bào)文的BT報(bào)文特征記錄入所述BT限流表。
5.根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述BT報(bào)文特征包括源IP地址、目的IP地址、源端口號(hào)、目的端口號(hào)和協(xié)議號(hào);所述命中為數(shù)據(jù)報(bào)文符合所設(shè)置的BT報(bào)文特征。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述BT的協(xié)議字段包括十進(jìn)制的數(shù)字19和字符串“BitTorrent protocol”的組合。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A后進(jìn)一步包括根據(jù)訪問(wèn)控制列表ACL對(duì)所述數(shù)據(jù)報(bào)文進(jìn)行限流。
全文摘要
本發(fā)明提供了一種對(duì)BT客戶端數(shù)據(jù)傳輸?shù)目刂品椒ǎㄒ韵虏襟EA、接收到數(shù)據(jù)報(bào)文;判斷數(shù)據(jù)報(bào)文是否為T(mén)CP或UDP報(bào)文,若是,則下一步;否則作為正常的報(bào)文接收;B、判斷數(shù)據(jù)報(bào)文是否命中BT限流表,若是,則進(jìn)行限流處理,否則,進(jìn)一步判斷該數(shù)據(jù)報(bào)文是否含有BT的協(xié)議字段,若有,則進(jìn)行限流處理,并將數(shù)據(jù)報(bào)文的BT報(bào)文特征記錄入所述BT限流表,否則作為正常的報(bào)文進(jìn)行接收。使用本發(fā)明,可以根據(jù)BT報(bào)文的協(xié)議字段識(shí)別報(bào)文從而進(jìn)行限流。
文檔編號(hào)H04L12/24GK1852134SQ20051008290
公開(kāi)日2006年10月25日 申請(qǐng)日期2005年7月5日 優(yōu)先權(quán)日2005年7月5日
發(fā)明者馬愛(ài)亮 申請(qǐng)人:華為技術(shù)有限公司