1.一种基于Fat-Tree结构的数据中心网络路由方法,其特征在于:该方法包括以下步骤:
S1:使用支持OpenFlow协议的SDN交换机构建k元Fat-Tree结构的数据中心网络,其中包括5k2/4台OpenFlow交换机和k3/4台主机;使用OpenFlow协议提供的接口周期性收集和更新网络中所有链路信息和数据流信息,实现对网络链路状况和数据流传输情况的监测;
S2:针对进入网络中的新流,采用基于链路剩余带宽和大流数目的DLB(动态负载均衡)算法进行路由;根据链路可用剩余带宽和数据流请求带宽选择出可用路径集,当存在具有多条最大可用剩余带宽的路径时,选择大流数目更少的那条路径作为路由路径;
S3:当步骤S1中检测到拥塞链路后,找出拥塞链路上的大流,逐一地、从大到小地采用DR(动态重路由)算法进行重新路由,直到链路不再拥塞为止;根据大流的截止时间和路径上交换机的队列长度选择全路径重路由或者局部重路由方式;
S4:控制器根据步骤S2和S3得出的路由路径,由控制器的流表下发模块将路径转换成相应的流表项,并以OFPT_FLOW_MOD消息的形式下发到路径上的各个SDN交换机中。
2.根据权利要求1所述的一种基于Fat-Tree结构的数据中心网络路由方法,其特征在于:在步骤S1中,所述的使用OpenFlow协议获取链路状态信息和数据流统计信息,具体包含以下步骤:S11:根据Fat-Tree结构特点,为了获得网络中所有链路状态信息,控制器不需要向所有交换机发送查询请求,只需向处在中间层的所有汇聚层交换机发送请求即可,因此,每隔T1周期控制器向所有汇聚层交换机发送物理端口统计请求,获得该端口在这个周期内发送和接收的总字节数,将总字节数除以T1就可以得到该链路在该周期内的传输带宽;
S12:为了获得最新的数据流统计信息,且为了避免重复查询,控制器只需要向所有边缘层交换机发送流的信息请求,因此,每隔T2周期控制器向所有边缘层交换机发送流统计消息,获取各条流的已传输字节数;
S13:控制器将步骤S11中得到的各个端口所连链路的传输带宽值存储在结构{srcDpid,dstDpid,srcPort,dstPort,bandWidth}中,其中bandWidth即为该端口的已传输带宽,根据Fat-Tree结构特点,设定拥塞链路的阈值为链路总带宽的75%,当bandWidth超过设定的阈值后该链路被标记为拥塞链路;
S14:控制器将步骤S12获取到的流的已传输总字节数存储在结构{srcIp,dstIp,srcPort,dstPort,protocol,totalBytes}中,其中totalBytes为流的已传输总字节数,设定某条数据流为大流的阈值为100MB,当totalBytes超过设定的阈值时该流被标记为大流。
3.根据权利要求2所述的一种基于Fat-Tree结构的数据中心网络路由方法,其特征在于:在步骤S2中,所述对进入网络中的新流使用基于链路剩余带宽和大流数目的DLB算法进行选路,具体包含以下步骤:S21:控制器收到交换机发送的OFPT_PACKET_IN消息后,从中解析出数据流中首包包头信息,并记录下来;
S22:根据统计出的链路已传输带宽和数据流大小,由设定的阈值计算出所有可达路径集中每条路径各条链路的可用剩余带宽,将链路最小的可用带宽作为该路径的最大可用剩余带宽,然后将每条路径的可用带宽与该数据流的请求带宽进行比较,滤除可用带宽小于请求带宽的路径,得出新的可用路径集;
S23:当存在多条具有相同最大可用带宽的路径时,根据统计出的大流信息,选择大流数目较少的那条路径作为路由路径,这样能够避免短数据流在大流数目较多的路径上进行排队而增加时延;如果没有相同的则选择可用带宽最大的那条路径。
4.根据权利要求3所述的一种基于Fat-Tree结构的数据中心网络路由方法,其特征在于:在步骤S3中,当检测到拥塞链路后,对拥塞链路上的大流使用基于截止时间和交换机队列长度的DR算法进行重路由,具体步骤如下:S31:根据步骤S2中所述方法为拥塞链路上的大流选择可用路径集;
S32:根据大流的截止时间,滤除可选路径集中路径时延大于截止时间的路径,得出新的可用路径集,所述路径时延主要指排队时延和处理时延之和;
S33:计算可用路径集每条路径上交换机的总缓冲队列长度,根据队列长度最短原则选择全路径重路由或局部重路由方式;缓冲队列长度是由交换机周期性的上报至控制器,并由控制器计算出总缓冲队列长度。