專利名稱:數(shù)據(jù)并發(fā)下載方法、裝置和網(wǎng)絡(luò)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù),尤其涉及一種數(shù)據(jù)并發(fā)下載方法、裝置和網(wǎng)絡(luò)設(shè)備。
背景技術(shù):
文件傳輸協(xié)議(File Transfer Protocol ;以下簡稱FTP)是網(wǎng)絡(luò)中常見的傳輸協(xié)議,一般用于文件共享。FTP傳輸基于傳輸控制協(xié)議(Transmission Control Protocol ;以下簡稱TCP)實現(xiàn),具有傳輸可靠的特點;FTP實現(xiàn)相對簡單、容易部署,且能對不同用戶設(shè)置不同的訪問權(quán)限。FTP還可以執(zhí)行雙向傳輸,即FTP客戶端可以從FTP站點下載資源的同時,也可以在獲取對應(yīng)權(quán)限的前提下,向FTP站點上傳資源。基于以上特點,F(xiàn)TP成為具體機構(gòu)設(shè)施共享資源的主要方式之一。當前,很多知名的公司、學校、科研機構(gòu)均部署了自己的FTP站點,向外界共享資源。FTP傳輸是基于命令交互實現(xiàn),任意的一次FTP傳輸,均對應(yīng)著一個控制鏈接和一個數(shù)據(jù)鏈接;控制鏈接負責傳輸對應(yīng)的交互命令,數(shù)據(jù)鏈接負責傳輸具 體的文件信息。對于一個數(shù)據(jù)鏈接,其生命期僅能傳輸一個文件;對于控制鏈接,其生命期內(nèi)可以對應(yīng)著多個文件傳輸;通常情況下,一個FTP客戶端和一個FTP服務(wù)端之間僅能存在一個數(shù)據(jù)鏈接,這意味著,當一個FTP客戶端向特定的FTP服務(wù)端下載文件時,只能單個文件地逐步下載。但為了提高傳輸速度,F(xiàn)TP也能夠支持一個客戶端同時對服務(wù)端的多個文件的并發(fā)傳輸,比如fresh FTP。在廣域網(wǎng)環(huán)境內(nèi),考慮丟包,時延等問題的影響,當FTP下載的文件規(guī)模較大時,對應(yīng)的下載時間將會很長,甚至會出現(xiàn)傳輸中斷。因此,F(xiàn)TP傳輸優(yōu)化是廣域網(wǎng)優(yōu)化系統(tǒng)的一個重要組成部分。現(xiàn)有技術(shù)中對FTP跨廣域網(wǎng)傳輸優(yōu)化的主要途徑是采用并發(fā)下載的方式實現(xiàn),對應(yīng)的途徑主要有三種,分別是多線程下載,服務(wù)器選擇技術(shù)和多服務(wù)器并發(fā)下載。其中多線程下載為常用的一種方式,多線程下載是利用FTP的斷點續(xù)傳功能實現(xiàn)。所謂斷點續(xù)傳功能,是指在文件下載過程出現(xiàn)中斷之后,當FTP數(shù)據(jù)鏈接重新建立后,F(xiàn)TP客戶端能夠通知FTP服務(wù)器上次下載中斷的位置,并直接從上次下載中斷的位置處繼續(xù)開始下載。這一功能使得FTP客戶端能夠自行決定具體文件的起始下載點,并控制對應(yīng)的下載數(shù)據(jù)量,使得一個FTP鏈接能夠僅下載一個文件的指定分塊。多線程下載將一個文件切分成多個子份,每個子份由一個單獨的FTP鏈接下載,這樣,多個FTP鏈接執(zhí)行并發(fā)下載,達到了更快的下載的速度。然而,現(xiàn)有技術(shù)中的多線程下載方法在FTP傳輸過程中并發(fā)發(fā)起的鏈接數(shù)目是固定的,可能導(dǎo)致帶寬被過分擠占。
發(fā)明內(nèi)容
本發(fā)明提供一種數(shù)據(jù)并發(fā)下載方法、裝置和網(wǎng)絡(luò)設(shè)備,能夠動態(tài)調(diào)整并發(fā)鏈接的數(shù)量,在不過分擠占帶寬的前提下,提升文件傳輸效率。本發(fā)明的第一個方面是提供一種數(shù)據(jù)并發(fā)下載方法,包括對文件服務(wù)器中的待下載文件進行解析,獲取對所述待下載文件具有訪問權(quán)限的訪問用戶的用戶信息;根據(jù)設(shè)備自身的運行狀況、當前的帶寬占用情況以及所述訪問用戶的用戶信息,動態(tài)調(diào)整下載所述待下載文件所需的鏈接;采用調(diào)整后的并發(fā)鏈接將所述待下載文件下載到所述設(shè)備本地。本發(fā)明的另一個方面是提供一種數(shù)據(jù)并發(fā)下載裝置,包括第一解析模塊,用于對文件服務(wù)器中的待下載文件進行解析,獲取對所述待下載文件具有訪問權(quán)限的訪問用戶的用戶信息;調(diào)整模塊,用于根據(jù)設(shè)備自身的運行狀況、當前的帶寬占用情況以及所述訪問用戶的用戶信息,動態(tài)調(diào)整下載所述待下載文件所需的鏈接;下載模塊,用于采用調(diào)整后的并發(fā)鏈接將所述待下載文件下載到所述設(shè)備本地。 本發(fā)明的又一個方面是提供一種網(wǎng)絡(luò)設(shè)備,包括上述的數(shù)據(jù)并發(fā)下載裝置。本發(fā)明的技術(shù)效果是通過對待下載文件進行解析,獲取對待下載文件具有訪問權(quán)限的訪問用戶的用戶信息,根據(jù)設(shè)備自身的運行狀況、當前的帶寬占用情況以及訪問用戶的用戶信息,動態(tài)調(diào)整下載待下載文件所需的鏈接,并采用調(diào)整后的并發(fā)鏈接將所述待下載文件下載到所述設(shè)備本地;本實施例能夠動態(tài)調(diào)整并發(fā)鏈接的數(shù)量,在不過分擠占帶寬的前提下,提升了文件傳輸效率。
圖I為本發(fā)明數(shù)據(jù)并發(fā)下載方法實施例一的流程圖;圖2為本發(fā)明數(shù)據(jù)并發(fā)下載方法實施例二的流程圖;圖3為本發(fā)明數(shù)據(jù)并發(fā)下載方法實施例二中廣域網(wǎng)優(yōu)化系統(tǒng)部署結(jié)構(gòu)示意圖;圖4為本發(fā)明數(shù)據(jù)并發(fā)下載裝置實施例一的結(jié)構(gòu)示意圖;圖5為本發(fā)明數(shù)據(jù)并發(fā)下載裝置實施例二的結(jié)構(gòu)示意圖。
具體實施例方式圖I為本發(fā)明數(shù)據(jù)并發(fā)下載方法實施例一的流程圖,如圖I所示,本實施例提供了一種數(shù)據(jù)并發(fā)下載方法,可以具體包括如下步驟步驟101,對文件服務(wù)器中的待下載文件進行解析,獲取對所述待下載文件具有訪問權(quán)限的訪問用戶的用戶信息。本實施例具體應(yīng)用于廣域網(wǎng)優(yōu)化系統(tǒng)中,通過多鏈接來并發(fā)執(zhí)行文件的下載。本步驟為通過設(shè)置在客戶端與出口網(wǎng)關(guān)之間的加速設(shè)備對文件服務(wù)器中的待下載文件進行解析,獲取該待下載文件所處的文件服務(wù)器,以及對該待下載文件具有訪問權(quán)限的訪問用戶的用戶信息。其中,對于不同的待下載文件來說,對應(yīng)有不同用戶的訪問權(quán)限,此處通過解析待下載文件獲取能夠?qū)ζ鋱?zhí)行訪問的訪問用戶,此處的用戶信息可以包括用戶的IP地址以及用戶相關(guān)信息。本實施例中的客戶端具體為FTP客戶端,文件服務(wù)器具體為FTP服務(wù)器,待下載文件具體為待下載FTP文件。當FTP客戶端請求從FTP服務(wù)器下載待下載文件時,通過加速設(shè)備來對文件下載進行優(yōu)化。具體為當加速設(shè)備發(fā)現(xiàn)FTP客戶端所請求的文件不在加速設(shè)備本地,需要跨廣域網(wǎng)向FTP服務(wù)器獲取時,或者當加速設(shè)備直接向FTP服務(wù)器獲取文件時,加速設(shè)備通過動態(tài)建立的并發(fā)鏈接來完成待下載文件的下載過程。
進一步地,在上述步驟101之前,還可以包括如下步驟對與文件客戶端間的控制鏈接進行解析,獲取所述文件服務(wù)器的合法用戶的用戶信息,其中,所述合法用戶包括所述訪問用戶。步驟102,根據(jù)設(shè)備自身的運行狀況、當前的帶寬占用情況以及所述訪問用戶的用戶信息,動態(tài)調(diào)整下載所述待下載文件所需的鏈接。在獲取到對待下載文件具有訪問權(quán)限的訪問用戶的用戶信息后,根據(jù)設(shè)備自身的運行狀況、當前的帶寬占用情況以及訪問用戶的用戶信息,動態(tài)調(diào)整下載該待下載文件所需的鏈接。此處的設(shè)備的運行狀況具體為加速設(shè)備的具體運行狀況,例如加速設(shè)備處于閑時狀態(tài)或處于忙時狀態(tài)。在本實施例中,初始狀態(tài)下并發(fā)鏈接中只包含一條初始鏈接,由初始鏈接先對待下載文件進行下載,根據(jù)下載過程中實時獲取的帶寬占用情況,來確定是否能夠在并發(fā)鏈接中新建一條鏈接。當當前的帶寬占用情況允許新建一條鏈接時,可以根據(jù)之前獲取的訪問用戶的用戶信息來獲取其中一個用戶的用戶信息作為新建的鏈接的用戶信息,然后將其加入到當前并發(fā)鏈接中。在并發(fā)鏈接中新建一條鏈接后,由初始鏈接和新建的鏈接組成的并發(fā)鏈接對待下載文件進行下載,根據(jù)下載過程中實時獲取的帶寬占用情況,來確定是否能夠在當前并發(fā)鏈接中再新建一條鏈接。以此類推,根據(jù)實時獲取的當前并 發(fā)鏈接情況來動態(tài)調(diào)整下載該待下載文件所需的鏈接。具體地,本實施例中的上述步驟102可以具體包括如下步驟根據(jù)設(shè)備自身的運行狀態(tài)生成帶寬占用閾值;根據(jù)所述帶寬占用閾值和當前的帶寬占用情況判斷是否能夠新建一個鏈接;當能夠新建一個鏈接時,使用除當前并發(fā)鏈接中各鏈接所使用的訪問用戶之外的一個所述訪問用戶的用戶信息建立一個鏈接。更具體地,上述根據(jù)所述帶寬占用閾值和當前的帶寬占用情況判斷是否能夠新建一個鏈接的步驟可以具體包括如下步驟判斷當前是否存在鏈接下載完畢或預(yù)設(shè)的定時時間是否到達,所述定時時間是在所述當前并發(fā)鏈接中存在鏈接下載完畢時根據(jù)下載完畢的鏈接的傳輸時間設(shè)置的;若當前存在下載完畢的鏈接或預(yù)設(shè)的定時時間到達時,則判斷所述當前并發(fā)鏈接所占用的帶寬是否超過所述帶寬占用閾值;若所述當前并發(fā)鏈接所占用的帶寬未超過所述帶寬占用閾值,則能夠新建一個鏈接。步驟103,采用調(diào)整后的并發(fā)鏈接將所述待下載文件下載到所述設(shè)備本地。通過上述步驟實時對下載待下載文件所需的鏈接進行調(diào)整,獲取調(diào)整后的并發(fā)鏈接,然后采用調(diào)整后的并發(fā)鏈接將所述待下載文件下載到所述設(shè)備本地。本實施例以并發(fā)鏈接并發(fā)執(zhí)行待下載文件的下載,且根據(jù)下載過程中的帶寬占用情況和設(shè)備自身的運行情況實時動態(tài)調(diào)整并發(fā)鏈接中鏈接的數(shù)量,從而不會出現(xiàn)過分擠占帶寬的現(xiàn)象。本實施例中通過不同訪問用戶對應(yīng)的鏈接來組成并發(fā)鏈接,可以防止由于文件服務(wù)器對單個用戶發(fā)起的鏈接數(shù)目存在限制而導(dǎo)致的并發(fā)鏈接受限的現(xiàn)象,本實施例通過并發(fā)下載可以提升文件下載的速度,進而提高文件傳輸效率。進一步地,本實施例提供的數(shù)據(jù)并發(fā)下載方法還可以包括如下步驟根據(jù)所述帶寬占用閾值和預(yù)設(shè)的多線程并發(fā)的最多鏈接數(shù),生成初始鏈接所能下載的數(shù)據(jù)量;根據(jù)所述初始鏈接能下載的數(shù)據(jù)量、所述待下載文件當前剩余的待傳輸數(shù)據(jù)量以及當前并發(fā)鏈接中最后建立的鏈接當前剩余的待傳輸數(shù)據(jù)量,生成新建的鏈接所能下載的數(shù)據(jù)量,以根據(jù)所述新建的鏈接所能下載的數(shù)據(jù)量對所述新建的鏈接進行配置。
本實施例提供了一種數(shù)據(jù)并發(fā)下載方法,通過對待下載文件進行解析,獲取對待下載文件具有訪問權(quán)限的訪問用戶的用戶信息,根據(jù)設(shè)備自身的運行狀況、當前的帶寬占用情況以及訪問用戶的用戶信息,動態(tài)調(diào)整下載待下載文件所需的鏈接,并采用調(diào)整后的并發(fā)鏈接將待下載文件下載到所述設(shè)備本地;本實施例能夠動態(tài)調(diào)整并發(fā)鏈接的數(shù)量,在不過分擠占帶寬的前提下,提升了文件傳輸效率。圖2為本發(fā)明數(shù)據(jù)并發(fā)下載方法實施例二的流程圖,如圖2所示,本實施例提供了一種數(shù)據(jù)并發(fā)下載方法,可以具體包括如下步驟步驟201,對與FTP客戶端間的控制鏈接進行解析,獲取FTP服務(wù)器的合法用戶的
用戶信息。圖3為本發(fā)明數(shù)據(jù)并發(fā)下載方法實施例二中廣域網(wǎng)優(yōu)化系統(tǒng)部署結(jié)構(gòu)示意圖,如圖3所示,本實施例具體應(yīng)用于廣域網(wǎng)優(yōu)化系統(tǒng),圖中所示具體為一個公司的廣域網(wǎng)優(yōu)化 系統(tǒng)。其中,F(xiàn)TP客戶端位于公司的分支機構(gòu),即遠程辦事處,而FTP服務(wù)器位于公司總部,由于分支機構(gòu)與公司總部同屬于一個機構(gòu),因此通常采用專線通訊,F(xiàn)TP客戶端與FTP服務(wù)器是N對I的關(guān)系;在FTP客戶端與出口網(wǎng)關(guān)之間設(shè)置一個加速設(shè)備,加速設(shè)備采取雙邊部署,用于對FTP客戶端與FTP服務(wù)器之間的數(shù)據(jù)傳輸進行優(yōu)化。加速設(shè)備對FTP傳輸進行優(yōu)化的主要途徑是通過預(yù)取,所謂預(yù)取,是指將FTP客戶端所需要下載的文件預(yù)先下載至鄰近的加速設(shè)備上,當FTP客戶端需要下載對應(yīng)的文件時,加速設(shè)備直接將預(yù)取的文件反饋給FTP客戶端。本步驟為加速設(shè)備對自身與FTP客戶端之間的控制鏈接進行解析,獲取FTP服務(wù)器的合法用戶的用戶信息。在本實施例中,當若干FTP客戶端通過加速設(shè)備訪問FTP服務(wù)器時,加速設(shè)備對途徑的任意一條控制鏈接流進行解析,獲取對于FTP服務(wù)器來說是合法的合法用戶的IP地址以及對應(yīng)的用戶相關(guān)信息。步驟202,對FTP服務(wù)器中的待下載文件進行解析,獲取對所述待下載文件具有訪問權(quán)限的訪問用戶的用戶信息。當加速設(shè)備發(fā)現(xiàn)FTP客戶端所請求的待下載文件不在加速設(shè)備本地,需要跨廣域網(wǎng)向FTP服務(wù)器獲取時,或者當加速設(shè)備直接向FTP服務(wù)器預(yù)取文件時,則加速設(shè)備執(zhí)行對FTP服務(wù)器中的待下載文件進行解析的步驟,從而獲取對待下載文件具有訪問權(quán)限的訪問用戶的用戶信息。其中,本步驟獲取的訪問用戶包含在上述步驟201獲取的合法用戶中,SP本步驟具體從合法用戶中獲取對待下載文件具有訪問權(quán)限的訪問用戶的用戶信息。本步驟為加速設(shè)備對待下載文件進行解析,獲取該待下載文件所處的文件服務(wù)器,以及對該待下載文件具有訪問權(quán)限的訪問用戶的用戶信息。其中,用戶信息可以包括用戶的IP地址以及用戶相關(guān)信息。步驟203,根據(jù)加速設(shè)備的運行狀態(tài)生成帶寬占用閾值。本步驟為根據(jù)加速設(shè)備的具體運行狀態(tài)確定帶寬占用閾值,具體地,加速設(shè)備的運行狀態(tài)為閑時狀態(tài)或忙時狀態(tài)。當加速設(shè)備處于閑時狀態(tài)時,此時可以將并發(fā)鏈路所能占用的帶寬閾值設(shè)定為一個較大的數(shù)值,即對FTP多線程并發(fā)所能占用的帶寬進行設(shè)定,如設(shè)定為當前網(wǎng)絡(luò)帶寬的80%。當加速設(shè)備處于忙時狀態(tài)時,可以將并發(fā)鏈路所能占用的帶寬閾值設(shè)定為一個較小的數(shù)值,如設(shè)定為當前網(wǎng)絡(luò)帶寬的30%,從而防止多鏈接并發(fā)下載對帶寬的過分搶占而影響到加速設(shè)備對其他應(yīng)用的優(yōu)化。此處所指的加速設(shè)備的閑時狀態(tài)或忙時狀態(tài)可以通過時間段來設(shè)定的,比如設(shè)置加速設(shè)備在0:00-6:00為閑時狀態(tài),在其余時間段為忙時狀態(tài)。步驟204,根據(jù)所述帶寬占用閾值和預(yù)設(shè)的多線程并發(fā)的最多鏈接數(shù),生成初始鏈接所能下載的數(shù)據(jù)量。在本實施例中,初始鏈接的鏈接數(shù)為I條,本步驟為計算初始鏈接所能下載的數(shù)據(jù)量,具體根據(jù)帶寬占用閾值和預(yù)設(shè)的多線程并發(fā)的最多鏈接數(shù),生成初始鏈接所能下載的數(shù)據(jù)量。具體可以采用如下公式來生成初始鏈接所能下載的數(shù)據(jù)量X = -Xf(I)
N其中,B為上述步驟203生成的帶寬占用閾值,N為并發(fā)鏈接的鏈接數(shù)上限值,t為預(yù)設(shè)的下載時間,其可以根據(jù)經(jīng)驗預(yù)估,通常取值為60,X為初始鏈接所能下載的數(shù)據(jù)量。 以IOMbps帶寬的閑時狀態(tài)為例,上述步驟203設(shè)定閑時狀態(tài)的帶寬占用閾值為當前網(wǎng)絡(luò)帶寬的80%,即B=SMbps,假設(shè)并發(fā)鏈接的鏈接數(shù)上限值N=10,則通過上述公式(I)計算得到初始鏈接所能下載的數(shù)據(jù)量X=48M bit,且為待下載文件的前48M bit的數(shù)據(jù)。步驟205,采用當前并發(fā)鏈接對待下載文件進行下載,并判斷當前是否存在鏈接下載完畢或當前是否到達預(yù)設(shè)的定時時間,如果是,則執(zhí)行步驟206,否則繼續(xù)執(zhí)行本步驟205。在完成上述初始化過程之后,加速設(shè)備便可以向FTP服務(wù)器發(fā)起FTP鏈接請求,從而采用當前并發(fā)鏈接對待下載文件進行下載,本實施例中的并發(fā)鏈接是動態(tài)變化的,可以根據(jù)下載過程中帶寬占用情況來增加并發(fā)鏈接中的鏈接數(shù),因此每個時刻的當前并發(fā)鏈接可能不同。本實施例在采用當前并發(fā)鏈接對待下載文件進行下載時,還需要實時判斷當前是否存在鏈接下載完畢或當前是否到達預(yù)設(shè)的定時時間,如果是,則執(zhí)行步驟206,否則繼續(xù)執(zhí)行本步驟205。具體可以設(shè)置一個定時器來判斷定時時間是否達到,定時器是在所述當前并發(fā)鏈接中存在鏈接下載完畢時根據(jù)下載完畢的鏈接的傳輸時間設(shè)置的,該定時器的定時時間可以設(shè)置為下載完畢的鏈接的傳輸時間的1/10,本實施例中并發(fā)鏈接中各鏈接是按序加入的,此處的單個鏈接具體為當前并發(fā)鏈接中最后加入的鏈接。本步驟判斷當前是否存在下載完畢的鏈接或者判斷預(yù)設(shè)的定時時間是否到達,當上述兩個判斷過程中有一個判斷結(jié)果為是時,便執(zhí)行步驟206,否則繼續(xù)執(zhí)行本步驟。步驟206,判斷當前并發(fā)鏈接所占用的帶寬是否超過帶寬占用閾值,如果是,則返回執(zhí)行步驟205,否則執(zhí)行步驟207。若當前存在下載完畢的鏈接,或者預(yù)設(shè)的定時時間到達,則繼續(xù)判斷當前并發(fā)鏈接所占用的帶寬是否超過帶寬占用閾值,如果是,則返回執(zhí)行步驟205,暫時不新建鏈接,仍采用當前的并發(fā)鏈接對待下載文件進行下載,否則執(zhí)行步驟207。步驟207,判斷當前并發(fā)鏈接中的鏈接數(shù)是否超過預(yù)設(shè)的并發(fā)鏈接的鏈接數(shù)上限值,如果是,則返回執(zhí)行步驟205,否則執(zhí)行步驟208。當一個鏈接下載完其對應(yīng)的數(shù)據(jù)量時,當前并發(fā)鏈接所占用的帶寬未超過帶寬占用閾值,則表明當前能夠新建一個鏈接;或者當預(yù)設(shè)的定時時間到達時,當前并發(fā)鏈接所占用的帶寬未超過帶寬占用閾值,則表明當前能夠新建一個鏈接。在能夠新建一個鏈接時,還要繼續(xù)判斷當前并發(fā)鏈接中的鏈接數(shù)是否超過預(yù)設(shè)的并發(fā)鏈接的鏈接數(shù)上限值,如果是,則返回執(zhí)行步驟205,暫時不新建鏈接,仍采用當前的并發(fā)鏈接對待下載文件進行下載,否則執(zhí)行步驟208。本實施例為了防止FTP服務(wù)器的磁盤負擔過重,比如磁盤磁頭的頻繁移動,這里對并發(fā)鏈接的鏈接數(shù)進行限定,將其上限限制為10條。步驟208,判斷待下載文件是否存在尚未下載的部分,如果是,則執(zhí)行步驟209,否則結(jié)束本流程。如果在能夠新建一個鏈接時,當前并發(fā)鏈接中的鏈接數(shù)未超過預(yù)設(shè)的并發(fā)鏈接的鏈接數(shù)上限值,則還要判斷待下載文件是否存在尚未下載的部分,如果是,則執(zhí)行步驟209 ;否則表明采用當前并發(fā)鏈接便可以完成待下載文件中所有數(shù)據(jù)的下載,無需再新建鏈接,此時可以采用當前并發(fā)鏈接對剩余的數(shù)據(jù)進行下載,結(jié)束本流程的鏈接調(diào)整過程。步驟209,使用除當前并發(fā)鏈接中各鏈接所使用的訪問用戶之外的一個訪問用戶的用戶信息建立一個鏈接,并返回執(zhí)行步驟205。當通過判斷當前條件滿足上述新建鏈接的各條件時,使用除當前并發(fā)鏈接中各鏈 接所使用的訪問用戶之外的一個訪問用戶的用戶信息建立一個鏈接,并返回執(zhí)行步驟205,采用更新后的并發(fā)鏈接對待下載文件進行下載。此處的訪問用戶為上述步驟202中對待下載文件具備訪問權(quán)限的用戶,具體可以從上述步驟201和202中獲取建立鏈接所需的訪問用戶的IP地址和相關(guān)用戶信息。由此可見,本實施例中并發(fā)鏈接中的各鏈接分別采用不同的IP地址執(zhí)行多鏈路下載,從而可以避免現(xiàn)有技術(shù)中由于采用相同IP地址并發(fā)下載所導(dǎo)致的FTP服務(wù)器對鏈接數(shù)的限制,甚至拒絕服務(wù)的現(xiàn)象。另外,本實施例在每次新建一個鏈接后,還對新建的鏈接所能下載的數(shù)據(jù)量進行動態(tài)控制,通過合理設(shè)置各新建的鏈接所能下載的數(shù)據(jù)量,可以保證待下載文件能夠被有序傳輸完畢,即順序靠前的部分能以更大的概率先傳輸完,并寫入磁盤。在本實施例中,在計算新建的鏈接所能下載的數(shù)據(jù)量時,具體根據(jù)初始鏈接能下載的數(shù)據(jù)量、待下載文件當前剩余的待傳輸數(shù)據(jù)量以及當前并發(fā)鏈接中最后建立的鏈接當前剩余的待傳輸數(shù)據(jù)量,判斷下述不等式(2)是否成立p>q+A (2)其中Δ=!;Ρ為待下載文件當前剩余的待傳輸數(shù)據(jù)量,即待下載文件中除去當前
/7
并發(fā)鏈接中各鏈接所能下載的數(shù)據(jù)量之后剩余的數(shù)據(jù)量,Q為當前并發(fā)鏈接中最后建立的鏈接當前剩余的待傳輸數(shù)據(jù)量,η為預(yù)設(shè)的正整數(shù),通常取值為5。在本實施例中,并發(fā)鏈接中各鏈接是順序建立的,即初始鏈接為第I條鏈接,然后根據(jù)帶寬占用情況建立第2條鏈接、第3條鏈接、…,每條新建的鏈接都是在前幾條鏈接執(zhí)行一段時間的數(shù)據(jù)傳輸之后才建立的,每建立一個新的鏈接時,同時計算該鏈接所能下載的數(shù)據(jù)量,然后該新的鏈接從當前剩余的待傳輸數(shù)據(jù)量開始處進行傳輸,以保證文件下載的有序性。在本實施例中,若上述不等式(2)成立,則生成新建的鏈路所能下載的數(shù)據(jù)量為q+Λ ;若上述不等式(2)不成立,則生成新建的鏈路所能下載的數(shù)據(jù)量為P。由此可見,除了最后一條鏈接外,后續(xù)建立的鏈接所能下載的數(shù)據(jù)量總是比先前建立的鏈接所能下載的數(shù)據(jù)量更多,使得先建立的鏈接總是能先于后建立的鏈接下載完相應(yīng)的數(shù)據(jù),保證了文件傳輸以及寫入磁盤的有序性。在本實施例中的文件下載過程中,為了減少加速設(shè)備內(nèi)磁盤的讀寫次數(shù),同時考慮到并發(fā)鏈接中鏈接數(shù)的限制,以及各條鏈接所能下載的數(shù)據(jù)量的限制,各個鏈接所下載的數(shù)據(jù)均臨時存在內(nèi)存,直到該鏈接所指定的數(shù)據(jù)量的文件信息下載完畢,且在該鏈接前的所有鏈接均下載完畢,方才將對應(yīng)的數(shù)據(jù)由內(nèi)存寫入到磁盤中。這里仍以IOMbps帶寬的閑時狀態(tài)為例,10條鏈接所能下載的數(shù)據(jù)量所占用的內(nèi)存大約為60MByte,而加速設(shè)備的內(nèi)存的最低配置當如為2GByte,可見內(nèi)存占用并不會很聞。需要指出的是,上述實施例僅以FTP傳輸為例進行說明,但本實施例的技術(shù)方案同樣適用于凡是支持斷點續(xù)傳或者多線程下載的應(yīng)用,比如超文本傳輸協(xié)議(TheHypertext Transfer Protocol ;以下簡稱HTTP)。上述實施例具體應(yīng)用于廣域網(wǎng)加速系統(tǒng)中,但本實施例同樣適用于支持代理行為的相關(guān)設(shè)備。本實施例也可以與現(xiàn) 有的其他FTP并發(fā)傳輸?shù)姆桨附Y(jié)合使用,比如與多服務(wù)器并發(fā)下載相結(jié)合。本實施例當前是針對單個文件執(zhí)行并發(fā)下載,對于同時對多個文件的并發(fā)下載過程也同樣適用,只需對各個文件的下載情況進行分別維護。本實施例提供了一種數(shù)據(jù)并發(fā)下載方法,通過對待下載文件進行解析,獲取對待下載文件具有訪問權(quán)限的訪問用戶的用戶信息,根據(jù)設(shè)備自身的運行狀況、當前的帶寬占用情況以及訪問用戶的用戶信息,動態(tài)調(diào)整下載待下載文件所需的鏈接,并采用調(diào)整后的并發(fā)鏈接將待下載文件下載在設(shè)備本地;本實施例能夠動態(tài)調(diào)整并發(fā)鏈接的數(shù)量,在不過分擠占帶寬的前提下,提升了文件傳輸效率;本實施例中鏈接數(shù)目逐步遞增,以在指定帶寬上限閾值下,獲取合理的并發(fā)線程數(shù);本實施例能夠動態(tài)調(diào)整各鏈接所能下載的數(shù)據(jù)量,保證FTP傳輸?shù)挠行蛐裕覝p少了加速設(shè)備的磁盤讀寫負荷;本實施例實現(xiàn)靈活,對并發(fā)的鏈接數(shù)目以及各鏈接所能傳輸?shù)臄?shù)據(jù)量均依據(jù)實際傳輸情況動態(tài)調(diào)整,自行獲取合理的并發(fā)鏈接數(shù),減少了用戶負擔。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。圖4為本發(fā)明數(shù)據(jù)并發(fā)下載裝置實施例一的結(jié)構(gòu)示意圖,如圖4所示,本實施例提供了一種數(shù)據(jù)并發(fā)下載裝置,可以具體執(zhí)行上述方法實施例一中的各個步驟,此處不再贅述。本實施例提供的數(shù)據(jù)并發(fā)下載裝置可以具體包括第一解析模塊401、調(diào)整模塊402和下載模塊403。其中,第一解析模塊401用于對文件服務(wù)器中的待下載文件進行解析,獲取對所述待下載文件具有訪問權(quán)限的訪問用戶的用戶信息。調(diào)整模塊402用于根據(jù)設(shè)備自身的運行狀況、當前的帶寬占用情況以及所述訪問用戶的用戶信息,動態(tài)調(diào)整下載所述待下載文件所需的鏈接。下載模塊403用于采用調(diào)整后的并發(fā)鏈接將所述待下載文件下載到所述設(shè)備本地。圖5為本發(fā)明數(shù)據(jù)并發(fā)下載裝置實施例二的結(jié)構(gòu)示意圖,如圖5所示,本實施例提供了一種數(shù)據(jù)并發(fā)下載裝置,可以具體執(zhí)行上述方法實施例二中的各個步驟,此處不再贅述。本實施例提供的數(shù)據(jù)并發(fā)下載裝置在上述圖5所示的基礎(chǔ)之上,調(diào)整模塊402可以具體包括第一生成單元412、第一判斷單元422和建立單元432。其中,第一生成單元412用于根據(jù)設(shè)備自身的運行狀態(tài)生成帶寬占用閾值。第一判斷單元422用于根據(jù)所述帶寬占用閾值和當前的帶寬占用情況判斷是否能夠新建一個鏈接。建立單元432用于當能夠新建一個鏈接時,使用除當前并發(fā)鏈接中各鏈接所使用的訪問用戶之外的一個所述訪問用戶的用戶信息建立一個鏈接。進一步地,第一判斷單元422可以包括第一判斷子單元4221和第二判斷子單元4222。其中第一判斷子單元4221用于判斷當前是否存在鏈接下載完畢或當前是否到達預(yù)設(shè)的定時時間,所述定時時間是在所述當前并發(fā)鏈接中存在鏈接下載完畢時根據(jù)下載完畢的鏈接的傳輸時間設(shè)置的。第二判斷子單元4222用于若當前存在下載完畢的鏈接或當前到達預(yù)設(shè)的定時時間,則判斷所述當前并發(fā)鏈接所占用的帶寬是否超過所述帶寬占用閾值,若所述當前并發(fā)鏈接所占用的帶寬未超過所述帶寬占用閾值,則能夠新建一個鏈接。進一步地,本實施例提供的數(shù)據(jù)并發(fā)下載裝置還可以包括第一計算模塊501和第二計算模塊502。其中,第一計算模塊501用于根據(jù)所述帶寬占用閾值和預(yù)設(shè)的多線程并發(fā)的最多鏈接數(shù),生成初始鏈接所能下載的數(shù)據(jù)量。第二計算模塊502用于根據(jù)所述初始鏈接能下載的數(shù)據(jù)量、所述待下載文件當前剩余的待傳輸數(shù)據(jù)量以及當前并發(fā)鏈接中最后建立的鏈接當前剩余的待傳輸數(shù)據(jù)量,生成新建的鏈接所能下載的數(shù)據(jù)量,以根據(jù)所述新建
的鏈接所能下載的數(shù)據(jù)量對所述新建的鏈接進行配置。具體地,本實施例中的第一計算模塊501具體用于根據(jù)所述帶寬占用閾值和預(yù)設(shè)的并發(fā)鏈接的鏈接數(shù)上限值,采用上述公式(I)生成初始鏈接所能下載的數(shù)據(jù)量。具體地,第二計算模塊502可以具體包括第二判斷單元512、第二生成單元522和第三生成單元532。其中,第二判斷單元512用于根據(jù)所述初始鏈接能下載的數(shù)據(jù)量、所述待下載文件當前剩余的待傳輸數(shù)據(jù)量以及當前并發(fā)鏈接中最后建立的鏈接當前剩余的待傳輸數(shù)據(jù)量,判斷上述不等式(2)是否成立。第二生成單元522用于若上述不等式成立,則生成新建的鏈路所能下載的數(shù)據(jù)量為q+Λ。第三生成單元532用于若上述不等式不成立,則生成新建的鏈路所能下載的數(shù)據(jù)量為P。更進一步地,本實施例提供的數(shù)據(jù)并發(fā)下載裝置還可以包括第二解析模塊503,第二解析模塊503用于在第一解析模塊401對文件服務(wù)器中的待下載文件進行解析之前,對與文件客戶端間的控制鏈接進行解析,獲取文件服務(wù)器的合法用戶的用戶信息,其中,所述合法用戶包括所述訪問用戶。本實施例提供了一種數(shù)據(jù)并發(fā)下載裝置,通過對待下載文件進行解析,獲取對待下載文件具有訪問權(quán)限的訪問用戶的用戶信息,根據(jù)設(shè)備自身的運行狀況、當前的帶寬占用情況以及訪問用戶的用戶信息,動態(tài)調(diào)整下載待下載文件所需的鏈接,并采用調(diào)整后的并發(fā)鏈接將待下載文件下載到本地;本實施例能夠動態(tài)調(diào)整并發(fā)鏈接的數(shù)量,在不過分擠占帶寬的前提下,提升了文件傳輸效率;本實施例中鏈接數(shù)目逐步遞增,以在指定帶寬上限閾值下,獲取合理的并發(fā)線程數(shù);本實施例能夠動態(tài)調(diào)整各鏈接所能下載的數(shù)據(jù)量,保證FTP傳輸?shù)挠行蛐?,且減少了加速設(shè)備的磁盤讀寫負荷;本實施例實現(xiàn)靈活,對并發(fā)的鏈接數(shù)目以及各鏈接所能傳輸?shù)臄?shù)據(jù)量均依據(jù)實際傳輸情況動態(tài)調(diào)整,自行獲取合理的并發(fā)鏈接數(shù),減少了用戶負擔。本實施例還提供了一種網(wǎng)絡(luò)設(shè)備,可以具體包括上述圖4或圖5所示的數(shù)據(jù)并發(fā)下載裝置。最后應(yīng)說明的是以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。 ·
權(quán)利要求
1.一種數(shù)據(jù)并發(fā)下載方法,其特征在于,包括 對文件服務(wù)器中的待下載文件進行解析,獲取對所述待下載文件具有訪問權(quán)限的訪問用戶的用戶信息; 根據(jù)設(shè)備自身的運行狀況、當前的帶寬占用情況以及所述訪問用戶的用戶信息,動態(tài)調(diào)整下載所述待下載文件所需的鏈接; 采用調(diào)整后的并發(fā)鏈接將所述待下載文件下載到所述設(shè)備本地。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述根據(jù)設(shè)備自身的運行狀況、當前的帶寬占用情況以及所述訪問用戶的用戶信息,動態(tài)調(diào)整下載所述待下載文件所需的鏈接包括 根據(jù)設(shè)備自身的運行狀態(tài)生成帶寬占用閾值; 根據(jù)所述帶寬占用閾值和當前的帶寬占用情況判斷是否能夠新建一個鏈接; 當能夠新建一個鏈接時,使用除當前并發(fā)鏈接中各鏈接所使用的訪問用戶之外的一個所述訪問用戶的用戶信息建立一個鏈接。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述帶寬占用閾值和當前的帶寬占用情況判斷是否能夠新建一個鏈接包括 判斷當前是否存在鏈接下載完畢或預(yù)設(shè)的定時時間是否到達,所述定時時間是在所述當前并發(fā)鏈接中存在鏈接下載完畢時根據(jù)下載完畢的鏈接的傳輸時間設(shè)置的; 若當前存在下載完畢的鏈接或預(yù)設(shè)的定時時間到達,則判斷所述當前并發(fā)鏈接所占用的帶寬是否超過所述帶寬占用閾值; 若所述當前并發(fā)鏈接所占用的帶寬未超過所述帶寬占用閾值,則能夠新建一個鏈接。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,還包括 根據(jù)所述帶寬占用閾值和預(yù)設(shè)的多線程并發(fā)的最多鏈接數(shù),生成初始鏈接所能下載的數(shù)據(jù)量; 根據(jù)所述初始鏈接能下載的數(shù)據(jù)量、所述待下載文件當前剩余的待傳輸數(shù)據(jù)量以及當前并發(fā)鏈接中最后建立的鏈接當前剩余的待傳輸數(shù)據(jù)量,生成新建的鏈接所能下載的數(shù)據(jù)量,以根據(jù)所述新建的鏈接所能下載的數(shù)據(jù)量對所述新建的鏈接進行配置。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述帶寬占用閾值和預(yù)設(shè)的多線程并發(fā)的最多鏈接數(shù),生成初始鏈接所能下載的數(shù)據(jù)量具體為 根據(jù)所述帶寬占用閾值和預(yù)設(shè)的并發(fā)鏈接的鏈接數(shù)上限值,采用下述公式生成初始鏈接所能下載的數(shù)據(jù)量 其中,B為所述帶寬占用閾值,N為所述并發(fā)鏈接的鏈接數(shù)上限值,t為預(yù)設(shè)的下載時間,X為所述初始鏈接所能下載的數(shù)據(jù)量。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述初始鏈接能下載的數(shù)據(jù)量、所述待下載文件當前剩余的待傳輸數(shù)據(jù)量以及當前并發(fā)鏈接中最后建立的鏈接當前剩余的待傳輸數(shù)據(jù)量,生成新建的鏈接所能下載的數(shù)據(jù)量包括 根據(jù)所述初始鏈接能下載的數(shù)據(jù)量、所述待下載文件當前剩余的待傳輸數(shù)據(jù)量以及當前并發(fā)鏈接中最后建立的鏈接當前剩余的待傳輸數(shù)據(jù)量,判斷下述不等式是否成立p>q+△ ,其中 其中,P為所述待下載文件當前剩余的待傳輸數(shù)據(jù)量,Q為所述最后建立的鏈接當前剩余的待傳輸數(shù)據(jù)量,n為預(yù)設(shè)的正整數(shù),X為所述初始鏈接所能下載的數(shù)據(jù)量; 若上述不等式成立,則生成新建的鏈路所能下載的數(shù)據(jù)量為q+A ; 若上述不等式不成立,則生成新建的鏈路所能下載的數(shù)據(jù)量為P。
7.根據(jù)權(quán)利要求1-3中任一項所述的方法,其特征在于,在所述對文件服務(wù)器中的待下載文件進行解析之前,還包括 對與文件客戶端間的控制鏈接進行解析,獲取所述文件服務(wù)器的合法用戶的用戶信息,其中,所述合法用戶包括所述訪問用戶。
8.一種數(shù)據(jù)并發(fā)下載裝置,其特征在于,包括 第一解析模塊,用于對文件服務(wù)器中的待下載文件進行解析,獲取對所述待下載文件具有訪問權(quán)限的訪問用戶的用戶信息; 調(diào)整模塊,用于根據(jù)設(shè)備自身的運行狀況、當前的帶寬占用情況以及所述訪問用戶的用戶信息,動態(tài)調(diào)整下載所述待下載文件所需的鏈接; 下載模塊,用于采用調(diào)整后的并發(fā)鏈接將所述待下載文件下載到所述設(shè)備本地。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述調(diào)整模塊包括 第一生成單元,用于根據(jù)設(shè)備自身的運行狀態(tài)生成帶寬占用閾值; 第一判斷單元,用于根據(jù)所述帶寬占用閾值和當前的帶寬占用情況判斷是否能夠新建一個鏈接; 建立單元,用于當能夠新建一個鏈接時,使用除當前并發(fā)鏈接中各鏈接所使用的訪問用戶之外的一個所述訪問用戶的用戶信息建立一個鏈接。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第一判斷單元包括 第一判斷子單元,用于判斷當前是否存在鏈接下載完畢或預(yù)設(shè)的定時時間是否到達,所述定時時間是在所述當前并發(fā)鏈接中存在鏈接下載完畢時根據(jù)下載完畢的鏈接的傳輸時間設(shè)置的; 第二判斷子單元,用于若當前存在下載完畢的鏈接或預(yù)設(shè)的定時時間到達,則判斷所述當前并發(fā)鏈接所占用的帶寬是否超過所述帶寬占用閾值,若所述當前并發(fā)鏈接所占用的帶寬未超過所述帶寬占用閾值,則能夠新建一個鏈接。
11.根據(jù)權(quán)利要求9或10所述的裝置,其特征在于,還包括 第一計算模塊,用于根據(jù)所述帶寬占用閾值和預(yù)設(shè)的多線程并發(fā)的最多鏈接數(shù),生成初始鏈接所能下載的數(shù)據(jù)量; 第二計算模塊,用于根據(jù)所述初始鏈接能下載的數(shù)據(jù)量、所述待下載文件當前剩余的待傳輸數(shù)據(jù)量以及當前并發(fā)鏈接中最后建立的鏈接當前剩余的待傳輸數(shù)據(jù)量,生成新建的鏈接所能下載的數(shù)據(jù)量,以根據(jù)所述新建的鏈接所能下載的數(shù)據(jù)量對所述新建的鏈接進行配置。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述第一計算模塊具體用于根據(jù)所述帶寬占用閾值和預(yù)設(shè)的并發(fā)鏈接的鏈接數(shù)上限值,采用下述公式生成初始鏈接所能下載的數(shù)據(jù)量其中,B為所述帶寬占用閾值,N為所述并發(fā)鏈接的鏈接數(shù)上限值,t為預(yù)設(shè)的下載時間,X為所述初始鏈接所能下載的數(shù)據(jù)量。
13.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述第二計算模塊包括 第二判斷單元,用于根據(jù)所述初始鏈接能下載的數(shù)據(jù)量、所述待下載文件當前剩余的待傳輸數(shù)據(jù)量以及當前并發(fā)鏈接中最后建立的鏈接當前剩余的待傳輸數(shù)據(jù)量,判斷下述不等式是否成立 p>q+A,其中 其中,P為所述待下載文件當前剩余的待傳輸數(shù)據(jù)量,Q為所述最后建立的鏈接當前剩余的待傳輸數(shù)據(jù)量,n為預(yù)設(shè)的正整數(shù),X為所述初始鏈接所能下載的數(shù)據(jù)量; 第二生成單元,用于若上述不等式成立,則生成新建的鏈路所能下載的數(shù)據(jù)量為q+A ; 第三生成單元,用于若上述不等式不成立,則生成新建的鏈路所能下載的數(shù)據(jù)量為P。
14.根據(jù)權(quán)利要求8-10中任一項所述的裝置,其特征在于,還包括 第二解析模塊,用于在所述第一解析模塊對文件服務(wù)器中的待下載文件進行解析之前,對與文件客戶端間的控制鏈接進行解析,獲取所述文件服務(wù)器的合法用戶的用戶信息,其中,所述合法用戶包括所述訪問用戶。
15.一種網(wǎng)絡(luò)設(shè)備,其特征在于,包括權(quán)利要求8-14中任一項所述的數(shù)據(jù)并發(fā)下載裝置。
全文摘要
本發(fā)明提供一種數(shù)據(jù)并發(fā)下載方法、裝置和網(wǎng)絡(luò)設(shè)備,方法包括對文件服務(wù)器中的待下載文件進行解析,獲取對所述待下載文件具有訪問權(quán)限的訪問用戶的用戶信息;根據(jù)設(shè)備自身的運行狀況、當前的帶寬占用情況以及所述訪問用戶的用戶信息,動態(tài)調(diào)整下載所述待下載文件所需的鏈接;采用調(diào)整后的并發(fā)鏈接將所述待下載文件下載到所述設(shè)備本地。本發(fā)明還提供了一種數(shù)據(jù)并發(fā)下載裝置和網(wǎng)絡(luò)設(shè)備。本發(fā)明能夠動態(tài)調(diào)整并發(fā)鏈接的數(shù)量,在不過分擠占帶寬的前提下,提升了文件傳輸效率。
文檔編號H04L29/08GK102811258SQ201210264649
公開日2012年12月5日 申請日期2012年7月27日 優(yōu)先權(quán)日2012年7月27日
發(fā)明者鄢文晉 申請人:北京星網(wǎng)銳捷網(wǎng)絡(luò)技術(shù)有限公司