摘 要:對BitTorrent進行了系統的研究,詳細闡述了一種用于測量BitTorrent網絡拓撲的爬蟲設計與實現,并通過主動測量所獲取的信息分析研究了BitTorrent的網絡節點分布情況、在線節點周期特性、擴散跟蹤、做種節點變化趨勢,研究結果為BitTorrent網絡的監管提供了良好的依據。
關鍵詞:對等網絡技術; BitTorrent; 節點; 爬蟲
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2010)06-2232-04
doi:10.3969/j.issn.1001-3695.2010.06.067
Active measurement on BitTorrent network and characteristics analysis
YANG Minglianga, CHEN Xingshua, WANG Wenxiana,b, WU Qia, DONG Zhengfenga
(a.Network Trusted Computing Institute, Computer College, b.Institute of Information Security, Sichuan University, Chengdu 610064, China)
Abstract:This paper conducted systematic research to BitTorrent, and made detailed description about the design and implementation of a crawler for BitTorrent network topology. It analysed and researched BitTorrent network peer distribution characteristics, online peer cycle property, diffusion tracking and the trend of seed numbers by the information that collected through active measurement. The result provides a good basis for the supervision of the BitTorrent network.
Key words:peertopeer(P2P) technology; BitTorrent; peer; crawler
0 引言
隨著P2P技術的飛速發展,各種基于P2P技術的應用應運而生。P2P應用作為一類大規模、自組織、高度動態的復雜網絡系統,使得傳統的網絡監管技術不能對其進行有效的監測與控制。因此,通過主動測量技術,對P2P網絡的拓撲結構與節點特性進行研究,將有助于分析各種P2P應用的特征,進而完善其結構模型;另外,更有助于實現對P2P網絡的安全監管,保障Internet的良性發展。
在眾多的P2P內容分發系統中,BitTorrent[1]已成為被廣大用戶所接受的系統之一[2],成為Internet上最重要的應用之一。BitTorrent流量已占據整個Internet流量的35%,并超過其他對等網絡及其流量的總和[3]。
基于BitTorrent協議的應用給人們的生活帶來極大方便的同時,也使得一些反動、色情、暴力等不良信息在網絡上得到了極大的傳播,危害了整個社會的良好文化環境。由于P2P本身技術特點的特殊性,也給網絡監管帶來了極大的挑戰。
隨著主動測量技術的不斷發展成熟,該技術則更適用于目前BitTorrent網絡監管的需求。主動測量技術通過使用網絡爬蟲技術主動加入到P2P網絡,與P2P網絡中相關的節點進行主動交互,獲取相應的信息。該技術一般是通過修改普通的P2P客戶端使其按照特定需求進行工作。網絡爬蟲其實就像普通的節點一樣加入P2P系統,然后獲取特定信息,其中這些信息主要包含了IP地址、端口、連接時長等信息,并通過統計計算分析一些特定的動態變化,最終做到P2P網絡拓撲結構發現、共享文件擴散情況、節點行為分析、連接延遲等情況的直觀分析。2002年Saroiu[4]等人就使用主動測量技術對當時十分流行的Gnutella和Napster進行了拓撲測量研究。由于Gnutella等是開源系統,修改客戶端進行主動測量相對容易,而KaZaA等私有協議較為困難。2005年Liang等人[5]針對KaZaA系統的網絡行為進行了深入的探索與分析,設計出了專門的Crawler并首次對KaZaA系統中的文件污染狀況進行了測量與分析。2006年Hei等人[6]對當前最為流行的IPTV系統PPLive進行了主動測量,分析了該系統的用戶網絡行為、流量峰值和冗余,以及基于P2P技術的IPTV系統的視頻質量和設計原則。2008年余彥峰等人[7]也設計出了基于主動探測技術的P2P網絡監控,并針對BitTorrent和eMule進行了系統的設計與實現,主要用于資源的發現與定位。2008年閆清泉等人[8]對BitTorrent瞬間擁擠階段日周期特性進行了建模與分析,其主要是針對在線用戶節點的日周期特性進行了詳細研究。
本文通過研究相關主動測量技術,設計了基于主動測量方式的高效BitTorrent網絡爬蟲,可以直觀了解該應用內部的結構特征、交互過程,并深入了解BitTorrent網絡行為特征。通過對特定資源的網絡用戶節點進行測量,對獲取的信息進行了全面的、系統的分析,得到了該應用的相關特性。對現實網絡中用戶節點的發現與定位、用戶行為特性等得到了較好的反映。這種高效、準確、低成本的主動測量技術與用戶動態行為分析,為BitTorrent網絡的監管奠定了良好的基礎。
1 BitTorrent簡介
BitTorrent實際上是一種混合式的P2P文件共享系統,它需要Web服務器以及tracker服務器來輔助整個系統的運行。整個文件共享系統主要由以下三個部分組成(圖1):
a)用戶A在Web服務器進行檢索,獲取種子(torrent)文件并下載到本地,其中torrent文件并不包含用戶真正要下載的數據。
b)用戶A解析torrent文件,并根據所獲取的信息向相應的tracker服務器發起請求,tracker服務器返回節點列表,其中tracker服務器只是一個索引服務器,幫助用戶A搜尋正在下載同一文件的其他節點信息。
c)用戶A與其他節點建立連接,獲取節點當前已經下載的數據塊索引,并發出請求,從其他節點下載所需要的文件片斷。同時,用戶A向鄰居節點報告已經下載的數據塊索引,其他節點可以從用戶A下載所需要的文件片段。例如,用戶B和用戶C可以在A處下載所需要的數據塊。
隨著P2P應用技術的逐步成熟,傳統的BitTorrent 得到了不斷的完善和擴展,DHT網絡的引入是其最為重要的擴展之一,其作用就是輔助節點得到節點列表,減輕了tracker服務器的負擔,并防止了服務器單點失效問題。目前,主流的BitTorrent客戶端都引入了DHT網絡。
2 主動測量設計
筆者在BitTorrent開源項目的基礎上進行二次開發,按照指定需求完成了對BitTorrent偽客戶端的開發,以下簡稱BT爬蟲。
2.1 總體設計
測量系統是由以下三部分組成:
a)前端爬蟲模塊,包含用戶從互聯網獲取種子文件的種子下載爬蟲以及用于解析種子文件和獲取節點信息的BT爬蟲。
b)數據存儲模塊,用于存儲所獲取的種子文件、用戶節點的IP、端口以及請求tracker服務器返回的相關信息。
c)后臺數據分析模塊,針對獲得的原始數據信息進行統計分析,統計節點的數量,轉換節點IP地址為地理位置、經緯度等。
2.2 BitTorrent主動測量
BT爬蟲是根據BitTorrent客戶端的工作原理進行設計,其主動測量分為以下幾個過程:
a)BT爬蟲注冊到BitTorrent網絡,成為網絡節點。
b)解析種子文件,獲取BitTorrent tracker服務器地址。
c)向BitTorrent tracker服務器發送GET請求獲得部分節點列表,解析返回節點列表中節點的IP、端口等信息。針對每一個種子文件發送scrape請求獲得下載完成節點數目、正在做種節點數目、正在下載節點數目(部分服務器支持此操作)。
d)重復過程c),即爬蟲在一段時間內以一定的頻率向tracker服務器發送請求,每次獲得一定數量的節點信息。
e)將爬行獲得的節點信息存入數據庫,調用數據分析模塊進行相應的統計分析。
其中步驟d)中的爬行參數配置是決定爬蟲高效爬行的關鍵因素。為了便于分析,定義:
(a)對于任意一個節點Vij,用IP地址、使用的端口以及種子文件HASH值作為惟一標志,即
Vij={IPij,PORTij,HASHij}
則有集合Vi={Vi1,Vi2,…,Vin}表示i時刻BT網絡中正在下載或上傳特定文件的實際用戶節點。
(b)T表示i時刻獲取節點集Vi所耗費的時間,Δt為發送節點請求的時間間隔(該參數對爬行效率影響很大),則節點設在T時間內爬行次數N=T/Δt,得出平均爬行時間:
T=1N∑Ni=1step(V,Wi)(忽略網絡延遲帶來的影響)(1)
對于Δt的設置是根據現有BitTorrent工作機制及通過實驗測量來估測的,為此將分別設置成2 s、3 s、5 s、8 s,10 s的五個爬蟲對一個熱度較高的特定種子進行爬行測試,同時在請求的過程中根據種子文件的熱度建立起請求節點數量的自動調整策略,來達到最佳的爬行效果,測量結果如圖2(未考慮DHT和源交換,測量值略小于實際值)所示。
從圖2可以看出:a)如果將Δt設置為2 s、3 s,則爬蟲爬完所需時間較長,時效性較差,同時由于高頻率請求造成部分請求無返回節點(服務器保護機制);b)設置成5 s時爬蟲能在最短時間內達到近似值,數值完整性較高,且其收斂速度較其他都快;c)設置成8 s、10 s則雖然可以完成爬行,數值完整性也較其他高,但其時效性較差。顯然,根據實際需要爬蟲Δt設置成5 s可實現高效準確的爬行。
另外,此處應該避免對同一服務器進行長時間的高頻率爬行,以防服務器將其列入黑名單并拒絕其連接請求。
3 BitTorrent用戶行為特性
文中所有數據均由BT爬蟲在2009年7~8月期間采集獲得。爬蟲加入BitTorrent網絡后,向tracker服務器請求節點列表,但此處沒有處理源交換和DHT網絡,因此爬蟲所獲得的節點數量略低于實際值。
3.1 地理分布
為了解BitTorrent網絡用戶的地理分布情況,對批量種子文件進行了實時的用戶節點爬行。種子來源于http://scubt.wjl.cn等教育網站點以及bt.tjgame.enorth.com.cn等幾個較大的BitTorrent資源發布站點。儲存種子和節點信息的服務器為CPU Xeon 2.8 GHz×2,內存4 GB的IBM服務器,數據庫版本為oracle 10g。為了保證測量的實時性,客戶端爬蟲采用分布式方式部署在兩臺搜索機上,每臺搜索機的配置為CPU Xeon 2.8 GHz×2,內存4 GB,硬盤150 GB。每個爬蟲每120 s并發爬行15個種子,通過一周的爬行,總共獲取近15萬個用戶節點IP,并把這些IP地址轉換為地理位置。采用純真IP數據庫[9]和MaxMind GeoIP City免費數據庫[10]實現了IP地址向地理位置的映射。測量結果如表1所示。
表1 節點地理分布
地理位置用戶比例/%地理位置用戶比例/%
北京市15.05河南省2.77
江蘇省7.88山西省0.80
天津市2.22上海市6.83
黑龍江省1.38湖北省3.27
山東省3.77江西省1.43
浙江省6.92廣東省10.82
遼寧省2.47河北省1.43
四川省6.83重慶市1.47
吉林省3.52福建省4.57
湖南省5.16其他9.69
安徽省1.72
由表1可以看出,節點的分布具有明顯的經濟性和地理性,其中有30%左右的用戶節點分布在長江三角洲和珠江三角洲等經濟較為發達的地區,地理分布上東部省份分布明顯要密集于中西部省份。另外,由于約19%的種子文件中來源于教育網上的BitTorrent資源站點,故北京、上海、湖北等高校密集的省份節點分布都較為密集。
從綜合排名上看,用戶節點一般密集分布在信息化程度與互聯網普及程度較高的省會城市,這也從一個側面反映了P2P技術的發展有賴于整個互聯網基礎設施和技術的發展。
3.2 周期特性
對于特定種子文件進行全天候的實時跟蹤,發現BitTorrent的在線節點具有明顯的周期特性,在線節點的峰值總是出現在一天的固定時段。這種情況與用戶的作息時間相關,節點的規律性加入和退出必將對BitTorrent系統的服務能力造成一定影響,特別是瞬間的加入與退出[11]。如圖3所示跟蹤一個普通的種子文件的在線節點數量在24 h內的變化情況。
從圖3可以看出,每天的20:00~22:00時段通常是Bit Torrent下載的最高峰,幾乎每一個種子都在該時段達到了自己下載人數的高峰值,中午12:00~14:00也是一個較小的高峰期,這種現象的產生與用戶的作息時間有極大的相關性。大概每天的19:00則會出現一個瞬間的節點加入階段,而23:00之后則會出現一個瞬間的節點退出階段,這樣就產生了節點的擁擠現象,對系統的服務能力將會產生一定影響[11]。
3.3 擴散度分析
定期對熱點種子進行爬行,統計每次爬行獲取到的節點數量,繪制出節點數量變化的趨勢圖,從而掌握熱點種子的擴散情況。爬蟲探測時間間隔分為兩種粒度[14]:a)細粒度即對于熱點種子在每天的下載高峰期(晚上19:00~24:00點)每半小時作一次爬行,統計獲取到的對等節點數量;b)粗粒度即在測試期間每天的固定時間(每晚20:00點)進行一次爬行,獲得在該時間段正在下載該文件的對等節點數量,從而統計出在這幾天內該種子文件在互聯網中的擴散程度,如圖4所示。
采用定期跟蹤的方式是為了避免長時間、高頻率請求tracker服務器而遭到拒絕連接請求。按照時間的粒度對網絡中節點數量進行統計是為了跟蹤熱門文件在網絡中的擴散速度和分布趨勢。另外,可以通過分析獲取的數據,進而了解BitTorrent網絡中的用戶行為習慣和整個網絡的性能(因為真正用戶習慣分析涉及到對海量數據的OLAP和數據挖掘,目前還不具備這樣的條件,本文在此只作實驗性的分析)。
如圖5所示統計的是2009年8月3號的熱度排名top10的種子在8月3號~9號這七天之內的擴散度情況。從圖中可以看出,除了個別受關注度特別高的種子文件之外,大部分種子的下載人數在這一周的時間內都呈下降趨勢,BitTorrent網絡用戶的這種行為模式與eMule等其他P2P文件共享協議有很大的區別。在BitTorrent網絡中,種子和資源更新較快,用戶的興趣也轉移得很快,即使是非常熱門的種子,熱度期的持續時間也較短。
另外,BitTorrent網絡中的對等節點隨著時間的變化具有較強的動態性,節點的隨機加入與離開網絡可以使用參數為λ的泊松分布[12] (Possion distribution) 模型描述。節點在線時間的統計行為可以表示為獨立的、服從參數為μ的指數分布[13] (exponential distribution) 的隨機模型。如果使用這兩種模型對BitTorrent網絡中的節點進行建模將更加有助于對BitTorrent網絡進行監測和節點特性分析。
3.4 做種節點變化趨勢
在BitTorrent網絡中,種子節點(seeder)定義為愿意與其他節點無私分享的節點,同時該類型節點擁有完整的資源文件,在文件的分享和下載過程中只提供上傳而不下載[14]。但是BitTorrent的節點做種激勵機制還很不完善,因此經常出現種子節點退出而導致共享失敗的情況。沒有共享文件完整拷貝,需要從種子節點下載的節點稱為消費節點(leecher)。Leecher除了從seeder處下載外,還可以與其他leecher相互上傳和下載。分析文件擴散期間seeder的變化趨勢,可以了解BitTorrent用戶的行為模式和行為特征,進而優化和設計更加完善的BitTorrent網絡服務模型。
通過對特定熱點種子進行為期一周的持續跟蹤,統計出其leecher和seeder數量,得到seeder變化趨勢統計,如圖6所示。
1)總節點數 參與到下載過程中的所有節點,包括做種節點和消費節點。
2)做種節點數 主動測量所獲取到的所有節點中其下載進度為百分之百的節點。這類節點只提供上傳而不下載。
3)消費節點數 正在下載資源文件的節點。設總節點數為SUMpeers,做種節點數為SUMseed,則消費節點數為SUMleecher=SUMpeers-SUMseed。
4)做種節點轉換率 消費節點在下載完成后向做種節點的轉換率P(t),計算方法為ΔSUMseed/ΔSUMleecher。
根據實測數據及相關分類,得出在時間[t,t+7]即一周的平均節點轉換率大致為25.9%。另外,實測數據表明P(t)與下載文件的大小具有極大的相關性。
4 結束語
本文設計并實現了BitTorrent網絡爬蟲,利用該爬蟲完成了對BitTorrent網絡的主動測量,深入了解BitTorrent用戶及其相關特性,對BitTorrent網絡性能優化、網絡安全評估、監控與預警都提供了良好的數據;特別在BitTorrent網絡監管方面,可以通過分析特定種子的信息,定位參與共享的用戶信息,通過分析大量種子的信息,為網絡輿情分析奠定基礎。
由于此處爬行獲取的數據還有一定的局限性。下一步將主要集中研究BitTorrent網絡中對等節點源交換和DHT網絡部分,使采集的BitTorrent網絡數據更加全面、準確,進而作出更加精確的分析。
參考文獻:
[1]COHEN B. BitTorrent protocol[EB/OL]. (2001-07)[2007-06]. http://www.bittorrent.com.
[2]POUWELSE J A, GARBACKI P, EPEMA D H J, et al. The BitTorrent P2P filesharing system: measurements and analysis[C]//Proc of the 4th International Workshop on PeertoPeer Systems. Berlin:Springer, 2005: 205-216.
[3]STEPHANOS A T, DIOMIDIS S. A survey of peertopeer content distribution technologies[J]. ACM Computing Surveys,2004,36(4):335-371.
[4]SAROIU S, GUMMADI P K, GRIBBLE S D. A measurement study of peertopeer file sharing systems[C]//Proc ofthe Multimedia Computing and Networking. San Jose:[s.n],2002: 156-170.
[5]LIANG J, KUMAR R, XI Y, et al. Pollutionin file sharing systems[C]//Proc of the IEEE INFOCOM. 2005:1174-1185.
[6]HEI X, LIANG C, LIANG J, et al. A measurement study of a largescale P2P IPTV system IPTV workshop[C]//Proc of International World Wide Web Conference. 2006:1672-1687.
[7]余彥峰,秦海權,郭志博. 基于主動探測技術的P2P網絡監控[J]. 信息網絡安全,2008(11):76-79.
[8]閆清泉,吳剛,王嵩. BitTorrent瞬間擁擠階段日周期特性建模與分析[J].系統仿真學報,2008,20(22):6256-6260.
[9]純真IP數據庫[EB/OL].[2008-04-12]. http://www.cz88.net/fox/.
[10]MaxMind GeoIP city database[EB/OL].[2008-04-12]. http://www.maxmind.com/app/city.
[11]BAILEY N T. The mathematical theory of infection diseases and its application[M]. New York: Hafner Press, 1975.
[12]QIU Dongyu , SRIKANT R. Modeling and performance analysis of BitTorrentlike peertopeer networks[C]//Proc of ACM SIGCOMM Special Interest Group on Data Communications. New York: ACM Press,2004:367-378.
[13]CHU J, LABONTE K, LEVINE B N. Availability and locality measurements of peertopeer file systems[C]//Proc of the ITCom: Scalability and Traffic Control in IP Networks. Bellingham, WA: SPIE,2002:156-170.
[14]劉凡.基于BitTorrent的P2P網絡拓撲測量的研究[D].成都:四川大學,2009.