專利名稱:一種基于p2p的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域,具體涉及一種基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法。
背景技術(shù):
P2P (Peer-to-Peer,點對點)作為一種新型的網(wǎng)絡(luò)應(yīng)用方式,其具有一些傳統(tǒng)Client/Server模式所不具備的優(yōu)勢,主要表現(xiàn)在信息量的擴大以及匿名服務(wù)的自由開放性等。P2P最大的優(yōu)點在于能夠提供可靠、便捷的信息查詢,但也由于P2P網(wǎng)絡(luò)這種缺乏中心監(jiān)管以及匿名服務(wù)的特性,P2P也存在著許多自身所無法克服的不足。絕大多數(shù)的P2P服務(wù)都將不可避免地遇到知識產(chǎn)權(quán)問題,同時,惡意代碼的傳播將更快、更隱蔽,更難以控制
坐寸oP2P技術(shù)有許多應(yīng)用,共享包含各種格式音頻,視頻,數(shù)據(jù)等的文件是非常普遍的,即時數(shù)據(jù)(如IP電話通信、視頻會議系統(tǒng))也可以使用P2P技術(shù)來傳送。通用P2P技術(shù)有以下的幾個關(guān)鍵點(I)資源定位資源定位是節(jié)點通過一定方式找到資源在網(wǎng)絡(luò)中的存放位置,P2P方式 的資源定位主要有以下三種算法集中索引算法,用戶都與一個中央服務(wù)器相連接,中央服務(wù)器上保存了共享文件的索引,由中央服務(wù)器對收到的用戶請求進(jìn)行匹配查找,直到找到保存了所需文件的目的用戶。然后,由發(fā)起請求的用戶與目的用戶直接進(jìn)行文件交換。這種算法的不足在于依賴一個集中式的結(jié)構(gòu),將會影響系統(tǒng)的可擴展性。洪泛消息算法,每一個用戶消息都將被廣播給與該用戶直接相連的若干其他用戶,這些用戶收到消息后,也同樣地將消息廣播給各自連接的用戶,以此類推,直到請求被應(yīng)答,消息的TTL值減少為0,或超過了最大的廣播次數(shù)(通常為5 9)。這種算法的不足在于占用的網(wǎng)絡(luò)帶寬較大,因此也會影響可擴展性。文件路由算法,算法的特點是采用基于哈希函數(shù)的映射。系統(tǒng)中的每一個用戶都有一個隨機的ID序列號,系統(tǒng)中的每一個文件也有一個ID序列號,該序列號是根據(jù)文件的內(nèi)容和它的名字,經(jīng)過哈希函數(shù)映射得來的。文件發(fā)布時,每一個用戶都把文件轉(zhuǎn)發(fā)到擁有與文件的ID最相近ID值的用戶,直到最接近文件ID的用戶就是該用戶本身。轉(zhuǎn)發(fā)過程中每經(jīng)過的一個用戶都將保持該文件的副本。索取文件時,每個用戶都將請求消息轉(zhuǎn)發(fā)給一個擁有與所需文件ID最相近的ID用戶,直到文件或文件的一個拷貝被發(fā)現(xiàn)為止。這種算法的優(yōu)勢在于可擴展性較好,不足在于可能導(dǎo)致整個網(wǎng)絡(luò)分裂成若干彼此不相連的子網(wǎng)絡(luò),形成所謂的孤島,其查詢也要比洪泛消息算法麻煩些。(2)多源傳輸為了提高一些多用戶同時下載熱點文件的傳輸速率,P2P網(wǎng)絡(luò)普遍采用多源傳輸策略(MFTP協(xié)議)。該協(xié)議定義了一系列傳輸、壓縮和打包的標(biāo)準(zhǔn),甚至還定義了一套積分的標(biāo)準(zhǔn),上傳的數(shù)據(jù)量越大,積分越高,下載的速度也越快。MFTP協(xié)議允許用戶之間多點下載文件,多用戶同時下載一個文件時,將該文件分段,每個用戶下載其中的一部分。P2P節(jié)點軟件在網(wǎng)絡(luò)上搜索下載同一個文件的用戶,然后從這些用戶那里下載該文件不同的塊,并檢查每一塊是否受到破壞,以保證傳輸?shù)恼_性,最后將所有的塊組合成原來的文件。MFTP充分利用下載用戶之間的帶寬傳輸數(shù)據(jù),從而減輕服務(wù)器負(fù)擔(dān),提高下載速度和系統(tǒng)的可擴展性。多源傳輸機制的出現(xiàn)使得P2P技術(shù)在信息傳輸方面擁有網(wǎng)絡(luò)層傳輸無法比擬的優(yōu)勢。而對于網(wǎng)吧行業(yè)游戲數(shù)據(jù)的更新業(yè)務(wù),和一般意義上的數(shù)據(jù)同步共享業(yè)務(wù)有一些區(qū)別和特點網(wǎng)吧更新游戲時間集中;是一種單向的數(shù)據(jù)同步過程(即IDC端上傳完成了一款最新版本的游戲數(shù)據(jù),所有網(wǎng)吧的服務(wù)器都會在極短的時間段內(nèi),大量集中請求下載,且網(wǎng)吧本身不能發(fā)布資源供其他網(wǎng)吧下載),個人用戶的下載時間離散且規(guī)模不可控。游戲更新量巨大;其中即包含需要更新的游戲數(shù)量巨大(每天100款)、也包含一款游戲本身需要更新的數(shù)據(jù)量巨大(魔獸世界大版本更新一般IOGB以上);個人用戶下載數(shù)據(jù)更新量較離散,其中大更新量(100MB以上)數(shù)據(jù)下載頻率不高。網(wǎng)吧對下載時長超時的容忍度??;例如魔獸世界游戲大版本更新一般中間只有8 10個小時左右的停服時間。如果更新不及時會導(dǎo)致網(wǎng)吧安裝的客戶端由于版本失配的原因,無法正常使用;個人用戶對下載及時性容忍度較大。正是這些業(yè)務(wù)特點,使得基于大更新量的P2P下載技術(shù)改進(jìn)比通用的P2P軟件有了潛在的著力點。 結(jié)合網(wǎng)吧行業(yè)數(shù)據(jù)更新特點(大數(shù)據(jù)量,短時間大并發(fā)),現(xiàn)有對于網(wǎng)吧服務(wù)器間P2P技術(shù)實質(zhì)是基于傳統(tǒng)Client/Server模式的變型(即需求方最大化的發(fā)現(xiàn)潛在資源并請求,服務(wù)方盡可能簡單提供服務(wù)),而P2P的實質(zhì)是互助式的自適應(yīng)網(wǎng)絡(luò)系統(tǒng),除了追求下載性能提聞,同樣重視彳目息的共孚和服務(wù)?,F(xiàn)有技術(shù)的請求數(shù)據(jù)策略無法統(tǒng)籌規(guī)劃,不能充分利用本行業(yè)的數(shù)據(jù)傳播特性,使得P2P真正的利用率損失,同時IDC服務(wù)器請求量過大,使得短期內(nèi)IDC服務(wù)器帶寬被大量請求的少數(shù)熱點數(shù)據(jù)撐滿,導(dǎo)致差異化數(shù)據(jù)分發(fā)效率低,直接的影響是數(shù)據(jù)傳播困難;沒有充分利用用戶間的網(wǎng)絡(luò)貢獻(xiàn),來降低對IDC機房帶寬的依賴,使得寶貴的IDC優(yōu)質(zhì)帶寬資源沒有提高數(shù)據(jù)分布規(guī)模,而被熱點數(shù)據(jù)占用。在P2P節(jié)點選點策略上,現(xiàn)有技術(shù)是在大量節(jié)點中隨機選取一定范圍的節(jié)點后,再做優(yōu)先級排序的。用戶間的P2P效果收到配對用戶間的網(wǎng)絡(luò)限制(即單位時間的網(wǎng)絡(luò)傳播速度由于網(wǎng)絡(luò)原因限制,導(dǎo)致速度慢),測試發(fā)現(xiàn),同城同ISP的效率遠(yuǎn)比同城不同ISP的高。現(xiàn)有策略沒有真正利用這些利用同城同ISP的點,而是隨機選點后再排優(yōu)先級,效果較差?,F(xiàn)有技術(shù)在P2P選點上還存在匹配后同步效果降低的問題,其原因是選點方不知道待選節(jié)點當(dāng)前的下載情況,只能靠運氣。例如A點和B點同時下載同一款資源,B點主動連接A點,A點下載總量的5%,B點下載完總量的6%,但是A和B下載完成的數(shù)據(jù)集合交集為5%,則B點無法從A點獲取任何數(shù)據(jù);并且下載完的數(shù)據(jù)分布是隨機,導(dǎo)致請求方每次刷新節(jié)點后,可能效果更低。在多源傳輸方面,現(xiàn)有技術(shù)簡單處理的不同P2P節(jié)點間的貢獻(xiàn)指標(biāo),以傳統(tǒng)Client/Server的思維邏輯處理P2P節(jié)點間的供需關(guān)系。使得高質(zhì)量的P2P節(jié)點處于上傳流量持續(xù)攀高、迫使網(wǎng)管加入限速等技術(shù),降低了用戶使用P2P的積極性。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)所存在的上述技術(shù)缺陷,本發(fā)明提供了一種基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,組網(wǎng)效果優(yōu),數(shù)據(jù)分發(fā)分享效率高,能有效提高整個網(wǎng)絡(luò)數(shù)據(jù)的同步速度。一種基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,包括如下步驟(I)各網(wǎng)吧服務(wù)器向P2P服務(wù)器請求獲取新版本數(shù)據(jù)的索引文件和節(jié)點列表;所述的節(jié)點列表包含有所有向P2P服務(wù)器發(fā)送過請求的網(wǎng)吧服務(wù)器的IP信息以及擁有新版本數(shù)據(jù)的各IDC數(shù)據(jù)服務(wù)器的IP信息;(2)網(wǎng)吧服務(wù)器對本地舊版本數(shù)據(jù)的索引文件與新版本數(shù)據(jù)的索引文件進(jìn)行差異對比,得到下載列表;所述的下載列表中包含有所有待下載數(shù)據(jù)塊的ID信息;(3)網(wǎng)吧服務(wù)器從節(jié)點列表中優(yōu)選出多個P2P節(jié)點并與這些P2P節(jié)點進(jìn)行信息交互,同時建立關(guān)于這些P2P節(jié)點的P2P列表;(4)網(wǎng)吧服務(wù)器根據(jù)下載列表、P2P列表以及與各P2P節(jié)點交互得到的信息,建立數(shù)據(jù)塊資源列表并對其實時更新;所述的數(shù)據(jù)塊資源列表包含有當(dāng)前所有待下載數(shù)據(jù)塊的ID信息和客戶信息,待下載數(shù)據(jù)塊的客戶信息包括P2P列表中擁有該數(shù)據(jù)塊的P2P節(jié)點的IP信息和缺少該數(shù)據(jù)塊的P2P節(jié)點的IP信息;
(5)網(wǎng)吧服務(wù)器根據(jù)數(shù)據(jù)塊資源列表與P2P列表中的P2P節(jié)點進(jìn)行數(shù)據(jù)交互。優(yōu)選地,所述的步驟(3)中,網(wǎng)吧服務(wù)器根據(jù)節(jié)點列表向IDC數(shù)據(jù)服務(wù)器發(fā)送下載請求,IDC數(shù)據(jù)服務(wù)器根據(jù)網(wǎng)吧服務(wù)器的IP信息確定其起始下載切入位置,網(wǎng)吧服務(wù)器根據(jù)起始下載切入位置從新版本數(shù)據(jù)中對應(yīng)的切入位置開始下載數(shù)據(jù)塊;群落(同屬相鄰或相同的下載切入點,具備相似請求策略的P2P節(jié)點集合)間下載的數(shù)據(jù)是錯開的,故熱點數(shù)據(jù)不會太集中,提高了 IDC服務(wù)程序初始時傳播數(shù)據(jù)的范圍,這樣同步一定時間后,即使IDC數(shù)據(jù)服務(wù)器全部斷開也不影響P2P節(jié)點正確同步完所有數(shù)據(jù)。優(yōu)選地,所述的步驟(3)中,網(wǎng)吧服務(wù)器從節(jié)點列表中優(yōu)選出多個P2P節(jié)點的方法為按同城同ISP(互聯(lián)網(wǎng)服務(wù)提供商)-同省同ISP-同城不同ISP-同省不同ISP的優(yōu)先級次序從節(jié)點列表中挑選出多個網(wǎng)吧服務(wù)器作為優(yōu)選出的多個P2P節(jié)點;相鄰IP的節(jié)點大部分情況是同ISP的相鄰地域,網(wǎng)絡(luò)互連互通性較好。所述的步驟(5)中,網(wǎng)吧服務(wù)器與各P2P節(jié)點進(jìn)行數(shù)據(jù)交互的方法如下關(guān)于下載網(wǎng)吧服務(wù)器對當(dāng)前所有待下載數(shù)據(jù)塊進(jìn)行優(yōu)先級排序,根據(jù)優(yōu)先級依次下載各數(shù)據(jù)塊;當(dāng)下載任一數(shù)據(jù)塊時,網(wǎng)吧服務(wù)器通過數(shù)據(jù)塊資源列表確定擁有該數(shù)據(jù)塊的P2P節(jié)點,從中選取一 P2P節(jié)點向其下載該數(shù)據(jù)塊;關(guān)于上傳當(dāng)任一數(shù)據(jù)塊下載完成后,網(wǎng)吧服務(wù)器先標(biāo)記該數(shù)據(jù)塊為已下載數(shù)據(jù)塊,然后通過數(shù)據(jù)塊資源列表確定缺少該數(shù)據(jù)塊的P2P節(jié)點,并通知這些P2P節(jié)點該數(shù)據(jù)塊已完成;P2P節(jié)點根據(jù)通知查詢本地是否缺少該數(shù)據(jù)塊,若缺少則向網(wǎng)吧服務(wù)器下載該數(shù)據(jù)塊。
優(yōu)選地,網(wǎng)吧服務(wù)器通過緩存下載數(shù)據(jù)塊。能夠提高請求響應(yīng)的能力。優(yōu)選地,網(wǎng)吧服務(wù)器根據(jù)數(shù)據(jù)塊資源列表對當(dāng)前所有待下載數(shù)據(jù)塊進(jìn)行優(yōu)先級排序,擁有者越少的數(shù)據(jù)塊優(yōu)先級越高。擁有者越少的塊,表示此塊需求量越大,即此塊被請求的概率越高,本節(jié)點可以充分利用這些塊的上傳服務(wù),有助于對端提高服務(wù)節(jié)點性能評價值,以提高本節(jié)點在其社交網(wǎng)絡(luò)(與該節(jié)點交互的其他P2P節(jié)點集合)中地位;從整個網(wǎng)絡(luò)來看,優(yōu)先對于稀缺資源的下載,有利用差異數(shù)據(jù)在整個網(wǎng)絡(luò)中的均勻分布,提高了數(shù)據(jù)冗余性,有益于不同數(shù)據(jù)在網(wǎng)絡(luò)內(nèi)的傳播。優(yōu)選地,當(dāng)下載任一數(shù)據(jù)塊時,網(wǎng)吧服務(wù)器通過數(shù)據(jù)塊資源列表確定擁有該數(shù)據(jù)塊的P2P節(jié)點,從中選取單位時間P2P數(shù)據(jù)交互量最大的一 P2P節(jié)點向其下載該數(shù)據(jù)塊。選取P2P數(shù)據(jù)交互量最大的P2P節(jié)點,首先表示對方擁有此數(shù)據(jù),其次說明最近一段時間內(nèi),本點和對端的網(wǎng)絡(luò)通訊及響應(yīng)速度相比其他點更好,即通過最近一段時間內(nèi)的成功交互次數(shù)來預(yù)測未來一段時間內(nèi),響應(yīng)最快且可靠性最高的點,結(jié)合上面優(yōu)先請求稀缺數(shù)據(jù),一旦得到此數(shù)據(jù),將能迅速提供給大量需求方服務(wù);反之,會出現(xiàn)請求時是稀缺數(shù)據(jù),等到下載后已經(jīng)不是稀缺數(shù)據(jù)了。優(yōu)選地,當(dāng)任一數(shù)據(jù)塊下載完成后,網(wǎng)吧服務(wù)器通過數(shù)據(jù)塊資源列表確定缺少該數(shù)據(jù)塊的P2P節(jié)點,并將提供該數(shù)據(jù)塊的P2P節(jié)點推薦給缺少該數(shù)據(jù)塊的P2P節(jié)點。主動通知此節(jié)點社交網(wǎng)絡(luò)中其他需求方數(shù)據(jù)更新狀態(tài),有利于短時間內(nèi)提高數(shù)據(jù)冗余度,增加數(shù)據(jù)傳播強度,提高數(shù)據(jù)在整個網(wǎng)絡(luò)的傳播速度。優(yōu)選地,所述的步驟(5)中,網(wǎng)吧服務(wù)器與P2P節(jié)點進(jìn)行數(shù)據(jù)交互的過程中,定時更新P2P列表建立推薦列表,所述的推薦列表用于接收P2P列表中的P2P節(jié)點向網(wǎng)吧服務(wù)器推薦的其他P2P節(jié)點的IP信息;網(wǎng)吧服務(wù)器定時從P2P列表中刪除若干P2P節(jié)點,并從推薦列表中補充相應(yīng)數(shù)量的P2P節(jié)點至P2P列表中。一旦本節(jié)點由于非程序原因,無法提供請求方數(shù)據(jù)時,通過介紹其他有請求數(shù)據(jù)的節(jié)點信息,使得群落之間存在個體交流,對于某個節(jié)點社交網(wǎng)絡(luò)里需要定期調(diào)整,實現(xiàn)新陳代謝,保證整個群落中的社交網(wǎng)絡(luò)動態(tài)進(jìn)化,保證群落的健康度,通過個體社交網(wǎng)絡(luò)的調(diào)整,使的群落間數(shù)據(jù)也有渠道能相互流通。進(jìn)一步優(yōu)選地,網(wǎng)吧服務(wù)器定時從P2P列表中刪除單位時間P2P數(shù)據(jù)交互量最小的若干P2P節(jié)點。從P2P互助網(wǎng)絡(luò)的性質(zhì)看,數(shù)據(jù)貢獻(xiàn)率的影響指標(biāo)為數(shù)據(jù)下載率和上傳率。每個節(jié)點社交網(wǎng)絡(luò)淘汰交互低的點,目的是允許新的節(jié)點進(jìn)入,同時為社交網(wǎng)絡(luò)動態(tài)重組提供動力。本發(fā)明的有益技術(shù)效果(1)本發(fā)明通過將P2P自助網(wǎng)絡(luò)通過群落模型表現(xiàn)出來,解決了 P2P網(wǎng)絡(luò)動態(tài)組網(wǎng)及自我進(jìn)化的完整過程,使得P2P網(wǎng)絡(luò)自適應(yīng)于動態(tài)變化的不同環(huán)境下,達(dá)成較優(yōu)的組網(wǎng)效果和較高的資源同步效果。(2)本發(fā)明尊重真實網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)對網(wǎng)絡(luò)通訊影響的事實,在選點初期就規(guī)避網(wǎng)絡(luò)拓?fù)鋵2P的影響。(3)本發(fā)明合理規(guī)劃下載熱度分布,均衡IDC帶寬對于差異數(shù)據(jù)請求分布,合理利用用戶的帶寬,以達(dá)到提供同步速度的效果。(4)本發(fā)明重視資源互助行為,將整個互助網(wǎng)絡(luò)的整體效果提高到合理水平。(5)本發(fā)明能夠及時同步資源到達(dá)信息以介紹可利用節(jié)點,提高了資源分享感知力,加強了 P2P節(jié)點的感知維度和靈敏度。
圖1為本發(fā)明數(shù)據(jù)更新方法的步驟流程圖。圖2為相同下載策略的P2P節(jié)點Downing寫窗口的數(shù)據(jù)交互示意圖。圖3為相同下載策略的P2P節(jié)點服務(wù)方下載進(jìn)程快于請求方時Downing寫窗口的數(shù)據(jù)交互示意圖。圖4為不同且鄰近下載策略的P2P節(jié)點Downing寫窗口的數(shù)據(jù)交互示意圖。圖5為不同且非鄰近下載策略的P2P節(jié)點Downing寫窗口的數(shù)據(jù)交互示意圖。圖6為在本發(fā)明機制下和在現(xiàn)有機制下同機房和異地機房中各節(jié)點的平均下載
速率直方圖。
具體實施例方式為了更為具體地 描述本發(fā)明,下面結(jié)合附圖及具體實施方式
對本發(fā)明的數(shù)據(jù)更新方法進(jìn)行詳細(xì)說明。在數(shù)據(jù)更新傳播前,先把所有的P2P節(jié)點(網(wǎng)吧服務(wù)器)分成若干個群落,群落的分布依賴于用戶的IP或資源ID等屬性;通過Hash這些信息屬性將IP較近的節(jié)點分在同一群落中(如可以使IP尾號相同的節(jié)點歸為同一群落)。不同的群落率先請求新版本數(shù)據(jù)的不同部分,最終達(dá)到所有群落在初始請求后就能通過P2P數(shù)據(jù)共享方式能組織成完整正確的數(shù)據(jù),即在同步一定時間后IDC數(shù)據(jù)服務(wù)器全部斷開也不影響P2P節(jié)點正確同步完所有數(shù)據(jù)。本實施例中,運營商為全國8萬家網(wǎng)吧提供某款游戲的數(shù)據(jù)更新業(yè)務(wù),當(dāng)該款游戲需要更新時,運營商將新版游戲的數(shù)據(jù)上傳至各IDC數(shù)據(jù)服務(wù)器(全國部署五臺)上,將新版本游戲數(shù)據(jù)的索引文件上傳至P2P服務(wù)器上;并根據(jù)網(wǎng)吧服務(wù)器的IP信息通過Hash將這8萬家網(wǎng)吧分成5個群落,每個群落為1. 5萬家。如圖1所示,一種基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,包括如下步驟(I)獲取索引文件和節(jié)點列表。所有網(wǎng)吧服務(wù)器均向P2P服務(wù)器請求獲取新版本游戲數(shù)據(jù)的索引文件和節(jié)點列表;索引文件是記錄一個版本數(shù)據(jù)所有數(shù)據(jù)塊標(biāo)識映射信息的集合;不同版本的游戲數(shù)據(jù)一定對應(yīng)一個版本的索引文件。節(jié)點列表包含有所有向P2P服務(wù)器發(fā)送過請求的網(wǎng)吧服務(wù)器的IP信息以及擁有新版本游戲數(shù)據(jù)的各IDC數(shù)據(jù)服務(wù)器的IP信息。(2)比較索引文件,得到下載列表。網(wǎng)吧服務(wù)器對本地舊版本游戲數(shù)據(jù)的索引文件與新版本游戲數(shù)據(jù)的索引文件進(jìn)行差異對比,產(chǎn)生差異需求量,得到下載列表;下載列表包含了存在差異部分的數(shù)據(jù)塊的ID信息;故對于各網(wǎng)吧服務(wù)器,只要下載差異部分的數(shù)據(jù)就可以完成版本升級。(3)根據(jù)節(jié)點列表,建立P2P連接。網(wǎng)吧服務(wù)器從節(jié)點列表中按照同城同ISP-同省同ISP-同城不同ISP-同省不同ISP的優(yōu)先級次序選取出多個P2P節(jié)點(網(wǎng)吧服務(wù)器)并與這些P2P節(jié)點進(jìn)行信息交互,了解別的網(wǎng)吧服務(wù)器擁有哪些數(shù)據(jù)塊,也告訴別的網(wǎng)吧服務(wù)器自己擁有哪些數(shù)據(jù)塊。網(wǎng)吧服務(wù)器同時還建立關(guān)于這些P2P節(jié)點的P2P列表;P2P列表包含有這些P2P節(jié)點的IP信息。當(dāng)數(shù)據(jù)更新的初始階段,網(wǎng)吧服務(wù)器會根據(jù)節(jié)點列表向IDC數(shù)據(jù)服務(wù)器發(fā)送下載請求,IDC數(shù)據(jù)服務(wù)器根據(jù)網(wǎng)吧服務(wù)器的IP信息確定其歸屬于哪個群落以及其起始下載切入位置。IDC數(shù)據(jù)服務(wù)器將新版本游戲數(shù)據(jù)分成五個塊組A E,塊組是數(shù)據(jù)塊的集合,則5個群落會分別對應(yīng)有5種下載切入順序1-2-3-4-5、2-3-4-5-1、3-4-5-1-2、4-5-1-2-3和5-1-2-3-4。網(wǎng)吧服務(wù)器根據(jù)下載切入順序下載需要更新的游戲數(shù)據(jù)。將新版本游戲的塊請求策略散列出不同請求順序的集合,就能讓某一群落種的P2P節(jié)點向另一個群落的P2P節(jié)點請求P2P數(shù)據(jù)共享,從而達(dá)到了增加P2P交互節(jié)點數(shù)的效果。(4)建立數(shù)據(jù)塊資源列表。網(wǎng)吧服務(wù)器根據(jù)下載列表、P2P列表以及與各P2P節(jié)點交互得到的信息,建立數(shù)據(jù)塊資源列表并對其實時更新;
數(shù)據(jù)塊資源列表包含有當(dāng)前所有待下載數(shù)據(jù)塊的ID信息和客戶信息,待下載數(shù)據(jù)塊的客戶信息包括P2P列表中擁有該數(shù)據(jù)塊的P2P節(jié)點的IP信息和缺少該數(shù)據(jù)塊的P2P節(jié)點的IP信息。(5)與P2P節(jié)點進(jìn)行數(shù)據(jù)交互。關(guān)于下載網(wǎng)吧服務(wù)器根據(jù)數(shù)據(jù)塊資源列表對當(dāng)前所有待下載數(shù)據(jù)塊進(jìn)行優(yōu)先級排序,擁有者越少的數(shù)據(jù)塊優(yōu)先級越高,根據(jù)優(yōu)先級依次下載各數(shù)據(jù)塊;當(dāng)下載任一數(shù)據(jù)塊時,網(wǎng)吧服務(wù)器通過數(shù)據(jù)塊資源列表確定擁有該數(shù)據(jù)塊的P2P節(jié)點,從中選取單位時間P2P數(shù)據(jù)交互量最大的一 P2P節(jié)點向其下載該數(shù)據(jù)塊。關(guān)于上傳當(dāng)任一數(shù)據(jù)塊下載完成后,網(wǎng)吧服務(wù)器先標(biāo)記該數(shù)據(jù)塊為已下載數(shù)據(jù)塊,然后通過數(shù)據(jù)塊資源列表確定缺少該數(shù)據(jù)塊的P2P節(jié)點,并通知這些P2P節(jié)點該數(shù)據(jù)塊已完成;P2P節(jié)點根據(jù)通知查詢本地是否缺少該數(shù)據(jù)塊,若缺少則向網(wǎng)吧服務(wù)器下載該數(shù)據(jù)塊。當(dāng)網(wǎng)吧服務(wù)器上傳量受限的情況下,作為另外一種方案,網(wǎng)吧服務(wù)器會將提供該數(shù)據(jù)塊的P2P節(jié)點推薦給缺少該數(shù)據(jù)塊的P2P節(jié)點。網(wǎng)吧服務(wù)器與P2P節(jié)點進(jìn)行數(shù)據(jù)交互的過程中,定時更新P2P列表建立推薦列表,推薦列表用于接收P2P列表中的P2P節(jié)點向網(wǎng)吧服務(wù)器推薦的其他P2P節(jié)點的IP信息;網(wǎng)吧服務(wù)器定時從P2P列表中刪除單位時間P2P數(shù)據(jù)交互量最小的若干P2P節(jié)點,并從推薦列表中補充相應(yīng)數(shù)量的P2P節(jié)點至P2P列表中。其中,網(wǎng)吧服務(wù)器是通過緩存下載數(shù)據(jù)塊的;網(wǎng)吧服務(wù)器的內(nèi)存中開設(shè)有塊組下載滾動窗口,其用于緩存下載的數(shù)據(jù)塊,窗口存放4個塊組(由1024個數(shù)據(jù)塊組成),默認(rèn)每個塊組大小為32MB,故需要占用128MB的內(nèi)存。
窗口存放的4個塊組對應(yīng)歸屬于四個子窗口兩個讀窗口、Finish寫窗口和Downing寫窗口;在每個子窗口中都有相應(yīng)的位表來標(biāo)識哪些數(shù)據(jù)塊被下載,哪些塊沒有被下載;雖然Finish寫窗口和Downing寫窗口都有寫操作,但是對于具體的數(shù)據(jù)塊來說,都是讀寫分離的。讀窗口中的數(shù)據(jù)塊用于提供P2P傳播服務(wù);Finish寫窗口中未下載的數(shù)據(jù)塊向IDC數(shù)據(jù)服務(wù)器或DownFinish狀態(tài)的P2P節(jié)點請求下載;Downing寫窗口中未下載的數(shù)據(jù)塊向Downing狀態(tài)的P2P節(jié)點請求下載。讀窗口內(nèi)的塊組數(shù)據(jù),在內(nèi)存持有過程中除提供P2P傳播服務(wù)外,還要做寫磁盤的操作,并且不要求讀窗口中所有數(shù)據(jù)塊都下載完成。從IDC數(shù)據(jù)服務(wù)器和DownFinish的P2P節(jié)點中,可以穩(wěn)定的請求到新版本數(shù)據(jù)的任意數(shù)據(jù)塊,即穩(wěn)定完備數(shù)據(jù)源。而從Downing的P2P節(jié)點中只能請求其內(nèi)存4個子窗口塊組中已下載的數(shù)據(jù)塊,即非穩(wěn)定完備數(shù)據(jù)源。由于窗口可能滾動且具有一定的時效性,由此我們的需求請求策略是先用Downing的P2P節(jié)點共享來的數(shù)據(jù)打底,能下多少下多少(數(shù)據(jù)來自內(nèi)存),在窗口滾動后,DownFinish的P2P節(jié)點和IDC數(shù)據(jù)服務(wù)器上同步的數(shù)據(jù)掃底,查漏補缺,將未下載的數(shù)據(jù)塊精確下載(內(nèi)存中沒有去磁盤讀取)。將下載數(shù)據(jù)行為分開,也是保證盡量少的出現(xiàn)重復(fù)數(shù)據(jù)的反復(fù)傳輸。為了節(jié)省內(nèi)存空間,要求窗口滾動一定是單向的;只有當(dāng)Finish寫窗口中所有的需求塊下載完成、Downing寫窗口中的定時發(fā)現(xiàn)下載率超過60%或者Finish寫窗口工作超時,窗口才會滾動。與Finish寫窗口的請求對象不同,Downing寫窗口的請求對象不知道下載了什么數(shù)據(jù)。所以,網(wǎng)吧服務(wù)器在與P2P節(jié)點進(jìn)行信息交互時,會先綁定連接,在回復(fù)綁定連接包中加載當(dāng)前正在下載的塊組ID,有利于確認(rèn)自己所處的下載位置。請求方發(fā)送QueryP2PBlockList (請求正在下載的塊組中所有的塊下載狀態(tài)),回復(fù)包中是P2P節(jié)點此塊組中已經(jīng)下載完成的BlockId的列表,供請求方做請求規(guī)劃。由于一個塊組最多1024個塊,ACK最大4KB左右,所以此交互帶來的網(wǎng)絡(luò)負(fù)荷不高。此時,請求方會收到許多Downing的P2P節(jié)點發(fā)回來的已下載完成的BlockId的列表;一般情況下,先回復(fù)QueryP2PBl0CkListACk的先處理。說明網(wǎng)絡(luò)、工作狀態(tài)較好。優(yōu)先請求Downing寫窗口處于同一塊組的P2P節(jié)點可以認(rèn)為這些P2P節(jié)點是處在同一個群落狀態(tài)中(此狀態(tài)是真正的P2P互助狀態(tài))。如圖2所示,請求方下載策略為1-2-3-4-5,目前Downing寫窗口對應(yīng)的塊組ID為4。我們希望大幅提高P2P下載中的數(shù)據(jù)傳播率,開啟定時器,定時主動通知定時周期內(nèi)Downing寫窗口中下載完成的BlockId的列表給部分保持連接的平行互助節(jié)點(因為每次傳播30% -50%的節(jié)點是效率較高的,我們并不希望一個塊傳播的源頭來自一個節(jié)點,傳播來源越接近50%即分布越均勻)。優(yōu)先請求QueryP2PBlockListAck中可利用Blockid列表多節(jié)點,因為要考慮窗口滾動。如圖3所示,當(dāng)前請求方下載策略為1-2-3-4-5,并開始掉隊;2個節(jié)點的下載策略一致,但是服務(wù)方速度快于請求方。優(yōu)先請求這些節(jié)點的一個好處的,請求方會長期保持和服務(wù)方的連接,無需頻繁連接新的節(jié)點。
另一種情況是,選擇鄰近下載策略的節(jié)點,如圖4所示,2個節(jié)點的下載策略分別為1-2-3-4-5和2-3-4-5-1 ;出現(xiàn)這種情況,說明當(dāng)前的此節(jié)點已經(jīng)落到其他梯隊了。此節(jié)點開始逐步批量重連新的梯隊中服務(wù)節(jié)點,并開始長期持有這些連接(前提是保持在這個梯隊中)。以上策略無法獲取需求塊的可利用服務(wù)節(jié)點,全局P2P列表中計算可利用的節(jié)點信息。如圖5所示,請求方當(dāng)前下載策略是1-2-3-4-5,請求方速度最快,同策略中沒有可利用的P2P節(jié)點。只有下載策略為5-1-2-3-4的節(jié)點可以利用。這種方式的P2P,由于共享的塊組只是交叉,所以會導(dǎo)致大量的連接操作,只是在沒辦法的時候使用。需要考慮成本,是延時向同梯隊節(jié)點重新請求塊列表還是放棄P2P,交由Finish寫窗口完成。對于P2roowing下載過程中下載完成的數(shù)據(jù)塊,由于窗口滾動后丟失的數(shù)據(jù)塊或P2P限速導(dǎo)致不能回復(fù)的情況,我們將其最近提供過服務(wù)的請求方P2P節(jié)點信息回復(fù)給當(dāng)前請求方。圖6給出的數(shù)據(jù)是在生產(chǎn)環(huán)境IDC內(nèi)部做P2P性能比較獲取的。P2P同機房表示本實施方式機制下P2P節(jié)點在同機房內(nèi)有一個完整的數(shù)據(jù)源,P2P異地機房表示本實施方式機制下P2P節(jié)點在同機房內(nèi)沒有完整數(shù)據(jù)源,SSN同機房表示現(xiàn)有機制下節(jié)點在同機房內(nèi)有一個完整數(shù)據(jù)源,SSN同機房表示現(xiàn)有機制下節(jié)點在同機房內(nèi)沒有一個完整數(shù)據(jù)源。在本實施方式機制下各P2P節(jié)點的下載信息如表I所示;其有效速率=更新量/更新時長。表權(quán)利要求
1.一種基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,包括如下步驟 (1)各網(wǎng)吧服務(wù)器向P2P服務(wù)器請求獲取新版本數(shù)據(jù)的索引文件和節(jié)點列表; (2)網(wǎng)吧服務(wù)器對本地舊版本數(shù)據(jù)的索引文件與新版本數(shù)據(jù)的索引文件進(jìn)行差異對t匕,得到下載列表; (3)網(wǎng)吧服務(wù)器從節(jié)點列表中優(yōu)選出多個P2P節(jié)點并與這些P2P節(jié)點進(jìn)行信息交互,同時建立關(guān)于這些P2P節(jié)點的P2P列表; (4)網(wǎng)吧服務(wù)器根據(jù)下載列表、P2P列表以及與各P2P節(jié)點交互得到的信息,建立數(shù)據(jù)塊資源列表并對其實時更新; 所述的數(shù)據(jù)塊資源列表包含有當(dāng)前所有待下載數(shù)據(jù)塊的ID信息和客戶信息,待下載數(shù)據(jù)塊的客戶信息包括P2P列表中擁有該數(shù)據(jù)塊的P2P節(jié)點的IP信息和缺少該數(shù)據(jù)塊的P2P節(jié)點的IP信息; (5)網(wǎng)吧服務(wù)器根據(jù)數(shù)據(jù)塊資源列表與P2P列表中的P2P節(jié)點進(jìn)行數(shù)據(jù)交互。
2.根據(jù)權(quán)利要求1所述的基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,其特征在于所述的步驟(3)中,網(wǎng)吧服務(wù)器根據(jù)節(jié)點列表向IDC數(shù)據(jù)服務(wù)器發(fā)送下載請求,IDC數(shù)據(jù)服務(wù)器根據(jù)網(wǎng)吧服務(wù)器的IP信息確定其起始下載切入位置,網(wǎng)吧服務(wù)器根據(jù)起始下載切入位置從新版本數(shù)據(jù)中對應(yīng)的切入位置開始下載數(shù)據(jù)塊。
3.根據(jù)權(quán)利要求1所述的基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,其特征在于所述的步驟⑶中,網(wǎng)吧服務(wù)器從節(jié)點列表中優(yōu)選出多個P2P節(jié)點的方法為按同城同ISP-同省同ISP-同城不同ISP-同省不同ISP的優(yōu)先級次序從節(jié)點列表中挑選出多個網(wǎng)吧服務(wù)器作為優(yōu)選出的多個P2P節(jié)點。
4.根據(jù)權(quán)利要求1所述的基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,其特征在于所述的步驟(5)中,網(wǎng)吧服務(wù)器與各P2P節(jié)點進(jìn)行數(shù)據(jù)交互的方法如下 關(guān)于下載 網(wǎng)吧服務(wù)器對當(dāng)前所有待下載數(shù)據(jù)塊進(jìn)行優(yōu)先級排序,根據(jù)優(yōu)先級依次下載各數(shù)據(jù)塊;當(dāng)下載任一數(shù)據(jù)塊時,網(wǎng)吧服務(wù)器通過數(shù)據(jù)塊資源列表確定擁有該數(shù)據(jù)塊的P2P節(jié)點,從中選取一 P2P節(jié)點向其下載該數(shù)據(jù)塊; 關(guān)于上傳 當(dāng)任一數(shù)據(jù)塊下載完成后,網(wǎng)吧服務(wù)器先標(biāo)記該數(shù)據(jù)塊為已下載數(shù)據(jù)塊,然后通過數(shù)據(jù)塊資源列表確定缺少該數(shù)據(jù)塊的P2P節(jié)點,并通知這些P2P節(jié)點該數(shù)據(jù)塊已完成;P2P節(jié)點根據(jù)通知查詢本地是否缺少該數(shù)據(jù)塊,若缺少則向網(wǎng)吧服務(wù)器下載該數(shù)據(jù)塊。
5.根據(jù)權(quán)利要求4所述的基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,其特征在于網(wǎng)吧服務(wù)器通過緩存下載數(shù)據(jù)塊。
6.根據(jù)權(quán)利要求4所述的基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,其特征在于網(wǎng)吧服務(wù)器根據(jù)數(shù)據(jù)塊資源列表對當(dāng)前所有待下載數(shù)據(jù)塊進(jìn)行優(yōu)先級排序,擁有者越少的數(shù)據(jù)塊優(yōu)先級越高。
7.根據(jù)權(quán)利要求4所述的基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,其特征在于當(dāng)下載任一數(shù)據(jù)塊時,網(wǎng)吧服務(wù)器通過數(shù)據(jù)塊資源列表確定擁有該數(shù)據(jù)塊的P2P節(jié)點,從中選取單位時間P2P數(shù)據(jù)交互量最大的一 P2P節(jié)點向其下載該數(shù)據(jù)塊。
8.根據(jù)權(quán)利要求4所述的基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,其特征在于當(dāng)任一數(shù)據(jù)塊下載完成后,網(wǎng)吧服務(wù)器通過數(shù)據(jù)塊資源列表確定缺少該數(shù)據(jù)塊的P2P節(jié)點,并將提供該數(shù)據(jù)塊的P2P節(jié)點推薦給缺少該數(shù)據(jù)塊的P2P節(jié)點。
9.根據(jù)權(quán)利要求1所述的基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,其特征在于所述的步驟(5)中,網(wǎng)吧服務(wù)器與P2P節(jié)點進(jìn)行數(shù)據(jù)交互的過程中,定時更新P2P列表建立推薦列表,所述的推薦列表用于接收P2P列表中的P2P節(jié)點向網(wǎng)吧服務(wù)器推薦的其他P2P節(jié)點的IP信息;網(wǎng)吧服務(wù)器定時從P2P列表中刪除若干P2P節(jié)點,并從推薦列表中補充相應(yīng)數(shù)量的P2P節(jié)點至P2P列表中。
10.根據(jù)權(quán)利要求9所述的基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,其特征在于網(wǎng)吧服務(wù)器定時從P2P列表中刪除單位時間P2P數(shù)據(jù)交互量最小的若干P2P節(jié)點。
全文摘要
本發(fā)明公開了一種基于P2P的網(wǎng)吧服務(wù)器數(shù)據(jù)更新方法,包括(1)獲取索引文件和節(jié)點列表;(2)比較索引文件,得到下載列表;(3)根據(jù)節(jié)點列表,建立P2P連接;(4)建立數(shù)據(jù)塊資源列表;(5)與P2P節(jié)點進(jìn)行數(shù)據(jù)交互。本發(fā)明通過將P2P自助網(wǎng)絡(luò)通過群落模型表現(xiàn)出來,解決了P2P網(wǎng)絡(luò)動態(tài)組網(wǎng)及自我進(jìn)化的完整過程,使得P2P網(wǎng)絡(luò)自適應(yīng)于動態(tài)變化的不同環(huán)境下,達(dá)成較優(yōu)的組網(wǎng)效果和較高的資源同步效果;同時合理規(guī)劃下載熱度分布,均衡IDC帶寬對于差異數(shù)據(jù)請求分布,合理利用用戶的帶寬,以達(dá)到提供同步速度的效果;組網(wǎng)效果優(yōu),數(shù)據(jù)分發(fā)分享效率高,能有效提高整個網(wǎng)絡(luò)數(shù)據(jù)的同步速度。
文檔編號H04L29/08GK103036964SQ20121052628
公開日2013年4月10日 申請日期2012年12月4日 優(yōu)先權(quán)日2012年12月4日
發(fā)明者陳亮 申請人:杭州順網(wǎng)科技股份有限公司