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

      基于所發(fā)現(xiàn)的nat類型選擇主機(jī)的方法

      文檔序號:7713164閱讀:104來源:國知局

      專利名稱::基于所發(fā)現(xiàn)的nat類型選擇主機(jī)的方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及一種在對等中用于確定指定兩個(gè)或更多對等機(jī)中的哪一個(gè)作為用于在對等網(wǎng)格中進(jìn)行服務(wù)的主機(jī)的方法,所述方法包括a)收集用于對等機(jī)的NAT簡檔信息;b)與所述兩個(gè)或更多對等機(jī)中的一個(gè)或多個(gè)其它對等機(jī)共享所述用于對等機(jī)的NAT簡檔信息;c)接收用于所述一個(gè)或多個(gè)其它對等機(jī)的NAT簡檔信息;d)根據(jù)所述用于對等機(jī)的NAT簡檔信息和所述用于一個(gè)或多個(gè)其它對等機(jī)的NAT簡檔信息確定,指定所述兩個(gè)或更多對等機(jī)中的哪一個(gè)作為主機(jī)。本發(fā)明還涉及一種對等裝置,其包括計(jì)算機(jī)處理器;耦合到所述處理器的計(jì)算機(jī)存儲器;耦合到所述處理器的網(wǎng)絡(luò)接口,其中所述網(wǎng)絡(luò)接口被配置為便于所述處理器與在對等網(wǎng)格中連接的一個(gè)或多個(gè)其它對等裝置之間的通信;以及—組包含在所述存儲器中的計(jì)算機(jī)可讀指令,其中所述計(jì)算機(jī)可讀指令被配置為實(shí)施一種用于確定指定所述對等網(wǎng)格中的哪個(gè)對等裝置作為在所述對等網(wǎng)格內(nèi)進(jìn)行服務(wù)的主機(jī)的方法,所述方法包括a)收集用于對等機(jī)的NAT簡檔信息;b)與兩個(gè)或更多對等機(jī)中的一個(gè)或多個(gè)其它對等機(jī)共享所述用于對等機(jī)的NAT簡檔信息;c)接收用于所述一個(gè)或多個(gè)其它對等機(jī)的NAT簡檔信息;d)根據(jù)所述用于對等機(jī)的NAT簡檔信息和用于所述一個(gè)或多個(gè)其它對等機(jī)的NAT簡檔信息確定,指定所述兩個(gè)或更多對等機(jī)中的哪一個(gè)作為主機(jī)。本發(fā)明進(jìn)一步涉及一種計(jì)算機(jī)可讀媒體,其具有一組物化在其中的計(jì)算機(jī)可讀指令,其中所述計(jì)算機(jī)可讀指令被配置為實(shí)施一種用于確定指定所述對等網(wǎng)格中的哪個(gè)對等裝置作為在所述對等網(wǎng)格內(nèi)服務(wù)的主機(jī)的方法,所述方法包括a)收集用于對等機(jī)的NAT配置文件信息;b)與兩個(gè)或更多對等機(jī)中的一個(gè)或多個(gè)其它對等機(jī)共享所述用于對等機(jī)的NAT配置文件信息;c)接收用于所述一個(gè)或多個(gè)其它對等機(jī)的NAT配置文件信息;d)根據(jù)所述用于對等機(jī)的NAT配置文件信息和所述用于一個(gè)或多個(gè)其它對等機(jī)的NAT配置文件信息確定,指定所述兩個(gè)或更多對等機(jī)中的哪一個(gè)作為主機(jī)。圖1是示出根據(jù)本發(fā)明實(shí)施例的P2P網(wǎng)絡(luò)的示意圖。圖2是從客戶端角度示出根據(jù)本發(fā)明特定實(shí)施例基于所發(fā)現(xiàn)的NAT類型選擇主機(jī)的方法的流程圖。圖3是從客戶端角度示出基于所發(fā)現(xiàn)的NAT類型來選擇主機(jī)的基本方法的流程圖。圖4是示出根據(jù)當(dāng)前發(fā)明實(shí)施例的客戶端接口的示例的框圖。具體實(shí)施方式介紹當(dāng)嘗試通過對等通信(P2P)在客戶端之間建立通信時(shí)所產(chǎn)生的一個(gè)問題是網(wǎng)絡(luò)地址翻譯(NAT)的難題。大多數(shù)與中央服務(wù)器連接的客戶端都位于NAT之后。NAT是使得局域網(wǎng)絡(luò)(LAN)能夠使用一組私有IP地址用于內(nèi)部通信業(yè)務(wù)(traffic)并且使用第二組全局IP地址用于外部通信業(yè)務(wù)的互聯(lián)網(wǎng)標(biāo)準(zhǔn)。因此,期望P2P網(wǎng)絡(luò)中的主機(jī)具有有利的(favorable)的NAT簡檔(profile)以便創(chuàng)建最佳的P2P網(wǎng)絡(luò)。于是,在本領(lǐng)域中需要一種在若干連接到中央服務(wù)器的客戶端之間確定具有有利NAT簡檔的主機(jī)的方法。有4種類型的可利用的NAT:完全錐型NAT(FullConeNAT)、受限錐型NAT(RestrictedConeNAT)、端口受限錐型NAT(PortRestrictedConeNAT)以及對稱型NAT(SymmetricNAT)。完全錐型NAT是來自同一內(nèi)部IP地址和端口的所有請求都被映射到同一外部IP地址和端口的NAT。另外,任何外部主機(jī)都可以通過向所映射的外部地址發(fā)送分組來向內(nèi)部主機(jī)發(fā)送分組。在受限錐型NAT中,來自同一內(nèi)部IP地址和端口的所有請求都被映射到同一外部IP地址和端口。不像完全錐型NAT,只有當(dāng)內(nèi)部主機(jī)之前已經(jīng)向IP地址X發(fā)送過分組時(shí),(具有IP地址X的)外部主機(jī)才可以向內(nèi)部主機(jī)發(fā)送分組。端口受限的NAT類似于受限錐型NAT,但是限制包括端口號。具體地,只有當(dāng)內(nèi)部主機(jī)之前已經(jīng)從IP地址X和端口P發(fā)送過分組時(shí),外部主機(jī)才可以向內(nèi)部主機(jī)發(fā)送具有源IP地址X和源端口P的分組。在對稱型NAT中,來自同一內(nèi)部IP地址和端口并發(fā)送到特定目標(biāo)IP地址和端口的所有請求都被映射到同一外部IP地址和端口。如果同一主機(jī)將具有相同源地址和端口的分組(但是)發(fā)送到不同的目標(biāo),則使用不同的映射。另外,只有接收分組的外部主機(jī)可以將用戶數(shù)據(jù)協(xié)議(UDP)分組發(fā)送回內(nèi)部主機(jī)。基于NAT類型的主機(jī)選擇圖1是示出根據(jù)本發(fā)明實(shí)施例的P2P網(wǎng)絡(luò)的示意圖。網(wǎng)絡(luò)上的客戶端裝置105A、105B、107和105D最初連接到外部網(wǎng)絡(luò)109中的服務(wù)器101。舉例來說,服務(wù)器101可監(jiān)視連接到外部網(wǎng)絡(luò)109的客戶端105A、105B、107和105D之間的游戲數(shù)據(jù)??蛻舳?05A、105B、107和105D可位于相應(yīng)的網(wǎng)絡(luò)地址翻譯器(NAT)111A、111B、111C和111D之后??筛鶕?jù)互聯(lián)網(wǎng)標(biāo)準(zhǔn)對每個(gè)NAT進(jìn)行配置,所述互聯(lián)網(wǎng)標(biāo)準(zhǔn)使得局域網(wǎng)絡(luò)(LAN)能夠使用一組私有IP地址用于內(nèi)部通信業(yè)務(wù)并且使用第二組全局IP地址用于外部通信業(yè)務(wù)。大多數(shù)NAT對IP地址執(zhí)行動態(tài)翻譯,從而外部網(wǎng)絡(luò)在內(nèi)部網(wǎng)絡(luò)發(fā)起通信之前沒有途徑到達(dá)內(nèi)部網(wǎng)絡(luò)。然而,因?yàn)榭蛻舳?05A、105B、107和105D建立了服務(wù)器_客戶端關(guān)聯(lián),所以服務(wù)器101與客戶端105A、105B、107和105D之間的通信不受NAT111A、111B、111C和111D的限制。在建立客戶端可以直接相互通信的P2P網(wǎng)絡(luò)時(shí),可將一個(gè)客戶端作為主機(jī)107建立,而其它對等機(jī)105(連接到P2P網(wǎng)絡(luò)的非主機(jī)客戶端)可相互之間建立直接連接。舉例來說而并非限制,可將對等機(jī)105以公知為完全連接網(wǎng)格(FCG)的配置連接。這種配置防止任何一個(gè)對等機(jī)成為瓶頸。在本發(fā)明的實(shí)施例中,可基于每個(gè)客戶端的NAT簡檔來確定主機(jī)107。NAT111A、111B、111C和111D可以是被一般稱為完全錐型NAT、受限錐型NAT、端口受限錐型NAT和對稱型NAT的四種不同配置中的一種。完全錐型NAT是來自同一內(nèi)部IP地址和端口的所有請求都被映射到同一外部IP地址和端口的NAT。任何客戶端都可以通過向所映射的客戶端外部地址發(fā)送分組來向完全錐型NAT之后的客戶端發(fā)送分組。在受限錐型NAT中,來自同一內(nèi)部IP地址和端口的所有請求都被映射到同一外部IP地址和端口。然而,不像完全錐型NAT,只有當(dāng)內(nèi)部主機(jī)之前已經(jīng)向IP地址X發(fā)送過分組時(shí),(具有IP地址X的)外部客戶端才可以向完全錐型NAT之后的客戶端發(fā)送分組。端口受限的NAT類似于受限錐型NAT,但是限制包括端口號。具體地,只有當(dāng)端口受限的NAT之后的客戶端之前已經(jīng)從IP地址X和端口P發(fā)送過分組時(shí),外部客戶端才可以向端口受限的NAT之后的客戶端發(fā)送具有源IP地址X和源端口P的分組。在對稱型NAT中,來自同一內(nèi)部IP地址和端口并發(fā)送到特定目標(biāo)IP地址和端口的所有請求都被映射到同一外部IP地址和端口。如果同一主機(jī)將具有相同源地址和端口的分組(但是)發(fā)送到不同的目標(biāo),則使用不同的映射。另外,只有接收分組的外部主機(jī)可以將UDP分組發(fā)送回內(nèi)部主機(jī)。完全錐型NAT、受限錐型NAT和端口受限錐型NAT的穿越(traversal)相對簡單,而對于對稱型NAT來說則有點(diǎn)復(fù)雜。如果客戶端在對稱型NAT之后,則可實(shí)施NAT穿越,例如在共同轉(zhuǎn)讓的美國專利申請公開號20070076729中所描述的那樣。特別地,客戶端可執(zhí)行端口預(yù)測,該端口預(yù)測包括構(gòu)造該客戶端之前的NAT的預(yù)測傳輸?shù)刂妨斜?。然后,客戶端可將包含該預(yù)測傳輸?shù)刂妨斜淼腎NVITE消息從第一節(jié)點(diǎn)發(fā)送給第二客戶端。然后,在對稱型NAT之后的客戶端可使用這些預(yù)測傳輸?shù)刂穪韴?zhí)行與第二節(jié)點(diǎn)的連接性檢查??赏ㄟ^例如將NAT的用戶數(shù)據(jù)協(xié)議(UDP)簡單穿越(STUN)請求并行地發(fā)送給每個(gè)預(yù)測傳輸?shù)刂穪韴?zhí)行連接性檢查。當(dāng)對稱型NAT之后的客戶端接收到這些請求時(shí),該客戶端發(fā)送STUN響應(yīng)給第二客戶端。如果第二客戶端接收到STUN響應(yīng),則該第二客戶端可以發(fā)送媒體給該地址??赡苡信c上面所述的四種類型不同的NAT類型。在一些情況下,也許可以使用標(biāo)準(zhǔn)技術(shù)來穿越這樣的NAT,而在其它情況下,NAT性能可能如此不可預(yù)測或者不穩(wěn)定,以至于與在這樣的NAT之后的客戶端通信是不可靠的。因?yàn)橹鳈C(jī)107的職責(zé)是在其它對等機(jī)105A、105B和105D之間交流信息,所以有必要使主機(jī)107在不干擾該主機(jī)107通信能力的NAT類型之后。在對等機(jī)105A、105B、105D和主機(jī)107以完全連接網(wǎng)格(FCG)方式連接的實(shí)施例中,特別期望使用在不干擾主機(jī)通信能力的NAT之后的主機(jī),以便為最大數(shù)量的對等機(jī)提供最高水平的服務(wù)。已經(jīng)有以下情況,其中相對于由P2P網(wǎng)絡(luò)中的現(xiàn)有對等機(jī)使用的其它NAT類型,被認(rèn)為是具有對P2P的可疑(未知)支持的NAT實(shí)際上表現(xiàn)得相當(dāng)好。通過選擇具有最有利NAT簡檔的主機(jī)107,可獲得更可靠的對等通信。如在此所使用的,術(shù)語P2P通信一般指在連接到網(wǎng)絡(luò)的客戶端裝置之間的直接通信。P2P應(yīng)用的示例包括但是不限于,網(wǎng)絡(luò)電話(VoIP)、bittorrent傳輸、視頻傳輸、文件共享、數(shù)據(jù)共享以及在客戶端之間不超出單個(gè)客戶端帶寬能力的其它類型的直接數(shù)據(jù)傳送。一旦建立了主機(jī)107,對等機(jī)105A、105B、105D可以通過最初將信息傳輸給主機(jī)107、該主機(jī)107然后將該信息分別傳遞給接收對等機(jī)105A、105B、105D來相互通信,或者對等機(jī)105A、105B、105D可在使用主機(jī)107來建立該直接通信路徑之后直接傳輸信息。在某些實(shí)施例中,客戶端105A、105B、105D和107可通過與外部網(wǎng)絡(luò)109相關(guān)聯(lián)的NAT的用戶數(shù)據(jù)協(xié)議(UDP)簡單穿越(STUN)服務(wù)器103來獲取這些客戶端的NAT簡檔信息。STUN服務(wù)器103是由互聯(lián)網(wǎng)工程任務(wù)組(IETF)提出的輕量級協(xié)議,STUN服務(wù)器103允許具有IP功能(IPenabled)的客戶端發(fā)現(xiàn)該客戶端之前的NAT的存在和類型。STUN103使用大多數(shù)NAT類型工作,并且不依賴于NAT的任何特定性能(behavior)。STUN服務(wù)器103表現(xiàn)得像為客戶端105A舉起的一面鏡子,從而客戶端105A可以看到它的本地傳輸?shù)刂啡绾伪挥成涞焦矀鬏數(shù)刂???蛻舳?05A還可以通過與STUN服務(wù)器103通信來確定客戶端105A之前的NATlllA。舉例來說而并非限制,每個(gè)客戶端105A、105B、107、105D都可使用STUN服務(wù)器103來獲取NAT簡檔信息,然后該客戶端可將該信息傳遞給中央服務(wù)器101以便中央服務(wù)器101來確定哪個(gè)客戶端會成為最有利的主機(jī)107。同樣地,客戶端105A、105B、107、105D可使用STUN服務(wù)器103來獲取NAT簡檔信息,該NAT簡檔信息然后可被傳遞給所有其它試圖通過P2P網(wǎng)絡(luò)進(jìn)行通信的客戶端105,以便客戶端105A、105B、107、105D最佳地確定主機(jī)107。圖2是示出從客戶端角度基于所發(fā)現(xiàn)的NAT類型來選擇主機(jī)的基本方法的流程圖。每個(gè)連接到服務(wù)器IOI的客戶端可收集與P2P網(wǎng)絡(luò)一起使用的該客戶端自身的NAT簡檔信息,如在201所指示的。該簡檔信息可包括關(guān)于該客戶端之前的類型的信息、關(guān)于該NAT是否支持通用即插即用(UPnP)的信息、關(guān)于該NAT是否展示端口保護(hù)(preservation)的信息,以及關(guān)于該NAT是否支持端口可預(yù)測性的信息。如在此所使用的,端口保護(hù)意味著一旦內(nèi)部IP地址被映射到特定的外部端口,則該內(nèi)部IP地址將前后一致地映射到該特定端口。如在此所使用的,端口可預(yù)測性意味著有可能預(yù)測內(nèi)部IP地址將被映射到的外部端口,即使該端口不總是同一個(gè)端口。例如,外部端口號可隨著每次試圖映射該內(nèi)部IP地址而前后一致地增加。除了NAT性能,每個(gè)客戶端的簡檔信息可包括服務(wù)質(zhì)量(QoS)信息。如在此所使用的,術(shù)語QoS信息包括關(guān)于客戶端裝置的信息,該QoS信息與該客戶端裝置可以與其它客戶端裝置多好地進(jìn)行通信有關(guān)。舉例來說但并非限制,這樣的信息可與該客戶端可以多快地進(jìn)行通信、該客戶端可以多可靠地進(jìn)行通信、或者兩者的某種組合有關(guān)。QoS信息的特定示例包括但是不限于ping時(shí)間、帶寬性能、等待時(shí)間、地理、IP供應(yīng)商??墒褂妹總€(gè)客戶端的簡檔信息來產(chǎn)生所有連接到服務(wù)器的客戶端之間的優(yōu)先級列表,以便最佳地選擇用于P2P通信的主機(jī)。如果在潛在主機(jī)之間的優(yōu)先級是平等(tie)的,則可分配序號來確定選擇哪個(gè)潛在主機(jī)作為實(shí)際的主機(jī)。在一些實(shí)施例中,可以如在203所指示的那樣,由服務(wù)器例如以客戶端連接到服務(wù)器的順序來分配這樣的序號。可替換地,可使用分布式仲裁算法來從兩個(gè)或更多同等合適的潛在主機(jī)中選擇主機(jī)。如果最初的主機(jī)決定離開P2P網(wǎng)絡(luò)或者以某種方式從網(wǎng)絡(luò)中斷開,則可使用該信息來選擇P2P網(wǎng)絡(luò)的下一個(gè)主機(jī)?!┙o定的客戶端收集了簡檔信息,則該客戶端的NAT簡檔被與其它連接到服務(wù)器的客戶端共享。簡檔信息包括對連接到該服務(wù)器的客戶端數(shù)量的預(yù)期計(jì)數(shù),以便確定是否達(dá)到了最佳的P2P網(wǎng)絡(luò)。在這時(shí)每個(gè)客戶端等待,直到每個(gè)其它的客戶端提交了它們關(guān)于在它們之前的NAT的簡檔信息,如在205所指示的。一旦所有的NAT簡檔都被這些客戶端提交了,則確定該客戶端是應(yīng)該成為主機(jī)、對等機(jī)還是這些客戶端是否沒有滿足任一的要求,如在207所描述的。該確定可基于為上述每一個(gè)客戶端所獲取的簡檔信息來做出。例如,通過基于若干因素分配優(yōu)先級,可以基于具有最有利簡檔的客戶端來從可利用客戶端中選擇主機(jī)。其余客戶端可被分配為對等機(jī),或者基于其余客戶端的簡檔信息,這些其余客戶端可能不被認(rèn)為是對等機(jī)或主機(jī)。例如,不可穿越的NAT之后的客戶端可能不滿足作為對等機(jī)或主機(jī)連接到網(wǎng)絡(luò)所必需的要求。舉例來說而并非限制,不能被認(rèn)為是對等機(jī)或主機(jī)的客戶端可更新其簡檔以將其狀態(tài)通知給P2P網(wǎng)絡(luò)的其余客戶端,并且可將預(yù)期計(jì)數(shù)減少以將該客戶端從P2P網(wǎng)絡(luò)排除。表1示出可被用于決定P2P網(wǎng)絡(luò)中主機(jī)分配的優(yōu)先級排序方案的示例。舉例來說但并非限制,該優(yōu)先級排序方案可被分解成5個(gè)單獨(dú)特性(distinction):主動(active)、可能、未知、進(jìn)行中以及不主動(inactive)。這些特性在表1中按照主機(jī)優(yōu)先級順序列出。主動標(biāo)簽指示客戶端是主機(jī)的非常好候選者??赡軜?biāo)簽指示客戶端是主機(jī)的良好候選者,但是優(yōu)先級仍然被給予具有主動標(biāo)簽的客戶端。未知標(biāo)簽指示網(wǎng)絡(luò)不能決定該特定客戶端是否是主機(jī)的良好候選者。進(jìn)行中標(biāo)簽指示網(wǎng)絡(luò)仍在決定該客戶端是否是主機(jī)的良好候選者。最后,不主動標(biāo)簽指示客戶端無法承擔(dān)主機(jī)的職責(zé)。在表l中示出的示例中,優(yōu)先級標(biāo)簽可基于4個(gè)單獨(dú)的標(biāo)準(zhǔn)NAT類型、通用即插即用(UPnP)能力、端口保護(hù)以及端口可預(yù)測性。然而,還可使用幾個(gè)其它因素來確定優(yōu)先級。這些因素被歸入客戶端的服務(wù)質(zhì)量簡檔并且可包括QoS信息,該QoS信息包括但不限于ping時(shí)間、帶寬性能、地理、等待時(shí)間和IP供應(yīng)商。表1<table>tableseeoriginaldocumentpage9</column></row><table>圖3是示出從客戶端角度根據(jù)本發(fā)明特定實(shí)施例基于所發(fā)現(xiàn)的NAT類型選擇主機(jī)的方法的流程圖。客戶端最初獲取關(guān)于該客戶端之前的網(wǎng)絡(luò)地址翻譯器(NAT)的簡檔信息,如在301所描述的那樣。該簡檔信息包括關(guān)于NAT類型、該NAT是否支持通用即插即用(UPnP)、該NAT是否支持端口保護(hù)以及該NAT是否支持端口可預(yù)測性的信息。除了該信息以外,簡檔信息還可包括服務(wù)質(zhì)量信息,該服務(wù)質(zhì)量信息包括但不限于Ping時(shí)間和帶寬性能、地理、等待時(shí)間、IP供應(yīng)商等等??墒褂迷撔畔懋a(chǎn)生若干客戶端之間的優(yōu)先級,以便在這若干不同客戶端之間確定支持對等(P2P)通信的主機(jī)。如果最初的主機(jī)決定離開該P(yáng)2P網(wǎng)絡(luò)或者以某種方式從該網(wǎng)絡(luò)斷開,則可使用該信息來選擇該P(yáng)2P網(wǎng)絡(luò)的下一個(gè)主機(jī)?!┛蛻舳双@取了關(guān)于該客戶端之前的NAT的簡檔信息,則該客戶端將該NAT簡檔與連接到同一服務(wù)器的其它客戶端共享,如在303所指示的。這些客戶端現(xiàn)在不只察覺到上述用于所有其它客戶端的簡檔信息,而且它們還被告知當(dāng)前連接到服務(wù)器的客戶端的期望計(jì)數(shù)。在這點(diǎn)每個(gè)客戶端可等待,直到每個(gè)其它客戶端提交了它們關(guān)于它們之前的NAT的簡檔信息,如在305所指示的。一旦所有的NAT簡檔都被這些客戶端提交,則確定該客戶端是應(yīng)該成為主機(jī)、對等機(jī)還是這些客戶端沒有滿足任一的要求,如在307所指示的。該確定可基于為上述每一個(gè)客戶端所獲取的簡檔信息來做出。通過基于很多因素分配優(yōu)先級,可以基于具有最有利的簡檔來從這些客戶端中選擇主機(jī)。其余客戶端可被分配為對等機(jī),或者基于其余客戶端的簡檔信息,這些其余客戶端可能不能被認(rèn)為是對等機(jī)或主機(jī)。例如,不可穿越的NAT之后的客戶端可能不滿足作為對等機(jī)或主機(jī)連接到網(wǎng)絡(luò)所必需的要求。舉例來說而并非限制,不能被認(rèn)為是對等機(jī)或主機(jī)的客戶端可更新其簡檔以將其狀態(tài)通知給該P(yáng)2P網(wǎng)絡(luò)的其余客戶端,并且可將預(yù)期計(jì)數(shù)減少以將該客戶端從P2P網(wǎng)絡(luò)排除。然后,被分配了成為主機(jī)職責(zé)的客戶端可等待該網(wǎng)絡(luò)上的其余客戶端連接并且還更新它們的簡檔,如在309所指示的。一旦所有客戶端都連接到主機(jī),則可檢查所述期望計(jì)數(shù)以確定是否所有連接到服務(wù)器的客戶端都連接到該主機(jī),如在311所指示的。如果該計(jì)數(shù)如預(yù)期的那樣,則能夠進(jìn)行P2P通信,如在317所指示的。然而,如果該計(jì)數(shù)由于一個(gè)或多個(gè)客戶端沒有滿足成為主機(jī)或?qū)Φ葯C(jī)的要求而少于預(yù)期,則減少該計(jì)數(shù)并且該過程可再次在303開始。如果客戶端被確定為對等機(jī),則一旦確定了主機(jī),該客戶端可試圖連接到該主機(jī),如在313所指示的。確定該對等機(jī)能夠連接到該主機(jī)還是不能連接到該主機(jī),如在315所指示的。如果該客戶端能夠連接到該主機(jī),則該客戶端在能夠進(jìn)行P2P通信之前等待所有其它對等機(jī)連接到主機(jī),如在317所描述的。如果該客戶端不能連接到該主機(jī),則更新該客戶端的簡檔信息,并且該過程再次在303開始。最終,如果該客戶端在多個(gè)時(shí)機(jī)都不能連接到主機(jī),則可減少該計(jì)數(shù),將該單個(gè)客戶端留在P2P網(wǎng)絡(luò)之外。如果在收集NAT信息時(shí)發(fā)生對等機(jī)故障,則這可被記錄為失敗并與其它對等機(jī)共享??杉俣ǚ窒頂?shù)據(jù)或者等待數(shù)據(jù)將不會失敗,例如,如果該數(shù)據(jù)的通信是通過可靠的通信信道如服務(wù)器101完成的。如果與服務(wù)器101的通信在該過程期間的任何一點(diǎn)失敗,則整個(gè)過程可能被中止并且如被用于與服務(wù)器101進(jìn)行通信的協(xié)議所規(guī)定那樣,將該斷開通知給剩余的客戶端。剩余的客戶端將不再等待來自斷開客戶端的響應(yīng)?!目蛻舳搜b置中識別出主機(jī),則服務(wù)器101可將一個(gè)或多個(gè)功能推給由被指定為主機(jī)的對等機(jī)管理的P2P網(wǎng)格。這樣的功能可由主機(jī)和/或P2P網(wǎng)格內(nèi)的任何對等機(jī)來承擔(dān)。舉例來說但并非限制,P2P網(wǎng)格可能是完全連接的網(wǎng)格或者是所有通信都通過主機(jī)進(jìn)行的星形拓?fù)洹T摼W(wǎng)格的拓?fù)渑c本發(fā)明的實(shí)施例不是嚴(yán)格有關(guān)的。有關(guān)的是,與任何拓?fù)涞腜2P網(wǎng)格連接的主點(diǎn)(主機(jī))是基于與連接的該主點(diǎn)相關(guān)聯(lián)的NAT的性能建立的。客戶端裝置400可被配置為根據(jù)如在圖4中所示出的本發(fā)明實(shí)施例來實(shí)施用于確定主機(jī)的方法。舉例來說并且不失一般性,客戶端裝置400可被實(shí)施為數(shù)字電視機(jī)、個(gè)人計(jì)算機(jī)、視頻游戲控制臺、個(gè)人數(shù)字助理、移動或者手持裝置如蜂窩電話或者個(gè)人數(shù)字助理、手持視頻游戲裝置、便攜式電子郵件裝置等等或者其它數(shù)字裝置的一部分。裝置400可包括中央處理單元(CPU)402和與CPU402耦合的內(nèi)存404。CPU402可被配置為運(yùn)行軟件應(yīng)用程序和可選地運(yùn)行操作系統(tǒng)。本發(fā)明的一些實(shí)施例可利用某些類型的處理器構(gòu)架,其中CPU402包括主處理器402A和一個(gè)或多個(gè)輔助處理器402B。每個(gè)輔助處理器402B可具有自身的關(guān)聯(lián)本地?cái)?shù)據(jù)存儲器。其它這種處理器構(gòu)架的一個(gè)示例是單元處理器(CellProcessor)。單元處理器構(gòu)架的示例在例如CellBroadbandEngineArchitecture(InternationalBusinessMachinesCorporation片反權(quán)所有,SonyComputerEntertainmentIncorporated,ToshibaCorporation,2005年8月8日)中詳細(xì)描述,其副本可在htW/cell.scei.co.化/下載,其全部內(nèi)容通過引用結(jié)合于此。再次參考圖4,接收裝置400還可包括眾所周知的支持功能410,如輸入/輸出(1/0)元件411、電源(P/S)412、時(shí)鐘(CLK)413和高速緩存414。裝置400可進(jìn)一步包括為應(yīng)用程序和數(shù)據(jù)提供非易失性存儲的快速數(shù)據(jù)存儲裝置415,如硬盤驅(qū)動器??焖俅鎯ρb置415可被用于暫時(shí)或者長期存儲從較慢速數(shù)據(jù)存儲裝置中檢索的文件416。舉例來說,存儲裝置415可以是固定磁盤驅(qū)動器、可移動磁盤驅(qū)動器、閃存裝置、磁帶驅(qū)動器??商鎿Q地,存儲裝置415可以例如是CD-R0M、DVD-R0M、藍(lán)光(Blu-ray)、HD-DVD、UMD或者其它的光學(xué)存儲裝置。來自較慢速存儲裝置的文件416可被暫時(shí)地存儲在硬件高速緩存中的較快速存儲裝置中以用于迅速地裝載到內(nèi)存404中?!獋€(gè)或多個(gè)用戶輸入裝置420可被用于將來自一個(gè)或多個(gè)用戶的用戶輸入傳送給系統(tǒng)400。舉例來說,可將一個(gè)或多個(gè)用戶輸入裝置420經(jīng)由1/0元件411耦合到客戶端裝置400。合適輸入裝置420的示例包括鍵盤、鼠標(biāo)、操縱桿、觸板、觸摸屏、遠(yuǎn)程控制單元、光筆、照相機(jī)或攝像機(jī)、和/或話筒??蛻舳搜b置400可通過便于經(jīng)由電子通信網(wǎng)絡(luò)427進(jìn)行通信的網(wǎng)絡(luò)接口425與對等網(wǎng)絡(luò)中的一個(gè)或多個(gè)其它客戶端裝置通信。網(wǎng)絡(luò)接口425可被配置為通過局域網(wǎng)和諸如互聯(lián)網(wǎng)的廣域網(wǎng)實(shí)施有線或無線的通信。系統(tǒng)400可通過網(wǎng)絡(luò)427經(jīng)由一個(gè)或多個(gè)消息分組426來發(fā)送和接收數(shù)據(jù)和/或?qū)ξ募恼埱?。舉例來說而并非限制,電子通信網(wǎng)絡(luò)427可能是可以在裝置400與一個(gè)或多個(gè)其它客戶端裝置之間通信的局域網(wǎng)、廣域網(wǎng)或者個(gè)人區(qū)域網(wǎng)絡(luò)(例如藍(lán)牙)。內(nèi)存404可存儲CPU402使用的應(yīng)用和數(shù)據(jù)。內(nèi)存404可以是集成電路(例如RAM、DRAM、ROM等等)的形式。計(jì)算機(jī)程序401可以以能夠在處理器402上執(zhí)行的指令形式存儲在內(nèi)存404中。程序401可以包括以下指令當(dāng)被處理器執(zhí)行時(shí)導(dǎo)致該處理器實(shí)施用于從對等網(wǎng)絡(luò)中的一組兩個(gè)或更多對等客戶端設(shè)備中確定主機(jī)的方法。舉例來說并且不失一般性,程序401可以在執(zhí)行時(shí)導(dǎo)致裝置400實(shí)施在圖2中示出的方法200或者在圖3中示出的方法300。特別地,程序401可以導(dǎo)致裝置400:a)收集用于裝置400的NAT簡檔信息;b)與連接到網(wǎng)絡(luò)427的一個(gè)或多個(gè)其它客戶端裝置400'、400"共享用于該裝置的NAT簡檔信息;c)接收用于該一個(gè)或多個(gè)其它客戶端裝置的NAT簡檔信息;以及d)根據(jù)用于客戶端裝置400的NAT簡檔信息和用于一個(gè)或多個(gè)其它客戶端裝置的NAT簡檔信息來確定,客戶端裝置400、400'、400"中的哪個(gè)應(yīng)被指定為主機(jī)。用于客戶端裝置400和其它客戶端裝置400'、400"的NAT簡檔信息406可被存儲在內(nèi)存404中以用于確定主機(jī)??蛻舳搜b置400、400'和400"中的每一個(gè)都可以在對應(yīng)NAT403、403'和403"之后。客戶端裝置400可以位于網(wǎng)絡(luò)地址翻譯器(NAT)403之后,該網(wǎng)絡(luò)地址翻譯器(NAT)403將用于客戶端裝置400的內(nèi)部IP地址翻譯成被其它裝置看到的公共IP地址。注意NAT403通常不是客戶端裝置400的一部分,雖然一些類型的客戶端裝置可能包括NAT。另外,如果客戶端裝置400、400'、400"中的任何一個(gè)或所有根本不在NAT之后,則可以實(shí)施本發(fā)明的實(shí)施例。NAT簡檔信息406可以包括,但是不限于,關(guān)于在客戶端裝置400之前的NAT(如果有的話)類型的信息、NAT參與通用即插即用(UPnP)的能力、NAT保持端口保護(hù)的能力、以及NAT的端口可預(yù)測性。程序401可實(shí)施可基于上述涉及表1的標(biāo)準(zhǔn)的選擇。其它客戶端裝置400'、400"中的每一個(gè)都可被類似地配置并且可實(shí)施相同的主機(jī)選擇過程。如果所有客戶端裝置400、400'和400"都使用相同的程序401和簡檔信息406,則有理由期待所有客戶端裝置400、400'和400"都應(yīng)該做出相同的主機(jī)確定。在相同狀況下,程序401可能期望應(yīng)用基于附加信息408如服務(wù)質(zhì)量信息的補(bǔ)充仲裁過濾器以從兩個(gè)或更多同等可能的候選裝置中仲裁對主機(jī)裝置的確定。服務(wù)質(zhì)量信息可包括諸如客戶端的Ping時(shí)間、帶寬性能、地理、等待時(shí)間、IP供應(yīng)商等的因素,以及其它在上面所描述的因素。這樣的附加信息408也可存儲在內(nèi)存404中??蛻舳搜b置400可進(jìn)一步包括圖形子系統(tǒng)430,該圖形子系統(tǒng)430可包括圖形處理單元(GPU)435和圖形內(nèi)存437。圖形內(nèi)存437可包括用于為輸出圖像的每個(gè)像素存儲像素?cái)?shù)據(jù)的顯示存儲器(例如幀緩沖器)。圖形內(nèi)存437可與GPU435集成在相同的裝置中,作為單獨(dú)裝置與GPU435連接,和/或?qū)嵤┰趦?nèi)存404中??蓪⑾袼?cái)?shù)據(jù)直接從CPU402中提供給圖形內(nèi)存437??商鎿Q地,CPU402可向GPU435提供定義期望輸出圖像的數(shù)據(jù)和/或指令,從這些數(shù)據(jù)和/或指令中,GPU435可生成一個(gè)或多個(gè)輸出圖像的像素?cái)?shù)據(jù)。定義期望輸出圖像的數(shù)據(jù)和/或指令可存儲在存儲器406和/或圖像存儲器437中。在實(shí)施例中,GPU435可(例如被合適的編程或者硬件配置)用3D渲染性能配置以用于從定義場景的幾何形狀、照明、陰影、紋理、運(yùn)動和/或照相機(jī)參數(shù)的指令和數(shù)據(jù)中生成輸出圖像的像素?cái)?shù)據(jù)。GPU435可進(jìn)一步包括能夠執(zhí)行著色器(shader)程序的一個(gè)或多個(gè)可編程執(zhí)行單元。圖形子系統(tǒng)430可從圖形內(nèi)存437周期性輸出圖像的像素?cái)?shù)據(jù)以顯示在視頻顯示裝置450上。視頻顯示裝置450可能是能夠響應(yīng)來自裝置400的信號而顯示可視信息的任何裝置,包括可以顯示文本、數(shù)字、圖形符號或圖像的CRT、LCD、等離子體以及OLED顯示器。數(shù)字廣播接收裝置400可依據(jù)顯示裝置的類型向顯示裝置450提供模擬或數(shù)字形式的顯示驅(qū)動信號。此外,顯示器450可被一個(gè)或多個(gè)產(chǎn)生可聽或以其它方式可探測聲音的音頻揚(yáng)聲器補(bǔ)充。為便于生成這樣的聲音,客戶端裝置400可進(jìn)一步包括音頻處理器455,該音頻處理器455適于從CPU402、內(nèi)存404和/或存儲裝置415提供的指令和/或數(shù)據(jù)中生成模擬或數(shù)字的音頻輸出。接收裝置400可以可選地包括定位裝置470。這樣的裝置可基于任何能夠提供裝置的地理定位信息的合適技術(shù)?,F(xiàn)有技術(shù)的示例包括全球定位衛(wèi)星(GPS)技術(shù)、慣性制導(dǎo)技術(shù)等等。來自這樣的裝置的信息可被用于數(shù)字廣播數(shù)據(jù)應(yīng)用,如為移動或手持裝置導(dǎo)航。根據(jù)某些實(shí)施例,確定客戶端裝置400的地理位置可能是有用的。諸如帶寬、ping時(shí)間和等待時(shí)間的某些QoS考慮可能受到該裝置位置的影響。舉例來說而并非限制,為便于確定主機(jī),定位裝置470可提供地理位置信息,程序401可使用該地理位置信息來確定客戶端裝置400是否是成為對等服務(wù)的主機(jī)的良好候選者。裝置400的部件,包括CPU402、內(nèi)存404、支持功能410、數(shù)據(jù)存儲裝置415、用戶輸入裝置420、網(wǎng)絡(luò)接口425、圖形單元430、音頻處理器455和定位裝置470,可經(jīng)由一個(gè)或多個(gè)數(shù)據(jù)總線460操作地相互連接。這些部件可能以硬件、軟件或固件或這些中兩個(gè)或更多個(gè)的某種組合來實(shí)施。本發(fā)明的實(shí)施例允許對等網(wǎng)絡(luò)狀況下的合作主機(jī)確定和主機(jī)轉(zhuǎn)移。雖然上面是本發(fā)明優(yōu)選實(shí)施例的完整描述,但是可能使用各種替代方式、修改以及等同體。因此,本發(fā)明的范圍應(yīng)該被確定為不根據(jù)上述描述,相反應(yīng)該被確定為根據(jù)所附權(quán)利要求以及這些權(quán)利要求等同體的全部范圍。在此描述的任何特征,無論是否是優(yōu)選特征,都可與在此描述任何其它特征組合,無論該其它特征是否是優(yōu)選特征。在后面的權(quán)利要求中,除非另有明確規(guī)定,不定冠詞"一"或"一個(gè)"指一個(gè)或多個(gè)在該冠詞后面的項(xiàng)的暈。所附權(quán)利要求不應(yīng)被解釋為包括裝置加功能限制,除非這樣的限定在給定的權(quán)利要求中使用短語"裝置用于"明確列出。權(quán)利要求一種在對等中用于確定指定兩個(gè)或更多對等機(jī)中的哪一個(gè)作為用于在對等網(wǎng)格中進(jìn)行服務(wù)的主機(jī)的方法,所述方法包括a)收集用于對等機(jī)的NAT簡檔信息;b)與所述兩個(gè)或更多對等機(jī)中的一個(gè)或多個(gè)其它對等機(jī)共享所述用于對等機(jī)的NAT簡檔信息;c)接收用于所述一個(gè)或多個(gè)其它對等機(jī)的NAT簡檔信息;d)根據(jù)所述用于對等機(jī)的NAT簡檔信息和所述用于一個(gè)或多個(gè)其它對等機(jī)的NAT簡檔信息確定,指定所述兩個(gè)或更多對等機(jī)中的哪一個(gè)作為主機(jī)。2根據(jù)權(quán)利要求1所述的方法,其中a)包括通過使用STUN服務(wù)器來收集NAT簡檔信息。3.根據(jù)權(quán)利要求l所述的方法,其中b)包括經(jīng)由所述對等機(jī)與所述一個(gè)或多個(gè)其它對等機(jī)之間的預(yù)建立連接將用于所述對等機(jī)的NAT簡檔信息傳遞給所述一個(gè)或多個(gè)其它對等機(jī)。4.根據(jù)權(quán)利要求3所述的方法,其中所述預(yù)建立連接包括使用服務(wù)器以用于被所述兩個(gè)或更多對等機(jī)共用的應(yīng)用。5.根據(jù)權(quán)利要求4所述的方法,其中所述服務(wù)器將一個(gè)或多個(gè)功能推給對等網(wǎng)格,所述對等網(wǎng)格由被指定為所述主機(jī)的所述對等機(jī)管理。6.根據(jù)權(quán)利要求3所述的方法,其中所述預(yù)建立連接包括所述一個(gè)或多個(gè)其它對等機(jī)中的一個(gè)對等機(jī)擔(dān)當(dāng)主機(jī)。7.根據(jù)權(quán)利要求3所述的方法,其中c)包括經(jīng)由所述預(yù)建立連接接收用于所述一個(gè)或多個(gè)其它對等機(jī)的NAT簡檔信息。8.根據(jù)權(quán)利要求l所述的方法,其中d)包括基于用于所述對等機(jī)的NAT簡檔信息和用于所述一個(gè)或多個(gè)其它對等機(jī)的NAT簡檔信息來為所述兩個(gè)或更多對等機(jī)中的每一個(gè)分配優(yōu)先級值,并且基于所述優(yōu)先級值選擇所述主機(jī)。9.根據(jù)權(quán)利要求8所述的方法,其中所述NAT簡檔信息包括所述對等機(jī)之前的NAT的NAT類型、關(guān)于所述NAT是否支持通用即插即用(UPnP)的信息、NAT的端口可預(yù)測性信息以及NAT的端口保護(hù)信息。10.根據(jù)權(quán)利要求8所述的方法,其中所述用于一個(gè)或多個(gè)其它對等機(jī)的NAT簡檔信息包括另一對等機(jī)之前的NAT的NAT類型、關(guān)于所述NAT是否支持通用即插即用(UPnP)的信息、NAT的端口可預(yù)測性信息以及NAT的端口保護(hù)信息。11.根據(jù)權(quán)利要求8所述的方法,其中,如果所述兩個(gè)或更多對等機(jī)中的兩個(gè)或更多對等機(jī)具有同等優(yōu)先級值,則d)包括決定指定具有同等優(yōu)先級值的兩個(gè)或更多潛在主機(jī)中的哪個(gè)作為主機(jī)。12.根據(jù)權(quán)利要求11所述的方法,其中決定指定具有同等優(yōu)先級值的所述兩個(gè)或更多潛在主機(jī)中的哪個(gè)作為主機(jī)包括,指定具有同等優(yōu)先級值的兩個(gè)或更多潛在主機(jī)中的具有更高序號值的一個(gè)作為主機(jī),其中向所述兩個(gè)或更多潛在主機(jī)中的每一個(gè)分配不同的序號值。13.根據(jù)權(quán)利要求11所述的方法,其中決定指定具有同等優(yōu)先級值的所述兩個(gè)或更多潛在主機(jī)中的哪個(gè)作為主機(jī)包括分布式仲裁算法。14.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括,如果所述對等機(jī)被指定為主機(jī),則將所述對等機(jī)被指定為主機(jī)通知給所述一個(gè)或多個(gè)其它對等機(jī)并等待所述一個(gè)或多個(gè)其它對等機(jī)連接。15.根據(jù)權(quán)利要求14所述的方法,進(jìn)一步包括將連接到所述主機(jī)的對等機(jī)的數(shù)量與預(yù)期計(jì)數(shù)比較,并且如果連接到所述主機(jī)的對等機(jī)數(shù)量不等于所述預(yù)期計(jì)數(shù),則將連接到所述主機(jī)的對等機(jī)數(shù)量與所述一個(gè)或多個(gè)其它對等機(jī)共享。16.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括如果所述對等機(jī)未被指定為主機(jī),則嘗試將所述對等機(jī)連接到主機(jī)。17.根據(jù)權(quán)利要求14所述的方法,進(jìn)一步包括,如果所述對等機(jī)連接所述主機(jī)失敗,則將所述對等機(jī)連接所述主機(jī)失敗通知給所述兩個(gè)或更多其它對等機(jī)。18.—種對等裝置,包括計(jì)算機(jī)處理器;耦合到所述處理器的計(jì)算機(jī)存儲器;耦合到所述處理器的網(wǎng)絡(luò)接口,其中所述網(wǎng)絡(luò)接口被配置為便于所述處理器與在對等網(wǎng)格中連接的一個(gè)或多個(gè)其它對等裝置之間的通信;以及一組包含在所述存儲器中的計(jì)算機(jī)可讀指令,其中所述計(jì)算機(jī)可讀指令被配置為實(shí)施一種用于確定指定所述對等網(wǎng)格中的哪個(gè)對等裝置作為在所述對等網(wǎng)格內(nèi)進(jìn)行服務(wù)的主機(jī)的方法,所述方法包括a)收集用于對等機(jī)的NAT簡檔信息;b)與兩個(gè)或更多對等機(jī)中的一個(gè)或多個(gè)其它對等機(jī)共享所述用于對等機(jī)的NAT簡檔信息;c)接收用于所述一個(gè)或多個(gè)其它對等機(jī)的NAT簡檔信息;d)根據(jù)所述用于對等機(jī)的NAT簡檔信息和用于所述一個(gè)或多個(gè)其它對等機(jī)的NAT簡檔信息確定,指定所述兩個(gè)或更多對等機(jī)中的哪一個(gè)作為主機(jī)。全文摘要本發(fā)明涉及基于所發(fā)現(xiàn)的NAT類型選擇主機(jī)的方法??苫谒l(fā)現(xiàn)的NAT類型為對等網(wǎng)格選擇主機(jī)。NAT簡檔信息可由對等機(jī)中的每一個(gè)收集并與其它對等機(jī)分享。每個(gè)對等機(jī)接收用于其它對等機(jī)的NAT簡檔信息。每個(gè)對等機(jī)可根據(jù)用于該對等機(jī)的NAT簡檔信息和用于其它對等機(jī)的NAT簡檔信息確定,指定兩個(gè)或更多對等機(jī)中的哪個(gè)作為主機(jī)。文檔編號H04L12/24GK101715008SQ20091017328公開日2010年5月26日申請日期2009年9月22日優(yōu)先權(quán)日2008年9月22日發(fā)明者M(jìn)·L·雅各布,R·J·羅伊申請人:美國索尼電腦娛樂公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1