用於重建種子內容元數據的方法和設備的製作方法
2023-07-14 11:49:46
專利名稱:用於重建種子內容元數據的方法和設備的製作方法
技術領域:
本發明一般涉及點對點(peer-to-peer)通信,更特別地涉及下載和緩存種子(torrent)內容文件,種子內容文件的固定尺寸分片或分段存儲在一個或多個對等點 (peer)上。種子內容文件可以例如是電影文件、音頻文件、軟體文件等。下載和緩存涉及在與實際發起下載的客戶端不同的另一客戶端上存儲種子內容文件。典型地,兩個下載將持續進行一個是根據現有技術的機制向發起客戶端的常規下載以及一個是根據本發明的用於緩存客戶端的特殊下載。
背景技術:
比特流(BitTorrent)是一種點對點通信協議,其使比特流客戶端能夠從一個或多個對等點下載種子內容文件的固定尺寸分段,從而重新組成所述種子內容文件,例如電影或歌曲。此外,比特流客戶端需要唯一的種子內容標識符,其通過所述標識符聯繫網際網路追蹤器(internet tracker),其持有存儲了種子內容文件的分段的對等點的列表。這個唯一的種子內容標識符被通告為種子內容元文件(metafile)的前期(upfront)知識。比特流客戶端從網際網路追蹤器接收這些對等點的IP位址,並且接下來可以開始與這些對等點交換分段以下載和重新組成整個種子內容文件。此外,比特流客戶端需要種子內容文件的尺寸、分段的數量,其中種子內容文件被分割並且除了最後的這種分段之外所有的分段具有固定的長度。這些元數據還被通告為種子內容元文件中的前期知識。上述介紹的用於下載和和緩存種子內容的已知方法的缺點是種子內容元文件不可能總是對期望下載種子內容文件的所有客戶端是用的,這樣的結果是沒有訪問種子內容元文件的客戶端不可能下載和緩存種子內容文件。本發明的目標是公開一種用於重建丟失的種子內容元數據的方法和設備,所述種子內容元數據是允許下載種子內容文件所必須的,而不需要訪問種子內容元文件。
發明內容
根據本發明,通過權利要求1所限定的用於重建丟失種子內容元數據的方法來實現上面定義的目標並且克服現有技術的缺點,包括以下步驟A.從客戶端通過種子信令獲得種子內容標識符;
B.從所述客戶端通過所述種子信令獲得種子內容文件的尺寸;
C.從所述客戶端通過所述種子信令獲得追蹤器地址;
D.從追蹤器獲得對等點地址;
E.通過對等點地址聯繫對等點;
F.為了確定分段長度,從對等點下載全尺寸分段的按次序的最小尺寸的塊;以及
G.通過種子內容文件尺寸和分段長度來計算分段的數量。
實際上,根據本發明,期望下載和緩存種子內容文件的客戶端從另一標準客戶端
通過信令獲得種子內容標識符,例如比特流中的哈希值(infohash),所述標準客戶端通過訪問元文件來下載目標種子內容文件。然而,根據本發明進行操作的緩存客戶端沒有訪問元文件。這種緩存客戶端進一步需要從網際網路追蹤器獲得保持目標種子內容文件的全尺寸分段的對等點的IP位址。典型地,響應於單個請求,緩存客戶端將接收多於一個的對等點地址。根據本發明進行操作的緩存客戶端聯繫網際網路追蹤器(已經從標準客戶端通過種子信令獲得追蹤器的地址),並且從網際網路追蹤器獲得存儲了目標種子內容文件的片段的對等體的IP位址。對等點應當僅包含單個分段而不保證全分段尺寸,如下面所解釋的,必須迭代地(iteratively)重複步驟D和Ε。還注意到,典型地,響應於步驟D中的請求,緩存客戶端將接收多於一個的對等點地址。通過順序地下載最小尺寸的塊,例如1 字節的塊, 直到塊請求被拒絕,客戶端可以得知分段的尺寸。通過來自標準客戶端的比特流信令,緩存客戶端進一步獲得種子內容文件的尺寸。緩存客戶端通過分段尺寸和種子內容文件的尺寸 (以及如下面所解釋的,相對於位欄位長度的最終驗證)可以確定最後丟失的參數,種子內容文件中分段的數量。除了權利要求1所限定的方法,本發明還涉及由權利要求8所定義的相應設備,例如,保持用於執行權利要求1的方法的軟體的載體(carrier)或存儲設備。期望緩存種子內容而沒有訪問種子內容元文件的任意系統可以獲得本發明的益處。這種系統的實例是一種根據權利要求9所指示的比特流客戶端。進一步可選擇地,根據權利要求2所限定的,根據本發明的方法的步驟E可以包括與用戶的握手(handshaking),由此得到對等點的位欄位(bitfield),位欄位中的每個位表示種子內容文件的相應分段的可用性。實際上,為了接收與目標(targeted)種子內容文件相關的位欄位,比特流客戶端會聯繫對等體,已經從網際網路追蹤器接收了所述對等體的IP位址。這個位欄位是在響應中接收的,並且將指示可能的分段的最大數量(相應於位欄位長度)以及對等點中存儲了種子內容文件的哪個分段。典型地,位欄位包含與種子內容文件中的具有分段一樣多的比特。 在位欄位中,當相應分段是可用的並且可以從對等點下載時,設置比特(「一個」或「真」), 以及當對等體中的相應分段不可用時,不設置比特(「零」或「假」)。進一步可選擇的,根據權利要求3所限定的,根據本發明的方法的步驟F可以包括迭代地重複步驟E以及最終還有步驟D,直到位欄位包含多個比特設置,或直到僅設置位欄位中的第一比特;在被設置的位欄位中選擇比特,所述比特與被設置的位欄位中的最後比特不同, 除非僅設置了位欄位中的第一比特;將用於與所選擇的比特相關的分段的最小尺寸塊的塊請求發送到對等點,直到塊請求被拒絕;對發送的塊請求的數量進行計數;以及將塊請求的數量乘以最小尺寸塊長度以由此確定分段長度。實際上,緩存客戶端需要從位欄位獲得分片尺寸(或片段尺寸或片段長度)。緩存客戶端應當因此順序地下載分段的小塊,直到其到達分段的邊界,但是前期需要保證下載的分段是完整尺寸的分段。典型地,種子內容文件的最後片段不會是完整尺寸的分段。因此,所接收的位欄位中的最後設置比特可能或不可能代表完整尺寸的分段,並且緩存客戶端不能使用它來確定分段長度。緩存客戶端因此會順序地下載與位欄位中的比特相對應的分段的小塊,所述比特與最後設置比特不同。如果位欄位僅包含一個設置比特,客戶端將丟棄位欄位並且將通過重複步驟D和E來與不同對等點進行握手。在緩存客戶端已經在之前執行的步驟D中接收到多個對等點的地址的情況下,由於緩存客戶端可以嘗試聯繫其他對等點中的一個,所以不需要重複步驟D。例外地,當位欄位僅包括一個設置不同並且所述比特是位欄位中的第一比特,緩存客戶端可以選擇用於逐步下載以建立片段長度的第一分段。緩存客戶端將開始發送用於所選擇分段的最小尺寸塊的請求。當塊請求被拒絕時,這樣表示分段的結束。通過對所發送的未拒絕的(imrejected)塊請求的數量進行計數,以及將這個數乘以最小尺寸塊(例如16K字節)的長度,緩存客戶端可以確定用於目標種子內容文件的分段長度。同樣,根據權利要求4所限定的,根據本發明的方法的步驟A可以包括從比特流信令獲得識別種子內容文件的唯一種子標識符(即,哈希值)。實際上,在比特流的情況中,標識種子內容文件的唯一種子標識符(即,哈希值) 可以從標準客戶端通過比特流信令獲得,所述標準客戶端正在通過訪問元文件來下載目標種子內容文件。根據本發明的方法的另一可選方面,根據權利要求5所限定的,步驟B可以包括從標準比特流客戶端通過比特流信令獲得下載的字節數量以及剩下的字節數量; 以及通過將下載的字節數量和剩下的字節數量相加來確定種子內容文件的尺寸。再次,在比特流的實例中,可以從通過訪問元文件來下載種子內容文件的另一標準客戶端通過比特流信令來獲得剩下的字節數量和下載的字節數量。當將這兩個數量加在一起時,向客戶端給出關於種子內容文件尺寸的估計。然而,在所報告的文件尺寸是值得懷疑的情況中,客戶端可以選舉(elect)以通過位欄位長度(即在步驟E或在步驟E的迭代過程中從對等點接收的最大位欄位長度)以及在步驟F中確定的分段長度來確定文件尺寸。此處注意的是,由於最後的分段可能是不完整的分段,位欄位長度和分段尺寸的乘積可能與實際的種子內容文件尺寸是不同的。進一步可選擇地,根據權利要求6所限定的,在根據本發明的方法中,步驟G可以包括通過劃分種子內容文件尺寸由分段尺寸來確定分段的數量。實際上,為了完成客戶端的元數據知識,客戶端仍然要獲取構成目標種子內容文件的分片的數量或片段的數量。通過如步驟C中確定的分段長度來劃分如步驟E中確定的文件尺寸,客戶端可以計算分段的數量。根據權利要求7所指示的,根據本發明的用於重建種子內容元數據的方法可以通過可選的步驟來完成H.下載和緩存種子內容文件的一個或多個分段。因此,通過種子標識符、重建的元數據(即種子內容文件尺寸、分段長度和分段數量)的知識,客戶端或緩存節點可以開始下載種子內容文件並將其部分地或全部地存儲在緩存存儲器中。
圖1示出了根據本發明的在不訪問種子內容元文件的情況下重建種子內容元數據的方法的實施方式。
具體實施例方式圖1示出了比特流緩存客戶端101和對等點102,即,存儲種子內容文件的某些分段的機器,例如電影文件「奪寶奇兵」。假設對等點102也支持比特流協議。緩存客戶端101 和對等點102均具有網際網路連通性並且緩存客戶端101已經從另一標準客戶端通過比特流信令從網際網路追蹤器獲得對等點102的IP位址,所述另一標準客戶端在通過訪問元文件來下載目標電影文件。通過來自其它標準客戶端的比特流信令,緩存客戶端101進一步獲得識別目標種子內容文件(即,電影「奪寶奇兵」)的唯一種子標識符(即,哈希值),以及剩下的字節數量和下載的字節的數量,上述數量的和給出所期待的種子內容文件的尺寸。緩存客戶端101 聯繫對等點102以接收與目標種子內容文件相關的位欄位,目標種子內容文件例如是電影 「奪寶奇兵」。這是與對等點102的第一次握手。在來自對等點102的響應中接收位欄位 103。通過接收到的位欄位103,緩存客戶端101須獲得目標種子內容文件的分段大小和分段數量。這是通過下述內容完成的。緩存客戶端101首先必須找到已經保證完整分段尺寸的分段。除了位欄位103中的最後設置比特之外的任意比特,代表可以從對等點102下載的保證全分段尺寸的分段。最後設置比特可能或不可能代表具有完整分段尺寸的分段, 並且因此因此無法被依賴以確定分段尺寸。如果位欄位僅具有一個比特設置並且如果它不是第一個比特,那麼緩存客戶端101無法從位欄位獲得分段大小。在這種情況下,緩存客戶端101將丟棄位欄位並試圖與不同的對等點握手。在圖1中,假設位欄位103包含多一個的設置比特。緩存客戶端101採用最後一個之前的任意組比特,例如比特104,以及所述比特號作為ID來開始下載種子內容文件的相應分段。緩存客戶端101通知其它對等點102, 其對與位欄位103中的所選擇比特104相關的分段感興趣。緩存客戶端101因此開始發送用於最小尺寸塊105的分片請求,即,類似於塊106的16k字節的連續塊。緩存客戶端101 還保持對發送的塊請求的數量進行計數。只要塊請求被拒絕,這指示分段的結束。緩存客戶端101現在可以通過與塊尺寸與成功的塊請求數量相乘來計算分段尺寸。緩存客戶端 101最後通過由分段尺寸劃分文件尺寸,或者在無法信任文件尺寸的情況下,通過分段尺寸與最大位欄位長度相乘,來確定分段的數量。在此處以上介紹的實施方式中,假設最初報告的文件尺寸是正確的,即請求緩存客戶端101緩存種子內容文件的最初客戶端提供正確和完整的剩餘的比特和下載的比特的信息。此處以上所介紹的實施方式的稍微改動允許下載種子內容(接近完成),甚至是在最初報告的文件尺寸是不正確的情況下。在另一可替換的實施方式中,為了增加能夠聯繫到持有完整尺寸分段的對等點的概率並因此降低或避免方法的步驟A和B的迭代,可以同時聯繫多個多個對等點。儘管已經通過參考具體實施方式
來說明本發明,但是對於所屬領域的技術人員來說,本發明並不限於前述示意性實施方式的細節,以及在不脫離本發明的範圍的情況下,可以利用各種改變和修改來體現本發明。本實施方式因此在所有方面被考慮為示意性的以及非限制性的,本發明的範圍由附加的權利要求來指示而不是由前述說明來指示,以及來自權利要求的等價含義和範圍內的所有改變因此旨在包含在本發明之內。換句話說,其考慮覆蓋任意和所有落入基本基礎原則範圍內的改變、變化或等價,並且他們的本質屬性在本申請中限定。因此,本申請的讀者將會明白,詞語「包括」或「包含」不排除其它元件或步驟, 詞語「一個」或「一」不排除多個,以及單個元件,例如計算機系統、處理器或可以滿足權利要求中記載的多個方法的功能的另一集成電路。權利要求中的任何附圖標記不應當理解為對所涉及的各個權利要求的限制。當用在說明書或權利要求中時,引入術語「第一」、「第二」、 「第三」、「a」、「b」、「c」等是用於在類似的元件或步驟之間進行區分,並且不是必須描述為按次序的或按時間順序的次序。類似地,引入術語「頂部」、「底部」、「之上」、「之下」等是為了介紹性目的並且不是必須表示相對位置。應當了解的是,如此使用的術語在適當的環境中是可以交換的並且本發明的實施方式能夠根據本發明按照其它順序來操作,或在與上面介紹或說明的方向不同的方向中。
權利要求
1.一種用於在不訪問種子內容元文件的情況下重建種子內容元數據的方法,其中種子內容元數據即種子內容文件尺寸、種子內容文件的分段長度和分段數量,其特徵在於所述方法包括以下步驟A.通過來自客戶端的種子信令獲得種子內容標識符;B.通過來自所述客戶端的所述種子信令獲得種子內容文件的尺寸;C.通過來自所述客戶端的所述種子信令獲得追蹤器地址;D.從追蹤其獲得對等點地址;E.通過所述對等點地址來聯繫對等點;F.為了確定所述分段長度,從所述對等點下載完整尺寸分段的按次序的最小尺寸塊;G.通過所述種子內容文件尺寸和所述分段長度來計算所述分段的數量。
2.根據權利要求1的用於重建種子內容元數據的方法,其特徵在於,所述步驟E包括與所述對等點進行握手,由此獲取所述對等點的位欄位,所述位欄位中的每個位代表所述種子內容文件的相應分段的可用性。
3.根據權利要求2的用於重建種子內容元數據的方法,其特徵在於所述步驟F包括 迭代地重複所述步驟E以及最終還有所述步驟D,直到所述位欄位包含多個位設置,或直到僅設置了位欄位中的第一位;在被設置的所述位欄位中選擇位,所述位與所述位欄位中最後的位不同,除非僅設置了所述位欄位中的第一位;將用於與所選擇的位相關的分段的最小尺寸塊的塊請求發送到所述對等點,直到塊請求被拒絕;對發送的塊請求的數量進行計數;以及將所述塊請求的數量乘以最小尺寸塊的長度以由此確定所述分段長度。
4.根據權利要求1的用於重建種子內容元數據的方法,其特徵在於所述步驟A包括從比特流信令獲得標識所述種子內容文件的唯一種子標識符或哈希值。
5.根據權利要求1的用於重建種子內容元數據的方法,其特徵在於所述步驟B包括 從比特流信令獲得下載的字節數量和剩下的字節數量;以及通過將下載的字節數量和剩下的字節數量相加來確定種子內容文件尺寸。
6.根據權利要求1的用於重建種子內容元數據的方法,其特徵在於所述步驟G包括由所述分段長度通過劃分所述種子內容文件尺寸來確定所述分段的數量。
7.根據權利要求1的用於重建種子內容元數據的方法,其特徵在於所述方法進一步包括步驟H.下載和緩存所述種子內容文件的一個或多個分段。
8.—種適於執行權利要求1至7中任意一項的方法的種子信息重建設備。
9.根據權利要求8的種子信息重建設備,其特徵在於所述種子信息重建設備被集成到比特流客戶端中。
全文摘要
一種用於在不訪問種子內容元文件的情況下重建種子內容元數據的方法,種子內容元數據即種子標識符,種子內容文件的分段長度和分段數量,包括以下步驟A.從客戶端通過種子信令獲得種子內容標識符;B.從所述客戶端通過所述種子信令獲得種子內容文件大小;C.從所述客戶端通過所述種子信令獲得追蹤器地址;D.從追蹤器獲得對等點地址;E.通過對等點地址聯繫對等點;F.為了確定分段長度,從對等點下載全尺寸分段的按次序的最小尺寸塊;G.通過種子內容文件尺寸和分段長度來計算分段的數量。
文檔編號H04L29/06GK102318310SQ201080007163
公開日2012年1月11日 申請日期2010年2月8日 優先權日2009年2月10日
發明者艾維克 A·范, 阿克裡 M·范, S·格溫達拉簡 申請人:阿爾卡特朗訊公司