亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

對(duì)等中繼網(wǎng)絡(luò)中的觀眾的制作方法

文檔序號(hào):7609499閱讀:207來(lái)源:國(guó)知局
專利名稱:對(duì)等中繼網(wǎng)絡(luò)中的觀眾的制作方法
本申請(qǐng)要求于2003年10月提出的美國(guó)臨時(shí)申請(qǐng)60/513098(“對(duì)等中繼網(wǎng)絡(luò)”)的權(quán)益,該申請(qǐng)的公開內(nèi)容通過(guò)引用結(jié)合于本文中。
背景在典型的客戶服務(wù)器網(wǎng)絡(luò)中,網(wǎng)絡(luò)中的每個(gè)客戶建立到中央服務(wù)器的連接??蛻粝蚍?wù)器請(qǐng)求服務(wù)和數(shù)據(jù)。為與另一客戶進(jìn)行通信,客戶將請(qǐng)求發(fā)送到服務(wù)器。一般情況下,客戶彼此之間不建立直接連接。在具有N個(gè)客戶的客戶服務(wù)器網(wǎng)絡(luò)中,每個(gè)客戶具有1個(gè)到服務(wù)器的連接,并且服務(wù)器具有N個(gè)到每個(gè)客戶的相應(yīng)連接。例如,如圖31A所示,在具有6個(gè)客戶的客戶服務(wù)器網(wǎng)絡(luò)中,每個(gè)客戶具有1個(gè)到服務(wù)器的連接,并且服務(wù)器具有6個(gè)到客戶的相應(yīng)連接。
在典型的對(duì)等網(wǎng)絡(luò)(或“P2P網(wǎng)絡(luò)”)中,對(duì)等網(wǎng)絡(luò)中每個(gè)成員(或?qū)Φ润w)建立到每個(gè)其它成員的連接。通過(guò)使用這些直接的對(duì)等連接,成員將數(shù)據(jù)直接發(fā)送到其它成員和直接向其它成員請(qǐng)求數(shù)據(jù),而不是使用集中式服務(wù)器(例如,與成員通過(guò)服務(wù)器交互的典型客戶服務(wù)器網(wǎng)絡(luò)相比)。一般情況下,網(wǎng)絡(luò)中的每個(gè)成員在網(wǎng)絡(luò)中具有類似的責(zé)任,并且成員通常被認(rèn)為是平等的(作為網(wǎng)絡(luò)成員)。在具有N個(gè)對(duì)等體的對(duì)等網(wǎng)絡(luò)中,每個(gè)對(duì)等體具有N-1個(gè)到其它對(duì)等體的連接。例如,如圖31B所示,在具有6個(gè)對(duì)等體的對(duì)等網(wǎng)絡(luò)中,每個(gè)對(duì)等體具有5個(gè)到其它對(duì)等體的連接。
在一些對(duì)等網(wǎng)絡(luò)中,服務(wù)器還由成員用于一些集中式服務(wù),如地址發(fā)現(xiàn)(例如,用于為構(gòu)建對(duì)等網(wǎng)絡(luò)建立連接)。
概述本發(fā)明提供用于實(shí)施對(duì)等中繼的方法和設(shè)備。在一個(gè)實(shí)施中,對(duì)等中繼網(wǎng)絡(luò)包括多個(gè)即N個(gè)對(duì)等系統(tǒng);其中,所述對(duì)等中繼網(wǎng)絡(luò)中的每個(gè)對(duì)等系統(tǒng)連接至所述對(duì)等中繼網(wǎng)絡(luò)中小于或等于連接限制的多個(gè)其它對(duì)等系統(tǒng),所述連接限制大于或等于2,所述連接限制小于或等于N-2,所述對(duì)等中繼網(wǎng)絡(luò)中的每個(gè)對(duì)等系統(tǒng)配置為根據(jù)由一個(gè)或更多個(gè)中繼規(guī)則組成的集合,將數(shù)據(jù)中繼到連接至該對(duì)等系統(tǒng)的對(duì)等系統(tǒng),每個(gè)對(duì)等系統(tǒng)是參與者或觀眾,至少一個(gè)對(duì)等系統(tǒng)是參與者,至少一個(gè)對(duì)等系統(tǒng)是觀眾,參與者配置為生成要在所述對(duì)等中繼網(wǎng)絡(luò)中中繼的數(shù)據(jù),以及觀眾配置為中繼由參與者生成的數(shù)據(jù)。
在一個(gè)實(shí)施中,一種在對(duì)等中繼網(wǎng)絡(luò)中中繼數(shù)據(jù)的方法包括在中繼對(duì)等系統(tǒng)從對(duì)等中繼網(wǎng)絡(luò)中連接至所述中繼對(duì)等系統(tǒng)的發(fā)送對(duì)等系統(tǒng)接收數(shù)據(jù),其中,所述數(shù)據(jù)具有相關(guān)聯(lián)的、標(biāo)識(shí)生成所述數(shù)據(jù)的起源對(duì)等系統(tǒng)的信息;確認(rèn)允許所述起源對(duì)等系統(tǒng)發(fā)送數(shù)據(jù)以通過(guò)所述對(duì)等中繼網(wǎng)絡(luò)中繼;應(yīng)用由一個(gè)或更多個(gè)中繼規(guī)則組成的集合以選擇由所述由一個(gè)或更多個(gè)中繼規(guī)則組成的集合指示的、要中繼所述數(shù)據(jù)到的零或更多個(gè)對(duì)等系統(tǒng);以及將所述數(shù)據(jù)中繼到通過(guò)應(yīng)用所述由一個(gè)或更多個(gè)中繼規(guī)則組成的集合而選擇的任何對(duì)等系統(tǒng);其中,所述對(duì)等中繼網(wǎng)絡(luò)中的每個(gè)對(duì)等系統(tǒng)是參與者或觀眾。
在一個(gè)實(shí)施中,一種在對(duì)等中繼網(wǎng)絡(luò)中的對(duì)等系統(tǒng)包括用于在中繼對(duì)等系統(tǒng)從對(duì)等中繼網(wǎng)絡(luò)中連接至所述中繼對(duì)等系統(tǒng)的發(fā)送對(duì)等系統(tǒng)接收數(shù)據(jù)的工具,其中,所述數(shù)據(jù)具有相關(guān)聯(lián)的、標(biāo)識(shí)生成所述數(shù)據(jù)的起源對(duì)等系統(tǒng)的信息;用于確認(rèn)允許所述起源對(duì)等系統(tǒng)發(fā)送數(shù)據(jù)以通過(guò)所述對(duì)等中繼網(wǎng)絡(luò)中繼的工具;用于應(yīng)用由一個(gè)或更多個(gè)中繼規(guī)則組成的集合以選擇由所述由一個(gè)或更多個(gè)中繼規(guī)則組成的集合指示的、要中繼所述數(shù)據(jù)到的零或更多個(gè)對(duì)等系統(tǒng)的工具;以及用于將所述數(shù)據(jù)中繼到通過(guò)應(yīng)用所述由一個(gè)或更多個(gè)中繼規(guī)則組成的集合而選擇的任何對(duì)等系統(tǒng)的工具;其中,所述對(duì)等中繼網(wǎng)絡(luò)中的每個(gè)對(duì)等系統(tǒng)是參與者或觀眾。
附圖簡(jiǎn)述

圖1示出對(duì)等中繼網(wǎng)絡(luò)的一個(gè)實(shí)施的示圖。
圖2示出消息的一個(gè)實(shí)施的方框圖。
圖3示出在對(duì)等中繼網(wǎng)絡(luò)中中繼消息的對(duì)等體的一個(gè)實(shí)施的流程圖。
圖4示出根據(jù)中繼規(guī)則組成的集合、在對(duì)等中繼網(wǎng)絡(luò)中中繼消息的對(duì)等體的一個(gè)實(shí)施的流程圖。
圖5示出建立對(duì)等中繼網(wǎng)絡(luò)的一個(gè)實(shí)施的流程圖。
圖6示出將對(duì)等體連接至對(duì)等中繼網(wǎng)絡(luò)的一個(gè)實(shí)施的流程圖。
圖7示出選擇用于加入對(duì)等中繼網(wǎng)絡(luò)的對(duì)等體的一個(gè)實(shí)施的流程圖。
圖8示出強(qiáng)制對(duì)等體為對(duì)等中繼網(wǎng)絡(luò)中新對(duì)等體提供連接的一個(gè)實(shí)施的流程圖。
圖9示出在對(duì)等中繼網(wǎng)絡(luò)中斷開連接的一個(gè)實(shí)施的流程圖。
圖10示出維護(hù)對(duì)等中繼網(wǎng)絡(luò)的一個(gè)實(shí)施的流程圖。
圖11-18示出構(gòu)建、調(diào)整和維護(hù)網(wǎng)格的一個(gè)實(shí)施例子。
圖19示出在對(duì)等中繼網(wǎng)絡(luò)中構(gòu)建冗余列表的一個(gè)實(shí)施的流程圖。
圖20示出在對(duì)等中繼網(wǎng)絡(luò)中為要斷開連接的對(duì)等體更新冗余列表的一個(gè)實(shí)施的流程圖。
圖21示出中繼來(lái)自屬于多個(gè)網(wǎng)格的對(duì)等系統(tǒng)的消息的一個(gè)實(shí)施的流程圖。
圖22示出在支持觀眾和參與者的網(wǎng)格中中繼消息的一個(gè)實(shí)施的流程圖。
圖23示出檢測(cè)網(wǎng)格中的島的一個(gè)實(shí)施的流程圖。
圖24示出在對(duì)等中繼網(wǎng)絡(luò)中刪除島的一個(gè)實(shí)施的流程圖。
圖25和圖26示出檢測(cè)島和連接島的例子。
圖27示出在對(duì)等中繼網(wǎng)絡(luò)中檢測(cè)欺詐違規(guī)的一個(gè)實(shí)施的流程圖。
圖28示出在對(duì)等中繼網(wǎng)絡(luò)中檢測(cè)安全違規(guī)的一個(gè)實(shí)施的流程圖。
圖29和圖30分別示出服務(wù)器和對(duì)等系統(tǒng)的一個(gè)實(shí)施的方框圖。
圖31A和圖31B示出典型的客戶服務(wù)器與對(duì)等體系結(jié)構(gòu)。
詳細(xì)說(shuō)明本發(fā)明提供用于實(shí)施對(duì)等中繼的方法和設(shè)備。在一個(gè)實(shí)施中,連接多個(gè)計(jì)算機(jī)系統(tǒng)以形成對(duì)等網(wǎng)絡(luò)。每個(gè)計(jì)算機(jī)系統(tǒng)連接至多達(dá)預(yù)定數(shù)量的其它計(jì)算機(jī)系統(tǒng)。為進(jìn)行通信,計(jì)算機(jī)系統(tǒng)將消息發(fā)送到每個(gè)已連接系統(tǒng)。當(dāng)計(jì)算機(jī)系統(tǒng)收到來(lái)自另一計(jì)算機(jī)系統(tǒng)的消息時(shí),接收計(jì)算機(jī)系統(tǒng)根據(jù)用于該對(duì)等中繼網(wǎng)絡(luò)的中繼規(guī)程或規(guī)則將消息發(fā)送或中繼到其它計(jì)算機(jī)系統(tǒng)。根據(jù)中繼規(guī)則,消息在整個(gè)網(wǎng)絡(luò)傳播到達(dá)所有成員計(jì)算機(jī)系統(tǒng)。
圖1示出對(duì)等中繼網(wǎng)絡(luò)100的一個(gè)實(shí)施的示圖。對(duì)等中繼網(wǎng)絡(luò)還可稱為“網(wǎng)格”。在圖1中,連接一組10個(gè)對(duì)等系統(tǒng)105A...J(還稱為“對(duì)等體”)以形成對(duì)等中繼網(wǎng)絡(luò)。每個(gè)對(duì)等系統(tǒng)105是啟用網(wǎng)絡(luò)的游戲控制臺(tái),如由Sony Computer Entertainment Inc.提供的具有網(wǎng)絡(luò)適配器的PlayStation 2TM游戲控制臺(tái)。對(duì)等系統(tǒng)105直接(例如,有線或無(wú)線連接)或間接(例如,通過(guò)內(nèi)聯(lián)網(wǎng)或諸如因特網(wǎng)的公共IP網(wǎng)絡(luò))連接。在一個(gè)實(shí)施中,對(duì)等系統(tǒng)105連接時(shí)使用UDP或TCP連接。對(duì)等系統(tǒng)105交換數(shù)據(jù)以支持網(wǎng)絡(luò)環(huán)境或活動(dòng),如聊天環(huán)境或在線游戲。
每個(gè)對(duì)等體105還具有到中央服務(wù)器110的連接,如通過(guò)因特網(wǎng)的UDP或TCP連接(圖1中未示出到服務(wù)器110的連接)。服務(wù)器110是為已連接對(duì)等系統(tǒng)105提供集中式服務(wù)的服務(wù)器計(jì)算機(jī)系統(tǒng)。在一個(gè)實(shí)施中,服務(wù)器提供對(duì)等系統(tǒng)的地址目錄,并跟蹤對(duì)系統(tǒng)系統(tǒng)之間的連接。其它服務(wù)器服務(wù)的例子包括但不限于驗(yàn)證、玩家匹配和跟蹤對(duì)等系統(tǒng)地址。如下所述,在一些實(shí)施中,服務(wù)器可支持多個(gè)獨(dú)立或相關(guān)的對(duì)等中繼網(wǎng)絡(luò)。在一個(gè)實(shí)施中,服務(wù)器支持多個(gè)環(huán)境或界,將客戶分割或分組到環(huán)境中并適當(dāng)?shù)剡^(guò)濾數(shù)據(jù)。在一個(gè)實(shí)施中,服務(wù)器包括在以下同時(shí)待審且共同轉(zhuǎn)讓的美國(guó)專利申請(qǐng)中描述的服務(wù)器的一個(gè)或更多個(gè)方面__提出的美國(guó)專利申請(qǐng)10/__(“配置切換網(wǎng)絡(luò)通信體系結(jié)構(gòu)之間的動(dòng)態(tài)改變(ConfigurationSwitchingDynamically Changing Between Network CommunicationArchitectures)”)和__提出的美國(guó)專利申請(qǐng)10/__(“多用戶應(yīng)用編程接口(Multi-User Application Programming Interface)”),這些申請(qǐng)的公開內(nèi)容通過(guò)引用結(jié)合于本文中。在另一實(shí)施中,對(duì)等體不使用集中式服務(wù)器(例如,通過(guò)直接通信構(gòu)建網(wǎng)格及中繼數(shù)據(jù))。
網(wǎng)絡(luò)100具有連接限制3。連接限制由服務(wù)器設(shè)置,并限定允許每個(gè)對(duì)等體105在網(wǎng)格中具有的連接的最大數(shù)量。在另一實(shí)施中,一個(gè)對(duì)等體(例如,建立網(wǎng)格的對(duì)等體)設(shè)置連接限制,或者多個(gè)對(duì)等體協(xié)商連接限制。在圖1中,連接限制為3,并且每個(gè)對(duì)等體105具有3個(gè)連接。對(duì)等系統(tǒng)A-J各具有3個(gè)到其它對(duì)等體(對(duì)等系統(tǒng)105A還稱為對(duì)等系統(tǒng)A或?qū)Φ润wA)的連接。網(wǎng)絡(luò)100是3連接的對(duì)等中繼網(wǎng)絡(luò),因此,每個(gè)對(duì)等體105具有3個(gè)到其它對(duì)等體的連接。
這些對(duì)等體105通過(guò)在整個(gè)網(wǎng)絡(luò)100廣播消息而進(jìn)行通信。這些對(duì)等體105通過(guò)根據(jù)網(wǎng)絡(luò)100的中繼規(guī)則將已接收消息中繼到已連接對(duì)等體105而傳播消息。在此實(shí)施中,中繼規(guī)則規(guī)定對(duì)等體105將消息中繼到連接至對(duì)等體105的每個(gè)對(duì)等體105,但兩種情況除外(i)對(duì)等體105不中繼該對(duì)等體105已經(jīng)中繼的消息,以及(ii)對(duì)等體105不將消息中繼回這樣的對(duì)等體105,即該中繼對(duì)等體105從其收到了該消息。在一個(gè)實(shí)施中,對(duì)等體105還不將消息中繼到這樣的對(duì)等體105,該中繼對(duì)等體105已經(jīng)從其收到該消息(例如,當(dāng)中繼對(duì)等體105在中繼對(duì)等體105中繼該消息前從多個(gè)對(duì)等體105收到該消息時(shí))。在其它實(shí)施中,可使用不同或附加的規(guī)則。中繼規(guī)則(和其它規(guī)則)由服務(wù)器建立,或預(yù)設(shè)在對(duì)等系統(tǒng)(或其系統(tǒng)軟件)中。在另一實(shí)施中,可動(dòng)態(tài)修改規(guī)則,如通過(guò)在整個(gè)網(wǎng)格傳播具有規(guī)則更新的消息。
在網(wǎng)絡(luò)100的一個(gè)應(yīng)用中,這些對(duì)等體105在玩網(wǎng)絡(luò)游戲。在游戲的過(guò)程中,對(duì)等體105生成反映由該對(duì)等體105引起的動(dòng)作或事件的更新消息。例如,在玩家的計(jì)算機(jī)系統(tǒng)(例如,對(duì)等體A)上執(zhí)行游戲軟件期間,計(jì)算機(jī)系統(tǒng)生成要由其它玩家的計(jì)算機(jī)系統(tǒng)使用的、表示游戲中動(dòng)作的更新數(shù)據(jù),如移動(dòng)或射擊(例如,更新玩家的位置)。為使更新生效,每個(gè)對(duì)等體105需要從更新對(duì)等體105收到更新。這些對(duì)等體105在整個(gè)網(wǎng)絡(luò)100中繼更新消息以將消息傳播到每個(gè)對(duì)等體105。
在一個(gè)例子中,對(duì)等體A具有要發(fā)送到其它對(duì)等體的更新。對(duì)等體A構(gòu)建更新消息,更新消息包括更新數(shù)據(jù)、標(biāo)識(shí)對(duì)等體A是更新源的標(biāo)識(shí)符及區(qū)分此消息與由對(duì)等體A發(fā)出的其它消息的順序標(biāo)識(shí)符,并提供相對(duì)順序。對(duì)等體A將消息發(fā)送到其連接的對(duì)等體B、C、D。對(duì)等體B將從對(duì)等體A接收的消息發(fā)送到對(duì)等體D和E。對(duì)等體B不將消息發(fā)送到對(duì)等體A,這是因?yàn)閷?duì)等體B從對(duì)等體A接收了該消息。類似地,對(duì)等體C將來(lái)自對(duì)等體A的消息發(fā)送到對(duì)等體G和H,并且對(duì)等體D將來(lái)自對(duì)等體A的消息發(fā)送到對(duì)等體B和G。當(dāng)對(duì)等體B從對(duì)等體D收到消息時(shí),由于對(duì)等體B識(shí)別出這是相同的消息(通過(guò)使用消息的標(biāo)識(shí)符),因此,對(duì)等體B不再中繼該消息。類似地,對(duì)等體D不中繼從對(duì)等體B接收的消息。假設(shè)對(duì)等體之間的連接在對(duì)等體之間傳送消息的時(shí)間量方面基本上相同,則在下一組中繼中,對(duì)等體E將來(lái)自對(duì)等體B的消息傳送到對(duì)等體F和I,對(duì)等體G將來(lái)自對(duì)等體C的消息中繼到對(duì)等體D和F(視先到達(dá)對(duì)等體C的消息而定,或者將來(lái)自對(duì)等體D的消息中繼到對(duì)等體C和F),以及對(duì)等體H將來(lái)自對(duì)等體C的消息中繼到對(duì)等體I和J。此時(shí),每個(gè)對(duì)等體已接收來(lái)自對(duì)等體A的更新消息。然而,對(duì)等體F、I和J剛收到消息,因此,這些對(duì)等體將中繼該消息。對(duì)等體F將來(lái)自對(duì)等體E的消息中繼到對(duì)等體G和J(或者將來(lái)自對(duì)等體G的消息中繼到對(duì)等體E和J,以先到者為準(zhǔn)),對(duì)等體I將來(lái)自對(duì)等體E的消息中繼到對(duì)等體H和J(或?qū)?lái)自對(duì)等體H的消息中繼到對(duì)等體E和J,以先到者為準(zhǔn)),以及對(duì)等體J將來(lái)自對(duì)等體H的消息中繼到對(duì)等體F和I。到此時(shí)為止,所有對(duì)等體發(fā)送或中繼了一次消息。由于這些對(duì)等體將不會(huì)再一次中繼相同的消息,此消息的傳播結(jié)束。
這樣,消息在整個(gè)對(duì)等網(wǎng)絡(luò)100傳播。更新信息在參與游戲的對(duì)等系統(tǒng)105之間的這種傳播支持游戲和游戲環(huán)境。這些對(duì)等系統(tǒng)105可在整個(gè)網(wǎng)絡(luò)100分發(fā)數(shù)據(jù)而不使用集中式服務(wù)器110進(jìn)行分發(fā)。另外,每個(gè)對(duì)等體105不直接連接至其它對(duì)等體105,從而節(jié)省了資源。因此,網(wǎng)格100限制每個(gè)對(duì)等體的網(wǎng)絡(luò)帶寬要求(由于它只需要與有限數(shù)量的其它客戶進(jìn)行通信),同時(shí)允許來(lái)自任何單個(gè)客戶的數(shù)據(jù)快速傳播到網(wǎng)格中的其它對(duì)等體(例如,通過(guò)使用UDP套接字)。
在其它實(shí)施中,對(duì)等中繼網(wǎng)絡(luò)包括更多或更少的對(duì)等系統(tǒng),并且網(wǎng)絡(luò)具有不同的連接限制。視對(duì)等體數(shù)量、連接限制和用于建立連接的規(guī)則而定,并非所有對(duì)等體可使其所有連接被占滿,并且因此可能有一個(gè)(或更多個(gè))具有可用連接的對(duì)等體。
在另一實(shí)施中,連接限制可以不同。在一個(gè)實(shí)施中,連接限制對(duì)每個(gè)對(duì)等系統(tǒng)是特定的,一些、全部或沒(méi)有對(duì)等體具有不同的連接限制。每個(gè)對(duì)等體設(shè)置其連接限制,或者由服務(wù)器指定連接限制。在一個(gè)例子中,對(duì)等體X和Y各具有連接限制5,并且對(duì)等體Z具有連接限制4,以及剩余的對(duì)等體各具有連接限制3。在另一實(shí)施中,連接限制是動(dòng)態(tài)的。這種情況下,服務(wù)器調(diào)整對(duì)等體的連接限制,如基于網(wǎng)絡(luò)性能調(diào)整(例如,當(dāng)網(wǎng)絡(luò)通信量低時(shí),連接限制低)。在另一實(shí)施中,一個(gè)或更多個(gè)對(duì)等系統(tǒng)分別動(dòng)態(tài)調(diào)整其相應(yīng)的連接限制。或者,服務(wù)器為特定對(duì)等系統(tǒng)動(dòng)態(tài)調(diào)整連接限制(例如,調(diào)整一些但并非全部)。
圖2示出消息205的一個(gè)實(shí)施的方框圖。消息205由對(duì)等系統(tǒng)構(gòu)建以發(fā)送到對(duì)等中繼網(wǎng)絡(luò)中的其它對(duì)等體。例如,參照?qǐng)D1,當(dāng)對(duì)等體A具有要發(fā)送到其它對(duì)等體的更新消息時(shí),對(duì)等體A構(gòu)建諸如消息205的消息。消息205包括尋址數(shù)據(jù)210、起源標(biāo)識(shí)符215、順序值220和有效負(fù)荷數(shù)據(jù)230。尋址數(shù)據(jù)210包括網(wǎng)絡(luò)尋址信息以將消息205從該對(duì)等體發(fā)送到另一對(duì)等體。在一個(gè)實(shí)施中,尋址數(shù)據(jù)210包括發(fā)送對(duì)等體的IP地址和預(yù)期接收對(duì)等體的IP地址。起源標(biāo)識(shí)符215標(biāo)識(shí)構(gòu)建消息205的對(duì)等體。此標(biāo)識(shí)符215向整個(gè)對(duì)等中繼網(wǎng)絡(luò)的對(duì)等體指示通過(guò)網(wǎng)絡(luò)傳播的消息的起源。通過(guò)使用起源標(biāo)識(shí)符215,接收消息205的對(duì)等體可確定消息205始于網(wǎng)絡(luò)中的哪個(gè)對(duì)等體。順序值220標(biāo)識(shí)特定的消息205,并提供相對(duì)順序信息。通過(guò)使用順序值220,接收消息205的對(duì)等體可確定是否已經(jīng)接收某個(gè)特殊消息,并可確定從由起源標(biāo)識(shí)符215指示的對(duì)等體發(fā)送的消息的次序或順序。數(shù)據(jù)230是消息205的有效負(fù)荷數(shù)據(jù)。對(duì)于更新消息(例如,在游戲中),有效負(fù)荷數(shù)據(jù)230是要由接收對(duì)等體使用的更新數(shù)據(jù)。在替代實(shí)施中,可使用不同類型的消息,并且可使用與圖2所示消息不同格式的消息(例如,包括不同或附加的信息)。例如,消息可包括文件或文件的一部分或數(shù)據(jù)幀,如向網(wǎng)格成員公布的游戲數(shù)據(jù)幀或音頻文件幀或其部分。接收對(duì)等體可使用每個(gè)消息中包括的順序值重建整個(gè)文件。在另一例子中,消息包括附加的標(biāo)識(shí)信息,如指示消息所屬網(wǎng)格的標(biāo)識(shí)符,以由屬于多個(gè)網(wǎng)格的對(duì)等體進(jìn)行中繼。
圖3示出在對(duì)等中繼網(wǎng)絡(luò)中中繼消息的對(duì)等體的一個(gè)實(shí)施的流程圖300。最初,對(duì)等體連接至對(duì)等中繼網(wǎng)絡(luò)中的一個(gè)或更多個(gè)其它對(duì)等系統(tǒng)。
對(duì)等體通過(guò)對(duì)等體與發(fā)送對(duì)等體之間的連接從發(fā)送對(duì)等體接收消息,方框305。消息包括起源標(biāo)識(shí)符、順序值和有效負(fù)荷數(shù)據(jù)(例如,更新數(shù)據(jù)),與圖2所示消息相同。
對(duì)等體選擇要中繼已接收消息到的連接,方框310。對(duì)等體根據(jù)用于對(duì)等中繼網(wǎng)絡(luò)的中繼規(guī)則,從對(duì)等體的可用連接中選擇連接。在應(yīng)用中繼規(guī)則后,對(duì)等體可能選擇了對(duì)等體的連接中的一些、未選擇對(duì)等體的連接或選擇了對(duì)等體的連接中的全部。
對(duì)等體將消息中繼到每個(gè)選定的連接,方框315。對(duì)等體為每個(gè)選定的連接構(gòu)建消息。對(duì)于要發(fā)送的每個(gè)消息,對(duì)等體使用已接收消息,但在適當(dāng)時(shí)更新尋址信息(例如,將發(fā)送方改為對(duì)等體,并且將接收方改為用于連接的接收對(duì)等體)。相應(yīng)地,有效負(fù)荷數(shù)據(jù)保持不變。在另一實(shí)施中,對(duì)等體還可將數(shù)據(jù)添加到消息或者改變消息中的數(shù)據(jù)。對(duì)等體將構(gòu)建的消息發(fā)送到適當(dāng)?shù)慕邮辗健?br> 圖4示出根據(jù)中繼規(guī)則組成的集合在對(duì)等中繼網(wǎng)絡(luò)中中繼消息的對(duì)等體的一個(gè)實(shí)施的流程圖400。圖4中使用的中繼規(guī)則是一個(gè)中繼規(guī)則集合的例子。其它實(shí)施可使用不同或附加的中繼規(guī)則。最初,中繼對(duì)等體連接至對(duì)等中繼網(wǎng)絡(luò)中的N個(gè)其它對(duì)等系統(tǒng)。例如,在圖1所示的網(wǎng)絡(luò)中,對(duì)等體D連接至3個(gè)其它對(duì)等體(并且因此在這種情況下N=3)。圖4用于中繼消息的中繼規(guī)則為1.不中繼消息兩次2.不將消息中繼回發(fā)送方3.不將消息中繼到起源對(duì)等體4.在應(yīng)用規(guī)則1和2后將消息中繼到可用連接上的對(duì)等體中繼對(duì)等體接收消息,方框405。中繼對(duì)等體確定中繼對(duì)等體是否已經(jīng)接收此消息,方框410。中繼對(duì)等體將消息的標(biāo)識(shí)數(shù)據(jù)與由中繼對(duì)等體存儲(chǔ)的已經(jīng)收到的消息的數(shù)據(jù)進(jìn)行比較。在一個(gè)實(shí)施中,每個(gè)對(duì)等體維護(hù)由已接收消息的起源標(biāo)識(shí)符和順序值組成的已接收消息表。中繼對(duì)等體從已接收消息中檢索起源標(biāo)識(shí)符和順序值,并將此信息與中繼對(duì)等體的已接收消息表中存儲(chǔ)的數(shù)據(jù)進(jìn)行比較。如果中繼對(duì)等體確定中繼對(duì)等體以前接收了此已接收消息(例如,對(duì)等體在存儲(chǔ)已接收消息的起源標(biāo)識(shí)符和順序值的已接收消息表中找到條目),則中繼對(duì)等體不中繼已接收消息。在另一實(shí)施中,中繼對(duì)等體檢查以確定中繼對(duì)等體是否以前中繼了已接收消息。
如果中繼對(duì)等體確定中繼對(duì)等體以前未接收此消息,則中繼對(duì)等體記錄已接收該消息,方框412。在一個(gè)實(shí)施中,中繼對(duì)等體將關(guān)于已接收消息的起源標(biāo)識(shí)符和順序值的條目添加到中繼對(duì)等體的已接收消息表。如果該表已經(jīng)具有關(guān)于此起源標(biāo)識(shí)符和順序值的條目,則中繼對(duì)等體不改變表。
在記錄已接收該消息后,中繼對(duì)等體設(shè)置計(jì)數(shù)器,方框415。中繼對(duì)等體使用計(jì)數(shù)器來(lái)逐步遍歷(step through)中繼對(duì)等體的每個(gè)可用連接。在一個(gè)實(shí)施中,中繼對(duì)等體將整數(shù)計(jì)數(shù)器i設(shè)為1。
中繼對(duì)等體確定中繼對(duì)等體是否從連接至由計(jì)數(shù)器所示連接的對(duì)等體接收了消息,方框420。已接收消息包括指示已接收消息的發(fā)送方的尋址信息。計(jì)數(shù)器指示連接,并因此指示已連接對(duì)等體及該對(duì)等體的尋址信息。例如,圖1中的對(duì)等體D具有3個(gè)連接,并且對(duì)等體D為每個(gè)連接指定了數(shù)字對(duì)等體A連接至連接1,對(duì)等體B連接至連接2,以及對(duì)等體G連接至連接3。因此,當(dāng)計(jì)數(shù)器i為1時(shí),對(duì)等體D通過(guò)將已接收消息的尋址信息(發(fā)送方)與由對(duì)等體D存儲(chǔ)的對(duì)等體A的尋址信息進(jìn)行比較,檢查已接收消息是否由對(duì)等體A發(fā)送。如果已接收消息是由連接至由計(jì)數(shù)器所示連接的對(duì)等體發(fā)送到中繼對(duì)等體,則中繼對(duì)等體不將消息中繼到該對(duì)等體。
如果已接收消息不是由連接至由計(jì)數(shù)器所示連接的對(duì)等體發(fā)送到中繼對(duì)等體,則中繼對(duì)等體確定連接至由計(jì)數(shù)器所示連接的對(duì)等體是否為已接收消息的起源對(duì)等系統(tǒng),方框422。已接收消息包括指示作為已接收消息的起源的對(duì)等體(最初生成消息的數(shù)據(jù)的對(duì)等體,再調(diào)用圖2的起源標(biāo)識(shí)符215)的信息。如果連接至由計(jì)數(shù)器所示連接的對(duì)等體是已接收消息的起源對(duì)等系統(tǒng),則中繼對(duì)等體不將消息中繼到該對(duì)等體。
如果已接收消息不是由連接至由計(jì)數(shù)器所示連接的對(duì)等體發(fā)送到中繼對(duì)等體,并且連接至由計(jì)數(shù)器所示連接的對(duì)等體不是已接收消息的起源對(duì)等系統(tǒng),則中繼對(duì)等體將消息中繼到該連接的對(duì)等體,方框425。中繼對(duì)等體為所示連接構(gòu)建消息。中繼對(duì)等體復(fù)制已接收消息并在適當(dāng)時(shí)更新尋址信息(例如,將發(fā)送方改為中繼對(duì)等體,并且將接收方改為連接至所示連接的已連接對(duì)等體)。相應(yīng)地,有效負(fù)荷數(shù)據(jù)保持不變。中繼對(duì)等體將構(gòu)建的消息通過(guò)所示連接發(fā)送到已連接對(duì)等體。
中繼對(duì)等體確定是否已檢查所有連接,方框430。中繼對(duì)等體將計(jì)數(shù)器與在對(duì)等中繼網(wǎng)絡(luò)中由中繼對(duì)等體建立的連接的數(shù)量進(jìn)行比較。例如,中繼對(duì)等體將計(jì)數(shù)器i與N(由中繼對(duì)等體保持的連接的數(shù)量)的值進(jìn)行比較。如果中繼對(duì)等體檢查了所有連接,則中繼對(duì)等體完成此已接收消息的中繼。
如果中繼對(duì)等體未檢查所有連接,則中繼對(duì)等體增大計(jì)數(shù)器,方框435。例如,中繼對(duì)等體將計(jì)數(shù)器i設(shè)為i+1。在增大計(jì)數(shù)器后,中繼對(duì)等體確定中繼對(duì)等體是否從連接至由增大的計(jì)數(shù)器所示連接的對(duì)等體接收了已接收消息,從而返回方框420。
如上所述,在其它實(shí)施中,還可使用不同的、附加的或更少的中繼規(guī)則。在一個(gè)實(shí)施中,中繼對(duì)等體確實(shí)將消息中繼回發(fā)送方(例如,因此發(fā)送方可確認(rèn)中繼對(duì)等體未改變數(shù)據(jù))。在另一實(shí)施中,中繼對(duì)等體不將消息中繼到指示為消息的起源的對(duì)等體(例如,如消息的起源標(biāo)識(shí)符所示)。在另一實(shí)施中,中繼對(duì)等體不會(huì)再一次將相同的消息中繼到相同的已連接對(duì)等體。在另一實(shí)施中,中繼對(duì)等體選擇由可用連接組成的子集中繼消息,如選擇具有最低和最高響應(yīng)時(shí)間的對(duì)等體。在另一實(shí)施中,每個(gè)對(duì)等體根據(jù)消息中存儲(chǔ)的跳躍計(jì)數(shù)來(lái)將消息中繼到所有對(duì)等體的已連接對(duì)等體,以便將只中繼消息一定次數(shù)。在另一實(shí)施中,對(duì)等體將相同的消息中繼有限的次數(shù)(不止一次)。
圖5示出建立對(duì)等中繼網(wǎng)絡(luò)的一個(gè)實(shí)施的流程圖500。最初,部署對(duì)等系統(tǒng)和服務(wù)器,如圖1中的對(duì)等體A和服務(wù)器110。對(duì)等系統(tǒng)開通到服務(wù)器的連接,方框505。對(duì)等系統(tǒng)連接至服務(wù)器以建立對(duì)等中繼網(wǎng)絡(luò)(或網(wǎng)格),并且可稱為“建立對(duì)等體”。至服務(wù)器的連接可以是直接或間接的網(wǎng)絡(luò)連接。在一個(gè)實(shí)施中,對(duì)等體被指定到一小部分空間或由服務(wù)器維護(hù)的多個(gè)界或環(huán)境之一或者加入并在由一小部分空間或服務(wù)器維護(hù)的多個(gè)界或環(huán)境之一中注冊(cè)。服務(wù)器在允許對(duì)等體進(jìn)一步交互前驗(yàn)證對(duì)等體。對(duì)等系統(tǒng)將創(chuàng)建網(wǎng)格請(qǐng)求提交到服務(wù)器,方框510。創(chuàng)建網(wǎng)格請(qǐng)求指示對(duì)等體的標(biāo)識(shí)信息及對(duì)等體請(qǐng)求服務(wù)器建立新對(duì)等中繼網(wǎng)絡(luò)。在一個(gè)實(shí)施中,請(qǐng)求還包括對(duì)等體請(qǐng)求服務(wù)器應(yīng)用(例如,加入網(wǎng)格的限制)的條件。在另一實(shí)施中,請(qǐng)求指示在網(wǎng)格中使用的連接限制和規(guī)則集合(例如,中繼規(guī)則和連接規(guī)則)。服務(wù)器注冊(cè)新網(wǎng)格,方框515。服務(wù)器維護(hù)跟蹤已建立網(wǎng)格的數(shù)據(jù)表或列表。服務(wù)器為新網(wǎng)格創(chuàng)建新表,并將請(qǐng)求對(duì)等體添加到表中。服務(wù)器向?qū)Φ润w發(fā)送已建立網(wǎng)格的確認(rèn),方框520。確認(rèn)包括對(duì)等體接入網(wǎng)格所需的任何標(biāo)識(shí)或接入信息。在一個(gè)實(shí)施中,確認(rèn)包括用于網(wǎng)格的連接限制和規(guī)則(例如,中繼規(guī)則)。
圖6示出將對(duì)等體連接至對(duì)等中繼網(wǎng)絡(luò)的一個(gè)實(shí)施的流程圖600。最初,對(duì)等中繼網(wǎng)絡(luò)已由對(duì)等體和服務(wù)器建立,如圖1中的對(duì)等體A和服務(wù)器110。
對(duì)等系統(tǒng)連接至服務(wù)器,方框505。對(duì)等系統(tǒng)連接至服務(wù)器以加入對(duì)等中繼網(wǎng)絡(luò)(或網(wǎng)格),并且可稱為“新對(duì)等體”或“加入對(duì)等體”。至服務(wù)器的連接可以是直接或間接的網(wǎng)絡(luò)連接。在一個(gè)實(shí)施中,對(duì)等體被指定到一小部分空間或由服務(wù)器維護(hù)的多個(gè)界或環(huán)境之一或者加入并在一小部分空間或由服務(wù)器維護(hù)的多個(gè)界或環(huán)境之一中注冊(cè)。服務(wù)器在允許對(duì)等體進(jìn)一步交互前驗(yàn)證對(duì)等體。
對(duì)等體從服務(wù)器的可用網(wǎng)格中選擇網(wǎng)格,方框610。在一個(gè)實(shí)施中,對(duì)等體請(qǐng)求可用網(wǎng)格列表并從該列表中選擇。在另一實(shí)施中,服務(wù)器在對(duì)等體連接至服務(wù)器時(shí)自動(dòng)提供可用網(wǎng)格列表。在一個(gè)實(shí)施中,服務(wù)器提供對(duì)等體已在其中注冊(cè)的界的可用網(wǎng)格列表。服務(wù)器還可提供附加的信息以幫助選擇(例如,哪些對(duì)等體已經(jīng)是每個(gè)網(wǎng)格的成員)。對(duì)等體將網(wǎng)格選擇提交到服務(wù)器。
服務(wù)器發(fā)送已經(jīng)加入選定的網(wǎng)格的對(duì)等體的地址,方框615。地址指示如何與網(wǎng)格成員進(jìn)行通信(例如,IP地址)。地址用于與網(wǎng)格成員建立對(duì)等連接,而不是通過(guò)服務(wù)器的連接。如果選定的網(wǎng)格限制了接入并且不允許新對(duì)等體加入選定的網(wǎng)格,則服務(wù)器不將地址提供到對(duì)等體,并愿意讓對(duì)等體選擇不同的網(wǎng)格。在一個(gè)實(shí)施中,服務(wù)器將選定的網(wǎng)格的連接限制的規(guī)則與地址一起提供到新對(duì)等體。
新對(duì)等體將加入消息發(fā)送到每個(gè)網(wǎng)格成員,方框620。加入消息指示新對(duì)等體的地址及該對(duì)等體對(duì)于該網(wǎng)格而言是新的。在另一實(shí)施中,新對(duì)等體發(fā)送指示對(duì)等體的地址和對(duì)等體可用的連接的數(shù)量的連接可用消息(如下所述,類似于當(dāng)對(duì)等體失去連接時(shí))。在另一實(shí)施中,新對(duì)等體將加入消息發(fā)送到一個(gè)網(wǎng)格成員,并且該網(wǎng)格成員開始通過(guò)網(wǎng)格中繼加入消息。
網(wǎng)格成員接收加入消息,并且每個(gè)成員將加入響應(yīng)發(fā)送回新對(duì)等體,方框625。加入響應(yīng)指示響應(yīng)對(duì)等體是否具有可用連接??隙憫?yīng)指示響應(yīng)對(duì)等體具有可用連接。否定響應(yīng)指示響應(yīng)對(duì)等體沒(méi)有可用連接。響應(yīng)對(duì)等體記錄加入消息中新對(duì)等體的地址,并使用該地址發(fā)送加入響應(yīng)。新對(duì)等體接收加入響應(yīng)。
新對(duì)等體選擇要連接至網(wǎng)格成員中的哪些,方框630。新對(duì)等體使用連接規(guī)則集合來(lái)為連接選擇對(duì)等體。例如,在一個(gè)實(shí)施中,新對(duì)等體按新對(duì)等體接收肯定響應(yīng)的順序,從發(fā)送肯定響應(yīng)的對(duì)等體中選擇多達(dá)網(wǎng)格的連接限制的多個(gè)對(duì)等體(例如,對(duì)于連接限制3,新對(duì)等體選擇對(duì)應(yīng)于接收的前三個(gè)肯定響應(yīng)的對(duì)等體)。不同的實(shí)施可使用不同的連接規(guī)則集合。新對(duì)等體存儲(chǔ)每個(gè)選定的對(duì)等體的響應(yīng)時(shí)間。在另一實(shí)施中,新對(duì)等體存儲(chǔ)所有響應(yīng)(肯定和否定)的響應(yīng)時(shí)間。
在為連接選擇對(duì)等體后,新對(duì)等體開通至選定的對(duì)等體的連接,方框635。新對(duì)等體將連接請(qǐng)求發(fā)送到每個(gè)選定的對(duì)等體,并且選定的對(duì)等體確認(rèn)請(qǐng)求,從而開通連接(除非對(duì)于選定的對(duì)等體連接已變得不可用)。對(duì)等體之間的連接可以是直接或間接的(例如,跨網(wǎng)絡(luò),如因特網(wǎng))。在一個(gè)實(shí)施中,當(dāng)對(duì)等體開通連接時(shí),每個(gè)對(duì)等體將連接通知服務(wù)器。
在另一實(shí)施中,服務(wù)器通過(guò)強(qiáng)制一個(gè)或更多個(gè)連接來(lái)幫助加入網(wǎng)格。服務(wù)器可使一個(gè)對(duì)等體關(guān)閉連接,并開通至另一所指示的對(duì)等體的連接。服務(wù)器還可使對(duì)等體關(guān)閉一個(gè)或更多個(gè)其連接。
圖7示出諸如圖6的方框630中選擇加入對(duì)等中繼網(wǎng)絡(luò)的對(duì)等體的一個(gè)實(shí)施的流程圖700。最初,新對(duì)等體已選擇網(wǎng)格,并發(fā)出加入消息到該網(wǎng)格的成員對(duì)等體。新對(duì)等體已接收從成員對(duì)等體返回的加入響應(yīng)。
新對(duì)等體選擇對(duì)應(yīng)于第一已接收肯定響應(yīng)的對(duì)等體,方框705。此肯定響應(yīng)在其它響應(yīng)之前接收,并表示最快的可用連接。新對(duì)等體選擇對(duì)應(yīng)于最后已接收肯定響應(yīng)的對(duì)等體,方框710。此肯定響應(yīng)在其它響應(yīng)之后接收,并表示最慢的可用連接。為確定哪個(gè)響應(yīng)是最后的,新對(duì)等體等待直至所有響應(yīng)已接收,或者等待規(guī)定的時(shí)期,然后宣布該期間內(nèi)最后收到的為最后。新對(duì)等體隨機(jī)從剩余肯定響應(yīng)中選擇對(duì)等體,直至新對(duì)等體已選擇等于連接限制的多個(gè)對(duì)等體,方框715。這些選擇支持通過(guò)網(wǎng)格的快速和慢速連接的平均分發(fā)。
如上所述,在各種實(shí)施中,可使用不同或附加的連接規(guī)則。在一個(gè)實(shí)施中,新對(duì)等體選擇第一肯定響應(yīng)和最后肯定響應(yīng)的對(duì)等體,然后以響應(yīng)時(shí)間的遞增次序(在第一后)選擇對(duì)應(yīng)于肯定響應(yīng)的對(duì)等體。在另一實(shí)施中,新對(duì)等體在響應(yīng)到達(dá)時(shí)選擇對(duì)等體(例如,為最后已接收肯定響應(yīng)保留一個(gè)空間),而不是等待開始選擇對(duì)等體。在另一實(shí)施中,新對(duì)等體使用響應(yīng)時(shí)間閾值選擇對(duì)等體(例如,不選擇具有超過(guò)某一限制的響應(yīng)時(shí)間的對(duì)等體)。在另一實(shí)施中,新對(duì)等體基于對(duì)等體的特征(使用在加入響應(yīng)中提供的信息)選擇對(duì)等體,如存儲(chǔ)容量、處理速度、接入級(jí)別或可用功能。
在一個(gè)實(shí)施中,對(duì)等系統(tǒng)根據(jù)用于選擇連接的選擇過(guò)程將那些連接分類。例如,對(duì)等體存儲(chǔ)指示哪個(gè)開通連接對(duì)應(yīng)于接收的具有最低響應(yīng)時(shí)間的加入響應(yīng)和哪個(gè)開通連接對(duì)應(yīng)于接收的具有最高響應(yīng)時(shí)間的加入響應(yīng)的信息。在為對(duì)等體斷開連接和新對(duì)等體加入網(wǎng)格調(diào)整連接時(shí),對(duì)等體可調(diào)整存儲(chǔ)的連接分類。
在另一實(shí)施中,新對(duì)等體使用服務(wù)器幫助開通連接。在一個(gè)實(shí)施中,服務(wù)器提供具有可用連接的網(wǎng)格成員列表及那些成員對(duì)等體的地址。新對(duì)等體將加入消息直接發(fā)送到所指示的網(wǎng)格成員。
如果肯定響應(yīng)比連接限制更少,則新對(duì)等體將具有剩余可用連接。在一個(gè)實(shí)施中,新對(duì)等體可強(qiáng)制另一對(duì)等體關(guān)閉已建立連接并開通與新對(duì)等體的連接。
圖8示出強(qiáng)制對(duì)等體為對(duì)等中繼網(wǎng)絡(luò)中新對(duì)等體提供連接的一個(gè)實(shí)施的流程圖800。最初,新對(duì)等體已選擇網(wǎng)格,并發(fā)出加入消息到該網(wǎng)格的成員對(duì)等體。新對(duì)等體已接收從成員對(duì)等體返回的加入響應(yīng)。然而,在為所有肯定響應(yīng)選擇對(duì)等體后,新對(duì)等體仍具有可用連接。
新對(duì)等體選擇對(duì)應(yīng)于否定響應(yīng)的對(duì)等體,方框805。新對(duì)等體使用用于肯定響應(yīng)的相同連接規(guī)則選擇否定響應(yīng)(例如,根據(jù)圖7的規(guī)則先接收的否定響應(yīng))?;蛘撸聦?duì)等體使用不同的強(qiáng)制連接規(guī)則集合。新對(duì)等體不選擇新對(duì)等體已經(jīng)連接至的對(duì)等體。
新對(duì)等體將強(qiáng)制連接請(qǐng)求發(fā)送到選定的對(duì)等體,方框810。強(qiáng)制連接請(qǐng)求指示新對(duì)等體具有至少一個(gè)可用連接(或具體的數(shù)量),并且指示接收對(duì)等體要開通與新對(duì)等體的連接。
新對(duì)等體接收強(qiáng)制連接請(qǐng)求,并選擇要關(guān)閉的連接,方框815。相反接收對(duì)等體使用連接規(guī)則選擇要關(guān)閉的連接。對(duì)于基于響應(yīng)時(shí)間的連接規(guī)則,接收對(duì)等體使用存儲(chǔ)的加入響應(yīng)(和如下所述的連接可用響應(yīng))的響應(yīng)時(shí)間。在一個(gè)實(shí)施中,要在隨機(jī)選定的對(duì)等體之間進(jìn)行選擇,接收對(duì)等體選擇最后選定的對(duì)等體,或者再一次隨機(jī)選擇對(duì)等體。在另一實(shí)施中,接收對(duì)等體使用不同的強(qiáng)制斷開連接規(guī)則集合。
接收對(duì)等體關(guān)閉選定的連接,方框820。接收對(duì)等體將關(guān)閉消息發(fā)送到連接至選定的連接的對(duì)等體,并且這兩個(gè)對(duì)等體關(guān)閉該連接。連接至選定的連接的對(duì)等體現(xiàn)在具有可用連接,因而如下所述發(fā)出連接可用消息到網(wǎng)格。
接收對(duì)等體將確認(rèn)發(fā)送到新對(duì)等體,并且這兩個(gè)對(duì)等體開通新連接,方框825。新對(duì)等體現(xiàn)在少了一個(gè)可用連接。如果新對(duì)等體具有更多可用連接,則新對(duì)等體重復(fù)該過(guò)程,返回方框805以選擇另一否定響應(yīng)。
在另一實(shí)施中,新對(duì)等體不強(qiáng)制另一對(duì)等體開通連接,除非新對(duì)等體具有至少兩個(gè)可用連接?;蛘撸墒褂貌煌拈撝?例如,3)。在另一實(shí)施中,當(dāng)新對(duì)等體未具有至少某一數(shù)量的連接(連接基數(shù))時(shí),新對(duì)等體發(fā)送強(qiáng)制連接消息。
在另一實(shí)施中,強(qiáng)制連接消息的接收對(duì)等體可選擇拒絕(例如,視網(wǎng)絡(luò)負(fù)荷平衡而定)。被拒絕時(shí),新對(duì)等體選擇將新強(qiáng)制連接消息發(fā)送到另一對(duì)等體。
在另一實(shí)施中,如果新對(duì)等體具有兩個(gè)或更多可用連接,并且發(fā)送強(qiáng)制連接消息,則新對(duì)等體在消息中包括指示新對(duì)等體具有兩個(gè)可用連接的信息。當(dāng)接收對(duì)等體已選擇要關(guān)閉的連接時(shí),接收對(duì)等體向選定的連接的已連接對(duì)等體(遠(yuǎn)程對(duì)等體)指示新對(duì)等體有另一可用連接(并且在適當(dāng)時(shí)包括新對(duì)等體的地址)。在接收對(duì)等體已關(guān)閉與遠(yuǎn)程對(duì)等體的連接后,遠(yuǎn)程對(duì)等體將連接可用消息直接發(fā)送到新對(duì)等體(除非新對(duì)等體已經(jīng)連接至該遠(yuǎn)程對(duì)等體)。新對(duì)等體開通與(由新對(duì)等體選擇的)接收對(duì)等體的新連接及與(由接收對(duì)等體選擇的)遠(yuǎn)程對(duì)等體的另一新連接。這樣,新對(duì)等體可以快速建立兩個(gè)連接。如果新對(duì)等體仍具有另外兩個(gè)可用連接,則新對(duì)等體可再次將指示兩個(gè)可用連接的強(qiáng)制連接消息發(fā)送到另一選定的接收對(duì)等體。
當(dāng)對(duì)等系統(tǒng)斷開與另一對(duì)等系統(tǒng)的連接時(shí),這些對(duì)等體中的每個(gè)然后具有可用連接。如果這些對(duì)等體之一(或兩者)仍在網(wǎng)格中(即,未與網(wǎng)格斷開連接),則對(duì)等體將連接可用消息發(fā)送到對(duì)等體的剩余已連接對(duì)等體以通過(guò)網(wǎng)格中繼到網(wǎng)格中的所有其它對(duì)等體。
圖9示出在對(duì)等中繼網(wǎng)絡(luò)中斷開連接的一個(gè)實(shí)施的流程圖900。最初,對(duì)等系統(tǒng)(斷開連接的對(duì)等體)連接至對(duì)等中繼網(wǎng)絡(luò)中的至少兩個(gè)其它對(duì)等系統(tǒng)。
斷開連接的對(duì)等體變得與斷開連接的對(duì)等體最初連接至的對(duì)等體之一斷開連接,方框905。斷開連接可因?yàn)槿魏味俗栽笖嚅_連接或連接本身中的故障(例如,對(duì)等體之間的部分路徑失效)而發(fā)生。例如,當(dāng)對(duì)等體確定已連接對(duì)等體處于無(wú)響應(yīng)狀態(tài)(如下所述),或者當(dāng)對(duì)等體被強(qiáng)制開通與新對(duì)等體的連接(如上所述)時(shí),自愿斷開連接可發(fā)生。在一個(gè)實(shí)施中,服務(wù)器可使對(duì)等體關(guān)閉一個(gè)或更多個(gè)連接,導(dǎo)致對(duì)應(yīng)的斷開連接。
斷開連接的對(duì)等體將連接可用消息發(fā)送到連接至斷開連接的對(duì)等體的剩余對(duì)等體,方框910。連接可用消息指示斷開連接的對(duì)等體現(xiàn)在具有可用連接。在另一實(shí)施中,連接可用消息指示對(duì)等體具有的可用連接的數(shù)量。
連接至斷開連接的對(duì)等體的對(duì)等體中繼連接可用消息,方框915。在網(wǎng)格中的對(duì)等體將連接可用響應(yīng)發(fā)送回?cái)嚅_連接的成員,方框920。連接可用響應(yīng)指示響應(yīng)對(duì)等體是否具有可用連接。肯定響應(yīng)指示響應(yīng)對(duì)等體具有可用連接。否定響應(yīng)指示響應(yīng)對(duì)等體沒(méi)有可用連接。響應(yīng)對(duì)等體記錄加入消息中新對(duì)等體的地址,并使用該地址發(fā)送加入響應(yīng)?;蛘?,響應(yīng)對(duì)等體將響應(yīng)通過(guò)網(wǎng)格發(fā)回以中繼到斷開連接的對(duì)等體。斷開連接的對(duì)等體接收連接可用響應(yīng)。
斷開連接的對(duì)等體選擇要連接至的網(wǎng)格成員之一,方框925。斷開連接的對(duì)等體使用連接規(guī)則來(lái)為連接選擇對(duì)等體,但斷開連接的對(duì)等體不選擇斷開連接的對(duì)等體已經(jīng)連接至的對(duì)等體。例如,在一個(gè)實(shí)施中,斷開連接的對(duì)等體使用連接可用響應(yīng)的響應(yīng)時(shí)間和存儲(chǔ)的仍連接至斷開連接的對(duì)等體的對(duì)等體的響應(yīng)時(shí)間,以選擇要替代失去的連接的對(duì)等體。不同的實(shí)施可使用不同的連接規(guī)則集合。斷開連接的對(duì)等體存儲(chǔ)選定的對(duì)等體的響應(yīng)時(shí)間。在另一實(shí)施中,斷開連接的對(duì)等體存儲(chǔ)所有響應(yīng)(肯定和否定)的響應(yīng)時(shí)間。在一個(gè)實(shí)施中,斷開連接的對(duì)等體不選擇這樣的對(duì)等體,斷開連接的對(duì)等體在一定的時(shí)期內(nèi)已斷開與其的連接。
在為連接選擇對(duì)等體后,斷開連接的對(duì)等體開通至選定的對(duì)等體的連接,方框930。斷開連接的對(duì)等體將連接請(qǐng)求發(fā)送到選定的對(duì)等體,并且選定的對(duì)等體確認(rèn)請(qǐng)求,從而開通連接(除非對(duì)于選定的對(duì)等體該連接已變得不可用)。對(duì)等體之間的連接可以是直接或間接的(例如,跨網(wǎng)絡(luò),如因特網(wǎng))。在一個(gè)實(shí)施中,已連接對(duì)等體將更新發(fā)送到服務(wù)器,從而確認(rèn)連接。
類似于參照?qǐng)D8加入網(wǎng)格的上述實(shí)施,在一個(gè)實(shí)施中,如果斷開連接的對(duì)等體在嘗試使用連接可用消息開通連接后仍具有可用連接(例如,因?yàn)樗羞B接可用響應(yīng)均為否定的),則斷開連接的對(duì)等體可如上所述發(fā)出強(qiáng)制連接消息。
在另一實(shí)施中,斷開連接的對(duì)等體使用服務(wù)器幫助開通新連接。在一個(gè)實(shí)施中,服務(wù)器提供具可用連接的網(wǎng)格成員列表及那些成員對(duì)等體的地址。斷開連接的對(duì)等體將連接可用消息直接發(fā)送到所指示的網(wǎng)格成員。
網(wǎng)格中的對(duì)等系統(tǒng)通過(guò)定期相互輪詢而維護(hù)網(wǎng)格。在一個(gè)實(shí)施中,已連接對(duì)等體定期彼此發(fā)送消息以確認(rèn)連接和已連接對(duì)等體仍在運(yùn)行。
圖10示出維護(hù)對(duì)等中繼網(wǎng)絡(luò)的一個(gè)實(shí)施的流程圖1000。最初,多個(gè)對(duì)等系統(tǒng)在網(wǎng)格中連接。
對(duì)等體將維護(hù)消息發(fā)送到連接至該對(duì)等體的每個(gè)對(duì)等體,方框1005。維護(hù)消息是要求接收方提供收到維護(hù)消息確認(rèn)的請(qǐng)求。在一個(gè)實(shí)施中,對(duì)等體將Ping消息發(fā)送到每個(gè)已連接對(duì)等體。對(duì)等體評(píng)估接收的維護(hù)消息的響應(yīng),方框1010。對(duì)等體確定響應(yīng)是否滿意。在一個(gè)實(shí)施中,如果未從已連接對(duì)等體收到響應(yīng),則對(duì)等體確定該對(duì)等體的連接已失效(由于連接的原因或由于已連接對(duì)等體的原因)。如果在時(shí)間限制截止前未收到響應(yīng),則對(duì)等體確定該對(duì)等體的連接已失效。對(duì)等體關(guān)閉它確定已失效的任何連接的連接,方框1015。對(duì)等體將關(guān)閉連接請(qǐng)求發(fā)送到在失效連接上的已連接對(duì)等體。當(dāng)對(duì)等體收到確認(rèn)時(shí),對(duì)等體關(guān)閉連接。如果對(duì)等體無(wú)法與在失效連接上的已連接對(duì)等體進(jìn)行通信,或者未在時(shí)間限制內(nèi)收到確認(rèn),則對(duì)等體在無(wú)確認(rèn)情況下關(guān)閉連接。在另一實(shí)施中,對(duì)等體等待關(guān)閉連接,直至連接已被指明為失效一段時(shí)間或失效多次。在一個(gè)實(shí)施中,對(duì)等體將更新發(fā)送到服務(wù)器,從而確認(rèn)任何關(guān)閉的連接。
如果對(duì)等體已關(guān)閉任何連接,則對(duì)等體自愿與一個(gè)或更多個(gè)對(duì)等體斷開連接并發(fā)出適當(dāng)?shù)倪B接可用消息(例如,如上參照?qǐng)D9所述)。
在另一實(shí)施中,對(duì)等體使用服務(wù)器評(píng)估失效的連接。例如,當(dāng)對(duì)等體確定連接已失效時(shí),對(duì)等體發(fā)送請(qǐng)求到服務(wù)器以尋求幫助。服務(wù)器將消息發(fā)送到在失效連接另一端的對(duì)等體,以確認(rèn)是該對(duì)等體有故障還是連接失效。服務(wù)器然后通知對(duì)等體以幫助開通新連接或者在適當(dāng)時(shí)調(diào)整網(wǎng)絡(luò)。
圖11-18示出構(gòu)建、調(diào)整和維護(hù)網(wǎng)格的一個(gè)實(shí)施的例子。
在圖11中,對(duì)等系統(tǒng)1105A(對(duì)等體A)使用服務(wù)器1110已建立對(duì)等中繼網(wǎng)絡(luò)(網(wǎng)格)1100(對(duì)等體A與服務(wù)器1110之間的連接未示出)。此網(wǎng)格的連接限制為3,因此,對(duì)等體A具有3個(gè)可用連接。在圖12中,第二對(duì)等系統(tǒng)1105B(對(duì)等體B)已加入網(wǎng)格1100。當(dāng)對(duì)等體B加入時(shí),對(duì)等體B將加入消息發(fā)送到對(duì)等體A,并且對(duì)等體A將肯定加入響應(yīng)發(fā)送到對(duì)等體B。對(duì)等體A和對(duì)等體B開通連接。
在圖13中,另外兩個(gè)對(duì)等系統(tǒng)1105C和1105D(對(duì)等體C和對(duì)等體D)已經(jīng)加入網(wǎng)格1100。這四個(gè)網(wǎng)格成員對(duì)等體A-D中的每個(gè)已建立3個(gè)與網(wǎng)格1100中的其它對(duì)等體的連接。新對(duì)等系統(tǒng)1105E(對(duì)等體E)加入網(wǎng)格。然而,當(dāng)對(duì)等體E將加入消息發(fā)送到其它對(duì)等體時(shí),由于每個(gè)對(duì)等體A-D已經(jīng)具有由網(wǎng)格1100的連接限制允許的最大數(shù)量的連接,因此,所有加入響應(yīng)為否定的。在圖14中,對(duì)等體E已強(qiáng)制開通連接。對(duì)等體E從否定響應(yīng)中選擇對(duì)等體B(例如,因?yàn)閷?duì)等體E先收到對(duì)等體B的響應(yīng)),并將強(qiáng)制連接消息發(fā)送到對(duì)等體B。對(duì)等體B選擇對(duì)等體D以關(guān)閉連接,并關(guān)閉與對(duì)等體D的連接。對(duì)等體B確認(rèn)與對(duì)等體E的連接,并且對(duì)等體B和E開通新連接。當(dāng)對(duì)等體B關(guān)閉與對(duì)等體D的連接時(shí),對(duì)等體D具有可用連接。對(duì)等體D將連接可用消息發(fā)送到對(duì)等體A和C,并且這些對(duì)等體在整個(gè)網(wǎng)格1100中繼消息。對(duì)等體A、B和C不具有可用連接,因此將否定響應(yīng)發(fā)送到對(duì)等體D。對(duì)等體E具有兩個(gè)可用連接,并將肯定響應(yīng)發(fā)送到對(duì)等體D。對(duì)等體D開通與對(duì)等體E的連接。對(duì)等體E仍具有可用連接,并因此發(fā)出連接可用消息。然而,所有響應(yīng)均為否定的。對(duì)等體E具有兩個(gè)已建立連接,并只有一個(gè)可用連接,因此,對(duì)等體E不強(qiáng)制開通另一連接。
在圖15中,對(duì)等體A斷開與網(wǎng)格1100的連接。對(duì)等體A連接至對(duì)等體B、C和D中的每個(gè)。當(dāng)對(duì)等體A斷開連接時(shí),對(duì)等體B、C和D各具有可用連接。對(duì)等體B、C和D發(fā)出連接可用消息,并且對(duì)等體B、C、D和E各發(fā)送肯定響應(yīng)。在評(píng)估連接可用響應(yīng)的響應(yīng)并消除已經(jīng)存在的連接的對(duì)等體后,如圖16所示,對(duì)等體B-E建立連接。對(duì)等體B-E中的每個(gè)現(xiàn)在具有3個(gè)連接。
在圖17中,3個(gè)新對(duì)等系統(tǒng)1105F、1105G和1105H(對(duì)等體F、G和H)已加入網(wǎng)格1100并建立連接。作為維護(hù)網(wǎng)格的常規(guī)活動(dòng)的一部分,對(duì)等體B-H各發(fā)送Ping消息到其已連接對(duì)等體。例如,對(duì)等體B定期Ping對(duì)等體D、E和G。對(duì)等體D未就對(duì)等體B的Ping消息向?qū)Φ润wB提供滿意的響應(yīng)(例如,來(lái)自對(duì)等體D的響應(yīng)太慢,或未到達(dá)對(duì)等體B)。在圖18中,對(duì)等體B已關(guān)閉與對(duì)等體D的連接。當(dāng)對(duì)等體B關(guān)閉連接時(shí),對(duì)等體B和對(duì)等體D具有可用連接。對(duì)等體B和D發(fā)出連接可用消息以通過(guò)網(wǎng)格1100中繼。對(duì)等體B從對(duì)等體G和D收到肯定響應(yīng)。對(duì)等體B已經(jīng)連接至對(duì)等體G,因此將不為新連接選擇對(duì)等體G。對(duì)等體B剛由于失效連接而斷開與對(duì)等體D的連接,因此將不為新連接選擇對(duì)等體D。對(duì)等體B未開通新連接(對(duì)等體B具有兩個(gè)開通連接和只有一個(gè)可用連接,因此,對(duì)等體B不嘗試強(qiáng)制連接,但在另一實(shí)施中,對(duì)等體B可能強(qiáng)制連接)。對(duì)等體D從對(duì)等體B和G收到肯定響應(yīng)。對(duì)等體B剛由于失效連接而斷開與對(duì)等體D的連接,因此對(duì)等體D將不為新連接選擇對(duì)等體B(或者對(duì)等體B會(huì)拒絕新連接請(qǐng)求)。對(duì)等體D選擇對(duì)等體G并開通到對(duì)等體G的連接。
在圖11-18所示的例子中,網(wǎng)格1100的對(duì)等體開通和關(guān)閉連接以構(gòu)建和調(diào)整網(wǎng)格而不依賴服務(wù)器1110管理連接(但服務(wù)器1110確實(shí)幫助為新對(duì)等體提供網(wǎng)格的當(dāng)前成員對(duì)等體的地址)。
冗余列表在一個(gè)實(shí)施中,網(wǎng)格中的對(duì)等體通過(guò)避免發(fā)送基于網(wǎng)格中的當(dāng)前路徑確定為冗余的消息而減少冗余消息業(yè)務(wù)。
在此實(shí)施中,對(duì)等中繼網(wǎng)絡(luò)中的每個(gè)對(duì)等體存儲(chǔ)冗余列表。對(duì)等體的冗余列表指示該對(duì)等體將不把源于指定的對(duì)等體的消息發(fā)送到的其它對(duì)等體。相應(yīng)地,冗余列表中的每個(gè)條目指示起源對(duì)等體和(連接至中繼對(duì)等體的)目的對(duì)等體。當(dāng)對(duì)等體收到指示在該對(duì)等體的冗余列表中的始發(fā)對(duì)等體的消息時(shí),該對(duì)等體將不把該消息中繼到由冗余列表中對(duì)應(yīng)條目所指示的已連接對(duì)等體。在另一實(shí)施中,對(duì)等體可打開和關(guān)閉冗余列表功能(例如,在服務(wù)器請(qǐng)求時(shí),如在確定已出現(xiàn)安全問(wèn)題后)。
圖19示出在對(duì)等中繼網(wǎng)絡(luò)中構(gòu)建冗余列表的一個(gè)實(shí)施的流程圖1900。最初,連接多個(gè)對(duì)等系統(tǒng)以形成對(duì)等中繼網(wǎng)絡(luò)。接收對(duì)等體連接到至少兩個(gè)其它對(duì)等體。
接收對(duì)等體從已連接對(duì)等體接收冗余消息,方框1905。冗余消息是冗余的,這是因?yàn)榻邮諏?duì)等體已經(jīng)接收相同的消息。接收對(duì)等體使用已接收消息中的信息,將冗余消息標(biāo)識(shí)為相同。如上所述,在一些實(shí)施中,每個(gè)對(duì)等體維護(hù)已接收消息的列表以避免中繼相同的消息兩次。接收對(duì)等體還可使用此列表識(shí)別出冗余消息。
接收對(duì)等體構(gòu)建冗余更新消息,方框1910。接收對(duì)等體在冗余更新消息中包括標(biāo)識(shí)消息的起源的信息和標(biāo)識(shí)接收對(duì)等體的信息。例如,接收對(duì)等體從冗余消息中檢索起源標(biāo)識(shí)符(例如,再調(diào)用圖2中所示的消息)并存儲(chǔ)在冗余更新消息中的起源標(biāo)識(shí)符。
接收對(duì)等體將冗余更新消息發(fā)送到冗余消息的發(fā)送方,方框1915。冗余消息在其地址信息中包括冗余消息的發(fā)送方的地址信息。
冗余消息的發(fā)送方接收冗余更新消息,并更新發(fā)送方的冗余列表,方框1920。發(fā)送方從冗余更新消息中檢索標(biāo)識(shí)冗余消息的起源和冗余消息的接收方(接收對(duì)等體)的信息。發(fā)送方將指示發(fā)送方不應(yīng)將始發(fā)于所指示的起源的消息發(fā)送到接收對(duì)等體的條目添加到發(fā)送方的冗余列表。
例如,參照?qǐng)D1中所示的網(wǎng)格100,對(duì)等體B從對(duì)等體A、D和E中的每個(gè)接收始發(fā)于對(duì)等體C的消息。假設(shè)對(duì)等體B先從對(duì)等體A接收始發(fā)于對(duì)等體C的消息,則從對(duì)等體D和E接收的始發(fā)于對(duì)等體C的消息為冗余消息。對(duì)等體B構(gòu)建指示對(duì)等體C為起源并且指示對(duì)等體B為接收方的冗余更新消息以發(fā)送到對(duì)等體D和E。對(duì)等體B將冗余更新消息發(fā)送到對(duì)等體D。對(duì)等體D更新其冗余列表以指示對(duì)等體D不將始發(fā)于對(duì)等體C的消息中繼到對(duì)等體B。對(duì)等體E從對(duì)等體B接收類似的冗余更新消息,并且也以類似的方式更新其冗余列表。
在對(duì)等體連接至網(wǎng)格和與網(wǎng)格斷開連接時(shí),客戶之間的路徑會(huì)改變,因此冗余列表會(huì)變得不準(zhǔn)確。相應(yīng)地,當(dāng)對(duì)等體與網(wǎng)格斷開連接時(shí),剩余的對(duì)等體更新冗余列表。
圖20示出在對(duì)等中繼網(wǎng)絡(luò)中為要斷開連接的對(duì)等體更新冗余列表的一個(gè)實(shí)施的流程圖2000。最初,連接多個(gè)對(duì)等系統(tǒng)以形成對(duì)等中繼網(wǎng)絡(luò)。要斷開連接的對(duì)等體連接到至少兩個(gè)其它對(duì)等體。
要斷開連接的對(duì)等體與網(wǎng)格斷開連接,方框2005。以前連接至要斷開連接的對(duì)等體的對(duì)等體現(xiàn)在是斷開連接的對(duì)等體。每個(gè)斷開連接的對(duì)等體遵循下面的相同過(guò)程。
斷開連接的對(duì)等體構(gòu)建清除冗余消息,方框2010。清除冗余消息指示標(biāo)識(shí)斷開連接的對(duì)等體的信息。斷開連接的對(duì)等體將清除冗余消息發(fā)送到仍連接至斷開連接的對(duì)等體的對(duì)等體,方框2015。從斷開連接的對(duì)等體接收清除冗余消息的對(duì)等體更新其冗余列表,方框2020。接收清除冗余消息的對(duì)等體在對(duì)等體的冗余列表中刪除一些條目,這些條目影響將消息中繼到由清除冗余消息所指示的斷開連接的對(duì)等體。
返回上面參照?qǐng)D1和圖19所述的例子,對(duì)等體D在其冗余列表中具有指示對(duì)等體D不應(yīng)將始發(fā)于對(duì)等體C的消息中繼到對(duì)等體B的條目。如果對(duì)等體A與網(wǎng)格斷開連接,則對(duì)等體B識(shí)別出對(duì)等體A的斷開連接并構(gòu)建清除冗余消息。對(duì)等體B將清除冗余消息發(fā)送到對(duì)等體D和E。對(duì)等體D從對(duì)等體B接收清除冗余消息,并清除對(duì)等體D的冗余列表中指示對(duì)等體D不應(yīng)將始發(fā)于對(duì)等體C的消息中繼到對(duì)等體B的條目。相應(yīng)地,下次對(duì)等體D收到始發(fā)于對(duì)等體C的消息時(shí),對(duì)等體D將重新把消息中繼到對(duì)等體B。對(duì)等體E以類似的方式更新其冗余列表。
多個(gè)網(wǎng)格在一個(gè)實(shí)施中,對(duì)等系統(tǒng)可屬于多個(gè)對(duì)等中繼網(wǎng)絡(luò)。每個(gè)網(wǎng)格可以是相關(guān)或獨(dú)立的。根據(jù)每個(gè)網(wǎng)格建立的連接可以是獨(dú)立的。相應(yīng)地,對(duì)等體可連接至在一個(gè)網(wǎng)格中而不是在另一網(wǎng)格中的一個(gè)對(duì)等體(即使這兩個(gè)對(duì)等體均在兩個(gè)網(wǎng)格中)。在一個(gè)實(shí)施中,如果在兩個(gè)網(wǎng)格中連接兩個(gè)對(duì)等體,則這兩個(gè)對(duì)等體使用單個(gè)連接。消息包括指示消息所屬網(wǎng)格的信息。對(duì)等體根據(jù)對(duì)應(yīng)于所指示的網(wǎng)格為消息而建立的連接中繼已接收消息。
在一個(gè)實(shí)施中,對(duì)等中繼網(wǎng)絡(luò)的成員可在對(duì)等中繼網(wǎng)絡(luò)內(nèi)創(chuàng)建子網(wǎng)絡(luò)。這種情況下,子網(wǎng)絡(luò)的每個(gè)成員也是大網(wǎng)格的成員。例如,對(duì)等中繼網(wǎng)絡(luò)包括作為對(duì)等系統(tǒng)的游戲中的所有玩家,并且每隊(duì)(包括總玩家的子集)具有對(duì)等系統(tǒng)的子網(wǎng)絡(luò)(例如,用于游戲中的專用通信)。這樣,對(duì)等體可建立多信道環(huán)境以根據(jù)需要分發(fā)和接收數(shù)據(jù)。
在另一實(shí)施中,對(duì)等中繼網(wǎng)絡(luò)是獨(dú)立的,但共享一個(gè)或更多個(gè)成員對(duì)等系統(tǒng)。例如,一組對(duì)等體可建立網(wǎng)格以支持大廳或聊天環(huán)境,并且包括第一組中至少一個(gè)對(duì)等體的另一組對(duì)等體可建立網(wǎng)格以支持某個(gè)特殊游戲。在另一例子中,一組對(duì)等體形成團(tuán)隊(duì)(組織)的網(wǎng)格,并且其中的一些對(duì)等體加入或創(chuàng)建其它網(wǎng)格以玩游戲。
例如,在線環(huán)境中,環(huán)境中的所有對(duì)等體連接至單個(gè)主網(wǎng)格。主網(wǎng)格用于一般公告和一般服務(wù)。對(duì)等體創(chuàng)建、加入和離開附加的更小網(wǎng)格以訪問(wèn)在線服務(wù),如聊天室或游戲。在建立更小的網(wǎng)格前,對(duì)等體可使用主網(wǎng)格進(jìn)行通信,如當(dāng)新對(duì)等體要加入網(wǎng)格時(shí)(而不是使用服務(wù)器)。由于所有控制消息可通過(guò)主網(wǎng)格廣播,因此,每個(gè)對(duì)等體可獨(dú)立維護(hù)可用網(wǎng)格列表和每個(gè)網(wǎng)格中的活動(dòng)對(duì)等體列表。在一個(gè)實(shí)施中,對(duì)等體不使用集中式服務(wù)器。
圖21示出中繼來(lái)自屬于多個(gè)網(wǎng)格的對(duì)等系統(tǒng)的消息的一個(gè)實(shí)施的流程圖2100。最初,連接多個(gè)對(duì)等系統(tǒng)以形成兩個(gè)對(duì)等中繼網(wǎng)絡(luò)。中繼對(duì)等體是兩個(gè)網(wǎng)格的成員,并且具有每個(gè)網(wǎng)格相應(yīng)的連接和中繼規(guī)則。
中繼對(duì)等體接收消息,方框2105。消息包括指示消息所屬網(wǎng)格的網(wǎng)格標(biāo)識(shí)符。
中繼對(duì)等體選擇由已接收消息指示的網(wǎng)格,方框2110。每個(gè)網(wǎng)格具有相應(yīng)的連接集合和相應(yīng)的中繼規(guī)則集合。通過(guò)選擇網(wǎng)格,中繼對(duì)等體選擇要使用的連接集合和要用于中繼已接收消息的中繼規(guī)則集合。
中繼對(duì)等體根據(jù)選定的網(wǎng)格和對(duì)應(yīng)的中繼規(guī)則選擇連接,方框2115。通過(guò)使用選定的網(wǎng)格的中繼規(guī)則,中繼對(duì)等體選擇任何適當(dāng)?shù)倪B接用于中繼已接收消息。
中繼對(duì)等體將已接收消息發(fā)送到選定的對(duì)等體,方框2120。在中繼消息前,中繼對(duì)等體為每個(gè)選定的對(duì)等體調(diào)整已接收消息,如通過(guò)更新已接收消息的地址信息以指示已接收消息要從中繼對(duì)等體中繼到選定的對(duì)等體。
觀眾在一個(gè)實(shí)施中,網(wǎng)格中的對(duì)等體被分類為參與者或觀眾。參與者對(duì)等體生成要在整個(gè)網(wǎng)格中繼的新消息。觀眾對(duì)等體不生成新消息,并且充當(dāng)網(wǎng)格中的通過(guò)節(jié)點(diǎn)(pass-through node)。參與者和觀眾均根據(jù)網(wǎng)格的中繼規(guī)則將消息中繼到其連接的對(duì)等體。在一些應(yīng)用中,對(duì)于每個(gè)參與者可能有許多觀眾。在一個(gè)具有多個(gè)參與者的實(shí)施中,每個(gè)參與者具有到至少另一參與者的連接。
在一個(gè)例子中,一組參與者玩在線游戲,而觀眾觀看(觀察數(shù)據(jù)而不改變游戲數(shù)據(jù))。觀眾的數(shù)量可能很大(例如,數(shù)千)。其它例子包括表演(例如,音樂(lè))、演講和教學(xué)。在一些應(yīng)用中,由于對(duì)等體通過(guò)中繼數(shù)據(jù)處理分發(fā),因此,服務(wù)器上用于分發(fā)的負(fù)荷不會(huì)始終隨著觀眾數(shù)量的增加而增加。
在一個(gè)實(shí)施中,當(dāng)對(duì)等體加入網(wǎng)格時(shí),對(duì)等體作為參與者或作為觀眾加入網(wǎng)格。如果對(duì)等體作為觀眾加入網(wǎng)格,則對(duì)等體無(wú)權(quán)創(chuàng)建新消息,也無(wú)權(quán)將新消息發(fā)送到網(wǎng)格中以在整個(gè)網(wǎng)格中繼。如果觀眾生成新消息并將新消息發(fā)送到連接至觀眾的對(duì)等體,則從觀眾接收新消息的對(duì)等體將不轉(zhuǎn)發(fā)或中繼已接收消息。在一個(gè)實(shí)施中,一些或全部觀眾可形成作為參與者的另一相關(guān)網(wǎng)格(例如,討論第一網(wǎng)格中在觀看的游戲)。
圖22示出在支持觀眾和參與者的網(wǎng)格中中繼消息的一個(gè)實(shí)施的流程圖2200。最初,連接多個(gè)對(duì)等系統(tǒng)以形成支持參與者和觀眾的對(duì)等中繼網(wǎng)絡(luò)。每個(gè)對(duì)等系統(tǒng)存儲(chǔ)作為參與者的對(duì)等體列表。在一個(gè)實(shí)施中,參與者對(duì)等體定期廣播指示哪些對(duì)等體是參與者的消息。在另一實(shí)施中,服務(wù)器幫助標(biāo)識(shí)參與者。
中繼對(duì)等體接收消息,方框2205。消息包括指示創(chuàng)建消息的對(duì)等體的起源標(biāo)識(shí)符。
中繼對(duì)等體確認(rèn)已接收消息的起源是參與者對(duì)等體,方框2210。中繼對(duì)等體存儲(chǔ)參與者對(duì)等體列表。中繼對(duì)等體將標(biāo)識(shí)為已接收消息的起源的對(duì)等體與參與者對(duì)等體列表進(jìn)行比較。如果已接收消息的起源對(duì)等體不是參與者(即,是觀眾),則中繼對(duì)等體不中繼已接收消息。
如果已接收消息的起源對(duì)等體是參與者,則中繼對(duì)等體根據(jù)網(wǎng)棧的中繼規(guī)則選擇連接,方框2215。通過(guò)使用中繼規(guī)則,中繼對(duì)等體選擇任何適當(dāng)?shù)倪B接用于中繼已接收消息。
中繼對(duì)等體將已接收消息發(fā)送到選定的對(duì)等體,方框2220。在中繼消息前,中繼對(duì)等體為每個(gè)選定的對(duì)等體調(diào)整已接收消息,如通過(guò)更新已接收消息的地址信息以指示要從中繼對(duì)等體中繼已接收消息到選定的對(duì)等體。
在另一實(shí)施中,觀眾與參與者不在同一網(wǎng)格中。觀眾形成鏈接至參與者網(wǎng)格的平行觀眾網(wǎng)格。觀眾從參與者接收數(shù)據(jù),并在觀眾網(wǎng)格中中繼數(shù)據(jù)。網(wǎng)格之間的鏈路可由服務(wù)器或網(wǎng)關(guān)提供,或者通過(guò)來(lái)自每個(gè)網(wǎng)格的選定的對(duì)等體之間的連接提供。
在另一實(shí)施中,觀眾可以是條件觀眾。條件觀眾可請(qǐng)求權(quán)限以生成要在整個(gè)網(wǎng)格中繼的數(shù)據(jù)。如果觀眾得到權(quán)限,則觀眾可發(fā)送網(wǎng)格中的對(duì)等體將中繼的消息(例如,消息包括授權(quán)標(biāo)志)。權(quán)限可由服務(wù)器、由作為調(diào)停者的選定的對(duì)等體或由(一個(gè)或更多個(gè))參與者授予。例如,在教學(xué)環(huán)境中,參與者是講師,而觀眾可請(qǐng)求提問(wèn)的權(quán)限,提出的問(wèn)題將被中繼到所有對(duì)等體。
島恢復(fù)在一個(gè)實(shí)施中,對(duì)等中繼網(wǎng)絡(luò)中的服務(wù)器和對(duì)等體支持調(diào)整網(wǎng)格中的連接以避免島的形成或者從島的形成中恢復(fù)。網(wǎng)格中由對(duì)等體組成的孤立的組稱為島。當(dāng)多個(gè)對(duì)等體基本上同時(shí)斷開連接時(shí),網(wǎng)格中可形成島。在上述斷開連接的過(guò)程中,剩余對(duì)等體發(fā)送指示可用連接的消息,然而,在出現(xiàn)多個(gè)并發(fā)斷開連接的情況下,剩余對(duì)等體可能在網(wǎng)格中形成孤立的組。一個(gè)島中的對(duì)等體無(wú)法將消息發(fā)送到另一島中的對(duì)等體,這是因?yàn)閸u之間不存在對(duì)等連接。服務(wù)器檢測(cè)到島的形成,并與對(duì)等體交互以刪除島。
圖23示出檢測(cè)網(wǎng)格中島的一個(gè)實(shí)施的流程圖2300。最初,連接多個(gè)對(duì)等系統(tǒng)以形成對(duì)等中繼網(wǎng)絡(luò)或網(wǎng)格。當(dāng)對(duì)等體開通和關(guān)閉連接或者變得斷開連接時(shí),對(duì)等體將改變的連接通知網(wǎng)格的服務(wù)器。這樣,服務(wù)器跟蹤網(wǎng)格中的所有連接。服務(wù)器還維護(hù)網(wǎng)格中對(duì)等體的有序列表。
服務(wù)器設(shè)置島計(jì)數(shù)器,方框2305。島計(jì)數(shù)器表示島的數(shù)量。在一個(gè)實(shí)施中,服務(wù)器將計(jì)數(shù)器i設(shè)為1。
服務(wù)器選擇起始對(duì)等體,方框2310。當(dāng)島計(jì)數(shù)器為1時(shí),服務(wù)器選擇對(duì)等體的有序列表中第一對(duì)等體為起始對(duì)等體。當(dāng)島計(jì)數(shù)器大于1時(shí),服務(wù)器選擇最近找到的未標(biāo)記的對(duì)等體為起始對(duì)等體(如下所述)。
服務(wù)器將連接至起始對(duì)等體的每個(gè)對(duì)等體標(biāo)記為與起始對(duì)等體屬于同一島,方框2315。服務(wù)器標(biāo)記直接連接至起始對(duì)等體和通過(guò)其它對(duì)等體間接連接至起始對(duì)等體的對(duì)等體(例如,從起始對(duì)等體前進(jìn)到已連接對(duì)等體,再到連接至那些連接對(duì)等體的對(duì)等體并以此類推)。服務(wù)器以島計(jì)數(shù)器的當(dāng)前值標(biāo)記對(duì)等體以指示對(duì)等體所屬的島。
在標(biāo)記連接至起始對(duì)等體的所有對(duì)等體后,服務(wù)器確定網(wǎng)格中是否有未標(biāo)記的對(duì)等體,方框2320。在一個(gè)實(shí)施中,服務(wù)器前進(jìn)遍歷對(duì)等體的有序列表,搜索未標(biāo)記的對(duì)等體。
如果服務(wù)器找到未標(biāo)記的對(duì)等體,則服務(wù)器增大島計(jì)數(shù)器,方框2325。服務(wù)器增大島計(jì)數(shù)器以指示已檢測(cè)到附加的島。在增大島計(jì)數(shù)器后,服務(wù)器返回方框2310并將找到的未標(biāo)記的對(duì)等體用作起始對(duì)等體。
如果服務(wù)器未找到未標(biāo)記的對(duì)等體,則服務(wù)器確定檢測(cè)到的島的數(shù)量,方框2330。服務(wù)器已就每個(gè)檢測(cè)到的島增大島計(jì)數(shù)器,因此,島計(jì)數(shù)器表示檢測(cè)到的島的數(shù)量。如果島計(jì)數(shù)器等于1,則找到的是單個(gè)島,因此,網(wǎng)格未被分成多個(gè)島。如果島計(jì)數(shù)器大于1,則找到的是多個(gè)島,并且網(wǎng)格被分成多個(gè)島。
圖24示出在對(duì)等中繼網(wǎng)絡(luò)中刪除島的一個(gè)實(shí)施的流程圖2400。最初,多個(gè)對(duì)等系統(tǒng)在對(duì)等中繼網(wǎng)絡(luò)或網(wǎng)格中連接。網(wǎng)格已被分成兩個(gè)對(duì)等體島,其中一個(gè)島中的對(duì)等體沒(méi)有到另一島中的對(duì)等體的連接路徑。服務(wù)器檢測(cè)到這兩個(gè)島,如通過(guò)使用圖23所示的過(guò)程。
服務(wù)器從每個(gè)島選擇對(duì)等體,方框2405。服務(wù)器可以以各種方式選擇第一島對(duì)等體和第二島對(duì)等體。在一個(gè)實(shí)施中,服務(wù)器選擇具有可用連接的對(duì)等體。在另一實(shí)施中,服務(wù)器隨機(jī)從島選擇對(duì)等體。
如果第一島對(duì)等體不具有可用連接,則服務(wù)器將關(guān)閉連接消息發(fā)送到第一島對(duì)等體以關(guān)閉連接,方框2410。第一島對(duì)等體從服務(wù)器接收消息,并以與如上所述當(dāng)接收強(qiáng)制連接消息時(shí)對(duì)等體選擇要關(guān)閉的連接相同的方式選擇要關(guān)閉的連接。第一島對(duì)等體關(guān)閉連接,因此具有可用連接。
服務(wù)器將啟動(dòng)強(qiáng)制連接消息發(fā)送到第一島對(duì)等體,方框2415。啟動(dòng)強(qiáng)制連接消息包括第二島對(duì)等體的地址。第一島對(duì)等體從服務(wù)器接收消息,并將強(qiáng)制連接消息發(fā)送到第二島對(duì)等體。
第二島對(duì)等體從第一島對(duì)等體接收強(qiáng)制連接消息、選擇要關(guān)閉的連接并關(guān)閉選定的連接,方框2420。第二島對(duì)等體以與如上所述相同的方式為強(qiáng)制連接消息的接收方選擇要關(guān)閉的連接。如果第二島對(duì)等體在關(guān)閉連接前具有可用連接,則第二島對(duì)等體不關(guān)閉其任何連接。
第一島對(duì)等體將開通連接請(qǐng)求發(fā)送到第二島對(duì)等體,并且這兩個(gè)對(duì)等體開通連接,方框2425。一旦開通連接,這兩個(gè)島便已連接,從而形成單個(gè)島。對(duì)等體將更新發(fā)送到服務(wù)器,從而確認(rèn)連接。如果如上所述檢測(cè)到仍有附加的島,則服務(wù)器返回方框2405以連接剩余島中的另外兩個(gè)島。
圖25和圖26示出檢測(cè)島和連接島的例子。在圖25中,類似于圖11中網(wǎng)格1100的網(wǎng)格2500由于對(duì)等體C、G和F的同時(shí)斷開連接而分成兩個(gè)島。第一島包括對(duì)等體A、B、D和E。第二島包括對(duì)等體H、I和J。在圖26中,服務(wù)器已使對(duì)等體D開通與對(duì)等體I的連接,從而連接這兩個(gè)島。
安全在一個(gè)實(shí)施中,對(duì)等中繼網(wǎng)絡(luò)支持欺詐違規(guī)或安全違規(guī)或兩者的檢測(cè)和恢復(fù)。欺詐違規(guī)涉及操控?cái)?shù)據(jù)來(lái)改變?cè)诰€活動(dòng)處理的結(jié)果,如影響游戲的進(jìn)行。安全違規(guī)涉及未授權(quán)數(shù)據(jù)或不當(dāng)使用數(shù)據(jù)來(lái)?yè)p害網(wǎng)格或?qū)е戮W(wǎng)格故障。
圖27示出在對(duì)等中繼網(wǎng)絡(luò)中檢測(cè)欺詐違規(guī)的一個(gè)實(shí)施的流程圖2700。最初,連接多個(gè)對(duì)等系統(tǒng)以形成對(duì)等中繼網(wǎng)絡(luò)或網(wǎng)格。
對(duì)等體從其連接的每個(gè)對(duì)等體接收消息,方框2705。如上所述,網(wǎng)格中的對(duì)等體在整個(gè)網(wǎng)格中繼消息。對(duì)等體將通過(guò)其與其它對(duì)等體的每個(gè)連接接收相同的消息(相同的內(nèi)容數(shù)據(jù),但地址信息可能不同)。例如,如果對(duì)等體具有3個(gè)開通連接,則該對(duì)等體從三個(gè)相應(yīng)的對(duì)等體接收相同的消息三次。對(duì)等體使用消息中指示起源和順序值的信息,如圖2的消息205中所示的起源標(biāo)識(shí)符215和順序值220,將消息標(biāo)識(shí)為相同的消息。來(lái)自不同對(duì)等體的相同消息將具有相同的起源和順序信息。
對(duì)等體將從每個(gè)已連接對(duì)等體接收的消息進(jìn)行比較,方框2710。對(duì)等體比較消息的數(shù)據(jù)部分,如圖2的消息205中所示的數(shù)據(jù)230。對(duì)等體確定對(duì)于任何已接收消息,消息的數(shù)據(jù)部分是否不同。在一個(gè)實(shí)施中,如果從一個(gè)已連接對(duì)等體接收的消息的數(shù)據(jù)部分不同于從其它已連接對(duì)等體接收的相同消息的數(shù)據(jù)部分,則對(duì)等體確定發(fā)生了欺詐違規(guī)。對(duì)等體還確定發(fā)送具有不同數(shù)據(jù)的消息的一個(gè)對(duì)等體對(duì)欺詐違規(guī)負(fù)責(zé)?;蛘?,對(duì)等體使用不同的技術(shù)檢測(cè)欺詐違規(guī)或標(biāo)識(shí)對(duì)欺詐違規(guī)負(fù)責(zé)的對(duì)等體。適當(dāng)時(shí),對(duì)等體不中繼具有不同數(shù)據(jù)部分的消息。
如果發(fā)生了欺詐違規(guī),則對(duì)等體發(fā)送欺詐提示,方框2715。欺詐提示指示發(fā)生了欺詐違規(guī)和對(duì)欺詐違規(guī)負(fù)責(zé)的對(duì)等體。對(duì)等體將欺詐提示發(fā)送到已連接對(duì)等體以在整個(gè)網(wǎng)格中繼提示。在另一實(shí)施中,對(duì)等體將欺詐提示發(fā)送到服務(wù)器以進(jìn)行適當(dāng)?shù)奶幚怼?br> 當(dāng)對(duì)等體收到欺詐提示時(shí),對(duì)等體采取措施以從違規(guī)中恢復(fù),方框2720。對(duì)等體采取措施以防止欺詐對(duì)等體繼續(xù)影響網(wǎng)格活動(dòng)。在一個(gè)實(shí)施中,對(duì)等體忽略來(lái)自欺詐對(duì)等體的消息。在另一實(shí)施中,對(duì)等體強(qiáng)制欺詐對(duì)等體與網(wǎng)格斷開連接。對(duì)等體還采取措施來(lái)修補(bǔ)包括不同數(shù)據(jù)的消息的影響,如通過(guò)發(fā)出具有如由其它消息中用于標(biāo)識(shí)欺詐消息的數(shù)據(jù)所示的正確數(shù)據(jù)的替換消息。或者,對(duì)等體之一估計(jì)正確數(shù)據(jù),并在整個(gè)網(wǎng)絡(luò)中繼正確數(shù)據(jù)。在另一實(shí)施中,對(duì)等體對(duì)欺詐提示的響應(yīng)是通知服務(wù)器。這種情況下,服務(wù)器解決欺詐違規(guī),如通過(guò)斷開對(duì)欺詐違規(guī)負(fù)責(zé)的對(duì)等體的連接。
在另一實(shí)施中,當(dāng)對(duì)等體發(fā)送消息時(shí),接收方將消息中繼回發(fā)送對(duì)等體。發(fā)送對(duì)等體保存已發(fā)送消息的副本。當(dāng)發(fā)送對(duì)等體接收從接收方返回的消息時(shí),發(fā)送對(duì)等體將已發(fā)送消息的數(shù)據(jù)與已接收消息的數(shù)據(jù)進(jìn)行比較。對(duì)等體通過(guò)查找差異而檢測(cè)欺詐違規(guī)。對(duì)等體確定接收方修改了消息并發(fā)出欺詐提示。在一個(gè)實(shí)施中,直到報(bào)告了多個(gè)違規(guī)才對(duì)欺詐對(duì)等體進(jìn)行恢復(fù)或修補(bǔ)措施(例如,由服務(wù)器跟蹤)。在另一實(shí)施中,為欺詐進(jìn)行的此回送檢查是用于檢測(cè)欺詐的第一層,一旦標(biāo)識(shí)了可能的問(wèn)題后,然后是更復(fù)雜的過(guò)程。
在另一實(shí)施中,對(duì)等體通過(guò)將已接收消息中的數(shù)據(jù)與由對(duì)等體生成的預(yù)測(cè)數(shù)據(jù)集進(jìn)行比較來(lái)檢測(cè)欺詐違規(guī)。如果對(duì)等體確定已接收消息中的數(shù)據(jù)與由對(duì)等體生成的數(shù)據(jù)不同,則對(duì)等體確定已接收消息的發(fā)送方對(duì)欺詐違規(guī)負(fù)責(zé),并發(fā)出提示。
在圖1所示網(wǎng)格100中檢測(cè)欺詐違規(guī)的例子中,對(duì)等體B從對(duì)等體A、D和E中的每個(gè)接收相同的消息。對(duì)等體B通過(guò)比較起源標(biāo)識(shí)符和順序值,將消息標(biāo)識(shí)為相同的。如果對(duì)等體B檢測(cè)到來(lái)自對(duì)等體A的消息具有不同的數(shù)據(jù)部分,則對(duì)等體B發(fā)出將對(duì)等體A標(biāo)識(shí)為欺詐的欺詐提示。對(duì)等體B將欺詐提示發(fā)送到對(duì)等體D和E(及任選地到對(duì)等體A)。對(duì)等體中繼欺詐提示,直至所有對(duì)等體已接收提示。作為對(duì)提示的響應(yīng),對(duì)等體將忽略來(lái)自對(duì)等體A的所有進(jìn)一步的消息。因此,對(duì)等體B、C和D將不再中繼來(lái)自對(duì)等體A的消息。
圖28示出在對(duì)等中繼網(wǎng)絡(luò)中檢測(cè)安全違規(guī)的一個(gè)實(shí)施的流程圖2800。最初,連接多個(gè)對(duì)等系統(tǒng)以形成對(duì)等中繼網(wǎng)絡(luò)或網(wǎng)格。
對(duì)等體從其已連接對(duì)等體之一接收消息,方框2805。對(duì)等體分析消息并檢測(cè)安全違規(guī),方框2810。對(duì)等體通過(guò)識(shí)別出消息無(wú)效或包括無(wú)效數(shù)據(jù)來(lái)確定消息是安全違規(guī)。在另一實(shí)施中,對(duì)等體通過(guò)分析消息如何被發(fā)送到該對(duì)等體來(lái)確定消息是安全違規(guī)。例如,如果消息被作為相同消息的大量重復(fù)之一發(fā)送到對(duì)等體(例如,如在服務(wù)拒絕攻擊中),則對(duì)等體識(shí)別出消息是安全違規(guī)。在一個(gè)實(shí)施中,消息被作為一系列分組發(fā)送,并且對(duì)等體在低于完整消息的級(jí)別、如在分組級(jí)別檢測(cè)到安全違規(guī)。對(duì)等體還確定具有安全違規(guī)的消息發(fā)送方對(duì)安全違規(guī)負(fù)責(zé)?;蛘?,對(duì)等體使用不同的技術(shù)來(lái)檢測(cè)安全違規(guī)或標(biāo)識(shí)對(duì)欺詐違規(guī)負(fù)責(zé)的對(duì)等體。對(duì)等體不中繼具有安全違規(guī)的消息或數(shù)據(jù)。
如果發(fā)生了安全違規(guī),則對(duì)等體發(fā)送安全提示,方框2815。安全提示指示發(fā)生了安全違規(guī)和對(duì)安全違規(guī)負(fù)責(zé)的對(duì)等體。對(duì)等體將安全提示發(fā)送到已連接對(duì)等體以在整個(gè)網(wǎng)格中繼提示。在另一實(shí)施中,對(duì)等體將安全提示發(fā)送到服務(wù)器以進(jìn)行適當(dāng)?shù)奶幚怼?br> 當(dāng)對(duì)等體接收安全提示時(shí),對(duì)等體采取適當(dāng)?shù)拇胧┮詮倪`規(guī)中恢復(fù),方框2820。對(duì)等體采取措施以防止違反網(wǎng)格安全的對(duì)等體繼續(xù)影響或損害網(wǎng)格。在一個(gè)實(shí)施中,對(duì)等體忽略來(lái)自對(duì)安全違規(guī)負(fù)責(zé)的對(duì)等體的消息。在另一實(shí)施中,對(duì)等體強(qiáng)制對(duì)安全違規(guī)負(fù)責(zé)的對(duì)等體斷開與網(wǎng)格的連接。對(duì)等體還采取適當(dāng)?shù)拇胧┮孕扪a(bǔ)由安全違規(guī)造成的任何損害。在另一實(shí)施中,對(duì)等體對(duì)安全提示的響應(yīng)是通知服務(wù)器。這種情況下,服務(wù)器解決安全違規(guī),如通過(guò)斷開對(duì)安全違規(guī)負(fù)責(zé)的對(duì)等體的連接,并采取措施來(lái)修補(bǔ)對(duì)網(wǎng)格造成的任何損害。
圖29和圖30分別示出服務(wù)器2905和對(duì)等系統(tǒng)3005的一個(gè)實(shí)施的方框圖。在其它實(shí)施中,服務(wù)器或?qū)Φ润w包括比圖29和圖30中所示更少的組件,或者包括不同或附加的組件。
服務(wù)器2905如上所述操作并包括提供上述功能的組件,包括用于建立網(wǎng)格2910、添加對(duì)等體2915、連接對(duì)等體2920、斷開對(duì)等體連接2925、維護(hù)網(wǎng)格2930、存儲(chǔ)和生成網(wǎng)格數(shù)據(jù)(例如,連接、成員、連接限制)和規(guī)則(例如,中繼規(guī)則、連接規(guī)則)2935、管理多個(gè)界2940、通過(guò)冗余列表進(jìn)行管理和幫助2940、管理多個(gè)網(wǎng)格2950、管理網(wǎng)格中的觀眾和參與者2955、處理島檢測(cè)和恢復(fù)2960、管理和解決欺詐與安全違規(guī)2965及服務(wù)器的中心服務(wù)2970(例如,網(wǎng)絡(luò)通信和尋址、玩家匹配、聊天功能、數(shù)據(jù)備份等)的組件。
對(duì)等系統(tǒng)3005如上所述操作并包括提供如上所述功能的組件,包括用于建立網(wǎng)格3010、加入網(wǎng)格3015、連接對(duì)等體3020、斷開對(duì)等體連接3025、維護(hù)網(wǎng)格3030、存儲(chǔ)和生成網(wǎng)格數(shù)據(jù)(例如,連接、成員、連接限制)和規(guī)則(例如,中繼規(guī)則、連接規(guī)則)3035、構(gòu)建、更新和使用冗余列表3040、在多個(gè)網(wǎng)格3045中操作、通過(guò)和作為網(wǎng)格中的觀眾和參與者進(jìn)行操作3050、處理島檢測(cè)和恢復(fù)3055、管理、檢測(cè)和解決欺詐和安全違規(guī)3060及對(duì)等系統(tǒng)服務(wù)3065(例如,網(wǎng)絡(luò)通信和尋址、玩家匹配、聊天功能、數(shù)據(jù)備份等)的組件。
對(duì)等中繼網(wǎng)絡(luò)的各種實(shí)施提供所需的益處。網(wǎng)格在多個(gè)網(wǎng)絡(luò)應(yīng)用中很有用,包括龐大的多玩家計(jì)算機(jī)在線游戲。在線游戲應(yīng)用只是具有一個(gè)共同點(diǎn)的更大網(wǎng)絡(luò)應(yīng)用組的一個(gè)例子共享和維護(hù)一個(gè)公共數(shù)據(jù)集。當(dāng)數(shù)據(jù)集在一個(gè)對(duì)等體上更新時(shí),信息被發(fā)送到其它對(duì)等體組并在整個(gè)網(wǎng)格中繼,因此,每個(gè)對(duì)等體將具有更新的數(shù)據(jù)集。中繼網(wǎng)格允許具有有限網(wǎng)絡(luò)帶寬的已連接對(duì)等體在它們之間交換數(shù)據(jù),而無(wú)需通過(guò)中央服務(wù)器(來(lái)分發(fā)數(shù)據(jù))。此網(wǎng)絡(luò)可用于交換游戲數(shù)據(jù)、其它游戲相關(guān)信息、媒體文件、流傳送音頻或流傳送視頻。
例如,在一個(gè)實(shí)施中,對(duì)等體使用網(wǎng)格進(jìn)行文件發(fā)布。網(wǎng)格中的對(duì)等體通過(guò)將文件發(fā)送到連接至公布者的對(duì)等體公布文件(作為一個(gè)消息或分成多個(gè)消息),并且網(wǎng)格的成員對(duì)等體在整個(gè)網(wǎng)格將文件中繼到所有成員。這樣,網(wǎng)格的所有成員可接收公布的文件而不使用服務(wù)器并不使用從公布對(duì)等體到每個(gè)對(duì)等體的直接連接。在各種實(shí)施中,可公布任何類型的文件。文件可以是數(shù)據(jù)、媒體或可執(zhí)行軟件應(yīng)用。通過(guò)網(wǎng)格公布的文件例子包括但不限于流傳送介質(zhì)(例如,音頻和/或視頻)、媒體文件、來(lái)自游戲或其它應(yīng)用的重放數(shù)據(jù)、地圖、公告、消息、應(yīng)用數(shù)據(jù)和模塊(例如,地圖、模板、結(jié)構(gòu)、聲音)。
本發(fā)明的各種實(shí)施以電子硬件、計(jì)算機(jī)軟件或這些技術(shù)的組合實(shí)現(xiàn)。大多數(shù)實(shí)施包括由可編程計(jì)算機(jī)執(zhí)行的一個(gè)或更多個(gè)計(jì)算機(jī)程序。例如,在一個(gè)實(shí)施中,每個(gè)對(duì)等系統(tǒng)和服務(wù)器包括一臺(tái)或更多臺(tái)執(zhí)行用于實(shí)施對(duì)等中繼網(wǎng)絡(luò)功能的軟件的計(jì)算機(jī)。通常,每臺(tái)計(jì)算機(jī)包括一個(gè)或更多個(gè)處理器、一個(gè)或更多個(gè)數(shù)據(jù)存儲(chǔ)組件(例如,易失性或非易失性存儲(chǔ)器模塊和永久性光學(xué)和磁性存儲(chǔ)裝置,如硬盤和軟盤驅(qū)動(dòng)器、CD-ROM驅(qū)動(dòng)器和磁帶驅(qū)動(dòng)器)、一個(gè)或更多個(gè)輸入裝置(例如,鼠標(biāo)和鍵盤)及一個(gè)或更多個(gè)輸出裝置(例如,顯示控制臺(tái)和打印機(jī))。
計(jì)算機(jī)程序包括通常存儲(chǔ)在永久性存儲(chǔ)介質(zhì)并然后在運(yùn)行時(shí)復(fù)制到存儲(chǔ)器中的可執(zhí)行代碼。處理器通過(guò)以規(guī)定次序從存儲(chǔ)器取出程序指令而執(zhí)行代碼。當(dāng)執(zhí)行程序代碼時(shí),計(jì)算機(jī)從輸入和/或存儲(chǔ)裝置接收數(shù)據(jù)、對(duì)數(shù)據(jù)執(zhí)行操作并然后將結(jié)果數(shù)據(jù)提供到輸出和/或存儲(chǔ)裝置。
描述了本發(fā)明的各種說(shuō)明性實(shí)施。然而,本領(lǐng)域的技術(shù)人員將明白,附加的實(shí)施也是可能的并在本發(fā)明的范圍內(nèi)。例如,雖然上述說(shuō)明描述在支持游戲應(yīng)用的上下文中論述的對(duì)等中繼網(wǎng)絡(luò)的若干實(shí)施,但其它應(yīng)用也是可能的,如文件共享或其它數(shù)據(jù)分發(fā)應(yīng)用。
因此,本發(fā)明并不只限于上述那些實(shí)施。
權(quán)利要求
1.一種對(duì)等中繼網(wǎng)絡(luò),包括多個(gè)即N個(gè)對(duì)等系統(tǒng);其中,所述對(duì)等中繼網(wǎng)絡(luò)中的每個(gè)對(duì)等系統(tǒng)連接至所述對(duì)等中繼網(wǎng)絡(luò)中小于或等于連接限制的多個(gè)其它對(duì)等系統(tǒng),所述連接限制大于或等于2,所述連接限制小于或等于N-2,所述對(duì)等中繼網(wǎng)絡(luò)中的每個(gè)對(duì)等系統(tǒng)配置為根據(jù)由一個(gè)或更多個(gè)中繼規(guī)則組成的集合,將數(shù)據(jù)中繼到連接至該對(duì)等系統(tǒng)的對(duì)等系統(tǒng),每個(gè)對(duì)等系統(tǒng)是參與者或觀眾,至少一個(gè)對(duì)等系統(tǒng)是參與者,至少一個(gè)對(duì)等系統(tǒng)是觀眾,參與者配置為生成要在所述對(duì)等中繼網(wǎng)絡(luò)中中繼的數(shù)據(jù),以及觀眾配置為中繼由參與者生成的數(shù)據(jù)。
2.如權(quán)利要求1所述的對(duì)等中繼網(wǎng)絡(luò),還包括連接至每個(gè)對(duì)等系統(tǒng)的服務(wù)器。
3.如權(quán)利要求1所述的對(duì)等中繼網(wǎng)絡(luò),其中所述至少一個(gè)參與者在玩在線游戲。
4.如權(quán)利要求1所述的對(duì)等中繼網(wǎng)絡(luò),其中所述至少一個(gè)參與者在表演。
5.如權(quán)利要求4所述的對(duì)等中繼網(wǎng)絡(luò),其中所述表演是播放音樂(lè)。
6.如權(quán)利要求1所述的對(duì)等中繼網(wǎng)絡(luò),其中所述至少一個(gè)參與者在教學(xué)。
7.如權(quán)利要求1所述的對(duì)等中繼網(wǎng)絡(luò),其中至少兩個(gè)對(duì)等系統(tǒng)是參與者,以及每個(gè)參與者具有到至少另一參與者的連接。
8.如權(quán)利要求1所述的對(duì)等中繼網(wǎng)絡(luò),其中每個(gè)對(duì)等系統(tǒng)配置為不中繼由觀眾生成的數(shù)據(jù)。
9.如權(quán)利要求1所述的對(duì)等中繼網(wǎng)絡(luò),其中至少一個(gè)觀眾是條件觀眾,條件觀眾配置為請(qǐng)求將由所述條件觀眾生成的數(shù)據(jù)發(fā)送到其它對(duì)等系統(tǒng)以在整個(gè)所述對(duì)等中繼網(wǎng)絡(luò)中繼的權(quán)限,如果條件觀眾已得到發(fā)送由其生成的數(shù)據(jù)的權(quán)限,每個(gè)對(duì)等系統(tǒng)配置為中繼由該條件觀眾生成的數(shù)據(jù)。
10.如權(quán)利要求1所述的對(duì)等中繼網(wǎng)絡(luò),其中至少一個(gè)對(duì)等系統(tǒng)是啟用網(wǎng)絡(luò)的游戲控制臺(tái)。
11.如權(quán)利要求1所述的對(duì)等中繼網(wǎng)絡(luò),其中至少兩個(gè)對(duì)等系統(tǒng)通過(guò)因特網(wǎng)連接。
12.一種在對(duì)等中繼網(wǎng)絡(luò)中中繼數(shù)據(jù)的方法,包括在中繼對(duì)等系統(tǒng)從對(duì)等中繼網(wǎng)絡(luò)中連接至所述中繼對(duì)等系統(tǒng)的發(fā)送對(duì)等系統(tǒng)接收數(shù)據(jù),其中,所述數(shù)據(jù)具有相關(guān)聯(lián)的、標(biāo)識(shí)生成所述數(shù)據(jù)的起源對(duì)等系統(tǒng)的信息;確認(rèn)允許所述起源對(duì)等系統(tǒng)發(fā)送數(shù)據(jù)以通過(guò)所述對(duì)等中繼網(wǎng)絡(luò)中繼;應(yīng)用由一個(gè)或更多個(gè)中繼規(guī)則組成的集合以選擇由所述由一個(gè)或更多個(gè)中繼規(guī)則組成的集合指示的、要中繼所述數(shù)據(jù)到的零或更多個(gè)對(duì)等系統(tǒng);以及將所述數(shù)據(jù)中繼到通過(guò)應(yīng)用所述由一個(gè)或更多個(gè)中繼規(guī)則組成的集合而選擇的任何對(duì)等系統(tǒng);其中,所述對(duì)等中繼網(wǎng)絡(luò)中的每個(gè)對(duì)等系統(tǒng)是參與者或觀眾。
13.如權(quán)利要求12所述的方法,其中不允許觀眾發(fā)送由所述觀眾生成的數(shù)據(jù)以在整個(gè)所述對(duì)等中繼網(wǎng)絡(luò)中繼。
14.如權(quán)利要求12所述的方法,其中每個(gè)對(duì)等系統(tǒng)存儲(chǔ)連接限制,所述連接限制限定允許對(duì)等系統(tǒng)在該對(duì)等中繼網(wǎng)絡(luò)中連接至的其它對(duì)等系統(tǒng)的最大數(shù)量,以及每個(gè)對(duì)等系統(tǒng)存儲(chǔ)由一個(gè)或更多個(gè)中繼規(guī)則組成的集合,這些規(guī)則規(guī)定對(duì)等系統(tǒng)如何將數(shù)據(jù)中繼到該對(duì)等中繼網(wǎng)絡(luò)中連接至該對(duì)等系統(tǒng)的其它對(duì)等系統(tǒng)。
15.一種在對(duì)等中繼網(wǎng)絡(luò)中的對(duì)等系統(tǒng),包括用于在中繼對(duì)等系統(tǒng)從對(duì)等中繼網(wǎng)絡(luò)中連接至所述中繼對(duì)等系統(tǒng)的發(fā)送對(duì)等系統(tǒng)接收數(shù)據(jù)的工具,其中,所述數(shù)據(jù)具有相關(guān)聯(lián)的、標(biāo)識(shí)生成所述數(shù)據(jù)的起源對(duì)等系統(tǒng)的信息;用于確認(rèn)允許所述起源對(duì)等系統(tǒng)發(fā)送數(shù)據(jù)以通過(guò)所述對(duì)等中繼網(wǎng)絡(luò)中繼的工具;用于應(yīng)用由一個(gè)或更多個(gè)中繼規(guī)則組成的集合以選擇由所述由一個(gè)或更多個(gè)中繼規(guī)則組成的集合指示的、要中繼所述數(shù)據(jù)到的零或更多個(gè)對(duì)等系統(tǒng)的工具;以及用于將所述數(shù)據(jù)中繼到通過(guò)應(yīng)用所述由一個(gè)或更多個(gè)中繼規(guī)則組成的集合而選擇的任何對(duì)等系統(tǒng)的工具;其中,所述對(duì)等中繼網(wǎng)絡(luò)中的每個(gè)對(duì)等系統(tǒng)是參與者或觀眾。
16.如權(quán)利要求15所述的對(duì)等系統(tǒng),其中不允許觀眾發(fā)送由所述觀眾生成的數(shù)據(jù)以在整個(gè)所述對(duì)等中繼網(wǎng)絡(luò)中繼。
17.如權(quán)利要求15所述的對(duì)等系統(tǒng),其中所述對(duì)等系統(tǒng)存儲(chǔ)連接限制,所述連接限制限定允許所述對(duì)等系統(tǒng)在該對(duì)等中繼網(wǎng)絡(luò)中連接至的其它對(duì)等系統(tǒng)的最大數(shù)量,以及所述對(duì)等系統(tǒng)存儲(chǔ)由一個(gè)或更多個(gè)中繼規(guī)則組成的集合,這些規(guī)則規(guī)定所述對(duì)等系統(tǒng)如何將數(shù)據(jù)中繼到該對(duì)等中繼網(wǎng)絡(luò)中連接至該對(duì)等系統(tǒng)的其它對(duì)等系統(tǒng)。
18.一種存儲(chǔ)在有形存儲(chǔ)介質(zhì)上以在對(duì)等中繼網(wǎng)絡(luò)中的對(duì)等系統(tǒng)中使用的計(jì)算機(jī)程序,所述程序包括使計(jì)算機(jī)執(zhí)行以下操作的可執(zhí)行指令在中繼對(duì)等系統(tǒng)處理來(lái)自對(duì)等中繼網(wǎng)絡(luò)中連接至所述中繼對(duì)等系統(tǒng)的發(fā)送對(duì)等系統(tǒng)的已接收數(shù)據(jù),其中,所述數(shù)據(jù)具有相關(guān)聯(lián)的、標(biāo)識(shí)生成所述數(shù)據(jù)的起源對(duì)等系統(tǒng)的信息;確認(rèn)允許所述起源對(duì)等系統(tǒng)發(fā)送數(shù)據(jù)以通過(guò)所述對(duì)等中繼網(wǎng)絡(luò)中繼;應(yīng)用由一個(gè)或更多個(gè)中繼規(guī)則組成的集合以選擇由所述由一個(gè)或更多個(gè)中繼規(guī)則組成的集合指示的、要中繼所述數(shù)據(jù)到的零或更多個(gè)對(duì)等系統(tǒng);以及將所述數(shù)據(jù)中繼到通過(guò)應(yīng)用所述由一個(gè)或更多個(gè)中繼規(guī)則組成的集合而選擇的任何對(duì)等系統(tǒng);其中,所述對(duì)等中繼網(wǎng)絡(luò)中的每個(gè)對(duì)等系統(tǒng)是參與者或觀眾。
19.如權(quán)利要求18所述的計(jì)算機(jī)程序,其中不允許觀眾發(fā)送由所述觀眾生成的數(shù)據(jù)以在整個(gè)所述對(duì)等中繼網(wǎng)絡(luò)中繼。
20.如權(quán)利要求18所述的計(jì)算機(jī)程序,其中所述對(duì)等系統(tǒng)存儲(chǔ)連接限制,所述連接限制限定允許所述對(duì)等系統(tǒng)在該對(duì)等中繼網(wǎng)絡(luò)中連接至的其它對(duì)等系統(tǒng)的最大數(shù)量,以及所述對(duì)等系統(tǒng)存儲(chǔ)由一個(gè)或更多個(gè)中繼規(guī)則組成的集合,這些規(guī)則規(guī)定所述對(duì)等系統(tǒng)如何將數(shù)據(jù)中繼到該對(duì)等中繼網(wǎng)絡(luò)中連接至該對(duì)等系統(tǒng)的其它對(duì)等系統(tǒng)。
全文摘要
用于實(shí)施對(duì)等中繼的方法和設(shè)備。在一個(gè)實(shí)施中,對(duì)等中繼網(wǎng)絡(luò)包括多個(gè)即N個(gè)對(duì)等系統(tǒng);其中,所述對(duì)等中繼網(wǎng)絡(luò)中的每個(gè)對(duì)等系統(tǒng)連接至所述對(duì)等中繼網(wǎng)絡(luò)中小于或等于連接限制的多個(gè)其它對(duì)等系統(tǒng),所述連接限制大于或等于2,所述連接限制小于或等于N-2,所述對(duì)等中繼網(wǎng)絡(luò)中的每個(gè)對(duì)等系統(tǒng)配置為根據(jù)由一個(gè)或更多個(gè)中繼規(guī)則組成的集合,將數(shù)據(jù)中繼到連接至該對(duì)等系統(tǒng)的對(duì)等系統(tǒng),每個(gè)對(duì)等系統(tǒng)是參與者或觀眾,至少一個(gè)對(duì)等系統(tǒng)是參與者,至少一個(gè)對(duì)等系統(tǒng)是觀眾,參與者配置為生成要在所述對(duì)等中繼網(wǎng)絡(luò)中中繼的數(shù)據(jù),以及觀眾配置為中繼由參與者生成的數(shù)據(jù)。
文檔編號(hào)H04L29/06GK1894929SQ200480037246
公開日2007年1月10日 申請(qǐng)日期2004年7月15日 優(yōu)先權(quán)日2003年10月20日
發(fā)明者G·范達(dá)塔 申請(qǐng)人:美國(guó)索尼電腦娛樂(lè)公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1