论文摘要
当前商业化的MMOG(巨量多玩家网络游戏,Massively Multiplayer Online Games)的设计大多数采用C/S模式,这种模式存在一个较大的缺点就是伸缩性较差,容易造成服务器端的通信瓶颈。基于DHT的P2P技术在大规模网络应用的伸缩性方面提供了很好的支持。它具有良好的可扩展性、可靠性、节点ID分配的均匀性和自组织能力。但是,除安全性外,P2P模式仍然存在很多问题使其不能很好的支持MMOG,其中包括:单点失效的问题,P2P网络的拓扑失配问题,节点异构性等问题。这样给协调者选举及容错带来很大的挑战。针对上述问题本文主要完成了以下几个方面的工作:1.提出适合于P2P MMOG的节点网络距离预测算法结合游戏区域划分的方法,本文将游戏世界分成一个个测量域,首先某一协调者负责初始化计算其所在测量域中的所有玩家节点的网络坐标,然后对已有网络坐标的节点进行聚簇,这样新加入的节点可以探测到这些簇中心节点的RTT值,就可以计算出自己的网络坐标。知道了其他节点的网络坐标,就可以直接预测到这些节点的网络距离,这样可以降低RTT的探测流量。该算法可以缓解P2P网络的拓扑失配问题,也为协调者选举提供了有利的帮助。2.提出适合于P2P MMOG的协调者选举算法本文为玩家节点引入效用值的概念。分析了影响效用值大小的几种因素,包括物理网络拓扑信息、节点性能、可用性和可信度等,对节点的可用性进行了量化分析,利用节点网络距离来反应节点间的物理网络拓扑信息,并给出了节点可信性的获取方法,给出了节点效用值的计算方法。根据节点效用值的大小进行协调者选举从而更好的利用玩家节点的计算和可用带宽资源,来提升系统性能增加游戏的可玩性。本文针对MMOG中导致协调者重新选举的几种情况分别给出了相应的选举算法。3.提出适合于P2P MMOG的协调者容错机制主要从游戏对象和游戏事件、节点分级管理、协调者副本恢复三个方面阐述。本文将表示游戏状态的数据进行划分,以便协调者失效时对这些数据有针对性的恢复。为有效的进行协调者失效检测,本文提出了对玩家节点进行分级管理的策略。采用完全副本冗余方式,将协调者的游戏副本保存在效用值较高的玩家节点上,以减少协调者失效后其副本继续失效的概率。协调者对接收到的游戏事件做事件日志来处理协调者暂时失效的情形。实验表明节点的网络距离预测算法在不同路标个数下均具有较好的精确性。结合网络距离预测算法,协调者选举算法能够在一定程度上降低协调者的平均响应时间,有效的分散了系统的负载并提高了游戏的响应性,容错算法能有效降低副本恢复延迟。