路由方法、装置及系统转让专利

申请号 : CN201710212690.0

文献号 : CN107026793B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢代斌陈寿功

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明公开了一种路由方法、装置及系统。该方法包括:接收客户端发送的连接请求;响应于连接请求获取第一类链路的第一链路传输参数,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;将第一链路传输参数发送给客户端,以指示客户端按照第一链路传输参数确定目标路径进行路由,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。本发明解决了相关技术中的路由方法由于客户端只考虑最近的接入点的网络质量,并未考虑后端链路的网络质量,导致所选择的路由路径不是最优路径的技术问题。

权利要求 :

1.一种路由方法,其特征在于,包括:

接收客户端发送的连接请求,其中,所述连接请求用于请求与服务器通信;

响应于所述连接请求获取第一类链路的第一链路传输参数,其中,所述第一类链路为网络中的任一中间节点至所述中间节点的下一跳节点之间的链路,所述中间节点为所述网络中除源节点和目标节点之外的节点,所述第一链路传输参数用于指示所述第一类链路的数据传输能力;为每个中间节点设定带宽上限,并定时采集中间节点的网卡实时带宽,如果中间节点的实时带宽超过带宽上限预定阈值,则不将该中间节点下发给客户端;或者,为每个中间节点设定容量上限,并实时监控中间节点的同时在线连接数,如果中间节点的同时在线连接数超过容量上限预定阈值,则不将该中间节点下发给客户端;

将所述第一链路传输参数发送给所述客户端,以指示所述客户端按照所述第一链路传输参数确定目标路径进行路由,其中,所述目标路径为从所述源节点到所述目标节点的链路,所述目标路径包括所述第一类链路。

2.根据权利要求1所述的方法,其特征在于,所述响应于所述连接请求获取第一类链路的第一链路传输参数包括:接收所述中间节点上报的至少一个属性参数,其中,所述属性参数用于指示所述第一类链路的属性;

按照预定策略为所述至少一个属性参数中的每个所述属性参数分配权重;

根据为每个所述属性参数分配的权重获取所述第一类链路的所述第一链路传输参数。

3.根据权利要求2所述的方法,其特征在于,所述属性参数包括以下至少之一:网络延时、丢包率、网络延时波动、带宽上限、中间节点容量。

4.根据权利要求1所述的方法,其特征在于,所述响应于所述连接请求获取第一类链路的第一链路传输参数包括:获取所述中间节点所上报的属性参数,其中,所述属性参数包括网络延时、丢包率以及网络延时波动;

按照以下公式获取所述第一类链路的所述第一链路传输参数:

Score=RTT×(1+Lost×k)+Amp

其中,Score为所述第一链路传输参数,RTT为所述网络延时,Lost为所述丢包率,k为所述丢包率的权重,Amp为所述网络延时波动。

5.一种路由方法,其特征在于,包括:

向服务器发送连接请求,其中,所述连接请求用于请求与所述服务器进行通信;所述服务器为每个中间节点设定带宽上限,并定时采集中间节点的网卡实时带宽,如果中间节点的实时带宽超过带宽上限预定阈值,则不下发该中间节点;或者,所述服务器为每个中间节点设定容量上限,并实时监控中间节点的同时在线连接数,如果中间节点的同时在线连接数超过容量上限预定阈值,则不下发该中间节点;

接收所述服务器响应于所述连接请求所发送的第一类链路的第一链路传输参数,其中,所述第一类链路为网络中的任一中间节点至所述中间节点的下一跳节点之间的链路,所述中间节点为所述网络中除源节点和目标节点之外的节点,所述第一链路传输参数用于指示所述第一类链路的数据传输能力;

按照所述第一链路传输参数确定目标路径进行路由,其中,所述目标路径为从所述源节点到所述目标节点的链路,所述目标路径包括所述第一类链路。

6.根据权利要求5所述的方法,其特征在于,所述按照所述第一链路传输参数确定目标路径进行路由包括:检测第二类链路的第二链路传输参数,其中,所述第二类链路为所述源节点至所述源节点的下一跳节点之间的链路,所述第二链路传输参数用于指示所述第二类链路的数据传输能力,所述中间节点包括所述源节点的下一跳节点;

按照所述第二链路传输参数以及所述第一链路传输参数确定所述目标路径,其中,所述目标路径包括所述第一类链路和所述第二类链路。

7.根据权利要求6所述的方法,其特征在于,所述按照所述第二链路传输参数以及所述第一链路传输参数确定所述目标路径包括:获取从所述源节点到达所述目标节点的多条路径;

按照所述第二链路传输参数以及所述第一链路传输参数分别获取所述多条路径中的每条路径的链路传输参数总和;

将所述链路传输参数总和最小的路径确定为所述目标路径,其中,链路的数据传输能力随着所述链路传输参数的增加而降低。

8.一种路由装置,其特征在于,包括:

接收单元,用于接收客户端发送的连接请求,其中,所述连接请求用于请求与服务器通信;

响应单元,用于响应于所述连接请求获取第一类链路的第一链路传输参数,其中,所述第一类链路为网络中的任一中间节点至所述中间节点的下一跳节点之间的链路,所述中间节点为所述网络中除源节点和目标节点之外的节点,所述第一链路传输参数用于指示所述第一类链路的数据传输能力;为每个中间节点设定带宽上限,并定时采集中间节点的网卡实时带宽,如果中间节点的实时带宽超过带宽上限预定阈值,则不将该中间节点下发给客户端;或者,为每个中间节点设定容量上限,并实时监控中间节点的同时在线连接数,如果中间节点的同时在线连接数超过容量上限预定阈值,则不将该中间节点下发给客户端;

发送单元,用于将所述第一链路传输参数发送给所述客户端,以指示所述客户端按照所述第一链路传输参数确定目标路径进行路由,其中,所述目标路径为从所述源节点到所述目标节点的链路,所述目标路径包括所述第一类链路。

9.根据权利要求8所述的装置,其特征在于,所述响应单元包括:

接收模块,用于接收所述中间节点上报的至少一个属性参数,其中,所述属性参数用于指示所述第一类链路的属性;

分配模块,用于按照预定策略为所述至少一个属性参数中的每个所述属性参数分配权重;

第一获取模块,用于根据为每个所述属性参数分配的权重获取所述第一类链路的所述第一链路传输参数。

10.根据权利要求9所述的装置,其特征在于,所述属性参数包括以下至少之一:网络延时、丢包率、网络延时波动、带宽上限、中间节点容量。

11.根据权利要求8所述的装置,其特征在于,所述响应单元包括:

第二获取模块,用于获取所述中间节点所上报的属性参数,其中,所述属性参数包括网络延时、丢包率以及网络延时波动;

第三获取模块,用于按照以下公式获取所述第一类链路的所述第一链路传输参数:Score=RTT×(1+Lost×k)+Amp

其中,Score为所述第一链路传输参数,RTT为所述网络延时,Lost为所述丢包率,k为所述丢包率的权重,Amp为所述网络延时波动。

12.一种路由装置,其特征在于,包括:

发送单元,用于向服务器发送连接请求,其中,所述连接请求用于请求与所述服务器进行通信;所述服务器为每个中间节点设定带宽上限,并定时采集中间节点的网卡实时带宽,如果中间节点的实时带宽超过带宽上限预定阈值,则不下发该中间节点;或者,所述服务器为每个中间节点设定容量上限,并实时监控中间节点的同时在线连接数,如果中间节点的同时在线连接数超过容量上限预定阈值,则不下发该中间节点;

接收单元,用于接收所述服务器响应于所述连接请求所发送的第一类链路的第一链路传输参数,其中,所述第一类链路为网络中的任一中间节点至所述中间节点的下一跳节点之间的链路,所述中间节点为所述网络中除源节点和目标节点之外的节点,所述第一链路传输参数用于指示所述第一类链路的数据传输能力;

确定单元,用于按照所述第一链路传输参数确定目标路径进行路由,其中,所述目标路径为从所述源节点到所述目标节点的链路,所述目标路径包括所述第一类链路。

13.根据权利要求12所述的装置,其特征在于,所述确定单元包括:

检测模块,用于检测第二类链路的第二链路传输参数,其中,所述第二类链路为所述源节点至所述源节点的下一跳节点之间的链路,所述第二链路传输参数用于指示所述第二类链路的数据传输能力,所述中间节点包括所述源节点的下一跳节点;

确定模块,用于按照所述第二链路传输参数以及所述第一链路传输参数确定所述目标路径,其中,所述目标路径包括所述第一类链路和所述第二类链路。

14.根据权利要求13所述的装置,其特征在于,所述确定模块包括:

第一获取子模块,用于获取从所述源节点到达所述目标节点的多条路径;

第二获取子模块,用于按照所述第二链路传输参数以及所述第一链路传输参数分别获取所述多条路径中的每条路径的链路传输参数总和;

确定子模块,用于将所述链路传输参数总和最小的路径确定为所述目标路径,其中,链路的数据传输能力随着所述链路传输参数的增加而降低。

15.一种路由系统,其特征在于,包括:

客户端以及服务器,其中:

所述客户端向所述服务器发送连接请求,其中,所述连接请求用于请求与所述服务器进行通信;所述服务器响应于所述连接请求获取第一类链路的第一链路传输参数,其中,所述第一类链路为网络中的任一中间节点至所述中间节点的下一跳节点之间的链路,所述中间节点为所述网络中除源节点和目标节点之外的节点,所述第一链路传输参数用于指示所述第一类链路的数据传输能力;所述服务器将所述第一链路传输参数发送给所述客户端;

所述客户端按照所述第一链路传输参数确定目标路径进行路由,其中,所述目标路径为从所述源节点到所述目标节点的链路,所述目标路径包括所述第一类链路;

所述服务器为每个中间节点设定带宽上限,并定时采集中间节点的网卡实时带宽,如果中间节点的实时带宽超过带宽上限预定阈值,则不将该中间节点下发给客户端;或者,所述服务器为每个中间节点设定容量上限,并实时监控中间节点的同时在线连接数,如果中间节点的同时在线连接数超过容量上限预定阈值,则不将该中间节点下发给客户端。

说明书 :

路由方法、装置及系统

技术领域

[0001] 本发明涉及计算机领域,具体而言,涉及一种路由方法、装置及系统。

背景技术

[0002] 在基于透明代理的网络加速系统中,影响加速效果最重要的因素是加速节点/链路的选择,目前的通用做法采用基于就近接入的方案,由客户端对每个接入点进行测速,选择速度最快且最稳定的节点进行加速。
[0003] 基于接入点测速的方案,只检测客户端到接入点的网络质量,并不关心后端链路的情况。例如:图1是根据现有技术的一种基于接入点测速的方案的示意图,如图1所示,在该方案中包括客户端节点,目标节点,以及处于客户端节点与目标节点之间的A节点、B节点、C节点以及D节点,其中,A节点和B节点为接入点,C节点和D节点为后端节点,在该方案中包括两条路径,其中,第一条路径按照连接顺序依次包括客户端节点、A节点、C节点以及目标节点;第二条路径按照连接顺序依次包括客户端节点、B节点、D节点以及目标节点。在第一条路径中,客户端节点与A节点之间的网络延时为5ms,A节点与C节点之间的网络延时为25ms,C节点与目标节点之间的网络时延为10ms;在第二条路径中,客户端节点与B节点之间的网络延时为15ms,A节点与C节点之间的网络延时为10ms,C节点与目标节点之间的网络时延为5ms。
[0004] 按照传统技术方案,只会按照客户端节点与接入点之间的网络延时情况选择相应的链路。因此,由于客户端节点至A节点的网络延时为5ms,客户端节点至B节点的网络延时为15ms,则客户端到A节点传输效果最优,选择A接入点作为透明代理接入服务器,则路径总延时为5ms+25ms+10ms=40ms。
[0005] 但是,虽然在客户端到节点A之间的传输效果最优,但对于整条路径而言并非最优,根据图1所示的方案,第一条路径的总延时为5ms+25ms+10ms=40ms;而第二条路径的总延时为15ms+10ms+5ms=30ms,由此可见,第一条路径并非是最优结果。
[0006] 针对上述相关技术中的路由方法由于客户端只考虑最近的接入点的网络质量,并未考虑后端链路的网络质量,导致所选择的路由路径不是最优路径的技术问题,目前尚未提出有效的解决方案。

发明内容

[0007] 本发明实施例提供了一种路由方法、装置及系统,以至少解决相关技术中的路由方法由于客户端只考虑最近的接入点的网络质量,并未考虑后端链路的网络质量,导致所选择的路由路径不是最优路径的技术问题。
[0008] 根据本发明实施例的一个方面,提供了一种路由方法,包括:接收客户端发送的连接请求,其中,连接请求用于请求与服务器通信;响应于连接请求获取第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;将第一链路传输参数发送给客户端,以指示客户端按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。
[0009] 根据本发明实施例的另一方面,还提供了一种路由方法,包括:向服务器发送连接请求,其中,连接请求用于请求与服务器进行通信;接收服务器响应于连接请求所发送的第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。
[0010] 根据本发明实施例的另一方面,还提供了一种路由装置,包括:接收单元,用于接收客户端发送的连接请求,其中,连接请求用于请求与服务器通信;响应单元,用于响应于连接请求获取第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;发送单元,用于将第一链路传输参数发送给客户端,以指示客户端按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。
[0011] 根据本发明实施例的另一方面,还提供了一种路由装置,包括:发送单元,用于向服务器发送连接请求,其中,连接请求用于请求与服务器进行通信;接收单元,用于接收服务器响应于连接请求所发送的第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;确定单元,用于按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。
[0012] 根据本发明实施例的另一方面,还提供了一种路由系统,包括:客户端以及服务器,其中:客户端向服务器发送连接请求,其中,连接请求用于请求与服务器进行通信;服务器响应于连接请求获取第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;服务器将第一链路传输参数发送给客户端;客户端按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。
[0013] 在本发明实施例中,服务器在接收到客户端发送的连接请求之后,对其进行响应获取网络中任一中间节点所上报的第一类链路的第一链路传输参数,并将第一链路传输参数发送给客户端,以使得客户端可以按照第一链路传输参数确定目标路径进行路由,达到了保证客户端所确定的路由路径为最优路径的目的,进而解决了相关技术中的路由方法由于客户端只考虑最近的接入点的网络质量,并未考虑后端链路的网络质量,导致所选择的路由路径不是最优路径的技术问题,从而实现了提高所确定的最优路由路径的准确度,进而优化路由路径的数据传输能力的技术效果。

附图说明

[0014] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0015] 图1是根据现有技术的一种基于接入点测速的方案的示意图;
[0016] 图2是根据本发明实施例的一种可选的加速集群中构建云端测速体系概念的示意图;
[0017] 图3是根据本发明实施例的一种可选的客户端进行最优决策的流程图;
[0018] 图4是根据本发明实施例的一种可选的云端测速方法的示意图;
[0019] 图5是根据本发明实施例的路由方法的硬件环境的示意图;
[0020] 图6是根据本发明实施例的一种可选的路由方法的流程图一;
[0021] 图7是根据本发明实施例的一种可选的路由方法的流程图二;
[0022] 图8是根据本发明实施例的一种可选的路由装置的示意图一;
[0023] 图9是根据本发明实施例的一种可选的路由装置的示意图二;
[0024] 图10是根据本发明实施例的一种终端的结构框图。

具体实施方式

[0025] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0026] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0027] 首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
[0028] 云端测速:指由云端后台服务器进行不同路径的网速检测(也即网络质量检测),并将测速结果下发到客户端,让客户端进行决策的机制。
[0029] 基于透明代理的网络加速系统:互联网中不同运营商之间互联质量差异较大,基于透明代理的加速系统采用基于应用层的多层代理方法,可有效解决因互联质量较差的问题,使客户端和服务器之间的通信更加稳定可靠。
[0030] 实施例1
[0031] 根据本发明实施例,提供了一种路由系统的系统实施例。该路由系统可以应用于具有多个节点的网络中,其中,节点可以为节点服务器。网络中的多个节点可以包括源节点,目的节点以及中间节点,其中,中间节点可以为网络中的多个节点中除源节点和目标节点之外的节点,中间节点的个数可以为多个。该路由系统可以包括客户端和服务器,其中,客户端所在的节点可以为源节点。该路由系统可以在网络中实现最佳路由路径的选择,具体实现过程可以描述为以下部分:
[0032] 第一,客户端向服务器发送连接请求,其中,连接请求用于请求与服务器进行通信。
[0033] 需要说明的是,本发明实施例中的客户端所在的节点可以是源节点,服务器可以是云端的调度服务器。客户端在启动之后,可以向服务器发送连接请求,该连接请求可以用于请求与服务器建立通信连接,以使得客户端与服务器之间可以进行数据交互。服务器在接收到客户端发送的连接请求之后,可以向客户端发送确认消息,该确认消息用于通知客户端与服务器之间成功建立通信连接。客户端与服务器之间的通信连接建立成功之后,利用该通信连接关系客户端和服务器之间可以通过数据通信。
[0034] 第二,服务器响应于连接请求获取第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力。
[0035] 需要说明的是,中间节点可以为网络中除源节点和目标节点之外的节点,中间节点的个数可以为多个。网络中的任一中间节点与其下一跳节点之间的链路可以为第一类链路,其中,第一类链路的个数可以为多条。第一类链路当前的网络质量可以由第一类链路的数据传输能力体现,其中,第一类链路的数据传输能力可以包括但并不限于数据传输容量和数据传输速度等。第一类链路的数据传输能力可以通过第一链路传输参数表示,此处需要说明的是,第一链路传输参数可以受到以下几个因素的影响:网络延时、丢包率、网络延时波动、带宽上限以及节点容量等,基于上述因素第一链路传输参数可以反映第一类链路的综合数据传输能力。
[0036] 服务器在接收到客户端发送的连接请求之后,根据对该连接请求进行响应,具体响应过程可以包括但并不限于:获取第一类链路的第一链路传输参数。
[0037] 作为一种可选的实施例,服务器响应于连接请求获取第一类链路的第一链路传输参数可以包括:接收中间节点上报的至少一个属性参数,其中,属性参数可以用于指示第一类链路的属性;按照预定策略为至少一个属性参数中的每个属性参数分配权重;根据为每个属性参数分配的权重获取第一类链路的第一链路传输参数。
[0038] 需要说明的是,网络中的中间节点可以实时检测该中间节点的属性以及该中间节点与其下一跳节点之间的链路的属性,其中,中间节点的属性可以包括但并不限于中间节点容量等,中间节点与其下一跳节点之间的链路的属性可以包括但并不限于网络延时、丢包率、网络延时波动以及带宽上限等。也就是说,网络中的任一中间节点所检测到的属性参数可以包括但并不限于:网络延时、丢包率、网络延时波动、带宽上限、中间节点容量。需要说明的是,网络中的任一中间节点所检测到的属性参数还可以包括其他参数,此处不再一一举例说明。在中间节点检测到至少一个属性参数之后,可以其上报给服务器,服务器可以接收网络中的任一中间节点所上报的至少一个属性参数,并可以按照预定策略为每个属性参数分配权重。此处需要说明的是,本发明实施例对预定策略不做具体限定,预定策略可以根据实际业务场景或者实际业务需求确定,按照预定策略为每个属性参数分配的权重目的是为了综合所有的属性参数来确定第一类链路的第一链路传输参数,以使得所确定的第一链路参数更加符合实际需求。
[0039] 本发明实施例通过为每个第一类链路的属性参数按照预定策略分配权重,再根据每个属性参数分配的权重获取每个第一类链路的第一链路传输参数,可以准确得出用于指示第一类链路的数据传输能力,为准确选择最优的路由路径提供可靠的数据依据。另外本发明实施例根据多个维度的属性参数确定第一类链路的第一链路传输参数,使确定的第一链路传输参数可以更加全面地反应出第一类链路的数据传输能力。
[0040] 作为一个可选的实施例,在中间节点上报给服务器的属性参数包括网络延时、丢包率以及网络延时波动的情况下,服务器响应于连接请求获取第一类链路的第一链路传输参数可以包括:获取中间节点所上报的属性参数,其中,属性参数包括网络延时、丢包率以及网络延时波动;按照以下公式获取第一类链路的第一链路传输参数:Score=RTT×(1+Lost×k)+Amp,其中,Score为第一链路传输参数,RTT为网络延时,Lost为丢包率,k为丢包率的权重,Amp为网络延时波动。
[0041] 需要说明的是,该可选实施例中的第一链路传输参数越大,则说明该第一类链路的数据传输能力越差。例如,假设k=10,为丢包率影响权重的经验系数,RTT为50ms,Lost为5%,Amp为20ms,则Score=50*(1+5%*10)+20=95。
[0042] 还需要说明的是,中间节点上报给服务器的属性参数还可以存在其他组合情况,例如带宽上限、节点容量。可选地,该实施例可以为每个节点设定带宽上限并定时采样网卡实时带宽,若实时带宽超过带宽上限预定阈值(例如90%),则服务器将不会把此节点下发给客户端,客户端就不会再连接此节点。或者,该实施例可以为每个节点设定容量上限,单位是连接数,并实时监控同时在线连接数,若实时连接数超过容量上限预定阈值(90%),则调度服务器将不会把此节点下发给客户端,客户端就不会再连接此节点。
[0043] 采用本发明上述实施例,对于不同的业务场景选择制定相应的策略,来获取第一类链路的第一链路传输参数,可以达到提高所获取到的第一链路传输参数的准确度的效果。
[0044] 第三,服务器将第一链路传输参数发送给客户端。
[0045] 具体地,服务器在根据中间节点所上报的属性参数获取到第一类链路的第一链路传输参数之后,可以将该第一链路传输参数发送给客户端,以指示客户端根据该第一链路传输参数选择路由路径。
[0046] 作为一种可选的实施例,服务器在获取到每一个第一类链路的第一链路传输参数之后,可以对其进行分析对比,并按照第一链路传输参数的大小顺序进行排序,使得客户端可以按照该排序快速准确地确定哪个第一类链路的数据传输能力最好,其中,第一类链路的数据传输能力可以随着第一链路传输参数的增加而降低。
[0047] 第四,客户端按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径中可以包括第一类链路。
[0048] 需要说明的是,客户端在接收到服务器发送的第一类链路传输参数之后,可以根据第一类链路传输参数确定路由路径,具体地,基于第一链路传输参数越小,第一类链路的数据传输能力越强,客户端可以按照第一链路传输参数的大小从多个可选的第一类链路中优先选择出第一链路传输最小的第一类链路,并将该选择出来的第一类链路作为目标路径的部分链路,其中,目标路径可以为从源节点到目标节点的链路。本发明实施例通过将第一链路传输参数越小的第一类链路作为目标路径的部分链路进行路由,可以实现提高目标路径的数据传输能力的效果。
[0049] 还需要说明的是,由于目标路径是从源节点到目标节点的链路,而第一类链路为中间节点与其下一跳节点之间的链路,第一类链路只是目标路径的部分链路,因此,目标路径的确定过程还可以包括确定从源节点到源节点的下一跳节点之间的链路,也即确定第二类链路,其中,第二类链路为源节点至源节点的下一跳节点之间的链路,中间节点可以包括源节点的下一跳节点。可选地,该实施例可以基于第二链路传输参数选择出数据传输能力最强的第二类链路,具体可以选择第二链路传输参数最小的。此处需要说明的是,第二类链路的第二链路传输参数可以由客户端启动后检测得到。
[0050] 考虑到单独确定数据传输能力最强的第一类链路以及数据传输能力最强的第二类链路并不一定能够组成一条由源节点到达目标节点的目标路径,为了实现准确确定目标路径,本发明提供了以下可选实施例来确定目标路径,具体地可以包括:
[0051] 客户端检测第二类链路的第二链路传输参数,其中,第二链路传输参数用于指示第二类链路的数据传输能力;客户端按照第二链路传输参数以及第一链路传输参数确定目标路径,其中,目标路径包括第一类链路和第二类链路。
[0052] 需要说明的是,客户端在获取到服务器发送的第一类链路的第一链路传输参数,并检测到第二类链路的第二链路传输参数之后,可以根据用于表示第一类链路的数据传输能力的第一链路传输参数,以及用于表示第二类链路的数据传输能力的第二链路传输参数共同确定目标路径。
[0053] 作为一个可选的实施例,按照第二链路传输参数以及第一链路传输参数确定目标路径可以包括:获取从源节点到达目标节点的多条路径;按照第二链路传输参数以及第一链路传输参数分别获取多条路径中的每条路径的链路传输参数总和;将链路传输参数总和最小的路径确定为目标路径,其中,链路的数据传输能力随着链路传输参数的增加而降低。
[0054] 需要说明的是,源节点到达目标节点之间包括多个中间节点,从源节点经中间节点至目标节点的路径可以经过不同的中间节点,所以可以存在多条从源节点至目标节点的多条路径,其中,每条路径中包括源节点至源节点的下一跳节点之间的第二类链路,以及中间节点至中间节点的下一跳节点之间的第一类链路。该实施例可以按照预先获取到的第一链路传输参数以及第二链路传输参数分别获取每条路径的链路传输参数总和,然后基于链路的数据传输能力随着链路传输参数的增加而降低这一原则将链路传输参数总和最小的那条路径确定为最优的目标路径。
[0055] 采用本发明上述实施例,根据第一链路传输参数和第二链路传输参数确定的目标路径更加准确,进而可以达到提高按照目标路径进行路由时的网络质量的效果。
[0056] 本发明上述实施例,通过建立客户端与服务器之间的了通信,在服务器接收客户端发送的连接请求后,获取用于指示所述第一类链路的数据传输能力的第一链路传输参数,再将该第一链路传输参数发送至所述客户端,然后由客户端按照第一链路传输参数确定目标路径进行路由,解决了相关技术中的路由方法由于客户端只考虑最近的接入点的网络质量,并未考虑后端链路的网络质量,导致所选择的路由路径不是最优路径的技术问题,进而达到准确选择最优的路由路径的技术效果。
[0057] 根据本发明还提供了一种优选实施例,该优选实施例提供了一种基于云端测速的多层代理路由选择方法,该方法可以应用于本发明上述实施例中的路由系统中。需要说明的是,该优选实施例中的调度服务器即为本发明实施例的路由系统中的服务器。该方法的具体方案可以描述为:
[0058] 图2是根据本发明实施例的一种可选的加速集群中构建云端测速体系概念的示意图,如图2所示,为引入后端链路测速结果,建立加速集群中构建云端测速体系,后端节点相互进行测速,并将测速结果实时汇总到调度服务器,由调度服务器整合这些数据并下发给客户端。客户端在决策过程中,将客户端到接入点的测速结果与远程下发的云端测速结果结合起来,进行综合决策,最终选择一条最优的路径。
[0059] 图3是根据本发明实施例的一种可选的客户端进行最优决策的流程图,如图所示,该方法包括:
[0060] 步骤S302:客户端启动后,对所有接入点测速;
[0061] 步骤S304:同时连接调度服务器,获取相关的所有后端链路网络质量集合T2;
[0062] 步骤S306:接入点测速完毕后,得到测速结果集合T1;
[0063] 步骤S308:客户端根据T1和T2,按照最优路径算法,计算得到最优路径;
[0064] 步骤S310:连接最优路径中的接入点进行透明代理。
[0065] 图4是根据本发明实施例的一种可选的云端测速方法的示意图,如图4所示,所有节点(包括接入点)都向路径后方的节点测速,并集中上报到调度服务器,图4中A上报T(ac),C上报T(ce),B上报T(bd),D上报T(de)。这4个路径的网络质量被汇总到调度服务器,由调度服务器根据具体业务场景的策略汇总加工,然后下发到客户端。
[0066] 云端测速的过程中,云端测速需要检测的关键网络质量有以下几个维度:
[0067] a)网络延时RTT:从本端到对端网络双向延时,本端发送测速报文开始,到收到对端测速回复报文的时间差。
[0068] b)丢包率:在一段时间内因网络拥塞或网络异常引起的网络报文丢失的概率。
[0069] c)网络延时波动:是指在一段时间内,网络延时变化的幅度范围,即网络稳定性。
[0070] d)带宽上限:路径中网络带宽上限,一般而言公网带宽上限较大,但不排除高峰期和某些特殊机房的限制。
[0071] e)节点容量:一个节点的容量上限,即允许的最大同时会话数。由于代理节点的性能直接影响到代理网络质量,因此节点容量是一个重要的参考信息,接近于容量上限的节点,其服务质量很有可能是不稳定的。
[0072] 在上述优选实施例中,通过调度服务器根据以上策略,可结合具体业务场景来制定不同的调度策略,因此,经过此方法选择接入点,服务质量比简单选择最优接入点更有保障。
[0073] 在实际应用场景中,可以根据云端测速需要检测的关键网络质量的维度,通过调度服务器选择调度策略。
[0074] 可选地,质量评估策略,利用网络平均延迟(RTT),丢包率(Lost)和网络延时波动(Amp)三个指标,使用以下公式折算网络质量评分:Score=RTT*(1+Lost*10)+Amp,其中RTT和Amp单位是毫秒ms,Lost为丢包概率,为小于1的小数,10为丢包率影响权重的经验系数。Score越大,质量越差。例如,RTT为50ms,Lost为5%,Amp为20ms,则Score=50*(1+5%*10)+
20=95。
[0075] 可选地,节点可以用状态评估策略,利用带宽上限和节点容量综合评估,具体如下:
[0076] 1)带宽控制:目的是防止超过网卡和机房带宽限制。
[0077] 具体地,可以为每个节点设定带宽上限,并定时采样网卡实时带宽,若实时带宽处于带宽上限的90%,则调度服务器将不会把此节点下发给客户端,客户端就不会再连接此节点。
[0078] 2)容量控制:目的是防止连接数过大,影响节点性能,使服务质量下降。
[0079] 具体地,可以为每个节点设定容量上限,单位是连接数,并实时监控同时在线连接数,若实时连接数达到容量上限的90%,则调度服务器将不会把此节点下发给客户端,客户端就不会再连接此节点。
[0080] 在上述策略中,由于调度服务器和客户端之间同步节点信息有时间差,设定90%的作用是防止客户端短时间内融入大量连接造成服务不可用。
[0081] 可选地,综合策略,调度服务器可根据上述Score调度,设定一个Score阈值,比如200ms,对于Score>=200ms的节点,调度服务器将不会下发给客户端,客户端就不会再使用此节点,达到自动移除异常节点的目的。
[0082] 本发明优选实施例,由远程调度服务器将接入点后端的相关路径质量下发给客户端,客户端再结合每个接入点的测速质量,综合决策出最优代理路径。
[0083] 本发明优选实施例,由于考虑了后端链路质量,因此选择的路径更合理。由于路径的网络质量是调度服务器下发给客户端的,因此调度服务器还可以根据不同场景下的策略,动态调整下发的结果集,达到流量调度的目的。
[0084] 需要说明的是,本发明优选实施例还可以只选择最优接入点,然后由后端接入点自动调度进行路径透明切换,但其要求大部分接入点和后端节点都能两两互联,因此对节点所部署的机房要求较高。
[0085] 实施例2
[0086] 根据本发明实施例,提供了一种路由方法的方法实施例。
[0087] 可选地,在本实施例中,上述路由方法可以应用于如图5所示的由服务器102和终端104所构成的硬件环境中。如图5所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的路由方法可以由服务器102来执行,其中,服务器102可以为本发明实施例中的路由系统中的服务器。
[0088] 图6是根据本发明实施例的一种可选的路由方法的流程图一,如图6所示,该方法可以包括以下步骤:
[0089] 步骤S602,接收客户端发送的连接请求,其中,连接请求用于请求与服务器通信;
[0090] 步骤S604,响应于连接请求获取第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;
[0091] 步骤S606,将第一链路传输参数发送给客户端,以指示客户端按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。
[0092] 通过上述步骤S602至步骤S606,通过服务器在接收到客户端发送的连接请求之后,对其进行响应获取网络中任一中间节点所上报的第一类链路的第一链路传输参数,并将第一链路传输参数发送给客户端,以使得客户端可以按照第一链路传输参数确定目标路径进行路由,可以解决了相关技术中的路由方法由于客户端只考虑最近的接入点的网络质量,并未考虑后端链路的网络质量,导致所选择的路由路径不是最优路径的技术问题,进而达到提高所确定的最优路由路径的准确度,进而优化路由路径的数据传输能力的技术效果。
[0093] 在步骤S602提供的技术方案中,客户端在启动之后,可以向服务器发送连接请求,该连接请求可以用于请求与服务器建立通信连接,以使得客户端与服务器之间可以进行数据交互。服务器在接收到客户端发送的连接请求之后,可以向客户端发送确认消息,该确认消息用于通知客户端与服务器之间成功建立通信连接。客户端与服务器之间的通信连接建立成功之后,利用该通信连接关系客户端和服务器之间可以通过数据通信。
[0094] 在步骤S604提供的技术方案中,中间节点可以为网络中除源节点和目标节点之外的节点,中间节点的个数可以为多个。网络中的任一中间节点与其下一跳节点之间的链路可以为第一类链路,其中,第一类链路的个数可以为多条。第一类链路当前的网络质量可以由第一类链路的数据传输能力体现,其中,第一类链路的数据传输能力可以包括但并不限于数据传输容量和数据传输速度等。第一类链路的数据传输能力可以通过第一链路传输参数表示,此处需要说明的是,第一链路传输参数可以受到以下几个因素的影响:网络延时、丢包率、网络延时波动、带宽上限以及节点容量等,基于上述因素第一链路传输参数可以反映第一类链路的综合数据传输能力。
[0095] 服务器在接收到客户端发送的连接请求之后,根据对该连接请求进行响应,具体响应过程可以包括但并不限于:获取第一类链路的第一链路传输参数。
[0096] 作为一种可选的实施例,服务器响应于连接请求获取第一类链路的第一链路传输参数可以包括:接收中间节点上报的至少一个属性参数,其中,属性参数可以用于指示第一类链路的属性;按照预定策略为至少一个属性参数中的每个属性参数分配权重;根据为每个属性参数分配的权重获取第一类链路的第一链路传输参数。
[0097] 需要说明的是,网络中的中间节点可以实时检测该中间节点的属性以及该中间节点与其下一跳节点之间的链路的属性,其中,中间节点的属性可以包括但并不限于中间节点容量等,中间节点与其下一跳节点之间的链路的属性可以包括但并不限于网络延时、丢包率、网络延时波动以及带宽上限等。也就是说,网络中的任一中间节点所检测到的属性参数可以包括但并不限于:网络延时、丢包率、网络延时波动、带宽上限、中间节点容量。需要说明的是,网络中的任一中间节点所检测到的属性参数还可以包括其他参数,此处不再一一举例说明。在中间节点检测到至少一个属性参数之后,可以其上报给服务器,服务器可以接收网络中的任一中间节点所上报的至少一个属性参数,并可以按照预定策略为每个属性参数分配权重。此处需要说明的是,本发明实施例对预定策略不做具体限定,预定策略可以根据实际业务场景或者实际业务需求确定,按照预定策略为每个属性参数分配的权重目的是为了综合所有的属性参数来确定第一类链路的第一链路传输参数,以使得所确定的第一链路参数更加符合实际需求。
[0098] 本发明实施例通过为每个第一类链路的属性参数按照预定策略分配权重,再根据每个属性参数分配的权重获取每个第一类链路的第一链路传输参数,可以准确得出用于指示第一类链路的数据传输能力,为准确选择最优的路由路径提供可靠的数据依据。另外本发明实施例根据多个维度的属性参数确定第一类链路的第一链路传输参数,使确定的第一链路传输参数可以更加全面地反应出第一类链路的数据传输能力。
[0099] 作为一个可选的实施例,在中间节点上报给服务器的属性参数包括网络延时、丢包率以及网络延时波动的情况下,服务器响应于连接请求获取第一类链路的第一链路传输参数可以包括:获取中间节点所上报的属性参数,其中,属性参数包括网络延时、丢包率以及网络延时波动;按照以下公式获取第一类链路的第一链路传输参数:Score=RTT×(1+Lost×k)+Amp,其中,Score为第一链路传输参数,RTT为网络延时,Lost为丢包率,k为丢包率的权重,Amp为网络延时波动。
[0100] 需要说明的是,该可选实施例中的第一链路传输参数越大,则说明该第一类链路的数据传输能力越差。例如,假设k=10,为丢包率影响权重的经验系数,RTT为50ms,Lost为5%,Amp为20ms,则Score=50*(1+5%*10)+20=95。
[0101] 还需要说明的是,中间节点上报给服务器的属性参数还可以存在其他组合情况,例如带宽上限、节点容量。可选地,该实施例可以为每个节点设定带宽上限并定时采样网卡实时带宽,若实时带宽超过带宽上限预定阈值(例如90%),则服务器将不会把此节点下发给客户端,客户端就不会再连接此节点。或者,该实施例可以为每个节点设定容量上限,单位是连接数,并实时监控同时在线连接数,若实时连接数超过容量上限预定阈值(90%),则调度服务器将不会把此节点下发给客户端,客户端就不会再连接此节点。
[0102] 采用本发明上述实施例,对于不同的业务场景选择制定相应的策略,来获取第一类链路的第一链路传输参数,可以达到提高所获取到的第一链路传输参数的准确度的效果。
[0103] 在步骤S606提供的技术方案中,服务器在根据中间节点所上报的属性参数获取到第一类链路的第一链路传输参数之后,可以将该第一链路传输参数发送给客户端,以指示客户端根据该第一链路传输参数选择路由路径。
[0104] 作为一种可选的实施例,服务器在获取到每一个第一类链路的第一链路传输参数之后,可以对其进行分析对比,并按照第一链路传输参数的大小顺序进行排序,使得客户端可以按照该排序快速准确地确定哪个第一类链路的数据传输能力最好,其中,第一类链路的数据传输能力可以随着第一链路传输参数的增加而降低。
[0105] 需要说明的是,客户端在接收到服务器发送的第一类链路传输参数之后,可以根据第一类链路传输参数确定路由路径,具体地,基于第一链路传输参数越小,第一类链路的数据传输能力越强,客户端可以按照第一链路传输参数的大小从多个可选的第一类链路中优先选择出第一链路传输最小的第一类链路,并将该选择出来的第一类链路作为目标路径的部分链路,其中,目标路径可以为从源节点到目标节点的链路。本发明实施例通过将第一链路传输参数越小的第一类链路作为目标路径的部分链路进行路由,可以实现提高目标路径的数据传输能力的效果。
[0106] 还需要说明的是,由于目标路径是从源节点到目标节点的链路,而第一类链路为中间节点与其下一跳节点之间的链路,第一类链路只是目标路径的部分链路,因此,目标路径的确定过程还可以包括确定从源节点到源节点的下一跳节点之间的链路,也即确定第二类链路,其中,第二类链路为源节点至源节点的下一跳节点之间的链路,中间节点可以包括源节点的下一跳节点。可选地,该实施例可以基于第二链路传输参数选择出数据传输能力最强的第二类链路,具体可以选择第二链路传输参数最小的。此处需要说明的是,第二类链路的第二链路传输参数可以由客户端启动后检测得到。
[0107] 考虑到单独确定数据传输能力最强的第一类链路以及数据传输能力最强的第二类链路并不一定能够组成一条由源节点到达目标节点的目标路径,为了实现准确确定目标路径,本发明提供了以下可选实施例来确定目标路径,具体地可以包括:
[0108] 客户端检测第二类链路的第二链路传输参数,其中,第二链路传输参数用于指示第二类链路的数据传输能力;客户端按照第二链路传输参数以及第一链路传输参数确定目标路径,其中,目标路径包括第一类链路和第二类链路。
[0109] 需要说明的是,客户端在获取到服务器发送的第一类链路的第一链路传输参数,并检测到第二类链路的第二链路传输参数之后,可以根据用于表示第一类链路的数据传输能力的第一链路传输参数,以及用于表示第二类链路的数据传输能力的第二链路传输参数共同确定目标路径。
[0110] 作为一个可选的实施例,按照第二链路传输参数以及第一链路传输参数确定目标路径可以包括:获取从源节点到达目标节点的多条路径;按照第二链路传输参数以及第一链路传输参数分别获取多条路径中的每条路径的链路传输参数总和;将链路传输参数总和最小的路径确定为目标路径,其中,链路的数据传输能力随着链路传输参数的增加而降低。
[0111] 需要说明的是,源节点到达目标节点之间包括多个中间节点,从源节点经中间节点至目标节点的路径可以经过不同的中间节点,所以可以存在多条从源节点至目标节点的多条路径,其中,每条路径中包括源节点至源节点的下一跳节点之间的第二类链路,以及中间节点至中间节点的下一跳节点之间的第一类链路。该实施例可以按照预先获取到的第一链路传输参数以及第二链路传输参数分别获取每条路径的链路传输参数总和,然后基于链路的数据传输能力随着链路传输参数的增加而降低这一原则将链路传输参数总和最小的那条路径确定为最优的目标路径。
[0112] 采用本发明上述实施例,根据第一链路传输参数和第二链路传输参数确定的目标路径更加准确,进而可以达到提高按照目标路径进行路由时的网络质量的效果。
[0113] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0114] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0115] 实施例3
[0116] 根据本发明实施例,提供了一种路由方法的方法实施例。
[0117] 可选地,在本实施例中,上述路由方法可以应用于如图5所示的由服务器102和终端104所构成的硬件环境中。如图5所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的路由方法可以由终端104来执行。其中,终端104执行本发明实施例的路由方法也可以是由安装在其上的客户端来执行,其中,客户端可以为本发明实施例中的路由系统中的客户端。
[0118] 图7是根据本发明实施例的一种可选的路由方法的流程图二,如图7所示,该方法可以包括以下步骤:
[0119] 步骤S702,向服务器发送连接请求,其中,连接请求用于请求与服务器进行通信;
[0120] 步骤S704,接收服务器响应于连接请求所发送的第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;
[0121] 步骤S706,按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。
[0122] 通过上述步骤S702至步骤S706,通过客户端向服务器发送连接请求,服务器响应于该连接请求获取网络中任一中间节点所上报的第一类链路的第一链路传输参数,并将第一链路传输参数发送给客户端,客户端可以按照第一链路传输参数确定目标路径进行路由,解决了相关技术中的路由方法由于客户端只考虑最近的接入点的网络质量,并未考虑后端链路的网络质量,导致所选择的路由路径不是最优路径的技术问题,进而达到提高所确定的最优路由路径的准确度,进而优化路由路径的数据传输能力的技术效果。
[0123] 在步骤S702提供的技术方案中,客户端在启动之后,可以向服务器发送连接请求,该连接请求可以用于请求与服务器建立通信连接,以使得客户端与服务器之间可以进行数据交互。服务器在接收到客户端发送的连接请求之后,可以向客户端发送确认消息,该确认消息用于通知客户端与服务器之间成功建立通信连接。客户端与服务器之间的通信连接建立成功之后,利用该通信连接关系客户端和服务器之间可以通过数据通信。
[0124] 在步骤S704提供的技术方案中,中间节点可以为网络中除源节点和目标节点之外的节点,中间节点的个数可以为多个。网络中的任一中间节点与其下一跳节点之间的链路可以为第一类链路,其中,第一类链路的个数可以为多条。第一类链路当前的网络质量可以由第一类链路的数据传输能力体现,其中,第一类链路的数据传输能力可以包括但并不限于数据传输容量和数据传输速度等。第一类链路的数据传输能力可以通过第一链路传输参数表示,此处需要说明的是,第一链路传输参数可以受到以下几个因素的影响:网络延时、丢包率、网络延时波动、带宽上限以及节点容量等,基于上述因素第一链路传输参数可以反映第一类链路的综合数据传输能力。
[0125] 服务器在接收到客户端发送的连接请求之后,根据对该连接请求进行响应,具体响应过程可以包括但并不限于:获取第一类链路的第一链路传输参数。
[0126] 作为一种可选的实施例,服务器响应于连接请求获取第一类链路的第一链路传输参数可以包括:接收中间节点上报的至少一个属性参数,其中,属性参数可以用于指示第一类链路的属性;按照预定策略为至少一个属性参数中的每个属性参数分配权重;根据为每个属性参数分配的权重获取第一类链路的第一链路传输参数。
[0127] 需要说明的是,网络中的中间节点可以实时检测该中间节点的属性以及该中间节点与其下一跳节点之间的链路的属性,其中,中间节点的属性可以包括但并不限于中间节点容量等,中间节点与其下一跳节点之间的链路的属性可以包括但并不限于网络延时、丢包率、网络延时波动以及带宽上限等。也就是说,网络中的任一中间节点所检测到的属性参数可以包括但并不限于:网络延时、丢包率、网络延时波动、带宽上限、中间节点容量。需要说明的是,网络中的任一中间节点所检测到的属性参数还可以包括其他参数,此处不再一一举例说明。在中间节点检测到至少一个属性参数之后,可以其上报给服务器,服务器可以接收网络中的任一中间节点所上报的至少一个属性参数,并可以按照预定策略为每个属性参数分配权重。此处需要说明的是,本发明实施例对预定策略不做具体限定,预定策略可以根据实际业务场景或者实际业务需求确定,按照预定策略为每个属性参数分配的权重目的是为了综合所有的属性参数来确定第一类链路的第一链路传输参数,以使得所确定的第一链路参数更加符合实际需求。
[0128] 本发明实施例通过为每个第一类链路的属性参数按照预定策略分配权重,再根据每个属性参数分配的权重获取每个第一类链路的第一链路传输参数,可以准确得出用于指示第一类链路的数据传输能力,为准确选择最优的路由路径提供可靠的数据依据。另外本发明实施例根据多个维度的属性参数确定第一类链路的第一链路传输参数,使确定的第一链路传输参数可以更加全面地反应出第一类链路的数据传输能力。
[0129] 作为一个可选的实施例,在中间节点上报给服务器的属性参数包括网络延时、丢包率以及网络延时波动的情况下,服务器响应于连接请求获取第一类链路的第一链路传输参数可以包括:获取中间节点所上报的属性参数,其中,属性参数包括网络延时、丢包率以及网络延时波动;按照以下公式获取第一类链路的第一链路传输参数:Score=RTT×(1+Lost×k)+Amp,其中,Score为第一链路传输参数,RTT为网络延时,Lost为丢包率,k为丢包率的权重,Amp为网络延时波动。
[0130] 需要说明的是,该可选实施例中的第一链路传输参数越大,则说明该第一类链路的数据传输能力越差。例如,假设k=10,为丢包率影响权重的经验系数,RTT为50ms,Lost为5%,Amp为20ms,则Score=50*(1+5%*10)+20=95。
[0131] 还需要说明的是,中间节点上报给服务器的属性参数还可以存在其他组合情况,例如带宽上限、节点容量。可选地,该实施例可以为每个节点设定带宽上限并定时采样网卡实时带宽,若实时带宽超过带宽上限预定阈值(例如90%),则服务器将不会把此节点下发给客户端,客户端就不会再连接此节点。或者,该实施例可以为每个节点设定容量上限,单位是连接数,并实时监控同时在线连接数,若实时连接数超过容量上限预定阈值(90%),则调度服务器将不会把此节点下发给客户端,客户端就不会再连接此节点。
[0132] 采用本发明上述实施例,对于不同的业务场景选择制定相应的策略,来获取第一类链路的第一链路传输参数,可以达到提高所获取到的第一链路传输参数的准确度的效果。
[0133] 服务器在根据中间节点所上报的属性参数获取到第一类链路的第一链路传输参数之后,可以将该第一链路传输参数发送给客户端,以指示客户端根据该第一链路传输参数选择路由路径。
[0134] 作为一种可选的实施例,服务器在获取到每一个第一类链路的第一链路传输参数之后,可以对其进行分析对比,并按照第一链路传输参数的大小顺序进行排序,使得客户端可以按照该排序快速准确地确定哪个第一类链路的数据传输能力最好,其中,第一类链路的数据传输能力可以随着第一链路传输参数的增加而降低。
[0135] 在步骤S706提供的技术方案中,客户端在接收到服务器发送的第一类链路传输参数之后,可以根据第一类链路传输参数确定路由路径,具体地,基于第一链路传输参数越小,第一类链路的数据传输能力越强,客户端可以按照第一链路传输参数的大小从多个可选的第一类链路中优先选择出第一链路传输最小的第一类链路,并将该选择出来的第一类链路作为目标路径的部分链路,其中,目标路径可以为从源节点到目标节点的链路。本发明实施例通过将第一链路传输参数越小的第一类链路作为目标路径的部分链路进行路由,可以实现提高目标路径的数据传输能力的效果。
[0136] 还需要说明的是,由于目标路径是从源节点到目标节点的链路,而第一类链路为中间节点与其下一跳节点之间的链路,第一类链路只是目标路径的部分链路,因此,目标路径的确定过程还可以包括确定从源节点到源节点的下一跳节点之间的链路,也即确定第二类链路,其中,第二类链路为源节点至源节点的下一跳节点之间的链路,中间节点可以包括源节点的下一跳节点。可选地,该实施例可以基于第二链路传输参数选择出数据传输能力最强的第二类链路,具体可以选择第二链路传输参数最小的。此处需要说明的是,第二类链路的第二链路传输参数可以由客户端启动后检测得到。
[0137] 考虑到单独确定数据传输能力最强的第一类链路以及数据传输能力最强的第二类链路并不一定能够组成一条由源节点到达目标节点的目标路径,为了实现准确确定目标路径,本发明提供了以下可选实施例来确定目标路径,具体地可以包括:
[0138] 客户端检测第二类链路的第二链路传输参数,其中,第二链路传输参数用于指示第二类链路的数据传输能力;客户端按照第二链路传输参数以及第一链路传输参数确定目标路径,其中,目标路径包括第一类链路和第二类链路。
[0139] 需要说明的是,客户端在获取到服务器发送的第一类链路的第一链路传输参数,并检测到第二类链路的第二链路传输参数之后,可以根据用于表示第一类链路的数据传输能力的第一链路传输参数,以及用于表示第二类链路的数据传输能力的第二链路传输参数共同确定目标路径。
[0140] 作为一个可选的实施例,按照第二链路传输参数以及第一链路传输参数确定目标路径可以包括:获取从源节点到达目标节点的多条路径;按照第二链路传输参数以及第一链路传输参数分别获取多条路径中的每条路径的链路传输参数总和;将链路传输参数总和最小的路径确定为目标路径,其中,链路的数据传输能力随着链路传输参数的增加而降低。
[0141] 需要说明的是,源节点到达目标节点之间包括多个中间节点,从源节点经中间节点至目标节点的路径可以经过不同的中间节点,所以可以存在多条从源节点至目标节点的多条路径,其中,每条路径中包括源节点至源节点的下一跳节点之间的第二类链路,以及中间节点至中间节点的下一跳节点之间的第一类链路。该实施例可以按照预先获取到的第一链路传输参数以及第二链路传输参数分别获取每条路径的链路传输参数总和,然后基于链路的数据传输能力随着链路传输参数的增加而降低这一原则将链路传输参数总和最小的那条路径确定为最优的目标路径。
[0142] 采用本发明上述实施例,根据第一链路传输参数和第二链路传输参数确定的目标路径更加准确,进而可以达到提高按照目标路径进行路由时的网络质量的效果。
[0143] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0144] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0145] 实施例4
[0146] 根据本发明实施例,还提供了一种用于实施上述路由方法的路由装置。图8是根据本发明实施例的一种可选的路由装置的示意图一,如图8所示,该装置可以包括:
[0147] 接收单元81,用于接收客户端发送的连接请求,其中,连接请求用于请求与服务器通信;响应单元83,用于响应于连接请求获取第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;发送单元85,用于将第一链路传输参数发送给客户端,以指示客户端按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。
[0148] 需要说明的是,该实施例中的接收单元81可以用于执行本申请实施例2中的步骤S602,该实施例中的响应单元83可以用于执行本申请实施例2中的步骤S604,该实施例中的发送单元85可以用于执行本申请实施例2中的步骤S606。
[0149] 此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图5所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
[0150] 作为一种可选的实施例,响应单元83可以包括:接收模块,用于接收中间节点上报的至少一个属性参数,其中,属性参数用于指示第一类链路的属性;分配模块,用于按照预定策略为至少一个属性参数中的每个属性参数分配权重;第一获取模块,用于根据为每个属性参数分配的权重获取第一类链路的第一链路传输参数。
[0151] 作为一种可选的实施例,属性参数可以包括以下至少之一:网络延时、丢包率、网络延时波动、带宽上限、中间节点容量。
[0152] 作为一种可选的实施例,响应单元83可以包括:第二获取模块,用于获取中间节点所上报的属性参数,其中,属性参数包括网络延时、丢包率以及网络延时波动;第三获取模块,用于按照以下公式获取第一类链路的第一链路传输参数:Score=RTT×(1+Lost×k)+Amp其中,Score为第一链路传输参数,RTT为网络延时,Lost为丢包率,k为丢包率的权重,Amp为网络延时波动。
[0153] 根据本发明实施例,还提供了一种用于实施上述路由方法的路由装置。图9是根据本发明实施例的一种可选的路由装置的示意图二,如图9所示,该装置可以包括:
[0154] 发送单元91,用于向服务器发送连接请求,其中,连接请求用于请求与服务器进行通信;接收单元93,用于接收服务器响应于连接请求所发送的第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;确定单元95,用于按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。
[0155] 需要说明的是,该实施例中的发送单元91可以用于执行本申请实施例3中的步骤S702,该实施例中的接收单元93可以用于执行本申请实施例3中的步骤S704,该实施例中的确定单元95可以用于执行本申请实施例3中的步骤S706。
[0156] 作为一种可选的实施例,确定单元95可以包括:检测模块,用于检测第二类链路的第二链路传输参数,其中,第二类链路为源节点至源节点的下一跳节点之间的链路,第二链路传输参数用于指示第二类链路的数据传输能力,中间节点包括源节点的下一跳节点;确定模块,用于按照第二链路传输参数以及第一链路传输参数确定目标路径,其中,目标路径包括第一类链路和第二类链路。
[0157] 作为一种可选的实施例,确定模块可以包括:第一获取子模块,用于获取从源节点到达目标节点的多条路径;第二获取子模块,用于按照第二链路传输参数以及第一链路传输参数分别获取多条路径中的每条路径的链路传输参数总和;确定子模块,用于将链路传输参数总和最小的路径确定为目标路径,其中,链路的数据传输能力随着链路传输参数的增加而降低。
[0158] 此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例3所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图5所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
[0159] 通过上述模块,通过建立客户端与服务器之间的了通信,在服务器接收客户端发送的连接请求后,获取用于指示所述第一类链路的数据传输能力的第一链路传输参数,再将该第一链路传输参数发送至所述客户端,然后由客户端按照第一链路传输参数确定目标路径进行路由,解决了相关技术中的路由方法由于客户端只考虑最近的接入点的网络质量,并未考虑后端链路的网络质量,导致所选择的路由路径不是最优路径的技术问题,进而达到准确选择最优的路由路径的技术效果。
[0160] 实施例5
[0161] 根据本发明实施例,还提供了一种用于实施上述路由方法的终端。
[0162] 图10是根据本发明实施例的一种终端的结构框图,如图10所示,该终端可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205,如图10所示,该终端还可以包括输入输出设备207。
[0163] 其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的路由方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的路由方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0164] 上述的传输装置205用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0165] 其中,具体地,存储器203用于存储应用程序。
[0166] 处理器201可以调用存储器203存储的应用程序,以执行下述步骤:接收客户端发送的连接请求,其中,连接请求用于请求与服务器通信;响应于连接请求获取第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;将第一链路传输参数发送给客户端,以指示客户端按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。
[0167] 处理器201还用于执行下述步骤:接收中间节点上报的至少一个属性参数,其中,属性参数用于指示第一类链路的属性;按照预定策略为至少一个属性参数中的每个属性参数分配权重;根据为每个属性参数分配的权重获取第一类链路的第一链路传输参数,其中,属性参数包括以下至少之一:网络延时、丢包率、网络延时波动、带宽上限、中间节点容量。
[0168] 处理器201还用于执行下述步骤:获取中间节点所上报的属性参数,其中,属性参数包括网络延时、丢包率以及网络延时波动;按照以下公式获取第一类链路的第一链路传输参数:Score=RTT×(1+Lost×k)+Amp,其中,Score为第一链路传输参数,RTT为网络延时,Lost为丢包率,k为丢包率的权重,Amp为网络延时波动。
[0169] 处理器201可以调用存储器203存储的应用程序,以执行下述步骤:向服务器发送连接请求,其中,连接请求用于请求与服务器进行通信;接收服务器响应于连接请求所发送的第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。
[0170] 处理器201还用于执行下述步骤:检测第二类链路的第二链路传输参数,其中,第二类链路为源节点至源节点的下一跳节点之间的链路,第二链路传输参数用于指示第二类链路的数据传输能力,中间节点包括源节点的下一跳节点;按照第二链路传输参数以及第一链路传输参数确定目标路径,其中,目标路径包括第一类链路和第二类链路。
[0171] 处理器201还用于执行下述步骤:获取从源节点到达目标节点的多条路径;按照第二链路传输参数以及第一链路传输参数分别获取多条路径中的每条路径的链路传输参数总和;将链路传输参数总和最小的路径确定为目标路径,其中,链路的数据传输能力随着链路传输参数的增加而降低。
[0172] 采用本发明实施例,提供了一种路由方案。通过建立客户端与服务器之间的了通信,在服务器接收客户端发送的连接请求后,获取用于指示所述第一类链路的数据传输能力的第一链路传输参数,再将该第一链路传输参数发送至所述客户端,然后由客户端按照第一链路传输参数确定目标路径进行路由,解决了相关技术中的路由方法由于客户端只考虑最近的接入点的网络质量,并未考虑后端链路的网络质量,导致所选择的路由路径不是最优路径的技术问题,进而达到准确选择最优的路由路径的技术效果。
[0173] 可选地,本实施例中的具体示例可以参考上述实施例1至实施例4中所描述的示例,本实施例在此不再赘述。
[0174] 本领域普通技术人员可以理解,图10所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,终端还可包括比图10中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图10所示不同的配置。
[0175] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
[0176] 实施例6
[0177] 本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行路由方法的程序代码。
[0178] 可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
[0179] 可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
[0180] S1,接收客户端发送的连接请求,其中,连接请求用于请求与服务器通信;
[0181] S2,响应于连接请求获取第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;
[0182] S3,将第一链路传输参数发送给客户端,以指示客户端按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。
[0183] 可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:接收中间节点上报的至少一个属性参数,其中,属性参数用于指示第一类链路的属性;按照预定策略为至少一个属性参数中的每个属性参数分配权重;根据为每个属性参数分配的权重获取第一类链路的第一链路传输参数,其中,属性参数包括以下至少之一:网络延时、丢包率、网络延时波动、带宽上限、中间节点容量。
[0184] 可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:获取中间节点所上报的属性参数,其中,属性参数包括网络延时、丢包率以及网络延时波动;按照以下公式获取第一类链路的第一链路传输参数:Score=RTT×(1+Lost×k)+Amp,其中,Score为第一链路传输参数,RTT为网络延时,Lost为丢包率,k为丢包率的权重,Amp为网络延时波动。
[0185] 可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
[0186] S1,向服务器发送连接请求,其中,连接请求用于请求与服务器进行通信;
[0187] S2,接收服务器响应于连接请求所发送的第一类链路的第一链路传输参数,其中,第一类链路为网络中的任一中间节点至中间节点的下一跳节点之间的链路,中间节点为网络中除源节点和目标节点之外的节点,第一链路传输参数用于指示第一类链路的数据传输能力;
[0188] S3,按照第一链路传输参数确定目标路径进行路由,其中,目标路径为从源节点到目标节点的链路,目标路径包括第一类链路。
[0189] 可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:检测第二类链路的第二链路传输参数,其中,第二类链路为源节点至源节点的下一跳节点之间的链路,第二链路传输参数用于指示第二类链路的数据传输能力,中间节点包括源节点的下一跳节点;按照第二链路传输参数以及第一链路传输参数确定目标路径,其中,目标路径包括第一类链路和第二类链路。
[0190] 可选地,获取从源节点到达目标节点的多条路径;按照第二链路传输参数以及第一链路传输参数分别获取多条路径中的每条路径的链路传输参数总和;将链路传输参数总和最小的路径确定为目标路径,其中,链路的数据传输能力随着链路传输参数的增加而降低。
[0191] 可选地,本实施例中的具体示例可以参考上述实施例,1和实施例4中所描述的示例,本实施例在此不再赘述。
[0192] 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0193] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0194] 上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
[0195] 在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0196] 在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0197] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0198] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0199] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。