本发明实施例涉及通信技术领域,具体涉及一种网络出站负载均衡方法及装置。
背景技术:
负载均衡(Load Balancing)是现在企业网络常用的一种网络技术,它提供了一种廉价有效的方法来扩展网络的带宽、灵活性以及可用性,同时有效的增强了网络的吞吐量以及数据处理能力。出站负载均衡是当网络中有多个出口(安全网关连接了多条ISP链路)时,启用了出站负载均衡的安全网关设备将根据指定的负载均衡策略将符合条件的出站流量合理分配到多条链路上,不仅为用户提供了告诉可靠的网络服务,而且有效的提高了链路的利用率。
在实现本发明实施例的过程中,发明人发现目前的出站负载均衡是对所有流量统一进行负载均衡处理,且采用的方法大多是按照预先设定好的权重值或者按照源目的ip或者源目的mac地址进行负载均衡。而由于上述处理方式没有考虑到链路不同引起的传输效率差异性,使得导致传输效率低下,进而影响网络的数据转发效率。
技术实现要素:
本发明实施例的一个目的是解决现有技术没有考虑链路不同引起的传输效率的差异性,导致传输效率低下,进而影响网络的数据转发效率的问题。
本发明实施例提出了一种网络出站负载均衡方法包括:
步骤S1、接收用户终端发送的访问网络中目标服务器的请求;
步骤S2、通过所述用户终端和所述目标服务器之间的N条链路向所述目标服务器发送测试信息;
步骤S3、获取每条链路上返回的应答报文,所述应答报文中携带有剩余生存时间值ttl;
步骤S4、根据每条链路返回的应答报文的剩余ttl,从N条链路中选取出M条链路,M≤N;
步骤S5、将所述用户终端发送向所述目标服务器的数据分配至所述M条链路进行转发。
可选的,所述步骤S4具体包括:
采用剩余ttl由大到小的顺序方式,对N条链路进行排序,并选取序列中前M条链路;
或者,
采用剩余ttl由小到大的顺序方式,对N条链路进行排序,并选取序列中后M条链路。
可选的,还包括:将选取出的M条链路存储于缓存列表中;
相应地,在所述步骤S2之前,所述方法还包括:
检测所述缓存列表中是否存在M条链路,若是,则执行步骤S5;若否,则执行步骤S2。
可选的,所述方法还包括:为所述缓存列表配置超时时间;
相应地,所述方法还包括:若检测获知所述缓存列表中存在M条链路,则更新所述M条链路的在所述缓存列表中的存储时间;
将所述M条链路的更新后的存储时间与所述超时时间进行对比;若对比获知更新后的存储时间大于所述超时时间,则清除所述缓存列表中的M条链路。
可选的,所述步骤S5具体包括:
采用平均分配或者与所述M条链路上返回的应答报文的剩余ttl成正比的方式,将所述用户终端发送向所述目标服务器的数据分配至所述M条链路进行转发。
本发明还提出了一种网络出站负载均衡装置,包括:
接收模块,用于接收用户终端发送的访问网络中目标服务器的请求;
发送模块,用于通过所述用户终端和所述目标服务器之间的N条链路向所述目标服务器发送测试信息,所述测试信息中携带有初始ttl值;
获取模块,用于获取每条链路上返回的应答报文,所述应答报文中携带有剩余生存时间值ttl;
选取模块,用于根据每条链路对应的剩余ttl,从N条链路中选取出M条链路,M≤N;
分配模块,用于将所述用户终端发送向所述目标服务器的数据分配至所述M条链路进行转发。
可选的,所述选取模块,具体用于采用剩余ttl由大到小的顺序方式,对N条链路进行排序,并选取序列中前M条链路;或者,采用剩余ttl由小到大的顺序方式,对N条链路进行排序,并选取序列中后M条链路。
可选的,还包括:存储模块和检测模块;
所述存储模块,用于将选取出的M条链路存储于缓存列表中;
所述检测模块,用于在接收到用户终端发送的访问网络中目标服务器的请求后,检测所述缓存列表中是否存在M条链路,若是,则触发所述分配模块;若否,则触发所述发送模块。
可选的,所述装置还包括:配置模块;
所述配置模块,用于为所述缓存列表配置超时时间;
相应地,所述检测模块,还用于若检测获知所述缓存列表中存在M条链路,则更新所述M条链路的在所述缓存列表中的存储时间;将所述M条链路的更新后的存储时间与所述超时时间进行对比;若对比获知更新后的存储时间大于所述超时时间,则清除所述缓存列表中的M条链路。
可选的,所述分配模块,具体用于采用平均分配或者与所述M条链路上返回的应答报文的剩余ttl成正比的方式,将所述用户终端发送向所述目标服务器的数据分配至所述M条链路进行转发。
由上述技术方案可知,本发明实施例提出的网络出站负载均衡方法及装置通过各链路向目标服务器发送测试信息,以获取在各链路上转发的测试信息的剩余生存时间值,进而根据剩余生存时间值将流量调度到距离目标服务器较近的链路上,提高了出站负载均衡的效果,进而改善了网络的转发效率。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明一实施例提供的一种网络出站负载均衡方法的应用场景图;
图2示出了本发明一实施例提供的一种网络出站负载均衡方法的流程示意图;
图3示出了本发明另一实施例提供的一种网络出站负载均衡方法的流程示意图;
图4示出了本发明一实施例提供的一种网络出站负载均衡装置的结构示意图;
图5示出了本发明另一实施例提供的一种网络出站负载均衡装置的结构示意图;
图6示出了本发明又一实施例提供的一种网络出站负载均衡装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明一实施例提供的一种网络出站负载均衡方法的应用场景图,参见图1,该应用场景中包括:用户终端110、安全网关120和目标服务器130;
安全网关120与目标服务器130之间有多条链路;
用户终端110向目标服务器130发送数据的过程中,数据流经至安全网关120处,由安全网关120对数据进行相关处理后、基于预设分配规则,将数据分配至链路进行转发。
预设分配规则可举例为:将数据均匀分配至安全网关120与目标服务器130之间的所有链路中。
其中,用户终端110举例为个人笔记本电脑等。
图2示出了本发明一实施例提供的一种网络出站负载均衡方法的流程示意图,参见图1和图2,该方法由安全网关120实现,包括:
步骤S1、接收用户终端110发送的访问网络中目标服务器130的请求;
步骤S2、通过所述用户终端110和所述目标服务器130之间的N条链路向所述目标服务器130发送测试信息;
需要说明的是,访问请求中携带有目标服务器的IP地址,安全网关基于IP地址向目标服务器发送测试信息。
步骤S3、获取每条链路上返回的应答报文,所述应答报文中携带有剩余生存时间值ttl;
步骤S4、根据每条链路返回的应答报文的剩余ttl,从N条链路中选取出M条链路,M≤N;
步骤S5、将所述用户终端110发送向所述目标服务器130的数据流量分配至所述M条链路进行转发。
需要说明的是,安全网关120在接收到用户终端110发送的访问请求时,通过不同链路去ping目标服务器130;目标服务器130返回应答报文,应答报文的生存时间值ttl为已知值,在链路中网络设备,例如路由器等的转发过程中,应答报文的生存时间值ttl不断减少,每被转发一次生存时间值ttl将减一,可知,剩余ttl即为应答报文被网络设备丢弃之前的最大网段数量,基于每条链路上对应的剩余ttl即可得知每条链路的路径长度。
可知,本实施例通过各链路向目标服务器发送测试信息,以获取在各链路上返回的应答报文剩余ttl,进而根据剩余ttl将数据调度到距离目标服务器较近的链路上,提高了出站负载均衡的效果,进而改善了网络的转发效率。
本实施例中,步骤S4具体包括:
采用剩余ttl由大到小的顺序方式,对N条链路进行排序,并选取序列中前M条链路;
或者,采用剩余ttl由小到大的顺序方式,对N条链路进行排序,并选取序列中后M条链路。
需要说明的是,无论是采用剩余ttl由大到小的顺序方式还是采用剩余ttl由小到大的顺序方式,最后选取出的M条链路都是所有链路中距离目标服务器最小的。
在一可行实施例中,在步骤S4之后,该方法还包括:将选取出的M条链路存储于缓存列表中;
相应地,在所述步骤S2之前,所述方法还包括:
检测所述缓存列表中是否存在M条链路,若是,则执行步骤S5;若否,则执行步骤S2。
本实施例通过将选取出的M条链路与目标服务器的IP地址关联后存储于缓存列表中,以在下次接收到用户终端的访问某一服务器的请求时,检测缓存列表中是否存在该服务器的的相关信息,若存在,则直接使用相关信息中携带的选取出的M条链路即可,而无需再次进行链路的选取,进而达到进一步地提高改善网络的转发效率的效果。
在又一可行实施例中,在步骤S4之后,所述方法还包括:为所述缓存列表配置超时时间;
相应地,所述方法还包括:若检测获知所述缓存列表中存在M条链路,则更新所述M条链路的在所述缓存列表中的存储时间;
将所述M条链路的更新后的存储时间与所述超时时间进行对比;若对比获知更新后的存储时间大于所述超时时间,则清除所述缓存列表中的M条链路。
需要说明的是,选取出的M条链路具有一定的时效性,在一段时间之后,再次使用该M条链路进行数据的转发,其负载均衡的效果可能会有所下降,因此,在一段时间后,安全网关需要再次对N条链路进行选取,以获取更新后的M条链路,提高了出站负载均衡的效果。
图3示出了本发明另一实施例提供的一种网络出站负载均衡方法的流程示意图,下面参见图3对本申请的工作原理进行详细说明:
S31、在接收到用户终端发送的访问请求时,安全网关检测缓存列表中是否存在目的IP的相关记录,此处的目的IP的相关记录包括:选取的M条链路;若是,则执行步骤S32;若否,则执行步骤S33;
S32、更新缓存列表中该目标IP所对应的超时时间t(t默认为10min),此处的超时时间为可配置,配置方式有多种,例如:采用通过外部设备向安全网关内写入超时时间修改指令的方式修改超时时间,并执行步骤S37。
S33、安全网关通过链路分别ping目标服务器;
S34、将不同链路返回的icmp应答报文的ttl值进行排名,排名方式可参照图2对应实施例中的相关陈述,此处不再赘述。
需要说明的是,TTL是Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。在IP数据包从源到目的、即从目标服务器到安全网关的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。因此当一台主机ping另一台主机时,得到的应答报文ttl值越大,说明两台主机中间经过的跳述越少,两台主机的距离越近。
S35、从排名获得的序列中选取出排名前m或者后m的链路,选取方式由排名方式而定,其中,m默认为3,并可配置;
S36、将选取出的m条链路与目标服务器(主机)IP地址进行关联处理,并加入到缓存列表中,并对其配置超时时间,此处的超时时间默认为10min,即10分钟之内,选取出的m条链路和目标服务器IP地址的关联数据为有效,10分钟之后无效。
另外,默认超时时间为可配置。
S37、将去往目标主机的流量调度到ttl值排名前m位的链路上进行转发;调度方式有多种,例如图2对应实施例中提出的平均分配、按ttl值的大小成比例分配等方式。
可见,本实施例通过对比不同链路icmp应答报文的ttl值来判断安全网关距离目标主机的距离,从而选出距离相对较近的几条链路,然后将去往该目标主机的数据调度到这几条链路进行转发。同时将所选出的去往该目标主机的链路信息加入到缓存列表中,省去了后续去往该目标主机的数据的选路过程。进而使得安全网关的负载均衡功能更加合理有效,另外,由于该发明能够将数据调度到距离目标主机较近的链路上,因此有效的改善了网络的转发效率。
对于方法实施方式,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施方式并不受所描述的动作顺序的限制,因为依据本发明实施方式,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施方式均属于优选实施方式,所涉及的动作并不一定是本发明实施方式所必须的。
图4示出了本发明一实施例提供的一种网络出站负载均衡装置的结构示意图,参见图4,该装置包括:接收模块41、发送模块42、获取模块43、选取模块44、以及分配模块45,其中;
接收模块41,用于接收用户终端发送的访问网络中目标服务器的请求;
发送模块42,用于通过所述用户终端和所述目标服务器之间的N条链路向所述目标服务器发送测试信息,所述测试信息中携带有初始ttl值;
获取模块43,用于获取每条链路上返回的应答报文,所述应答报文中携带有剩余生存时间值ttl;
选取模块44,用于根据每条链路返回的应答报文的剩余ttl,从N条链路中选取出M条链路,M≤N;
分配模块45,用于将所述用户终端发送向所述目标服务器的数据分配至所述M条链路进行转发。
需要说明的是,接收模块41在接收到用户终端发送的访问网络中目标服务器的请求后,将访问请求转发至发送模块42,由发送模块42根据访问请求中的目标服务器的IP地址ping目标服务器;获取模块43,获取每条链路上返回的应答报文,并将获取到的应答报文转发至选取模块44,由选取模块44根据应答报文中携带的测试信息的剩余ttl从N条链路中选取出M条链路,并将选取出的M条链路的信息告知分配模块45,分配模块45可采用平均分配或者与所述M条链路的剩余ttl成正比的方式,将所述用户终端发送向所述目标服务器的数据分配至所述M条链路进行转发。
本实施例通过各链路向目标服务器发送测试信息,以获取在各链路上返回的应答报文剩余ttl,进而根据剩余ttl将数据调度到距离目标服务器较近的链路上,提高了出站负载均衡的效果,进而改善了网络的转发效率。
本实施例中,所述选取模块,具体用于采用剩余ttl由大到小的顺序方式,对N条链路进行排序,并选取序列中前M条链路;或者,采用剩余ttl由小到大的顺序方式,对N条链路进行排序,并选取序列中后M条链路。
图5示出了本发明另一实施例提供的一种网络出站负载均衡装置的结构示意图,参见图5,该装置包括:接收模块51、检测模块52、发送模块53、获取模块54、选取模块55、存储模块56、以及分配模块57,其中;
接收模块51、发送模块53、获取模块54、选取模块55、以及分配模块57分别与图4对应的实施例中的接收模块41、发送模块42、获取模块43、选取模块44、以及分配模块45相同,其工作原理相同,故,此处不再赘述,具体请参照图4对应实施例中的相关陈述。
所述存储模块56,用于将选取出的M条链路存储于缓存列表中;
所述检测模块52,用于在接收到用户终端发送的访问网络中目标服务器的请求后,检测所述缓存列表中是否存在M条链路,若是,则触发所述分配模块;若否,则触发所述发送模块。
本实施例通过将选取出的M条链路与目标服务器的IP地址关联后存储于缓存列表中,以在下次接收到用户终端的访问某一服务器的请求时,检测缓存列表中是否存在该服务器的的相关信息,若存在,则直接使用相关信息中携带的选取出的M条链路即可,而无需再次进行链路的选取,进而达到进一步地提高改善网络的转发效率的效果。
图6示出了本发明又一实施例提供的一种网络出站负载均衡装置的结构示意图,参见图6,该装置包括:接收模块61、检测模块62、发送模块63、获取模块64、选取模块65、存储模块66、配置模块67、以及分配模块68,其中;
接收模块61、检测模块62、发送模块63、获取模块64、选取模块65、存储模块66、以及分配模块68分别与图6对应实施例中的接收模块51、检测模块52、发送模块53、获取模块54、选取模块55、存储模块56、以及分配模块5相同,其工作原理相同,故,此处不再赘述,具体请参照图6对应实施例中的相关陈述。
所述配置模块67,用于为所述缓存列表配置超时时间;
相应地,所述检测模块62,还用于若检测获知所述缓存列表中存在M条链路,则更新所述M条链路的在所述缓存列表中的存储时间;将所述M条链路的更新后的存储时间与所述超时时间进行对比;若对比获知更新后的存储时间大于所述超时时间,则清除所述缓存列表中的M条链路。
需要说明的是,选取出的M条链路具有一定的时效性,在一段时间之后,再次使用该M条链路进行数据的转发,其负载均衡的效果可能会有所下降,因此,在一段时间后,安全网关需要再次对N条链路进行选取,以获取更新后的M条链路,提高了出站负载均衡的效果。
对于装置实施方式而言,由于其与方法实施方式基本相似,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。
应当注意的是,在本发明的装置的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合。
本发明的各个部件实施方式可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本装置中,PC通过实现因特网对设备或者装置远程控制,精准的控制设备或者装置每个操作的步骤。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样实现本发明的程序可以存储在计算机可读介质上,并且程序产生的文件或文档具有可统计性,产生数据报告和cpk报告等,能对功放进行批量测试并统计。应该注意的是上述实施方式对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施方式。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。