国产精品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>

      數(shù)據(jù)中轉(zhuǎn)方法、系統(tǒng)、客戶端及服務(wù)器的制作方法

      文檔序號:7694545閱讀:273來源:國知局
      專利名稱:數(shù)據(jù)中轉(zhuǎn)方法、系統(tǒng)、客戶端及服務(wù)器的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及數(shù)據(jù)中轉(zhuǎn)方法、系統(tǒng)、客戶端及 服務(wù)器。
      背景技術(shù)
      P2P是一種分布式網(wǎng)絡(luò),網(wǎng)絡(luò)的參與者共享他們所擁有的 一部分硬件資 源如處理能力、存儲能力、網(wǎng)絡(luò)連接能力、打印機等,這些共享資源需要由 網(wǎng)絡(luò)提供服務(wù)和內(nèi)容,能被其它對等節(jié)點(Peer)直接訪問而無需經(jīng)過中間 實體。在此網(wǎng)絡(luò)中的參與者既是資源,如服務(wù)和內(nèi)容的提供者(Server), 又是資源,如服務(wù)和內(nèi)容的獲取者(Client),數(shù)據(jù)傳輸通過節(jié)點進(jìn)行,不 需要很多的中央服務(wù)器。目前的互聯(lián)網(wǎng)遵循英特網(wǎng)協(xié)議(IP, Internet Protocol),每個節(jié)點分配 一個IP地址,節(jié)點之間通過訪問對方的IP地址進(jìn)行數(shù)據(jù)傳輸。IP地址分為 7>網(wǎng);也iit和矛A網(wǎng)i也i止兩大類。由于公網(wǎng)IP地址是有限且唯一的,且出于安全性的考慮,很多的用戶 會使用私有網(wǎng)絡(luò)(簡稱私網(wǎng))的IP地址或者通過防火墻與互聯(lián)網(wǎng)連接。在 使用私網(wǎng)IP地址時需要用網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT, Network Address Translation ) 技術(shù)來實現(xiàn),該才支術(shù)允許一個整體才幾構(gòu)以一個7>用網(wǎng)絡(luò)IP( Internet Protocol) 地址出現(xiàn)在互耳關(guān)網(wǎng)上。顧名思義,它是一種把內(nèi)部私網(wǎng)IP地址翻i,成^^網(wǎng) IP地址的技術(shù)。而防火墻和NAT有一個共同的特點,私網(wǎng)中的節(jié)點可以向 公網(wǎng)中的節(jié)點發(fā)送數(shù)據(jù),而公網(wǎng)中的數(shù)據(jù)包無法直接進(jìn)入私網(wǎng)內(nèi)或者防火墻 內(nèi)的節(jié)點,即只能發(fā)送數(shù)據(jù)不能接收數(shù)據(jù)。這雖然保證了私網(wǎng)內(nèi)節(jié)點的安全 性和私密性,但是也很大程度上阻礙了 P2P節(jié)點之間的互聯(lián)互通。為了解決上述節(jié)點的互聯(lián)互通的問題,需要使用到用戶數(shù)據(jù)報協(xié)議簡單穿越網(wǎng)絡(luò)地址轉(zhuǎn)換器(STUN, Simple Traversal of UDP Through NATs )技 術(shù),在STUN協(xié)議中,將NAT可分為完全圓錐形(Full Cone) 、 IP限制圓 錐形(IP Restricted Cone)、端口限制圓錐形(Port Restricted Cone )和對稱 (Symmetric) 4種類型。以上4種NAT中,前3種NAT統(tǒng)稱為圓錐形NAT ( Cone NAT ),由 于圓錐形NAT會為該節(jié)點在NAT上映射一個固定的數(shù)據(jù)回傳端口,因此, 只要知道了 NAT上的數(shù)據(jù)回傳端口和NAT類型,就可以穿越NAT直接將 數(shù)據(jù)包發(fā)送給私網(wǎng)內(nèi)的節(jié)點了 ,而對稱NAT則由于回傳端口會根據(jù)不同的 連接目標(biāo)而變化,雖然可以利用端口猜測等方法找到數(shù)據(jù)回傳端口,但是成 功概率極低,因此一般無法與采用該類型的NAT的私網(wǎng)內(nèi)的節(jié)點直接通信。另外,簡單防火墻一般不進(jìn)行IP地址和端口的轉(zhuǎn)換,只是會阻止任何 未知的向內(nèi)的數(shù)據(jù)包,因此,對于筒單防火墻來說,可以參考與圓錐形NAT 同樣的方法與簡單防火墻后的節(jié)點進(jìn)行直接通信。私網(wǎng)內(nèi)節(jié)點或者防火墻后的節(jié)點可以通過公網(wǎng)上的STUN服務(wù)器來檢 測自己的N AT類型或者是否為簡單防火墻,并得到回傳數(shù)據(jù)的端口信息等, 利用這些信息,就可以完成圓錐形NAT或簡單防火墻的穿越,如公網(wǎng)節(jié)點 一樣收發(fā)數(shù)據(jù)了。在P2P系統(tǒng)中,不僅要解決私網(wǎng)內(nèi)節(jié)點的數(shù)據(jù)傳輸問題,也要解決數(shù)據(jù) 傳輸速度的問題, 一般為了優(yōu)化P2P系統(tǒng)的數(shù)據(jù)傳輸,P2P客戶端會分析節(jié) 點的硬件資源,讓有較大帶寬的高速計算機擔(dān)任超級節(jié)點,超級節(jié)點可以利 用其本身的高帶寬優(yōu)勢為其它節(jié)點中轉(zhuǎn)數(shù)據(jù),提高P2P系統(tǒng)的數(shù)據(jù)傳輸性 能。成為超級節(jié)點的一個必要條件^^其它節(jié)點能夠給超級節(jié)點發(fā)送數(shù)據(jù)包, 因此現(xiàn)有的P2P系統(tǒng)一般會選擇具有公網(wǎng)IP并且沒有使用防火墻的節(jié)點作 為超級節(jié)點。圖1為現(xiàn)有P2P系統(tǒng)的結(jié)構(gòu)圖,如圖l所示,該系統(tǒng)包括P2P服務(wù)器、 節(jié)點1、節(jié)點2和超級節(jié)點群,之間通過互聯(lián)網(wǎng)相連。P2P服務(wù)器用于對系統(tǒng)內(nèi)的節(jié)點的數(shù)據(jù)傳輸進(jìn)行控制,超級節(jié)點群中包 括多個超級節(jié)點,任意兩節(jié)點之間可以通過直連進(jìn)行數(shù)據(jù)傳輸,也可以從超 級節(jié)點群中選擇一個或多個超級節(jié)點作為節(jié)點之間的數(shù)據(jù)中轉(zhuǎn)節(jié)點,進(jìn)行數(shù) 據(jù)中轉(zhuǎn),當(dāng)然,如果沒有超級節(jié)點可用,還可以通過專門設(shè)立的中轉(zhuǎn)服務(wù)器 進(jìn)行數(shù)據(jù)中轉(zhuǎn)。圖2為現(xiàn)有P2P系統(tǒng)利用超級節(jié)點中轉(zhuǎn)數(shù)據(jù)的流程圖,當(dāng)節(jié)點l通過超 級節(jié)點中轉(zhuǎn)數(shù)據(jù)到節(jié)點2之前,首先要經(jīng)過登錄過程,節(jié)點l、節(jié)點2和超 級節(jié)點需要登錄到P2P服務(wù)器上,并報告自身網(wǎng)絡(luò)類型,使P2P服務(wù)器可 以掌握所有的P2P資源和連接情況。這里的網(wǎng)絡(luò)類型是指該節(jié)點所處的網(wǎng)絡(luò) 狀態(tài),如公網(wǎng)、簡單防火墻、完全圓錐形NAT、 IP限制圓錐形NAT、端口 限制圓錐形NAT或?qū)ΨQNAT等等,節(jié)點登錄P2P服務(wù)器并沒有順序要求, 圖中節(jié)點的登錄順序僅為示意,實際上節(jié)點登錄P2P服務(wù)器的過程是隨機發(fā) 生的,任何情況都有可能。當(dāng)然,現(xiàn)有情況下,只有那些擁有公網(wǎng)IP地址 的節(jié)點可以作為超級節(jié)點登錄。在登錄過程之后,登錄在P2P服務(wù)器上的節(jié) 點就可以使用登錄在P2P服務(wù)器上的超級節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn)了 ,具體使用超 級節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn)的流程包括如下步驟步驟201,節(jié)點1向P2P服務(wù)器發(fā)送請求超級節(jié)點的消息,請求進(jìn)行數(shù) 據(jù)中轉(zhuǎn)。這里請求進(jìn)行數(shù)據(jù)中轉(zhuǎn)的節(jié)點l可以是一個普通的節(jié)點,也可以是 一個超級節(jié)點,請求數(shù)據(jù)中轉(zhuǎn)的節(jié)點并不要求一定是普通的節(jié)點。步驟202, P2P服務(wù)器將從超級節(jié)點群中選擇的超級節(jié)點的IP和端口信 息發(fā)送給節(jié)點1。 P2P服務(wù)器接到節(jié)點1的請求后將從所有登錄的超級節(jié)點 中選擇一個或多個作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,并將它們的IP地址和端口等信息通 知節(jié)點1,使節(jié)點1可以直接與超級節(jié)點進(jìn)行通信。步驟203,節(jié)點1向超級節(jié)點發(fā)送預(yù)定超級節(jié)點消息,通知超級節(jié)點需 要它為節(jié)點1和節(jié)點2之間的數(shù)據(jù)傳輸進(jìn)行數(shù)據(jù)中轉(zhuǎn)。步驟204,超級節(jié)點返回預(yù)定超級節(jié)點響應(yīng),確認(rèn)接受預(yù)定。 一般情況 下,超級節(jié)點被規(guī)定為只能為一組節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn),如節(jié)點1和節(jié)點2,這主要是出于對節(jié)點的硬件性能的考慮,如果超級節(jié)點返回了響應(yīng),那么它 將不再接受別的節(jié)點的預(yù)定請求,當(dāng)然,也不排除一個超級節(jié)點可以為多組 節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn)的情況。步驟205,節(jié)點1向P2P服務(wù)器發(fā)送通知,通知節(jié)點2連接超級節(jié)點。 這個通知中包含超級節(jié)點的IP地址和端口等信息,使得節(jié)點2可以知道如 何連接超級節(jié)點。步驟206, P2P服務(wù)器通知節(jié)點2連接超級節(jié)點。 步驟207,節(jié)點2向超級節(jié)點發(fā)送請求消息,請求使用超級節(jié)點。 步驟208,超級節(jié)點返回響應(yīng)消息,確認(rèn)可以使用超級節(jié)點。 步驟209,節(jié)點2通知超級節(jié)點自己已經(jīng)準(zhǔn)備好,可以進(jìn)行數(shù)據(jù)中轉(zhuǎn)。 步驟210,超級節(jié)點通知P2P服務(wù)器節(jié)點2已經(jīng)準(zhǔn)備好,可以進(jìn)行數(shù)據(jù) 中轉(zhuǎn)。步驟211, P2P服務(wù)器通知節(jié)點1,節(jié)點2已經(jīng)準(zhǔn)備好,可以進(jìn)行數(shù)據(jù) 中轉(zhuǎn)。步驟212,節(jié)點1請求超級節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)給節(jié)點2。 步驟213,超級節(jié)點將節(jié)點l需要轉(zhuǎn)發(fā)的數(shù)據(jù)向節(jié)點2轉(zhuǎn)發(fā)。 步驟214,節(jié)點2請求超級節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)給節(jié)點1。 步驟215,超級節(jié)點將節(jié)點2需要轉(zhuǎn)發(fā)的數(shù)據(jù)向節(jié)點1轉(zhuǎn)發(fā)。 步驟203~215是數(shù)據(jù)中轉(zhuǎn)執(zhí)行過程,該過程的前提是節(jié)點1和節(jié)點2 可以連接到超級節(jié)點,因此現(xiàn)有技術(shù)中,只有那些具有公網(wǎng)IP并且沒有使 用防火墻的節(jié)點可以作為超級節(jié)點登錄到P2P服務(wù)器,而使用NAT方式或 通過防火墻接入互聯(lián)網(wǎng)的節(jié)點,即使擁有很強大的硬件資源和傳輸帶寬,但 是由于NAT或防火墻的存在,使得該節(jié)點無法被其它的節(jié)點直接的訪問到, 因此無法作為超級節(jié)點登錄。隨著互聯(lián)網(wǎng)的發(fā)展,P2P用戶的快速增加,擁 有公網(wǎng)IP地址的節(jié)點所占的比例會越來越小,大量的私網(wǎng)內(nèi)的節(jié)點需要超 級節(jié)點進(jìn)行中轉(zhuǎn),因此超級節(jié)點的中轉(zhuǎn)負(fù)擔(dān)將越來越大,有限的中轉(zhuǎn)資源被 越來越多的用戶分享,造成超級節(jié)點不夠用,節(jié)點之間無法中轉(zhuǎn)數(shù)據(jù)或中轉(zhuǎn)數(shù)據(jù)的速度降低的情況,降低了 P2P系統(tǒng)的數(shù)據(jù)傳輸性能,另外過大的中轉(zhuǎn)負(fù)擔(dān)也會影響超級節(jié)點的正常運行,影響超級節(jié)點的用戶對P2P數(shù)據(jù)共享的 使用體驗。發(fā)明內(nèi)容本發(fā)明實施例提供 一 種數(shù)據(jù)中轉(zhuǎn)方法,可以使更多的節(jié)點用于數(shù)據(jù)中 轉(zhuǎn),從而提高P2P系統(tǒng)的傳輸性能。本發(fā)明實施例提供一種數(shù)據(jù)中轉(zhuǎn)系統(tǒng),可以使更多的節(jié)點用于數(shù)據(jù)中 轉(zhuǎn),從而提高P2P系統(tǒng)的傳輸性能。本發(fā)明實施例提供一種P2P服務(wù)器,可以使更多的節(jié)點用于數(shù)據(jù)中轉(zhuǎn), 從而提高P2P系統(tǒng)的傳輸性能。本發(fā)明實施例提供一種P2P客戶端,可以使更多的節(jié)點用于數(shù)據(jù)中轉(zhuǎn), 從而提高P2P系統(tǒng)的傳輸性能。為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實現(xiàn)的一種數(shù)據(jù)中轉(zhuǎn)方法,該方法包括點對點P2P客戶端判斷節(jié)點自身的網(wǎng)絡(luò)類型,若符合預(yù)設(shè)的增補超級節(jié)點 的確定條件,則作為增補超級節(jié)點登錄P2P服務(wù)器;P2P服務(wù)器接收節(jié)點的數(shù)據(jù)中轉(zhuǎn)請求,根據(jù)預(yù)設(shè)的規(guī)則,從超級節(jié)點和增 補超級節(jié)點中選擇出數(shù)據(jù)中轉(zhuǎn)節(jié)點;若選擇增補超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,則通過增補超級節(jié)點為請求中 轉(zhuǎn)數(shù)據(jù)的節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn)。一種數(shù)據(jù)中轉(zhuǎn)系統(tǒng),該系統(tǒng)包括P2P客戶端,用于判斷節(jié)點自身的網(wǎng)絡(luò)類型,若符合預(yù)設(shè)的增補超級節(jié)點 的確定條件,則作為增補超級節(jié)點登錄P2P服務(wù)器;當(dāng)所述P2P客戶端作為增 補超級節(jié)點登錄P2P服務(wù)器,且被所述P2P服務(wù)器選為數(shù)據(jù)中轉(zhuǎn)節(jié)點時,為請 求中轉(zhuǎn)數(shù)據(jù)的節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn);P2P服務(wù)器,用于接受所述P2P客戶端作為增補超級節(jié)點登錄,并接收節(jié)點的數(shù)據(jù)中轉(zhuǎn)請求,根據(jù)預(yù)設(shè)的規(guī)則,從超級節(jié)點和增補超級節(jié)點中選擇 出數(shù)據(jù)中轉(zhuǎn)節(jié)點。一種P2P服務(wù)器,該P2P服務(wù)器包括 節(jié)點登錄模塊,用于接受P2P客戶端作為增補超級節(jié)點登錄; 中轉(zhuǎn)節(jié)點選擇模塊,用于接收節(jié)點的數(shù)據(jù)中轉(zhuǎn)請求,根據(jù)預(yù)設(shè)的規(guī)則, 從超級節(jié)點和增補超級節(jié)點中選擇出數(shù)據(jù)中轉(zhuǎn)節(jié)點。 一種P2P客戶端,該客戶端包括網(wǎng)絡(luò)類型判斷模塊,用于判斷P2P客戶端所處節(jié)點的網(wǎng)絡(luò)類型; 登錄模塊,用于在所述網(wǎng)絡(luò)類型判斷模塊判斷所述節(jié)點的網(wǎng)絡(luò)類型符合預(yù)設(shè)的增補超級節(jié)點的確定條件時,將所述節(jié)點作為增補超級節(jié)點登錄P2P服務(wù)器。由上述的技術(shù)方案可見,本發(fā)明的這種數(shù)據(jù)中轉(zhuǎn)方法、系統(tǒng)、P2P客戶 端及P2P服務(wù)器,通過將符合預(yù)設(shè)的增補超級節(jié)點的確定條件的節(jié)點,作為 增補超級節(jié)點登錄P2P服務(wù)器,并在P2P服務(wù)器接收到節(jié)點的數(shù)據(jù)中轉(zhuǎn)請 求時,根據(jù)預(yù)設(shè)的規(guī)則,從超級節(jié)點和增補超級節(jié)點中選擇出數(shù)據(jù)中轉(zhuǎn)節(jié)點; 并在選擇增補超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn)節(jié)點時,通過增補超級節(jié)點為請求中轉(zhuǎn) 數(shù)據(jù)的節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn),因此擴(kuò)展了可用于數(shù)據(jù)中轉(zhuǎn)的節(jié)點的選擇范圍, 從而提高了 P2P系統(tǒng)的傳輸性能。


      圖l為現(xiàn)有P2P系統(tǒng)的結(jié)構(gòu)圖;圖2為現(xiàn)有P2P系統(tǒng)利用超級節(jié)點中轉(zhuǎn)數(shù)據(jù)的流程圖; 圖3為本發(fā)明實施例的數(shù)據(jù)中轉(zhuǎn)方法流程圖;圖4為本發(fā)明實施例的數(shù)據(jù)中轉(zhuǎn)系統(tǒng)使用增補超級節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn) 的具體流程圖;圖5為本發(fā)明實施例的數(shù)據(jù)中轉(zhuǎn)系統(tǒng)結(jié)構(gòu)圖; 圖6為本發(fā)明實施例的P2P客戶端結(jié)構(gòu)圖。
      具體實施方式
      為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉 實施例,對本發(fā)明進(jìn)一步詳細(xì)說明。本發(fā)明實施例主要是利用STUN技術(shù),使需要數(shù)據(jù)中轉(zhuǎn)的節(jié)點可以向一 部分沒有公網(wǎng)IP的節(jié)點發(fā)送數(shù)據(jù)包,從而使這部分沒有公網(wǎng)IP的節(jié)點可以 作為增補超級節(jié)點用于數(shù)據(jù)中轉(zhuǎn),在超級節(jié)點不夠的情況下,可以使用增補 超級節(jié)點實現(xiàn)與超級節(jié)點相同的數(shù)據(jù)中轉(zhuǎn)功能,擴(kuò)展了可用于數(shù)據(jù)中轉(zhuǎn)的節(jié) 點的選擇范圍,從而提高P2P系統(tǒng)的傳輸性能。圖3為本發(fā)明實施例的數(shù)據(jù)中轉(zhuǎn)方法流程圖,如圖3所示,該流程包括步驟301, P2P客戶端判斷節(jié)點自身的網(wǎng)絡(luò)類型,若符合預(yù)設(shè)的增補超 級節(jié)點的確定條件,則作為增補超級節(jié)點登錄P2P服務(wù)器。這里的增補超級節(jié)點是指非公網(wǎng)IP的超級節(jié)點但是也可以作為超級節(jié) 點使用的節(jié)點,根據(jù)STUN協(xié)議的規(guī)定,除公網(wǎng)以外,理論上,網(wǎng)絡(luò)類型為 完全圓錐形NAT、 IP限制圓錐形NAT、端口限制圓錐形NAT或者筒單防 火墻的節(jié)點都是可以發(fā)送UDP數(shù)據(jù)包的,因此只要是以上所列的網(wǎng)絡(luò)類型, 都可以作為超級節(jié)點使用,也就是說,增補超級節(jié)的確定點條件可以為網(wǎng) 絡(luò)類型為完全圓錐形NAT、 IP限制圓錐形NAT、端口限制圓錐形NAT或 者簡單防火墻中任意一種網(wǎng)絡(luò)類型。當(dāng)然,跟據(jù)實際的需要,也可以只允許 某一個或某幾個網(wǎng)絡(luò)類型的節(jié)點作為增補超級節(jié)點,比如只允許完全圓錐形 NAT的節(jié)點作為增補超級節(jié)點,或只允許完全圓錐形NAT和端口限制圓錐 形NAT的節(jié)點作為增補超級節(jié)點等等。另外,P2P客戶端判斷節(jié)點自身的網(wǎng)絡(luò)類型可以通過與公網(wǎng)上的STUN 服務(wù)器交換數(shù)據(jù)包進(jìn)行測試,具體測試方法不是本發(fā)明的討論內(nèi)容,這里就 不詳述了。步驟302, P2P服務(wù)器接收節(jié)點的數(shù)據(jù)中轉(zhuǎn)請求,根據(jù)預(yù)設(shè)的規(guī)則,從 超級節(jié)點和增補超級節(jié)點中選擇出數(shù)據(jù)中轉(zhuǎn)節(jié)點。預(yù)設(shè)的規(guī)則可以是將有公網(wǎng)IP的超級節(jié)點作為優(yōu)先的選擇對象,判斷 是否有超級節(jié)點可以作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,若沒有超級節(jié)點可以作為數(shù)據(jù)中轉(zhuǎn) 節(jié)點,則選擇增補超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn)節(jié)點。當(dāng)然如果增補超級節(jié)點的帶 寬、硬件性能等其他指標(biāo)很好,也可以在有超級節(jié)點的情況下直接選擇增補 超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,具體規(guī)則可以根據(jù)實際需要設(shè)定。步驟303,若選擇增補超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,則通過增補超級節(jié)點為請求中轉(zhuǎn)數(shù)據(jù)的節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn)。使用增補超級節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn)的過程與普通的超級節(jié)點是相似的,只不過,在進(jìn)行具體數(shù)據(jù)中轉(zhuǎn)前,由于增補超級節(jié)點受到NAT或簡單防火墻的阻隔, 不能直接將數(shù)據(jù)包發(fā)送給增補超級節(jié)點,因此增補超級節(jié)點要首先向需要數(shù)據(jù) 中轉(zhuǎn)的兩個節(jié)點發(fā)送UDP數(shù)據(jù)包,從而預(yù)先建立與所述兩個節(jié)點之間的數(shù)據(jù)回 傳通道,而后,請求數(shù)據(jù)中轉(zhuǎn)的兩個節(jié)點通過與增補超級節(jié)點之間建立的數(shù)據(jù) 回傳通道將需要中轉(zhuǎn)的數(shù)據(jù)發(fā)送給增補超級節(jié)點,這一發(fā)送過程同時也建立了 數(shù)據(jù)回傳的通道,增補超級節(jié)點將兩個節(jié)點發(fā)送的需要中轉(zhuǎn)的數(shù)據(jù)分別向?qū)Ψ?進(jìn)行轉(zhuǎn)發(fā)。下面舉個具體的例子,圖4為本發(fā)明實施例的數(shù)據(jù)中轉(zhuǎn)系統(tǒng)使用增補超級 節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn)的具體流程圖,如圖4所示,在數(shù)據(jù)中轉(zhuǎn)之前,節(jié)點1、節(jié) 點2和增補超級節(jié)點需要登錄P2P服務(wù)器,當(dāng)然,各節(jié)點登錄P2P服務(wù)器的先 后順序并不是一定的,圖中順序僅為示意。節(jié)點1使用增補超級節(jié)點進(jìn)行中轉(zhuǎn)的具體流程包括 步驟401,節(jié)點1向P2P服務(wù)器請求與節(jié)點2進(jìn)行數(shù)據(jù)中轉(zhuǎn)。 步驟402, P2P服務(wù)器選擇一個增補超級節(jié)點為數(shù)據(jù)中轉(zhuǎn)節(jié)點,并向增補超 級節(jié)點發(fā)送節(jié)點1和節(jié)點2的連接信息,這里的連接信息包括節(jié)點1和節(jié)點2 的IP地址和端口信息等。步驟403,增補超級節(jié)點收到通知后,根據(jù)節(jié)點1和節(jié)點2的IP地址和端 口信息,分別向節(jié)點1和節(jié)點2發(fā)送一個UDP凄史據(jù)包,此時由于NAT或者防 火墻阻隔,節(jié)點1和節(jié)點2將收不到這個UDP數(shù)據(jù)包,但是通過這個發(fā)送過程,增補超級節(jié)點在自己的NAT或者防火墻上創(chuàng)建了二個合法的會話,即建立了與 節(jié)點1和節(jié)點2的lt據(jù)回傳通道,以后來自節(jié)點1和節(jié)點2的it據(jù)包就可以^皮 增補超級節(jié)點收到了。當(dāng)然,圖中是先向節(jié)點2發(fā)送,后向節(jié)點l發(fā)送,但實 際上可以同時發(fā)送,也可以先發(fā)給節(jié)點l后發(fā)給節(jié)點2。發(fā)送UDP數(shù)據(jù)包可以 是一個也可以是多個,可以根據(jù)實際需要而定。步驟404,增補超級節(jié)點通知P2P服務(wù)器已經(jīng)作好中轉(zhuǎn)準(zhǔn)備,可以進(jìn)行數(shù) 據(jù)中轉(zhuǎn)。步驟405, P2P服務(wù)器將增補超級節(jié)點連接信息發(fā)送給節(jié)點1。這里連接信 息包括超級節(jié)點的IP地址和端口信息等。步驟406~418是節(jié)點1與節(jié)點2通過增補超級節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn)的具體執(zhí) 行過程,該過程與采用超級節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn)的過程相同,這里不再贅述。以上實施例中,節(jié)點的IP地址和端口在NAT存在時是指NAT上映射的IP 地址和端口 ,不是節(jié)點實際的IP地址和端口 。以上介紹了本發(fā)明實施例的數(shù)據(jù)中轉(zhuǎn)方法,下面將具體介紹本發(fā)明實施例 的數(shù)據(jù)中轉(zhuǎn)系統(tǒng),圖5為本發(fā)明實施例的數(shù)據(jù)中轉(zhuǎn)系統(tǒng)結(jié)構(gòu)圖,其特征在于, 該系統(tǒng)包括P2P客戶端501和P2P服務(wù)器502。P2P客戶端501用于判斷節(jié)點自身的網(wǎng)絡(luò)類型,若符合預(yù)設(shè)的增補超級節(jié) 點的確定條件,則作為增補超級節(jié)點登錄P2P服務(wù)器502;當(dāng)作為增補超級節(jié) 點登錄P2P服務(wù)器502,且被P2P服務(wù)器502選為數(shù)據(jù)中轉(zhuǎn)節(jié)點時,為請求中 轉(zhuǎn)數(shù)據(jù)的節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn)。P2P服務(wù)器502用于接受P2P客戶端501作為增補超級節(jié)點登錄,并接收 節(jié)點的數(shù)據(jù)中轉(zhuǎn)請求,根據(jù)預(yù)設(shè)的規(guī)則,從超級節(jié)點和增補超級節(jié)點中選擇出 數(shù)據(jù)中轉(zhuǎn)節(jié)點;其中P2P服務(wù)器502判斷是否有普通超級節(jié)點可以作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,若 沒有普通超級節(jié)點可以作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,則選擇增補超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn) 節(jié)點。較佳地,當(dāng)P2P客戶端501作為增補超級節(jié)點被所述P2P服務(wù)器502選為數(shù)據(jù)中轉(zhuǎn)節(jié)點時,用于向需要數(shù)據(jù)中轉(zhuǎn)的兩個節(jié)點發(fā)送UDP數(shù)據(jù)包,打開與所述兩個節(jié)點之間的數(shù)據(jù)回傳通道,需要數(shù)據(jù)中轉(zhuǎn)的兩個節(jié)點通過與作為增補超級節(jié)點的P2P客戶端501之間建立的數(shù)據(jù)回傳通道將需要中轉(zhuǎn)的數(shù)據(jù)發(fā)送給客戶端501,作為增補超級節(jié)點的P2P客戶端501將所述兩個節(jié)點發(fā)送的需要中轉(zhuǎn)的數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)。其中,P2P服務(wù)器501包括節(jié)點登錄模塊503和中轉(zhuǎn)節(jié)點選擇模塊504。 節(jié)點登錄模塊503用于接受P2P客戶端501作為增補超級節(jié)點登錄。 中轉(zhuǎn)節(jié)點選擇模塊504用于接收節(jié)點的數(shù)據(jù)中轉(zhuǎn)請求,選擇增補超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn)節(jié)點。所述中轉(zhuǎn)節(jié)點選擇模塊504,判斷是否有普通超級節(jié)點可以作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,若沒有普通超級節(jié)點可以作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,則選擇增補超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn)節(jié)點。圖6為本發(fā)明實施例的P2P客戶端結(jié)構(gòu)圖,如圖6所示,該P2P客戶端601 運行于節(jié)點中,包括網(wǎng)絡(luò)類型判斷模塊602和登錄模塊603。 網(wǎng)絡(luò)類型判斷模塊602用于判斷節(jié)點的網(wǎng)絡(luò)類型。登錄模塊603用于在所述網(wǎng)絡(luò)類型判斷模塊判斷節(jié)點的網(wǎng)絡(luò)類型符合預(yù)設(shè) 的增補超級節(jié)點的確定條件時,則將節(jié)點作為增補超級節(jié)點登錄P2P服務(wù)器。登錄模塊603具體用于在網(wǎng)絡(luò)類型判斷模塊判斷節(jié)點的網(wǎng)絡(luò)類型為完全圓 錐形NAT、 IP限制圓錐形NAT、端口限制圓錐形NAT或者簡單防火墻時,將 節(jié)點作為增補超級節(jié)點登錄P2P服務(wù)器。該P2P客戶端601還可以包括數(shù)據(jù)中轉(zhuǎn)4莫塊604,用于在所述登錄^f莫塊將節(jié)點作為增補超級節(jié)點登錄P2P服務(wù)器后,若該節(jié)點被選擇為數(shù)據(jù)中轉(zhuǎn)節(jié)點,則向請求中轉(zhuǎn)數(shù)據(jù)的兩個節(jié)點發(fā)送UDP數(shù)據(jù)包,建立與所述兩個節(jié)點之間的數(shù)據(jù)回傳通道,并利用所述數(shù)據(jù)回傳通道接收所述兩個節(jié)點發(fā)送的需要中轉(zhuǎn)的數(shù) 據(jù),并轉(zhuǎn)發(fā)出去。由上述的實施例可見,本發(fā)明的這種數(shù)據(jù)中轉(zhuǎn)方法、系統(tǒng)、P2P客戶端 及P2P服務(wù)器,通過將符合預(yù)設(shè)的增補超級節(jié)點的確定條件的節(jié)點,作為增補超級節(jié)點登錄P2P服務(wù)器,并在P2P服務(wù)器接收到節(jié)點的數(shù)據(jù)中轉(zhuǎn)請求 時,根據(jù)預(yù)設(shè)的規(guī)則,從超級節(jié)點和增補超級節(jié)點中選擇出數(shù)據(jù)中轉(zhuǎn)節(jié)點; 并在選擇增補超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn)節(jié)點時,通過增補超級節(jié)點為請求中轉(zhuǎn) 數(shù)據(jù)的節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn),因此擴(kuò)展了可用于數(shù)據(jù)中轉(zhuǎn)的節(jié)點的選擇范圍, 從而提高了 P2P系統(tǒng)的傳輸性能。所應(yīng)理解的是,以上所述僅為本發(fā)明的較佳實施方式而已,并不用于限 定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等 同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      權(quán)利要求
      1. 一種數(shù)據(jù)中轉(zhuǎn)方法,其特征在于,該方法包括點對點P2P客戶端判斷節(jié)點自身的網(wǎng)絡(luò)類型,若符合預(yù)設(shè)的增補超級節(jié)點的確定條件,則作為增補超級節(jié)點登錄P2P服務(wù)器;P2P服務(wù)器接收節(jié)點的數(shù)據(jù)中轉(zhuǎn)請求,根據(jù)預(yù)設(shè)的規(guī)則,從超級節(jié)點和增補超級節(jié)點中選擇出數(shù)據(jù)中轉(zhuǎn)節(jié)點;若選擇增補超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,則通過增補超級節(jié)點為請求中轉(zhuǎn)數(shù)據(jù)的節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn)。
      2、 如權(quán)利要求1所述的數(shù)據(jù)中轉(zhuǎn)方法,其特征在于,所述預(yù)設(shè)的增補超級 節(jié)的確定點條件為網(wǎng)絡(luò)類型為完全圓錐形網(wǎng)絡(luò)地址轉(zhuǎn)換NAT、因特網(wǎng)協(xié)議IP 限制圓錐形NAT、端口限制圓錐形NAT或者簡單防火墻。
      3、 如權(quán)利要求1或2所述的數(shù)據(jù)中轉(zhuǎn)方法,其特征在于,所述根據(jù)預(yù)設(shè)規(guī)則,從超級節(jié)點和增補超級節(jié)點中選擇出數(shù)據(jù)中轉(zhuǎn)節(jié)點,包括判斷是否有超級節(jié)點可以作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,若沒有超級節(jié)點可以作為數(shù) 據(jù)中轉(zhuǎn)節(jié)點,則選擇增補超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn)節(jié)點。
      4、 如權(quán)利要求1或2所述的數(shù)據(jù)中轉(zhuǎn)方法,其特征在于,所述通過增補超 級節(jié)點為請求中轉(zhuǎn)翁:據(jù)的節(jié)點進(jìn)行邀:據(jù)中轉(zhuǎn),包括增補超級節(jié)點向請求中轉(zhuǎn)數(shù)據(jù)的兩個節(jié)點發(fā)送用戶數(shù)據(jù)報協(xié)議UDP數(shù)據(jù) 包,建立與所述兩個節(jié)點之間的數(shù)據(jù)回傳通道;所述的兩個節(jié)點通過所述數(shù)據(jù)回傳通道將需要中轉(zhuǎn)的數(shù)據(jù)發(fā)送給增補超級 節(jié)點,增補超級節(jié)點對所述兩個節(jié)點發(fā)送的需要中轉(zhuǎn)的數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)。
      5、 一種數(shù)據(jù)中轉(zhuǎn)系統(tǒng),其特征在于,該系統(tǒng)包括P2P客戶端,用于判斷節(jié)點自身的網(wǎng)絡(luò)類型,若符合預(yù)設(shè)的增補超級節(jié)點 的確定條件,則作為增補超級節(jié)點登錄P2P服務(wù)器;當(dāng)所述P2P客戶端作為增 補超級節(jié)點登錄P2P服務(wù)器,且被所述P2P服務(wù)器選為數(shù)據(jù)中轉(zhuǎn)節(jié)點時,為請 求中轉(zhuǎn)數(shù)據(jù)的節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn);P2P服務(wù)器,用于接受所述P2P客戶端作為增補超級節(jié)點登錄,并接收節(jié) 點的數(shù)據(jù)中轉(zhuǎn)請求,根據(jù)預(yù)設(shè)的規(guī)則,從超級節(jié)點和增補超級節(jié)點中選擇出數(shù) 據(jù)中轉(zhuǎn)節(jié)點。
      6、 如權(quán)利要求5所述的數(shù)據(jù)中轉(zhuǎn)系統(tǒng),其特征在于,所述P2P客戶端判斷 自身網(wǎng)絡(luò)類型為完全圓錐形NAT、 IP限制圓錐形NAT、端口限制圓錐形NAT 或者簡單防火墻時,將節(jié)點作為增補超級節(jié)點登錄P2P服務(wù)器。
      7、 如權(quán)利要求5或6所述的數(shù)據(jù)中轉(zhuǎn)系統(tǒng),其特征在于,所述P2P服務(wù)器 判斷是否有超級節(jié)點可以作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,若沒有超級節(jié)點可以作為數(shù)據(jù)中 轉(zhuǎn)節(jié)點,則選擇增補超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn)節(jié)點。
      8、 如權(quán)利要求5或6所述的數(shù)據(jù)中轉(zhuǎn)系統(tǒng),其特征在于,所述P2P客戶端 作為增補超級節(jié)點被所述P2P服務(wù)器選為數(shù)據(jù)中轉(zhuǎn)節(jié)點時,向請求中轉(zhuǎn)數(shù)據(jù)的 兩個節(jié)點發(fā)送UDP數(shù)據(jù)包,打開與所述兩個節(jié)點之間的數(shù)據(jù)回傳通道;兩個節(jié)點通過所述數(shù)據(jù)回傳通道將需要中轉(zhuǎn)的數(shù)據(jù)發(fā)送給增補超級節(jié)點, 增補超級節(jié)點對所述兩個節(jié)點發(fā)送的需要中轉(zhuǎn)的數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)。
      9、 一種P2P服務(wù)器,其特征在于,該P2P服務(wù)器包括 節(jié)點登錄模塊,用于接受P2P客戶端作為增補超級節(jié)點登錄; 中轉(zhuǎn)節(jié)點選擇模塊,用于接收節(jié)點的數(shù)據(jù)中轉(zhuǎn)請求,4艮據(jù)預(yù)設(shè)的規(guī)則,從超級節(jié)點和增補超級節(jié)點中選才奪出數(shù)據(jù)中轉(zhuǎn)節(jié)點。
      10、 如權(quán)利要求9所述的P2P服務(wù)器,其特征在于,所述中轉(zhuǎn)節(jié)點選擇模 塊,判斷是否有普通超級節(jié)點可以作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,若沒有普通超級節(jié)點可 以作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,則選擇增補超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn)節(jié)點。
      11、 一種P2P客戶端,其特征在于,該客戶端包括網(wǎng)絡(luò)類型判斷模塊,用于判斷P2P客戶端所處節(jié)點的網(wǎng)絡(luò)類型; 登錄模塊,用于在所述網(wǎng)絡(luò)類型判斷模塊判斷所述節(jié)點的網(wǎng)絡(luò)類型符合預(yù)設(shè)的增補超級節(jié)點的確定條件時,將所述節(jié)點作為增補超級節(jié)點登錄P2P服務(wù)器。
      12、 如權(quán)利要求11所述的P2P客戶端,其特征在于,所述登錄模塊,用于在網(wǎng)絡(luò)類型判斷模塊判斷節(jié)點的網(wǎng)絡(luò)類型為完全圓錐形NAT、 IP限制圓錐形 NAT、端口限制圓錐形NAT或者筒單防火墻時,將所述節(jié)點作為增補超級節(jié)點 登錄P2P服務(wù)器。
      13、如權(quán)利要求11或12所述的P2P客戶端,其特征在于,所述客戶端還 包括數(shù)據(jù)中轉(zhuǎn)模塊,用于在所述登錄模塊將所述節(jié)點作為增補超級節(jié)點登錄 P2P服務(wù)器后,向請求中轉(zhuǎn)數(shù)據(jù)的兩個節(jié)點發(fā)送UDP數(shù)據(jù)包,建立與所述兩個 節(jié)點之間的數(shù)據(jù)回傳通道,并利用所述數(shù)據(jù)回傳通道接收所述兩個節(jié)點發(fā)送的 需要中轉(zhuǎn)的數(shù)據(jù),并進(jìn)行轉(zhuǎn)發(fā)。
      全文摘要
      本發(fā)明公開了一種數(shù)據(jù)中轉(zhuǎn)方法、系統(tǒng)、P2P客戶端及P2P服務(wù)器,P2P客戶端判斷節(jié)點自身的網(wǎng)絡(luò)類型,若符合預(yù)設(shè)的增補超級節(jié)點的確定條件,則作為增補超級節(jié)點登錄P2P服務(wù)器;P2P服務(wù)器接收節(jié)點的數(shù)據(jù)中轉(zhuǎn)請求,根據(jù)預(yù)設(shè)的規(guī)則,從超級節(jié)點和增補超級節(jié)點中選擇出數(shù)據(jù)中轉(zhuǎn)節(jié)點;若選擇增補超級節(jié)點作為數(shù)據(jù)中轉(zhuǎn)節(jié)點,則通過增補超級節(jié)點為請求中轉(zhuǎn)數(shù)據(jù)的節(jié)點進(jìn)行數(shù)據(jù)中轉(zhuǎn)。該方法、系統(tǒng)、P2P客戶端及P2P服務(wù)器擴(kuò)展了可用于數(shù)據(jù)中轉(zhuǎn)的節(jié)點的選擇范圍,從而提高了P2P系統(tǒng)的傳輸性能。
      文檔編號H04L12/56GK101282302SQ20081011100
      公開日2008年10月8日 申請日期2008年5月29日 優(yōu)先權(quán)日2008年5月29日
      發(fā)明者王志華, 鵬 胡 申請人:騰訊科技(深圳)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1