999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

P2P文件共享系統(tǒng)的設(shè)計(jì)

2008-12-31 00:00:00葉曉瓊
電腦知識(shí)與技術(shù) 2008年30期

摘要:系統(tǒng)Qt P2P file-sharing System (QPS)是利用Qt開(kāi)發(fā)的P2P文件共享系統(tǒng)。QPS采用P2P中的混合模式,此模式結(jié)合了集中目錄式和純分布式兩者的優(yōu)點(diǎn),在實(shí)現(xiàn)上具有簡(jiǎn)易性,在共享度上具有很強(qiáng)的擴(kuò)展性。QPS的最大特點(diǎn)是加入了策略。這種策略能限制一些用戶只下載而不共享資源的行為。策略的引入是為了鼓勵(lì)用戶與其他人分享自己的資源,而不僅僅是索取。入策略的QPS不僅能比較有效的限制只下載不分享的行為,而且對(duì)系統(tǒng)的壽命也有相當(dāng)程度的提高。

關(guān)鍵詞: 文件共享;P2P;策略;Qt

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)30-0633-03

The Design of a P2P File Ssharing System

YE Xiao-qiong

(Xianning Vocational Technical College, Xianning 37100, China)

Abstract: QPS is a peer-to-peer file sharing system implemented in Qt. It uses a mediated-based mode. This mode combines the strengths of centralized-directory mode and purely-distributed mode, and can be implements simply and has strong expansibility on the share pitch. The most favorable characteristic of QPS is that it introduces a strategy, which can restrict the free rider behavior of users who only download file but not share any. The purpose of the strategy is to encourage users to share their resources with others but not only ask for.With the strategy as described above, QPS can not only restrict downloading but also increase its lifetime.

Key words: file sharing system; P2P; scheme; Qt

1 引言

C/S式架構(gòu)造就了一批著名的門戶網(wǎng)站,如雅虎,新浪等。這些網(wǎng)站容易受到黑客的親睞后果是服務(wù)崩潰。C/S式架構(gòu)只有一個(gè)服務(wù)器或服務(wù)機(jī)群,服務(wù)器一旦崩潰,它提供的服務(wù)也將停止。而P2P式架構(gòu)卻正好相反,它沒(méi)有服務(wù)器(相對(duì)C/S架構(gòu)而言)或服務(wù)器是分布的,一個(gè)服務(wù)器崩潰了,其他的服務(wù)器照樣能提供服務(wù)。這種架構(gòu)能有效的抵抗DDOS攻擊,它的安全性有很可靠的保障。另外,采用P2P式架構(gòu)的網(wǎng)絡(luò)資源共享系統(tǒng)不但大大的減輕了單個(gè)服務(wù)器的負(fù)擔(dān),而且也提高了很大的安全性。人們也可以通過(guò)這種架構(gòu)建立自己的信息天地,與其他的人分享自己的資源。

P2P有三種模式,分別是:1)集中目錄式;2)純分布式;3)混合式。三種模式各有優(yōu)缺點(diǎn)。具體介紹如下:

1)集中目錄式:這種方式類似C/S架構(gòu)。C/S架構(gòu)的資源集中在server上,而集中目錄式的P2P架構(gòu)資源是分布在各個(gè)peer中。此模式也有一個(gè)server,它起的是一個(gè)橋接作用,并不保存任何的資源。各個(gè)peer在共享或分享資源前必須要先連接上server,將本地的所有共享信息上傳server,同時(shí)也下載server上的所有或部分其他peer的共享信息。在獲得了共享信息后,就等于有了其他peer的IP,這樣就可以直接發(fā)起連接。此后,server對(duì)peer而言就不在有用,peer之間可以直接通信。在此,server只起一個(gè)索引的作用。這種模式的優(yōu)點(diǎn)是實(shí)現(xiàn)復(fù)雜度較低,對(duì)peer的管理也相對(duì)容易;缺點(diǎn)是共享面比較窄。這種模式的文件共享系統(tǒng)代表是Naspter。

2)純分布式:這種模式是真正意義上的P2P,因?yàn)樗恍枰猻erver來(lái)建立連接。Peer之間的查找與發(fā)現(xiàn)可以通過(guò)特定的方法來(lái)進(jìn)行。目前,此類相關(guān)的研究比較多。一旦一個(gè)新peer-A發(fā)現(xiàn)了某個(gè)peer-B后, peer-B就會(huì)發(fā)現(xiàn)其他的peer。這種模式的P2P文件共享系統(tǒng)主要側(cè)重于文件的搜索。設(shè)計(jì)好的搜索算法是關(guān)鍵。這種模式的優(yōu)點(diǎn)是共享面很廣,自由度(不受server的制約)很高;缺點(diǎn)是實(shí)現(xiàn)復(fù)雜度很高,peer相當(dāng)難管理,安全性也很低。這種模式的文件共享系統(tǒng)代表是Gnutella。

3)混合式:混合式是上面兩種模式的結(jié)合。它有兩層,leader-peer層和ordinary-peer層。Leader-peer可以相互連接,而ordinary-peer則可以選擇連接某個(gè)leader-peer。這樣一個(gè)leader-peer只為該組的ordinary-peer建立索引。這種模式集合了上面兩種模式的優(yōu)點(diǎn),屏除了它們的缺點(diǎn)。在文件搜索方面,這種模式的效率很高;在管理上,它是比較簡(jiǎn)便;在共享面上,它有很強(qiáng)的擴(kuò)展性;在安全上,能有效的抵御DDOS攻擊。這種模式的文件共享系統(tǒng)代表是KaZaA。

對(duì)于上面所述的三種P2P模式,我選擇了混合式。這種模式當(dāng)前是最流行的,也是研究比較多的。選擇它有一定的實(shí)用意義。

2 設(shè)計(jì)原理

系統(tǒng)QPS的主要目的是使網(wǎng)絡(luò)中的資源得到廣泛的共享。在模式上選擇了混合式,但僅此還是不夠的。為了防止了某些使用者只下載不共享,設(shè)定相應(yīng)的策略也是很重要的。以下將對(duì)二者詳細(xì)說(shuō)明。

2.1 模式選擇

系統(tǒng)QPS采用的是混合模式P2P。現(xiàn)在來(lái)講述下這系統(tǒng)QPS的運(yùn)行過(guò)程。

圖1是系統(tǒng)QPS運(yùn)行時(shí)的一個(gè)整體結(jié)構(gòu)。由此圖可以看出,它確實(shí)是一個(gè)混合式的。Group-leader peer之間存在著連接,這樣就不會(huì)導(dǎo)致某個(gè)Group被孤立,它非常有效的擴(kuò)大了共享面。每當(dāng)有新的Group-leader peer進(jìn)來(lái)時(shí),都可以選擇的連接一個(gè)或多個(gè)其他的Group-leader peer。對(duì)ordinary peer而言,它可以選擇鄰近的或資源相對(duì)比較多的Group-leader peer進(jìn)行連接。當(dāng)然,這種選擇是在多次連接后,由用戶發(fā)現(xiàn)和比較而最終確定的。Ordinary peer在連接上Group-leader peer后,將本地的共享資源給leader,并下載leader上的其他共享資源信息。自然,leader上的共享資源信息是不斷改變的,這是有新ordinary peer進(jìn)來(lái)和老ordinary peer離開(kāi)而引起的。系統(tǒng)中的Group-leader peer會(huì)在一個(gè)固定的時(shí)間間隔給每個(gè)ordinary peer發(fā)送當(dāng)前的共享資源信息。當(dāng)然,這種更新也不是完全有效的,因?yàn)镚roup中的ordinary peer的進(jìn)來(lái)與離開(kāi)的時(shí)刻是不確定的。Ordinary peer在等獲得資源信息后即可下載感興趣的文件。當(dāng)然,它的下載前提是在策略的允許之下。文件的下載過(guò)程是,請(qǐng)求下載的ordinary peer向文件所在的ordinary peer發(fā)起連接,然后發(fā)送請(qǐng)求下載的文件信息(文件信息將在系統(tǒng)實(shí)施中講述)。文件所在的ordinary peer在收到請(qǐng)求后,將對(duì)應(yīng)的文件數(shù)據(jù)發(fā)給請(qǐng)求方。這樣直到文件被完全傳輸完。Ordinary peer也可以向Group-leader peer發(fā)出文件搜索請(qǐng)求信息(這也將在系統(tǒng)實(shí)施部分講述),Group-leader peer向其他的Group-leader peer發(fā)送請(qǐng)求,等待返回結(jié)果,并將結(jié)果返回給請(qǐng)求的ordinary peer。前面,我說(shuō)了用戶可以選擇下次要連接的Group-leader peer,這些信息又從何而來(lái)呢?Group-leader peer會(huì)獲得它連接的Group-leader peer的信息,并定時(shí)的將這些信息發(fā)送個(gè)組內(nèi)的ordinary peer。

3 策略設(shè)計(jì)

任何一個(gè)ordinary peer對(duì)資源的下載都是在策略控制之下的。接下來(lái),我將詳細(xì)說(shuō)明QPS中的策略。

策略的出發(fā)點(diǎn)是迫使每個(gè)ordinary peer都共享一定的資源。這樣才能達(dá)到網(wǎng)絡(luò)資源廣泛分享的目的。在Internet上,由于種種原因,比如網(wǎng)絡(luò)帶寬,磁盤的讀寫損傷,CPU的負(fù)荷等使得很多用戶不愿意去與別人分享它的資源。這樣的結(jié)果是系統(tǒng)的使用者數(shù)量減少,并最終導(dǎo)致系統(tǒng)被棄用。換句話說(shuō),即使是一個(gè)非常優(yōu)秀的系統(tǒng),缺少了用戶后最終將會(huì)被淘汰。

QPS系統(tǒng)中的策略主要是對(duì)每個(gè)用戶計(jì)算一個(gè)分值。在分值滿足條件的情況下才可以對(duì)相應(yīng)的資源進(jìn)行下載。該策略由以下幾部分組成:

1)分值的計(jì)算:每個(gè)ordinary peer的總分值根據(jù)資源的個(gè)數(shù)、資源被下載次數(shù)及每個(gè)資源的大小來(lái)計(jì)算。總分值由下面的等式得到:

totalValue = ∑(fileSize×α)+ (fileSisze×downloadTimes×β+ε)×shareNumber (1)

其中,fileSize表示每個(gè)文件的大小,α是一個(gè)常量系數(shù),downloadTimes每個(gè)文件被下載的次數(shù),β也是一個(gè)常量系數(shù),ε同樣是一個(gè)常量系數(shù),shareNumber表示共享的文件數(shù)量。從上面的等式可以看出,totalValue是隨著fileSize等變量的增大而增大的。

2)下載判定:每個(gè)用戶在下載文件時(shí),都必須被檢驗(yàn),檢驗(yàn)它是否有足夠的分值來(lái)下載該文件。當(dāng)用戶選擇了一個(gè)文件準(zhǔn)備下載時(shí),系統(tǒng)首先將獲取該文件的大小,然后與用戶具有的分值相比較。如果用戶分值大于文件的大小,那么他被允許下載該文件,否則的話他將被禁止。每當(dāng)用戶開(kāi)始下載文件,它的總分值將會(huì)被相應(yīng)的減少,減少的大小即為fileSize。而被下載的用戶其分值會(huì)得到增加。增加的大小為fileSisze×β。

3)鼓勵(lì)措施:對(duì)有些用戶來(lái)說(shuō),它對(duì)某個(gè)文件特別有興趣,但它的分值卻不夠。這時(shí),它可能就會(huì)關(guān)閉系統(tǒng),這樣帶來(lái)的結(jié)果是整個(gè)共享群體中的資源減少了。為了留住他們,必須有措施讓他們?cè)敢饫^續(xù)分享他們的資源。在固定的時(shí)間間隔內(nèi),給整個(gè)系統(tǒng)中的每個(gè)用戶都免費(fèi)的派送一定量的分值,這樣就能讓那些渴望得到分值的用戶選擇留下。

4 分析系統(tǒng)設(shè)計(jì)原理的有效性和可行性。

4.1 有效性

P2P的三種模式中,我選則了混合式。這中模式是集中目錄式和純分布式的一個(gè)結(jié)合。文件共享系統(tǒng)中,KaZaA采用的也是這種模式。理論上,在P2P共享方面,這種模式擁有很強(qiáng)的擴(kuò)張性。在Internet上,只要新的Group-leader peer能發(fā)現(xiàn)其他的任何一個(gè)Group-leader peer,它就可以加入到整個(gè)共享團(tuán)體中,這樣整個(gè)共享系統(tǒng)便得到了擴(kuò)展。與集中目錄式相比,這種模式也不會(huì)在遭受DDOS攻擊后而崩潰。共享系統(tǒng)中的任何Group-leader peer都能對(duì)其本組的ordinary peer進(jìn)行管理,約束他們的一些不合法行為。

在策略方面,它是比較合理的。每個(gè)共享者所共享的資源數(shù)目、每個(gè)資源的大小和每個(gè)資源的受歡迎程度都是不一樣的。在策略方面,只考慮共享數(shù)目是不合理的。有的用戶共享著許多的小文件,而有的用戶共享著少量的大文件。對(duì)這兩類用戶來(lái)說(shuō),他們貢獻(xiàn)出的系統(tǒng)資源是不同的。小文件占的磁盤總空間可能比大文件占的空間還要小。在上傳時(shí),用戶的網(wǎng)絡(luò)帶寬資源占用量也是不等的。同等帶寬下,小文件可能很短的時(shí)間就能上傳完,而大文件卻需要更多的時(shí)間,這樣共享大文件用戶的CPU資源也被很大的占用。所以只考慮兩者中的任何一個(gè)都不是合理的。再一個(gè),每個(gè)資源都有一定的受歡迎程度。比如一首歌曲,當(dāng)前很流行,那么下載的人就多,而對(duì)于一首過(guò)時(shí)的歌曲來(lái)說(shuō),可能沒(méi)有人去下載。這樣,對(duì)于這兩類共享來(lái)說(shuō)也是不合理的。因此,在等式(1)中有個(gè)downloadTimes變量,它就是用來(lái)記錄每個(gè)資源的流行程度的。流行程度越高,downloadTimes的值就會(huì)越大,而用戶的最終分值也就越大,他可以下載的資源也就越大。考慮了每個(gè)資源的三個(gè)因素,這樣的策略可以說(shuō)是有效的。并且策略還采取了鼓勵(lì)措施,這一措施能延長(zhǎng)了用戶呆在整個(gè)共享系統(tǒng)中的時(shí)間,即維持了共享系統(tǒng)總的資源的數(shù)量。這樣的好處是防止它的離開(kāi)而導(dǎo)致惡性循環(huán)。

4.2 可行性

系統(tǒng)原理的可行性是系統(tǒng)能否實(shí)現(xiàn)的關(guān)鍵。對(duì)于一個(gè)不可行的原理來(lái)說(shuō),它沒(méi)有任何使用價(jià)值。

C/S架構(gòu)的網(wǎng)絡(luò)程序有許多。在server端有專門的監(jiān)聽(tīng)套接字,client端只需獲取server的IP和端口(port)就可以發(fā)起連接,連接后server會(huì)產(chǎn)生一個(gè)專門的通信套接字來(lái)服務(wù)client,直到client斷開(kāi)連接。在這點(diǎn)上,P2P架構(gòu)的網(wǎng)絡(luò)程序并沒(méi)有特別之處。P2P架構(gòu)的網(wǎng)絡(luò)程序與C/S架構(gòu)程序的區(qū)別是,P2P架構(gòu)的程序至少需要有兩次這樣的過(guò)程。在QPS文件共享系統(tǒng)中,ordinary peer連接上Group-leader peer后,當(dāng)用戶要下載文件時(shí),系統(tǒng)還將進(jìn)行一次連接,但這次的連接對(duì)象不是Group-leader peer而是文件所在的ordinary peer。在技術(shù)上來(lái)說(shuō),它的實(shí)現(xiàn)難度和C/S架構(gòu)的網(wǎng)絡(luò)程序相比并沒(méi)有很大的提高。因此,它確實(shí)是可行的。

對(duì)于策略來(lái)說(shuō),它也是可行的。QPS文件共享系統(tǒng)的目的就是最大限度的共享網(wǎng)絡(luò)上的資源。采用任何一種簡(jiǎn)單的策略都可以使得網(wǎng)絡(luò)資源共享度有所提升。例如,只考慮共享數(shù)量,共享資源越多的用戶,它能下載的資源也就越多。但是這樣的策略并不公平。這在有效性中我已經(jīng)講述了。自然,我設(shè)計(jì)的這個(gè)策略也不能說(shuō)是完全公平的。它只是為到達(dá)最終目標(biāo)的一種方式。在實(shí)現(xiàn)上,這個(gè)策略也是比較簡(jiǎn)單的。它不是一個(gè)復(fù)雜的算法,只是一種思想而已。對(duì)編程語(yǔ)言來(lái)說(shuō),它只一個(gè)簡(jiǎn)單的數(shù)學(xué)計(jì)算。共享的文件數(shù)量和每個(gè)文件的大小都可以用開(kāi)發(fā)平臺(tái)中的簡(jiǎn)單函數(shù)獲得,而每個(gè)文件的下載次數(shù)只需保存在一個(gè)文件中,每次運(yùn)行系統(tǒng)時(shí)都從文件中讀取出這個(gè)信息就能達(dá)到目的。所以,此策略在實(shí)現(xiàn)是完全可行的。

參考文獻(xiàn):

[1] 陸正中,馬進(jìn)德,石正貴,等.JBuilder 9軟件開(kāi)發(fā)項(xiàng)目實(shí)踐[M].北京:清華大學(xué)出版社,2005:240-261.

[2] James F.Kurose, Keith W R. 計(jì)算機(jī)網(wǎng)絡(luò)——自頂向下方法與Internet特色[M].北京:高等教育出版社,2005:136-145.

[3] Flenner R. Java P2P技術(shù)內(nèi)幕[M]. 北京:電子工業(yè)出版社,2003:200-235.

[4] 許斌. JXTA--Java P2P網(wǎng)絡(luò)編程技術(shù)[M]. 北京:清華大學(xué)出版社,2003:1-256.

[5] 吳文輝.對(duì)等網(wǎng)絡(luò)編程源代碼解析[M].北京:電子工業(yè)出版社,2002:315-410.

[6] 楊天路.P2P網(wǎng)絡(luò)技術(shù)原理與系統(tǒng)開(kāi)發(fā)案例[M].北京:人民郵電出版社,2007:18-109.

[7] Traversat O G. JXTA技術(shù)手冊(cè)[M].北京:清華大學(xué)出版社,2004:23-78.

[8] 倪繼利. Qt及Linux操作系統(tǒng)窗口設(shè)計(jì)[M].北京:電子工業(yè)出版社,2006:72-103.

注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文

主站蜘蛛池模板: 色综合热无码热国产| 国产日本一区二区三区| 另类欧美日韩| 91网在线| 久久99国产综合精品1| 精品一区二区三区四区五区| 欧美亚洲一区二区三区在线| 在线五月婷婷| 久草视频精品| 真实国产乱子伦高清| 亚洲综合久久成人AV| 国产成人一区二区| www.av男人.com| 九九热这里只有国产精品| 国产精品第页| 亚洲AV免费一区二区三区| 国产h视频免费观看| 国产屁屁影院| 亚洲精品无码高潮喷水A| 婷婷综合亚洲| 91福利一区二区三区| 精品国产免费观看| 欧美中文字幕无线码视频| 97亚洲色综久久精品| 成年av福利永久免费观看| 九色视频线上播放| 在线看国产精品| 天天躁夜夜躁狠狠躁躁88| 91娇喘视频| 亚洲欧美国产高清va在线播放| 伊人久久久大香线蕉综合直播| 国产福利一区二区在线观看| 久久精品国产91久久综合麻豆自制| 麻豆国产原创视频在线播放 | 精品一区二区三区水蜜桃| 青青青国产免费线在| 伊人激情综合网| 国产精品浪潮Av| 国产综合色在线视频播放线视| 欧美天堂久久| 精品视频一区二区观看| 玖玖精品视频在线观看| 无套av在线| 久精品色妇丰满人妻| 日本午夜精品一本在线观看| 亚洲精品日产精品乱码不卡| 欧美曰批视频免费播放免费| 试看120秒男女啪啪免费| 91九色国产在线| 欧美一级在线播放| 狠狠亚洲婷婷综合色香| 一本久道热中字伊人| 四虎精品黑人视频| 一本大道视频精品人妻 | 9啪在线视频| 国产女人在线观看| 久久香蕉欧美精品| 国产精品深爱在线| 久久影院一区二区h| 毛片久久久| 午夜影院a级片| 中国一级特黄大片在线观看| 人妻丰满熟妇啪啪| 国产一区二区免费播放| 国产第一福利影院| 国产资源免费观看| 色视频久久| 亚洲国产欧美中日韩成人综合视频| 天天婬欲婬香婬色婬视频播放| 久久精品国产精品青草app| 色综合狠狠操| 欧美日韩理论| 国产成人高清精品免费| 美女裸体18禁网站| 在线观看网站国产| 无码一区18禁| 欧美不卡二区| 精品国产一区91在线| 国产精品手机视频| 国产主播在线一区| 欧美三级不卡在线观看视频| 精品欧美一区二区三区在线|