国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多人協(xié)作下載模式的設(shè)計(jì)

2013-04-29 17:57連楠楠張偲鈕亮
中外企業(yè)家 2013年6期
關(guān)鍵詞:多線程

連楠楠 張偲 鈕亮

摘要:下載是網(wǎng)絡(luò)應(yīng)用中最重要的組成部分,而即使在下載技術(shù)相對(duì)成熟的今天,還是有很多情況不能達(dá)到滿帶寬負(fù)荷地下載資源,本文設(shè)計(jì)的多人協(xié)作下栽模式,在多線程下栽的基礎(chǔ)上,應(yīng)用多用戶同時(shí)提取資源的部分?jǐn)?shù)據(jù),再整合至傳輸速度快的服務(wù)器,實(shí)現(xiàn)快速下載的目的。

關(guān)鍵詞:多線程;文件傳輸;下載

中圖分類號(hào):C931 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1000-8772(2013)15-0208-03

1.引言

中國(guó)互聯(lián)網(wǎng)規(guī)模與日俱增,越來越多的人開始使用互聯(lián)網(wǎng),而在使用互聯(lián)網(wǎng)時(shí),最重要的一個(gè)概念就是下載。下載的速度、占資源量和穩(wěn)定性一直被作為下載方式好壞的最重要的評(píng)估。目前的下載方式有HTTP方式,F(xiàn)TP方式,ED2K方式,BT方式,迅雷下載等。其中,F(xiàn)TP下載是最原始也最簡(jiǎn)單的下載方式,服務(wù)器離客戶機(jī)的距離越近,下載人數(shù)越少,下載速度就越快,BT下載是現(xiàn)在最流行的P2P下載模式,利用用戶之間的相互傳輸來下載所需文件,下載的人數(shù)越多,上傳給其他用戶的也就越多,下載速度也就越快。由此可見,較近服務(wù)器上的,下載人數(shù)較少的文件適合用FTP下載,網(wǎng)絡(luò)上很熱門的文偉置合用P2P下載。

然而,在下載資源的時(shí)候會(huì)碰到這樣一種情況:資源的原始地址是一個(gè)很遠(yuǎn)的服務(wù)器,資源的下載者很少,當(dāng)下載者要下載該資源時(shí),資源數(shù)據(jù)的傳輸受到服務(wù)器出口帶寬的影響,并且將通過很多網(wǎng)絡(luò)節(jié)點(diǎn)傳輸?shù)较螺d者的電腦中,嚴(yán)重影響速度。所以無論是傳統(tǒng)的FTP下載還是現(xiàn)今流行的P2P下載,都無法達(dá)到理想的下載速度。曾經(jīng)網(wǎng)絡(luò)上流行過的乾坤小挪移工具,如今迅雷下載工具的離線下載功能都是用來處理這種資源,這些方法不需要用戶在線,就可以將遠(yuǎn)方服務(wù)器上的資源慢慢移動(dòng)到較近服務(wù)器,然后供應(yīng)下載。但是利用離線下載工具需要服務(wù)器提供挪移功能,需要一定費(fèi)用,而且單個(gè)服務(wù)器提取遠(yuǎn)方服務(wù)器上資源的速度依然很慢,用戶雖然可以不用上線,卻依然要等待很久。多人協(xié)作下載模式正是用于解決這種下載問題。

2.基本思想

多人協(xié)作下載是基于多線程下載的文件挪移方法。在單條線程下載速度慢的時(shí)候,我們一般使用多線程下載,即在發(fā)送端將要傳輸?shù)奈募指顬榇笮∠喈?dāng)?shù)亩鄩K,用多個(gè)線程,將這些塊同時(shí)向目標(biāo)端發(fā)送。目標(biāo)端可監(jiān)聽發(fā)送端的傳輸請(qǐng)求,一旦接到新的請(qǐng)求,則創(chuàng)建一個(gè)新的線程,與發(fā)送端的發(fā)送線程對(duì)應(yīng),接收數(shù)據(jù),并記錄數(shù)據(jù)傳輸過程,下載完成的數(shù)據(jù)根據(jù)日志文檔的位置記錄對(duì)號(hào)入座,組成完整文件。

事實(shí)上在服務(wù)器上下載資源的時(shí)候,下載者必須遵守服務(wù)器設(shè)定的線程限制,所以往往只能使用單線程下載或者極少的幾個(gè)線程進(jìn)行下載。而服務(wù)器的下載線程限制是針對(duì)一個(gè)IP地址,如果能夠用網(wǎng)內(nèi)多條寬帶,多個(gè)IP地址同時(shí)去下載文件的一部分,就能有效提高下載速率,多人協(xié)作下載就是這樣的下載模式。發(fā)送端源頭的操作方式與多線程下載類似,將文件分割為大小相當(dāng)?shù)亩鄩K,在傳輸過程中,將文件塊傳輸請(qǐng)求發(fā)向網(wǎng)內(nèi)多個(gè)目標(biāo),每條寬帶就可以下載一個(gè)或多個(gè)文件塊,然后上傳到較近的目標(biāo)端服務(wù)器,合并為原文件,以供快速下載。

見圖示1:

3.實(shí)現(xiàn)原理

3.1下載過程

下載之前,首先要辨識(shí)資源屬性,包括標(biāo)識(shí)資源的ID、鏈接地址、保存目錄、文件大名稱、資源大小等。然后要先將資源分成若干塊,這就需要建立一個(gè)臨時(shí)文件來保存每塊數(shù)據(jù)的信息,其中包括塊在原文件的起始位置,塊的長(zhǎng)度,以及該塊的文件名。

多人協(xié)作下載模式由發(fā)送端服務(wù)器,目標(biāo)端服務(wù)器和一個(gè)客戶機(jī)群組成,但是在下載的時(shí)候,只用到發(fā)送端服務(wù)器和客戶機(jī)群,其中客戶機(jī)群有一個(gè)主客戶機(jī),即創(chuàng)建下載任務(wù)的客戶機(jī)。在下載過程中,主客戶機(jī)不停地檢測(cè)客戶機(jī)群中是否有空閑客戶機(jī),一旦發(fā)現(xiàn)空閑客戶機(jī),就指示該客戶機(jī)像發(fā)送端服務(wù)器申請(qǐng)接受數(shù)據(jù)。然后發(fā)送端將檢測(cè)已經(jīng)傳輸完成的和正在給其他客戶機(jī)傳輸?shù)臄?shù)據(jù)大小及位置,取出接下來應(yīng)傳輸?shù)臄?shù)據(jù)塊并向客戶機(jī)發(fā)送數(shù)據(jù)。客戶機(jī)在接收數(shù)據(jù)時(shí)依照發(fā)送端服務(wù)器分割塊時(shí)的文件名來對(duì)接收的數(shù)據(jù)塊命名,同時(shí)創(chuàng)建臨時(shí)文件,記錄接收數(shù)據(jù)的起始位置,同時(shí)動(dòng)態(tài)記錄已傳輸數(shù)據(jù)的大小,以便監(jiān)控傳輸進(jìn)度,完成傳輸則退出。

然而在下載的過程中,不能保證每臺(tái)客戶機(jī)在傳輸期間都能保持在線狀態(tài),所以在傳輸中斷的時(shí)候,會(huì)先檢測(cè)客戶機(jī)是否離線,如果還在線,則申請(qǐng)重新傳輸;倘若客戶機(jī)短時(shí)間內(nèi)沒能繼續(xù)接受數(shù)據(jù),則判斷為客戶機(jī)離線,將直接結(jié)束該數(shù)據(jù)塊的傳輸,發(fā)送端服務(wù)器也不會(huì)記錄到已傳輸,這樣一次數(shù)據(jù)塊的傳輸就宣告失敗,在下次又有空閑客戶機(jī)的時(shí)候,依然從以上數(shù)據(jù)塊開始傳輸。這種設(shè)計(jì),就可以保證在下載過程中,每一個(gè)數(shù)據(jù)塊都能夠完整地傳輸?shù)娇蛻魴C(jī)中,而每一個(gè)客戶機(jī)都能夠不間斷地下載數(shù)據(jù)塊,不會(huì)因?yàn)橐粋€(gè)接收了下載任務(wù)的客戶機(jī)的斷線而耽擱整體下載進(jìn)度。

3.2上傳及整合

主客戶機(jī)創(chuàng)建下載任務(wù)的同時(shí),將在目標(biāo)端服務(wù)器上創(chuàng)建一個(gè)以資源文件名命名的文件夾,用來接收各客戶機(jī)上傳的數(shù)據(jù)塊。

在文件的數(shù)據(jù)塊被從發(fā)送端服務(wù)器下載到客戶機(jī)時(shí),會(huì)有臨時(shí)文件記錄數(shù)據(jù)塊的已傳輸大小,當(dāng)數(shù)據(jù)傳輸完成后,就會(huì)斷開線程,此時(shí)一個(gè)完整的數(shù)據(jù)塊就已經(jīng)存在于某一臺(tái)客戶機(jī)的硬盤里。一塊數(shù)據(jù)一旦下載完成,就會(huì)立刻通過ftp協(xié)議上傳至目標(biāo)服務(wù)器中主客戶機(jī)創(chuàng)建的文件夾。

當(dāng)所有數(shù)據(jù)塊都上傳到目標(biāo)端服務(wù)器,主客戶機(jī)又將創(chuàng)建一個(gè)文件,通過文件讀寫操作,將數(shù)據(jù)塊的內(nèi)容按照數(shù)據(jù)塊名字的順序拷貝到該文件,當(dāng)所有數(shù)據(jù)塊都連接到一起,就組成了一個(gè)完整的文件,這個(gè)文件將存在于目標(biāo)端服務(wù)器以供網(wǎng)內(nèi)所有用戶下載。

4.小結(jié)

多人協(xié)作下載模式的設(shè)計(jì)旨在提高冷門資源的下載效率?;诙嗑€程下載技術(shù),由多用戶同時(shí)提取發(fā)送端服務(wù)器上的資源,以達(dá)到快速下載的目的,針對(duì)較遠(yuǎn)服務(wù)器上的資源和下載人數(shù)少的資源,都有一定應(yīng)用價(jià)值。

猜你喜歡
多線程
Java多線程同步機(jī)制在網(wǎng)絡(luò)售票系統(tǒng)中的應(yīng)用
Java并發(fā)工具包對(duì)并發(fā)編程的優(yōu)化
基于多線程文件傳輸關(guān)鍵技術(shù)研究與實(shí)現(xiàn)
網(wǎng)頁爬蟲技術(shù)的關(guān)鍵技術(shù)研究探索
一種基于多線程的高速磁盤鏡像算法
iOS并發(fā)程序設(shè)計(jì)中幾種方法的特點(diǎn)及使用技巧研究
HTM L5 Web WOrker技術(shù)及應(yīng)用研究
電站鍋爐煤粉參數(shù)遠(yuǎn)程監(jiān)控系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)
一種高并發(fā)認(rèn)證服務(wù)器的實(shí)現(xiàn)
一種低開銷的并行重復(fù)數(shù)據(jù)刪除算法