MMOG环境下服务端通用运行支撑平台的研究与实现硕士学位论文Word格式.docx
- 文档编号:5722025
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:85
- 大小:251.59KB
MMOG环境下服务端通用运行支撑平台的研究与实现硕士学位论文Word格式.docx
《MMOG环境下服务端通用运行支撑平台的研究与实现硕士学位论文Word格式.docx》由会员分享,可在线阅读,更多相关《MMOG环境下服务端通用运行支撑平台的研究与实现硕士学位论文Word格式.docx(85页珍藏版)》请在冰点文库上搜索。
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
日期:
导师签名:
日期:
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
3、学生综合运用所学知识和专业技能分析和解决问题的能力
4、研究方法的科学性;
技术线路的可行性;
设计方案的合理性
5、完成毕业论文(设计)期间的出勤情况
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
2、是否完成指定的论文(设计)任务(包括装订及附件)?
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
2、论文的观念是否有新意?
设计是否有创意?
3、论文(设计说明书)所体现的整体水平
建议成绩:
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
二、论文(设计)水平
评阅教师:
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
2、对答辩问题的反应、理解、表达情况
3、学生答辩过程中的精神状态
评定成绩:
教研室主任(或答辩小组组长):
(签名)
教学系意见:
系主任:
声明
本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得云南大学或其他教育机构的学位或证明而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
研究生签名:
日期:
论文使用和授权说明
本人完全了解云南大学有关保留、使用学位论文的规定,即:
学校有权保留并向国家有关部门或机构送交学位论文和论文电子版;
允许论文被查阅或借阅;
学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文;
授权学校将学位论文的全部或部分内容编入有关数据库进行检索。
(保密的论文在解密后应遵循此规定)
研究生签名:
导师签名:
日期:
摘要
多人在线游戏,作为一个新兴产业在全球迅速发展着,但是,在面对如此巨大的市场的同时,我国网络游戏市场却同样面临着不少问题。
其中一个重要方面就是游戏服务器的性能及稳定性不高而导致的服务器质量问题。
针对如此现状,本文着重研究与设计多人在线游戏环境下服务端通用运行支撑平台,即通过对多人在线游戏服务端开发需要的各种服务器资源及现阶段存在的问题进行分类总结提取并设计封装成服务端通用运行支撑平台,使得网络游戏服务端开发人员利用该平台更容易开发出高效稳定的多人在线游戏。
论文首先以一个国内知名的多人在线休息游戏平台为基础,介绍了其服务端网络体系结构和个服务器的基本功能及实际运行中存在的各种问题。
其次,在此基础上分析了造成运行中问题的原因并给出了相应的解决办法,总结提出了服务端通用运行支撑平台需要使用基本技术及相关服务。
第三,给出了平台设计的总体框架及各个子系统的详细设计过程。
最后在基于平台的基础上重构了该多人在线休息游戏平台,并进行了相应的性能及稳定性分析。
关键字:
MMOG;
内存池;
网络编程模型;
完成端口
ABSTRACT
Asanemergingindustry,massivelymultiplayeronlinegameisdevelopingrapidlyinthewholeworld.But,whenfacingsogiantchance,Ourdomesticnetgamemarketstillconfrontwithmanyproblems.Themostimportantproblemislowqualityofgameserviceduetothelowerperformanceandpoorstabilityofgameserer.Facetothisproblem,thearticleisfocusondevelopinggeneralruntimeplatformofMMOGserverentertainment.ThedeveloperscaneasytodevelopstabilityandhighperformanceMMOGservers.
Thearticlefirstshowawell-knowngameplatforminChina,introduceditsnetworkarchitectureandfunctionsofeachserverofthegameplatform,thennarratetheproblemswhichwereemergeinpractice.Basedonthisgameplatform,weanalysethereasonoftheseproblemsandgivesolutionsforeachproblemthencalculatebasicservicsandtechnoloieswhichiwillbeuesedinourruntimeplatform.Thirdly,wegivethearchitectureoftheruntimeplatformandthedesignofeachSubsystem.Finally,ReconstructionthegameplatformwithourruntimeplatformandgiveperformanceandstabilityanalyseinnewEnvironment.
Keywords:
MMOG;
MemoryPool;
NetProgramingmodel;
CompletionPort
目录
摘要3
ABSTRACT4
第一章引言5
1.1研究目的及问题概述5
1.2研究范围及创新6
1.3论文结构7
第二章MMOG服务器架构分析7
2.1休息游戏平台背景介绍8
2.2MMOG服务器架构实例分析8
2.3平台运行过程中的问题10
第三章问题分析及解决思路10
3.1稳定性问题分析11
3.1.2游戏状态管理问题14
3.1.3服务失效管理问题17
3.1.4客户连接管理问题17
3.2效率问题分析19
3.2.1网络编程模型的选择19
第四章服务端通用运行支持平台设计25
4.1总体设计25
4.2网络通信服务26
4.2.1IOCP开发难点及要点及相关处理算法26
4.2.1网络通信服模块务体系结构38
4.1.3函数接口及关键数据结构设计39
4.1.4通信协议设计40
4.2内存管理服务设计42
4.2.1内存池的数据结构42
4.2.2内存池算法分析43
4.3连接管理服务设计46
4.3.1连接管理服务带来的问题47
4.3.2“服务名称”与“玩家ID”47
4.3.3通信过程协议设计47
4.3.4数据结构级接口设计54
4.4游戏状态备份及恢复服务设计55
4.4.1游戏状态备份55
4.4.1、游戏状态恢复服务56
4.4.3、备份及回复接口说明57
4.5、全局监控管理服务设计58
第五章平台的实际应用及性能分析59
5.1、重构MMOG服务端网络体系结构59
5.2、性能与稳定性分析60
5.2.1、从技术层面分析60
5.2.2、服务配置层面分析60
5.2.3、从网络体系结构层面分析61
第六章总结和展望62
致谢64
第一章引言
1.1研究目的及问题概述
在中国网络游戏产业是一个新兴的朝阳产业,经历了上个世纪末的初期形成期阶段,及近几年的快速发展,现在中国的网络游戏产业处在成长期,并快速走向成熟期的阶段。
在中国整个网络经济的发展过程中从无到有,发展到目前成为中国网络经济的重要组成部分。
2007年中国网络游戏市场规模为128亿元,同比增长66.7%。
2007年中国网络游戏用户达到4800万,环比增长17.1%。
网络游戏的实时在线人数同时也在节节攀升,以魔兽世界为例,2005年魔兽世界刚刚进入中国大陆市场时最高实时在线人数为约为50万人,而到2008年,最高实时在线人数已经突破100万人,增长超过100%。
伴随着网络游戏用户数的不断增加,玩家对服务质量的投诉也越发的平凡,其中针对游戏服务器问题的投诉占有不小的比重。
据统计,2008年上半年,关于网游服务器问题的投诉占了25.30%,服务器卡、经常掉线,不按时开放服务器等,是产生此类投诉的主要原因。
是什么原因导致服务器问题一直存在呢?
1、服务器性能低下,无法承担过高的并发访问量,并且这种性能低下的问题无法通过提升硬件性能或是提高网络带宽的方式解决。
2、服务器稳定性差无法保证服务器稳定长期的高效运行。
3、虽然有很多成熟的通信中间件产品可以使用但是对整个游戏项目来说缺乏总体框架上的指导作用,无法从整体上保证整个平台的高效率和稳定性。
1.2研究范围及创新
MMOG是多人在线游戏的缩写,多人在线游戏的种类繁多,不同游戏在服务器端的实现方式也各不相同。
本文将通过分析某一休闲类游戏平台为例,找到现有MMOG在服务器端开发上可能存在的问题,并给出响应解决方案。
本文讨论的重点之一是如何提高MMOG服务器执行效率,效率的提高可以通过改善硬件配置或改进算法来达到,本文将只关注如何通过算法的改进来提高系统性能。
提高系统的容错性是本文讨论的另一重点,系统的容错性通常包括硬件及软件两个层面,随着计算机硬件技术的发展,计算机硬件造成的系统故障已经非常少,同时对硬件的故障处理已经有非常多的完善的解决方案。
从近年来的各种统计数据我们可以看出,导致系统失效的绝大多数的系统故障均是由软件导致,因此本文将不考虑硬件容错,而只讨论软件层面的容错处理。
我们知道MMOG不可能由一台或少数几台服务器构成,MMOG是一个分布式计算环境,其中包含有大量的并发运行的进程,这些进程可能物理上在同一台机器上,但绝大多数情况存在于物理上相距甚远的由网络互相连接的计算机构成。
因此,对于这个系统的稳定、高效性来说绝不是一个设计良好的中间件所能完成的任务,而必须从系统整体出发进行考虑。
因此,本文将以MMOG服务器端开发为核心,从整体系统的高度出发,设计一种以先进的通信技术为基础、其它基础服务为辅助,并能够对MMOG服务器端网络体系结构设计有一定指导作用的服务端运行支撑平台。
1.3论文结构
第一章,引言。
介绍课题研究背景及研究内容,阐述了平台的设计目标。
第二章,MMOG服务器架构分析。
本章将以国内某一知名休闲游戏平台为例,分析其服务器架构,及其在实际运行中存在的问题。
第三章,问题分析及解决思路。
本章在第二章的基础之上深入分析造成各种问题的原因并给出相应解决方案。
第四章,平台设计。
依次给出了平台设计的实现步骤,包括实现目标、体系结构,最后是模块划分实现。
第五章,平台的实际应用及性能分析。
本章在本文设计的运行支撑平台的基础之上,重构了第二章说讨论的MMOG服务端,并给出响应性能及稳定性分析。
第六章,总结和展望。
对所做工作进行了总结,并对未来的工作进行展望。
第二章MMOG服务器架构分析
在本章中,我们将以某一国内知名休闲游戏平台为例,分析探讨MMOG服务器的基本架构。
描述这个游戏平台在实际运行中的主要问题。
2.1休息游戏平台背景介绍
该游戏平台在国内运营时间已经超过两年,提供的游戏类型主要是棋牌一类的休闲型小游戏,其服务器主要分布在上海、江苏、成都等地。
虽然运行时间不短,但玩家在线人数一直维持在几百人的小规模上,迟迟没有突破,一个重要的原因就是服务器的效率及稳定性。
2.2MMOG服务器架构实例分析
该休闲游戏平台服务端网络体系结构如图2.1所示
图2-1休闲游戏平台服务端网络体系结构
1、登录服务器具有如下功能:
1)登录服务器主要用于检查用户登录信息是否合法,信息验证成功之后将询问全局信息服务器,客户端可以登录那一台大厅服务器,然后把登录信息返回给客户端。
2)登录成功后,发送玩家基本信息到全局用户信息服务器。
2、大厅服务器具有如下功能:
1)用于管理房间服务器基本信息,当用户请求进入房间时将从大厅服务器获得房间信息,如IP地址、端口号等基本信息。
2)管理大厅内基本用户信息列表,当用户请求进入房间时直接把用户信息发送给房间服务器。
3)在本大厅内广播聊天信息。
3、房间服务器具有如下功能:
1)管理房间信息,一个房间服务器中可以包含1个或多个房间,1个房间或多个房间对应一款休闲游戏,房间具有人数限制如200人,当某一休闲游戏玩家较多时可以增加房间,扩充可容纳玩家数量的上限。
2)管理房间中玩家信息,当玩家游戏状态变化时,将首先通知房间服务器,再由房间服务器转发到当前玩家所在房间的其他玩家。
3)房间服务器还将根据游戏的进程实时更新玩家的状态,使游戏保持同步。
4、对战转发服务器具有如下功能:
1)P2P穿透,当玩家进入房间开始游戏的过程中,其游戏数据包将尽可能的通过P2P的方式发送以减少服务器的压力。
玩家之间P2P穿透的过程就是有该服务器完成。
2)游戏数据转发,当玩家之间的P2P无法穿透时,为了保证玩家同样能够进行游戏,其数据包将通过该服务器转发。
5、数据库接口服务器具有如下功能:
1)数据库操作,其它所有服务器凡是需要与数据库打交道的操作都通过该服务器进行,而不是直接连接数据库。
6、全局信息服务器具有如下功能:
1)管理所有服务器基本信息,包括服务器的IP地址,端口号等,对于有些服务器如房间服务器还将管理如房间人数等信息。
7、用户信息服务器具有如下功能:
1)管理全局用户信息,该服务器管理者这个平台的用户基本信息,每当用户登录时都会把自己的基本信息在这里登记。
2)在各个大厅服务器之间转发信息,由于这个平台可以拥有多个大厅服务器,当有信息尤其是针对单个或部分特定玩家的信息需要要在多个大厅之间转发时,唯一可以获得全部玩家信息的服务器就是全局信息服务器,通过该服务器将找到玩家所在大厅,然后由大厅发送给玩家。
8、好友及战队服务器具有如下功能:
1)好友信息管理及点对点信息转发。
2)战队信息管理及战队信息转发。
2.3平台运行过程中的问题
1、服务器性能低下,当连接并发量增加后,玩家发送的请求无法快速得到响应,玩家往往认为服务器已经失效。
2、服务器持续高效运行时间不长,长时间运行服务器性能下降严重,通常二至三天就必须重启一次服务器以提高服务器运行效率。
3、服务器不稳定,一个服务器失效有可能造成部分或全部玩家无法继续游戏。
而且服务的恢复只能通过手工的方式进行。
4、游戏状态无法恢复,这就意味着服务器失效后,就算及时重启游戏服务器也无法为之前在服务器中的玩家继续提供服务。
5、每个玩家分散的连接于各个服务器之上,与任何一个服务器的断开都有可能导致玩家从平台断开连接。
6、各个服务器都保持着各自的玩家基本信息及状态,玩家状态副本过多,状态同步复杂困难。
第三章问题分析及解决思路
作为一个产品级的应用软件来说,提供稳定的服务是一个基础,其次才是服务的效率。
本章我们将首先围绕该游戏平台存在的稳定性问题,分析其原因并给出解决方案。
之后我们将围绕该游戏平台存在的性能问题,分析其原因并给出解决方案。
3.1稳定性问题分析
3.1.1内存访问问题
针对游戏平台长时间运行后程序性能下降严重这一问题,通过实地研究分析发现,服务器长时间运行之后性能下降的一个主要原因是由于系统可用内存几乎耗尽,然而仔细的分析服务器代码之后并没有发现内存泄漏的情况,观察服务器内存使用情况之后发现,系统存在大量的内存碎片,而这也正是系统可用内存几乎耗尽的原因。
1、什么是内存碎片
“内存碎片”描述一个系统中所有不可用的空闲内存,这些内存以小而不连续的方式出现在系统内存中的不同位置。
这些资源之所以不能使用,是因为负责分配内存的分配器无法有效使用这些内存[13]。
即使在系统中事实上仍然有许多空闲内存,内存碎片最终都有可能导致出现内存用完的情况。
一个不断产生内存碎片的系统,不管产生的内存碎片多么小,只要时间足够长,就会将内存用完。
这种情况在MMOG这种高可用性系统中是不可接受的。
有些软件环境,如OSE实时操作系统已经备有避免内存碎片的良好工具,然而该游戏平台所使用的Windows2003操作系统并不提供这一功能。
2、编译时间与运行时间的内存分配情况
在windows系统和其它大多数操作系统中,内存的使用有两种方式:
栈方式及堆方式。
栈方式申请的内存由编译程序和链接程序完成内存分配功能,此时由于编译器完全清楚数据的生命周期,因此不会出现内存碎片。
堆方式申请内存是通过诸如malloc()这样的函数在程序运行期间动态分配的,使用完毕后通过free()一类的函数将内存返还操作系统。
这一过程就有可能产生内存碎片,因为内存分配程序的策略有可能导致有部分太小的内存永远无法使用。
通过上面的分析,在程序开发过程中避免产生内存碎片的唯一办法就是不使用动态内存分配函数,而只使用栈内存分配方式。
对于一个简单的应用程序来说这是可行的,但是对于MMOG服务器来说却是无法做到的,因为我们无法预知服务器会有多少用户,这些用户又会有多少种状态。
在这种情况下我们只能减少内存碎片,使内存碎片维持在一个可接受的范围之内。
3、内存池的定义和分类
内存池的思想通过这个"
池"
字表露无疑,应用程序可以通过系统的内存分配调用预先一次性申请适当大小的内存作为一个内存池,之后应用程序自己对内存的分配和释放则可以通过这个内存池来完成。
只有当内存池大小需要动态扩展时,才需要再调用系统的内存分配函数,其他时间对内存的一切操作都在应用程序的掌控之中,因此可以有效的避免内存碎片问题。
应用程序自定义的内存池根据不同的适用场景又有不同的类型。
从线程安全的角度来分,内存池可以分为单线程内存池和多线程内存池。
单线程内存池整个生命周期只被一个线程使用,因而不需要考虑互斥访问的问题;
多线程内存池有可能被多个线程共享,因此则需要在每次分配和释放内存时加锁。
相对而言,单线程内存池性能更高,而多线程内存池适用范围更广[3]。
从内存池可分配内存单元大小来分,可以分为固定内存池和可变内存池。
所谓固定内存池是指应用程序每次从内存池中分配出来的内存单元大小事先已经确定,是固定不变的;
而可变内存池则每次分配的内存单元大小可以按需变化,应用范围更广,而性能比固定内存池要低[3]。
4、内存池工作原理示例
下面以固定内存池为例说明内存池的工作原理,如图3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MMOG 环境 服务端 通用 运行 支撑 平台 研究 实现 硕士学位 论文