网络游戏防加速控制系统及方法与流程

文档序号:14579497发布日期:2018-06-02 03:10阅读:483来源:国知局
网络游戏防加速控制系统及方法与流程

本发明属于计算机软件技术领域,涉及一种网络游戏系统,尤其涉及一种网络游戏防加速控制系统;同时,本发明还涉及一种网络游戏防加速控制方法。



背景技术:

网络游戏能给玩家提供互动、竞技等一系列比单机游戏更好的体验而大受欢迎。近年来网络游戏不论是从玩法方面还是从技术方面看都得到了很大的发展。然而任何一款网络游戏都会有被第三方工具恶意加速的可能(比如加快跑动速度、加快攻击速度等等),这样就会破坏游戏公平性,会极大的伤害正常玩家。因此网络游戏对加速的控制必不可少的。

下面以加快跑动速度为例叙述没有加速控制(也是目前大部分网络游戏的做法)的过程。

图1是正常玩家跑动时客户端产生的跑动数据包序列,其中上一个数据包与下一个数据之间的时间间隔小于游戏规定的最小时间t,也就是说玩家跑动时间间隔不能小于t;每个数据包中跑动的步长都是固定合理步长1。这样当每一个数据包到达服务器后,服务器就更新玩家的当前位置并把其位置广播告诉周围的人。

图2是玩家利用外挂程序或其他第三方工具处理后的跑动数据包序列,其中上一个数据包于下一个数据包之间的时间间隔小于游戏规定的最小时间t;并且有些数据包携带的步长还大于合理步长1。这样的数据包到达服务器经由服务器处理后广播给周围玩家后,带给周围玩家的体验就是该角色跑动速度和步长明显高于正常值。

为了解决这个问题,目前常用的方法是:1、在服务端检查每个跑动的数据包携带的步长是否有效;2、在服务器添加一个标记记录上一次玩家是什么时候跑动的以此来检查玩家当前发过来的数据包是否是合法数据包。

但是,这都不是最好的办法;这样做会极大的增加游戏服务器出数据包处理的压力从而导致卡顿现象,甚至长时间无响应;同时极大地增加游戏服务器上的业务逻辑,使得维护、管理以及开发新业务变得异常困难,最终导致项目不可控。

现有的其他解决方案还包括:1、在客户端进行控制,这样当非法玩家使用外挂或其他第三方工具这种控制就失效了;另外当出现网络波动时也会影响玩家体验。2、在业务层(多数是在游戏服务器)进行检查校验;这样虽然可以达到一定的控制效果,但是会增加游戏服务器的业务逻辑使得维护变得异常困难,游戏服务器也无法摆脱对无效数据包的压力。

有鉴于此,如今迫切需要设计一种新的网络游戏防加速控制方式,以便克服现有控制方式存在的上述缺陷。



技术实现要素:

本发明所要解决的技术问题是:提供一种网络游戏防加速控制系统,把对各种防加速的控制提升到数据包层面来解决,这样就做到了业务无关性;通过对非法数据包的修正极好的避免了因为网络波动带来的影响。

此外,本发明还揭示一种网络游戏防加速控制方法,把对各种防加速的控制提升到数据包层面来解决,这样就做到了业务无关性;通过对非法数据包的修正极好的避免了因为网络波动带来的影响。

为解决上述技术问题,本发明采用如下技术方案:

一种网络游戏防加速控制系统,所述防加速控制系统包括:

至少一游戏服务器;

至少一客户端;

分别连接客户端和游戏服务器的数据包网关PacketGate,客户端和服务器之间的通信数据包由数据包网关来转发,客户端和游戏服务器之间不建立直接的通信连接;

所述数据包网关包括校验判断模块、校验模块、纠正模块、计数模块、断开连接模块;

所述校验判断模块用以判断客户端产生的上行数据包;因为每个数据包都有一个固定包头,包头中有个标记为来标记该包属于哪一类数据包,校验模块也正是依据该标记判断是否需要对客户端产生的上行数据包进行校验;所述数据包网关对于客户端产生的上行数据包中不需要校验的,直接转发给游戏服务器;

而对于客户端产生的上行数据包中需要时钟合法性校验和数值合法性校验的,先根据客户端上行数据包包头中的标记来判断该数据包是否需要进行校验,如果需要进行检验再依据该标记来区分需要对该数据包进行哪种校验;

如果该数据包是玩家请求跑动的数据包,正常跑动速度是一秒一步,即一秒钟产生一个跑动数据包,该数据包需要进行时钟合法校验,就把该数据包加入到网关服务器上的一个消息队列中,加入完毕之后就立刻返回去处理下一个客户端发过来的上行数据包,而在网关服务器上的另外一个处理器——特殊消息处理模块中专门来处理这个消息队列中的消息;经过特殊消息处理模块处理后,如果该消息需要警告则调用计数模块进行计数,当计数达到警戒数值时就断开客户端的所有连接请求。

一种网络游戏防加速控制系统,所述防加速控制系统包括:

至少一游戏服务器;

至少一客户端;

分别连接客户端和游戏服务器的数据包网关PacketGate,客户端和服务器之间的通信数据包由数据包网关来转发,客户端和游戏服务器之间不建立直接的通信连接;

所述数据包网关包括校验判断模块、校验模块、纠正模块、计数模块、断开连接模块;

所述校验判断模块用以判断客户端产生的上行数据包是否需要校验,所述数据包网关对于客户端产生的上行数据包中不需要校验的,直接转发给游戏服务器;

而对于客户端产生的上行数据包中需要时钟合法性校验和数值合法性校验的,通过校验模块进行校验;如果是合法数据包就转发给游戏服务器,如果该数据包不合法,通过纠正模块对该数据包进行纠正,并通过技术模块进行计数,当计数达到警戒数值时就断开客户端的所有连接请求。

一种上述网络游戏防加速控制系统的防加速控制方法,所述防加速控制方法包括如下步骤:

步骤S1、接收客户端发过来的上行数据包;

步骤S2、根据数据包包头中的标记判断该包是否需要进行校验;如果需要校验就把该数据包添加到消息队列中;如果该包不需要校验就直接转发给游戏服务器;

步骤S3、在特殊消息处理模块中循环处理添加进来的各种需要校验和修正的消息;对于需要进行不同处理的消息具体会有不同的处理方式;首先,在添加数据包到消息队列时对每一个数据包额外记录一个接收时钟值;第二,在特殊消息处理模块中对添加进来的需要进行时钟校验:取当前处理时钟值,再用当前处理时钟值与数据包中额外记录的接收时钟值做减法,然后用得到的数值与最小间隔发送时间值进行对比,如果大于或等于最小间隔发送时间值就把该数据包转发给游戏服务器,如果小于最小间隔发送时间值就把该数据包仍然留在消息队列中等等下次循环处理,直至该数据包达到发送时间间隔要求后转发给游戏服务器;第三,对于小于最小发送间隔的数据包在等待达到最小间隔发送时间发送后调用计数模块进行计数,同时检查是否到达舍得的警戒数值,如果到达警戒数值就断开客户端的所有连接请求,同时丢弃消息队列中该用户已经发上来的所有数据包。

一种上述网络游戏防加速控制系统的防加速控制方法,所述防加速控制方法包括如下步骤:

校验判断模块用以判断客户端产生的上行数据包是否需要校验;

对于客户端产生的上行数据包中不需要校验的,所述数据包网关直接转发给游戏服务器;

对于客户端产生的上行数据包中需要时钟合法性校验和数值合法性校验的,通过校验模块进行校验;

如果是合法数据包就转发给游戏服务器,如果该数据包不合法,通过纠正模块对该数据包进行纠正,并通过技术模块进行计数,当计数达到警戒数值时就断开客户端的所有连接请求。

本发明的有益效果在于:本发明提出的网络游戏防加速控制系统,把对各种防加速的控制提升到数据包层面来解决,这样就做到了业务无关性;通过对非法数据包的修正极好的避免了因为网络波动带来的影响。同时,本发明可以有效减少游戏服务器的业务逻辑,降低服务器维护成本;急剧降低无效数据包到达游戏服务器的数量,减少了游戏服务器的压力从而显著提升服务器性能。

附图说明

图1为正常玩家跑动产生的从客户端到底服务器的数据包序列示意图。

图2为经外挂程序处理后由客户端到达服务器的数据序列示意图。

图3为本发明网络游戏防加速控制系统的组成示意图。

图4为本发明网络游戏防加速控制方法的流程图。

图5为本发明网络游戏防加速控制方法时钟校验的流程图。

图6为本发明网络游戏防加速控制方法数值校验的流程图。

具体实施方式

下面结合附图详细说明本发明的优选实施例。

实施例一

请参阅图3,本发明揭示了一种网络游戏防加速控制系统,所述防加速控制系统包括:至少一游戏服务器、至少一客户端、分别连接客户端和游戏服务器的数据包网关PacketGate;客户端和服务器之间的通信数据包由数据包网关来转发,客户端和游戏服务器之间不建立直接的通信连接。

所述数据包网关包括校验判断模块、校验模块、纠正模块、计数模块、断开连接模块。

所述校验判断模块用以判断客户端产生的上行数据包是否需要校验,所述数据包网关对于客户端产生的上行数据包中不需要校验的,直接转发给游戏服务器。而对于客户端产生的上行数据包中需要时钟合法性校验和数值合法性校验的,通过校验模块进行校验;如果是合法数据包就转发给游戏服务器,如果该数据包不合法,通过纠正模块对该数据包进行纠正,并通过技术模块进行计数,当计数达到警戒数值时就断开客户端的所有连接请求。

此外,本发明还揭示一种上述网络游戏防加速控制系统的防加速控制方法,请参阅图4至图6,所述防加速控制方法包括如下步骤:

校验判断模块用以判断客户端产生的上行数据包是否需要校验;

对于客户端产生的上行数据包中不需要校验的,所述数据包网关直接转发给游戏服务器;

对于客户端产生的上行数据包中需要时钟合法性校验和数值合法性校验的,通过校验模块进行校验;

如果是合法数据包就转发给游戏服务器,如果该数据包不合法,通过纠正模块对该数据包进行纠正,并通过技术模块进行计数,当计数达到警戒数值时就断开客户端的所有连接请求。

实施例二

一种网络游戏防加速控制系统,所述防加速控制系统包括:至少一游戏服务器、至少一客户端、分别连接客户端和游戏服务器的数据包网关PacketGate。客户端和服务器之间的通信数据包由数据包网关来转发,客户端和游戏服务器之间不建立直接的通信连接。

所述数据包网关包括校验判断模块、校验模块、纠正模块、计数模块、断开连接模块。

所述校验判断模块用以判断客户端产生的上行数据包;因为每个数据包都有一个固定包头,包头中有个标记为来标记该包属于哪一类数据包,校验模块也正是依据该标记判断是否需要对客户端产生的上行数据包进行校验;所述数据包网关对于客户端产生的上行数据包中不需要校验的,直接转发给游戏服务器。

而对于客户端产生的上行数据包中需要时钟合法性校验和数值合法性校验的,先根据客户端上行数据包包头中的标记来判断该数据包是否需要进行校验,如果需要进行检验再依据该标记来区分需要对该数据包进行哪种校验。

如果该数据包是玩家请求跑动的数据包,正常跑动速度是一秒一步,即一秒钟产生一个跑动数据包,该数据包需要进行时钟合法校验,就把该数据包加入到网关服务器上的一个消息队列中,加入完毕之后就立刻返回去处理下一个客户端发过来的上行数据包,而在网关服务器上的另外一个处理器——特殊消息处理模块中专门来处理这个消息队列中的消息;经过特殊消息处理模块处理后,如果该消息需要警告则调用计数模块进行计数,当计数达到警戒数值时就断开客户端的所有连接请求。

一种上述网络游戏防加速控制系统的防加速控制方法,所述防加速控制方法包括如下步骤:

步骤S1、接收客户端发过来的上行数据包;

步骤S2、根据数据包包头中的标记判断该包是否需要进行校验;如果需要校验就把该数据包添加到消息队列中;如果该包不需要校验就直接转发给游戏服务器;

步骤S3、在特殊消息处理模块中循环处理添加进来的各种需要校验和修正的消息;对于需要进行不同处理的消息具体会有不同的处理方式;

首先,在添加数据包到消息队列时对每一个数据包额外记录一个接收时钟值;

第二,在特殊消息处理模块中对添加进来的需要进行时钟校验:取当前处理时钟值,再用当前处理时钟值与数据包中额外记录的接收时钟值做减法,然后用得到的数值与最小间隔发送时间值进行对比,如果大于或等于最小间隔发送时间值就把该数据包转发给游戏服务器,如果小于最小间隔发送时间值就把该数据包仍然留在消息队列中等等下次循环处理,直至该数据包达到发送时间间隔要求后转发给游戏服务器;

第三,对于小于最小发送间隔的数据包在等待达到最小间隔发送时间发送后调用计数模块进行计数,同时检查是否到达舍得的警戒数值,如果到达警戒数值就断开客户端的所有连接请求,同时丢弃消息队列中该用户已经发上来的所有数据包。

综上所述,本发明提出的网络游戏防加速控制系统,把对各种防加速的控制提升到数据包层面来解决,这样就做到了业务无关性;通过对非法数据包的修正极好的避免了因为网络波动带来的影响。同时,本发明可以有效减少游戏服务器的业务逻辑,降低服务器维护成本;急剧降低无效数据包到达游戏服务器的数量,减少了游戏服务器的压力从而显著提升服务器性能。

这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1