为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

网络游戏的基本流量分析方法

2017-12-03 9页 doc 24KB 40阅读

用户头像

is_682974

暂无简介

举报
网络游戏的基本流量分析方法网络游戏的基本流量分析方法 1引言 早在1969年,瑞克.布洛姆(RickBlomme)效仿麻省理工学院(MIT)学生开发的《太 空大战》(SpaceWar),为“柏拉图”(PLATO:ProgrammedLogicforAutomaticTeaching Operations)系统编写了一个可以同时供两个用户远程连线游戏的软件。这个甚至没有被正 式命名的游戏软件,就是网络游戏的“鼻祖”。而在50年后的今天,网络游戏早已经发展为 互联网最大的一个产业之一。[1] 从网络游戏的分类来看,目前还没有一个比较统一规范的分类。...
网络游戏的基本流量分析方法
网络游戏的基本流量分析方法 1引言 早在1969年,瑞克.布洛姆(RickBlomme)效仿麻省理工学院(MIT)学生开发的《太 空大战》(SpaceWar),为“柏拉图”(PLATO:ProgrammedLogicforAutomaticTeaching Operations)系统编写了一个可以同时供两个用户远程连线游戏的软件。这个甚至没有被正 式命名的游戏软件,就是网络游戏的“鼻祖”。而在50年后的今天,网络游戏早已经发展为 互联网最大的一个产业之一。[1] 从网络游戏的分类来看,目前还没有一个比较统一规范的分类。大多数倾向于将网络游 戏分为角色扮演类大型网络游戏、休闲动作类游戏、棋牌桌面类游戏和其它类网络游戏。[2] 大型多人在线角色扮演游戏即MMORPG(MassiveMultiplayerOnlineRolePlaying Game),是目前最主流的游戏类型,游戏构筑了一个有基本健全的社会体制和经济系统的虚 拟世界,玩家在游戏虚拟世界中扮演特定角色,通过自己的游戏技能及其它各方面投入实现 自己所扮演的角色在游戏虚拟社会中的生存和成长并参与游戏虚拟世界的人际沟通及社会 活动等。市场上最知名的《传奇》系列、《大话西游II》、《MU》等游戏都属于这一类型。 同时MMORPG网络游戏按其故事类型不同也可以进一步细分为童话类、武侠类、魔幻类、 科幻类等游戏类型。 休闲动作竞技类网络游戏与角色扮演类网络游戏最大的区别在于采用回合制,也就是说 一回合游戏在一段时间之内便会结束。同时这类游戏以纯粹娱乐或者强调对抗性为主,不强 调剧情。而在国内的实现方式多以游戏平台类出现,比如联众,浩方等,也有以单独游戏出 现的,如泡泡堂,劲舞团等。[3] 2网络游戏协议分析 虽然网络游戏没有采用特殊的应用层协议,而是通过TCP或者UDP协议来通信,但是 其流量、静荷和识别方法等与大多数应用层协议分析基本一致,所以,应用层协议的分析是 本文主要使用的方法。应用层协议分析是将一个协议会话的流量作为一个整体来考虑,利用 应用层协议数据规范,对封装在传输层的负载数据进行反向工程,来理解并恢复协议数据流 原有的语义。[4] 由于应用层协议实现的基础是底层传输协议,同时我们的目的是分析协议中传输的数 据,因此,应用层协议分析的主要包括4个步骤: 1、TCP/IP协议栈还原和重组应用层连接流 -2- 它包括从原始的数据包捕获到还原为传输层数据的一系列过程。这一步是应用层协议分 析的基础,只有将一个个离散的数据包还原为一条条基本的数据流,才可能在流的基础上进 行进一步的分析和监测。TCP/IP协议栈的还原速度和效率直接影响后续的分析速度。 2,应用层协议的关键信息识别 应用层协议数据一般包括命令信息、状态信息和信息,应用层协议对这3类信息都 有明确的格式规范。这一步主要是对应用层协议的命令信息、状态信息做识别。在目前的环 境下,多数协议对这两类信息的传输都是明文传输,所以识别是可行的。 3、应用层协议的状态分析 我们利用第2步关键信息的识别,可以进一步分析出该协议流在目前的状态,并且记录 和追踪其状态,从而准确的理解、定位协议内容。各个应用层协议的命令执行和状态应答都 是有一定序列的,而且很多协议对于执行序列有严格的要求,通过对状态序列的判断,我们 可以监测这个协议是否符合RFC标准,并且识别出各种协议异常和协议攻击。 4、后续操作 这部分主要和用户的需求有关,比如用于应用层协议所传输的数据有很多是经过编码或 者压缩的,而用户希望得到足够统一的明文内容。另外,用户还可能希望对明文进行比较直 观的图标操作,查看每个时间段的详细信息。[5] 3Battle.net特征分析 3.1暴雪及battle.net简介 暴雪公司早在1995年出品的魔兽争霸2中就加入了局域网对战的特性,其具有1.5代 网络游戏的特征,而真正跨时代的是在1998年随着其星际争霸推出的battle.net系统,该系 统通过将其原来的网络对战系统升级,通过一个专门的服务器系统,来记录玩家的胜负状态 以及扩展可以同时联网的人数来达到第二代网络游戏“可持续性”的概念。由于星际争霸是一 个类似于棋牌的竞技性游戏,所以,星际争霸所附带的battle.net系统更像是一个提供对战 场所的平台,它的出现,影响了以后出现的相对于竞技游戏的各种“对战平台”系统。到了 1999年,暴雪的经典动作角色扮演游戏diablo2发布,其中也捆绑了battle.net系统,它的出 现使得人们对于角色扮演游戏的概念有了翻天覆地的变化,仅仅只是登录上battle.net就可 以跟处在不同地域位置的朋友们在同一个世界里面为了同一个目标共同奋斗。而此时, battle.net系统则更像是一个游戏服务器,而玩家运行的游戏则是一个客户端。它的出现是革 命式的,对以后出现的MMORPG产生了极其深远的影响。[6] 3.2battle.net深度分析 3.2.1battle.net服务器特点 由于国内大多数服务器提供者并没有暴雪的授权,所以一般使用第三方的服务器搭建软 件,其中PvPGN(playervsplayergamenetwork)是使用最广泛的。它甚至可以将一台普通的 电脑也变成一台Battle.net的服务器。Battle.net服务器的特点是,仅仅提供一个平台,本身 不提供任何运行游戏所需要的服务,只是提供数据储存和一些有助于玩家交流的服务,比如 存储玩家资料和游戏资料(排名、胜负、装备等)以及聊天功能。目前Battle.net上主要运 行有三款游戏:Starcraft(星际争霸)、Diablo2(暗黑破坏神2)和Warcraft3(魔兽争霸3)。 3.2.2battle.net服务器登录分析 -3- 所有想在Battle.net上进行游戏的客户端首先必须登录Battle.net服务器,连接统一使用 TCP协议和服务器的6112端口(diablo2会少量使用6113端口),客户端口不固定。在登录的 数据交互中,有一条由游戏客户端发往服务器的重要信息,里面包括了客户端的游戏类型, 地区等信息。图3-3是客户端为星际争霸游戏时的登录信息。 图1客户端为星际争霸游戏时 由上图可以看出,通过检查该报文静荷的第15、16和17字节的值能够判断登录战网的 游戏类型。 发送完登录报文以后,会经过一段验证游戏的过程,包括版权等,其中会出现一条静荷 长度固定为142字节的报文,其中最后列出了游戏 计算机毕业论文网www.papersay.com 软件的本地信息包括一个特别码,它可以 唯一的确定一个游戏客户端的cd-key值,紧接着的是客户端在battle.net注册的账户。 接下来,用户端可以输入用户名和密码来登录进入战网,对应报文为一个净核长度不固 定的报文,其密码部分被加密了,但是用户名是明文的。这个报文数据段的特征是在示用 户名前面的密码加密段数据长度是固定的36个字节,并且第1、2个字节为固定的:“0xff 0x53”。而用户名则因为不同而有不同的长度,最后一定以一个“0x00”结尾。可以通过捕获 此报文来得到登录魔兽战网的用户ID。 服务器随后会返回给用户一个特征报文,告诉客户端密码是否正确。其特征是数据段长 度为固定的28个字节,其中第1,4字节为固定的:“0xff0x540x1c0x00”和第6,28字节 也为固定的:“0x000x000x000x780x520x820x020x000x000x000x000x000x000x000x00 0x780x520x820x020x000x000x000x00”。通过第5个字节的特征值来区别密码是否错误, 密码正确的时候为:“0x00”,这样用户就可以登录战网;密码错误的时候为“0x02”,当密码 错误的时候,用户可以无限次再次输入密码或者选择退出。 在验证通过后,用户就可以登录到战网的主界面上了,由于游戏的不同,主界面也不相 同。对于不同的游戏客户端,它们之间是相互独立的。 3.2.3battle.net服务器下游戏进程分析 Diablo2: 暗黑破坏神是一款ARPG(动作角色扮演)游戏,跟现在的网络游戏很相似,它和现在 的“MMORPG”的主要区别就是它一个游戏只能允许8人在线,但是可以通过在服务器创建 无数个单独游戏来解决多人在线问。 它使用的是“客户端,服务器”结构,就是说在除了Battle.net服务器以外,它还需要一 个游戏服务器来提供游戏主机服务,并通过服务器来协调整个游戏全局的同步。在通信过程 中,每一客户端仅与服务器建立通信,任何如移动、攻击等动作都会向服务器发送数据。服 务器也会向各个客户端广播数据,协调游戏同步。 一般来讲,当客户端建立游戏或者加入某一游戏的时候,会与游戏服务器的4000端口 连接,自身端口不固定。在与服务器建立连接以后,服务器会向客户端发送一条特征报文, 数据固定为0xae和0x01。可以将此关键字作为一个Diablo游戏的开始标志。 在游戏过程中,客户端将暂时不与Battle.net服务器发生任何连接,在游戏结束后,将 -4- 再次与Battle.net发生连接。由于游戏本身的设计,在游戏退出时,首先客户端会向游戏服 务器提供一条报文,传送唯一一个数据0x68,然后服务器会回复数据长度为3数据为0x03、 0x04和0xc0三个关键字的报文。可以将此作为判断客户端离开游戏。 游戏结束后,客户端将再次与Battle.net服务器连接,用户重新回到Battle.net界面,可 以再次进入下一个游戏或者退出Battle.net。当用户决定退出battle.net时,客户端使用最开 始与Battle.net服务器6112、6113端口连接的端口向服务器发送FIN置1的终止报文,表示 终止与服务器的连接。 Starcraft: 星际争霸是一款RTS(即时战略)游戏,它与现在的网络游戏完全不同,它比较多的 是通过局域网的形式来进行多人游戏,但是由于Battle.net的存在,现在全世界的人都可以 像在局域网中一样进行游戏。和Diablo相似,星际争霸在游戏开始以后将完全不需要 Battle.net服务器的参与,也不将与之通信。同时与Diablo不同的是,由于其游戏的性质, 它不需要任何的游戏服务器,仅仅是参与游戏所有客户端之间进行UDP协议的P2P通信来 进行游戏,其中一台客户端将作为主机来协调所有客户端的游戏同步。 由于星际争霸游戏最大可以支持8人对战,并且在游戏开始以后将不再有新客户端加 入,所以在游戏开始前,有一个“协商”过程:一个客户端将建立一个游戏,其它客户端可以 加入进来。建立游戏的客户端称为主机。主机与其它参与游戏的客户端都使用6112端口通 信。 在游戏开始前只要游戏位置还未满都是可以加入的,由于每次加入游戏的客户端都需要 跟建立游戏的主机进行通信,在游戏开始以后,中途退出的将与主机断开连接,主机退出将 会与所有人断开连接,游戏中,只要有人未退出,游戏就不会结束。在游戏中所有人协商好 以后,主机将点击“开始”作为游戏的开始,这个时候主机将会通过UDP的6112端口向所有 的主机发送一个静荷长度为29字节,最后8个数据的特征值全为0x08。 星际争霸在每次游戏结束以后都会向Battle.net6112端口通过TCP协议发出关于本次游 戏的详细信息,比如游戏参加者ID、使用地图、胜负以及一些游戏信息。 同样的,starcraft在退回到battle.net主界面以后就可以再次加入其它的游戏或者退出 Battle.net。离开Battle.net服务器是从客户端发送一个RESET字节置1的TCP报文给 Battle.net的服务器。 Warcraft3: 魔兽争霸3同样是一款RTS游戏,它的基本特征跟starcraft是一样的,只不过,在游 戏进行时,客户端之间是使用TCP协议进行通信。它同样需要一个游戏客户端来担当“主机” 的角色,主机将使用TCP的6112端口,而其它游戏客户端则是随机的端口。魔兽争霸3还 有一点与星际争霸不同,它有两种游戏模式,其中一种是自定义模式,跟普通局域网的魔兽 争霸相似;还有一种是排名游戏,玩家通过选定一些游戏参数后点开始游戏,服务器会自动 搜索参数相同的玩家然后马上开始游戏,游戏结束后服务器会记录这次游戏的胜负,通过胜 负的次数,玩家会有一个排名表,这个就是Ladder。 1)普通游戏 普通游戏开始前同样也有一个“协商”过程。 在游戏中所有人协商好以后,主机将点击“开始”作为游戏的开始,这个时候主机将会通 过6112端口向所有的主机发送一个数据长度为4,特征值为0xf7、0x0b、0x04和0x00的 报文,所以可以通过此报文来决定整个游戏的开始。 -5- 由于魔兽争霸游戏本身的特性,在游戏结束判断十分的复杂,但是每次在一个客户端游 戏结束的时候都会使用第一次与Battle.net服务器连接的端口向其6112端口发送一条特征报 文,数据长度为9,关键字为第一 计算机毕业设计论文网www.papersay.com 到五字节的0xff、0x44、0x09、0x00、0x07和第七到九字 节的三个0x00。其中第六字节用16进制表示来到界面的次数。 2)ladder游戏 排名游戏跟普通游戏不同,玩家一旦点击“开始游戏”以后,battle.net会随机的给玩家分 配同样点击了“开始游戏”的游戏对手和使用的地图,并且会让游戏马上开始,而不会有普通 游戏的协商过程。游戏结果将会传回battle.net服务器保存。所以当battle.net搜索到了合适 的玩家后,会向将要参与游戏的所有玩家发送一条特殊报文,这条报文就可以判断是排名游 戏的开始。该报文是由battle.net服务器的TCP6112端口发向用户的数据段长度固定为15 个字节,特征字为:“0xff0x440x0f0x000x000x010x000x000x000x000x000x000x000x00 0x00”的报文。可以通过捕获此报文来判断一个排名游戏的开始。如图3-25。 图2ladder游戏的开始报文 排名游戏的结束跟普通游戏一样,都会向服务器端发送一条数据固定长度为9的报文, 且其特征字和第6个字节的规律也完全一样,所以可以通过捕获这个报文同样来判断排名游 戏的结束。 warcraft3在普通游戏或者ladder游戏结束后,同样的,会退回到battle.net主界面,以 后就可以再次进行游戏或者退出Battle.net。离开Battle.net服务器是从客户端发送一个 RESET字节置1的TCP报文给Battle.net的服务器。 3.2.4battle.net识别流程图 图3Battle.net识别流程图 -6- 4结论 网络游戏产业是一个新兴的朝阳产业,经历了20世纪末的初期形成期阶段,及近几年 的快速发展,现在网络游戏产业处在成长期,并快速走向成熟期的阶段。而在中国,整个网 络经济的发展过程中从无到有,发展到目前成为中国网络经济的重要组成部分。所以,对于 网络游戏流量的识别和监测具有十分重要的意义。 暴雪公司的battle.net战网系统与其系列游戏对中国乃至世界的网络游戏产业做出了卓 越的贡献,同时也产生了深远的影响,本文对于其在中国的各个游戏的流量特征与识别进行 的详细研究将有助于对于现行的多种多样各具特色的网络游戏的分析提供有意义的参考价 值。计算机毕业设计论文网www.papersay.com
/
本文档为【网络游戏的基本流量分析方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索