專利名稱:點對點網(wǎng)絡中的文件下載方法及裝置的制作方法
技術領域:
本發(fā)明涉及點對點技術,尤其涉及點對點網(wǎng)絡中的文件傳輸技術。
背景技術:
近年來,通過點對點技術提供流媒體下載的服務得到越來越廣泛的應用。通常,這 樣的服務均采用點對服務器和點模式。服務商提供流媒體資源下載服務器,客戶端選擇了 所需下載的流媒體文件后,不僅可以從服務器下載該文件的片段,還可以通過該文件的特 征值,通常是由hash函數(shù)確定的該文件唯一對應的數(shù)字摘要值,在網(wǎng)絡中進行搜索,從擁 有該文件的片段的其他客戶端那里下載該文件的片段。圖1示出了一種現(xiàn)有技術中的系統(tǒng)框圖。使用客戶端21的用戶登錄服務器10,并 選擇了一個統(tǒng)一資源定位符為U1、數(shù)字摘要值為Dl的流媒體文件Fl進行下載,邊下載邊觀 看或收聽。在該下載過程中,客戶端21不僅以統(tǒng)一資源定位符Ul為匹配條件從服務器10 那里下載文件Fl的片段,也以數(shù)字摘要值D 1為匹配條件從點對點網(wǎng)絡中的其他擁有文件 Fl的客戶端那里下載文件Fl的片段,從而使得下載文件Fl的所有客戶端的平均下載速度 比傳統(tǒng)的服務器/客戶端模式下得以提高。然而,當使用客戶端21的用戶在觀看、收聽文件Fl時進行快進,尤其是快進到文 件Fl尚未下載的片段時,在一種現(xiàn)有技術中,采用的方式是認為客戶端21發(fā)起了一個新 的下載請求,所請求的文件是一個新文件F2,其包括從文件Fl的快進指針到結束部分的內 容。該文件F2對應于統(tǒng)一資源定位符U2以及數(shù)字摘要值D2。因為F2不同于F1,所以U2 不同于U1、D2不同于D1。因為幾乎不存在與使用客戶端21的用戶執(zhí)行相同的快進操作的 用戶,從而幾乎不存在與客戶端21共享文件F2的其他客戶端,客戶端21基本上只能以統(tǒng) 一資源定位符U2為匹配條件從服務器10那里下載文件F2的片段,使得下載速度降低。因此,需要一種方法,用于在點對點網(wǎng)絡中下載文件的片段,并取得平均意義上較 高的下載速度。
發(fā)明內容
點對點網(wǎng)絡中,一個較大的文件會被分成多個片段,對等實體之間通過交換這些 片段來共享這一文件。一個網(wǎng)絡實體可以以一個文件的文件名、數(shù)字摘要值或者其他標 識作為索引條件從對等實體處下載該文件的片段?,F(xiàn)在點對點網(wǎng)絡中通常采用一個文件 和/或其片段的數(shù)字摘要值作為索引條件,因為文件和其數(shù)字摘要值之間具有非常良好的 “一一對應”的特性。一個文件的數(shù)字摘要值通過散列函數(shù)來確定,常用的散列函數(shù)包括MD5 函數(shù)、SHAl函數(shù)、等。以一個完整的文件Fl為例,例如但不限于,F(xiàn)l是一個影音文件。F2是截取F 1的 一部分所形成的文件。通常,文件F2會進行重新分割,這樣,文件F2的片段就與文件Fl的 片段不同,因此,也就無法通過合并文件Fl的片段來得到文件F2。這樣,想下載文件F2的 網(wǎng)絡實體無法與擁有文件Fl的片段的網(wǎng)絡實體實現(xiàn)點對點文件共享。
FLV文件是一種現(xiàn)有的流媒體文件格式。FLV是一個二進制文件,由文件頭(FLV header)和若干tag組成,tag又可以分成三類音頻流、視頻流、腳本流(關鍵字或者文件 信息之類),用于承載媒體內容。在對FLV文件進行點對點傳輸時,通常進行的分割是每個 片段包含若干tag,例如,每個片段包含一個tag。本文中以下以FLV文件為例進行的描述 中,均默認為一個片段恰好包含一個tag ;對于一個片段包含多個tag的情形,本領域技術 人員應能根據(jù)本文的描述自行推導得出。FLV文件的一個特點是,從一個FLV文件的所有 tag中截取一部分連續(xù)的tag,無需對這部分連續(xù)的tag做任何修改、僅添加一個文件頭即 可組成另一個可識別、可播放的FLV文件。例如圖2所示,F(xiàn)LV文件Fl包含文件頭!7H和多個片段P1至Pn+m,每個片段包含一 個tag ;截取其中的部分片段,例如片段Pn至Pn+m,添加文件頭ra,即可組成FLV文件F2。FLV 文件的這種特點,使得想下載文件F2的網(wǎng)絡實體與擁有文件Fl的片段的網(wǎng)絡實體可以實 現(xiàn)點對點文件共享。根據(jù)本發(fā)明的第一方面,提供了一種點對點網(wǎng)絡的網(wǎng)絡實體中的文件下載方法, 所述方法包括以下步驟B.確定一個第一文件的一個指定部分的片段;C.根據(jù)第一文件的 第一匹配參數(shù),從點對點網(wǎng)絡中下載所述指定部分的片段;D.將所述指定部分的片段中的 至少一部分組成一個可識別的第二文件。根據(jù)本發(fā)明的第二方面,提供了一種點對點網(wǎng)絡的網(wǎng)絡實體中的文件下載裝置, 包括第一確定裝置,用于確定一個第一文件的一個指定部分的片段;片段下載裝置,用于 根據(jù)第一文件的第一匹配參數(shù),從點對點網(wǎng)絡中下載所述指定部分的片段;文件組合裝置, 將所述指定部分的片段中的至少一部分組成一個可識別的第二文件。根據(jù)本發(fā)明的第三方面,提供了一種用戶終端,其包括本發(fā)明第二方面的文件下 載裝置。根據(jù)本發(fā)明的第四方面,提供了一種計算機存儲介質,該介質上存儲了可被計算 機讀取并運行以執(zhí)行本發(fā)明第一方面的文件下載方法的計算機程序。本發(fā)明中的第一文件和第二文件是同一種格式的文件,例如FLV格式的流媒體文 件。本領域技術人員應能理解,與FLV文件具有類似特點的其他格式的文件也可以適用于 本發(fā)明。通過使用本發(fā)明中的方法、裝置、用戶終端或計算機存儲介質,可以在下載文件時 獲得較高的下載速度。
通過閱讀以下參照附圖對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、 目的和優(yōu)點將會變得更明顯。圖1示出了一種現(xiàn)有技術中的系統(tǒng)框圖;圖2示出了根據(jù)本發(fā)明一個實施例的FLV文件的分段示意圖;圖3示出了根據(jù)本發(fā)明一個實施例的系統(tǒng)框圖;圖4示出了根據(jù)本發(fā)明一個實施例的點對點網(wǎng)絡的網(wǎng)絡實體中的文件下載方法 的流程圖;圖5a至圖5c示出了根據(jù)本發(fā)明一個實施例的文件下載過程中的相應用戶操作的示意圖;圖6示出了根據(jù)本發(fā)明一個實施例的系統(tǒng)框圖;圖7示出了根據(jù)本發(fā)明一個實施例的文件下載過程中的相應用戶操作的示意圖;圖8示出了根據(jù)本發(fā)明一個實施例的點對點網(wǎng)絡的網(wǎng)絡實體中的文件下載裝置 的結構框圖;其中,相同或相似的附圖標記表示相同或相似的步驟特征或裝置(模塊)。
具體實施例方式圖3示出了根據(jù)本發(fā)明一個實施例的系統(tǒng)框圖。如圖所示,點對點網(wǎng)絡包括服務 器10以及客戶端21、22、23。圖3所示的點對點網(wǎng)絡是一個采用服務器/客戶端架構的網(wǎng) 絡,這是目前提供網(wǎng)絡視頻服務的機構所通常采用的一種網(wǎng)絡架構。圖3所示系統(tǒng)僅是示 例性而非限制性的,本發(fā)明也可以應用于其他架構的網(wǎng)絡,例如所有實體之間對等的純點 對點網(wǎng)絡。圖4示出了根據(jù)本發(fā)明一個實施例的點對點網(wǎng)絡的網(wǎng)絡實體中的文件下載方法 的流程圖。通常,這里所說的網(wǎng)絡實體是一個客戶端,也就是一臺計算機,這一文件下載過 程是由客戶端中的相應軟件所執(zhí)行的。首先,在步驟S2中,客戶端確定一個第一文件的一個指定部分的片段。然后,在步驟S3中,客戶端根據(jù)第一文件的第一匹配參數(shù),從點對點網(wǎng)絡中下載 所述指定部分的片段。然后,在步驟S4中,客戶端將所述指定部分的片段中的至少一部分組成一個可識 別的第二文件。圖5a至圖5c示出了根據(jù)本發(fā)明一個實施例的文件下載過程中的相應用戶操作的 示意圖。以下結合圖2至圖5,對本發(fā)明的一個具體實施例進行描述。具體場景是一個用戶通過客戶端21下載第一文件F1。例如圖2所示,該文件Fl 是一個FLV文件,包含文件頭ra和多個片段P1至Pn+m,每個片段包含一個tag。服務器10 提供基于超文本傳輸協(xié)議(HTTP)的文件下載服務,其中包括文件F 1??蛻舳?1不僅從 服務器10處下載文件Fl的片段,而且還可以從點對點網(wǎng)絡中,例如從客戶端22、客戶端23 處下載第一文件Fl的片段。首先,客戶端21獲取第一文件Fl的一個分割指示信息。具體地,客戶端21—邊在下載第一文件F1,用戶一邊通過客戶端21中的網(wǎng)絡播放 器觀看第一文件F1。例如圖5a所示,播放進度顯示窗50中的播放進度指針51用于指示當 前播放進度,例如當前進度為gl (通常用時間表示),點狀陰影區(qū)域表示當前已經(jīng)下載的部 分。如果在點狀陰影區(qū)域內部拖動播放進度指針51,仍然可以順利播放。當用戶將播放進度指針51拖動到點狀陰影區(qū)域之外的位置,例如圖5b中的g2位 置,也就是用戶希望從g2代表的時間開始繼續(xù)觀看第一文件Fl的剩余部分,客戶端21將 根據(jù)用戶的操作獲取關于第一文件Fl的一個分割指示信息。通常,該分割指示信息包括與 新的進度g2所代表的時間有關的信息。然后,在步驟S2中,客戶端21將根據(jù)分割指示信息確定第一文件Fl的一個指定部分的片段。具體地,新的進度g2所代表的時間對應于片段Plri,客戶端21可以將片段?11至?_ 確定為指定部分的片段,例如圖5b中所示,也可以將片段Plri至Pn+m確定為指定部分的片 段,例如圖5c中所示。然后,在步驟S3中,客戶端21將根據(jù)第一文件Fl的第一匹配參數(shù),從點對點網(wǎng)絡 中下載指定部分的片段。根據(jù)本發(fā)明的一些實施例,具體地,第一文件Fl的第一匹配參數(shù)是采用散列函數(shù) 為其確定的數(shù)字摘要值D1,客戶端21根據(jù)第一文件Fl的數(shù)字摘要值Dl作為索引匹配條件 從點對點網(wǎng)絡中下載指定部分的片段,例如片段? 至?_。例如,客戶端21所下載的片段可 以來自客戶端22、客戶端23等。數(shù)字摘要值Dl可以采用MD5函數(shù)或者SHAl函數(shù)來計算。 因為文件和其數(shù)字摘要值之間具有非常良好的“一一對應”的特性,所以可以保證下載內容 的準確性。本領域技術人員應能理解,點對點網(wǎng)絡中文件和其數(shù)字摘要值的索引關系表的 建立、維護以及使用的方式并非本發(fā)明的重點,現(xiàn)有技術中的任何可行的方式均可應用于 本發(fā)明。 根據(jù)本發(fā)明的一些實施例,第一文件Fl的第一匹配參數(shù)也可以采用其文件名,客 戶端21根據(jù)第一文件Fl的文件名作為索引匹配條件從點對點網(wǎng)絡中下載指定部分的片 段,例如片段? 至?_。當然,還可以采用其他參數(shù)作為第一文件Fl的第一匹配參數(shù)。根據(jù)本發(fā)明的一些實施例,步驟S3中還包括客戶端21根據(jù)第一文件Fl的第二 匹配參數(shù),從服務器10處下載指定部分的片段。具體地,第一文件Fl的第二匹配參數(shù)是其在服務器10中的統(tǒng)一資源定位符Ul。 客戶端21根據(jù)第一文件Fl的統(tǒng)一資源定位符Ul從服務器10中下載指定部分的片段,例 如片段? 至?_。當然,第一文件Fl的第二匹配參數(shù)也可以采用其他參數(shù)。然后,在步驟S4中,客戶端21將指定部分的片段中的至少一部分組成一個可識別 的第二文件。具體地,例如圖5b中所示,指定部分的片段包括片段Pn至?_??蛻舳?1可以將 片段Pn至Pn+m按順序組合起來,并添加上文件頭ra,組成可識別的第二文件F2,第二文件F2 也是一個FLV文件??赡艿那樾问?,客戶端21還未下載完指定部分的所有片段,例如已經(jīng)下載完的僅 有片段Pn、片段Pn+1 (m > 2)。則客戶端21可以將片段Pn、Pn+1按順序組合起來,并添加上文 件頭ra,組成可識別的第二文件F2。本實施例中的場景是用戶通過客戶端21中的網(wǎng)絡播放器觀看FLV文件。因此,在 步驟S4之后還包括一個步驟客戶端21將第二文件F2提供給網(wǎng)絡播放器。這樣,用戶從 新的進度g2所代表的時間開始繼續(xù)觀看第一文件Fl剩余部分的內容。因為第一文件Fl的 指定部分的片段,也就是對應于第一文件Fl剩余部分內容(亦即第二文件F2的內容)的 片段Pn至?_,可以通過點對點技術從網(wǎng)絡中下載,所以可以獲得較高的下載速度,用戶在 完成拖動播放進度指針的操作后很快就可以流暢地觀看第一文件Fl剩余部分的內容,從 而使得用戶的體驗質量得到改善。圖6示出了根據(jù)本發(fā)明另一個實施例的系統(tǒng)框圖。如圖所示,點對點網(wǎng)絡包括客 戶端25、26、27。圖6所示的是一個純點對點網(wǎng)絡,這樣的網(wǎng)絡結構僅是示例性而非限制性
7的。圖7示出了根據(jù)本發(fā)明一個實施例的文件下載過程中的相應用戶操作的示意圖。以下結合圖2、圖4、圖6、圖7,對本發(fā)明的一個具體實施例進行描述。具體場景是一個用戶通過客戶端25下載第一文件Fl的一部分。例如圖2所示, 該文件Fl是一個FLV文件,包含文件頭ra和多個片段P1至Pn+m,每個片段包含一個tag。 客戶端25可以從點對點網(wǎng)絡中,例如從客戶端26、客戶端27處下載第一文件Fl的片段。在步驟S2中,客戶端25將確定第一文件Fl的一個指定部分的片段。具體地,客戶端25可以通過檢索獲知第一文件Fl的文件(時間)長度。例如圖 7所示,客戶端25中可以提供文件長度顯示窗口 60來顯示整個第一文件Fl的長度。文件 長度顯示窗口 60中還包括第一截取指針61和第二截取指針62,其初始默認位置可以分別 設置于文件長度顯示窗口 60的開頭和末尾。用戶可以通過拖動第一截取指針61和第二截 取指針62來確定指定部分的片段。例如,用戶將第一截取指針61拖動到tl時刻、將第二 截取指針62拖動到t2時刻。tl時刻對應著片段P2,t2時刻對應著片段Pn+1,客戶端25可 以將片段P2SPn+1確定為指定部分的片段,例如圖7中所示?;蛘?,客戶端25可以提供輸入窗口,由用戶輸入截取開始時刻和截取終止時刻。 例如,用戶輸入的截取開始時刻為tl、輸入的截取終止時刻為t2。tl時刻對應著片段P2, t2時刻對應著片段Pn+1,客戶端25可以將片段P2至Pn+1確定為指定部分的片段,例如圖7 中所示。然后,在步驟S3中,客戶端25將根據(jù)第一文件F 1的第一匹配參數(shù),從點對點網(wǎng) 絡中下載指定部分的片段。根據(jù)本發(fā)明的一些實施例,具體地,第一文件Fl的第一匹配參數(shù)是采用散列函數(shù) 為其確定的數(shù)字摘要值D1,客戶端25根據(jù)第一文件F 1的數(shù)字摘要值Dl作為索引匹配條 件從點對點網(wǎng)絡中下載指定部分的片段,例如片段P2至Pn+1。例如,客戶端25所下載的片 段可以來自客戶端26、客戶端27等。數(shù)字摘要值D 1可以采用MD5函數(shù)或者SHAl函數(shù)來 計算。因為文件和其數(shù)字摘要值之間具有非常良好的“一一對應”的特性,所以可以保證下 載內容的準確性。本領域技術人員應能理解,點對點網(wǎng)絡中文件和其數(shù)字摘要值的索引關 系表的建立、維護以及使用的方式并非本發(fā)明的重點,現(xiàn)有技術中的任何可行的方式均可 應用于本發(fā)明。根據(jù)本發(fā)明的一些實施例,第一文件Fl的第一匹配參數(shù)也可以采用其文件名,客 戶端25根據(jù)第一文件Fl的文件名作為索引匹配條件從點對點網(wǎng)絡中下載指定部分的片 段,例如片段&至? +1。當然,還可以采用其他參數(shù)作為第一文件Fl的第一匹配參數(shù)。然后,在步驟S4中,客戶端25將指定部分的片段中的至少一部分組成一個可識別 的第二文件。具體地,例如圖7中所示,指定部分的片段包括片段P2至? +1??蛻舳?5可以將 片段P2至Pn+1按順序組合起來,并添加上文件頭ra,組成可識別的第二文件F2,第二文件 F2也是一個FLV文件。因為第一文件Fl的指定部分的片段,也就是對應于第二文件F2的 內容的片段P2至? +1,可以通過點對點技術從網(wǎng)絡中下載,所以可以獲得較高的下載速度??赡艿那樾问?,客戶端25還未下載完指定部分的所有片段,例如已經(jīng)下載完的僅 有片段P2、片段P3 (η > 2)。則客戶端25可以將片段P2、P3按順序組合起來,并添加上文件
8頭ra,組成可識別的第二文件F2。該實施例的一個可能的應用場景是,用戶對于第一文件Fl的內容有所了解,并且 只希望下載其中的精華部分。圖8示出了根據(jù)本發(fā)明一個實施例的點對點網(wǎng)絡的網(wǎng)絡實體中的文件下載裝置 的結構框圖。如圖所示,文件下載裝置200包括分割指示信息獲取裝置201,第一確定裝 置202,片段下載裝置203,文件組合裝置204,第一提供裝置205。在本發(fā)明的其他一些實 施例中,文件下載裝置200包括上述裝置201至205中的一部分,以及其他裝置。以下結合圖2至圖5、圖8,對本發(fā)明的一個具體實施例進行描述。具體場景是一個用戶通過客戶端21下載第一文件F1。例如圖2所示,該文件Fl 是一個FLV文件,包含文件頭ra和多個片段P1至Pn+m,每個片段包含一個tag。服務器10 提供基于超文本傳輸協(xié)議(HTTP)的文件下載服務,其中包括文件F1??蛻舳?1不僅從服 務器10處下載文件Fl的片段,而且還可以從點對點網(wǎng)絡中,例如從容戶端22、客戶端23處 下載第一文件Fl的片段。文件下載裝置200典型地設置于客戶端21中,包括分割指示 信息獲取裝置201,第一確定裝置202,片段下載裝置203,文件組合裝置204,第一提供裝置 205。首先,客戶端21中的分割指示信息獲取裝置201將獲取第一文件Fl的一個分割 指不信息。具體地,客戶端21—邊在下載第一文件F1,用戶一邊通過客戶端21中的網(wǎng)絡播放 器觀看第一文件F1。例如圖5a所示,播放進度顯示窗口 50中的播放進度指針51用于指示 當前播放進度,例如當前進度為gl (通常用時間表示),點狀陰影區(qū)域表示當前已經(jīng)下載的 部分。如果在點狀陰影區(qū)域內部拖動播放進度指針51,仍然可以順利播放。當用戶將播放進度指針51拖動到點狀陰影區(qū)域之外的位置,例如圖5b中的g2位 置,也就是用戶希望從g2代表的時間開始繼續(xù)觀看第一文件Fl的剩余部分,分割指示信息 獲取裝置201將根據(jù)用戶的操作獲取關于第一文件Fl的一個分割指示信息。通常,該分割 指示信息包括與新的進度g2所代表的時間有關的信息。然后,客戶端21中的第一確定裝置202將根據(jù)分割指示信息確定第一文件Fl的 一個指定部分的片段。具體地,新的進度g2所代表的時間對應于片段Plri,第一確定裝置202可以將片段 確定為指定部分的片段,例如圖5b中所示,也可以將片段Plri至Pn+m確定為指定部
分的片段,例如圖5c中所示。然后,客戶端21中的片段下載裝置203將根據(jù)第一文件Fl的第一匹配參數(shù),從點 對點網(wǎng)絡中下載指定部分的片段。根據(jù)本發(fā)明的一些實施例,具體地,第一文件Fl的第一匹配參數(shù)是采用散列函數(shù) 為其確定的數(shù)字摘要值D1,片段下載裝置203根據(jù)第一文件Fl的數(shù)字摘要值D 1作為索 引匹配條件從點對點網(wǎng)絡中下載指定部分的片段,例如片段Pn至?_。例如,片段下載裝置 203所下載的片段可以來自客戶端22、客戶端23等。數(shù)字摘要值Dl可以采用MD5函數(shù)或 者SHAl函數(shù)來計算。因為文件和其數(shù)字摘要值之間具有非常良好的“一一對應”的特性, 所以可以保證下載內容的準確性。本領域技術人員應能理解,點對點網(wǎng)絡中文件和其數(shù)字 摘要值的索引關系表的建立、維護以及使用的方式并非本發(fā)明的重點,現(xiàn)有技術中的任何
9可行的方式均可應用于本發(fā)明。根據(jù)本發(fā)明的一些實施例,第一文件Fl的第一匹配參數(shù)也可以采用其文件名,片 段下載裝置203根據(jù)第一文件Fl的文件名作為索引匹配條件從點對點網(wǎng)絡中下載指定部 分的片段,例如片段Pn至?_。當然,還可以采用其他參數(shù)作為第一文件Fl的第一匹配參數(shù)。根據(jù)本發(fā)明的一些實施例,片段下載裝置203還將根據(jù)第一文件Fl的第二匹配參 數(shù),從服務器10處下載指定部分的片段。具體地,第一文件Fl的第二匹配參數(shù)是其在服務器10中的統(tǒng)一資源定位符Ul。 片段下載裝置203根據(jù)第一文件Fl的統(tǒng)一資源定位符Ul從服務器10中下載指定部分的 片段,例如片SPn至?_。當然,第一文件Fl的第二匹配參數(shù)也可以采用其他參數(shù)。然后,客戶端21中的文件組合裝置204將指定部分的片段中的至少一部分組成一 個可識別的第二文件。具體地,例如圖5b中所示,指定部分的片段包括片段Pn至Pn+m。文件組合裝置204 可以將片段Pn至pn+m按順序組合起來,并添加上文件頭ra,組成可識別的第二文件F2,第二 文件F2也是一個FLV文件??赡艿那樾问牵蜗螺d裝置203還未下載完指定部分的所有片段,例如已經(jīng)下 載完的僅有片段Pn、片段pn+1 (m > 2)。則文件組合裝置204可以將片段Pn、Pn+1按順序組合 起來,并添加上文件頭ra,組成可識別的第二文件F2。然后,客戶端21中的第一提供裝置205將第二文件F2提供給網(wǎng)絡播放器。這樣, 用戶就可以從新的進度g2所代表的時間開始繼續(xù)觀看第一文件Fl剩余部分的內容。因為 第一文件Fl的指定部分的片段,也就是對應于第一文件Fl剩余部分內容(亦即第二文件 F2的內容)的片段?11至?_,可以通過點對點技術從網(wǎng)絡中下載,所以可以獲得較高的下載 速度,用戶在完成拖動播放進度指針的操作后很快就可以流暢地觀看第一文件Fl剩余部 分的內容,從而使得用戶的體驗質量得到改善。以下結合圖2、圖4、圖6、圖7、圖8,對本發(fā)明的另一個具體實施例進行描述。具體場景是一個用戶通過客戶端25下載第一文件Fl的一部分。例如圖2所示, 該文件Fl是一個FLV文件,包含文件頭ra和多個片段P1至Pn+m,每個片段包含一個tag。 客戶端25可以從點對點網(wǎng)絡中,例如從客戶端26、客戶端27處下載第一文件F 1的片段。 文件下載裝置200典型地設置于客戶端25中,包括第一確定裝置202,片段下載裝置203, 文件組合裝置204。首先,客戶端25中的第一確定裝置202將確定第一文件Fl的一個指定部分的片 段。具體地,客戶端25中的文件下載裝置200可以通過檢索獲知第一文件Fl的文件 (時間)長度。例如圖7所示,文件下載裝置200中可以提供文件長度顯示窗口 60來顯示 整個第一文件Fl的長度。文件長度顯示窗60中還包括第一截取指針61和第二截取指針 62,其初始默認位置可以分別設置于文件長度顯示窗口 60的開頭和末尾。用戶可以通過拖 動第一截取指針61和第二截取指針62來確定指定部分的片段。例如,用戶將第一截取指 針61拖動到tl時刻、將第二截取指針62拖動到t2時刻。tl時刻對應著片段P2,t2時刻 對應著片段Pn+1,第一確定裝置202可以將片段P2至Pn+1確定為指定部分的片段,例如圖7中所示?;蛘撸募螺d裝置200可以提供輸入窗口,由用戶輸入截取開始時刻和截取終 止時刻。例如,用戶輸入的截取開始時刻為tl、輸入的截取終止時刻為t2。tl時刻對應著 片段P2,t2時刻對應著片段Pn+1,第一確定裝置202可以將片段P2至Pn+1確定為指定部分的 片段,例如圖7中所示。然后,客戶端25中的片段下載裝置203將根據(jù)第一文件Fl的第一匹配參數(shù),從點 對點網(wǎng)絡中下載指定部分的片段。根據(jù)本發(fā)明的一些實施例,具體地,第一文件Fl的第一匹配參數(shù)是采用散列函數(shù) 為其確定的數(shù)字摘要值D1,片段下載裝置203根據(jù)第一文件F 1的數(shù)字摘要值D 1作為索 引匹配條件從點對點網(wǎng)絡中下載指定部分的片段,例如片段P2至? +1。例如,客戶端25中 的片段下載裝置203所下載的片段可以來自客戶端26、客戶端27等。數(shù)字摘要值Dl可以 采用MD5函數(shù)或者SHAl函數(shù)來計算。因為文件和其數(shù)字摘要值之間具有非常良好的“一一 對應”的特性,所以可以保證下載內容的準確性。本領域技術人員應能理解,點對點網(wǎng)絡中 文件和其數(shù)字摘要值的索引關系表的建立、維護以及使用的方式并非本發(fā)明的重點,現(xiàn)有 技術中的任何可行的方式均可應用于本發(fā)明。根據(jù)本發(fā)明的一些實施例,第一文件Fl的第一匹配參數(shù)也可以采用其文件名,客 戶端25中的片段下載裝置203根據(jù)第一文件Fl的文件名作為索引匹配條件從點對點網(wǎng)絡 中下載指定部分的片段,例如片段&至? +1。當然,還可以采用其他參數(shù)作為第一文件Fl的
第一匹配參數(shù)。然后,客戶端25中的文件組合裝置204將指定部分的片段中的至少一部分組成一 個可識別的第二文件。具體地,例如圖7中所示,指定部分的片段包括片段P2至? +1。客戶端25中的文 件組合裝置204可以將片段P2至Pn+1按順序組合起來,并添加上文件頭ra,組成可識別的 第二文件F2,第二文件F2也是一個FLV文件。因為第一文件Fl的指定部分的片段,也就是 對應于第二文件F2的內容的片段P2至? +1,可以通過點對點技術從網(wǎng)絡中下載,所以可以 獲得較高的下載速度??赡艿那樾问牵蜗螺d裝置203還未下載完指定部分的所有片段,例如已經(jīng)下 載完的僅有片段P2、片段p3(n > 2)。則文件組合裝置204可以將片段P2、P3按順序組合起 來,并添加上文件頭ra,組成可識別的第二文件F2。該實施例的一個可能的應用場景是,用戶對于第一文件Fl的內容有所了解,并且 只希望下載其中的精華部分。上述實施例中的第一文件的指定部分均是多個連續(xù)的片段。本領域技術人員應能 理解,第一文件Fl的指定部分也可以是不完全連續(xù)的片段,例如,指定部分可以包括片段 P2、P3 以及片段 P7、P8。(n+m 彡 8)。上述實施例中,每個片段包含一個tag,這僅是示例性而非限制性的。對于一個片 段包含多個tag的情形,本領域技術人員應能根據(jù)本文的描述自行推導得出。上述實施例中,第一文件和第二文件均是FLV格式的流媒體文件。本領域技術人 員應能理解,與FLV文件具有類似特點的其他格式的文件也可以適用于本發(fā)明。本發(fā)明中所稱的各種裝置,可以是軟件功能模塊,也可以是硬件模塊,還可以是集成了軟件功能的硬件模塊。盡管在附圖和前述的描述中詳細闡明和描述了本發(fā)明,應認為該闡明和描述是說 明性的和示例性的,而不是限制性的;本發(fā)明不限于所上述實施方式。本技術領域的一般技術人員可以通過研究說明書、公開的內容及附圖和所附的權 利要求書,理解和實施對披露的實施方式的其他改變。在權利要求中,措詞“包括”不排除 其他的元素和步驟,并且措辭“一個”不排除復數(shù)。在發(fā)明的實際應用中,一個零件可能執(zhí) 行權利要求中所引用的多個技術特征的功能。權利要求中的任何附圖標記不應理解為對范 圍的限制。
權利要求
一種點對點網(wǎng)絡的網(wǎng)絡實體中的文件下載方法,所述方法包括以下步驟B.確定一個第一文件的一個指定部分的片段;C.根據(jù)第一文件的第一匹配參數(shù),從點對點網(wǎng)絡中下載所述指定部分的片段;D.將所述指定部分的片段中的至少一部分組成一個可識別的第二文件。
2.根據(jù)權利要求1所述的方法,其特征在于,還包括步驟 A.獲取第一文件的一個分割指示信息;所述步驟B中根據(jù)所述分割指示信息確定第一文件的所述指定部分的片段。
3.根據(jù)權利要求1所述的方法,其特征在于,所述第一匹配參數(shù)是采用散列函數(shù)為第 一文件確定的數(shù)字摘要值。
4.根據(jù)權利要求3所述的方法,其特征在于,所述散列函數(shù)為MD5函數(shù)或SHA1函數(shù)。
5.根據(jù)權利要求1所述的方法,其特征在于,所述步驟C還包括 根據(jù)第一文件的第二匹配參數(shù),從服務器下載所述指定部分的片段。
6.根據(jù)權利要求5所述的方法,其特征在于,所述第二匹配參數(shù)是所述第一文件的統(tǒng) 一資源定位符。
7.根據(jù)權利要求1所述的方法,其特征在于,所述步驟D包括為所述指定部分的片段中的至少一部分加上一個文件頭,從而組成所述第二文件。
8.根據(jù)權利要求1所述的方法,其特征在于,還包括步驟E.將所述第二文件提供給網(wǎng)絡播放器。
9.根據(jù)權利要求1至8中任一項所述的方法,其特征在于,所述第一文件是一個流媒體 文件。
10.根據(jù)權利要求9所述的方法,其特征在于,所述第一文件是一個flv文件。
11.一種點對點網(wǎng)絡的網(wǎng)絡實體中的文件下載裝置,包括第一確定裝置,用于確定一個第一文件的一個指定部分的片段; 片段下載裝置,用于根據(jù)第一文件的第一匹配參數(shù),從點對點網(wǎng)絡中下載所述指定部 分的片段;文件組合裝置,將所述指定部分的片段中的至少一部分組成一個可識別的第二文件。
12.根據(jù)權利要求11所述的文件下載裝置,其特征在于,還包括 分割知識信息獲取裝置,用于獲取第一文件的一個分割指示信息;所述第一確定裝置根據(jù)所述分割指示信息確定第一文件的所述指定部分的片段。
13.根據(jù)權利要求11所述的文件下載裝置,其特征在于,所述第一匹配參數(shù)是采用散 列函數(shù)為第一文件確定的數(shù)字摘要值。
14.根據(jù)權利要求13所述的文件下載裝置,其特征在于,所述散列函數(shù)為MD5函數(shù)或 SHA1函數(shù)。
15.根據(jù)權利要求11所述的文件下載裝置,其特征在于,所述片段下載裝置還用于根 據(jù)第一文件的第二匹配參數(shù),從服務器下載所述指定部分的片段。
16.根據(jù)權利要求15所述的文件下載裝置,其特征在于,所述第二匹配參數(shù)是所述第 一文件的統(tǒng)一資源定位符。
17.根據(jù)權利要求11所述的文件下載裝置,其特征在于,所述文件組合裝置還用于為 所述指定部分的片段中的至少一部分加上一個文件頭,從而組成所述第二文件。
18.根據(jù)權利要求11所述的文件下載裝置,其特征在于,還包括 第一提供裝置,用于將所述第二文件提供給網(wǎng)絡播放器。
19.根據(jù)權利要求11至18中任一項所述的文件下載裝置,其特征在于,所述第一文件 是一個流媒體文件。
20.根據(jù)權利要求19所述的文件下載裝置,其特征在于,所述第一文件是一個flv文件。
21.一種用戶終端,其特征在于,包括權利要求11至20中任一項所述的文件下載裝置。
22.—種計算機存儲介質,其特征在于,該介質上存儲了可被計算機讀取并運行以執(zhí)行 根據(jù)權利要求1至10中任一項所述的文件下載方法的計算機程序。
全文摘要
本發(fā)明提出了點對點網(wǎng)絡中的文件下載方法及裝置。根據(jù)本發(fā)明的第一方面,提供了一種點對點網(wǎng)絡的網(wǎng)絡實體中的文件下載方法,所述方法包括以下步驟B.確定一個第一文件的一個指定部分的片段;C.根據(jù)第一文件的第一匹配參數(shù),從點對點網(wǎng)絡中下載所述指定部分的片段;D.將所述指定部分的片段中的至少一部分組成一個可識別的第二文件。通過使用本發(fā)明中的方法、裝置,可以在下載文件時獲得較高的下載速度。
文檔編號G06F17/30GK101945032SQ20091005452
公開日2011年1月12日 申請日期2009年7月7日 優(yōu)先權日2009年7月7日
發(fā)明者徐瑋, 朱巍, 王聞宇 申請人:上海聚力傳媒技術有限公司