日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

迅雷(XUNLEI)的工作原理揭密

發(fā)布時(shí)間:2025/3/19 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 迅雷(XUNLEI)的工作原理揭密 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

迅雷(XUNLEI)如何搜索一個(gè)資源的多服務(wù)器版本?

-------實(shí)現(xiàn)一個(gè)類似迅雷的系統(tǒng)“福雷(FULEI)”

摘要:

當(dāng)你用迅雷下載東西時(shí),無論你是從迅雷資源頁(yè)點(diǎn)下載,還是從其它普通頁(yè)面點(diǎn)下載,你會(huì)發(fā)現(xiàn)它并不只用你的原始鏈接下載,它還搜索了一些其它服務(wù)器的相同資源,比起網(wǎng)絡(luò)螞蟻/網(wǎng)際快車之類的下載工具(這些都是純客戶端工具,而迅雷則有著服務(wù)器支持),大大增加成功下載的可能性和下載的速度,對(duì)比起P2P之類的下載軟件,又更干凈利落一些,那它是如何做到的呢?其實(shí)同baidu,google的基本原理是一樣的,只不過各自的技術(shù)又有側(cè)重而已,本文就個(gè)人經(jīng)驗(yàn)分析其實(shí)現(xiàn)渠道及基本原理,暫稱這個(gè)系統(tǒng)為福雷(FULEI),同本人名字有點(diǎn)諧音,呵呵,寫下此文,也不枉昨晚失眠的幾十分鐘。

搜索,視頻, 迅雷,p2p,下載,google,baidu,search,

?

轉(zhuǎn)載請(qǐng)注明出處及作者(http://blog.csdn.net/mudboy??? mudboy@csdn

?

下載電影,音樂之類的大文件(相對(duì)于網(wǎng)頁(yè))相信是每一個(gè)年輕人最愛干的一件事之一了,在這個(gè)P2P下載軟件橫行的時(shí)代,為什么像迅雷這樣的客戶/服務(wù)器模式還能有那么大市場(chǎng)呢?我曾試過好幾款P2P下載軟件(如電騾,天網(wǎng)MAZE等),但沒用多久就被我卸載了,我不喜歡被人家不斷讀硬盤的感覺,因?yàn)樗鼈冊(cè)鴼Я宋乙粔K硬盤,而且占了我太多的上行帶寬,個(gè)人認(rèn)為,如果要用這類軟件,別裝在你的工作用機(jī)/學(xué)習(xí)用機(jī)上,而應(yīng)專門用一臺(tái)破機(jī)器去運(yùn)行它。使用迅雷還是一兩個(gè)月以前的事,因?yàn)樵诖酥?#xff0c;我主要還是用網(wǎng)際快車之類的軟件下載東西,這類軟件是純客戶端軟件,更多的無非是下載管理/斷點(diǎn)續(xù)傳/多線程下載之類的功能,下載速度基本上取決于資源鏈接服務(wù)器和網(wǎng)絡(luò)的速度,迅雷本身的客戶端功能同上述功能差不多,不同的只是它可以從迅雷自已的服務(wù)器中獲取其它服務(wù)器的相同資源信息,使單個(gè)資源可以從多個(gè)服務(wù)器/多線程/斷點(diǎn)續(xù)傳的下載,增加了資源成功下載的機(jī)率和速度,從我的使用過程看,很多資源的下載速度決不亞于P2P軟件,甚至還更快,但相對(duì)于P2P,人家不會(huì)從我的機(jī)器上下載內(nèi)容,更不會(huì)占用我的上行帶寬,可以放心的在工作機(jī)上使用。

迅雷的這個(gè)點(diǎn)子,的確是個(gè)好點(diǎn)子!其實(shí)仔細(xì)想想,這其實(shí)只是個(gè)中庸的點(diǎn)子而已,介于P2P和純客戶端下載軟件(如NETANTSFLASHGET之類)之間的一個(gè)中庸點(diǎn)子,由此又驗(yàn)證了一句話:中庸在很多時(shí)候可能是最好的選擇。

我們的福雷要做同迅雷差不多的事,讀下文時(shí)可以暫將福字替換成迅。

談了這么多,還沒有談到一點(diǎn)技術(shù)性的內(nèi)容,真唐僧!

福雷做法的關(guān)鍵在哪里?在于當(dāng)用戶要下載一個(gè)資源時(shí),如何去找在其它服務(wù)器上的完全相同的資源!

回顧一下普通搜索引擎的做法:用Crawler沒日沒夜的下載網(wǎng)頁(yè),然后存儲(chǔ),索引(倒排表是很常用的做法),用戶搜索時(shí),它會(huì)根據(jù)索引找到符合的頁(yè)面,排序后,在本地服務(wù)器截取結(jié)果片段返回到客戶端。PDF/WORD等文檔的搜索也差不多,它們有個(gè)共同的特點(diǎn)是文件不太大,而且基本不太涉及版權(quán)問題,因而所有內(nèi)容在自己服務(wù)器上都有快照。

但對(duì)于視頻/音頻等較大的文件(動(dòng)則幾十兆上百兆到G級(jí)),如果按上述方式處理則會(huì)有一些問題,首先要爬完一個(gè)資源所消耗的代價(jià)太大,其次,即使下來了,也沒有太大的用處,你不能直接供用戶下載,這可能會(huì)遭遇訴訟,看看百度音樂搜索,以前搜出來的結(jié)果直接指向資源位置,現(xiàn)在還非得出一個(gè)對(duì)話框,將位置明示,生怕被人抓住把柄,個(gè)人認(rèn)為完全沒有必要,也許是為了應(yīng)付部分什么也不懂的官員,卻讓使用者感到不便。

既然是搜索,終歸需要先找到資源,這一點(diǎn)大家都一樣,基本的做法還是用Crawler,只不過,Crawler需要識(shí)別不同類型的資源區(qū)別對(duì)待,我們以視頻文件為例說明。

假如Crawler在工作的過程中標(biāo)識(shí)出了所有視頻文件的鏈接并交于特殊的處理程序處理,接下來的問題如何存儲(chǔ)和索引這些信息,剛才已經(jīng)說了,要下載整個(gè)視頻文件并不現(xiàn)實(shí),而有一些內(nèi)容是很容易得到的:資源鏈接,文件名/文件類型(擴(kuò)展名),大小,存儲(chǔ)這些信息是簡(jiǎn)單且必要的,

現(xiàn)在的關(guān)鍵問題是如何判斷文件的同價(jià)性?也就是說,如何知道這幾個(gè)文件是一樣的?存儲(chǔ)這個(gè)信息對(duì)我信至關(guān)重要,通過文件名?顯然不行,通過修改時(shí)間?作者?大小?等,都不太準(zhǔn)確,最常用的方法還是計(jì)算文件摘要,而計(jì)算文件摘要最常用的方法又是MD5(雖說MD5可以破解,但對(duì)于大眾化應(yīng)用,這種破解沒什么意義,而在非人為狀況下,MD5可以認(rèn)為是可靠的),但這又出現(xiàn)一個(gè)新的難題,計(jì)算摘要需要所在文件內(nèi)容,我們有以下選擇:

1、? 能不能在服務(wù)器上計(jì)算?(可惜視頻不像些開源軟件,下載鏈接中常有MD5摘要文件,這樣可以一并下來),而想在服務(wù)器上計(jì)算,是否有些異想天開?

2、? 下載所有內(nèi)容計(jì)算摘要,上面已經(jīng)說過這個(gè)問題

3、? 下載部分內(nèi)容計(jì)劃摘要,聽起來真不錯(cuò),又是一個(gè)中庸的想法,我現(xiàn)在越來越喜歡中庸了,沒錯(cuò),就是它,但下載哪部分內(nèi)容呢?我們可以根據(jù)文件大小利用一些簡(jiǎn)單的散列算法生成散列值,根據(jù)這些值在文件的不同部分讀取一定量的數(shù)據(jù),總數(shù)據(jù)量控制在K級(jí)別(同網(wǎng)頁(yè)差不多大小),然后將這些數(shù)據(jù)拼裝成整體存儲(chǔ)并生成其摘要。這種方法是可行的。首先,它的下載量不大,其次,根據(jù)該方法判文件的等價(jià)性同基準(zhǔn)方法(根據(jù)所有數(shù)據(jù)算摘要)比準(zhǔn)確率幾乎相同(證明過程我就不說了,實(shí)踐才是最好的標(biāo)誰(shuí))

利用摘要判斷文件等價(jià)性的方法有一個(gè)好處是可以忽略一些次要信息,比如文件名,創(chuàng)建時(shí)間,修改時(shí)間等,但文件類型,長(zhǎng)度和摘要?jiǎng)t是需要考慮的成份。也就是說,如果這三者一樣,則我們認(rèn)為文件是一樣的。

存儲(chǔ)完上述信息,至于如何索引,考慮的因素可能會(huì)多一些,最簡(jiǎn)單的就以摘要索引就行,這樣等價(jià)資源會(huì)被聚類到一起,但作為一個(gè)資源聚集點(diǎn),資源的描述信息也是要考慮進(jìn)去的,等下我們會(huì)專門談到這個(gè)問題。

上面已經(jīng)講完了主要內(nèi)容,我們看看當(dāng)我們利用福雷下載時(shí)它做了一些什么事情。

1、? 先看看普通的鏈接(非福雷鏈接)

a)???????? 用戶在任何一個(gè)網(wǎng)站想用其下載資源:http://blog.csdn.net/mudboy/movie/wanfang.rmvb

b)??????? 福雷客戶端將該連接發(fā)到福雷服務(wù)器,同時(shí),客戶端也不閑著,它會(huì)去該鏈接獲取文件的基本信息(大小等),并按上面所述的算法下載部分內(nèi)容并計(jì)算摘要。

c)??????? 服務(wù)端根據(jù)鏈接找自己服務(wù)器,看是否已被系統(tǒng)Crawler處理過,如果已被處理過,很簡(jiǎn)單,通過其摘要找到所有含有該資源的服務(wù)器鏈接發(fā)到客戶端。

d)??????? 客戶端為了保險(xiǎn)起見,會(huì)對(duì)比一下服務(wù)端的摘要和自己算出的摘要(避免文件在近期發(fā)生變動(dòng)),如果一至,OK,可以從服務(wù)端發(fā)過來的多服務(wù)器下載了。

e)???????? 如果不一樣的話,客戶端需將該信息發(fā)到服務(wù)端,告訴它文件有變,服務(wù)端會(huì)去更新該文件的相關(guān)信息(包括等價(jià)文件鏈接),這個(gè)過程可以短也可能長(zhǎng),由此同時(shí),客戶端會(huì)通過原始鏈接開始下載,服務(wù)端更新后,會(huì)陸續(xù)將確認(rèn)后的鏈接發(fā)到客戶端,客戶端從而可又可從新增的鏈接下載。

f)???????? c),如果服務(wù)端未找到原始鏈接呢?是不是意味著服務(wù)端就沒有其它鏈接呢?并不一定,此時(shí),客戶端將信息及摘要發(fā)到服務(wù)端,服務(wù)端可根據(jù)摘要數(shù)據(jù)去搜索,如果搜索到結(jié)果,則將這些結(jié)果鏈接發(fā)到客戶端,并將該原始鏈接加入到服務(wù)器索引中,從而同樣實(shí)現(xiàn)多服務(wù)器下載,如果沒搜索到,則只能從原始鏈接下載資源了。

g)??????? 在上一步中,如果服務(wù)器沒找到原始鏈接也沒找到等價(jià)文件,服務(wù)端會(huì)存儲(chǔ)該并索引該鏈接信息。

h)??????? 在上述過程中,對(duì)于福雷服務(wù)器沒有的原始鏈接,用戶可以在門戶去發(fā)布該資源,此時(shí),用戶就可以填入一些該資源的描述信息(這一步要都由公司人員去做,幾乎是不可能的),成千上萬(wàn)的網(wǎng)民這樣做,門戶內(nèi)容就豐富了(不僅有視頻,還有視頻的描述信息等其它一些元數(shù)據(jù),前面提到索引方式,如果加上這部分內(nèi)容的索引,又進(jìn)一步實(shí)現(xiàn)在基于關(guān)鍵字的搜索)這本身又有點(diǎn)WEB2.0的概念,由網(wǎng)友自發(fā)來聚集和編輯視頻信息。

2、? 再看看專用鏈接,比如,你通過雷區(qū)找到的資源,有一些鏈接類似如下形式:

thunder://QUFmdHA6BDCsdi/ry+L1Byaxfdif=

對(duì)于這類鏈接,其實(shí)相當(dāng)于一個(gè)映射而已,比如,在上一節(jié)的h)步驟中,用戶發(fā)布了一些資源,這個(gè)資源在福雷服務(wù)器中找到了一系列等價(jià)資源,這個(gè)搜索等價(jià)資源的過程是需要消耗服務(wù)器資源的(這個(gè)資源是指CPU/內(nèi)存等機(jī)器資源),這樣,可以專為該資源生成一個(gè)URL,該URL就對(duì)應(yīng)上述鏈接信息的索引以及用戶輸入的視頻元數(shù)據(jù)信息,這樣,用戶可以很容易通過關(guān)鍵字搜到該視頻,同時(shí)使用這類URL下載時(shí),沒有一個(gè)搜索等價(jià)資源的過程,直接就可以返回一系列服務(wù)器鏈接到客戶端,直接實(shí)現(xiàn)多服務(wù)器下載。

?

說了這么多,本來應(yīng)該畫個(gè)框架圖流程圖什么的,但愿說清楚了,有什么好的想法可以多交流。

?

總結(jié)

以上是生活随笔為你收集整理的迅雷(XUNLEI)的工作原理揭密的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品女人久久久 | 国产成人无码av在线播放dvd | 欧美精品videos极品 | 亚洲精品成人无码熟妇在线 | 天天射美女 | 国产一区二区欧美日韩 | 国精产品一区一区三区有限公司杨 | 欧美精品久久久久a | 亚洲一级中文字幕 | 91桃色网站| 制服丝袜av在线播放 | 国产叼嘿视频在线观看 | 欧美又粗又长又爽做受 | 大桥未久av一区二区三区中文 | 欧美肉丝袜videos办公室 | 一区二区在线观看视频 | 中国女人做爰视频 | 国产精品91久久 | 成年人视频免费 | 国产视频网站在线观看 | 热逼视频 | 国产又爽又黄又嫩又猛又粗 | 久久夜色精品国产噜噜亚洲av | 国产精品夜夜嗨 | 色婷婷av久久久久久久 | 久操中文 | 精品少妇theporn| 欧美精品久久久久久 | 亚洲一区影院 | 亚洲香蕉 | 东方av在线免费观看 | 尤物视频在线看 | 日韩欧美精品一区二区 | 国产精品国产自产拍高清av | 黄色avv| 亚洲综合一区二区三区 | 葵司av在线 | 日韩伦理一区二区 | 超碰在线观看免费 | 加勒比hezyo黑人专区 | 91色网站 | 筱田优av | 日日操日日| 午夜激情成人 | 污片在线观看 | 亚洲淫 | 精品人妻久久久久久888不卡 | 日本精品视频在线 | 日本一区二区在线免费观看 | 国产成人综合av | 69视频网| 3d动漫精品啪啪一区二区竹菊 | 美女久久视频 | 国产一区二区激情视频 | 免费毛片大全 | 欧美一级免费 | 亚洲国产精品国自产拍久久 | 日本一区二区高清不卡 | 老司机精品视频在线 | 麻豆福利影院 | 看黄免费网站 | 中文字幕一区二区三区四区不卡 | 国产a免费 | 亚洲激情在线视频 | 亚洲欧美日韩在线看 | 午夜第一页 | 天堂俺去俺来也www久久婷婷 | 欧美日韩爱爱 | 白浆影院 | 在线精品一区 | 麻豆国产一区二区 | 色欧美视频 | 亚洲一区二区动漫 | 中文字幕久久精品 | 老熟妇午夜毛片一区二区三区 | 亚洲av无码一区二区乱子伦 | 国产精品传媒麻豆hd | 精品国偷自产国产一区 | xxxxx18日本| 中文字幕网站 | 欧美日韩视频无码一区二区三 | 免费在线观看成年人视频 | 在线网站av | 69免费视频| 激情小说综合 | 男生操女生逼逼 | 夜夜高潮夜夜爽国产伦精品 | 熟妇毛片 | 黄瓜视频在线免费观看 | 在线免费视频你懂的 | 欧美精品免费看 | 国产精品免费观看视频 | 国产高清成人久久 | 色偷偷在线观看 | 日本福利在线观看 | 欧美人与性动交xxⅹxx | 日韩视频一二三区 | 男人看的网站 | 日韩视频免费在线播放 |