CN101523372A - 分散式多用户在线环境 - Google Patents
分散式多用户在线环境 Download PDFInfo
- Publication number
- CN101523372A CN101523372A CNA2007800372500A CN200780037250A CN101523372A CN 101523372 A CN101523372 A CN 101523372A CN A2007800372500 A CNA2007800372500 A CN A2007800372500A CN 200780037250 A CN200780037250 A CN 200780037250A CN 101523372 A CN101523372 A CN 101523372A
- Authority
- CN
- China
- Prior art keywords
- node
- network
- interdependent
- agreement
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
-
- A63F13/12—
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/34—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/71—Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1053—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers
- H04L67/1055—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers involving connection limits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1093—Some peer nodes performing special functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/40—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
- A63F2300/408—Peer to peer connection
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/534—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Child & Adolescent Psychology (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种促进对等实时网络的协议,在对等实时网络中,网络状态信息和数据处理被委托给用户节点。虚拟空间被递归分成由逻辑树表示的多个子区域,针对叶子节点的责任被分配给多个用户节点。分布式哈希表能被用于存储叶子节点状态和身份信息。为用户节点提供发现索引协议以有效地识别负责兴趣子区域的用户节点。进一步地,语义过滤协议主要限制与被认为相关的其它用户节点的通信,以便约束带宽使用。提供广播控制协议以为各个用户节点增加同时交互的数目。还提供安全协议以防止恶意节点的任何非法活动。
Description
交叉引用相关申请
本申请要求于2006年10月5日提交的澳大利亚临时专利申请No2006905510的权利,其内容通过参考合并于此。
技术领域
本发明涉及诸如因特网之类的信息网络,尤其涉及诸如在线游戏环境之类的多用户网络的规定,在某种意义上,该在线游戏环境是可扩展的,以支持大量的用户。
背景技术
因为一系列的原因,可能会需要多用户网络。这样的多用户网络中资源最密集的是多用户在线游戏环境。为了给用户或游戏玩家提供更逼真的游戏体验,在线游戏环境日益包括被期望尽可能详细地描绘或表现并尽可能接近于实时的复杂的大型虚拟环境。进一步地,日益增长的用户希望共同参与这种游戏环境。因此,为了管理实时参与空间上复杂且非常详细的虚拟环境的大量用户,通常需要大的数据量、高的数据速率及高的数据复杂性。
期望配置在线游戏环境的游戏发行商通常必须建立中央游戏服务器,此中央游戏服务器具有足够的资源以为成百上千的参与者处理游戏会话。以这种方式工作的具有足够处理能力的服务器是昂贵的,给游戏发行商带来高的配置成本。一个建议是提供服务器群,多个游戏发行商可以在此服务器群上集中管理他们的游戏,这能将配置成本降低到一定程度。然而,利用中央游戏服务器的任何系统牵涉与游戏服务器相关的大量费用。
依赖中央游戏服务器的游戏系统的另一个问题是中央游戏服务器存在单点故障。结果,任何电源故障、服务器故障或网络连接故障或中央游戏服务器的恶化都能引起整个游戏环境的恶化或故障。
包括在本申请文件中的文件、法令、材料、装置及物品等的任何讨论只是用于为本发明提供背景。而不是承认:因为存在于本申请的每条权利要求的优先权日期之前,所以任何的或所有的这些内容形成现有技术基础的部分或是本发明相关领域中的公知常识。
在整个申请文件中,短语“包括”或诸如“包含”或“具有”之类的变体将被理解为暗示包含规定的元件、整数或步骤或元件、整数或步骤的组,但不排除任何其它的元件、整数或步骤或元件、整数或步骤的组。
发明内容
根据第一方面,本发明提供一种促进对等实时网络的协议,在所述对等实时网络中,网络状态信息和数据处理被委托给用户节点,所述协议包括:
各个节点确定被认为与该节点相关的网络节点子集,并限制与该子集的通信;
各个节点采取语义过滤以将与另一节点的通信限制为与该另一节点相关的数据类型;并且
各个节点为该子集的各个节点确定使与该节点的通信最优化的广播协议。
根据第二方面,本发明提供一种针对对等实时网络的发现索引协议,在所述对等实时网络中,网络状态信息和数据处理被委托给用户节点,所述发现索引协议为第一节点确定被认为与该第一节点相关的节点子集,所述发现索引协议包括:
将针对所述网络的虚拟空间的子区域的责任分配给选出的协调对等节点,各个协调对等节点负责将网络状态更新传送给在各自子区域内活动的节点,并负责从在各自子区域内活动的节点接收网络状态更新;
各个节点维护与多个协调对等节点的网络状态更新连接;并且
维护用于记录该节点的网络状态更新连接的发现索引。
在本发明的第二方面的优选实施例中,在有n个参与节点的网络中,优选地,各个节点维护与基本上log(n)个协调对等节点的网络状态更新连接。
在本发明的第二方面的优选实施例中,所述发现索引执行下列的至少一个:
记录所述网络的虚拟空间的有实体存在的子区域;
记录虚拟对象和实体在各个子区域内的插入、删除和修改;
将请求节点的子区域中最接近于该节点的能够与该请求节点建立直接连接的实体通知给该请求节点。
优选地,通过将虚拟空间递归细分成诸如四叉树之类的逻辑树来确定所述子区域。优选地,虚拟对象与仅仅四叉树的非根级别处的控制点相关联,以便避免在四叉树的根级别上的单点故障。例如,可以防止根级别控制点和第一级别控制点具有与之相关联的任何虚拟对象。
优选地,发现索引是分布式发现索引,由所述网络的多个节点共同维护,并被分布到网络的多个节点。优选地,分布式发现索引由分布式哈希表(DHT)实现。在这样的实施例中,优选地,用于管理DHT的各个节点可操作地承担查询,以从所述DHT中定位和检索虚拟空间对象。优选地,DHT存储已经从所述虚拟空间递归分成的逻辑树的所有节点的记录。在特别优选的实施例中,诸如叶子节点身份和叶子节点主机IP地址之类的节点数据被各个主机激进缓存,以便最小化DHT所需的大量查询操作,并增加能够在单次操作中识别存储特定叶子节点的主机的可能性。在特定的这样的实施例中,节点数据以与起源叶子节点的虚拟距离成反比的概率被缓存。
根据第三方面,一种针对对等实时网络的语义过滤协议,在所述对等实时网络中,网络状态信息和数据处理被委托给用户节点,所述语义过滤协议用于将过滤节点与多个相关节点中的各个相关节点的通信限制为与各个相关节点相关的数据类型,所述语义过滤协议包括:
确定各个另一节点的虚拟实体是否在所述网络的虚拟空间中对所述过滤节点隐藏,并且防止与具有隐藏的虚拟实体的相关节点进行通信信;
向各个未隐藏的相关节点分配用于表示该未隐藏的相关节点与所述过滤节点的相关性的相关级别;并且
按照与所述相关级别对应的数量,对所述过滤节点与各个未隐藏的相关节点的通信加以约束。
在本发明的第三方面的优选实施例中,相关节点是否被隐藏通过参考在所述过滤节点与该相关节点之间的虚拟空间内是否存在虚拟视线来确定。
在本发明的第三方面的优选实施例中,对通信加以约束包括下列的至少一个:限制所述过滤节点用来与所述未隐藏的相关节点进行通信的包的包大小;和限制用以在所述过滤节点与所述未隐藏的相关节点之间传送更新的更新频率。
在本发明的第三方面的优选实施例中,所述相关级别与两个相应的节点的虚拟实体之间的虚拟距离相对应。
在本发明的第三方面的优选实施例中,通过本发明的第二方面的发现索引协议确定所述过滤节点的相关节点。
根据第四方面,本发明提供一种针对对等实时网络的广播控制协议,在所述对等实时网络中,网络状态信息和数据处理被委托给用户节点,所述广播控制协议用于使第一节点与多个相关节点之间的包传递最优化,所述广播控制协议包括:
向各个相关节点分配从k个表示该相关节点与所述第一节点之间的相关性的相关级别中选出的相关级别i;
将各个相关级别i与节点数ni、更新消息大小mi及更新频率ai相关联;通过参考 从所述第一节点的可用上游带宽U中确定在所述第一节点的广播树中的级别ci的个数,其中0<ci<sqrt(ni)。
在本发明的第四方面的优选实施例中,ci的最高满意值被选择。
在另一个优选的实施例中,所述广播树的较高级别被给予高于较低级别的优先权,满足c1>c2>c3>...>cn。
本发明的第四方面的优选实施例通过基于下列参数中的至少一个向所述广播树的级别分配各个相关节点来形成所述广播树:该相关节点的上游带宽、稳定性历史记录、网络距离及因特网包探索时间统计。可以给各个这种参数分配表示相对重要性的权重。
根据第五方面,本发明提供一种针对对等实时网络的安全协议,在所述对等实时网络中,网络状态信息和数据处理被委托给用户节点,所述安全协议用于防御恶意行为,所述安全协议包括:
第一节点通过选择多个相关节点的第一子集并转发加密消息给第一子集的x个节点来与所述多个相关节点进行通信,所述加密消息包括转发所述消息的指令;
所述第一子集的各个节点都转发所述消息,以便所述消息被转发给相关节点的x个子集。
在本发明的第五方面的优选实施例中,各个节点拥有所有相关节点的列表,并且各个接收节点仅向并未与该接收节点一起收到所述消息的节点转发所述消息。
在本发明的第五方面的优选实施例中,当存在n个相关节点时,优选地,x被确定为C.sqrt(n),其中C是可调的常量。
在本发明的第五方面的优选实施例中,为各个新的消息随机选择相关节点的子集,使得由遍及所述相关节点的分层广播形成的分布树从一消息到下一消息随机变化。
在本发明的第五方面的优选实施例中,通信节点为了负载均衡而分配权重给各个相关节点,所述权重基于下列的至少一个:网络距离、因特网包探索时间、上游容量、当前负载及稳定性历史记录来确定。
根据第六方面,本发明提供一种包括多节点的系统,根据本发明的第一至第五方面的至少一个所述的协议运行。
根据第七方面,本发明提供一种用户软件应用程序,用于实施根据本发明的第一至第五方面的至少一个所述的协议。
根据第八方面,本发明提供一种游戏开发平台软件应用程序,用于使游戏开发者能够设计符合本发明的第一至第五方面的至少一个所述的协议的游戏或在线环境。
根据第九方面,本发明提供一种装置,根据本发明的第一至第五方面的至少一个的协议运行。
在本发明的第一至第九方面的优选实施例中,对等实时网络适于大规模多用户在线环境。
附图说明
现将参考附图描述本发明的实例,其中:
图1示出根据本发明的第一方面的用于技术模块的协议栈;
图2示出根据本发明的大规模多玩家在线游戏引擎架构;
图3示出用于从多个节点派生出节点的相关子集的基于区域的四叉树;
图4示出被细分的空间区域的相邻叶子区域之间的连接。
具体实施方式
现将参考示出了协议架构的组成的图1至图4,描述大规模多玩家在线游戏(MMOG)平台的技术架构的一个实例。参考图2,MMOG游戏引擎210由游戏开发者提供,并且包括游戏逻辑、用于不同世界/环境的内容、图形界面、角色定义及由游戏工作室定义的所有的游戏规则。该模块210将通过一组应用编程接口(API)220与MMOG平台连接。
应用编程接口220通过定义网络子系统的一般功能来提供网络子系统的逻辑抽象。其基本目的在于用最小的但是灵活的一组操作简化游戏开发者对网络层的使用。对该组的标识限定网络子系统的应用需求,便于其在多个不同的MMOG中使用。
分布式游戏引擎(DGE)230是分布式算法(协议)的集合,其通过与其它逻辑模块交互,访问和操纵共享的游戏数据和过程。客户机/服务器应用中的游戏状态的分发和聚合包括简单的两方通信。分布式模块中的上述操作必须与多个对等节点通信。通常,这些操作能被分类成几个重现模式。DGE 230负责为给定的操作识别和执行最合适的算法。通信模式从诸如玩家虚拟位置之类的高频率更新变化到诸如虚拟金钱交易之类的高稳定性的玩家离线操作。
另外,对于游戏维护的各个部分,也必须提供任务的分配。这些不仅包括运行角色和动画对象,而且包括约束和条件断言、安全信息的处理、垃圾收集等。操作的实例是:
·寻找最近的玩家。
·寻找游戏中的金币的总数。
·保存/修改寻求的状态。
·执行NPC的AI。
·保证资源的自我补给。
·收集游戏统计资料。
·分配对安全审计的处理。
游戏引擎230将需要存储许多类型的数据,每种类型的数据都需要有效的索引/数据库。游戏状态管理(GSM)240将为此数据负责并提供一系列的分布式操作以操纵它。在最简单的情况下,它可以是分布式文件系统,在其它情况下,它可以要求临时索引、并发/事务等。全局状态的实例包括:
·文件-映射、结构、模型及代码。
·游戏状态-金钱、分数、角色细节、资源等。
·安全信息-可疑对等节点、审计数据及鉴权等。
·瞬时的但是全局的状态-门、季节及迁移时间等。
·空间数据-实体区域、地图(城市、建筑等)及最接近的邻居等。
每种类别的数据具有不同的性能/精度需求,本实施例认识到特定解决方案的适用性而非单一的全局分布式数据库的适用性。GSM 240包括P2P网络背景中的有效率的实体维护和交互。面临的挑战是以一种在许多感兴趣的玩家之间提供有效率的通信机制的方式动态地组织网络。MMOG经常在任一时刻管理数千个参与者,因此本发明提供仅发生在一个子集的分布式实体的之间的通信。本实施例认识到游戏的性能依赖于从参与者的全局组中成功并有效率地确定玩家的合适子集。
用于选择玩家的合适子集的基于邻居的方案可以被用在本发明的实施例中,并且使用虚拟世界内的欧几里得(Euclidean)距离作为启发式算法以形成连接。这些方案具有通信和计算的开销,因为各个实体必须检查每对断开连接的邻居之间的距离且每当实体移动时通知它们新的连接。
在本发明的替代的实施例中,可以使用基于区域的方案,该方案分配虚拟空间的区域给协调对等节点。该协调对等节点负责向在其区域内的所有的实体传播更新,同样地,在该区域内的所有的实体必须发送它们的更新给协调对等节点。这些方案可以使用四叉树以将该区域分成较小的尺寸,以便协调对等节点不必为大量的节点协调更新。图3示出典型的四叉树。依赖于该区域中实体的个数,活动区域300被进一步细分成较小的活动区域310和312等。所有的节点322、324等具有与根节点320建立的连接,其中根节点320是较大的活动区域300的节点协调器。如果对等节点想联系给定的区域的协调节点,假定是节点322,那么它将联系根节点320,并且遍历图3b所示的树,直到到达合适的协调对等节点322。
本实施例认识到前述的协调对等节点的方法的缺点是所有的对等节点必须经过根节点320或协调对等节点进行遍历。根节点320成为其余节点的瓶颈。如果网络中有大量节点,那么假使协调根节点320具有固定的资源,可能会减缓实体发现的整个过程。
因此,在本实施例中,各个对等节点维护log(n)个连接而不是仅仅一个到根节点320的连接。因此,节点不仅维护到根节点320的连接而且维护到其它协调节点322、324等的连接。因此,本实施例从实体(例如虚拟空间中的一组玩家)之间的交互管理中减少了查询虚拟区域300的区域的过程(连同全局实体维护)。被称为空间数据服务(SDS)的分布式空间索引提供在多维空间中插入、删除、查询和修改对象的方法。实体采用SDS注册活动区域,即被保证包含实体一段时间的空间区域。实体能查询SDS以找到附近的能够与之形成直接连接的对象。通过最小化连接的数目、消除路由延迟及避免依赖相邻对等节点的引入以形成新的连接,来完成有效的兴趣管理,并且使用很少的CPU资源来保持潜在的邻居。
因此,保持了所有实体之间的全局连通性和查询便利,而不需要频繁更新索引。交互实体彼此频繁地通信,同时当需要时它们发送关于它们的位置的概要更新给SDS。因为此方法通过避开根节点320消除了瓶颈,所以到达特定的协调对等节点是非常有效率的且牵涉较少的遍历行程。这使实体发现过程是非常有效率的。
现将详细描述用于一个优选实施例的空间索引算法。图4示出被细化的空间区域400的相邻叶子区域410、412及416等之间的连接。连接被显示为虚线432及434等。注意:对角的相邻区域被认为如434所示被连接。连接被认为是负载,因此,对于右下角区域416,如果连接数使负载增加至不可接受的水平,那么区域416会被细分。空间区域400内的空间对象未示出在图4中,另外缓存的非邻居之间的连接也未示出。
本实施例的算法提供空间对象的有效率的分散式索引和查询,描述任意数目的诸如桌面计算机之类的主机如何集中维护空间对象的空间索引,并且描述这些主机如何能承担查询以定位和处理空间对象。此算法采用空间的递归细分、分布式哈希表及激进缓存的结合。
索引和查询以分散式(decentralized)方式被处理,其中分散式是个术语,它暗示:平均起来,任何一个主机的故障不会比任何其它主机的故障对算法的特点和性能有更坏的影响。各个主机具有已知的主机的IP地址之类的因特网协议地址。
本算法使用分布式哈希表(DHT)。DHT应该是确定性的且是一致的,而合适的实例包括Chord、Kademlia及Accordion。假定DHT提供的操作是加入、离开及查找。查找操作能以基于关键字的路由的形式被使用。在复制存储对象这个意义上来说,DHT也被假定提供可靠的存储。
本实施例的算法动态将诸如空间400之类的空间细分成逻辑树,以便仅树的叶子节点被用于存储空间对象。树的所有节点被存储在DHT中。主机使用激进缓存以缓存(叶子节点,IP地址)对。这些被缓存的条目区别于由DHT做的任何缓存。这些被缓存的条目既被存储在叶子节点中,也被主机独立存储(在主机不存储任何叶子节点的情况下)。如果可能,该缓存消除DHT查找操作以便能够以单次操作识别存储(与被使用的空间区域对应的)叶子节点的主机。(叶子节点,IP地址)对以与起源叶子节点(被查询对等节点识别作为查询的开始位置的叶子节点)的距离成反比的概率被缓存。
现将按照加入操作、查找操作、更新操作及离开操作详细描述此算法。
加入操作被示出在图5中,包括下列步骤。步骤1:主机或联系系统中现有的主机,或成为加入的第一主机。在联系现有的主机的情况下,转到步骤6,否则继续执行步骤2。步骤2:加入的第一主机定义空间的全局区域。为了本说明书的目的,我们考虑二维空间。该区域初始没有空间对象也没有相邻或缓存的区域。步骤3:第一主机成为DHT中的第一主机。步骤4:第一主机形成字节字符串“R(X,Y)”,其中X和Y是全局区域的中心的标号,在DHT中以关键字“R(X,Y)”存储全局区域。步骤5:第一主机的加入操作完成。到此停止。
步骤6:称为加入主机的随后的主机联系现有的主机。现有的主机将全局区域的范围传递给加入主机。步骤7:加入主机加入DHT。结果,根据DHT的规则,加入主机可以或不可以为某一个数的区域负责。步骤8:如果加入主机不为任何区域负责(例如,当区域的现有个数小于主机的总数时,这可能发生),那么现有的主机传送某一个数的现有区域的“R(X,Y)”坐标和存储相关区域信息的各个主机的当前IP地址。加入主机在其缓存中存储区域坐标和IP地址。步骤9:加入完成。到此停止。
查找操作被示出在图6中。作为此算法的结果,以下为不变量:系统保证在所有时间,各个主机或将对一些区域(它们自身可以包含缓存的区域信息)负责或将一些区域坐标存储在其缓存中,或两者皆有。所有的这些区域共同地称为主机的区域集。
步骤1:使用贪婪路由算法对于任意点(x,y)或空间对象进行查找。发起查询的主机首先在其区域集中查找最接近于查询空间对象的区域。这些被共同地称为最接近的区域集。步骤2:如果找到的区域包含该查询,那么查找程序完成。到此停止。
步骤3:主机利用存储在各个最接近的区域中的关于该区域的相邻区域的信息,计算那些区域中的哪些区域是最接近的,那些区域成为下一个最接近的区域集。步骤4:对于最接近区域集中的各个区域,主机通过为各个区域形成合适的“R(X,Y)”字节字符串,使用DHT去定位负责的主机。主机或者在最接近的区域自身(如果它们被主机拥有)中缓存此信息,或者为了将来使用分别缓存此信息。
步骤5:主机发送查询给刚刚找到的负责的主机。此过程迭代地继续(看注意9),向目标区域同时也向负责这些区域的主机贪婪地路由该查询。发起查询的主机沿着路径收集和缓存这些区域的区域坐标和IP地址。缓存策略如描述在此方法的介绍中。
更新操作被示出在图7中。更新包括存储对象、删除对象和修改对象。步骤1:使用查找操作以定位包含空间对象的区域和负责的主机。越过细分线的空间对象根据需要被分成两个或多个对象。步骤2:将更新操作传递给负责的主机。步骤3:如果存储在区域中的对象的个数引起主机上的处理/通信负担超过给定的阈值,那么将区域细分(接着下面的A步骤)。如果删除对象导致空区域,那么将此区域归类(接着下面的B步骤)。如果不,那么更新操作完成,并到此停止。
步骤A4:区域的细分需要将此区域分成四个相等大小的象限。该区域中的各个对象被分配给包含它们的相关的象限。与多个象限交迭的目标被分成较小的对象。步骤A5:利用该区域的邻居,设置四个子区域中的各个子区域的相邻区域。两个左边的子区域具有与该区域的左邻居相同的邻居。两个顶部的子区域具有与该区域的顶部邻居相同的邻居。两个右边的子区域具有与该区域的右邻居相同的邻居。两个底部的子区域具有与该区域的底部邻居相同的邻居。子区域也是彼此的邻居。参见相邻连接的实例的图4。
步骤A6:使用新创建的区域的“R(X,Y)”字节字符串作为关键字,将新创建的区域存储在DHT中。步骤A7:不删除前一区域。相反,把它作为空白区域。如果来自查找操作的查询到达空白区域,那么负责的主机通知查询主机:此区域是空白的,并且作为代替地,应该联系子区域。步骤A8:细分完成。到此停止。
步骤B4:如果区域被归类,那么负责的主机联系父区域且通知父区域该区域被归类。如果父区域的所有四个区域已被归类,那么父区域不再作为空白区域。步骤B5:不删除被归类的区域。相反地,把它们作为空白的归类区域。如果来自查找操作的查询到达空白的归类区域,那么通知查询主机应该联系父区域。步骤B6:归类完成。到此停止。
离开操作如下。步骤1:对等节点可以通过离开DHT而离开此系统。DHT负责维护区域信息的可靠存储等。步骤2:如果查询对等节点利用其缓存的信息,尝试联系从那以后已离开系统的负责的对等节点,那么查询对等节点使用DHT为正被讨论的此区域定位新的负责的对等节点。
注意:使用固定大小的全局区域对此算法进行描述。规定延伸至极大尺寸(在硬件算法限制的约束内)对于本领域技术人员是明显的。类似地,延伸至较高维,例如3维和更多维,也将是明显的。
假设各个主机仅使用一个IP地址,对此算法进行描述。虚拟IP地址(有时被应用于负载均衡)的使用对于本领域技术人员来说将是对该算法不言而喻的延伸。为了该算法的目的,具有多个虚拟IP地址的主机把每一个虚拟IP地址独立地当作随后的主机,例如各个虚拟地址被独立地加入。尽管假定主机一次加入/离开一个,包括并发加入/离开也将是可能的。
在本实施例中,利用豪斯多夫(Hausdorff)距离计算从点(或空间对象)到区域的距离。应用缓存压缩技术(例如将存储在相同主机上的相邻叶子节点压缩成单个缓存条目)减少缓存复杂性。可以应用缓存维护,例如删除老的条目和主动地缓存新的条目,以提高性能。在此描述的方法中,根据主机带宽容量允许,允许缓存条目增长,因此使给定的带宽容量的查找复杂性最小化。已知该技术接近O(1)查找复杂性。
对于给定的叶子节点L,上述方法的进一步的变体缓存许多(可能是一个)针对L的各个祖先的各个直接孩子随机选择的叶子节点。特别地,在二维中,这包括L的三个相邻叶子节点(它们是L的直接祖先的孩子)、在根源于L的第二祖先的三个孩子的三棵树的每棵中的至少一个叶子节点等,直到树的根。该变体达到O(log n)查找复杂性。也可以应用递归实现。
本实施例的交互模块负责保证不同玩家之间彼此高效地相互交互。这包括确保响应时间是非常低的。此操作的响应时间将直接有助于玩家的游戏体验的质量。
在MMOG中,有不同的区域,并且各个区域在任一时刻可能具有数千玩家。各个玩家具有操作的可视范围,在该范围内,可能有大量的玩家。这意味着各个玩家必须发送更新消息给可视范围内的所有其它的玩家以便玩家能够在他们的屏幕上更新所有其它玩家的位置。
在传统的客户机-服务器方法中,各个玩家发送一个更新包给服务器。然后服务器为各个玩家计算新的被更新的地图,并发送该地图给这些玩家。这以一定频率重复(依赖于游戏的类型,它会在每秒2次到5次之间变化)。因为玩家仅仅需要跟服务器通信,所以各个玩家的上游需求不是非常高。然而,服务器发送更新到所有的玩家并从所有的玩家接收更新。因此,这需要非常高的带宽连接。游戏发行商保证服务器与合适的网络很好地连接以处理峰值状态。
在本实施例的分散式方法中,在没有服务器的情况下,玩家必须彼此直接交互。如果某个用户在可视范围内具有大量其它用户,那么该用户必须与所有这些用户交互。这意味着以由游戏的类型所确定的固定频率发送更新消息给所有可见的玩家。这对于大部分玩家是难以承受的任务。大部分玩家通过诸如具有限上游带宽的ADSL和电缆之类的接入技术进行连接。以高频率发送更新包给所有其它的可见玩家会需要超出大部分玩家所具有的吞吐量。
交互模块通过提供语义过滤器和广播控制器这两个组件解决上述更新问题。这两个组件一起保证玩家能够与所有其它的相关玩家通信,而没有过度的延迟。下面将描述这两个组件。
语义过滤器筛选给定玩家必须与之通信的玩家的个数。在玩家的直接邻近范围内,可能有大量的玩家。然而,这些玩家中的许多玩家可能在静止对象后面,并且在虚拟环境中对于此给定玩家是不可见的。语义过滤器不考虑所有不可见的玩家,并计算兴趣区域中的可见玩家的列表。
下一个步骤是将可见玩家分成不同的级别。为了理解分类过程,理解典型的MMOG游戏场景是重要的。在MMOG中,在一个区域中有几个玩家。不是所有的玩家同时相互交互。玩家通常在某个给定时间与一个或两个玩家交互(剑战,卖东西等)。这样的玩家被分为第一级。其余的可见玩家在此玩家的直接邻近范围内,但不需要完全知道此玩家的详细的动作。因此,依赖于诸如他们离此玩家的距离、所需的细节数量及其它的基于游戏的语义信息之类的几个因素,他们被分为从2到n的不同的级别。例如,在远的背景中的大部分玩家仅需要知道仍然存在于它们的可见范围内的这些玩家的位置,因为它们太远以致不能观测到此玩家的详细的动作。
然后各个这样的级别被分配一个更新包大小。更新包被发送给所有的可见玩家以更新此给定玩家的位置。第一级别具有最大的包大小,因为它由与此给定的玩家最接近的玩家组成,并且也许直接与此玩家交互。他们会需要由此玩家执行的所有动作的细节。从2到n的其它的级别被分配的包大小小于第一级别,因为各个级别所需的信息细节小于前面的级别。因此,最末级别具有最小的更新包大小。
各个级别也被分配一个更新频率,在本实施例中更新频率对于各个级别是固定的。第一级别具有最高的更新频率。这是因为所有附近的玩家会更频繁地需要更新。其余级别按照递减顺序被分配频率。因此,第二级别的更新频率大于第三级别的更新频率等等。
该语义过滤的过程保证各个节点所需的总的上游吞吐量被大幅度地减少。例如,如果在给定区域中有100个可见玩家,各个玩家可能会需要100字节的恒定包大小、3次更新/秒的恒定更新频率及240Kbps的总上游吞吐量。这是非常高的,大部分玩家将不可能维持如此高的吞吐量。这可能导致包丢失,最终导致连接中断。
本实施例的语义过滤过程能使吞吐量需求大幅度地减少。例如,5%的玩家是第一级别,10%的玩家是第二级别,其余的玩家是第三级别。第一级别的玩家具有100字节的包大小,第二级别的玩家具有50字节的包大小,而第三级别的用户具有25字节的包大小。并且,第一级别的玩家具有3次更新/秒,第二级别的玩家具有1次更新/秒的更新频率,而第三级别的用户具有0.5次更新/秒的频率。在本实例中,各个节点所需的总上游吞吐量大约为20Kbps,示出了语义过滤协议提供从240Kbps的大幅度的减少。
广播控制器确认合适的协议以传送更新包给各个级别的相关玩家。假设语义过滤器识别出k个级别,各个级别i具有:
节点个数:ni
更新消息大小:mi
更新频率:ai
如果对等节点的总可用上游带宽是U,则
其中ci满足0<<ci<sqrt(ni)
ci的值决定从该对等节点起的广播树中的级别的个数。对于给定的级别,如果ci的值是sqrt(ni),那么广播树具有一个级别,所有的ni个节点从对等节点直接获得更新。如果ci等于1,那么广播树会有两个级别。ci的选择依赖于多个因素,最重要的是U(上游带宽)。对于各个级别,为ci选择最高值可能值以便等式(1)满足。当最优化等式(1)时,较高级别被给予高于较低级别的优先权,满足c1>c2>c3>...>ck。
一旦确定了参数的值,需要依赖于ci的值为各个级别i形成广播树。为了确定应该在广播树的不同级别上的节点,系统使用一系列的参数:节点的上游带宽、稳定性历史记录、网络距离、因特网包探索时间统计。基于参数的相对重要性为各个参数分配权重。
使用该方法,本实施例保证更新以有效率的方式被发送给所有的节点。具有诸如拨号用户之类的非常低的上游带宽的节点仍然能够加入MMOG网络且与其它玩家交互。
本实施例的安全模块保证游戏是足够安全的,并保护游戏免于恶意用户的攻击。安全模块包括两个子模块-内部和外部安全。内部安全处理来自于作为在线游戏系统的部分的用户的攻击,而外部安全处理来自于非游戏系统的部分的用户的攻击。
内部安全是承认这样一种可能性而被提供的,即作为MMOG的部分的用户能够尝试操纵游戏状态信息或修改到/来自于其它的游戏者的消息以获得不公平的利益。本实施例使用模块化的安全方法,此方法使用多种技术的组合以防御此类非法活动。实际的安全模块组合可能依赖于被保护的信息的类型和所期望的安全级别。一些技术可能需要额外的数据处理,这可能增加延迟,进而增加有效的响应时间。因此,在包括在系统中的安全级别与最终的系统性能之间存在权衡。将基于游戏发行商对于该游戏的需求和该游戏的类型(战略、角色扮演及第一人称射击)确定这种选择。下面将描述使用的不同技术。
使用加密技术,本实施例保证产生并存储在每台客户机上的二进制代码非常难以解密。这意味着黑客将需要长的时间进行逆向工程和破译密码。通常,游戏可能每周更新一次。因此,如果被加密的二进制代码每周被替换,那么对于尝试攻入系统的大部分黑客将是一种威慑。
消息发送协议可能以一定的频率(例如,每小时)不断地被修改以提供变种的消息协议。例如,如果消息大小是10字节,其中每字节代表某种游戏信息,那么信息的顺序可能每隔一个小时被修改和随机化。黑客将需要一些时间去解密此消息包和理解信息的不同位。到他们已经解码此消息时,此信息将是无用的,因为消息发送协议已经改变。
本实施例可以进一步使用鉴权技术以在用户连接游戏网络之前安全地对用户进行鉴权。能够使用类似的技术阻止恶意用户继续玩游戏。此类技术包括向所有用户广播恶意用户的身份并将此用户列入黑名单,以便他们不能与任何其它的用户交互。
位切片技术可以进一步地被应用以保护重要的游戏状态信息免于被恶意用户访问。在该技术中,游戏状态信息包被分成几个较小大小的包。这些子包被存储在不同的节点。为了获得游戏状态信息,所有的这些节点必须被查询且所有的子包必须被获得。此技术使得恶意用户更加难以获得重要的游戏信息,因为他们必须侵入几个节点而不只是一个节点。围绕不同的节点周期性地将子包打乱。这个步骤保证:即使恶意用户侵入所有需要的节点并获得游戏信息,但是这将是个信息过时之前的时间问题。
门限密码技术增加另外一层安全以保护私密的游戏状态信息。所有的私密的信息采用公共密钥加密技术加密。此方法中所用的另外步骤是将此密钥分成n个不同的子密钥,并将子密钥分配给n个对等节点。为了加密消息,所有的n个子密钥必须被组合以形成初始密钥。这个过程保证对于恶意用户为了解密私密的游戏信息获取密钥是非常困难的。
安全事件协议增加另外一层安全以保护更新消息不被窜改。更新消息连同下一个更新消息的散列值一起被广播给一组用户(实际上它是前一个消息和正被广播的当前的消息包的散列值)。假定当前的/将来的消息包是散列的,那么所有其它的用户不能使用该信息以获得不公平的利益。然而,当他们接收下一个更新包时,他们接收前一个实际的消息包。然后,他们能散列该消息,将该值与他们在前一个更新中接收的散列值比较。如果值不匹配,那么用户能够得出结论:输出的消息被窜改。一系列的动作可能被采取以修正此问题。
该系统进一步允许使用在游戏网络中能够作为安全代理的可信对等节点。这些对等节点通常会被游戏发行商拥有,因此,它们的行为能被信任。这些对等节点将能够监视游戏通信量,并执行检测以保证游戏数据是可靠的和可信的。如果用户违背游戏规则,他们会有禁止用户加入游戏网络的权力。
外部安全组件的目标是来源于系统外部的攻击,例如拒绝服务(DoS)攻击、病毒攻击、不是在线游戏的用户的计算机黑客。因为没有牵涉中央游戏服务器,所以本架构天性能防御DoS攻击,并且没有黑客作为DoS攻击目标的单台机器。如果黑客DoS特定的节点,那么仅该用户受影响。对于其余的外部攻击,能够在节点使用诸如维护病毒保护软件和不打开不常用程序的端口之类的标准技术。
进一步注意:本实施例的分散式的架构使得系统建立了固有的容错,因为没有单点故障。没有单台机器作为拒绝服务(DoS)能够中断整个游戏的目标。以特定用户作为DoS攻击的目标仅仅阻止该用户访问游戏网络。其余的玩家受到影响最小,他们能不中断地继续玩游戏。
进一步地,因为不涉及中心服务器,所以没有游戏所需的维护停机时间。
为了在大规模退出的情况下提供额外的保护,系统依赖于可信对等节点。可信对等节点是由发行商控制的具有额外能力的节点。这些节点以一定的频率备份游戏状态信息。在不太可能的大规模退出的的情况下(例如,大于90%的玩家在非常短的时间内与游戏网络断开),可信的对等节点能够将游戏回转到被保存的最近的状态。这保证剩余的玩家能不中断地继续玩游戏,同时再连接的玩家在随后的时间能再加入游戏以从他们离开的地方继续此游戏。
对等网络重叠是使用诸如分布式哈希表(DHT)之类的技术分配对象到各个对等节点的底层的协议。本发明的本实施例使用OpenDHT,它是在开放源码许可协议下广泛使用的对等网络重叠。
在本发明的替代的实施例中,另一个安全策略可以尤其与DoS相关地使用。对等网络系统对于DoS攻击个人是脆弱的,因为对等节点的因特网协议(IP)地址被包括在IP报头中,而这不能被加密。在多用户游戏环境中,当对等节点正与另一个对等节点交互时,这是需要关心的。恶意的对等节点可能DoS在虚拟空间中与之交互的对等节点以获取不公平的利益。
本发明的该另一个安全策略已被设计,并且采取随机性协议的形式,该协议使得潜在的攻击者发现虚拟空间中的给定玩家的IP地址更加困难。假定对等节点X需要与n个其它的对等节点交互:p1,p2,p3,...,pn。包含对等节点的列表存储在每台客户机中。该列表包括对等节点X需要与之交互的并用于周期地发送更新的所有对等节点(p1,p2,....,pn)和基于网络/地理距离极接近于对等节点X的另一组k个对等节点(j1,j2,j3,...,jk)。
我们定义权重函数,其中此函数是几个参数的函数:网络距离、因特网包探索时间、上游容量、当前负载及稳定性历史记录。W=f(网络距离、因特网包探索时间、上游容量、当前负载及稳定性历史记录)。对于表中的每个对等节点i,他们的权重Wi利用上面的函数计算,并且值被存储在表中。每当对等节点X必须发送更新给n个对等节点时,它从表中选择C*qrt(n)个对等节点,其中C是可调的常量。每个对等节点i具有被选择的固定的概率。此概率被计算如下:
错误!不能从编辑字段代码中产生对象。
利用这些概率值,对等节点的子集(第一级别对等节点)被选择,更新包被直接发送给他们。第一级别对等节点也被通知转发此更新包给一组其它的随机对等节点(第二级别对等节点)。对于树中的每个候选位置,根据概率值通过从列表中随机选择对等节点实现对等节点的选择,被选择的对等节点对于随后的选择是不可用的。这个过程被重复直到所有的对等节点(p1,p2,...,pn)已被选择且被包括在随机树中。因此,更新包具有连同该数据一起被包括的某些对等节点的一组IP地址。IP地址列表在数据包中被加密,以便不容易对它们进行解密。这保证当客户机接收或发送更新时,它们不知道它们在树中的位置。
因为主要对等节点和次要对等节点的列表针对每个单个的更新而改变,所以交互的对等节点X将不能将包括在更新包的IP报头中的IP地址和在虚拟空间中的对等节点的身份进行匹配。识别对等节点的IP地址的任务更复杂,因为更新包对于所有的对等节点是相同的。当第一级别对等节点转发更新包到第二级别对等节点时(它不必转发更新包到任何对等节点),更新包包括在数据包中加密的假的/无效的IP地址。这保证更新包在更新过程的每个阶段总是相同的。
此程序也阻碍交互对等节点DoS随机IP地址。这是因为目标IP地址可能属于作为负责转发攻击者的更新包的第一级别对等节点的计算机。攻击该计算机会防止恶意对等节点获取不公平的利益,因为它的更新包不会到达交互对等节点。
随机协议可能在权重函数中包括大量的参数,它们被调整以分配负载到对等节点,因此便于负载均衡。
因此,本实施例提供一种分散式平台,在该平台中,不需要集中式的游戏服务器不需要管理游戏。游戏状态信息和数据处理被委托给所有正在玩游戏的用户。数据以此方法被分配以便负载高效均衡。为了达到此目的,此架构利用对等网络重叠。
为诸如大规模多玩家在线游戏之类的实时应用程序提供对等重叠网络,需要解决许多问题,此大规模多玩家在线游戏包括分布在因特网上的和不同网络上的大量用户。玩家广播的状态更新消息必须到达可视范围内的所有其它玩家。对于MMOG很重要的游戏状态信息被分配给所有的玩家。底层的网络拓扑经常是未知的,用户通过诸如通过拨号、宽带、FTTH连接之类的各种方式被连接到网络。这些差异可能导致状态信息是不可靠的。如果玩家突然离开对等网络,那么重要的游戏状态信息将不会被丢失。
在对等网络分布式应用中,所有的应用数据由终端用户自身存储。对于被配置在因特网上的MMOG,它必须足够强大以阻碍正在企图滥用系统的恶意用户的攻击。MMOG的性能很大程度上取决于底层的网络。对等网络技术依赖于用于消息路由的对等节点。这会影响MMOG的效率,因为对等节点的行为是不可预测的。效率低的系统会导致等待时间增加,而对于诸如在线网络游戏之类的时间重要的应用,这是不能令人满意的。
面临这些挑战,本MMOG架构已被开发以为游戏开发者提供新的开发平台,开发出大规模多玩家在线游戏。本发明包括着手这些挑战的多个模块,并且提供成本有效的且有效率的方法以配置MMOG,其委托数据处理给单个参与者,因此能减少或避免维护昂贵的中央游戏服务器的成本。它也减少核心网络中的游戏通信量,因而减少网络带宽成本。通过消除故障的中心点,它也提高容错。此平台易于实施和配置,因为它提供一组API,此API能被游戏开发者使用以构建他们的游戏。利用此协议,游戏开发者不必担忧底层的网络协议,也不必担忧不同用户之间的消息路由。
因此,本实施例提供通用的平台,此平台能最优化任何MMOG,并且为网络协议提供技术以处理路由和消息发送,以便游戏开发者不必在游戏的通信方面花费精力,而能够集中于内容开发。
本领域技术人员将理解的是,只要不违背已被广泛描述的本发明的精神或范围,可以对本发明进行如在特定实施例中示出的多种变化和/或改进。因此,本实施例在各方面被认为是示例性的而不是限制性的。
Claims (32)
1、一种促进对等实时网络的协议,在所述对等实时网络中,网络状态信息和数据处理被委托给用户节点,所述协议包括:
各个节点确定被认为与该节点相关的网络节点子集,并限制与该子集的通信;
各个节点采取语义过滤以将与另一节点的通信限制为与该另一节点相关的数据类型;并且
各个节点为该子集的各个节点确定使与该节点的通信最优化的广播协议。
2、一种针对对等实时网络的发现索引协议,在所述对等实时网络中,网络状态信息和数据处理被委托给用户节点,所述发现索引协议为第一节点确定被认为与该第一节点相关的节点子集,所述发现索引协议包括:
将针对所述网络的虚拟空间的子区域的责任分配给选出的协调对等节点,各个协调对等节点负责将网络状态更新传送给在各自子区域内活动的节点,并负责从在各自子区域内活动的节点接收网络状态更新;
各个节点维护与多个协调对等节点的网络状态更新连接;并且
维护用于记录这些节点的网络状态更新连接的发现索引。
3、根据权利要求2所述的发现索引协议,其中在有n个参与节点的网络中,各个节点维护与仅仅一小部分的协调对等节点的网络状态更新连接。
4、根据权利要求3所述的发现索引协议,其中各个节点维护与基本上log(n)个协调对等节点的网络状态更新连接。
5、根据权利要求2至4中的任一项所述的发现索引协议,其中所述发现索引执行下列的至少一个:
记录所述网络的虚拟空间的有实体存在的子区域;
记录虚拟对象和实体在各个子区域内的插入、删除和修改;
将请求节点的子区域中最接近于该请求节点的能够与该请求节点建立直接连接的实体通知给该请求节点。
6、根据权利要求2至5中的任一项所述的发现索引协议,其中通过将所述虚拟空间递归细分成逻辑树来确定所述子区域。
7、根据权利要求6所述的发现索引协议,其中通过将所述虚拟空间递归细分成四叉树来确定所述子区域。
8、根据权利要求6或7所述的发现索引协议,其中虚拟对象与仅仅在所述逻辑树的非根级别处的控制点相关联。
9、根据权利要求8所述的发现索引协议,其中根级别控制点和第一级别控制点被防止具有与它们相关联的任何虚拟对象。
10、根据权利要求2至9中的任一项所述的发现索引协议,其中所述发现索引是分布式发现索引,由所述网络的多个节点共同维护,并跨越所述网络的多个节点进行分布。
11、根据权利要求10所述的发现索引协议,其中所述分布式发现索引由分布式哈希表(DHT)实现,所述分布式哈希表存储所述虚拟空间已被递归划分成的逻辑树的所有节点的记录。
12、根据权利要求11所述的发现索引协议,其中用于管理DHT的各个节点可操作地承担查询,以从所述DHT中定位和检索虚拟空间对象。
13、根据权利要求11或12所述的发现索引协议,其中字节数据被各个主机激进缓存,以便使所述DHT所需的大量查询操作最小化,并增加能够在单次操作中识别用于存储特定叶子节点的主机的可能性。
14、根据权利要求13所述的发现索引协议,其中节点数据以与起源叶子节点的虚拟距离成反比的概率被缓存。
15、一种针对对等实时网络的语义过滤协议,在所述对等实时网络中,网络状态信息和数据处理被委托给用户节点,所述语义过滤协议用于将过滤节点与多个相关节点中的各个相关节点的通信限制为与各个相关节点相关的数据类型,所述语义过滤协议包括:
确定各个另一节点的虚拟实体是否在所述网络的虚拟空间中对所述过滤节点隐藏,并且防止与具有隐藏的虚拟实体的相关节点进行通信;
向各个未隐藏的相关节点分配用于表示该未隐藏的相关节点与所述过滤节点的相关性的相关级别;并且
按照与所述相关级别对应的数量,对所述过滤节点与各个未隐藏的相关节点的通信加以约束。
16、根据权利要求15所述的语义过滤协议,其中相关节点是否被隐藏通过参考在所述过滤节点与该相关节点之间的虚拟空间内是否存在虚拟视线来确定。
17、根据权利要求15或16所述的语义过滤协议,其中对通信加以约束包括下列的至少一个:限制所述过滤节点用来与所述未隐藏的相关节点进行通信的包的包大小;和限制用以在所述过滤节点与所述未隐藏的相关节点之间传送更新的更新频率。
18、根据权利要求15至17中的任一项所述的语义过滤协议,其中所述相关级别与两个相应的节点的虚拟实体之间的虚拟距离相对应。
19、根据权利要求15至18中的任一项所述的语义过滤协议,其中通过根据权利要求2至14中的任一项所述的发现索引协议确定所述过滤节点的相关节点。
20、一种针对对等实时网络的广播控制协议,在所述对等实时网络中,网络状态信息和数据处理被委托给用户节点,所述广播控制协议用于使第一节点与多个相关节点之间的包传递最优化,所述广播控制协议包括:
向各个相关节点分配从k个表示该相关节点与所述第一节点之间的相关性的相关级别中选出的相关级别i;
将各个相关级别i与节点数ni、更新消息大小mi及更新频率ai相关联;通过参考 从所述第一节点的可用上游带宽U中确定在所述第一节点的广播树中的级别ci的个数,其中0<ci<sqrt(ni)。
21、根据权利要求20所述的广播控制协议,其中ci的最高满意值被选择。
22、根据权利要求20或21所述的广播控制协议,其中所述广播树的较高级别被给予高于较低级别的优先权,满足c1>c2>c3>...>cn。
23、根据权利要求20至22中的任一项所述的广播控制协议,其中通过基于下列参数中的至少一个向所述广播树的级别分配各个相关节点来形成所述广播树:该相关节点的上游带宽、稳定性历史记录、网络距离及因特网包探索时间统计。
24、一种针对对等实时网络的安全协议,在所述对等实时网络中,网络状态信息和数据处理被委托给用户节点,所述安全协议用于防御恶意行为,所述安全协议包括:
第一节点通过选择多个相关节点的第一子集并转发加密消息给第一子集的x个节点来与所述多个相关节点进行通信,所述加密消息包括转发所述消息的指令;
所述第一子集的各个节点都转发所述消息,以便所述消息被转发给相关节点的x个子集。
25、根据权利要求24所述的安全协议,其中各个节点拥有所有相关节点的列表,并且各个接收节点仅向并未与该接收节点同时收到所述消息的节点转发所述消息。
26、根据权利要求24或25所述的安全协议,其中当存在n个相关节点时,x被确定为C.sqrt(n),其中C是可调的常量。
27、根据权利要求24至26中的任一项所述的安全协议,其中为各个新的消息随机选择相关节点的子集,使得由遍及所述相关节点的分层广播形成的分布树从一消息到下一消息随机变化。
28、根据权利要求24至27中的任一项所述的安全协议,其中通信节点为了负载均衡而分配权重给各个相关节点,所述权重基于下列的至少一个:网络距离、因特网包探索时间、上游容量、当前负载及稳定性历史记录来确定。
29、一种由多个节点组成的系统,根据权利要求1至28中的任一项所述的协议运行。
30、一种用户软件应用程序,用于实施根据权利要求1至28中的任一项所述的协议。
31、一种游戏开发平台软件应用程序,用于使游戏开发者能够设计符合根据权利要求1至28中的任一项所述的协议的游戏或在线环境。
32、一种装置,被配置为根据权利要求1至28中的任一项所述的协议运行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2006905510A AU2006905510A0 (en) | 2006-10-05 | Decentralised Multi-User Online Environment | |
AU2006905510 | 2006-10-05 | ||
PCT/AU2007/001512 WO2008040092A1 (en) | 2006-10-05 | 2007-10-05 | Decentralised multi-user online environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101523372A true CN101523372A (zh) | 2009-09-02 |
CN101523372B CN101523372B (zh) | 2012-01-25 |
Family
ID=39268066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800372500A Expired - Fee Related CN101523372B (zh) | 2006-10-05 | 2007-10-05 | 分散式多用户在线环境 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8751668B2 (zh) |
EP (1) | EP2080110A4 (zh) |
KR (1) | KR20090075847A (zh) |
CN (1) | CN101523372B (zh) |
AU (1) | AU2007304834C1 (zh) |
WO (1) | WO2008040092A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148877A (zh) * | 2011-05-10 | 2011-08-10 | 河南理工大学 | 一种基于层次化可导航网络的p2p协议 |
WO2012055243A1 (zh) * | 2010-10-27 | 2012-05-03 | 中兴通讯股份有限公司 | 分布式哈希表网络的负载均衡实现方法及装置 |
CN102930047A (zh) * | 2012-11-15 | 2013-02-13 | 中国科学院深圳先进技术研究院 | 虚拟地球用户化身节点检索方法及系统 |
CN103634401A (zh) * | 2013-12-03 | 2014-03-12 | 北京京东尚科信息技术有限公司 | 一种存储数据副本的方法和终端装置以及服务器装置 |
WO2014101675A1 (zh) * | 2012-12-26 | 2014-07-03 | 中兴通讯股份有限公司 | 带宽的分配方法及系统 |
CN104793926A (zh) * | 2014-04-17 | 2015-07-22 | 厦门极致互动网络技术有限公司 | 一种分布式系统中资源配置方法及系统 |
CN105516059A (zh) * | 2014-09-25 | 2016-04-20 | 阿里巴巴集团控股有限公司 | 一种资源访问控制方法和装置 |
CN115514996A (zh) * | 2021-06-22 | 2022-12-23 | 武汉斗鱼鱼乐网络科技有限公司 | 一种直播转码机器的状态确定方法及装置 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8539364B2 (en) * | 2008-03-12 | 2013-09-17 | International Business Machines Corporation | Attaching external virtual universes to an existing virtual universe |
US8775817B2 (en) * | 2008-05-12 | 2014-07-08 | Microsoft Corporation | Application-configurable distributed hash table framework |
US20110299427A1 (en) * | 2009-04-14 | 2011-12-08 | Thomas P Chu | Method and apparatus for distributed media conferencing |
US8276084B2 (en) * | 2009-06-01 | 2012-09-25 | International Business Machines Corporation | Peer-to-peer based content delivery in a virtual universe |
TW201044185A (en) * | 2009-06-09 | 2010-12-16 | Zillians Inc | Virtual world simulation systems and methods utilizing parallel coprocessors, and computer program products thereof |
WO2011006203A1 (en) * | 2009-07-14 | 2011-01-20 | National Ict Australia Limited | Interest management for a virtual environment of a peer-to-peer network |
KR101030138B1 (ko) * | 2009-10-05 | 2011-04-18 | 이화여자대학교 산학협력단 | 멀티-레벨 해싱을 이용한 공간 분할 시스템 및 방법 |
EP2378435B1 (en) | 2010-04-14 | 2019-08-28 | Spotify AB | Method of setting up a redistribution scheme of a digital storage system |
JP5822452B2 (ja) * | 2010-10-22 | 2015-11-24 | 株式会社インテック | ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム |
US20120142429A1 (en) | 2010-12-03 | 2012-06-07 | Muller Marcus S | Collaborative electronic game play employing player classification and aggregation |
US9148366B2 (en) * | 2011-04-11 | 2015-09-29 | Qualcomm Innovation Center, Inc. | Interactive header compression in peer-to-peer communications |
US9621635B1 (en) * | 2012-07-31 | 2017-04-11 | Niantic, Inc. | Using side channels in remote procedure calls to return information in an interactive environment |
US9813411B2 (en) | 2013-04-05 | 2017-11-07 | Antique Books, Inc. | Method and system of providing a picture password proof of knowledge as a web service |
US9680650B2 (en) * | 2013-08-23 | 2017-06-13 | Qualcomm Incorporated | Secure content delivery using hashing of pre-coded packets |
US9323435B2 (en) | 2014-04-22 | 2016-04-26 | Robert H. Thibadeau, SR. | Method and system of providing a picture password for relatively smaller displays |
EP3134841A2 (en) | 2014-04-22 | 2017-03-01 | Antique Books Inc. | Method and system of providing a picture password for relatively smaller displays |
WO2015187729A1 (en) | 2014-06-02 | 2015-12-10 | Antique Books, Inc. | Device and server for password pre-verification at client using truncated hash |
EP3149985A1 (en) | 2014-06-02 | 2017-04-05 | Antique Books Inc. | Advanced proof of knowledge authentication |
EP3180725A1 (en) | 2014-08-11 | 2017-06-21 | Antique Books Inc. | Methods and systems for securing proofs of knowledge for privacy |
WO2016191376A1 (en) | 2015-05-22 | 2016-12-01 | Antique Books, Inc. | Initial provisioning through shared proofs of knowledge and crowdsourced identification |
US20170003738A1 (en) * | 2015-06-15 | 2017-01-05 | Survios, Inc. | Systems and methods for immersive physical interaction with a virtual environment |
US10188952B1 (en) * | 2015-12-18 | 2019-01-29 | Controlled Protocols, Inc. | Method for dynamically mapping servers |
US10491666B2 (en) | 2017-04-03 | 2019-11-26 | Sony Interactive Entertainment America Llc | Systems and methods for using a distributed game engine |
GB201709845D0 (en) * | 2017-06-20 | 2017-08-02 | Nchain Holdings Ltd | Computer-implemented system and method |
EP3543959A1 (en) * | 2018-03-22 | 2019-09-25 | Novaquark | Dynamic display of objects within a virtual world by octree-based partitioning and publish/subscribe communication |
KR102006283B1 (ko) * | 2019-02-26 | 2019-10-01 | 가천대학교 산학협력단 | 패스트맵을 이용한 데이터셋의 m-트리 적재방법 |
CN110134375B (zh) * | 2019-05-14 | 2023-11-21 | 网易(杭州)网络有限公司 | 游戏角色行为的控制方法、装置及可读存储介质 |
EP3846058A1 (en) | 2019-12-30 | 2021-07-07 | TMRW Foundation IP SARL | Multi-dimensional 3d engine computing and virtualization-based dynamic load balancing of virtual or real worlds |
AU2021236140B2 (en) * | 2020-03-13 | 2024-02-08 | Google Llc | Peer-to-peer multiplayer cloud gaming architecture |
US11503432B2 (en) | 2020-06-15 | 2022-11-15 | Snap Inc. | Scalable real-time location sharing framework |
US11314776B2 (en) | 2020-06-15 | 2022-04-26 | Snap Inc. | Location sharing using friend list versions |
US11483267B2 (en) | 2020-06-15 | 2022-10-25 | Snap Inc. | Location sharing using different rate-limited links |
US11290851B2 (en) | 2020-06-15 | 2022-03-29 | Snap Inc. | Location sharing using offline and online objects |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6767287B1 (en) | 2000-03-16 | 2004-07-27 | Sony Computer Entertainment America Inc. | Computer system and method for implementing a virtual reality environment for a multi-player game |
US6826523B1 (en) * | 2000-11-01 | 2004-11-30 | Sony Computer Entertainment America Inc. | Application development interface for multi-user applications executable over communication networks |
US20030177187A1 (en) | 2000-11-27 | 2003-09-18 | Butterfly.Net. Inc. | Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications |
US20030008712A1 (en) | 2001-06-04 | 2003-01-09 | Playnet, Inc. | System and method for distributing a multi-client game/application over a communications network |
US7263560B2 (en) | 2002-08-30 | 2007-08-28 | Sun Microsystems, Inc. | Decentralized peer-to-peer advertisement |
US7092946B2 (en) | 2002-12-02 | 2006-08-15 | Lightsurf Technologies, Inc. | System and methodology for providing a mobile device with a network-based intelligent resource fork |
US7464272B2 (en) | 2003-09-25 | 2008-12-09 | Microsoft Corporation | Server control of peer to peer communications |
FR2861863A1 (fr) | 2003-10-30 | 2005-05-06 | Nuss Edith Sabine Benjamine | Procede et dispositif de gestion et d'allocation peer to peer de bande passante au sein d'un reseau mobile vocal ad-hoc de transfert de donnees et de telecommunication |
US7313565B2 (en) | 2004-02-19 | 2007-12-25 | Microsoft Corporation | Data overlay, self-organized metadata overlay, and associated methods |
US8688803B2 (en) * | 2004-03-26 | 2014-04-01 | Microsoft Corporation | Method for efficient content distribution using a peer-to-peer networking infrastructure |
US7730207B2 (en) * | 2004-03-31 | 2010-06-01 | Microsoft Corporation | Routing in peer-to-peer networks |
GB2422214B (en) | 2004-08-23 | 2009-03-18 | Sound Control Media Prot Ltd | Data network traffic filter |
JP4670042B2 (ja) | 2005-01-13 | 2011-04-13 | ブラザー工業株式会社 | ノード装置、ノード装置情報更新方法、及びノード装置情報更新プログラム |
-
2007
- 2007-10-05 KR KR1020097008835A patent/KR20090075847A/ko not_active Application Discontinuation
- 2007-10-05 CN CN2007800372500A patent/CN101523372B/zh not_active Expired - Fee Related
- 2007-10-05 WO PCT/AU2007/001512 patent/WO2008040092A1/en active Application Filing
- 2007-10-05 US US12/444,094 patent/US8751668B2/en not_active Expired - Fee Related
- 2007-10-05 AU AU2007304834A patent/AU2007304834C1/en not_active Ceased
- 2007-10-05 EP EP07815318.6A patent/EP2080110A4/en not_active Withdrawn
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012055243A1 (zh) * | 2010-10-27 | 2012-05-03 | 中兴通讯股份有限公司 | 分布式哈希表网络的负载均衡实现方法及装置 |
CN102457428A (zh) * | 2010-10-27 | 2012-05-16 | 中兴通讯股份有限公司 | 分布式哈希表网络的负载均衡实现方法及装置 |
CN102457428B (zh) * | 2010-10-27 | 2015-10-21 | 中兴通讯股份有限公司 | 分布式哈希表网络的负载均衡实现方法及装置 |
CN102148877A (zh) * | 2011-05-10 | 2011-08-10 | 河南理工大学 | 一种基于层次化可导航网络的p2p协议 |
CN102930047A (zh) * | 2012-11-15 | 2013-02-13 | 中国科学院深圳先进技术研究院 | 虚拟地球用户化身节点检索方法及系统 |
WO2014101675A1 (zh) * | 2012-12-26 | 2014-07-03 | 中兴通讯股份有限公司 | 带宽的分配方法及系统 |
CN103634401B (zh) * | 2013-12-03 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种存储数据副本的方法和终端装置以及服务器装置 |
CN103634401A (zh) * | 2013-12-03 | 2014-03-12 | 北京京东尚科信息技术有限公司 | 一种存储数据副本的方法和终端装置以及服务器装置 |
CN104793926A (zh) * | 2014-04-17 | 2015-07-22 | 厦门极致互动网络技术有限公司 | 一种分布式系统中资源配置方法及系统 |
CN104793926B (zh) * | 2014-04-17 | 2018-06-01 | 厦门极致互动网络技术股份有限公司 | 一种分布式系统中资源配置方法及系统 |
CN105516059A (zh) * | 2014-09-25 | 2016-04-20 | 阿里巴巴集团控股有限公司 | 一种资源访问控制方法和装置 |
CN105516059B (zh) * | 2014-09-25 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 一种资源访问控制方法和装置 |
CN115514996A (zh) * | 2021-06-22 | 2022-12-23 | 武汉斗鱼鱼乐网络科技有限公司 | 一种直播转码机器的状态确定方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20100146128A1 (en) | 2010-06-10 |
WO2008040092A1 (en) | 2008-04-10 |
CN101523372B (zh) | 2012-01-25 |
AU2007304834B2 (en) | 2013-03-21 |
AU2007304834A1 (en) | 2008-04-10 |
EP2080110A4 (en) | 2014-01-15 |
AU2007304834C1 (en) | 2014-01-23 |
KR20090075847A (ko) | 2009-07-09 |
EP2080110A1 (en) | 2009-07-22 |
US8751668B2 (en) | 2014-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101523372B (zh) | 分散式多用户在线环境 | |
KR102433285B1 (ko) | 이벤트들의 삭제를 가능하게 하는 분산 데이터베이스를 위한 방법 및 장치 | |
AU2021200938B2 (en) | Methods and apparatus for a distributed database within a network | |
Jesus et al. | A survey of how to use blockchain to secure internet of things and the stalker attack | |
US10958725B2 (en) | Systems and methods for distributing partial data to subnetworks | |
CN107533472A (zh) | 一种在系统层间划分数据运作功能的方法 | |
Dotan et al. | SOK: cryptocurrency networking context, state-of-the-art, challenges | |
Thanuja et al. | Black hole detection using evolutionary algorithm for IDS/IPS in MANETs | |
Vairagade et al. | Enabling machine learning‐based side‐chaining for improving QoS in blockchain‐powered IoT networks | |
Rajendra et al. | Storage efficient blockchain models for constrained applications | |
Singh | Blockchain and IOT integrated Smart City Architecture | |
KR20200007421A (ko) | 비트코인 네트워크 스캔 시스템 및 방법 | |
CN110601878B (zh) | 一种构建隐身网络的方法 | |
Bibi et al. | Secured Optimized Resource Allocation in Mobile Edge Computing | |
Sasabe et al. | Block diffusion delay attack and its countermeasures in a Bitcoin network | |
Alshihri et al. | A Decentralized Lightweight Blockchain Nodes Architecture Based on a Secure OpenFlow Protocol Controller Channel | |
Jiang et al. | Dynamic network configuration: An effective defensive protocol for public blockchain | |
Sharma et al. | A Study On Security Of Iot: Problems Solving Using Ml And Block Chain | |
CN118469733A (zh) | 一种基于区块链技术的安全会计账簿系统 | |
RU2776826C2 (ru) | Способы и устройство для распределенной базы данных, которая позволяет удалять события | |
Huang et al. | A secure and efficient WSN by employing symmetric key matrix and rectangular frame scheme | |
Goranin et al. | Genetic algorithm based Internet worm propagation strategy modeling under pressure of countermeasures. | |
de Sousa Regateiro | How secure are blockchains? | |
Liu et al. | Moving target with load balancing in P2P cloud |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120125 Termination date: 20141005 |
|
EXPY | Termination of patent right or utility model |