本发明涉及互联网技术领域,特别涉及一种基于多路径的游戏加速系统。
背景技术:
随着互联网技术和终端技术的不断发展,网络游戏也越来越受到玩家的青睐。在网络游戏的运行过程中,游戏客户端需要与游戏服务器进行频繁的数据交互,如果此时网络出现波动,那么会影响游戏客户端与游戏服务器之间的数据交互,从而导致游戏延时甚至掉线的情况发生。
为了缓解由于网络波动引起的游戏延时,当前可以通过游戏加速器来对游戏客户端发出的数据进行处理。具体地,当前的游戏加速器可以选用延时较小的代理节点,并通过选用的代理节点转发游戏客户端的数据包。但是,这样的游戏加速方式,一旦代理节点出现网络波动,玩家只能重新选择另一个代理节点进行游戏加速。但是,重新选择另一个代理节点之后,游戏通常都会掉线,因此,当前的游戏加速方式无法高效地对游戏进行加速。
技术实现要素:
本发明提供一种基于多路径的游戏加速系统,能够提高游戏加速的效率。
为实现上述目的,本申请提供一种基于多路径的游戏加速系统,所述系统包括游戏客户端、加速器客户端、代理服务器以及游戏服务器,其中:
所述游戏客户端,用于向外发出数据包,所述数据包指向所述游戏服务器;
所述加速器客户端,用于监测并接管从所述游戏客户端向外发出的所述数据包,并将接管的所述数据包重新定向至所述代理服务器;通过预设主链路和至少一条辅助链路向所述代理服务器发送重新定向的所述数据包;
所述代理服务器,用于接收所述加速器服务器发来的数据包,并将接收到的所述数据包还原为指向所述游戏服务器的数据包,并向所述游戏服务器发送还原得到的数据包;
所述游戏服务器,用于接收所述代理服务器发来的还原得到的数据包。
进一步地,所述加速器客户端包括进程监测模块,所述进程监测模块用于监测所述游戏客户端的进程,以识别从所述游戏客户端发出的数据包。
进一步地,所述加速器客户端包括数据重组模块,所述数据重组模块用于将接管的所述数据包中的目标ip地址修改为所述代理服务器的ip地址。
进一步地,所述加速器客户端在通过所述预设主链路向所述代理服务器发送重新定向的数据包之后,还用于唤醒至少一条辅助链路,并开启所述辅助链路的待命模式,以使得所述辅助链路处于准备发送数据包的状态。
进一步地,所述加速器客户端还包括链路质量监控模块,所述链路质量监控模块用于根据当前的网络数据传输参数,侦测并预测所述主链路的网络状态。
进一步地,所述侦测并预测所述主链路的网络状态包括:
获取所述主链路在当前时刻之前的预设时间段内的传输速率,并对所述预设时间段内的传输速率进行离散采样,生成传输速率数组x,所述传输速率数组x中的元素xa表示在所述预设时间段内第a个采样点的传输速率,a=1,2,…,m,m为采样总数,且xm为当前时刻采样的传输速率;
对所述传输速率数组x中的元素依次进行扩展,确定扩展后的传输速率数组x,且扩展后的传输速率数组x第m+i个元素为:
其中,k为约束系数,且k为奇数;wj为第j个权重值,且
确定基准序列h,且所述基准序列h的第j个元素hj为:
根据所述基准序列h和扩展后的传输速率数组x进行预测处理,生成预测数组y,所述预测数组y的第i个元素yi为:
将所述预测数组y中所有元素的平均值作为所述主链路最终预测的传输速率。
进一步地,所述加速器客户端还包括链路切换模块,所述链路切换模块用于在所述主链路出现数据掉包的情况下,启用第一辅助链路,并通过所述第一辅助链路向所述代理服务器补发出现数据掉包的数据包。
进一步地,所述链路切换模块还用于在所述链路质量监控模块提供的预测结果表明所述主链路的网络质量低于指定阈值时,将所述第一辅助链路升级为主链路,并停用原先的主链路,同时将其它辅助链路保持待命模式。
进一步地,所述代理服务器还包括数据还原模块,所述数据还原模块用于根据与所述加速器客户端之间约定的协议,将接收到的所述数据包的目标ip地址还原为所述游戏服务器的ip地址,并将所述数据包的数据载荷进行还原,并将还原后的数据包发送至所述游戏服务器。
由上可见,在本申请中,加速器客户端与代理服务器之间可以通过多条链路传输游戏客户端的数据包。具体地,加速器客户端可以将游戏客户端发出的数据包进行数据重组,然后发送至代理服务器。代理服务器默认通过主链路传输数据包,但是当主链路的网络状态不佳时,可以通过第一辅助链路补发数据包。如果主链路的网络质量下降比较严重时,可以将第一辅助链路升级为主链路,同时将其它辅助链路设置为待命模式,随时准备补发数据,从而可以在避免游戏掉线的情况下,动态切换数据的传输路径,从而提高游戏加速的效率,保障玩家能够顺畅地玩游戏。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明实施方式中游戏加速系统的结构示意图;
图2是本发明实施方式中游戏加速流程的示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
请参阅图1,本申请提供一种基于多路径的游戏加速系统,所述系统包括游戏客户端、加速器客户端、代理服务器以及游戏服务器,其中:
所述游戏客户端,用于向外发出数据包,所述数据包指向所述游戏服务器;
所述加速器客户端,用于监测并接管从所述游戏客户端向外发出的所述数据包,并将接管的所述数据包重新定向至所述代理服务器;通过预设主链路和至少一条辅助链路向所述代理服务器发送重新定向的所述数据包;
所述代理服务器,用于接收所述加速器服务器发来的数据包,并将接收到的所述数据包还原为指向所述游戏服务器的数据包,并向所述游戏服务器发送还原得到的数据包;
所述游戏服务器,用于接收所述代理服务器发来的还原得到的数据包。
在本实施方式中,所述加速器客户端包括进程监测模块,所述进程监测模块用于监测所述游戏客户端的进程,以识别从所述游戏客户端发出的数据包。
在本实施方式中,所述加速器客户端包括数据重组模块,所述数据重组模块用于将接管的所述数据包中的目标ip地址修改为所述代理服务器的ip地址。
在本实施方式中,所述加速器客户端在通过所述预设主链路向所述代理服务器发送重新定向的数据包之后,还用于唤醒至少一条辅助链路,并开启所述辅助链路的待命模式,以使得所述辅助链路处于准备发送数据包的状态。
在本实施方式中,所述加速器客户端还包括链路质量监控模块,所述链路质量监控模块用于根据当前的网络数据传输参数,侦测并预测所述主链路的网络状态。
在本实施方式中,所述链路质量监控模块利用之前检测的传输速率预测网络之后的传输速率。具体的,该侦测并预测主链路的网络状态的过程包括步骤a1-a5:
步骤a1:获取主链路在当前时刻之前的预设时间段内的传输速率,并对预设时间段内的传输速率进行离散采样,生成传输速率数组x,传输速率数组x中的元素xa表示在预设时间段内第a个采样点的传输速率,a=1,2,…,m,m为采样总数,且xm为当前时刻采样的传输速率。
本发明实施例中获取最新的预设时间段内的传输速率,即该预设时间段的结束点为当前时刻。在该预设时间段内采样m个传输速率,进而生成包含m个元素的传输速率数组x,且x中最后一个元素xm表示当前时刻采样的传输速率。
步骤a2:对传输速率数组x中的元素依次进行扩展,确定扩展后的传输速率数组x,且扩展后的传输速率数组x第m+i个元素为:
本发明实施例中根据当前采集的传输速率初步扩展传输速率数组x,即对传输速率进行初步预测。具体的,首先确定约束系数k,即首先确定根据之前多长时间段内的传输速率进行初步预测,或者确定需要根据之前的多少个元素xa来确定扩展后的元素。
同时,本发明实施例中“依次进行扩展”指的是先扩展得到xm+1,之后扩展得到xm+2,再扩展得到xm+3,……,直至扩展得到所有所需的元素。具体的,在确定约束系数k后,首先根据数组x中在前的k个元素(即xm-k+1、xm-k+2、……、xm)确定第一个扩展元素xm+1,即:
本发明实施例中,权重值
步骤a3:确定基准序列h,且基准序列h的第j个元素hj为:
本发明实施例中,在确定扩展后的传输速率数组x后,由于该扩展后的传输速率数组x中的扩展元素并不是真实的采样值,在计算过程中会引入误差;故本发明实施例中基于该基准序列h去除数组x中的误差。同时,基准序列h的元素个数k与之前计算扩展元素时所参考的元素个数(即k)相同,以保证前后处理的一致性。
步骤a4:根据基准序列h和扩展后的传输速率数组x进行预测处理,生成预测数组y,预测数组y的第i个元素yi为:
本发明实施例中,预测数组y中的元素实际上是对扩展元素xm+i的进一步处理。如上所述,由于计算xm+i容易引入误差,在利用基准序列h去除误差后,即可得到预测数组的元素yi,即扩展元素xm+i去除误差后即为yi。同时,由于基准序列h的长度为k,基准序列只能对前半部分的扩展元素进行处理,故生成的预测数组y的长度为
步骤a5:将预测数组y中所有元素的平均值作为主链路最终预测的传输速率。
本发明实施例中,以数组y中
在本实施方式中,所述加速器客户端还包括链路切换模块,所述链路切换模块用于在所述主链路出现数据掉包的情况下,启用第一辅助链路,并通过所述第一辅助链路向所述代理服务器补发出现数据掉包的数据包。
在本实施方式中,所述链路切换模块还用于在所述链路质量监控模块提供的预测结果表明所述主链路的网络质量低于指定阈值时,将所述第一辅助链路升级为主链路,并停用原先的主链路,同时将其它辅助链路保持待命模式。
在本实施方式中,所述代理服务器还包括数据还原模块,所述数据还原模块用于根据与所述加速器客户端之间约定的协议,将接收到的所述数据包的目标ip地址还原为所述游戏服务器的ip地址,并将所述数据包的数据载荷进行还原,并将还原后的数据包发送至所述游戏服务器。
具体地,在实际应用中,请结合图2,本申请的游戏加速过程可以包括以下多个步骤:
1)数据监测与接管
根据游戏进程id,实时监测并接管来从指定游戏发出的数据包;该数据包中可以包括数据载荷(data0),源ip地址(源ip0)以及目标ip地址(目标ip0),其中,目标ip0可以是游戏服务器的通信地址,源ip0可以是运行游戏客户端的终端设备的通信地址。
2)数据重组
将数据包装入新的目标ip(目标ip1),并发送至指定的代理服务器,其中,目标ip1便可以是代理服务器的通信地址,由加速器客户端接管的数据包中,数据载荷可以基于客户端之间约定的传输协议,由data0转换为data1。
3)辅助链路启动待命模式
唤醒多条辅助链路,开启辅助链路待命模式,随时准备数据的增发;
4)链路质量监控
结合网络延迟及数据掉包率等指标,对当前主要链路的网络状态进行实时侦测,并进行预测。
5)链路多发
根据第4)步的预测结果,在主链路偶现数据掉包的情况下,启用第一辅助链路,重复2)的数据重组过程,对数据进行补发;当4)的预测结果表示主链路网络质量大幅下降的情况下,将第一辅助链路升级为主链路对数据进行发送,同时其他辅助链路保持待命模式;
6)数据还原与发送
代理服务器收到数据包后,根据与加速器客户端约定的协议进行数据拆包,将目标ip1还原为目标ip0,并将源ip0修改为代理服务器的通信地址源ip1,同时,将数据载荷data1还原为data0,从而得到还原后的数据包,此后还原后的数据包可以到达游戏服务器。
由上可见,在本申请中,加速器客户端与代理服务器之间可以通过多条链路传输游戏客户端的数据包。具体地,加速器客户端可以将游戏客户端发出的数据包进行数据重组,然后发送至代理服务器。代理服务器默认通过主链路传输数据包,但是当主链路的网络状态不佳时,可以通过第一辅助链路补发数据包。如果主链路的网络质量下降比较严重时,可以将第一辅助链路升级为主链路,同时将其它辅助链路设置为待命模式,随时准备补发数据,从而可以在避免游戏掉线的情况下,动态切换数据的传输路径,从而提高游戏加速的效率,保障玩家能够顺畅地玩游戏。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。