摘要:對(duì)等網(wǎng)絡(luò)(P2P)有3種主要的組織結(jié)構(gòu):分布式哈希表(DHT)結(jié)構(gòu)、樹形結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)。P2P技術(shù)已經(jīng)延伸到幾乎所有的網(wǎng)絡(luò)應(yīng)用領(lǐng)域。該文以遠(yuǎn)程數(shù)據(jù)分發(fā)技術(shù)為例,從減少數(shù)據(jù)存儲(chǔ)與傳輸成本、節(jié)約社會(huì)資源的角度出發(fā),結(jié)合目前P2P技術(shù)的發(fā)展趨勢(shì),探討并展望基于P2P技術(shù)的遠(yuǎn)程數(shù)據(jù)分發(fā)模式。
關(guān)鍵詞:P2P技術(shù);數(shù)據(jù)分發(fā);數(shù)據(jù)傳輸;點(diǎn)對(duì)點(diǎn)
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)31-0822-03
Based on P2P's Remote Data Distribution Technology Research
ZHAO Jian-fei, DUAN Xin-wen
(Physics Department, Qinghai Normal University, Xining 810008, China)
Abstract: The Peer-to-peer(P2P) network has three main structures: Distributed Hash Table (DHT) structure, tree structure, and mesh structure. P2P technology has been extended to almost all areas of network applications. In this paper, taking remote data distribution technology as an example, from the view reducing data storage and transmission's costs and saving social resources, combine domestic and international trends in the development of P2P technology, and explore remote data distribution model, which based on P2P technology.
Key words: P2P technology; data distribution; data transmission; peer-to-peer
傳統(tǒng)的遠(yuǎn)程數(shù)據(jù)分發(fā)是一個(gè)以服務(wù)器為中心的C/S網(wǎng)絡(luò)關(guān)系模型,這種模型面臨著三個(gè)難以解決的問題,一是以服務(wù)器為中心加重了服務(wù)器的負(fù)擔(dān),致使服務(wù)器效能低下;二是如果用戶過多,將會(huì)導(dǎo)致數(shù)據(jù)傳輸速率非常低;三是傳輸?shù)臄?shù)據(jù)的完整性得不到保證。本文結(jié)合遠(yuǎn)程數(shù)據(jù)分發(fā)現(xiàn)行的難度,探討基于P2P技術(shù)的低成本、高效率的遠(yuǎn)程數(shù)據(jù)分發(fā)模式。
1 P2P技術(shù)簡(jiǎn)介
P2P(Peer to peer) 作為網(wǎng)格計(jì)算[1](GridComputing) 的重要技術(shù)之一目前受到越來越多的關(guān)注。P2P可簡(jiǎn)單地定義為通過直接交換、共享計(jì)算機(jī)資源和服務(wù),每一個(gè)對(duì)等點(diǎn)可以同時(shí)充當(dāng)客戶端和服務(wù)器兩種角色,可充分利用終端設(shè)備的處理能力實(shí)現(xiàn)更廣泛意義上的數(shù)據(jù)分發(fā)與信息交互。作為一種基于互聯(lián)網(wǎng)環(huán)境的新的應(yīng)用型技術(shù),P2P 可廣泛適用于遠(yuǎn)程數(shù)據(jù)分發(fā)、分布式搜索、分布式存儲(chǔ)與計(jì)算及企業(yè)協(xié)同等領(lǐng)域。
1.1 基于P2P的遠(yuǎn)程數(shù)據(jù)分發(fā)的優(yōu)點(diǎn)
基于TCP/IP的數(shù)據(jù)分發(fā)是傳統(tǒng)的模式,與之相比較,基于P2P技術(shù)的數(shù)據(jù)分發(fā)成本更小,分發(fā)更容易實(shí)現(xiàn)。P2P 能充分發(fā)揮高性能PC機(jī)的潛力,節(jié)約存儲(chǔ)成本,減輕服務(wù)器的壓力,充分發(fā)揮包括人力資源在內(nèi)的一切社會(huì)資源。基于P2P的搜索引擎為網(wǎng)絡(luò)信息搜索提供了全新的解決方法,其最大優(yōu)點(diǎn)在于應(yīng)用先進(jìn)的對(duì)等搜索理念,對(duì)互聯(lián)網(wǎng)絡(luò)進(jìn)行全方位的搜索,不受服務(wù)器、及宿主設(shè)備的限制,其搜索深度和廣度是傳統(tǒng)搜索引擎所難以比擬的,其搜索范圍可在短時(shí)間內(nèi)以幾何級(jí)數(shù)迅速增長(zhǎng),理論上包括網(wǎng)絡(luò)上的所有開放的信息資源,采集到的信息將有更強(qiáng)的實(shí)時(shí)性和有效性。例如:一個(gè)基于P2P的搜索引擎SD(search demon),它可將Agent技術(shù)應(yīng)用在SD 之中,并結(jié)合P2P對(duì)等網(wǎng)絡(luò),為網(wǎng)絡(luò)信息資源的共享提供理想框架[2]。
1.2 P2P協(xié)議分析
BitTorrent協(xié)議是架構(gòu)于TCP/IP協(xié)議之上的一個(gè)P2P文件傳輸協(xié)議,處于TCP/IP結(jié)構(gòu)的應(yīng)用層。 BitTorrent協(xié)議本身也包含了很多具體的內(nèi)容協(xié)議和擴(kuò)展協(xié)議,并在不斷擴(kuò)充中。根據(jù)BitTorrent協(xié)議,文件發(fā)布者會(huì)根據(jù)要發(fā)布的文件生成提供一個(gè).torrent文件,即種子文件。.torrent文件包含Tracker信息和文件信息兩部分。Tracker信息主要是BT下載中需要用到的Tracker服務(wù)器的地址和針對(duì)Tracker服務(wù)器的設(shè)置,文件信息是根據(jù)對(duì)目標(biāo)文件的計(jì)算生成的,計(jì)算結(jié)果根據(jù)BitTorrent協(xié)議內(nèi)的B編碼規(guī)則進(jìn)行編碼。它的主要原理是需要把提供下載的文件虛擬分成大小相等的塊,塊大小必須為2k的整數(shù)次方(由于是虛擬分塊,硬盤上并不產(chǎn)生各個(gè)塊文件),并把每個(gè)塊的索引信息和Hash驗(yàn)證碼寫入.torrent文件中;所以,.torrent文件就是被下載文件的“索引”。
BT客戶端首先解析.torrent文件得到Tracker地址,然后連接Tracker服務(wù)器。Tracker服務(wù)器回應(yīng)下載者的請(qǐng)求,提供下載者其他下載者(包括發(fā)布者)的IP。下載者再連接其他下載者,根據(jù).torrent文件,兩者分別對(duì)方告知自己已經(jīng)有的塊,然后交換對(duì)方?jīng)]有的數(shù)據(jù)。此時(shí)不需要其他服務(wù)器參與,分散了單個(gè)線路上的數(shù)據(jù)流量,因此減輕了服務(wù)器負(fù)擔(dān)。 下載者每得到一個(gè)塊,需要算出下載塊的Hash驗(yàn)證碼與.torrent文件中的對(duì)比,如果一樣則說明塊正確,不一樣則需要重新下載這個(gè)塊。這種規(guī)定是為了解決下載內(nèi)容準(zhǔn)確性的問題。 而BitTorrent協(xié)議下載的特點(diǎn)是,下載的人越多,提供的帶寬也越多,種子也會(huì)越來越多,下載速度就越快。
2 P2P 技術(shù)與遠(yuǎn)程數(shù)據(jù)分發(fā)的結(jié)合
目前P2P技術(shù)已經(jīng)在互聯(lián)網(wǎng)上得到了廣泛的應(yīng)用,而遠(yuǎn)程數(shù)據(jù)分發(fā)與P2P技術(shù)結(jié)合目前還是處于起步階段。下面我們先引入兩個(gè)概念:
2.1 混合式P2P網(wǎng)絡(luò)[3]
這種模型中各節(jié)點(diǎn)之間可以直接建立連接,但網(wǎng)絡(luò)的構(gòu)建需要服務(wù)器(Server),通過Sever集中認(rèn)證,建立索引機(jī)制。服務(wù)器僅用于輔助對(duì)等節(jié)點(diǎn)之間建立連接,而不擔(dān)當(dāng)數(shù)據(jù)服務(wù)器作用,一旦連接成功,服務(wù)器不再起作用,對(duì)等節(jié)點(diǎn)之間直接進(jìn)行通信。
在這種共享模式中,信息用戶獲取信息的途徑傳統(tǒng)P2P方式基本一致,不同的是需要服務(wù)器的連接與約束,易于發(fā)現(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)、易于管理且安全性較好。目前P2P技術(shù)的應(yīng)用大多為這種模式,較為典型的如Napster等。通過這種數(shù)據(jù)共享模式,遠(yuǎn)程待分發(fā)的數(shù)據(jù)資源可以得到更安全(網(wǎng)絡(luò)安全、信息安全)、更合理的利用(合理分配網(wǎng)絡(luò)資源),并且能夠有效阻止非授權(quán)用戶的訪問。
2.2 P2P群集和VPN
構(gòu)建于互聯(lián)網(wǎng)之上的P2P應(yīng)用不再簡(jiǎn)單地限于兩個(gè)點(diǎn),完全可以擴(kuò)展到多點(diǎn)的群集,形成互聯(lián)網(wǎng)中的一個(gè)虛擬的子網(wǎng),構(gòu)成一個(gè)精簡(jiǎn)的VPN。這樣一來,通過相對(duì)簡(jiǎn)單的,僅僅是對(duì)P2P用戶端軟件的操作,用戶就可以主動(dòng)地選擇不同的VPN并加入,同時(shí)也就使得了不同的VPN同時(shí)存在于互聯(lián)網(wǎng)之中。個(gè)性化、專業(yè)化同時(shí)又是開放(基于互聯(lián)網(wǎng))的VPN的出現(xiàn),使信息的集中和流動(dòng)更接近現(xiàn)實(shí)社會(huì)的信息流動(dòng)方式,更易于為人們所接受。比如喜愛音樂的人們建立了自己的音樂VPN,擅長(zhǎng)編程的設(shè)計(jì)師可以建立自己的程序員VPN,而對(duì)于企業(yè),行業(yè)化、渠道化的組織終于有了一個(gè)在互聯(lián)網(wǎng)上安家的便捷途徑。可以預(yù)計(jì),行業(yè)化的目錄服務(wù)、信息服務(wù)將通過此方式迅速涌現(xiàn),為企業(yè)或是個(gè)人的遠(yuǎn)程數(shù)據(jù)分發(fā)提供一個(gè)良好的應(yīng)用環(huán)境。
2.3 P2P技術(shù)與遠(yuǎn)程數(shù)據(jù)分發(fā)主要結(jié)合過程如下:
1) 建立Tracker服務(wù)器:本文以在OpenBSD中安裝的BitTorrent為例,只安裝幾個(gè)基本的依賴包。安裝好后,bttrack.py等工具都放在'/usr/local/bin/'下了。使用'/usr/local/bin/bttrack.py'做為Tracker。用法是
# bttrack.py --port 6969 --dfile /var/log/bttrack/dlinfo
--allowed_dir /home/torrents
--show_infopage 0
--logfile /var/log/bttrack/bttrack.log
簡(jiǎn)單解釋一下幾個(gè)參數(shù)的含義: --port 6969
表示bttrack運(yùn)行在6969端口。所以在做防火墻規(guī)則的時(shí)候要注意打開它。
--dfile /var/log/bttrack/dlinfo
表示將當(dāng)前下載信息存儲(chǔ)在'/var/log/bttrack/dlinfo'文件中。
--allowed_dir /home/torrents
表示服務(wù)器只允許該目錄下的'torrent'文件連接BT Tracker。在非該目錄下載時(shí)會(huì)報(bào)錯(cuò)。
--show_infopage 0
表示是否打開info頁(yè)面。即在訪問服務(wù)器的6969端口時(shí)能否看到Tracker的當(dāng)前信息。
--logfile /var/log/bttrack/bttrack.log
表示將Tracker的日志信息寫入 '/var/log/bttrack/bttrack.log'中。
2) 建立文件服務(wù)器:SERVER(如圖1)用于存儲(chǔ)待分發(fā)的文件的副本。當(dāng)需要分發(fā)的文件比較大的時(shí)候,可考慮建立P2P集群,從而加快遠(yuǎn)程數(shù)據(jù)分發(fā)的速度。
3) 建立認(rèn)證服務(wù)器—AAA系統(tǒng)(如圖2)
AAA服務(wù)器是本系統(tǒng)中非常重要的一個(gè)部分,它完成接入認(rèn)證、授權(quán)以及計(jì)費(fèi)的功能。目前,由于RADIUS協(xié)議是唯一的AAA協(xié)議標(biāo)準(zhǔn),因此我們的系統(tǒng)中AAA服務(wù)器的實(shí)現(xiàn)采用RADIUS協(xié)議,實(shí)現(xiàn)RADIUS協(xié)議中提供的AAA服務(wù)功能。
AAA系統(tǒng)主要包括認(rèn)證、計(jì)費(fèi)服務(wù)器外,還包括用戶和計(jì)費(fèi)信息的存儲(chǔ)、用戶和計(jì)費(fèi)策略管理等。在整個(gè)AAA系統(tǒng)中,RADIUS服務(wù)器之間以及RADIUS認(rèn)證服務(wù)器與客戶端通訊遵循RADIUS協(xié)議標(biāo)準(zhǔn);用戶信息和計(jì)費(fèi)信息保存在 MySQL 數(shù)據(jù)庫(kù)中。
① 用戶認(rèn)證:用戶申請(qǐng)服務(wù)時(shí),需要得到用戶的認(rèn)證信息,驗(yàn)證過程加密傳輸。
② 用戶授權(quán):用戶的認(rèn)證請(qǐng)求被驗(yàn)證后,按照該用戶權(quán)限決定是否接入P2P網(wǎng)絡(luò)。
③ 服務(wù)計(jì)費(fèi):系統(tǒng)根據(jù)計(jì)費(fèi)算法及策略計(jì)算,并保存計(jì)費(fèi)過程產(chǎn)生的中間數(shù)據(jù)。
④ 用戶管理:主要功能包括用戶注冊(cè)、費(fèi)用管理查詢、權(quán)限設(shè)置等。
4)P2P小系統(tǒng)仿真結(jié)果
P2P小系統(tǒng)仿真實(shí)驗(yàn)通過搭建起真實(shí)的環(huán)境,在現(xiàn)實(shí)條件下抓數(shù)據(jù)。真實(shí)網(wǎng)絡(luò)仿真技術(shù)是一種通過建立網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)鏈路的統(tǒng)計(jì)模型,并模擬網(wǎng)絡(luò)流量的傳輸,從而獲取網(wǎng)絡(luò)設(shè)計(jì)或優(yōu)化所需要的網(wǎng)絡(luò)性能數(shù)據(jù)的仿真技術(shù)。由于仿真不是基于數(shù)學(xué)計(jì)算,而是基于統(tǒng)計(jì)模型,因此,統(tǒng)計(jì)復(fù)用的隨機(jī)性被精確地再現(xiàn)。
真實(shí)網(wǎng)絡(luò)仿真技術(shù)具有以下特點(diǎn):1) 全新的模擬實(shí)驗(yàn)機(jī)理使其具有在高度復(fù)雜的網(wǎng)絡(luò)環(huán)境下得到高可信度結(jié)果的特點(diǎn);2) 網(wǎng)絡(luò)仿真的預(yù)測(cè)功能是其他任何方法都無法比擬的;3) 使用范圍廣, 既可以用于現(xiàn)有網(wǎng)絡(luò)的優(yōu)化和擴(kuò)容,也可以用于新網(wǎng)絡(luò)的設(shè)計(jì),而且特別適用于中大型網(wǎng)絡(luò)的設(shè)計(jì)和優(yōu)化;四,初期應(yīng)用成本不高,而且建好的網(wǎng)絡(luò)模型可以延續(xù)使用,后期投資還會(huì)不斷下降。
最后我們將小系統(tǒng)局域網(wǎng)統(tǒng)計(jì)數(shù)據(jù)總結(jié)為時(shí)間與節(jié)點(diǎn)的表格如表1(數(shù)據(jù)具有局部性的限制)。
表1 小系統(tǒng)局域網(wǎng)統(tǒng)計(jì)數(shù)據(jù)總結(jié)
■
P2P技術(shù)在最近幾年獲得了高速的發(fā)展,也出現(xiàn)了較多應(yīng)用,但截至目前,P2P中仍有很多的關(guān)鍵技術(shù)問題并沒有得到解決,其中最典型的就是帶寬吞噬、網(wǎng)絡(luò)可擴(kuò)展性差和路由效率低下等問題。這導(dǎo)致P2P至少在目前的技術(shù)水平而言只能是一種小范圍不可靠的應(yīng)用或是滿足特定任務(wù)需求的專門應(yīng)用[4]。
參考文獻(xiàn):
[1] (美)Ian Foster,Carl Kesselman.網(wǎng)格計(jì)算[M].2版.北京:電子工業(yè)出版社,2004.
[2] 毛薇,姚青,李濤.基于P2P的高效搜索引擎的研究[J].武漢理工大學(xué)學(xué)報(bào),2002(8):43-45.
[3) 張聯(lián)峰,等.綜述:對(duì)等網(wǎng)(P2P)技術(shù)[J]. 計(jì)算機(jī)工程與應(yīng)用,2003 (12):143.
[4] 趙恒,陳杰.P2P技術(shù)的應(yīng)用及其研究現(xiàn)狀[J].電信快報(bào),2004(09):39-42.
[5] 張京楣.網(wǎng)絡(luò)安全中信任模型的研究[D].山東大學(xué)碩士論文,2002,5.
[6] 李江濤,姜永玲.P2P流量識(shí)別與管理技術(shù)[J].電信科學(xué),2005,21(3):57-61.
[7] 張強(qiáng).互聯(lián)網(wǎng)的內(nèi)容安全及其保護(hù)措施的探討[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2005(8):30-32.
[8] 羅杰文.Peer to Peer (P2P) 綜述[P].中科院計(jì)算技術(shù)研究所,2005.11.3.
[9] Lua E K,Crowcroft J,et al.A Survey and Comparison of Peer-to-Peer Overlay Network Schemes.IEEE Communications Survey and Tutorial,March 2004.
[10] peer-to-peer computing,Dejan S.Milojicic, Vana Kalogeraki, Rajan Lokose,Kiran Nagaraja,Jim Pruyne,Bruno Richard,Sami Rollins,Zhichen Xu,HP Laboratories Palo Alto HPL-2002-57(R.1).