本发明涉及数据处理领域,尤其涉及一种处理网络拥塞的方法及交换机。
背景技术:
数据中心(Data Center,DC)正越来越广泛的被云服务提供商和企业所创建,数据中心网络架构(Fabric)对网络流量的负载均衡效果直接关系到用户体验。负载均衡效果差是指Fabric利用率还很小时即出现拥塞丢包;相反,负载均衡效果好是指Fabric利用率较高时才会出现拥塞丢包。Fabric拥塞丢包有两种类型,一种为本地负载不均衡,如等价多路径(Equal-Cost MultiPath,ECMP)方式、随机负载均衡方式,具体为多条大流经过散列(hash)后,映射到同一条链路,导致汇聚流量超过端口容量,引起拥塞;另一种由于交换机各自作负载均衡,可能会出现多个同层交换机将多个大流发送至另一层中的同一个交换机上,导致下行流量汇聚拥塞。
目前存在着两种方法来解决上面的两种拥塞,第一种方法为:对于每条新流,使用10元组作hash,根据hash结果从所有等价链路中选择一条等价链路,边界交换机(Edge Switch)在所有的链路上检测大流,当大流所在链路的流量超过预设门限值,上报给流调度器(Flow Scheduler),Flow Scheduler根据实时收集的链路,线性查找所有可以将大流进行调度的可能等价链路,找到第一条匹配的等价链路时,将这条大流调度到这条等价链路。第二种方法为:对于每条新流,第一交换机为每条新流选择最小负载链路,其中链路的负载情况可以按照如下方法获取:在覆盖(overlay)网下,第一交换机将拥塞字段(包括每条链路对应的第二交换机的端口号和每条链路拥塞度量值)封装到每个报文的overlay头中,在将拥塞字段发送到第二交换机后,第二交换机将拥塞字段存储起来,并通过反向报文再将更新后的拥塞字段(包括每条链路对应的第一交换机的端口号和更新的每条链路拥塞度量值)反馈给第一交换机,第一交换机将更新后的拥塞字段存放到表中,这样第一交换机就 可以根据更新后的拥塞字段选取最佳链路。
上面的第一种方法需要实时上报大流和每条链路的状态,在大规模数据中心中,数据流会很大,响应慢,数据中心网络利用率不高;第二种方法受限于应用场景,同样数据中心网络利用率不高。
技术实现要素:
本发明实施例提供了一种处理网络拥塞的方法和交换机,能够提高数据中心网络利用率。
有鉴于此,本发明第一方面提供一种处理网络拥塞的方法,可包括:
第一交换机获取与第三交换机通信的接收端口接收的总流量,所述总流量中包括第二交换机发送的数据流占用的流量;所述第一交换机与所述第二交换机位于所述第三交换机的下一层级;
当所述第一交换机根据所述总流量确定所述第三交换机的发送端口拥塞时,确定目标端口;所述目标端口为从所述第一交换机的各接收端口中选取的能够接收所述数据流的另一端口;
所述第一交换机向所述第二交换机发送调整消息,所述调整消息中携带所述数据流的标识以及所述目标端口的标识,所述调整消息用于使所述第二交换机向所述目标端口发送所述数据流。
结合本发明第一方面,本发明第一方面的第一实施方式中,可包括:
若所述总流量达到所述第三交换机的发送端口的容量的第一预设阈值,则所述第一交换机确定所述第三交换机的发送端口拥塞。
结合本发明第一方面的第一实施方式,本发明第一方面的第二实施方式中,可包括:
所述数据流为所述总流量包括的数据流中占用最大流量的数据流。
结合本发明第一方面,本发明第一方面的第三实施方式中,可包括:
所述第一交换机分别获取所述第一交换机与多个上一层级交换机通信的各接收端口接收的总流量,所述多个上一层级交换机包括所述第三交换机,所述第一交换机与所述第三交换机通信的接收端口为所述各接收端口中总流量最大的端口;
所述确定目标端口包括:
若所述第一交换机与所述第三交换机通信的接收端口接收的总流量与参考流量的差值大于第二预设阈值,则所述第一交换机确定所述第三交换机的各下行链路负载不均衡,并确定所述目标端口;所述参考流量为所述第一交换机的各接收端口接收的最小总流量。
结合本发明第一方面,本发明第一方面的第四实施方式中,可包括:
所述第一交换机分别获取所述第一交换机的各发送端口发送的总流量;
当第一发送端口发送的总流量达到第三预设阈值,并且第二发送端口发送的总流量小于第四预设阈值时;所述第一交换机将通过所述第一发送端口发送的至少一条数据流调度到所述第二发送端口,以使所述第一发送端口调整后的总流量小于所述第三预设阈值,并使所述第二发送端口调整后的总流量小于所述第四预设阈值。
有鉴于此,本发明第二方面提供一种处理网络拥塞的方法,可包括:
在第二交换机通过与第三交换机通信的第一发送端口向第一交换机的接收端口发送数据流的过程中,所述第二交换机接收所述第一交换机通过所述第三交换机发送的调整消息,所述第一交换机与所述第二交换机位于所述第三交换机的下一层级,所述调整消息包括所述数据流的标识以及目标端口的标识;所述目标端口为所述第一交换机的各接收端口中能够接收所述数据流的另一端口;
所述第二交换机根据所述调整消息,确定与所述目标端口对应的第二发送端口,所述第二发送端口为所述第二交换机与第四交换机通信的端口;所述第四交换机与所述第三交换机位于同一层级;
所述第二交换机通过所述第二发送端口发送所述数据流,以使所述数据流通过所述第四交换机到达所述目标端口。
结合本发明第二方面,本发明第二方面的第一实施方式中,可包括:
当所述目标端口的标识为端口号,且所述第一交换机和所述第二交换机的相同端口号的端口连接到同一个上一层级交换机时,所述第二交换机根据所述调整消息,确定与所述目标端口对应的第二发送端口包括:所述第二交换机确定所述第二交换机的发送端口中具有所述端口号的端口为所述第二发送端口。
结合本发明第二方面,本发明第二方面的第二实施方式中,可包括:
所述第二交换机根据所述目标端口的标识查找对应关系表,得到包括所述目标端口的标识的表项,根据所述表项得到所述第二发送端口;所述对应关系表的每个表项包括发送端口的标识、上一层级交换机的标识以及目标端口的标识的对应关系。
有鉴于此,本发明第三方面提供一种交换机,该交换机作为第一交换机使用,可包括:
第一获取单元,用于获取与第三交换机通信的接收端口接收的总流量,所述总流量中包括第二交换机发送的数据流占用的流量;所述第一交换机与所述第二交换机位于所述第三交换机的下一层级;
确定单元,用于当根据所述总流量确定所述第三交换机的发送端口拥塞时,确定目标端口;所述目标端口为从所述第一交换机的各接收端口中选取的能够接收所述数据流的另一端口;
发送单元,用于向所述第二交换机发送调整消息,所述调整消息中携带所述数据流的标识以及所述目标端口的标识,所述调整消息用于使所述第二交换机向所述目标端口发送所述数据流。
结合本发明第三方面,本发明第三方面的第一实施方式中,可包括:
所述确定单元具体用于若所述总流量达到所述第三交换机的发送端口的容量的第一预设阈值,则确定所述第三交换机的发送端口拥塞,并确定所述目标端口。
结合本发明第三方面的第一实施方式,本发明第三方面的第二实施方式中,可包括:
所述数据流为所述总流量包括的数据流中占用最大流量的数据流。
结合本发明第三方面,本发明第三方面的第三实施方式中,可包括:
第二获取单元,用于分别获取所述第一交换机与多个上一层级交换机通信的各接收端口接收的总流量,所述多个上一层级交换机包括所述第三交换机,所述第一交换机与所述第三交换机通信的接收端口为所述各接收端口中总流量最大的端口;
所述确定单元具体用于若所述第一交换机与所述第三交换机通信的接收 端口接收的总流量与参考流量的差值大于第二预设阈值,则所述第一交换机确定所述第三交换机的各下行链路负载不均衡,并确定所述目标端口;所述参考流量为所述第一交换机的各接收端口接收的最小总流量。
结合本发明第三方面,本发明第二方面的第四实施方式中,可包括:
第三获取单元,用于分别获取所述第一交换机的各发送端口发送的总流量;
调度单元,用于当第一发送端口发送的总流量达到第三预设阈值,并且第二发送端口发送的总流量小于第四预设阈值时;将通过所述第一发送端口发送的至少一条数据流调度到所述第二发送端口,以使所述第一发送端口调整后的总流量小于所述第三预设阈值,并使所述第二发送端口调整后的总流量小于所述第四预设阈值。
有鉴于此,本发明第四方面提供一种交换机,该交换机作为第二交换机使用,可包括:
接收单元,用于在第二交换机通过与第三交换机通信的第一发送端口向第一交换机的接收端口发送数据流的过程中,接收所述第一交换机通过所述第三交换机发送的调整消息,所述第一交换机与所述第二交换机位于所述第三交换机的下一层级,所述调整消息包括所述数据流的标识以及目标端口的标识;所述目标端口为所述第一交换机的各接收端口中能够接收所述数据流的另一端口;
确定单元,用于根据所述调整消息,确定与所述目标端口对应的第二发送端口,所述第二发送端口为所述第二交换机与第四交换机通信的端口;所述第四交换机与所述第三交换机位于同一层级;
发送单元,用于通过所述第二发送端口发送所述数据流,以使所述数据流通过所述第四交换机到达所述目标端口。
结合本发明第四方面,本发明第四方面的第一实施方式中,可包括:
当所述目标端口的标识为端口号,且所述第一交换机和所述第二交换机的相同端口号的端口连接到同一个上一层级交换机时,所述确定单元具体用于确定所述第二交换机的发送端口中具有所述端口号的端口为所述第二发送端口。
结合本发明第四方面,本发明第四方面的第二实施方式中,可包括:
所述确定单元具体用于根据所述目标端口的标识查找对应关系表,得到包括所述目标端口的标识的表项,根据所述表项得到所述第二发送端口;所述对应关系表的每个表项包括发送端口的标识、上一层级交换机的标识以及目标端口的标识的对应关系。
从以上技术方案可以看出,本发明实施例具有以下优点:第一交换机获取与第三交换机通信的接收端口接收的总流量,其中该总流量中包括第二交换机发送的数据流占用的流量;该第一交换机与该第二交换机位于该第三交换机的下一层级,并根据该总流量判断第三交换机的发送端口是否拥塞,当处于拥塞时,确定目标端口,该目标端口为从该第一交换机的各接收端口中选取的能够接收该数据流的端口,说明需要进行调整的数据流来自第二交换机的数据流,第一交换机通过向第二交换机发送调整消息来告知该数据流的标识以及该目标端口的标识,这样第二交换机就能够通过上述的两种标识确定自身的发送端口来发送该数据流以及确定第四交换机,并使该数据流通过第四交换机到达该目标端口,该第四交换机与该第三交换机位于同一层级,解决了拥塞的问题。由此可见,本发明能够提高数据中心网络利用率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中网络架构的结构示意图;
图2为本发明实施例中一种处理网络拥塞的方法流程示意图;
图3为本发明实施例中一种处理网络拥塞的方法另一流程示意图;
图4为本发明实施例中一种处理网络拥塞的方法流程示意图;
图5为本发明实施例中一种处理网络拥塞的方法另一流程示意图;
图6为本发明实施例中交换机结构示意图;
图7为本发明实施例中交换机另一结构示意图;
图8为本发明实施例中交换机的一个示意图;
图9为本发明实施例中交换机的另一示意图。
具体实施方式
本发明实施例提供了一种处理网络拥塞的方法和交换机,用于提高数据中心网络利用率。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了方便理解本发明实施例,下面介绍本发明实施例中引入的网络架构。
如图1所示,该网络架构包括多个上层交换机和多个下层交换机,其中,每个下层交换机连接到所有上层交换机,每个上层交换机连接到所有下层交换机,上层交换机之间没有直连链路。
图1中示出了6个交换机,其中:交换机1、交换机2以及交换机3位于下层,交换机4、交换机5以及交换机6位于上层,每个下层交换机的相同编号的端口连接到同一个上层交换机。需要说明的是,在另一个实施例中,还可以是不同下层交换机的不同编号的端口连接到同一个上层交换机。本发明实施例只要保证所有下层交换机都分别提供一个端口连接到同一个上层交换机即可。即,交换机1的端口1、交换机2的端口1以及交换机3的端口1并 不一定连接到同一个上层交换机,例如:按照预配置的对应关系,交换机2的端口1可以对应交换机1的端口2。当不同下层交换机的不同编号的端口连接到同一个上层交换机时,为了保证数据流量(以下简称流量)的正确转发,交换机上还需要存储对应关系表,所述对应关系表的每个表项包括所述交换机的发送端口与远端交换机、该远端交换机的端口的对应关系。
从图1可以看出,在传输流量时,上层交换机的发送端口发送的流量等于与该上层交换机的发送端口对接的下层交换机的接收端口接收的流量。
以图1中所有下层交换机的相同编号的端口连接到同一个上层交换机为例,交换机1通过交换机1的端口2将第一数据流发送到交换机3的端口2,途中经过交换机5,同时,交换机2通过交换机2的端口2将第二数据流发送到交换机3的端口2,途中也经过交换机5,可能导致交换机5到交换机3的发送端口X拥塞(这里仅仅以交换机5为例,在实际场景下,上层交换机的发送端口拥塞不限定于具体某一个交换机的发送端口拥塞,本发明需要解决问题的实质即为解决上层交换机的发送端口拥塞的问题),由于交换机3的端口2接收的流量等于交换机5的发送端口X发送的流量,通过确定交换机3的端口2的流量可以判断交换机5的发送端口X是否拥塞,当确定交换机5的发送端口X拥塞时,交换机3向交换机1或者交换机2发送调整消息,使交换机1将所述第一数据流调整到交换机3的端口1或者端口3,或者交换机3向交换机2发送调整消息,使交换机2将所述第二数据流调整到交换机3的端口1或者3,也即使交换机5的发送端口X上发送的流量减少。交换机3能够调整接收数据流的端口,是因为在每个交换机的发送端口,上层交换机以及其他交换机的端口之间存在对应关系。当所述发送端口和端口的端口号相同时,所述对应关系可以不存储在所述交换机上;当所述发送端口和所述端口的端口号不同时,所述交换机需要存储所述对应关系。当交换机3发送调整消息时,所述调整消息中携带交换机3确定的新的端口,接收到该调整消息的交换机1或交换机2,根据该端口即可确定自身的发送端口,并通过该发送端口发送所述数据流。通过上述方式,可以解决交换机5的发送端口X拥塞的问题。
请参阅图2,本发明实施例中一种处理网络拥塞的方法包括:
101、第一交换机获取与第三交换机通信的接收端口接收的总流量,该总流量中包括第二交换机发送的数据流占用的流量;该第一交换机与该第二交换机位于该第三交换机的下一层级;
本实施例中,在传输流量时,上层交换机的发送端口发送的流量等于与该上层交换机的发送端口对接的下层交换机的接收端口接收的流量,因此第一交换机获取与第三交换机通信的接收端口接收的总流量,也就确定了第三交换机的发送端口发送的流量,其中该总流量中包括第二交换机发送的数据流占用的流量;该第一交换机与该第二交换机位于该第三交换机的下一层级。
由此可见,若需要判断上述第三交换机的发送端口是否拥塞,则通过检测上述第一交换机的接收端口的总流量即可。
102、当该第一交换机根据该总流量确定该第三交换机的发送端口拥塞时,确定目标端口;该目标端口为从该第一交换机的各接收端口中选取的能够接收该数据流的另一端口;
当第一交换机获取该第一交换机的接收端口的总流量后,该第一交换机根据该总流量确定该第三交换机的发送端口拥塞,则确定目标端口,该目标端口为从该第一交换机的各接收端口中选取的接收端口能够接收该数据流的端口。
103、该第一交换机向该第二交换机发送调整消息,该调整消息中携带该数据流的标识以及该目标端口的标识,该调整消息用于使该第二交换机向该目标端口发送该数据流。
在目标端口确定后,该第一交换机向第二交换机发送调整消息,在该调整消息中携带该数据流的标识以及该目标端口的标识,该调整消息用户使该第二交换机向该目标端口发送该数据流。
同时,该数据流的标识可以为五元组。
可以理解的是,第二交换机接收到上述两种标识后,根据这两种标识可以确定发送端口,通过该发送端口向该目标端口发送该数据流。
可选的,本实施例还可以包括:该第一交换机分别获取该第一交换机的各发送端口发送的总流量;当第一发送端口发送的总流量达到第三预设阈值,并且第二发送端口发送的总流量小于第四预设阈值时;该第一交换机将通过 该第一发送端口发送的至少一条数据流调度到该第二发送端口,以使该第一发送端口调整后的总流量小于该第三预设阈值,并使该第二发送端口调整后的总流量小于该第四预设阈值。采用上述方法,可以解决第一交换机的第一发送端口的拥塞问题。
可选的,本实施例还可以包括:该第一交换机分别获取该第一交换机与多个上一层级交换机通信的各接收端口接收的总流量,该多个上一层级交换机包括该第三交换机,该第一交换机与该第三交换机通信的接收端口为该各接收端口中总流量最大的端口;若该第一交换机与该第三交换机通信的接收端口接收的总流量与参考流量的差值大于第二预设阈值,则该第一交换机确定该第三交换机的各下行链路负载不均衡,并确定该目标端口;该参考流量为该第一交换机的各接收端口接收的最小总流量。采用上述方法,可以解决负载不均衡的问题。
本实施例中,第一交换机获取与第三交换机通信的接收端口接收的总流量,其中该总流量中包括第二交换机发送的数据流占用的流量;该第一交换机与该第二交换机位于该第三交换机的下一层级,并根据该总流量判断第三交换机的发送端口是否拥塞,当处于拥塞时,确定目标端口,该目标端口为从该第一交换机的各接收端口中选取的能够接收该数据流的端口,说明需要进行调整的数据流来自第二交换机的数据流,第一交换机通过向第二交换机发送调整消息来告知该数据流的标识以及该目标端口的标识,使第二交换机向该目标端口发送该数据流。由此可见,本发明能够提高数据中心网络利用率。
为了便于理解,下面对本发明实施例中的处理网络拥塞的方法进行详细描述,请参阅图3,本发明实施例中另一处理网络拥塞的方法包括:
201、第一交换机获取与第三交换机通信的接收端口接收的总流量,该总流量中包括第二交换机发送的数据流占用的流量;
本实施例中,在传输流量时,上层交换机的发送端口发送的流量等于与该上层交换机的发送端口对接的下层交换机的接收端口接收的流量,因此第一交换机获取与第三交换机通信的接收端口接收的总流量,也就确定了第三交换机的发送端口发送的流量,其中该总流量中包括第二交换机发送的数据 流占用的流量;该第一交换机与该第二交换机位于该第三交换机的下一层级。
由此可见,若需要判断上述第三交换机的发送端口是否拥塞,则通过检测上述第一交换机的接收端口的总流量即可。
需要说明的是,可以在一个预置周期内周期性的获取上述第一交换机的接收端口的总流量,该预置周期可以为1ms,还可以为其他数值,具体此处不作限定。
可以理解的是,为了描述的简洁,本实施例中是通过一个接收端口来进行说明的,也可以扩展到通过多个接收端口来进行说明,所采用的方法是类似的,此处不作限定。
202、若该总流量达到该第三交换机的发送端口的容量的第一预设阈值,则该第一交换机确定该第三交换机的发送端口拥塞,并确定目标端口,该目标端口为该第一交换机的各接收端口中选取的能够接收该数据流的另一端口;
若该总流量达到该第三交换机的发送端口的容量的第一预设阈值,则该第一交换机确定该第三交换机的发送端口拥塞,并确定目标端口,该目标端口为该第一交换机的各接收端口中选取的能够接收该数据流的另一端口。
上述第一预设阈值可以为99%或90%,还可以人为设置其他数值,具体此处不作限定。
其中该数据流为该总流量包括的数据流中占用最大流量的数据流。
203、该第一交换机向该第二交换机发送调整消息,该调整消息中携带该数据流的标识以及该目标端口的标识。
该第一交换机构造调整消息,该调整消息中携带该数据流的标识以及该目标端口的标识,并通过用户数据报文协议(UDP,User Datagram Protocol)向第二交换机发送调整消息。还可以通过其他协议来发送调整消息,不限定于UDP协议,具体此处不作限定。
同时,该数据流的标识可以为五元组。
可以理解的是,第二交换机接收到上述两种标识后,根据这两种标识可以确定发送端口,通过该发送端口向该目标端口发送该数据流。
本实施例中,提供了一种通过该第一交换机的接收端口接收的流量达到 该第三交换机的发送端口的容量的第一预设阈值来确定第三交换机的发送端口拥塞的方法,并确定该数据流为该总流量包括的数据流中占用最大流量的数据流,以及通过UDP协议向第二交换机发送调整消息,提高了方案的选择性。
上面从第一交换机的角度对本发明实施例中的处理网络拥塞的方法进行了描述,下面从第二交换机的角度对本发明实施例中的处理网络拥塞的方法进行描述:
请参阅图4,本发明实施例中一种处理网络拥塞的方法包括:
301、在第二交换机通过与第三交换机通信的第一发送端口向第一交换机的接收端口发送数据流的过程中,该第二交换机接收该第一交换机通过该第三交换机发送的调整消息,该第一交换机与该第二交换机位于该第三交换机的下一层级,该调整消息包括该数据流的标识以及目标端口的标识;该目标端口为该第一交换机的各接收端口中能够接收该数据流的另一端口;
本实施例中,在第二交换机通过与第三交换机通信的第一发送端口向第一交换机发送数据流的过程中,第一交换机通过该第三交换机发送调整消息,第二交换机接收该调整消息,其中该调整消息包括该数据流的标识以及目标端口的标识,该第一交换机与该第二交换机位于该第三交换机的下一层级,该目标端口为该第一交换机的各接收端口中能够接收该数据流的另一端口。
该调整消息可以为通过UDP协议向第二交换机发送调整消息,还可以通过其他协议,具体此处不作限定。
302、该第二交换机根据该调整消息,确定与该目标端口对应的第二发送端口,该第二发送端口为该第二交换机与第四交换机通信的端口;该第四交换机与该第三交换机位于同一层级;
该第二交换机根据该调整消息中的数据流的标识和目标端口的标识,确定与该目标端口对应的第二发送端口,该第二发送端口为该第二交换机与第四交换机通信的端口;该第四交换机与该第三交换机位于同一层级。
需要说明的是,可以采用多种方法确定与该目标端口对应的第二发送端口,例如:当该目标端口的标识为端口号时,确定该第二交换机的发送端口中具有该端口号的端口为该第二发送端口。
303、该第二交换机通过该第二发送端口发送该数据流,以使该数据流通过该第四交换机到达该目标端口。
在第二发送端口确定后,该第二交换机通过该第二发送端口发送该数据流,以使该数据流通过该第四交换机到达该目标端口。
本实施例中,第二交换机通过调整消息中的数据流的标识以及目标端口的标识,将该数据流通过其他发送端口发送,并通过不同的上层交换机发送到目标端口,提供了一种对数据流进行调整的方法。
为了便于理解,下面对本发明实施例中的处理网络拥塞的方法进行详细描述,请参阅图5,本发明实施例中另一处理网络拥塞的方法包括:
401、在第二交换机通过与第三交换机通信的第一发送端口向第一交换机的接收端口发送数据流的过程中,该第二交换机接收该第一交换机通过该第三交换机发送的调整消息,该第一交换机与该第二交换机位于该第三交换机的下一层级,该调整消息包括该数据流的标识以及目标端口的标识,该目标端口为该第一交换机的各接收端口中能够接收该数据流的另一端口;
本实施例中,步骤401与步骤301类似,此处不再赘述。
402、若该目标端口的标识为端口号,且该第一交换机和该第二交换机的相同端口号的端口连接到同一个上一层级交换机时,该第二交换机确定该第二交换机的发送端口中具有该端口号的端口为该第二发送端口,该第二发送端口为该第二交换机与第四交换机通信的端口;
当该目标端口的标识为端口号时,确定该目标端口的端口号,当该第一交换机和该第二交换机的相同端口号的端口连接到同一个上一层级交换机时,在第二交换机的发送端口中确定具有该端口号的端口作为第二发送端口,该第二发送端口为该第二交换机与该第四交换机通信的端口,该第四交换机与该第三交换机位于同一层级。
可选的,步骤402还可以为:
该第二交换机根据该目标端口的标识查找对应关系表,得到包括该目标端口的标识的表项,根据该表项得到该第二发送端口;该对应关系表的每个表项包括发送端口的标识、上一层级交换机的标识以及目标端口的标识的对应关系;
此时该第一交换机和该第二交换机不一定是通过相同的端口号的端口连接到同一个上一层级交换机,通过对应关系表中的表项,其中该表项包括发送端口的标识,上一层级交换机的标识以及目标端口的标识的对应关系,可以确定该目标端口对应的第二发送端口。
403、该第二交换机通过该第二发送端口发送该数据流,以使该数据流通过该第四交换机到达该目标端口。
在第二发送端口确定后,该第二交换机通过该第二发送端口发送该数据流,以使该数据流通过该第四交换机到达该目标端口。
本实施例提供了两种确定第二发送端口的方法,增加了方案的选择性。
为了便于理解,下面以一实际的应用场景对本发明实施例中的处理网络拥塞的方法进行描述:
交换机A以1ms为周期,周期性的检查交换机A的接收端口a1的总流量,并且确定总流量达到了与该接收端口a1对接的交换机C的发送端口c1的容量的99%,超过了发送端口c1的容量的预设阈值95%,由于接受端口a1接收的流量等于发送端口c1发送的流量,因此发送端口c1处于拥塞状态。交换机A挑选该接收端口a1上的未被设置调整标记的最大的流作为目标数据流(其中该目标数据流的源端为交换机B,交换机B通过交换机C向交换机A发送该目标数据流,交换机A与交换机B位于交换机C的下一层级),并给该目标数据流设置已调整标记,同时在该交换机A的各接收端口中选取能够接收该目标数据流的接收端口a2。交换机A确定接收端口a2后,构造调整消息,该调整消息中携带着目标数据流的标识以及该接收端口a2的标识。该调整消息通过UDP承载,使用特殊的UDP端口号,将调整消息发送至交换机B。交换机B接收到调整消息后,确定该接收端口a2的标识为端口号2,并确定该交换机A和交换机B的相同端口号的端口连接到交换机C,交换机B在交换机B的发送端口中确定具有端口号2的发送端口b2,该发送端口b2为该交换机B与交换机D通信的端口,该交换机D与交换机C位于同一层级,该交换机B通过发送端口b2发送该目标数据流,以使该目标数据流通过该交换机D到达该接收端口a2。
下面介绍本发明实施例中的交换机,该交换机作为第一交换机使用,请 参阅图6,本发明中交换机的一个实施例包括:
第一获取单元501,用于获取与第三交换机通信的接收端口接收的总流量,该总流量中包括第二交换机发送的数据流占用的流量;该第一交换机与该第二交换机位于该第三交换机的下一层级;
确定单元502,用于当根据该第一获取单元501获取到的该总流量确定该第三交换机的发送端口拥塞时,确定目标端口;该目标端口为从该第一交换机的各接收端口中选取的能够接收该数据流的另一端口;
发送单元503,用于在确定单元502确定该第三交换机的发送端口拥塞,并确定目标端口后,向第二交换机发送调整消息,在该调整消息中携带该数据流的标识以及该目标端口的标识,该调整消息用于使该第二交换机向该目标端口发送该数据流。
其中确定单元502具体用于若该总流量达到该第三交换机的发送端口的容量的第一预设阈值,则确定该第三交换机的发送端口拥塞,并确定该目标端口;该目标端口为从该第一交换机的各接收端口中选取的能够接收该数据流的另一端口,该数据流为该总流量包括的数据流中占用最大流量的数据流。
可选的,本实施例还包括:
第二获取单元504,用于分别获取该第一交换机与多个上一层级交换机通信的各接收端口接收的总流量,该多个上一层级交换机包括该第三交换机,该第一交换机与该第三交换机通信的接收端口为该各接收端口中总流量最大的端口;
其中确定单元502还可以具体用于若该第一交换机与该第三交换机通信的接收端口接收的总流量与参考流量的差值大于第二预设阈值,则该第一交换机确定该第三交换机的各下行链路负载不均衡,并确定该目标端口;该参考流量为该第一交换机的各接收端口接收的最小总流量。
可选的,本实施例还包括:
第三获取单元505,用于分别获取该第一交换机的各发送端口发送的总流量;
调度单元506,用于当第一发送端口发送的总流量达到第三预设阈值,并且第二发送端口发送的总流量小于第四预设阈值时;将通过该第一发送端口 发送的至少一条数据流调度到该第二发送端口,以使该第一发送端口调整后的总流量小于该第三预设阈值,并使该第二发送端口调整后的总流量小于该第四预设阈值。
本实施例中,第一获取单元501获取与第三交换机通信的接收端口接收的总流量,其中该总流量中包括第二交换机发送的数据流占用的流量;该第一交换机与该第二交换机位于该第三交换机的下一层级,并根据该总流量判断第三交换机的发送端口是否拥塞,当确定单元502确定该发送端口处于拥塞时,确定目标端口,该目标端口为从该第一交换机的各接收端口中选取的能够接收该数据流的端口,说明需要进行调整的数据流来自第二交换机的数据流,发送单元503通过向第二交换机发送调整消息来告知该数据流的标识以及该目标端口的标识,使第二交换机向该目标端口发送该数据流。另外,本实施例还可以解决负载不均衡的问题,以及第一交换机的第一发送端口的拥塞问题。由此可见,本发明能够提高数据中心网络利用率。
另外,本实施例提供了一种通过该第一交换机的接收端口接收的流量达到该第三交换机的发送端口的容量的第一预设阈值来确定第三交换机的发送端口拥塞的方法,并确定该数据流为该总流量包括的数据流中占用最大流量的数据流,提高了方案的选择性。
下面介绍本发明实施例中的交换机,该交换机作为第二交换机使用,请参阅图7,本发明中交换机的一个实施例包括:
接收单元601,用于在第二交换机通过与第三交换机通信的第一发送端口向第一交换机的接收端口发送数据流的过程中,接收该第一交换机通过该第三交换机发送的调整消息,该第一交换机与该第二交换机位于该第三交换机的下一层级,该调整消息包括该数据流的标识以及目标端口的标识;该目标端口为该第一交换机的各接收端口中能够接收该数据流的另一端口;
确定单元602,用于根据该接收单元601接收的该调整消息,确定与该目标端口对应的第二发送端口,该第二发送端口为该第二交换机与第四交换机通信的端口;该第四交换机与该第三交换机位于同一层级;
发送单元603,用于通过该确定单元602确定的第二发送端口发送该数据流,以使该数据流通过该第四交换机到达该目标端口。
其中若该目标端口的标识为端口号,且该第一交换机与该第二交换机的相同端口号的端口连接到同一个上一层级交换机时,该确定单元602具体用于确定该第二交换机的发送端口中具有该端口号的端口为该第二发送端口;
本实施例中确定单元602还可以具体用于根据该目标端口的标识查找对应关系表,得到包括该目标端口的标识的表项,根据该表项得到该第二发送端口;该对应关系表的每个表项包括发送端口的标识、上一层级交换机的标识以及目标端口的标识的对应关系。
本实施例中,第二交换机通过调整消息中的数据流的标识以及目标端口的标识,将该数据流通过其他发送端口发送,并通过不同的上层交换机发送到目标端口,提供了一种对数据流进行调整的方法。
另外,本实施例提供了两种确定第二发送端口的方法,增加了方案的选择性。
为了便于理解,下面以一实际的应用场景对本发明中交换机各单元间的交互进行描述:
在传输流量时,上层交换机的发送端口发送的流量等于与该上层交换机的发送端口对接的下层交换机的接收端口接收的流量,因此第一交换机的第一获取单元501获取与第三交换机通信的接收端口接收的总流量,也就确定了第三交换机的发送端口发送的流量,其中该总流量中包括第二交换机发送的数据流占用的流量;该第一交换机与该第二交换机位于该第三交换机的下一层级;由此可见,若需要判断上述第三交换机的发送端口是否拥塞,则通过检测上述第一交换机的接收端口的总流量即可;若该总流量达到该第三交换机的发送端口的容量的第一预设阈值,则确定单元502确定该第三交换机的发送端口拥塞,并确定目标端口,该目标端口为该第一交换机的各接收端口中选取的能够接收该数据流的另一端口;上述第一预设阈值可以为99%或90%,还可以人为设置其他数值;其中该数据流为该总流量包括的数据流中占用最大流量的数据流。该第一交换机构造调整消息,该调整消息中携带该数据流的标识以及该目标端口的标识,发送单元503通过UDP向第二交换机发送调整消息。第二交换机的接收单元601接收该调整消息,确定单元602根据该调整消息中的数据流的标识和目标端口的标识,确定与该目标端口对应 的第二发送端口,该第二发送端口为该第二交换机与第四交换机通信的端口;该第四交换机与该第三交换机位于同一层级。当该目标端口的标识为端口号时,确定该目标端口的端口号,当该第一交换机和该第二交换机的相同端口号的端口连接到同一个上一层级交换机时,确定单元602在第二交换机的发送端口中确定具有该端口号的端口作为第二发送端口,该第二发送端口为该第二交换机与该第四交换机通信的端口,该第四交换机与该第三交换机位于同一层级。在第二发送端口确定后,发送单元603通过该第二发送端口发送该数据流,以使该数据流通过该第四交换机到达该目标端口。
本发明实施例还提供一种交换机,该交换机作为第一交换机使用,如图8所示,包括:接收器701、发射器702、处理器703;
其中,上述处理器703,用于控制执行:获取与第三交换机通信的接收端口接收的总流量,该总流量中包括第二交换机发送的数据流占用的流量;该第一交换机与该第二交换机位于该第三交换机的下一层级;当该第一交换机根据该总流量确定该第三交换机的发送端口拥塞时,确定目标端口;该目标端口为从该第一交换机的各接收端口中选取的能够接收该数据流的另一端口;该第一交换机向该第二交换机发送调整消息,该调整消息中携带该数据流的标识以及该目标端口的标识,该调整消息用于使该第二交换机向该目标端口发送该数据流。
本实施例中,第一交换机获取与第三交换机通信的接收端口接收的总流量,其中该总流量中包括第二交换机发送的数据流占用的流量;该第一交换机与该第二交换机位于该第三交换机的下一层级,并根据该总流量判断第三交换机的发送端口是否拥塞,当处于拥塞时,确定目标端口,该目标端口为从该第一交换机的各接收端口中选取的能够接收该数据流的端口,说明需要进行调整的数据流来自第二交换机的数据流,第一交换机通过向第二交换机发送调整消息来告知该数据流的标识以及该目标端口的标识,使第二交换机向该目标端口发送该数据流。由此可见,本发明能够提高数据中心网络利用率。
本实施例还提供了根据该总流量确定该第三交换机的发送端口拥塞的方案,如下:上述处理器703,具体用于控制执行:若该总流量达到该第三交换 机的发送端口的容量的第一预设阈值,则该第一交换机确定该第三交换机的发送端口拥塞。
本发明实施例还提供一种交换机,该交换机作为第二交换机使用,如图8所示,包括:接收器701、发射器702、处理器703;
其中,上述处理器703,用于控制执行:在第二交换机通过与第三交换机通信的第一发送端口向第一交换机的接收端口发送数据流的过程中,该第二交换机接收该第一交换机通过该第三交换机发送的调整消息,该第一交换机与该第二交换机位于该第三交换机的下一层级,该调整消息包括该数据流的标识以及目标端口的标识;该目标端口为该第一交换机的各接收端口中能够接收该数据流的另一端口;该第二交换机根据该调整消息,确定与该目标端口对应的第二发送端口,该第二发送端口为该第二交换机与第四交换机通信的端口;该第四交换机与该第三交换机位于同一层级;该第二交换机通过该第二发送端口发送该数据流,以使该数据流通过该第四交换机到达该目标端口。
本实施例还提供了确定第二发送端口的具体实现方案,如下:上述处理器703,具体用于控制执行:当该目标端口的标识为端口号,且该第一交换机和该第二交换机的相同端口号的端口连接到同一个上一层级交换机时,该第二交换机根据该调整消息,确定与该目标端口对应的第二发送端口包括:该第二交换机确定该第二交换机的发送端口中具有该端口号的端口为该第二发送端口。
本实施例还提供了另一种确定第二发送端口的具体实现方案,如下:上述处理器703,具体用于控制执行:该第二交换机根据该目标端口的标识查找对应关系表,得到包括该目标端口的标识的表项,根据该表项得到该第二发送端口;该对应关系表的每个表项包括发送端口的标识、上一层级交换机的标识以及目标端口的标识的对应关系。
本发明实施例还提供一种交换机,请参阅图9,本发明实施例中交换机另一实施例包括:
图9是本发明实施例提供的一种交换机结构示意图,该交换机800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器 (central processing units,CPU)801(例如,一个或一个以上处理器),一个或一个以上存储应用程序802或数据803的存储介质804(例如一个或一个以上海量存储设备)。其中,存储介质804可以是短暂存储或持久存储。存储在存储介质804的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对交换机中的一系列指令操作。更进一步地,中央处理器801可以设置为与存储介质804通信,在交换机800上执行存储介质804中的一系列指令操作。
交换机800还可以包括一个或一个以上电源805,一个或一个以上有线或无线网络接口806,一个或一个以上输输出接口807,和/或,一个或一个以上操作系统808,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由交换机所执行的步骤可以基于该图9所示的交换机结构。
本发明实施例具有以下优点:
第一交换机获取与第三交换机通信的接收端口接收的总流量,其中该总流量中包括第二交换机发送的数据流占用的流量;该第一交换机与该第二交换机位于该第三交换机的下一层级,并根据该总流量判断第三交换机的发送端口是否拥塞,当处于拥塞时,确定目标端口,该目标端口为从该第一交换机的各接收端口中选取的能够接收该数据流的端口,说明需要进行调整的数据流来自第二交换机的数据流,第一交换机通过向第二交换机发送调整消息来告知该数据流的标识以及该目标端口的标识,使第二交换机向该目标端口发送该数据流。由此可见,本发明能够提高数据中心网络利用率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间 的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。