一种ISP选路方法、装置及网关与流程

文档序号:12376298阅读:1557来源:国知局
一种ISP选路方法、装置及网关与流程

本发明涉及互联网技术领域,特别是涉及一种ISP选路方法、装置及网关。



背景技术:

互联网服务提供商(Internet Service Provider,ISP)即向广大用户提供互联网接入业务、信息业务、和增值业务的电信运营商。在工作与网络息息相关的今天,为规避单条ISP线路故障带来的网络可用性风险,解决网络带宽不足带来的网络访问问题,企业往往会租用多条ISP线路。虽然使用多条ISP线路可以实现带宽叠加、线路备份的作用,从而提高网络的稳定性。但是,如果不对数据路由进行配置,则可能引起ISP线路出现流量失衡,使得某条ISP线路达到负载上限,另一条ISP线路却负载空闲。

而现有技术中提供的ISP智能选路的方案主要是通过在路由管理界面上预先设置好各个ISP线路对应的路由接口,然后设置不同部门或不同楼层固定使用不同的路由接口进行联网,从而实现不同部门或不同楼层使用网络时互不干扰,能够分别使用各自对应的ISP线路进行联网。但是,上述ISP智能选路方案需要人工进行路由配置,当ISP线路上的流量状态发生变化时,其路由配置无法自动调整,从而无法为数据流量选择最合适的ISP线路进行转发。因此,如何根据网络状况自动为数据流量动态选择合适的ISP线路成为使用多条ISP线路过程中亟待解决的技术问题。



技术实现要素:

有鉴于此,本发明提出了一种ISP选路方法、装置及网关,主要目的在于解决在使用多条ISP线路的网络环境下如何为数据流量动态选择合适的ISP线路进行转发的问题。

依据本发明的第一个方面,本发明提供了一种ISP选路方法,包括:

网关接收到数据包后,根据预设的至少一种选路要素选择ISP线路;

将选路要素的权重值分配给根据对应选路要素选择的ISP线路;

将选择的各条ISP线路分配的权重值进行统计,得到各条ISP线路各自的总权重值;

将总权重值最大的ISP线路确定为转发所述数据包的目标线路。

具体的,根据预设的至少一种选路要素选择ISP线路包括:

根据基于地址库的选路要素、基于可用带宽的选路要素、基于带宽利用率的选路要素以及基于时延的选路要素中的至少一种选路要素选择ISP线路。

具体的,当选路要素包括基于地址库的选路要素时,将基于地址库的选路要素的权重值分配给选择的ISP线路包括:

将所述数据包的目的IP地址分别与待选择的各条ISP线路各自的IP地址库进行匹配;

当所述数据包的目的IP地址与待选择的某条ISP线路的IP地址库中的IP地址相匹配时,将基于地址库的选路要素的权重值分配给匹配成功的ISP线路。

具体的,当选路要素包括基于可用带宽的选路要素时,将基于可用带宽的选路要素的权重值分配给选择的ISP线路包括:

根据待选择的各条ISP线路各自的最大带宽以及各自的已用带宽计算各条ISP线路的可用带宽;

将基于可用带宽的选路要素的权重值分配给可用带宽最大的ISP线路;

或者,当多条ISP线路的可用带宽相同且最大时,将基于可用带宽的选路要素的权重值分配给所述多条ISP线路中最大带宽最大的ISP线路。

具体的,当选路要素包括基于带宽利用率的选路要素时,将基于带宽利用率的选路要素的权重值分配给选择的ISP线路包括:

根据待选择的各条ISP线路各自的已用带宽以及各自的最大带宽计算各条ISP线路的带宽利用率;

将基于带宽利用率的选路要素的权重值分配给带宽利用率最小的ISP线路;

或者,当多条ISP线路的带宽利用率相同且最小时,将基于带宽利用率的选路要素的权重值分配给所述多条ISP线路中最大带宽最大的ISP线路。

具体的,当选路要素包括基于时延的选路要素时,将基于时延的选路要素的权重值分配给选择的ISP线路包括:

分别在待选择的各条ISP线路的接口上向所述数据包的目的IP地址发送测试报文,获取测试报文在各条ISP线路的接口到所述数据包的目的IP地址之间的往返时延;

将基于时延的选路要素的权重值分配给往返时延最短的ISP线路;

或者,当多条ISP线路的往返时延相同且最短时,将基于时延的选路要素的权重值分配给所述多条ISP线路中最大带宽最大的ISP线路。

具体的,在网关接收到数据包后,所述方法还包括:

判断所述数据包是否对应有转发时记录的会话;

若判断结果为是,则根据对应的会话直接转发所述数据包;

所述根据预设的至少一种选路要素选择ISP线路,包括:

若判断结果为否,则执行所述根据预设的至少一种选路要素选择ISP线路。

具体的,判断所述数据包是否对应有转发时记录的会话包括:

将所述数据包中的五元组信息与转发时记录的会话中的五元组信息进行比对,确定所述数据包是否对应有转发时记录的会话。

具体的,若判断所述数据包未对应有转发时记录的会话,则使用所述目标线路转发所述数据包之后,所述方法还包括:

将未对应有转发时记录的会话的数据包确定为首数据包,为所述首数据包新建会话,将所述目标线路的接口ID记录在新建会话中;

当对应新建会话的后续数据包达到网关时,根据新建会话中记录的接口ID对后续数据包直接进行转发。

具体的,所述方法还包括:

根据预设的时间间隔,通过预设的选路要素重新选择目标线路;

当重新选择的目标线路和之前的目标线路不一致时,刷新会话,根据刷新后会话中记录的最新接口ID对数据包进行转发。

具体的,所述方法还包括:

当选择的多条ISP线路的总权重值相同且最大时,则根据权重值最大的选路要素,从所述多条ISP线路中选择具有选路要素中的最大权重值的一条ISP线路作为目标线路;

若根据权重值最大的选路要素选择的目标线路为多条ISP线路时,则继续根据选路要素中的权重值的大小顺序依次进行选择;

若根据选路要素中的权重值的大小顺序依次进行选择后还确定有多条目标线路,则从中随机选择一个目标线路确定为转发所述数据包的目标线路。

依据本发明的第二个方面,本发明提供了一种ISP选路装置,包括:

选择单元,用于在网关接收到数据包后,根据预设的至少一种选路要素选择ISP线路;

分配单元,用于将选路要素的权重值分配给根据对应选路要素选择的ISP线路;

统计单元,用于将选择的各条ISP线路分配的权重值进行统计,得到各条ISP线路各自的总权重值;

确定单元,用于将总权重值最大的ISP线路确定为转发所述数据包的目标线路。

具体的,所述选择单元用于根据基于地址库的选路要素、基于可用带宽的选路要素、基于带宽利用率的选路要素以及基于时延的选路要素中的至少一种选路要素选择ISP线路。

具体的,所述分配单元用于当选路要素包括基于地址库的选路要素时,将基于地址库的选路要素的权重值分配给选择的ISP线路;其中,所述分配单元包括:

IP地址匹配模块,用于将所述数据包的目的IP地址分别与待选择的各条ISP线路各自的IP地址库进行匹配;

第一分配模块,用于当所述数据包的目的IP地址与待选择的某条ISP线路的IP地址库中的IP地址相匹配时,将基于地址库的选路要素的权重值分配给匹配成功的ISP线路。

具体的,所述分配单元用于当选路要素包括基于可用带宽的选路要素时,将基于可用带宽的选路要素的权重值分配给选择的ISP线路;其中,所述分配单元包括:

可用带宽计算模块,用于根据待选择的各条ISP线路各自的最大带宽以及各自的已用带宽计算各条ISP线路的可用带宽;

第二分配模块,用于将基于可用带宽的选路要素的权重值分配给可用带宽最大的ISP线路;

第二分配模块还用于当多条ISP线路的可用带宽相同且最大时,将基于可用带宽的选路要素的权重值分配给所述多条ISP线路中最大带宽最大的ISP线路。

具体的,所述分配单元用于当选路要素包括基于带宽利用率的选路要素时,将基于带宽利用率的选路要素的权重值分配给选择的ISP线路;其中,所述分配单元包括:

带宽利用率计算模块,用于根据待选择的各条ISP线路各自的已用带宽以及各自的最大带宽计算各条ISP线路的带宽利用率;

第三分配模块,用于将基于带宽利用率的选路要素的权重值分配给带宽利用率最小的ISP线路;

第三分配模块还用于当多条ISP线路的带宽利用率相同且最小时,将基于带宽利用率的选路要素的权重值分配给所述多条ISP线路中最大带宽最大的ISP线路。

具体的,所述分配单元用于当选路要素包括基于时延的选路要素时,将基于时延的选路要素的权重值分配给选择的ISP线路;其中,所述分配单元包括:

时延测试模块,用于分别在待选择的各条ISP线路的接口上向所述数据包的目的IP地址发送测试报文,获取测试报文在各条ISP线路的接口到所述数据包的目的IP地址之间的往返时延;

第四分配模块,用于将基于时延的选路要素的权重值分配给往返时延最短的ISP线路;

第四分配模块还用于当多条ISP线路的往返时延相同且最短时,将基于时延的选路要素的权重值分配给所述多条ISP线路中最大带宽最大的ISP线路。

具体的,所述装置还包括:

判断单元,用于在网关接收到数据包后,判断所述数据包是否对应有转发时记录的会话;

转发单元,用于当判断单元的判断结果为是时,根据对应的会话直接转发所述数据包。

具体的,所述判断单元用于将所述数据包中的五元组信息与转发时记录的会话中的五元组信息进行比对,确定所述数据包是否对应有转发时记录的会话。

具体的,所述装置还包括:

创建单元,用于当判断单元判断所述数据包未对应有转发时记录的会话时,将未对应有转发时记录的会话的数据包确定为首数据包,为所述首数据包新建会话,将所述目标线路的接口ID记录在新建会话中;

所述转发单元用于当对应新建会话的后续数据包达到网关时,根据新建会话中记录的接口ID对后续数据包直接进行转发。

具体的,所述装置还包括:

计时单元,用于根据预设的时间间隔,通过预设的选路要素重新选择目标线路;

刷新单元,用于当重新选择的目标线路和之前的目标线路不一致时,刷新会话;

所述转发单元用于根据刷新后会话中记录的最新接口ID对数据包进行转发。

具体的,所述确定单元用于当选择的多条ISP线路的总权重值相同且最大时,则根据权重值最大的选路要素,从所述多条ISP线路中选择具有选路要素中的最大权重值的一条ISP线路作为目标线路;若根据权重值最大的选路要素选择的目标线路为多条ISP线路时,则继续根据选路要素中的权重值的大小顺序依次进行选择;

所述确定单元还用于当根据选路要素中的权重值的大小顺序依次进行选择后还确定有多条目标线路,则从中随机选择一个目标线路确定为转发所述数据包的目标线路。

依据本发明的第三个方面,本发明提供了一种网关,所述网关包括:

如上述第二个方面所述的ISP选路装置;

所述网关中的ISP选路装置,用于在网关接收到数据包后,根据预设的至少一种选路要素选择ISP线路;用于将选路要素的权重值分配给根据对应选路要素选择的ISP线路;用于将选择的各条ISP线路分配的权重值进行统计,得到各条ISP线路各自的总权重值;用于将总权重值最大的ISP线路确定为转发所述数据包的目标线路。

借由上述技术方案,本发明实施例提供的一种ISP选路方法、装置及网关,能够在数据包到达网关时,由网关根据预设的选路要素选择ISP线路,并将选路要素的权重值分配给选择的ISP线路,当根据多种选路要素分别选择了ISP线路并将各自的权重值分配给选择的ISP线路之后,统计各条ISP线路各自的总权重值,将总权重值最大的ISP线路确定为转发数据包的目标线路。由于每种选路要素都对应有自身的选路策略及权重值,将满足选路要素对应选路策略的ISP线路被赋予相应的权重值之后,总权重值最大的ISP线路一定是转发数据包的最优ISP线路。由于网关接收到数据包后都能够通过最优的ISP线路进行转发,因此能够提高数据流量转发的效率以及各条ISP线路的数据吞吐量。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种ISP选路方法的流程示意图;

图2示出了本发明实施例提供的一种ISP选路装置的组成框图;

图3示出了本发明实施例提供的一种ISP选路装置的组成框图;

图4示出了一种使用本发明实施例提供的网关转发数据的示意图。

具体实施方式

下面将参照附图更加详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

在现有的使用多条ISP线路的网络环境下,ISP选路需要预先进行路由配置,当ISP线路上的流量状态发生变化时,其路由配置无法自动调整,从而无法为数据流量选择最合适的ISP线路进行转发。

为了解决上述问题,本发明实施例提供了一种ISP选路方法,主要是由网关基于不同的选路要素分别选择相应的ISP线路,并将选路要素的权重值分配给基于所述选路要素选择的ISP线路,最终根据选择的各条ISP线路各自的总权重值,确定最为合适的ISP线路来转发数据包。如图1所示,该方法包括:

101、网关接收到数据包后,根据预设的至少一种选路要素选择ISP线路。

在企业日常的网络化办公中,无论是在内部网与外部网之间,还是专用网与公共网之间,都需要为交互的数据建立一个保护屏障。该保护屏障可以通过网关设备来实现。其中,一种常用的网关设备是防火墙,其是由软件和硬件设备组合而成,计算机中流入和流出的数据包都要经过防火墙的检测,并在防火墙的ISP线路接口上被防火墙转发。但是在现有技术中,通常在网关上为不同来源的数据预先配置好对应的ISP线路接口,然而当数据流量状态发生变化时,网关无法为数据流量动态选择最合适的ISP线路进行转发。而本发明实施例为了避免上述情况的发生,通过在网关上配置多种选路要素的选路策略,当数据包到达网关时,网关根据不同选路要素的选路策略来选择合适的ISP线路。因此在本发明实施例中,当网关接收到数据包后,需要根据预设的至少一种选路要素选择ISP线路。其中,每种选路要素都对应有一个权重值。

102、将选路要素的权重值分配给根据对应选路要素选择的ISP线路。

在步骤101中需要根据至少一种选路要素来选择ISP线路,并且每种选路要素都对应有一个权重值。因此,当根据其中一种选路要素A来选择ISP线路时,就需要将选路要素A的权重值分配给选路要素A选择的ISP线路;当根据选路要素B来选择ISP线路时,就需要将选路要素B的权重值分配给选路要素B选择的ISP线路。这里需要说明的是,选路要素A和选路要素B各自对应的选路策略不同,但是基于选路要素A选择的ISP线路和基于选路要素B选择的ISP线路可以是同一条ISP线路,也可以是不同的ISP线路。

103、将选择的各条ISP线路分配的权重值进行统计,得到各条ISP线路各自的总权重值。

由于基于不同的选路要素选择的ISP线路通常为不同的ISP线路,所以基于不同的选路要素选择的ISP线路有多条;但是,基于不同的选路要素选择的ISP线路也可能为同一条ISP线路,所以对于被选择的某条ISP线路而言,其可能被分配不同选路要素的权重值。基于上述两个方面的原因,在通过步骤102将选路要素的权重值分配给对应选路要素选择的ISP线路之后,还需要通过步骤103来统计选择的各条ISP线路被分配的权重值,得到各条ISP线路各自的总权重值。

104、将总权重值最大的ISP线路确定为转发所述数据包的目标线路。

由于不同的选路要素对应不同的选路策略,只有满足某个选路要素的选路策略要求的ISP线路才会被分配该选路要素的权重值,ISP线路被分配的权重值越多,ISP线路就越适合发送数据包。因此,在通过步骤103得到各条ISP线路各自的总权重值之后,就需要通过步骤104将总权重值最大的ISP线路确定为转发所述数据包的目标线路。

本发明实施例提供的一种ISP选路方法,能够在数据包到达网关时,由网关根据预设的选路要素选择ISP线路,并将选路要素的权重值分配给选择的ISP线路,当根据多种选路要素分别选择了ISP线路并将各自的权重值分配给选择的ISP线路之后,统计各条ISP线路各自的总权重值,将总权重值最大的ISP线路确定为转发数据包的目标线路。由于每种选路要素都对应有自身的选路策略及权重值,将满足选路要素对应选路策略的ISP线路被赋予相应的权重值之后,总权重值最大的ISP线路一定是转发数据包的最优ISP线路。由于网关接收到数据包后都能够通过最优的ISP线路进行转发,因此能够提高数据流量转发的效率以及各条ISP线路的数据吞吐量。

进一步的,由于本发明实施例提供的ISP选路方法需要在网关上基于选路要素选择合适的ISP线路来转发数据包,并且为了保证选择的ISP线路能够在例如带宽、IP地址库等不同的方面来满足转发数据包的需求,因此在网关上还需要基于多种选路要素的综合选择来确定转发数据包的目标线路。在本发明实施例中,预设的选路要素包括:基于地址库的选路要素、基于可用带宽的选路要素、基于带宽利用率的选路要素以及基于时延的选路要素。这些选路要素被预先配置有各自的权重值,权重值由管理员进行配置,管理员根据网络的特点或者不同业务的需求,可以为不同的选路要素配置不同的权重值。例如,如果希望以ISP线路的负载状况为依据进行ISP线路的选择,那么可以把基于可用带宽的选路要素和/或基于带宽利用率的选路要素的权重值配置的大一些;如果希望以网速状况为依据进行ISP线路的选择,那么可以把基于时延的选路要素的权重值配置的大一些。在本发明实施例中,权重值的范围可以设置为1-10,数字越大,权重值越高。

当然,在基于预设的选路要素选择ISP线路时,可以基于至少一种选路要素来选择ISP线路,而为了得到最合适的ISP线路则需要基于多种选路要素来选择。以下将针对各种不同的选路要素,具体说明每种选路要素的选路策略,也就是基于每种选路要素是如何选择相应的ISP线路的。

以基于地址库的选路要素为例,在选择ISP线路时需要将基于地址库的选路要素的权重值分配给选择的ISP线路。具体过程如下:首先,需要将网关接收到的数据包的目的IP地址与待选择的各条ISP线路各自的IP地址库进行匹配;其中,待选择的ISP线路就是企业或单位租用的所有ISP线路,本发明实施例中ISP线路的IP地址库中的IP地址,不仅包括ISP线路所属的互联网服务提供商的IP地址,而且还包括管理员自定义的IP地址,并且在将数据包的目的IP地址与ISP线路的IP地址库匹配时,优先匹配管理员自定义的IP地址;而数据包的目的IP地址是网关从数据包的报头中获取的。当所述数据包的目的IP地址存在于某条ISP线路的IP地址库,也就是所述数据包的目的IP地址与某条ISP线路的IP地址库匹配成功时,匹配成功的所述ISP线路就是基于地址库的选路要素选择的ISP线路,同时需要将基于地址库的选路要素的权重值分配给选择的ISP线路。其中,若所述数据包的目的IP地址在所有ISP线路的IP地址库中都匹配不到,则确认基于地址库的选路要素的选路失败。此时,可以根据其他种类的选路要素选择转发数据包的ISP线路。通常情况下,在基于地址库的选路要素选择ISP线路时,其选择结果为选出一条ISP线路,或者选路失败。通过选择IP地址库中包含所述数据包的目的IP地址的ISP线路转发数据包,避免了用其他ISP线路转发所述数据包时需要经过复杂的IP转换才能交互成功,提高了数据包在客户端和服务器之间交互的效率。

以基于可用带宽的选路要素为例,在选择ISP线路时需要将基于可用带宽的选路要素的权重值分配给选择的ISP线路。具体过程如下:首先,需要根据公式“ISP线路的可用带宽=ISP线路的最大带宽-ISP线路的已用带宽”,来计算待选择的各条ISP线路的可用带宽,可用带宽最大的ISP线路就是基于可用带宽的选路要素选择的ISP线路;然后将基于可用带宽的选路要素的权重值分配给选择的ISP线路。其中,各条ISP线路的最大带宽以及已用带宽可以通过网关的监测得到。进一步的,若经过计算得到多条ISP线路的可用带宽相同且最大时,就需要从中选择最大带宽最大的那条ISP线路作为基于可用带宽的选路要素选择的ISP线路。当待选择的全部ISP线路的可用带宽相同时,则确认基于可用带宽的选路要素的选路失败。此时,可以根据其他种类的选路要素选择转发数据包的ISP线路。某条ISP线路的可用带宽最大,说明该条ISP线路的负载与其他ISP线路相比较低,更适合转发数据包。通过选择可用带宽最大的ISP线路转发数据包,避免了在可用带宽较少、负载过高的ISP线路转发数据包所带来的转发效率低下,甚至丢失数据包的情况发生。

以基于带宽利用率的选路要素为例,在选择ISP线路时需要将基于带宽利用率的选路要素的权重值分配给选择的ISP线路。具体过程如下:首先,需要根据公式“ISP线路的带宽利用率=ISP线路的已用带宽/ISP线路的最大带宽”,来计算待选择的各条ISP线路的带宽利用率,带宽利用率最小的ISP线路就是基于带宽利用率的选路要素选择的ISP线路;然后将基于带宽利用率的选路要素的权重值分配给选择的ISP线路。其中,各条ISP线路的已用带宽以及最大带宽可以通过网关的监测得到。进一步的,若经过计算得到多条ISP线路的带宽利用率相同且最小时,就需要从中选择最大带宽最大的那条ISP线路作为基于带宽利用率的选路要素选择的ISP线路。当待选择的全部ISP线路的带宽利用率相同时,则确认基于带宽利用率的选路要素的选路失败。此时,可以根据其他种类的选路要素选择转发数据包的ISP线路。某条ISP线路的带宽利用率最小,说明该条ISP线路的负载与其他ISP线路相比较低,更适合转发数据包。通过选择带宽利用率最小的ISP线路转发数据包,避免了在带宽利用率较大、负载过高的ISP线路转发数据包所带来的转发效率低下,甚至丢失数据包的情况发生。

以基于时延的选路要素为例,在选择ISP线路时需要将基于时延的选路要素的权重值分配给选择的ISP线路。具体过程如下:首先,需要针对数据包的目的IP地址,分别在待选择的各条ISP线路的接口上向所述目的IP地址发送测试报文,通常为PING报文,分别获取测试报文在各条ISP线路的接口到数据包的目的IP地址之间的往返时延,这个往返时延可以称为ISP线路的往返时延,往返时延最短的ISP线路就是基于时延的选路要素选择的ISP线路;然后将基于时延的选路要素的权重值分配给选择的ISP线路。进一步的,若经过测试得到多条ISP线路的往返时延相同且最短时,就需要从中选择最大带宽最大的那条ISP线路作为基于时延的选路要素选择的ISP线路。当待选择的全部ISP线路的往返时延相同时,则确认基于往返时延的选路要素的选路失败。此时,可以根据其他种类的选路要素选择转发数据包的ISP线路。某条ISP线路的往返时延最短,说明该条ISP线路的信道与其他ISP线路相比更加通畅,能够更快速的转发数据包。通过选择往返时延最短的ISP线路转发数据包,避免了在信道拥塞的ISP线路转发数据包所带来的转发效率低下,甚至丢失数据包的情况发生。

上述列举的基于各种不同选路要素的选路策略,相互之间互不影响。可以基于其中的一种选路要素选择转发数据包的ISP线路,当然也可以基于多种选路要素共同选择转发数据包的ISP线路。现以基于多种选路要素共同选择ISP线路为例,若待选择的ISP线路为三条ISP1、ISP2、ISP3,基于地址库的选路要素的权重值为4,基于可用带宽的选路要素的权重值为6,基于带宽利用率的选路要素的权重值为7,基于时延的选路要素的权重值为5。当基于地址库的选路要素选择的线路为ISP1时,将权重值4分配给ISP1;当基于可用带宽的选路要素选择的线路为ISP2时,将权重值6分配给ISP2;当基于带宽利用率的选路要素选择的线路为ISP1及ISP3时,将权重值7分配给ISP1及ISP3;当基于时延的选路要素选择的线路为ISP3时,将权重值5分配给ISP3。

当通过上述多种选路要素选择了对应的ISP线路之后,就可以将选择的各条ISP线路分配的权重值进行统计,得到各条ISP线路各自的总权重值。其中,ISP1的总权重值为4+7=11,ISP2的总权重值为6,ISP3的总权重值为7+5=12。由上可知,总权重值最大的线路为ISP3,所以可以将总权重值最大的ISP3确定为转发所述数据包的目标线路。

上述列举的只是总权重值最大的ISP线路为一条的情况,但是在实际情况下,还会存在多条ISP线路的总权重值相同且最大,在这种情况下就需要根据选路要素中权重值最大的选路要素来确定选择哪条ISP线路作为目标线路,也就是从总权重值相同且最大多条ISP线路中,选择具有选路要素中的最大权重值的一条ISP线路作为目标线路。例如,若总权重值相同且最大的ISP线路为ISP1及ISP2,其总权重值为11(其中,基于地址库的选路要素的权重值为4,基于可用带宽的选路要素的权重值为6,基于带宽利用率的选路要素的权重值为7,基于时延的选路要素的权重值为5),当ISP1的总权重值为6+5=11,而ISP2的总权重值为7+4=11,由于ISP2的总权重值中包含选路要素中的最大权重值7,所以需要从ISP1和ISP2中选择ISP2作为转发数据包的目标线路。之所以这样处理,是因为管理员在配置选路要素的权重值时,选路要素的权重值越大,说明管理员越希望以该选路要素为依据进行ISP线路的选择。所以说选择具有最大权重值7的ISP2是最符合管理员要求的目标线路。进一步的,若根据权重值最大的选路要素选择的目标线路为多条ISP线路时,则继续根据选路要素中的权重值的大小顺序依次进行选择;若根据选路要素中的权重值的大小顺序依次进行选择后还确定有多条目标线路,则从中随机选择一个目标线路确定为转发所述数据包的目标线路。

以上实施例在选择ISP线路时,是对于网关上接收的任何数据包都进行选路的实施方式。当然,为了进一步提高数据包转发的效率,本发明实施例还提供了一种可选的实施方式。该可选的实施方式需要在网关接收到数据包后,判断所述数据包是否对应有转发时记录的会话,所述转发时记录的会话,是指网关在转发数据包时为该数据包记录的转发信息,包括该数据包的源IP地址,源端口,目的IP地址,目的端口和传输层协议,同时还包括转发该数据包的ISP线路接口ID。若网关判断接收的数据包不存在对应的会话时,根据上述实施方式选择某个ISP线路进行转发,此处不再赘述;若网关判断接收的数据包存在对应的会话时,则根据对应的会话中记录的ISP线路接口ID直接转发所述数据包。具体的,网关在判断所述数据包是否对应有转发时记录的会话时,需要提取所述数据包的报头中的五元组信息,五元组信息包括:数据包的源IP地址,源端口,目的IP地址,目的端口和传输层协议,并将所述数据包中的五元组信息与转发时记录的会话中的五元组信息进行比对,确定所述数据包是否对应有转发时记录的会话。

进一步的,对于网关判断接收的数据包不存在对应的会话的情况,说明该数据包所在的数据流还没有经过网关进行转发,此时可以将未对应有转发时记录的会话的数据包确定为首数据包,由网关为所述首数据包新建会话,并将转发的目标线路的接口ID记录在新建会话中;从而当对应新建会话的后续数据包达到网关时,根据新建会话中记录的接口ID可以对后续数据包直接进行转发;同样的,对于有依赖关系的父连接(如FTP中的下载命令)和子连接(传输文件),父连接也可以根据本发明实施例提供的选路方式进行选路,而由子连接继承父连接的选路结果,保证父连接和子连接使用的ISP线路接口相同。通过上述转发方式,可以极大提高数据包转发的效率。

以上提供的不同实施方式,既包括了转发数据包时ISP线路的智能选择,又包括了选路成功后数据包的高效转发;但是,当根据选择的目标线路转发数据包经过一定的时长后,后续的网络环境可能会变化,比如某些ISP线路的流量加大了,或是某些ISP线路的时延变化了,对于后续的数据包来说,这个选路就不是最优的。为了解决这个问题,本发明实施例还可以在网关内另外启动一个线程,该线程用于每隔一段时间,通过上述预设的选路要素重新选择目标线路,当重新选择的目标线路和之前的目标线路一致时,根据原有的目标线路直接转发数据包,当重新选择的目标线路和之前的目标线路不一致时,刷新会话,根据刷新后会话中记录的最新接口ID对数据包进行转发。

通过以上各种实施方式,不仅能够根据不同选路要素的选路策略智能的选择转发数据包的最优ISP线路,而且在选路成功后通过建立会话信息,实现对数据包的高效率转发,并且通过在网关另起线程实现动态更新选路,以便数据包始终以最合适的ISP线路进行转发。

进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种ISP选路装置,如图2所示,该装置包括:选择单元21、分配单元22、统计单元23以及确定单元24,其中,

选择单元21,用于在网关接收到数据包后,根据预设的至少一种选路要素选择ISP线路;其中,每种选路要素都对应有一个权重值;

分配单元22,用于将选路要素的权重值分配给根据对应选路要素选择的ISP线路;例如,当根据其中一种选路要素A来选择ISP线路时,就需要将选路要素A的权重值分配给选路要素A选择的ISP线路;当根据选路要素B来选择ISP线路时,就需要将选路要素B的权重值分配给选路要素B选择的ISP线路;

统计单元23,用于将选择的各条ISP线路分配的权重值进行统计,得到各条ISP线路各自的总权重值;

确定单元24,用于将总权重值最大的ISP线路确定为转发所述数据包的目标线路。

进一步的,选择单元21用于根据基于地址库的选路要素、基于可用带宽的选路要素、基于带宽利用率的选路要素以及基于时延的选路要素中的至少一种选路要素选择ISP线路。其中,这些选路要素被预先配置有各自的权重值,权重值由管理员进行配置,管理员根据网络的特点或者不同业务的需求,可以为不同的选路要素配置不同的权重值。

进一步的,分配单元22用于当选路要素包括基于地址库的选路要素时,将基于地址库的选路要素的权重值分配给选择的ISP线路;其中,如图3所示,分配单元22包括:

IP地址匹配模块221,用于将所述数据包的目的IP地址分别与待选择的各条ISP线路各自的IP地址库进行匹配;

第一分配模块222,用于当所述数据包的目的IP地址与待选择的某条ISP线路的IP地址库中的IP地址相匹配时,将基于地址库的选路要素的权重值分配给匹配成功的ISP线路。通过选择IP地址库中包含所述数据包的目的IP地址的ISP线路转发数据包,避免了用其他ISP线路转发所述数据包时需要经过复杂的IP转换才能交互成功,提高了数据包在客户端和服务器之间交互的效率。

进一步的,分配单元22用于当选路要素包括基于可用带宽的选路要素时,将基于可用带宽的选路要素的权重值分配给选择的ISP线路;其中,如图3所示,分配单元22包括:

可用带宽计算模块223,用于根据待选择的各条ISP线路各自的最大带宽以及各自的已用带宽计算各条ISP线路的可用带宽;

第二分配模块224,用于将基于可用带宽的选路要素的权重值分配给可用带宽最大的ISP线路;

第二分配模块224还用于当多条ISP线路的可用带宽相同且最大时,将基于可用带宽的选路要素的权重值分配给所述多条ISP线路中最大带宽最大的ISP线路。通过选择可用带宽最大的ISP线路转发数据包,避免了在可用带宽较少、负载过高的ISP线路转发数据包所带来的转发效率低下,甚至丢失数据包的情况发生。

进一步的,分配单元22用于当选路要素包括基于带宽利用率的选路要素时,将基于带宽利用率的选路要素的权重值分配给选择的ISP线路;其中,如图3所示,分配单元22包括:

带宽利用率计算模块225,用于根据待选择的各条ISP线路各自的已用带宽以及各自的最大带宽计算各条ISP线路的带宽利用率;

第三分配模块226,用于将基于带宽利用率的选路要素的权重值分配给带宽利用率最小的ISP线路;

第三分配模块226还用于当多条ISP线路的带宽利用率相同且最小时,将基于带宽利用率的选路要素的权重值分配给所述多条ISP线路中最大带宽最大的ISP线路。通过选择带宽利用率最小的ISP线路转发数据包,避免了在带宽利用率较大、负载过高的ISP线路转发数据包所带来的转发效率低下,甚至丢失数据包的情况发生。

进一步的,分配单元22用于当选路要素包括基于时延的选路要素时,将基于时延的选路要素的权重值分配给选择的ISP线路;其中,如图3所示,分配单元22包括:

时延测试模块227,用于分别在待选择的各条ISP线路的接口上向所述数据包的目的IP地址发送测试报文,获取测试报文在各条ISP线路的接口到所述数据包的目的IP地址之间的往返时延;

第四分配模块228,用于将基于时延的选路要素的权重值分配给往返时延最短的ISP线路;

第四分配模块228还用于当多条ISP线路的往返时延相同且最短时,将基于时延的选路要素的权重值分配给所述多条ISP线路中最大带宽最大的ISP线路。通过选择往返时延最短的ISP线路转发数据包,避免了在信道拥塞的ISP线路转发数据包所带来的转发效率低下,甚至丢失数据包的情况发生。

进一步的,如图3所示,所述装置还包括:

判断单元25,用于在网关接收到数据包后,判断所述数据包是否对应有转发时记录的会话;所述转发时记录的会话,是指网关在转发数据包时为该数据包记录的转发信息,包括该数据包的源IP地址,源端口,目的IP地址,目的端口和传输层协议,同时还包括转发该数据包的ISP线路接口ID。

转发单元26,用于当判断单元25的判断结果为是时,根据对应的会话直接转发所述数据包。具体的,是根据对应的会话中记录的ISP线路接口ID直接转发所述数据包。

进一步的,判断单元25用于将所述数据包中的五元组信息与转发时记录的会话中的五元组信息进行比对,确定所述数据包是否对应有转发时记录的会话。

进一步的,如图3所示,所述装置还包括:

创建单元27,用于当判断单元25判断所述数据包未对应有转发时记录的会话时,将未对应有转发时记录的会话的数据包确定为首数据包,为所述首数据包新建会话,将所述目标线路的接口ID记录在新建会话中;

转发单元26用于当对应新建会话的后续数据包达到网关时,根据新建会话中记录的接口ID对后续数据包直接进行转发。通过上述转发方式,可以极大提高数据包转发的效率。

但是,当根据选择的目标线路转发数据包经过一定的时长后,后续的网络环境可能会变化,比如某些ISP线路的流量加大了,或是某些ISP线路的时延变化了,对于后续的数据包来说,这个选路就不是最优的。

为了解决这个问题,进一步的,如图3所示,所述装置还包括:

计时单元28,用于根据预设的时间间隔,通过预设的选路要素重新选择目标线路;

刷新单元29,用于当重新选择的目标线路和之前的目标线路不一致时,刷新会话;

转发单元26用于根据刷新后会话中记录的最新接口ID对数据包进行转发。

进一步的,确定单元24用于当选择的多条ISP线路的总权重值相同且最大时,则根据权重值最大的选路要素,从所述多条ISP线路中选择具有选路要素中的最大权重值的一条ISP线路作为目标线路;若根据权重值最大的选路要素选择的目标线路为多条ISP线路时,则继续根据选路要素中的权重值的大小顺序依次进行选择;

确定单元24还用于当根据选路要素中的权重值的大小顺序依次进行选择后还确定有多条目标线路,则从中随机选择一个目标线路确定为转发所述数据包的目标线路。

本发明实施例提供的一种ISP选路装置,能够在数据包到达网关时,由网关根据预设的选路要素选择ISP线路,并将选路要素的权重值分配给选择的ISP线路,当根据多种选路要素分别选择了ISP线路并将各自的权重值分配给选择的ISP线路之后,统计各条ISP线路各自的总权重值,将总权重值最大的ISP线路确定为转发数据包的目标线路。由于每种选路要素都对应有自身的选路策略及权重值,将满足选路要素对应选路策略的ISP线路被赋予相应的权重值之后,总权重值最大的ISP线路一定是转发数据包的最优ISP线路。由于网关接收到数据包后都能够通过最优的ISP线路进行转发,因此能够提高数据流量转发的效率以及各条ISP线路的数据吞吐量。

此外,上述ISP选路装置不仅能够根据不同选路要素的选路策略智能的选择转发数据包的最优ISP线路,而且在选路成功后通过建立会话信息,实现对数据包的高效率转发,并且通过在网关另起线程实现动态更新选路,以便数据包始终以最合适的ISP线路进行转发。

进一步的,作为对上述图1所示方法的实现,以及对图2和图3所示装置的应用,本发明实施例还提供了一种网关,所述网关包括:如图2或图3所示的ISP选路装置;如图4所示,在使用网关的过程中,网关与不同的内网(例如内网1、内网2)相连,同时通过不同的ISP线路与不同的服务器相连,为内网的出入数据流选择合适的ISP线路(如ISP1、ISP2、ISP3),并将数据流转发至不同的服务器(不同ISP线路所属的服务器)。

其中,所述网关中的ISP选路装置,用于在网关接收到数据包后,根据预设的至少一种选路要素选择ISP线路;用于将选路要素的权重值分配给根据对应选路要素选择的ISP线路;用于将选择的各条ISP线路分配的权重值进行统计,得到各条ISP线路各自的总权重值;用于将总权重值最大的ISP线路确定为转发所述数据包的目标线路。

本发明实施例提供的一种网关,能够在数据包到达网关时,由网关根据预设的选路要素选择ISP线路,并将选路要素的权重值分配给选择的ISP线路,当根据多种选路要素分别选择了ISP线路并将各自的权重值分配给选择的ISP线路之后,统计各条ISP线路各自的总权重值,将总权重值最大的ISP线路确定为转发数据包的目标线路。由于每种选路要素都对应有自身的选路策略及权重值,将满足选路要素对应选路策略的ISP线路被赋予相应的权重值之后,总权重值最大的ISP线路一定是转发数据包的最优ISP线路。由于网关接收到数据包后都能够通过最优的ISP线路进行转发,因此能够提高数据流量转发的效率以及各条ISP线路的数据吞吐量。

此外,上述网关不仅能够根据不同选路要素的选路策略智能的选择转发数据包的最优ISP线路,而且在选路成功后通过建立会话信息,实现对数据包的高效率转发,并且通过在网关另起线程实现动态更新选路,以便数据包始终以最合适的ISP线路进行转发。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

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