探讨“浩方对战平台”

探讨“浩方对战平台”
2007-05-14 03:55
        最近在网上看到了关于《虚拟局域网》方面讨论。下面就以国内著名的《浩方对战平台》来做为案例分析。(如下言论纯属我的观点)
        
          阅读时你们请注意文中颜色标记出来部分,以及文中出现的图片!
        (如下介绍引用浩方官方解说)
          浩方对战平台是一种全新概念的网络游戏平台,自2002年9月投入运做以来,目前已成为全球最大的互动、对战游戏平台之一。 浩方经过网络技术将Internet变成一个巨大的网吧平台使用者能够轻松地经过Internet同时和多人对战反恐精英、魔兽争霸、星际争霸等数十款热门单机游戏,并拥有实时与其余用户进行多媒体交流、查看当前在线游戏情况、自动启动游戏等功能。用户能够在其中任意遨游,与其余玩家切磋技艺增进了解。
从上图能够看出“浩方”的基本架构原理!
目前网上对“浩方”、“VS”、“QQ对战平台”有不少种说话。有的说“白粥是燕窝”,有的说“鲍鱼是泥鳅”,本身看久了,都要晕。。。
下面是通过本人测试得出来的现象(仅供参考!!!)
一、首先从本机的 Ipconfig 处入手:
从(图一)Ipconfig 上来看,不论是否以浩方形式登陆游戏,浩方并无改变个人IP地址。
如下(图二)---(图八)是本人在“浩方”大厅里的截图
图八中用户并不是本人ID,这一点,我一开始感受很奇怪。可是,后来正好验证了个人一个想法。下文有说明。
从以上截图中,浩方的原理的大体轮廓,就已经呈现出来了。
接下来,咱们讨论一下,究竟浩方是采用了哪一种思路开发出来的。(PS:不少网友总是会问到,浩方是用什么开发语言编写的,其实就算是DELPHI / C++ BUILDER / VB / JAVA 均可以编写出来(可是这类型软件,用VC开发,较为合适!缘由就再也不解释!),既然不少网友关心这个问题,我就确定一点的回答你们,目前的浩方平台是在 VC++6.0 上开发出来的)。
你们在注意看上图,加星方框内的Function内容,能够看出是使用了IPX OVER TCP/IP的方式来处理的。
下面,我来架设一下,浩方对战平台的总体构架(未实际验证,凭经验猜测!)
浩方用服务器中转(或服务器端含有VLAN   ×××),我的认为 采用后者 VLAN ×××方案,可能性较大。经过(图1)---(图8)得出我的的一下观点,在此举个例子来讲明。
假如 A、B、C、D、 四我的去唱K,A和B被分到了 1号包房;C和D,被分到了 2号包房。A只能和B对唱,C也只能和D对唱。若是此刻再来一个 E ,E进入了 1号包房,也只能和A\B一块儿娱乐,不能同C\D一块儿娱乐。
浩方也是相对应的,当你登陆进浩方的某个ROOM内,你只能和该ROOM内的PLAYER娱乐。
当你进入房间后。浩方服务器端接收到你的IP信息后,在后台将你的IP地址发送至VLAN ×××上进行地址分配,每次分配。内网以你的IP为标准,好比说:A用户的IP为222.11.13.102 , B用户的IP为55.37.128.113 ,未进入房间前,这是A\B用户的IP,可是当你进入房间后,其实A\B用户就获得了一个浩方服务器传递过来的虚拟IP,192.168.0.118 、 192.168.0.119   ……
      跳回(图8)处,个人IP其实222.71.40.100 ,可是我在浩方游戏房间里,确发现这个IP已经被另外一用户占用,并且,当我在房间右侧单击用户列表出的用户名时,发现了一个规则, 此刻 我单击A用户的IP是显示为 222.71.40.31,过了2分钟后,当我再单击A用户是,发现该用户IP已经变为 222.71.40.30,再过了3分钟后,我再单击此用户时,发现该用户IP,已变为 222.71.40.27 ,因而可知,浩方服务器端,按队列规则,向用户派发虚拟局域网IP。
总结一下,A用户进入浩方时,浩方经过(IPX OVER TCP/IP)会自动分配一个虚拟局域网IP给A用户(此处需注意,不一样的房间,IP段不一样)。
虽然浩方科技是高科技企业,可是浩方平台自己的技术含量并不高,它的基本原理是虚拟局域网( VLAN )和虚拟专用网技术( ××× ),它能够利用网络技术(我估计90%就是 IPX over TCP/IP,固然也还能够一些HOOK,API)使物理上不在同一个局域网内的客户机经过逻辑专线造成虚拟的局域网环境。
以上言论。纯属我的观点。
目的只是为了你们互相沟通,一步步探索技术内幕!
但愿你们看事后,能发表本身的观点,互相学习,共同进步!!!
虽然浩方通过商业化后,有不少恶意的弹窗,和广告,可是毕竟也会推进中国电子竞技发展,其对中国电子竞技所产生的影响,也意义深远!!!
其实很早时候就想写这篇了,这几天因为在写书的提纲因此一直没写,如今书的提纲已经交过去了,不知道状况如何,若是能够的话下个星期就能够签合同了。废话少说先来游戏数据包分析,其实你随便找个抓包工具,而后运行魔兽就能看出个究竟来。在这里来讲说,当按了游戏进入局域网时,游戏会采用局域网UDP广播的形式通知在一个局域网中的游戏者说明他进来了,而后每一个一段时间均会广播一次,这样的做用我猜测是通知其余玩家证实它还存在着,而不会悄然无息的掉线。当游戏开始后采用的是P2P的方式,由于当主机掉线时其余玩家仍是能够继续游戏,可是我在抓包工具里发现每一个玩家间均有两条TCP的连接,我也尽行了证明,一条是发送游戏数据的,一条是聊天的,当一个主机退出的时候,其余玩家中有一我的就会成为主机,继续这样的链接方式。    前面那篇文章已经分析了浩方的实现原理,在这里再深刻一步分析下咱们要设计的Battlenet平台的状况,这里分为服务器和客户端,服务器实际上是用来转发和记录些玩家信息的,而客户端呢是一个传消息给游戏的中转站(固然这里实际上是客户端与已经注入进游戏的DLL的通讯).    在这里简单说说客户端服务器如何通讯的过程,当玩家登录客户端时就会把本身真实的IP地址传递给放在公网上的服务器,而当玩家进入对应的游戏房间时,也就是玩家通知服务器我将要映射为何样的虚拟IP,有了虚拟IP玩家才能进入相应的虚拟局域网,当服务器收到玩家消息时,服务器就把消息对所在相同房间的其余玩家都发一遍,确认玩家能加入局域网,其余玩家的客户端收到服务器发来的虚拟IP时,就把这个虚拟IP发送给已经注入进游戏的DLL,而后DLL把虚拟IP发送给游戏,这样游戏就被欺骗了,但游戏发送数据报给虚拟IP时,注入的DLL一样把消息截获,发送给那个加入房间启动游戏的玩家,这里其实就是把虚拟IP还原成真实IP的过程。而后游戏开始后就是P2P的过程。服务器在游戏开始前起到的做用其实就是中转IP的做用,游戏开始后中转将在客户端实现,其实就是P2P的过程,固然其中包括的IP映射与逆映射的过程。
相关文章
相关标签/搜索