一种分布式代理方法及系统与流程

文档序号:16149716发布日期:2018-12-05 17:19阅读:192来源:国知局
一种分布式代理方法及系统与流程

本发明涉及一种分布式代理方法及系统,属于计算机网络领域。

背景技术

随着互联网的发展,网络游戏成为人们生活中重要的娱乐方式,越来越多的游戏业务供应商加入网络平台,为用户提供各种类型的网络游戏,极大方便了用户的娱乐生活。网络延迟是影响网络游戏体验的关键因素,延迟低,玩家就能流畅的进行游戏,相反延迟高玩家游戏过程中会经常卡顿甚至掉线。国内玩家的网络状况十分复杂,不同地域,不同网络运营商的玩家连接同一个服务器延迟的差别通常非常大。为了应对这种情况,游戏运营商采用了很多方式来解决问题,常规手段是部署大量服务器和提供vpn-虚拟专用网(virtualprivatenetwork,vpn)被定义为通过一个公共网络(例如,通常是因特网)建立的一个临时、安全的连接,是一条穿过混乱的公共网络的安全、稳定的隧道。使用这条隧道可以对数据进行几倍加密达到安全使用互联网的目的。虚拟专用网是对企业内部网的扩展。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。虚拟专用网可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。vpn的核心就是利用公共网络建立虚拟私有网,vpn可以通过特殊的加密的通讯协议在连接在因特网上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。

但是上述手段存在以下问题:

(1)通过布置大量服务器来隔离不同网络状况的玩家。这种方法一定程度上可以降低部分玩家的网络延迟。但是一方面游戏运营商没有足够的资源来布置解决大部分玩家延迟的服务器。另一方面,太多的服务器将导致玩家分散,每个服务器的玩家人数太少,游戏的体验同样会非常差。

(2)提供商用vpn给玩家,让玩家通过vpn代理连接游戏服务器。这种方法同样存在vpn的节点过少,覆盖不了太多玩家的缺点。同时,vpn需要玩家手动操作,不仅不便捷,遇到对应的vpn服务器出问题不仅无法降低玩家延迟还可能会导致玩家无法进行游戏。



技术实现要素:

为解决上述问题,本发明的目的在于提供一种分布式代理方法及系统,客户端连接服务器,测试一定次数,得到多个延时值并取其平局值;将延时值的平均值高于预设值的客户端定义为高延迟客户端,将延时值的平均值低于预设值的客户端定义为代理节点;高延迟客户端通过代理节点管理服务器获取对应代理节点信息通过对应代理节点与服务器连接。

本发明解决其问题所采用的技术方案一方面是:一种分布式代理方法,其特征在于,该方法包括以下步骤:对客户端与服务器的延时进行多次测试,得到多个延时值并取其平局值,其中测试次数可自定义设置;将延时的平均值高于预设值的客户端定义为高延迟客户端,将延时的平均值低于预设值的客户端定义为代理节点,其中所述预设值可自定义设置;高延迟客户端通过代理节点管理服务器获取对应代理节点信息;高延迟客户端通过对应代理节点与服务器连接。

进一步的,所述将延时值的平均值低于预设值的客户端定义为代理节点具体包括:将延时值的平均值低于预设值的客户端主动连接上代理节点管理服务器;代理节点管理服务器获取客户端的信息,包括客户端所在地域、所处运营商、客户端ip地址以及平均延时值,并对信息进行分类统计;代理节点管理服务器将所述客户端设置为代理节点。

进一步的,所述对信息进行分类统计具体包括将相同地域和相同运营商的客户端保存在同一列表中。

进一步的,所述高延迟客户端通过代理节点管理服务器获取对应代理节点信息具体包括:高延迟客户端连接代理节点管理服务器,申请分配代理节点;代理节点管理服务器获取高延迟客户端的信息,根据信息分配对应代理节点,该未经客户端测试的节点为备选代理节点;高延迟客户端连接备选代理节点,测试一定次数,得到多个延时值并取其平局值,其中所述一定次数可自定义设置;向延时值的平均值低于预设值的对应备选代理节点发送代理请求,备选代理节点在收到请求后与服务器建立一个新连接并标记为代理连接,则对应备选代理节点即为代理节点,其中所述预设值可自定义设置。

进一步的,所述代理节点管理服务器获取高延迟客户端的信息,根据信息分配对应代理节点具体包括:代理节点管理服务器获取高延迟客户端的信息,包括客户端所在地域、所处运营商、客户端ip地址以及平均延时值;将高延迟客户端按照分配策略逐个分配一定数量的代理节点,其中分配策略包括在相同运营商列表中挑选一定数量的代理节点发送给高延迟客户端,其中一定数量可自定义设置。

进一步的,所述分配策略还可以是在相同运营商列表中,按照地域相近从高到底排名,将一定排名的代理节点发送给高延迟客户端,其中一定排名可自定义设置。

进一步的,所述将高延迟客户端按照分配策略逐个分配一定数量的代理节点还可以替换为将高延迟客户端的平均延时值由高到低进行排序,按排名顺序依次为高延迟客户端按照所述分配策略逐个分配一定数量的备选代理节点。

本发明解决其问题所采用的技术方案另一方面是:一种分布式代理系统,包括代理节点管理服务器、客户端、服务器以及代理节点,其特征在于:所述代理节点管理服务器用于将客户端设置为代理节点并保存代理节点的信息,同时帮助客户端分配代理节点并在二者之间建立数据连接,将对应未经客户端测试的节点为备选代理节点;所述客户端用于与服务器建立连接,进行数据交换,而且还用于向备选代理节点发送代理请求;所述服务器用于向连接本服务器的客户端提供网络服务;所述代理节点用于客户端与服务器连接之间的数据中转,即将客户端发送给服务器的数据转发给服务器以及将服务器发送给客户端的数据转发给客户端。

进一步的,所述客户端还包括延时值确定模块以及代理请求发送模块:所述延时值确定模块用于按照自定义设置的周期和次数,确定服务器与客户端之间以及客户端通过备选代理节点与服务器之间的传输延迟时间,即延时值,并执行平均处理,获得延时值的平均值并将服务器与客户端之间的延时值信息发送给代理节点管理服务器;所述代理请求发送模块用于根据客户端通过备选代理节点与服务器之间的延时值信息判断是否向备选代理节点发送代理请求。

进一步的,所述代理节点服务器还包括客户端信息获取单元、代理节点排序单元、代理节点设置单元以及分配单元:所述客户端信息获取单元用于客户端信息,包括客户端所在地域、所处运营商、客户端ip地址以及平均延时值;所述代理节点排序单元用于根据客户端信息,对各个客户端进行排序,获取客户端列表;所述代理节点设置单元用于将客户端设置为代理节点;所述分配单元用于根据客户端列表和分配策略,为各个客户端分配备选代理节点。

本发明的有益效果是:本发明采用的一种分布式代理方法及系统,利用大量客户端做为代理点,获取大量代理节点,节省了大量服务器投入的成本而且不会分散用户,解决了部分用户连接服务器延时值过高的问题,保证用户享受网络服务的体验,大大节省了人力和物力的开销。

附图说明

图1所示为分布式代理方法流程示意图;

图2所示为分布式代理方法实施例一的示意图;

图3所示为分布式代理方法实施例二的示意图

图4所示为分布式代理系统结构示意图;

图5所示为分布式代理系统实施例一的示意图。

具体实施方式

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。

需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。

参照图1所示为分布式代理方法流程示意图,该方法是图4所示系统的工作方法,如图1所示,该方法包括以下步骤:

客户端连接服务器,测试一定次数,得到多个延时值并取其平局值,其中所述一定次数可自定义设置;

以游戏服务举例来说,用户在游戏终端上运行网络游戏,与游戏服务器执行连接,向服务器发送业务请求,例如,在游戏商场中购买某项道具,客户端发送请求服务器接收处理后,再向客户端反馈一条消息,这段过程中耗费的时间即为延时值,理论上来说延时值时间越短,玩家游戏感受到的卡顿感就越不明显,游戏体验也就越好,受多种因素影响,如服务器玩家人数,当前客户端所处运营商提供的网络质量等,网络状况是波动不稳定的,所以当前的延时值并不稳定,需要多次测试才能得到与实际体验相近的值,真实反应该客户端的与服务器连接的网络状况,根据不同的情况,人为的设定测试延时值的次数,满足不同用户的需求。

将延时值的平均值高于预设值的客户端定义为高延迟客户端,将延时值的平均值低于预设值的客户端定义为代理节点,其中所述预设值可自定义设置;

当前所有的客户端在与服务器进行测试后,将得到的延时值发送给代理节点管理服务器,代理节点管理服务器处理所有的信息,根据预设的值,判断哪些客户端需要通过代理节点连接服务器实现加速降低延时值,哪些客户端连接服务器的延时值较低,可以作为代理节点,同样,根据不同用户的需求,预设值也可以自行调整,同样以游戏服务举例,枪战类、竞技类游戏对延时值的要求较高,这时可以将预设值设置为低于30ms或者更低,而其他如网络角色扮演类游戏等对延时值要求不高的,可以将延时值设置为80ms或者更高。

高延迟客户端通过代理节点管理服务器获取对应代理节点信息;

延迟高的客户端自动连接代理节点服务器,代理节点管理服务器将合适的代理节点信息发送给延迟高的客户端,并帮助其在代理节点之间建立p2p连接。

高延迟客户端通过对应代理节点与服务器连接。

高延迟客户端通过代理节点与服务器进行数据连接,按照vpn的原理,实现加速功能。

参照图2所示为分布式代理方法实施例一的示意图,具体为代理节点管理服务器获取低延迟客户端信息并设置为代理点的方法:

客户端才完成与服务器测试后,主动连接代理节点管理服务器,将本客户端的信息发送给代理节点管理服务器,信息包括客户端所在地域、所处运营商、客户端ip地址以及平均延时值,所在地域用于和所处运营商等信息用于后期分配代理节点时,在保证延时值满足预设值的条件下,优先分配相同地域相同运营商的客户端作为代理节点或待加速的客户端,保证降低网络延迟,优化网络服务体验的效果。

参照图3所示为分布式代理方法实施例二的示意图,具体为客户端连接代理节点的优化方法:

高延迟客户端连接代理节点管理服务器,申请分配代理节点;

代理节点管理服务器获取高延迟客户端的信息,根据信息分配对应代理节点,该未经客户端测试的节点为备选代理节点;

距离说明如图2的实施例所示,客户端才完成与服务器测试后,主动连接代理节点管理服务器,将本客户端的信息发送给代理节点管理服务器,信息包括客户端所在地域、所处运营商、客户端ip地址以及平均延时值,所在地域用于和所处运营商等信息用于后期分配代理节点时,在保证延时值满足预设值的条件下,优先分配相同地域相同运营商的客户端作为代理节点或待加速的客户端,保证降低网络延迟,优化网络服务体验的效果。

高延迟客户端连接备选代理节点,测试一定次数,得到多个延时值并取其平局值,其中所述一定次数可自定义设置;

因为各个代理节点的网络状况不同,而且高延迟客户端连接到代理节点也会存在延迟,因此,此时代理节点管理服务器分配的代理节点并不是最终高延迟需要使用的代理节点,所以称之为备选代理节点,为了保证加速效果,高延迟客户端在连接上代理节点后,还需要进行与服务器的连接测试,由于网络状况是波动不稳定的,所以当前的延时值并不稳定,需要多次测试才能得到与实际体验相近的值,真实反应该客户端的与服务器连接的网络状况,根据不同的情况,人为的设定测试延时值的次数,满足不同用户的需求。

向延时值的平均值低于预设值的对应备选代理节点发送代理请求,备选代理节点在收到请求后与游戏服务器建立一个新连接并标记为代理连接,则该备选代理节点即为代理节点,其中所述预设值可自定义设置。

根据不同用户的需求,预设值也可以自行调整,同样以游戏服务举例,枪战类、竞技类游戏对延时值的要求较高,这时可以将预设值设置为低于30ms或者更低,而其他如网络角色扮演类游戏等对延时值要求不高的,可以将延时值设置为80ms或者更高。最终判断该备选代理节点满足预设值后,即可与服务器建立一个新连接并标记为代理连接,则该备选代理节点即为代理节点

参考图4所示为分布式代理系统结构示意图,该系统按照图1的方法运行,并且还可以按照图2至图3所示的方法运行:

包括代理节点管理服务器、客户端、服务器以及代理节点,其特征在于:

所述代理节点管理服务器用于将客户端设置为代理节点并保存代理节点的信息,同时帮助客户端分配代理节点并在二者之间建立数据连接,该未经客户端测试的节点为备选代理节点;

所述客户端用于与服务器建立连接,进行数据交换,而且还用于向备选代理节点发送代理请求;

所述服务器用于向连接本服务器的客户端提供网络服务;

所述代理节点用于客户端与服务器连接之间的数据中转,即将客户端发送给服务器的数据转发给服务器以及将服务器发送给客户端的数据转发给客户端。

其中,客户端还包括延时值确定模块以及代理请求发送模块:

所述延时值确定模块用于按照自定义设置的周期和次数,确定服务器与客户端之间以及客户端通过备选代理节点与服务器之间的传输延迟时间,即延时值,并执行平均处理,获得延时值的平均值并将服务器与客户端之间的延时值信息发送给代理节点管理服务器;

所述代理请求发送模块用于根据客户端通过备选代理节点与服务器之间的延时值信息判断是否向备选代理节点发送代理请求。

参考图5所示为分布式代理系统实施例一的示意图,优选地,代理节点还可以包括以下模块并且还可以按照图2至图3所示的方法运行:

代理节点还包括客户端信息获取单元、代理节点排序单元、代理节点设置单元以及分配单元:

所述客户端信息获取单元用于客户端信息,包括客户端所在地域、所处运营商、客户端ip地址以及平均延时值;

所述代理节点排序单元用于根据客户端信息,对各个客户端进行排序,获取客户端列表;

所述代理节点设置单元用于将客户端设置为代理节点;

所述分配单元用于根据客户端列表和分配策略,为各个客户端分配备选代理节点。

接下来,通过一个实际应用场景来介绍本申请方案。

以一套网络游戏服务器以及客户端举例,系统中参与的模块有,游戏服务器,玩家代理节点管理服务器,玩家代理节点,高延迟玩家.各模块功能如下:

a)游戏服务器:游戏服务器,玩家通过连接游戏服务器进行游戏。

b)玩家代理节点管理服务器:代理节点管理服务器,保存当前可用代理节点的信息,帮助高延迟玩家和玩家代理节点之间建立p2p连接。

c)玩家代理节点:代理节点,将高延迟玩家的游戏数据转发给游戏服务器,同时将游戏服务器发给高延迟玩家的游戏数据转发给高延迟玩家。

d)高延迟玩家:高延迟玩家,从玩家代理节点管理服务器中获取有效的玩家代理节点,然后通过玩家代理节点连接游戏服务器。

1,客户端连接上游戏服务器,取得10次延时值得到的平均值。平均值低于100的客户端即为本方案提出的系统中的玩家代理节点模块,平均值高于100的即为本方案提出的系统中的高延迟玩家模块。

2,玩家代理节点主动连接玩家代理节点管理服务器。玩家代理节点管理服务器获取玩家代理节点所在的地域,运营商,和ip地址,将这些数据保存。玩家代理节点管理服务器将相同地域和相同运营商的玩家代理节点保存在同一列表中。

3,高延迟玩家主动连接玩家代理节点管理服务器,申请玩家代理节点。玩家代理节点管理服务器从地域相近和运营商相同的玩家代理节点列表中随机挑选多个玩家代理节点发送给高延迟玩家。

4,高延迟玩家通过玩家代理节点管理服务器的帮助依次与获取的玩家代理节点建立p2p连接,取得10次延时值的平均值。得到延时值平均值低于100的玩家代理节点之后,高延迟玩家发送代理请求给玩家代理节点,玩家代理节点t收到请求后与游戏服务器建立一个新连接并标记为代理连接。

5,之后,高延迟玩家所有的游戏数据先发给玩家代理节点。再由玩家代理节点通过代理连接发给游戏服务器。游戏服务器发给高延迟玩家的数据,先发给玩家代理节点再由玩家代理节点发给高延迟玩家。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

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