网络游戏服务器通信架构及关键技术研究

网络游戏服务器通信架构及关键技术研究

论文摘要

随着网络技术的迅速发展和硬件性能的不断提高,网络游戏已经成为电子游戏产业中增长最块的游戏类型,构成了IT行业中新兴的利润增长点。巨大的市场需求吸引了国家和社会的极大关注,越来越多的专业游戏开发商介入其中。由于历史的原因,我国的游戏产业起步较晚,尚处于快速发展阶段。目前,随着网络游戏玩家的日益增多,网络游戏服务器端承受着严峻的性能考验和负载压力。为了提供良好的服务品质,网络游戏服务器端的设计显得尤其重要。进行游戏服务器端网络通信架构以及关键技术的研究,对于游戏产业的发展和现行游戏的开发都有积极的意义。网络游戏服务器同时为大量客户服务,要求具有很高的稳定性,同时能够及时响应客户请求。性能的提高依赖于服务器数据处理的每一个环节,而通信部分位于体系底层,有着基础和支柱的作用。系统资源的分配方式、Socket的管理、I/O模式的选择、并发服务以及负载均衡策略等都直接影响到通信的效率。本文将首先分析和讨论服务器通信相关技术。接着在阐述服务器系统层次框架的基础之上,着重分析服务器中通信系统的功能需求和体系结构设计。同时对系统赖于运行的驱动机制——事件订阅和消息驱动进行了深入地讨论。一个良好的设计应该尽量减少模块间的耦合度,结合系统特性运用设计模式力求封装变化,以使整体架构具有较好的可扩展性和可维护性。文中采用了面向对象方法对服务器网络体系中的关键模块进行了详细的分析和设计。讨论网络I/O的管理,阐述如何处理大量客户的连接以及数据传输等;设计连接会话,分析会话状态维护以及空闲会话、非法会话的检测;研究通信协议的分层机制,设计数据在各层的格式定义,实现协议数据与具体业务的转换等;分析系统资源预分配机制中线程池的具体实现,阐述分配者/工作者策略的设计思路与技术优势。文中所研究的通信体系架构以及关键技术的设计实践分析,对了解和解决服务器设计中所遇到的基本问题有很好的工程参考价值。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 课题背景和意义
  • 1.1.1 网络游戏产业的蓬勃发展
  • 1.1.2 课题研究的意义
  • 1.2 研究现状
  • 1.2.1 网络游戏基本概念
  • 1.2.2 游戏服务器发展现状
  • 1.2.3 游戏服务器组织架构
  • 1.2.4 游戏服务器设计要求
  • 1.2.4.1 网络游戏服务器的基本需求
  • 1.2.4.2 设计挑战
  • 1.3 研究的主要内容
  • 1.4 本文的组织结构
  • 第二章 服务器通信相关技术分析
  • 2.1 资源预分配机制
  • 2.1.1 资源分配机制的比较
  • 2.1.2 对象池原理
  • 2.2 通信体系模式
  • 2.2.1 网络协议的选择
  • 2.2.2 C/S 与P2P 的选择
  • 2.3 Windows Socket 基础
  • 2.4 异步I/O 模式
  • 2.4.1 I/O 模式的比较
  • 2.4.2 IOCP 运行机制
  • 2.4.3 IOCP 与EPOLL 的异同
  • 2.5 并发服务策略
  • 2.6 负载均衡策略
  • 2.7 本章小结
  • 第三章 通信架构分析与设计
  • 3.1 服务器系统层次框架
  • 3.2 通信系统功能需求
  • 3.3 通信体系结构设计
  • 3.4 系统运行的驱动机制
  • 3.4.1 事件委托机制
  • 3.4.2 消息驱动机制
  • 3.4.2.1 消息的格式
  • 3.4.2.2 消息的分发
  • 3.4.2.3 消息的处理
  • 3.5 本章小结
  • 第四章 系统详细设计与实现
  • 4.1 全局对象实例设计
  • 4.1.1 单件模式的思想
  • 4.1.2 单件模式的实现
  • 4.2 网络I/O 管理
  • 4.2.1 I/O 管理的模块划分
  • 4.2.2 完成端口管理
  • 4.2.3 网络连接请求响应
  • 4.2.3.1 系统连接过载时的处理
  • 4.2.3.2 网络事件的获取
  • 4.2.3.3 连接请求的合法性检查
  • 4.2.3.4 合法连接的资源分配
  • 4.2.4 数据投递线程设计
  • 4.3 连接会话设计
  • 4.3.1 会话相关类结构
  • 4.3.2 会话状态管理
  • 4.3.3 会话信息统计
  • 4.3.4 空闲会话与失效会话的检测
  • 4.4 通信协议设计
  • 4.4.1 协议分层机制
  • 4.4.2 数据块分拆与合并
  • 4.4.3 数据块的有序化
  • 4.4.4 数据的加解密
  • 4.4.5 协议报文解释
  • 4.4.6 非法数据的检测
  • 4.5 线程池的实现
  • 4.5.1 线程池结构分析
  • 4.5.2 任务对象的设计
  • 4.5.3 线程同步控制
  • 4.5.4 任务的分配策略
  • 4.5.5 工作者线程的处理流程
  • 4.5.6 线程池尺寸的自适用调整
  • 4.5.7 性能分析
  • 4.6 本章小结
  • 第五章 系统测试
  • 5.1 测试环境
  • 5.2 测试用例描述
  • 5.3 测试结果分析
  • 5.4 本章小结
  • 第六章 结束语
  • 6.1 结论
  • 6.2 进一步研究工作
  • 致谢
  • 参考文献
  • 攻硕期间的研究成果
  • 相关论文文献

    标签:;  ;  ;  ;  ;  ;  

    网络游戏服务器通信架构及关键技术研究
    下载Doc文档

    猜你喜欢