国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種p2p系統(tǒng)中數據獲取方法和裝置制造方法

      文檔序號:7796276閱讀:113來源:國知局
      一種p2p系統(tǒng)中數據獲取方法和裝置制造方法
      【專利摘要】本發(fā)明實施例公開了一種P2P系統(tǒng)數據獲取方法和裝置,包括:用戶節(jié)點向服務器發(fā)送文件請求,接收所述服務器返回的通過所述標示符確定的至少一組擁有所述第一分段文件的資源節(jié)點的節(jié)點信息;根據節(jié)點信息向所述資源節(jié)點打洞成功后開始從所述資源節(jié)點獲取第一分段文件;保存成功節(jié)點信息;當準備獲取所述目標文件的第二分段文件時,根據保存的成功節(jié)點信息從對應的所述資源節(jié)點獲取所述第二分段文件,可見,當該用戶節(jié)點需要獲取該文件的另一個分段文件時,通過保存的成功節(jié)點信息可以直接連接到該資源節(jié)點開始下載對應的數據,從而在等待服務器返回資源節(jié)點信息以及向返回的資源節(jié)點進行打洞操作時依然有P2P數據可以接收,提高帶寬利用率。
      【專利說明】一種P2P系統(tǒng)中數據獲取方法和裝置
      【技術領域】
      [0001]本發(fā)明涉及互聯(lián)網領域,特別是涉及一種P2P系統(tǒng)中數據獲取方法和裝置。
      【背景技術】
      [0002]對等網絡(Peer to Peer,P2P)系統(tǒng)中,為方便系統(tǒng)中文件的傳輸與存儲,提高容納損失的能力,一個完整的文件通常被依次切分為多個獨立的分段文件。
      [0003]當系統(tǒng)中的用戶需要獲取一個文件時,只需要依次獲取對應的多個分段文件即可,比如說當P2P系統(tǒng)中用戶A希望獲取一個文件,該文件被切分為兩段分別為第一分段文件和第二分段文件,用戶A通過發(fā)送請求從服務器獲取擁有該第一分段文件的用戶B的用戶信息,但是由于P2P系統(tǒng)中一般都使用網絡地址轉換(Network Address Translation,NAT)技術,不允許處于NAT設備后的用戶B的主機被用戶A的外部主機直接連接,想要連接的話用戶A需要先穿透用戶B的NAT設備,穿透NAT設備的技術被稱為打洞,同樣,當用戶A接收完第一分段文件開始準備接收第二分段文件的時候,需要等待從服務器獲取擁有第二子文件的用戶C的用戶信息,然后還需要完成對用戶C的NAT設備的打洞后才能從連接到用戶C,接收第二分段文件。
      [0004]用戶A在每次接收切分后的分段文件時所需要進行等待和打洞的時間里是無P2P數據可以接收的,由此浪費了大量的寬帶資源。

      【發(fā)明內容】

      [0005]為了解決上述技術問題,本發(fā)明提供了一種P2P系統(tǒng)中數據獲取方法和裝置,提高了帶寬利用率。
      [0006]本發(fā)明實施例公開了如下技術方案:
      [0007]一種P2P系統(tǒng)數據獲取方法,該方法包括:
      [0008]用戶節(jié)點向服務器發(fā)送文件請求,所述文件請求包括目標文件的第一分段文件唯一對應的標識符;
      [0009]所述用戶節(jié)點接收所述服務器返回的通過所述標示符確定的至少一組擁有所述第一分段文件的資源節(jié)點的節(jié)點信息;
      [0010]所述用戶節(jié)點根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作;
      [0011]所述用戶節(jié)點根據打洞成功后得到的所述資源節(jié)點的IP地址和端口信息開始從所述資源節(jié)點獲取第一分段文件;
      [0012]所述用戶節(jié)點保存成功節(jié)點信息,所述成功節(jié)點信息包括所述用戶節(jié)點打洞操作成功的資源節(jié)點的IP地址和端口信息;
      [0013]當所述用戶節(jié)點準備獲取所述目標文件的第二分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息從對應的所述資源節(jié)點獲取所述第二分段文件。
      [0014]優(yōu)選的,在所述用戶節(jié)點向服務器發(fā)送文件請求之前,還包括:[0015]所述用戶節(jié)點登錄服務器,以使得所述服務器獲取所述用戶節(jié)點的IP地址和端
      口信息;
      [0016]相應的,當所述用戶節(jié)點根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作時,所述資源節(jié)點從所述服務器獲取并保存所述用戶節(jié)點的IP地址和端口信息;
      [0017]當所述用戶節(jié)點準備獲取所述目標文件的第二分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息訪問所述資源節(jié)點,當所述用戶節(jié)點用于訪問的所述資源節(jié)點的IP地址和端口信息與所述資源節(jié)點當前使用的IP地址和端口信息相同,且所述用戶節(jié)點當前的IP地址和端口信息與所述資源節(jié)點所保存的所述用戶節(jié)點的IP地址和端口信息相同時,所述資源節(jié)點允許所述用戶節(jié)點獲取第二分段文件。
      [0018]優(yōu)選的,在所述用戶節(jié)點向服務器發(fā)送文件請求之前,還包括:
      [0019]所述用戶節(jié)點登錄服務器,以使得所述服務器獲取所述用戶節(jié)點的IP地址和端
      口信息;
      [0020]相應的,當所述用戶節(jié)點根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作時,所述資源節(jié)點從所述服務器獲取并保存所述用戶節(jié)點的IP地址和端口信息;
      [0021]當所述用戶節(jié)點準備獲取所述目標文件的第二分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息訪問所述資源節(jié)點,當所述用戶節(jié)點用于訪問的所述資源節(jié)點的IP地址和端口信息與所述資源節(jié)點當前使用的IP地址和端口信息不相同,或者所述用戶節(jié)點當前的IP地址和端口信息與所述資源節(jié)點所保存的所述用戶節(jié)點的IP地址和端口信息不相同時,所述用戶節(jié)點對所述資源節(jié)點重新進行打洞操作;
      [0022]所述用戶節(jié)點根據打洞成功后得到的所述資源節(jié)點的IP地址和端口信息開始從所述資源節(jié)點獲取第二分段文件;
      [0023]所述用戶節(jié)點保存成功節(jié)點信息,所述成功節(jié)點信息包括所述用戶節(jié)點打洞操作成功的資源節(jié)點的IP地址和端口信息。
      [0024]優(yōu)選的,
      [0025]所述成功節(jié)點信息還包括所述用戶節(jié)點從所述資源節(jié)點下載所述第一分段文件的速度信息;
      [0026]相應的,當所述用戶節(jié)點準備獲取所述目標文件的第二分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息中的所述速度信息,以相應的下載速度從對應的資源節(jié)點獲取第二分段文件。
      [0027]優(yōu)選的,
      [0028]所述速度信息包括所述用戶節(jié)點從所述資源節(jié)點完成獲取所述第一分段文件時的下載速度以及平均速度。
      [0029]優(yōu)選的,
      [0030]按照所述目標文件依次切分后得到的分段文件順序,所述第二分段文件為所述第一分段文件的下一個分段文件。
      [0031]優(yōu)選的,所述當所述用戶節(jié)點準備獲取所述目標文件的第二分段文件時具體為:
      [0032]當所述用戶節(jié)點完成獲取第一分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息向對應的所述資源節(jié)點獲取所述第二分段文件。
      [0033]一種P2P系統(tǒng)數據獲取裝置,該裝置包括:
      [0034]發(fā)送單元,用于向服務器發(fā)送文件請求,所述文件請求包括目標文件的第一分段文件唯一對應的標識符;
      [0035]節(jié)點信息接收單元,用于接收所述服務器返回的通過所述標示符確定的至少一組擁有所述第一分段文件的資源節(jié)點的節(jié)點信息;
      [0036]打洞操作單元,用于根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作;
      [0037]第一獲取單元,用于根據打洞成功后得到的所述資源節(jié)點的IP地址和端口信息開始從所述資源節(jié)點獲取第一分段文件;
      [0038]保存單元,用于保存成功節(jié)點信息,所述成功節(jié)點信息包括所述打洞操作單元打洞操作成功的資源節(jié)點的IP地址和端口信息;
      [0039]第二獲取單元,用于當準備獲取所述目標文件的第二分段文件時,根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息從對應的所述資源節(jié)點獲取所述第二分段文件。
      [0040]優(yōu)選的,還包括:
      [0041]登錄單元,用于在觸發(fā)所述發(fā)送單元之前登錄服務器,以使得所述服務器獲取所述用戶節(jié)點的IP地址和端口信息;
      [0042]相應的,所述打洞操作單元,還用于根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作時,使得所述資源節(jié)點從所述服務器獲取并保存所述用戶節(jié)點的IP地址和端口
      信息;
      [0043]所述第二獲取單元,還用于當準備獲取所述目標文件的第二分段文件時,根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息訪問所述資源節(jié)點,當用于訪問的所述資源節(jié)點的IP地址和端口信息與所述資源節(jié)點當前使用的IP地址和端口信息相同,且當前的IP地址和端口信息與所述資源節(jié)點所保存的所述用戶節(jié)點的IP地址和端口信息相同時,使得所述資源節(jié)點允許獲取第二分段文件。
      [0044]優(yōu)選的,還包括:
      [0045]登錄單元,用于在觸發(fā)所述發(fā)送單元之前登錄服務器,以使得所述服務器獲取所述用戶節(jié)點的IP地址和端口信息;
      [0046]相應的,所述打洞操作單元,還用于根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作時,使得所述資源節(jié)點從所述服務器獲取并保存所述用戶節(jié)點的IP地址和端口
      信息;
      [0047]所述第二獲取單元,還包括打洞操作子單元、獲取子單元和保存子單元;
      [0048]所述打洞操作子單元,用于當準備獲取所述目標文件的第二分段文件時,根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息訪問所述資源節(jié)點,當用于訪問的所述資源節(jié)點的IP地址和端口信息與所述資源節(jié)點當前使用的IP地址和端口信息不相同,或者當前的IP地址和端口信息與所述資源節(jié)點所保存的所述用戶節(jié)點的IP地址和端口信息不相同時,對所述資源節(jié)點重新進行打洞操作;
      [0049]所述獲取子單元,用于根據打洞成功后得到的所述資源節(jié)點的IP地址和端口信息開始從所述資源節(jié)點獲取第二分段文件;[0050]所述保存子單元,用于保存成功節(jié)點信息,所述成功節(jié)點信息包括所述打洞操作子單元打洞操作成功的資源節(jié)點的IP地址和端口信息。
      [0051]優(yōu)選的,
      [0052]所述保存單元所保存的所述成功節(jié)點信息還包括所述用戶節(jié)點從所述資源節(jié)點下載所述第一分段文件的速度信息;
      [0053]相應的,所述第二獲取單元,還用于當準備獲取所述目標文件的第二分段文件時,根據保存的所述成功節(jié)點信息中的所述速度信息,以相應的下載速度從對應的資源節(jié)點獲取第二分段文件。
      [0054]優(yōu)選的,
      [0055]按照所述目標文件依次切分后得到的分段文件順序,所述第二分段文件為所述第一分段文件的下一個分段文件。
      [0056]優(yōu)選的,
      [0057]所述第二獲取單元,還用于當所述用戶節(jié)點完成獲取第一分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息向對應的所述資源節(jié)點獲取所述第二分段文件。
      [0058]由上述技術方案可以看出,一般擁有一個文件的其中一個分段文件的資源節(jié)點同樣也會擁有該文件的其他分段文件,故用戶節(jié)點保存在完成打洞操作后從資源節(jié)點處獲取一個分段文件時該資源節(jié)點的成功節(jié)點信息,當該用戶節(jié)點需要獲取該文件的另一個分段文件時,通過保存的成功節(jié)點信息可以直接連接到該資源節(jié)點開始下載對應的數據,從而所述用戶節(jié)點在等待服務器返回對應該另一個分段文件的資源節(jié)點信息以及向返回的資源節(jié)點進行打洞操作時依然有P2P數據可以接收,大大提高了帶寬利用率。
      【專利附圖】

      【附圖說明】
      [0059]為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
      [0060]圖1為本發(fā)明一種P2P系統(tǒng)數據獲取方法的方法流程圖之一;
      [0061]圖2為本發(fā)明一種打洞操作的信令圖;
      [0062]圖3為本發(fā)明一種P2P系統(tǒng)數據獲取方法的方法流程圖之二 ;
      [0063]圖4為本發(fā)明一種P2P系統(tǒng)數據獲取方法的方法流程圖之三;
      [0064]圖5為本發(fā)明一種P2P系統(tǒng)中數據獲取裝置的裝置結構圖之一;
      [0065]圖6為本發(fā)明一種P2P系統(tǒng)中數據獲取裝置的裝置結構圖之二 ;
      [0066]圖7為本發(fā)明一種P2P系統(tǒng)中數據獲取裝置的裝置結構圖之三。
      【具體實施方式】
      [0067]本發(fā)明實施例提供了一種P2P系統(tǒng)中數據獲取方法和裝置?,F如今,在網絡視頻行業(yè)競爭日益激烈的現狀下,各家視頻網站都試圖通過引入P2P技術節(jié)省帶寬費用,由于中國網絡視頻流量的巨大以及帶寬費用的高昂,優(yōu)化P2P技術,提高一個點的帶寬節(jié)約比,也能為大型視頻網站節(jié)約很大一筆開銷,這里所述的帶寬節(jié)約比是一種衡量帶寬利用率的標準,是總P2P下載數據量/總下載數據量的商,這個值越高越好。在傳統(tǒng)的P2P系統(tǒng)中,對每一個分段資源,用戶節(jié)點都要獲取一遍其它資源節(jié)點信息(對于用戶節(jié)點和資源節(jié)點需要說明的是,在P2P系統(tǒng)中,一個用戶節(jié)點在從其他用戶節(jié)點處下載數據資源的同時,也可以為另一部分用戶節(jié)點上傳數據,而在本發(fā)明中所指的用戶節(jié)點是指進行數據下載的用戶節(jié)點,所指的資源節(jié)點是指進行數據上傳的用戶節(jié)點),再與其它資源節(jié)點進行打洞操作,然后才能開始獲取數據。在這個過程完成前,P2P下載無P2P數據可收。然而,一般來說,擁有一個文件的其中一個分段文件的資源節(jié)點同樣也會有很大的幾率擁有該文件的其他的分段文件,故用戶節(jié)點保存在完成打洞操作后從資源節(jié)點處獲取一個分段文件時該資源節(jié)點的成功節(jié)點信息,當該用戶節(jié)點需要獲取該文件的另一個分段文件時,通過保存的成功節(jié)點信息可以直接連接到該資源節(jié)點開始下載對應的數據,從而所述用戶節(jié)點在等待服務器返回對應該另一個分段文件的資源節(jié)點信息以及向返回的資源節(jié)點進行打洞操作時依然有數據可以接收,大大提高了帶寬利用率。
      [0068]在完成對資源節(jié)點的打洞操作后,用戶節(jié)點就通過資源節(jié)點的允許下穿透NAT設備與該資源節(jié)點建立了數據連接,這種連接是一種互相確認的連接,也就是說用戶節(jié)點的IP地址和端口信息和資源節(jié)點的IP地址和端口信息均不能發(fā)生改變,只要沒有改變,在下一次所述用戶節(jié)點連接該資源節(jié)點時,就可以免去了打洞的操作,直接連接資源節(jié)點下載對應的分段資源,而且即使用戶節(jié)點或者資源節(jié)點的IP地址和端口信息發(fā)生了改變,那也可以立刻開始打洞操作,這樣也能有效縮短用戶節(jié)點沒有數據可以接收的時間,提高帶寬利用率。
      [0069]在該用戶節(jié)點從資源節(jié)點處獲取一個文件的分段文件時,同時也能獲取從該資源節(jié)點的下載速度信息(比如說下載速度和平均下載速度),在P2P系統(tǒng)的下載機制中,P2P系統(tǒng)會根據用戶節(jié)點從其他資源節(jié)點下載數據的下載速度信息來分配下載任務,下載數據的下載速度和平均下載速度越高的分配的下載任務越多。如果用戶節(jié)點不知道從一個資源節(jié)點下載數據的下載速度信息,則需要通過幾次數據的來往后才能確定出有效的下載速度信息,而在這幾次數據的來往之間的數據傳輸速度是很低的。如果用戶節(jié)點將下載速度信息作為成功節(jié)點信息的一部分進行保存,則在需要使用成功節(jié)點信息從所述資源節(jié)點處下載同一個文件的另一個分段文件,可以直接使用其中的下載速度信息來分配下載任務,節(jié)省了確定出有效下載速度信息的步驟,提高了帶寬利用率。
      [0070]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖對本發(fā)明實施例進行詳細描述。
      [0071]實施例一
      [0072]請參閱圖1,其為本發(fā)明一種P2P系統(tǒng)數據獲取方法的方法流程圖之一,該方法包括以下步驟:
      [0073]SlOl:用戶節(jié)點向服務器發(fā)送文件請求,所述文件請求包括目標文件的第一分段文件唯一對應的標識符;
      [0074]這里需要說明的是,與分段文件唯一對應的標識符可以是哈希值HASH,一般來說,在用戶節(jié)點向服務器發(fā)送文件請求之前,會獲得一個有關該目標文件的所有分段文件的標識符列表或集合,用戶節(jié)點以此得到需要獲取的分段文件對應的標識符,并添加到向服務器發(fā)送的文件請求中。[0075]S102:所述用戶節(jié)點接收所述服務器返回的通過所述標示符確定的至少一組擁有所述第一分段文件的資源節(jié)點的節(jié)點信息;
      [0076]首先需要說明的是,在P2P系統(tǒng)中,一個用戶節(jié)點在從其他用戶節(jié)點處下載數據資源的同時,也可以為另一部分用戶節(jié)點上傳數據,而在本發(fā)明中所指的用戶節(jié)點是指進行數據下載的用戶節(jié)點,所指的資源節(jié)點是指進行數據上傳的用戶節(jié)點。
      [0077]對于本步驟,服務器在接收到文件請求后,根據其中攜帶的標識符,查找到與本服務器相連的且擁有對應該標識符的分段文件的其他資源節(jié)點的節(jié)點信息,這里的其他資源節(jié)點一般是多個,也就是說返回給用戶節(jié)點的節(jié)點信息更像是該分段文件的種子信息,包含了可以提供該分段文件下載資源的資源節(jié)點的必要信息,比如說IP地址、端口信息、NAT類型和ID等。
      [0078]S103:所述用戶節(jié)點根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作;
      [0079]S104:所述用戶節(jié)點根據打洞成功后得到的所述資源節(jié)點的IP地址和端口信息開始從所述資源節(jié)點獲取第一分段文件;
      [0080]需要說明的是,雖然用戶節(jié)點通過服務器已經獲取到了一些資源節(jié)點的IP地址和端口信息,但是并不是每個資源節(jié)點都能成功連接開始下載的,而打洞成功后所獲取的資源節(jié)點的IP地址和端口信息可以理解為一種被確認有效的、驗證了的IP地址和端口信息,所以在本發(fā)明中被定義成功節(jié)點信息,或者說是一種被確認能連接的可能性很高的資源節(jié)點的節(jié)點信息。
      [0081]S105:所述用戶節(jié)點保存成功節(jié)點信息,所述成功節(jié)點信息包括所述用戶節(jié)點打洞操作成功的資源節(jié)點的IP地址和端口信息;
      [0082]可以將成功節(jié)點信息保存在緩存中或其他存儲位置,以便在下載與第一分段文件屬于同一個文件的第二分段文件時進行調用。
      [0083]S106:當所述用戶節(jié)點準備獲取所述目標文件的第二分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息從對應的所述資源節(jié)點獲取所述第二分段文件。
      [0084]一般來說,擁有一個文件的其中一個分段文件的資源節(jié)點同樣也會有很大的幾率擁有該文件的其他的分段文件,所以說,在用戶節(jié)點需要下載目標文件的第二分段文件時,使用已經成功連接下載第一分段文件的資源節(jié)點進行對第二分段文件的下載嘗試,是非常有必要的,成功率也會是非常高的。不過也不是說用戶節(jié)點在準備獲取第二分段文件是就只進行調用對應成功節(jié)點信息,從對應的資源節(jié)點進行獲取動作而已,用戶節(jié)點依然同時也會向服務器發(fā)送針對第二分段文件的文件請求。然而由于保存了成功節(jié)點信息,所以在用戶節(jié)點等待服務器返回針對第二分段文件的資源節(jié)點信息以及用戶節(jié)點根據節(jié)點信息進行打洞操作時,用戶節(jié)點可以通過調用成功節(jié)點信息開始嘗試獲取第二分段文件的操作,至少可以在等待服務器響應文件請求返回節(jié)點信息的時間段內有P2P數據可以接收。
      [0085]對于步驟S106來說,所述用戶節(jié)點根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息從對應的所述資源節(jié)點獲取所述第二分段文件時,可能會因為網絡環(huán)境的變化或者其他因素出現至少兩種不同的執(zhí)行情況,不過再對可能出現的至少兩種不同的執(zhí)行情況進行說明之前,需要先針對步驟S103的打洞操作進行展開說明,打洞操作是類似于用戶節(jié)點通過服務器與資源節(jié)點互相確認的一個過程,如圖2所示,其為本發(fā)明的一種打洞操作的信令圖,包括:
      [0086]S201是用戶節(jié)點根據從服務器獲取的節(jié)點信息向一組中的某個資源節(jié)點發(fā)送確認請求,所述確認請求用于和資源節(jié)點進行打洞前的確認,所述確認請求中包括了用戶節(jié)點的必要信息,比如說IP地址和端口信息,以及資源節(jié)點的地址。
      [0087]S202:所述確認請求會首先達到服務器,所述服務器根據其攜帶的資源節(jié)點的地址將所述確認請求轉發(fā)到對應的所述資源節(jié)點。
      [0088]S203:所述資源節(jié)點在接收到所述確認請求并同意打洞操作后,會保持所述用戶節(jié)點的IP地址和端口信息用于在打洞操作完成后進行連接時的確認環(huán)節(jié),然后將一個用于確認的確認包返回到上述用戶節(jié)點。
      [0089]S204:所述確認包會首先到達服務器,服務器根據確認包攜帶的用戶節(jié)點信息將所述確認包轉發(fā)到對應的所述用戶節(jié)點。
      [0090]以上步驟僅僅是普通的打洞操作的確認過程,有時會根據資源節(jié)點的NAT設備的類型不同增加O?4個消息包的來回才能最終確認。在所述用戶節(jié)點接收到確認包后,將開始進行打洞,穿透所述資源節(jié)點的NAT設備與所述資源節(jié)點進行直接連接。這種打洞操作在用戶節(jié)點試圖連接陌生資源節(jié)點時都需要執(zhí)行一次。
      [0091]從上述打洞操作的展開說明中可以確認的是,兩個節(jié)點之間能夠進行直接連接的必要條件是:一、完成了打洞操作并由此獲得了對方的必要信息比如說IP地址和端口信息;二、在進行直接連接前對方當前所使用的IP地址和端口信息與之前保存的IP地址和端口信息是一致的。這樣的話,就引出了信息一致和信息不一致的至少這兩種情況,以下將分別進行詳細的描述。
      [0092]對于信息一致的情況,在圖1所描述的技術方案的基礎上,如圖3所示,其為本發(fā)明一種P2P系統(tǒng)數據獲取方法的方法流程圖之二,包括:
      [0093]S300:所述用戶節(jié)點登錄服務器,以使得所述服務器獲取所述用戶節(jié)點的IP地址和端口信息;
      [0094]步驟S301和S302請參照圖1所描述的技術方案的步驟SlOl和S102的描述,這里不再贅述。
      [0095]S303:當所述用戶節(jié)點根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作時,所述資源節(jié)點從所述服務器獲取并保存所述用戶節(jié)點的IP地址和端口信息;
      [0096]步驟S304和S305請參照圖1所描述的技術方案的步驟S104和S105的描述,這里不再贅述。
      [0097]S306:當所述用戶節(jié)點準備獲取所述目標文件的第二分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息訪問所述資源節(jié)點,當所述用戶節(jié)點用于訪問的所述資源節(jié)點的IP地址和端口信息與所述資源節(jié)點當前使用的IP地址和端口信息相同,且所述用戶節(jié)點當前的IP地址和端口信息與所述資源節(jié)點所保存的所述用戶節(jié)點的IP地址和端口信息相同時,所述資源節(jié)點允許所述用戶節(jié)點獲取第二分段文件。
      [0098]這里需要說明的是,在完成對資源節(jié)點的打洞操作后,用戶節(jié)點就通過資源節(jié)點的允許下穿透NAT設備與該資源節(jié)點建立了數據連接,這種連接是一種互相確認的連接,也就是說用戶節(jié)點的IP地址和端口信息和資源節(jié)點的IP地址和端口信息均不能發(fā)生改變,只要沒有改變,理論上在下一次所述用戶節(jié)點連接該資源節(jié)點時,就可以免去了打洞的操作,直接連接所述資源節(jié)點下載對應的分段資源,而且一般情況下,擁有第一分段文件的資源節(jié)點理論上也是擁有第二分段文件的,故在網絡環(huán)境沒有變化的前提下,或者說所述用戶節(jié)點在從所述資源節(jié)點處獲取第二分段文件時,達到了步驟S306所描述情況時,就免去了打洞操作,使得所述用戶節(jié)點可以與所述資源節(jié)點直接建立連接,由此不僅在所述用戶節(jié)點等待服務器返回對應第二分段文件的文件請求的節(jié)點信息的時間段,而且甚至在所述用戶節(jié)點根據服務器返回的節(jié)點信息進行打洞操作的過程中,所述用戶節(jié)點一直都可以通過所述資源節(jié)點獲取對應第二分段文件的P2P數據,大大提高了帶寬利用率。
      [0099]對于信息不一致的情況,在圖1所描述的技術方案的基礎上,如圖4所示,其為本發(fā)明一種P2P系統(tǒng)數據獲取方法的方法流程圖之三,包括:
      [0100]S400:所述用戶節(jié)點登錄服務器,以使得所述服務器獲取所述用戶節(jié)點的IP地址和端口信息;
      [0101]步驟S401和S402請參照圖1所描述的技術方案的步驟SlOl和S102的描述,這里不再贅述。
      [0102]S403:當所述用戶節(jié)點根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作時,所述資源節(jié)點從所述服務器獲取并保存所述用戶節(jié)點的IP地址和端口信息;
      [0103]步驟S404和S3405請參照圖1所描述的技術方案的步驟S104和S105的描述,這里不再贅述。
      [0104]S406:當所述用戶節(jié)點準備獲取所述目標文件的第二分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息訪問所述資源節(jié)點,當所述用戶節(jié)點用于訪問的所述資源節(jié)點的IP地址和端口信息與所述資源節(jié)點當前使用的IP地址和端口信息不相同,或者所述用戶節(jié)點當前的IP地址和端口信息與所述資源節(jié)點所保存的所述用戶節(jié)點的IP地址和端口信息不相同時,所述用戶節(jié)點對所述資源節(jié)點重新進行打洞操作;
      [0105]這里需要說明的是,當用戶節(jié)點的網絡情況發(fā)生改變(比如說斷網后重新連接等情況)和/或者資源節(jié)點的網絡情況發(fā)生改變時,就會出現網絡情況發(fā)生改變的節(jié)點的IP地址和端口信息一般會被P2P系統(tǒng)重新分配或者設置,這種情況下,所述用戶節(jié)點只能重新對所述資源節(jié)點進行打洞操作,然后才能重新建立與所述資源節(jié)點的直接連接,但是即使是這樣,本發(fā)明的這種優(yōu)選的實施例中所述用戶節(jié)點無P2P數據接收的時間段也僅僅是重新進行打洞操作的時間段,依舊比現有技術中的等待服務器返回節(jié)點信息加上進行打洞操作的無P2P數據接收的時間段要短,也就是說依然提高了帶寬利用率。
      [0106]S407:所述用戶節(jié)點根據打洞成功后得到的所述資源節(jié)點的IP地址和端口信息開始從所述資源節(jié)點獲取第二分段文件;
      [0107]S408:所述用戶節(jié)點保存成功節(jié)點信息,所述成功節(jié)點信息包括所述用戶節(jié)點打洞操作成功的資源節(jié)點的IP地址和端口信息。
      [0108]也就是說,再一次保存成功節(jié)點信息,這樣,在獲取同一目標文件的另一段分段文件時,步驟S408所保存的成功節(jié)點信息同樣是被確認有效的、驗證了的資源節(jié)點的IP地址和端口信息。
      [0109]需要注意的是,在P2P系統(tǒng)的下載機制中,P2P系統(tǒng)會根據用戶節(jié)點從其他資源節(jié)點下載數據的下載速度信息來分配下載任務,下載數據的下載速度和平均下載速度越高的分配的下載任務越多。如果用戶節(jié)點不知道從一個資源節(jié)點下載數據的下載速度信息,則需要通過幾次數據的來往后才能確定出有效的下載速度信息,而在這幾次數據的來往之間的數據傳輸速度是很低的,對帶寬利用率是有較大影響的?;谶@種情況,本發(fā)明提供了一種優(yōu)選的實施方式,用戶節(jié)點將從所述資源節(jié)點獲取第一分段文件時的速度信息作為成功節(jié)點信息一部分進行保存,也就是說,所述成功節(jié)點信息還包括所述用戶節(jié)點從所述資源節(jié)點下載所述第一分段文件的速度信息;
      [0110]本發(fā)明對所述速度信息給出一種優(yōu)選的范圍,所述速度信息包括所述用戶節(jié)點從所述資源節(jié)點完成獲取所述第一分段文件時的下載速度以及平均速度。選擇下載完成第一分段文件時的下載速度作為所述速度信息中的下載速度是因為從下載完成一個文件的那一刻的下載速度首先是最新的下載速度數據,其次也最能反映所述用戶節(jié)點從所述資源節(jié)點獲取數據的能力,而且所述用戶節(jié)點下載完成一個文件的平均速度也是一種有效的參考數據,但是并不代表本發(fā)明就將所述速度信息限定為完成獲取所述第一分段文件時的下載速度以及平均速度,也可以是其他有效的速度參考數據,本發(fā)明對此不進行限定。以下是本發(fā)明的一種優(yōu)選的成功節(jié)點信息所攜帶的內容:
      [0111]
      【權利要求】
      1.一種P2P系統(tǒng)數據獲取方法,其特征在于,該方法包括: 用戶節(jié)點向服務器發(fā)送文件請求,所述文件請求包括目標文件的第一分段文件唯一對應的標識符; 所述用戶節(jié)點接收所述服務器返回的通過所述標示符確定的至少一組擁有所述第一分段文件的資源節(jié)點的節(jié)點信息; 所述用戶節(jié)點根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作; 所述用戶節(jié)點根據打洞成功后得到的所述資源節(jié)點的IP地址和端口信息開始從所述資源節(jié)點獲取第一分段文件; 所述用戶節(jié)點保存成功節(jié)點信息,所述成功節(jié)點信息包括所述用戶節(jié)點打洞操作成功的資源節(jié)點的IP地址和端口信息; 當所述用戶節(jié)點準備獲取所述目標文件的第二分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息從對應的所述資源節(jié)點獲取所述第二分段文件。
      2.根據權利要求1所述的方法,其特征在于,在所述用戶節(jié)點向服務器發(fā)送文件請求之前,還包括: 所述用戶節(jié)點登錄服務器,以使得所述服務器獲取所述用戶節(jié)點的IP地址和端口信息; 相應的,當所述用戶節(jié)點根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作時,所述資源節(jié)點從所述服務器獲取`并保存所述用戶節(jié)點的IP地址和端口信息; 當所述用戶節(jié)點準備獲取所述目標文件的第二分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息訪問所述資源節(jié)點,當所述用戶節(jié)點用于訪問的所述資源節(jié)點的IP地址和端口信息與所述資源節(jié)點當前使用的IP地址和端口信息相同,且所述用戶節(jié)點當前的IP地址和端口信息與所述資源節(jié)點所保存的所述用戶節(jié)點的IP地址和端口信息相同時,所述資源節(jié)點允許所述用戶節(jié)點獲取第二分段文件。
      3.根據權利要求1所述的方法,其特征在于,在所述用戶節(jié)點向服務器發(fā)送文件請求之前,還包括: 所述用戶節(jié)點登錄服務器,以使得所述服務器獲取所述用戶節(jié)點的IP地址和端口信息; 相應的,當所述用戶節(jié)點根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作時,所述資源節(jié)點從所述服務器獲取并保存所述用戶節(jié)點的IP地址和端口信息; 當所述用戶節(jié)點準備獲取所述目標文件的第二分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息訪問所述資源節(jié)點,當所述用戶節(jié)點用于訪問的所述資源節(jié)點的IP地址和端口信息與所述資源節(jié)點當前使用的IP地址和端口信息不相同,或者所述用戶節(jié)點當前的IP地址和端口信息與所述資源節(jié)點所保存的所述用戶節(jié)點的IP地址和端口信息不相同時,所述用戶節(jié)點對所述資源節(jié)點重新進行打洞操作; 所述用戶節(jié)點根據打洞成功后得到的所述資源節(jié)點的IP地址和端口信息開始從所述資源節(jié)點獲取第二分段文件; 所述用戶節(jié)點保存成功節(jié)點信息,所述成功節(jié)點信息包括所述用戶節(jié)點打洞操作成功的資源節(jié)點的IP地址和端口信息。
      4.根據權利要求1所述的方法,其特征在于, 所述成功節(jié)點信息還包括所述用戶節(jié)點從所述資源節(jié)點下載所述第一分段文件的速度信息; 相應的,當所述用戶節(jié)點準備獲取所述目標文件的第二分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息中的所述速度信息,以相應的下載速度從對應的資源節(jié)點獲取第二分段文件。
      5.根據權利要求4所述的方法,其特征在于, 所述速度信息包括所述用戶節(jié)點從所述資源節(jié)點完成獲取所述第一分段文件時的下載速度以及平均速度。
      6.根據權利要求1至5任意一項所述的方法,其特征在于, 按照所述目標文件依次切分后得到的分段文件順序,所述第二分段文件為所述第一分段文件的下一個分段文件。
      7.根據權利要求6所述的方法,其特征在于,所述當所述用戶節(jié)點準備獲取所述目標文件的第二分段文件時具體為: 當所述用戶節(jié)點完成獲取第一分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息向對應的所述資源節(jié)點獲取所述第二分段文件。
      8.—種P2P系統(tǒng)數據獲取裝置,其特征在于,該裝置包括: 發(fā)送單元,用于向服務器發(fā)送文件請求,所述文件請求包括目標文件的第一分段文件唯一對應的標識符; 節(jié)點信息接收單元,用于接收所述服務器返回的通過所述標示符確定的至少一組擁有所述第一分段文件的資源節(jié)點的節(jié)點信息; 打洞操作單元,用于根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作; 第一獲取單元,用于根據打洞成功后得到的所述資源節(jié)點的IP地址和端口信息開始從所述資源節(jié)點獲取第一分段文件; 保存單元,用于保存成功節(jié)點信息,所述成功節(jié)點信息包括所述打洞操作單元打洞操作成功的資源節(jié)點的IP地址和端口信息; 第二獲取單元,用于當準備獲取所述目標文件的第二分段文件時,根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息從對應的所述資源節(jié)點獲取所述第二分段文件。
      9.根據權利要求8所述的裝置,其特征在于,還包括: 登錄單元,用于在觸發(fā)所述發(fā)送單元之前登錄服務器,以使得所述服務器獲取所述用戶節(jié)點的IP地址和端口信息; 相應的,所述打洞操作單元,還用于根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作時,使得所述資源節(jié)點從所述服務器獲取并保存所述用戶節(jié)點的IP地址和端口信息; 所述第二獲取單元,還用于當準備獲取所述目標文件的第二分段文件時,根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息訪問所述資源節(jié)點,當用于訪問的所述資源節(jié)點的IP地址和端口信息與所述資源節(jié)點當前使用的IP地址和端口信息相同,且當前的IP地址和端口信息與所述資源節(jié)點所保存的所述用戶節(jié)點的IP地址和端口信息相同時,使得所述資源節(jié)點允許獲取第二分段文件。
      10.根據權利要求8所述的裝置,其特征在于,還包括: 登錄單元,用于在觸發(fā)所述發(fā)送單元之前登錄服務器,以使得所述服務器獲取所述用戶節(jié)點的IP地址和端口信息; 相應的,所述打洞操作單元,還用于根據所述節(jié)點信息向一組所述資源節(jié)點進行打洞操作時,使得所述資源節(jié)點從所述服務器獲取并保存所述用戶節(jié)點的IP地址和端口信息; 所述第二獲取單元,還包括打洞操作子單元、獲取子單元和保存子單元; 所述打洞操作子單元,用于當準備獲取所述目標文件的第二分段文件時,根據保存的所述成功節(jié)點信息中的資源節(jié)點的IP地址和端口信息訪問所述資源節(jié)點,當用于訪問的所述資源節(jié)點的IP地址和端口信息與所述資源節(jié)點當前使用的IP地址和端口信息不相同,或者當前的IP地址和端口信息與所述資源節(jié)點所保存的所述用戶節(jié)點的IP地址和端口信息不相同時,對所述資源節(jié)點重新進行打洞操作; 所述獲取子單元,用于根據打洞成功后得到的所述資源節(jié)點的IP地址和端口信息開始從所述資源節(jié)點獲取第二分段文件; 所述保存子單元,用于保存成功節(jié)點信息,所述成功節(jié)點信息包括所述打洞操作子單元打洞操作成功的資源節(jié)點的IP地址和端口信息。
      11.根據權利要求8所述的裝置,其特征在于, 所述保存單元所保存的所述成功節(jié)點信息還包括所述用戶節(jié)點從所述資源節(jié)點下載所述第一分段文件的速度信息; 相應的,所述第二獲取單元,還用于當準備獲取所述目標文件的第二分段文件時,根據保存的所述成功節(jié)點信息中的所述速度信息,以相應的下載速度從對應的資源節(jié)點獲取第二分段文件。
      12.根據權利要求8至11任意一項所述的裝置,其特征在于, 按照所述目標文件依次切分后得到的分段文件順序,所述第二分段文件為所述第一分段文件的下一個分段文件。
      13.根據權利 要求12所述的裝置,其特征在于, 所述第二獲取單元,還用于當所述用戶節(jié)點完成獲取第一分段文件時,所述用戶節(jié)點根據保存的所述成功節(jié)點信息向對應的所述資源節(jié)點獲取所述第二分段文件。
      【文檔編號】H04L29/08GK103731511SQ201410037531
      【公開日】2014年4月16日 申請日期:2014年1月26日 優(yōu)先權日:2014年1月26日
      【發(fā)明者】方君君 申請人:飛狐信息技術(天津)有限公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1