一种数据流负载分担的方法和设备与流程

文档序号:15394668发布日期:2018-09-08 01:54阅读:149来源:国知局

本发明涉及通信技术领域,特别涉及一种数据流负载分担的方法和设备。



背景技术:

通过对数据流采用负载分担技术,可以提高网络的可靠性和对链路带宽的利用。逐流负载分担是指在对报文的协议类型可识别的基础上,对识别出的报文类型使用固定的流特征元素字段方法和基于单板/接口可配置的负载分担算法进行负载分担路径的选取。

当前负载分担是基于设备的物理端口分配数据流,依据五元组信息对数据流进行负载分担计算。例如,转发设备有四个物理端口,可以对该转发设备的四个物理端口进行负载分担计算。如果该转发设备的一个物理端口发生故障不能发送数据流时,则需要对数据流重新进行负载分担计算,将数据流均匀分配到其它三个物理端口,这样会使原来散列在其它三个物理端口的数据流无法全部继续散列在原来的物理端口,导致数据流因为路径变化带来的流量跃迁无法满足金融、电力、无线等业务网络对数据流传输性能和稳定性的部署要求。



技术实现要素:

本申请实施例提供了一种负载分担的方法、设备和存储介质,可以降低因为链路变化导致流量跃迁产生的不稳定性和性能影响。

第一方面,本申请提供了一种数据流负载分担的方法,所述方法包括网络设备根据第一负载分担算法确定用于发送数据流的物理端口。根据所述第一负载分担算法确定的物理端口是第一端口集合确定物理端口。包括第一物理端口的所述第一端口集合中的多个端口是所述网络设备的物理端口。

所述网络设备经由根据所述第一负载分担算法确定的用于发送所述数据流的物理端口发送所述数据流。

在所述网络设备经由根据第一负载分担算法确定的物理端口发送所述数据流的过程中,如果所述第一物理端口发生故障,则所述网络设备根据所述第一负载分担算法确定用于发送第二子数据流的物理端口,并且根据第二负载分担算法确定用于发送第一子数据流的物理端口。根据所述第二负载分担算法确定的物理端口是第二端口集合中的物理端口。所述第二端口集合不包括所述第一物理端口。所述第二端口集合包括的多个端口是所述网络设备的物理端口。所述第一子数据流为根据所述第一负载分担算法确定由所述第一物理端口发送的子数据流。所述第二子数据流为根据所述第一负载分担算法确定由所述第一端口集合中除所述第一物理端口之外的其它物理端口发送的子数据流。所述第一子数据流和所述第二子数据流是所述数据流中的子数据流。

所述网络设备经由所述网络设备确定的用于发送所述第一子数据流的物理端口发送所述第一子数据流,并且经由所述网络设备确定的用于发送所述第二子数据流的物理端口发送所述第二子数据流。

通过上述方案,可以减少在数据流传输过程中因端口故障需要重新对数据流进行负载分担计算导致数据流传输的不稳定性。在数据流传输过程中如果传输流量的物理端口出现故障,只需要对发生故障的物理端口所发送的数据流进行负载分担计算,将这些数据流均匀的分配到其它能够正常发送数据流的物理端口,这样就可以减少数据流传输的不稳定性,满足业务传输的要求。

结合第一方面,在第一种可能的实现方式中,所述网络设备根据第一负载分担算法确定用于发送数据流的物理端口包括:

所述网络设备将所述数据流分为m个子数据流,m为所述第一端口集合的物理端口n的正整数倍。

所述网络设备确定所述m个子数据流对应的物理端口,所述网络设备根据所述第一负载分担算法确定用于发送所述数据流的物理端口是所述m个子数据流对应的物理端口。每个子数据流对应所述第一端口集合中的一个物理端口。所述第一端口集合中的每个物理端口对应的子数据流的数量为m/n。

通过上述方案,网络设备通过计算获得发送数据流的物理端口个数的最小公倍数,接着通过第一负载分担将所述数据流分为与最小公倍数相同份数。这样在网络设备的物理端口出现故障的情况下,可以将故障端口发送的数据流均匀的分配到其它正常发送数据流的物理端口。

结合第一方面,在第二种可能的实现方式中,该方法还包括当所述第一物理端口恢复发送所述数据流的能力时,所述网络设备将第一次负载分担计算分类后的所述数据流按照计算后确定的物理端口发送。

通过上述方案,在故障端口恢复后并且可以正常发送数据流时,继续按照第一关键字段对数据流进行负载分担hash计算,将所述数据流均匀的分配到网络设备的物理端口上,恢复到物理端口故障前对数据流的分配,降低因链路变化带来的数据流传输的不稳定性。

结合第一方面,在第三种可能的实现方式中,所述网络设备根据第一负载分担算法确定用于发送数据流的物理端口包括:

所述网络设备根据哈希算法将所述数据流中的报文的字段作为哈希键,并确定所述哈希算法的哈希值。

所述网络设备根据所述哈希值确定用于发送所述数据流的物理端口,所述字段包括源网际协议ip地址、目的ip地址、源端口号、目的端口号和协议号。

第二方面,本发明实施例提供了一种数据流负载分担的网络设备,所述网络设备包括确定单元和发送单元。

确定单元用于根据第一负载分担算法确定用于发送数据流的物理端口,根据所述第一负载分担算法确定的物理端口是第一端口集合确定物理端口,包括第一物理端口的所述第一端口集合中的多个端口是所述网络设备的物理端口。

发送单元用于用于经由根据所述第一负载分担算法确定的用于发送所述数据流的物理端口发送所述数据流。

所述确定单元还用于经由根据第一负载分担算法确定的物理端口发送所述数据流的过程中,如果所述第一物理端口发生故障,则根据所述第一负载分担算法确定用于发送第二子数据流的物理端口,并且根据第二负载分担算法确定用于发送第一子数据流的物理端口。根据所述第二负载分担算法确定的物理端口是第二端口集合中的物理端口。所述第二端口集合不包括所述第一物理端口。所述第二端口集合包括的多个端口是所述网络设备的物理端口。所述第一子数据流为根据所述第一负载分担算法确定由所述第一物理端口发送的子数据流。所述第二子数据流为根据所述第一负载分担算法确定由所述第一端口集合中除所述第一物理端口之外的其它物理端口发送的子数据流。所述第一子数据流和所述第二子数据流是所述数据流中的子数据流。

所述发送单元还用于在所述网络设备根据第一负载分担算法确定的物理端口发送所述数据流的过程中,如果所述第一物理端口发生故障,根据确定单元确定的结果由发送所述第一子数据流的物理端口发送所述第一子数据流,并且经由所述网络设备确定的发送所述第二子数据流的物理端口发送所述第二子数据流。

通过上述方案,可以降低数据流在传输过程中因端口故障造成的数据流传输不稳定性。

结合第二方面,在第一种可能的实现方式中,所述设备还包分配单元。

所述分配单元用于将所述数据流分为m个子数据流,m为所述第一端口集合的物理端口n的正整数倍。

所述确定单元还用于确定所述m个子数据流对应的物理端口,并根据所述第一负载分担算法确定用于发送所述数据流的物理端口是所述m个子数据流对应的物理端口。每个子数据流对应所述第一端口集合中的一个物理端口。所述第一端口集合中的每个物理端口对应的子数据流的数量为m/n。

结合第二方面,在第二种可能的实现方式中,所述确定单元用于根据哈希算法将所述数据流中的报文的字段作为哈希键,确定所述哈希算法的哈希值,并根据所述哈希值确定用于发送所述数据流的物理端口,所述字段包括源网际协议ip地址、目的ip地址、源端口号、目的端口号和协议号。

第三方面,本申请的又提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面和第二方面以及各个可能实现方式的所述的方法。

附图说明

图1为本申请实施例提供的一种数据流负载分担场景示意图;

图2为本发明实施例提供的又一种数据流负载分担场景示意图;

图3为本发明实施例提供的一种数据流负载分担的方法流程示意图;

图4为本发明实施例提供的一种网络设备结构示意图;

图5为本发明实施例提供的又一种网络设备结构示意图。

具体实施方式

下面将结合附图对本发明作进一步地详细描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部实施例。

参见图1为本申请实施例提供了一种数据流负载负担场景示意图,该网络系统可以为例如ipran(英文:internetprotocolradioaccessnetwork)/城域网,ptn(英文:packettransportnetwork)、sdh(英文:synchronousopticalnetworking)网络、光传输网等数据传输网或承载网等任何网络场景。该网络系统包括第一网络设备和第二网络设备。需要说明的是,本申请实施例中的第一网络设备和第二网络设备具体可以为路由器、交换机等转发业务流量的设备,而且还包括在sdn(softwaredefinednetwork)场景下的交换机,在sdn情况下,该网络设备可以是由控制器以及相应的转发设备一起组合而成。第一网络设备接收数据流后,可以依据数据流的特征元素字段对该数据流进行负载分担hash计算,获得该数据流的路径以及确定发送该数据流的物理端口。

举例来说,图1中的第一网络设备接收该数据流之后可以依据数据流的特征元素字段对该数据流进行负载分担计算,其中特征元素可以是ip五元组,也可以是ip二元组。依据计算结果获得转发该数据流的四条路径,这四条路径与第一网络设备的四个物理端口对应,并与第一网络设备的四个物理端口分别相连。该数据流经过负载分担计算,比如hash计算,被分为四份,包括第一数据流、第二数据刘、第三数据流和第四数据流。将分类后的数据流通过第一物理端口向第二网络设备发送第一数据流,通过第二物理端口向第二网路设备发送第二数据流,通过第三物理端口向第三网络设备发送第三数据流,通过第四物理端口向第二网络设备发送第四数据流,这样将数据流均匀分配到四个物理端口通过四条路径同时发送,可以提高网络的可靠性和对链路带宽的利用。可以理解的是,如果第一网络设备有n(n为大于零的整数)个物理端口发送数据流,则第一网络设备可以将数据流进行负载分担计算,获得转发该数据流的n条路径。如果第一网络设备的第一物理端口出现故障,当前常用技术是将该数据流重新进行负载分担计算,重新对该数据流进行区分,然后将被区分的数据流均匀分配到第二物理端口、第三物理端口和第四物理端口以上三个物理端口。如此将数据流重新分配会导致原来散列在第二物理端口的第二数据流经过重新负载分担计算被分配到第四物理端口或者第五物理端口,这样无法确保在第一物理端口故障前分配到第二物理端口的第二数据流全部继续被分配到第二物理端口,因此就会降低流量跃迁的稳定性。但是金融、电力、无线等业务网络中,对传输的性能和稳定性都有很高的要求,在部署负载分担后经常要求降低因为链路变化带来的流量跃迁产生的不稳定性和性能影响。

为了解决上述问题,保证在第一网络设备的物理端口出现故障后使原来散列在第二物理端口、第三物理端口和第四物理端口的数据流能够继续散列在原来的物理端口,减少数据流跃迁产生的不稳定性,增加数据流传输的稳定性,满足业务传输的需求。图2针对图1中的上述问题提供了一种数据流负载分担场景示意图,在该实施方式中,如果第一网络设备的第一物理端口发生故障,依然对该数据流进行负载分担计算,获得数据流的四条发送路径,然后继续对第一物理端口发送的第一数据流再进行一次负载分担计算,将第一数据流均匀的分配到其它三个物理端口,即将第一数据流均匀分配到第二物理端口、第三物理端口和第四物理端口。原来的通过第二物理端口发送的第二数据流继续通过第二物理端口发送,原来通过第三物理端口发送的的第三数据流继续通过第三轮物理端口发送,原来通过第四物理端口发送的第四数据流继续通过第四物理端口发送。

为了解决上述问题,本发明实施例提供了一种数据流负载分担的方法,参见图3,结合图1和图2中的网络场景示意图,本实施例中的第一网络设备为图1和图2中的第一网络设备,第一网络设备的第一物理端口、第二物理端口、第三物理端口和第四物理端口为图1和图2中的第一物理端口、第二物理端口、第三物理端口和第四物理端口,该方法包括如下内容:

s301:网络设备根据第一负载分担算法确定用于发送数据流的物理端口,根据所述第一负载分担算法确定的物理端口是第一端口集合确定物理端口。包括第一物理端口的所述第一端口集合中的多个端口是所述网络设备的物理端口。

在一个具体的实施方式中,所述网络设备根据数据流的关键字段对数据流进行负载分担计算,确定发送数据流的物理端口。所述关键字段为数据流的特征元素字段,所述特征元素字段位于数据流报文头中,所述特征元素字段用于区分数据流,实现对数据流的分类。举例来说,数据流的特征元素字段可以是ip五元组,也可以是ip二元组。当数据流的特征元素字段为ip五元组时,所述关键字段是目的ip地址、目的端口号、源ip地址,源端口号,协议号。ip五元组主要针对用户数据协议(userdatagramprotocol,udp)或者非传输控制协议(transmissioncontrolprotocol,tcp)报文进行数据流的区分。当数据流的特征元素字段为ip二元组时,所述关键字段是源ip地址和目的ip地址,其中ip二元组主要针对非udp、tcp报文来进行数据流的区分。所述网络设备还可以针对多协议标签交换(multiprotocollabelswitching,mpls)报文基于各层标签来进行数据流特征元素字段的选取。

在一个具体的实施方式中,所述网络设备设备根据上述数据流特征元素字段对数据流进行负载分担计算。举例来说,所述网络设备可以根据所述网络设备的物理端口确定发送数据流的路由策略,然后结合数据流的ip五元组对数据流进行负载分担计算,将数据流进行区分并获得数据流的发送路径,确定发送数据流各条路径对应的物理端口。

s302:所述网络设备经由根据所述第一负载分担算法确定的用于发送所述数据流的物理端口发送所述数据流。

在一个具体的实施方式中,所述网络设备根据上述s301中确定的物理端口发送所述数据流。

s303:所述网络设备经由根据第一负载分担算法确定的物理端口发送所述数据流的过程中,如果所述第一物理端口发生故障,则所述网络设备根据所述第一负载分担算法确定用于发送第二子数据流的物理端口,并且根据第二负载分担算法确定用于发送第一子数据流的物理端口,根据所述第二负载分担算法确定的物理端口是第二端口集合中的物理端口,所述第二端口集合不包括所述第一物理端口,所述第二端口集合包括的多个端口是所述网络设备的物理端口,所述第一子数据流为根据所述第一负载分担算法确定由所述第一物理端口发送的子数据流,所述第二子数据流为根据所述第一负载分担算法确定由所述第一端口集合中除所述第一物理端口之外的其它物理端口发送的子数据流,所述第一子数据流和所述第二子数据流是所述数据流中的子数据流。

在一个具体的实施方式中,当所述网络设备发送数据流的第一物理端口出现故障,不能继续转发数据流时,继续依据上述s301中所述网络设备根据数据流的第一关键字段对数据流进行负载分担计算,获得数据流的转发路径,确定数据流转发路径相对应的物理端口,上述步骤参见s301,此处不再赘述。然后将分配到第一物理端口的数据流再次进行负载分担计算,在进行负载分担计算时可以根据ip二元组或者ip五元组等特征元素字段对流量进行区分,把经过第二次计算的数据流均匀分配到其它正常发送的物理端口。

表1

举例来说,下面以表1所示内容为例对该步骤进行详细描述,如果目的地址为1.2.3.4的数据流包含四路等价路由策略,则可以匹配网段路由(1.2.3.0/24),并且依据数据流特征元素字段和index计算值将目的地址为1.2.3.4的数据流进行负载分担计算,所述负载分担计算可以是hash计算,将数据流分别通过所述网络设备的第一物理端口、第二物理端口、第三物理端口和第四物理端口发送数据流。如将数据流hash到第一物理端口,则可以建立快转表项,其出接口为第一物理端口,下一跳为2.2.2.2,对于与该特征元素字段相同的数据流依据上述快转表项同样通过第一物理端口发送。同样,第二物理端口可以建立快转表项,出接口为第二物理端口,下一跳为3.3.3.3,对于与第二物理端口发送数据流的特征元素字段相同的数据流依据该快转表项同样通过第二物理端口发送。第三物理端口同样可以建立快转表项,出接口为第三物理端口,下一跳为4.4.4.4,对于与第三物理端口所发送的数据流的特征元素字段相同的数据流同样通过第三物理端口发送。第四物理端口也可以建立快转表项,出接口为第四物理端口,下一跳为5.5.5.5,对于与第四物理端口发送的数据流的特征元素字段相同的数据流同样通过第四物理端口发送。由此,所述网络设备的第一物理端口发送第一数据流,第二物理端口发送第二数据流,第三物理端口发送第三数据流,第四物理端口发送第四数据流。当第一物理端口发生故障不能继续发送流量时,导致经过第一次负载分担hash计算后被分配到第一物理端口的第一数据流不能继续通过第一物理端口发送。此时所述网络设备还有三路等价路由策略,所述网络设备可以根据数据流的特征元素字段对所述第一数据流进行第二次负载分担hash计算,也就是将快转表项下一跳为2.2.2.2,出接口为第一物理端口的数据流依据特征元素字段再进行一次负载分担hash计算,所述第一数据流通过第二物理端口、第三物理端口和第四物理端口发送。以表2为例对此进行说明,由于第一物理端口出现故障不能继续发送数据流,需要对由第一物理端口发送的数据流进行经过第二次负载分担hash计算,将所述第一数据流hash到第二物理端口、第三物理端口和第四物理端口,也就是将快转表项出接口为第一物理端口,下一跳为2.2.2.2的数据流hash到第二物理端口、第三物理端口和第四物理端口。可以理解的是经过第一次负载分担,建立快转表项出接口为第二物理端口,下一跳为3.3.3.3的数据流继续通过第二物理端口发送,经过第一次负载分担,建立快转表项出接口为第三物理端口,下一跳为4.4.4.4的数据流继续通过第三物理端口发送,经过第一次负载分担,建立快转表项出接口为第四物理端口,下一跳为5.5.5.5的数据流继续通过第四物理端口发送,第二次负载分担hash计算也只是针对快转表项出接口为第一物理端口,下一跳为2.2.2.2的数据流。据此可知,第一物理端口出现故障后,第二物理端口、第三物理端口和第四物理端口不仅要发送第一次负载分担hash计算的分配的数据流,而且还要发送经过第二次负载分担hash计算分配的数据流。

表2

在另一个具体的实施方式中,在所述网络设备发送所述数据流的第一物理端口出现故障之后至所述网络设备将分类后的数据流按照确定的物理端口发送之前,所述方法还包括:

当所述网络设备发送所述数据流的第二物理端口出现故障时,所述网络设备根据第三关键字段对由所述第一物理端口发送的数据流进行第三次负载分担hash计算,将由所述第二物理端口发送的数据流均匀分配到所述网络设备的其它物理端口。

表三

下面以表3所示内容为例对此进行描述,在第一物理端口出现故障之后,第二物理端口同样出现故障不能继续发送流量的情况下,所述网络设备需要对第二物理端口故障之前所发送的数据流进行第三次负载分担hash计算,将第二物理端口故障之前发送的数据流均匀的分配到其他能够正常发送所述数据流的物理端口,如表3所示,指将第二物理端口故障之前发送的数据流分配到其它能够正常转发数据流的第三物理端口和第四物理端口。此时,第三物理端口不仅要发送经过第一次和第二次负载分担has计算所分配的数据流,还要发送经过第三次负载分担hash计算所分配到第三物理端口的数据流。第四物理端口同样不仅要发送经过第一次和第二次负载分担hash计算所分配到第四物理端口的数据流,还要发送经过第三次负载分担hash计算所分配到第四物理端口的数据流。

在另一具体实施方式中,当所述第一物理端口恢复发送所述数据流的能力时,所述网络设备将第一次负载分担hash计算分类后的所述数据流按照计算后的物理端口的发送。

举例来说,当第一物理端口故障恢复,并且能够继续发送数据流时,则所述网络设备只对接收到的数据流进行一次负载分担hash计算,所述网络设备对数据流进行第一次负载分担计算过程可参考上述相关描述内容,此处不再赘述。据此可知,在所述网络设备的第一物理端口恢复发送数据流的功能后,只需要对接收的数据流进行一次负载分担hash计算即可获得数据流的路径,将数据流均匀的分配到所述网络设备的物理端口,而不需要网路设备第二次对数据流进行负载分担hash计算。

s304:所述网络设备经由所述网络设备确定的发送所述第一子数据流的物理端口发送所述第一子数据流,并且经由所述网络设备确定的发送所述第二子数据流的物理端口发送所述第二子数据流。

在一个具体的实施方式中,按照上述s303中获得的路径将第一子数据流和第二子数据流从对应的物理端口发送出去。举例来说,如果所述网络设备通过四路等价路由策略对数据流进行负载分担,则依据数据流的特征元素字段字段将数据流进行负载分担计算,获得所述数据流的发送路径,然后将所述数据流从与发送路径对应的物理端口发送出去。如果所述网络设备通过四路等价路由策略对数据流进行负载分担,当第一物理端口出现故障不能继续发送数据流时,所述网络设备根据s301所述的第一次负载分担计算和第二次负载分担计算的结果,获得数据流的发送的路径,并将数据流通过与所述路径对应的物理端口进行发送。

举例来说,所述网络设备通过四路等价路由策略对数据流进行第一负载分担算法计算,并确定发送数据流的物理端口,其中,所述网络设备的第一物理端口发送的数据流为第一子数据流,所述网络设备的其它物理端口发送的数据流为第二子数据流。如果所述网络设备的第一物理端口出现故障不能继续发送数据流,则需要对由第一物理端口发送的第一子数据流进行第二负载分担计算,将第一子数据流分配到所述网络设备的其它物理端口。数据流经过第一负载分担算法计算确定发送第二子数据流的物理端口,并经过第二负载分担算法确定发送第一子数据流的物理端口。数据流按照上述方法确定的物理端口进行发送。

在一个具体的实施方式中,如果所述网络设备通过四路等价路由策略对数据流进行负载分担,在第一物理端口出现故障之后,第二物理端口也出现故障时,所述网络设备对依据第一负载分担确定由第二物理端口发送的第三子数据流进行第三负载分担计算,将第三子数据流分配到所述网络设备其它能够正常发送数据流的物理端口。所述网络设备根据第一负载分担、第二负载分担以及第三负载分担确定的物理端口发送所述数据流。

在对数据流进行负载分担的过程中,发送数据流的所述网络设备与目的所述网络设备之间会形成多个不同的链路,如果需求对特定链路的数据流进行tcp加速业务,就需要对上述特定数据流经过的这条链路建立tcp加速业务。当发送数据流的所述网络设备与目的所述网络设备之间的某一条链路出现故障而不能继续发送数据流时,发送数据流的所述网络设备如果将数据流进行重新负载分担计算则会导致数据流发送的链路发生很大变化,这样就会导致那些依赖数据流建立的tcp加速业务无法稳定生效。通过上述方法步骤,当发送数据流的所述网络设备的一个物理端口因为发生故障而不能继续发送数据流时,对发生故障物理端口所发送的数据流重新进行负载分担计算,而不对其它物理端口发送的数据流进行负载分担计算,这样就可以减少数据流跃迁产生的不稳定性,保持所述网络设备的其它的物理端口发送的数据流,增加数据流传输的稳定性,可以满足业务传输的需求。

在一个具体的实施方式中,所述网络设备根据第一负载分担算法确定用于发送数据流的物理端口,包括:

所述网络设备将所述数据流分为m个子数据流。m为所述第一端口集合的物理端口n的正整数倍。

所述网络设备确定所述m个子数据流对应的物理端口。所述网络设备根据所述第一负载分担算法确定用于发送所述数据流的物理端口是所述m个子数据流对应的物理端口。每个子数据流对应所述第一端口集合中的一个物理端口。所述第一端口集合中的每个物理端口对应的子数据流的数量为m/n。

举例来说,所述网络设备配置四路路由策略发送数据流,这四路路由策略对应所述网络设备的四个物理端口。计算获得4的最小公倍数为12,因此所述网络设备根据第一关键字段将所述数据流平均分为12份,接着将这12份数据流平均分配到所述网络设备的4个物理端口,也就是说每个物理端口有被分配了3份数据流。如果所述网络设备的一个物理端口因发生故障而不能继续发送数据流时,可将所述发生故障的物理端口的3份数据流平均分配到其它三个正常工作的物理端口,这样将故障端口的数据流分配到其它能够正常发送的物理端口,不会影响其它物理端口数据流传输的稳定性。

图4为本申请实施例提供的一种数据流负载分担的网络设备400结构示意图。图4所示的设备可以为前述方法实施例中的所述网络设备,可以实现实现上述所述网络设备的功能。所述网络设备包括确定单元401和发送单元402。

确定单元401用于根据第一负载分担算法确定用于发送数据流的物理端口,根据所述第一负载分担算法确定的物理端口是第一端口集合确定物理端口。包括第一物理端口的所述第一端口集合中的多个端口是所述网络设备的物理端口。

发送单元402用于经由根据所述第一负载分担算法确定的用于发送所述数据流的物理端口发送所述数据流。

确定单元401还用于经由根据第一负载分担算法确定的物理端口发送所述数据流的过程中,如果所述第一物理端口发生故障,则根据所述第一负载分担算法确定用于发送第二子数据流的物理端口,并且根据第二负载分担算法确定用于发送第一子数据流的物理端口。根据所述第二负载分担算法确定的物理端口是第二端口集合中的物理端口。所述第二端口集合不包括所述第一物理端口。所述第二端口集合包括的多个端口是所述网络设备的物理端口。所述第一子数据流为根据所述第一负载分担算法确定由所述第一物理端口发送的子数据流。所述第二子数据流为根据所述第一负载分担算法确定由所述第一端口集合中除所述第一物理端口之外的其它物理端口发送的子数据流。所述第一子数据流和所述第二子数据流是所述数据流中的子数据流。

发送单元402还用于在根据第一负载分担算法确定的物理端口发送所述数据流的过程中,如果所述第一物理端口发生故障,根据确定单元确定的结果由发送所述第一子数据流的物理端口发送所述第一子数据流,并且经由确定的发送所述第二子数据流的物理端口发送所述第二子数据流。

在一个具体的实施方式中,当所述设备还包括分配单元。

所述分配单元403用于将所述数据流分为m个子数据流。m为所述第一端口集合的物理端口n的正整数倍。

所述确定单元401还用于确定所述m个子数据流对应的物理端口。根据所述第一负载分担算法确定用于发送所述数据流的物理端口是所述m个子数据流对应的物理端口。每个子数据流对应所述第一端口集合中的一个物理端口,所述第一端口集合中的每个物理端口对应的子数据流的数量为m/n。

在一个具体实施方式中,所述确定单元401用于根据哈希算法将所述数据流中的报文的字段作为哈希键,确定所述哈希算法的哈希值。

所述网络设备根据所述哈希值确定用于发送所述数据流的物理端口。所述字段包括源网际协议ip地址、目的ip地址、源端口号、目的端口号和协议号。

具体实施方式中,所述确定单元401以及所述发送单元402的具体实施方式可以参考图3方法结构流程示意图中所述网络设备的功能和实施步骤,为了简介,不再赘述。

图5为本申请实施例提供了另一种数据流负载分担设备500结构示意图。图5所示的设备可以为前述方法实施例中图1和图2中的第一网络设备,也可以是图3中的网络设备,可以实现所述网络设备的功能。所述设备包括处理器501和收发器502,以及连接处理器501和收发器502的各种连接线503,其中处理器501和收发器502通过总线相连。

在一种可能的实施方式中,所述设备500还包括存储器504。存储器504用于存放程序指令或程序505,存储器504可能包括高速随机存取存储器器504可能包含高速随机存取存储器(ram:randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器,处理器501可以调用存储器504中存放的程序指令执行相应功能。

在一种具体的实施方式中:

所述处理器501用于根据第一负载分担算法确定用于发送数据流的物理端口。根据所述第一负载分担算法确定的物理端口是第一端口集合确定物理端口。包括第一物理端口的所述第一端口集合中的多个端口是所述网络设备的物理端口。

所述收发器502用于经由根据所述第一负载分担算法确定的用于发送所述数据流的物理端口发送所述数据流。

所述处理器501还用于经由根据第一负载分担算法确定的物理端口发送所述数据流的过程中,如果所述第一物理端口发生故障,则所述网络设备根据所述第一负载分担算法确定用于发送第二子数据流的物理端口,并且根据第二负载分担算法确定用于发送第一子数据流的物理端口,根据所述第二负载分担算法确定的物理端口是第二端口集合中的物理端口。所述第二端口集合不包括所述第一物理端口,所述第二端口集合包括的多个端口是所述网络设备的物理端口。所述第一子数据流为根据所述第一负载分担算法确定由所述第一物理端口发送的子数据流。所述第二子数据流为根据所述第一负载分担算法确定由所述第一端口集合中除所述第一物理端口之外的其它物理端口发送的子数据流。所述第一子数据流和所述第二子数据流是所述数据流中的子数据流。

所述收发器502还用于经由所述网络设备确定的用于发送所述第一子数据流的物理端口发送所述第一子数据流,并且经由所述网络设备确定的用于发送所述第二子数据流的物理端口发送所述第二子数据流。

该具体实施方式中,所述收发器和所述处理器的具体实现可以参考图1和图2中所述第一网络设备以及和图3中所述网络设备的功能和实施步骤,为了简介,不再赘述。

在本申请所提供的几个实施例中,应该理解到,所公开的系统和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红线、无线微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如、dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

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