一种基于软件定义网络SDN的数据中心拥塞控制方法及装置制造方法及图纸

技术编号:19486609 阅读:91 留言:0更新日期:2018-11-17 11:29
本发明专利技术实施例提供了一种基于软件定义网络SDN的拥塞控制方法、装置及SDN控制器。该方法包括:获得交换机发送的packet_in消息;确定packet_in消息中包括的数据包;当数据包为用于请求建立TCP连接的握手信息SYN包时,基于SDN控制器所在网络的拓扑结构和链路信息,对网络执行第一拥塞控制处理;当数据包为用于应答断开TCP连接的结束信息FIN包时,基于链路信息,对网络执行第二拥塞控制处理;当数据包为用于请求断开TCP连接的FIN包时,删除数据库中存储的、数据包所对应TCP连接的信息。与现有技术相比,应用本发明专利技术实施例提供的方案,SDN控制器可以改善各数据流之间带宽的公平性,并减少高度突发的短流量带来的TCP重传和超时,以实现对数据中心中存在的TCP Incast拥塞的控制。

【技术实现步骤摘要】
一种基于软件定义网络SDN的数据中心拥塞控制方法及装置
本专利技术涉及信息
,特别是涉及一种基于软件定义网络SDN的数据中心拥塞控制方法、装置及SDN控制器。
技术介绍
随着信息技术的不断发展,数据中心已经成为了信息基础设施的基石,为大规模网络服务提供了高聚合的带宽。所谓数据中心是指一整套复杂的设施,这些设施不仅包括计算机系统和其它与之配套的设备,例如,通信系统和存储系统,还包含冗余的数据通信连接设备、环境控制设备、监控设备以及各种安全装置。数据中心可以在internet网络基础设施上对数据信息进行传递、加速、展示、计算和存储。为了保证数据中心的正常运行,需要对数据中心出现的拥塞现象进行控制。所谓拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿。当前,TCPIncast拥塞已经成为数据中心中一个亟待解决的问题。造成TCPIncast拥塞的主要原因是:一些类似MapReduce的应用程序会在一段时间内启动高度突发的短流量,由于短流量具有严格的时间限制,因此这种高度突发的短流量会导致TCP重传和超时。所以,当前亟需一种数据中心拥塞控制方法来解决TCPIncast拥塞的问题。
技术实现思路
本专利技术实施例的目的在于提供一种基于软件定义网络SDN的数据中心拥塞控制方法、装置及SDN控制器,以实现对数据中心TCPIncast拥塞的控制。具体技术方案如下:第一方面,本专利技术实施例提供了一种基于软件定义网络SDN的拥塞控制方法,应用于SDN控制器,所述方法包括:获得交换机发送的packet_in消息;确定所述packet_in消息中包括的数据包;当所述数据包为用于请求建立TCP连接的握手信息SYN包时,基于所述SDN控制器所在网络的拓扑结构和链路信息,对所述网络执行第一拥塞控制处理;当所述数据包为用于应答断开TCP连接的结束信息FIN包时,基于所述链路信息,对所述网络执行第二拥塞控制处理;当所述数据包为用于请求断开TCP连接的FIN包时,删除数据库中存储的、所述数据包所对应TCP连接的信息,其中,所述数据库用于存储各个TCP连接的信息。作为本专利技术实施例的一种实施方式,所述当所述数据包为用于请求建立TCP连接的SYN包时,基于所述SDN控制器所在网络的拓扑结构和链路信息,对所述网络执行第一拥塞控制处理的步骤,包括:在所述SYN包中提取通信双方信息,其中,所述通信双方信息包括:所述发送方的IP地址、所述发送方的端口地址、所述接收方的IP地址和所述接收方的端口地址;基于所述拓扑结构和目标信息,确定所述发送方和所述接收方之间的数据流的路径信息;其中,所述目标信息包括:所述交换机的ID、所述交换机的输入端口号和所述通信双方信息;将所述目标信息和所述数据流的路径信息,存储到所述数据库;基于所述链路信息和所述数据库中当前存储的各个数据流的路径信息,为所述各个数据流分配带宽;基于所述各个数据流所分配的带宽,为所述各个数据流计算接收窗口的目标窗口值;针对所述各个数据流中的每一个,生成该数据流对应的目标流表,并将该目标流表转发到与该数据流对应的目标交换机,其中,任一数据流对应的目标流表用于将该数据流的接收窗口的大小更新为所计算的该数据流对应的目标窗口值。作为本专利技术实施例的一种实施方式,所述当所述数据包为用于应答断开TCP连接的FIN包时,基于所述链路信息,对所述网络执行第二拥塞控制处理的步骤,包括:基于所述链路信息和所述数据库中当前存储的各个数据流的路径信息,为所述各个数据流分配带宽;基于所述各个数据流所分配的带宽,为所述各个数据流计算接收窗口的目标窗口值;针对所述各个数据流中的每一个,生成该数据流对应的目标流表,并将该目标流表转发到与该数据流对应的目标交换机,其中,任一数据流对应的目标流表用于将该数据流的接收窗口的大小更新为所计算的该数据流对应的目标窗口值。作为本专利技术实施例的一种实施方式,所述基于所述链路信息和所述数据库中当前存储的各个数据流的路径信息,为所述各个数据流分配带宽的步骤,包括:基于所述各个数据流的路径信息和所述链路信息,统计所述拓扑结构中各个目标链路的目标链路信息,其中,目标链路为:存在未分配带宽的数据流的链路,任一目标链路的目标链路信息包括:该目标链路的可用带宽和流经该目标链路的未分配带宽的数据流的数目;基于所述各个目标链路的目标链路信息,确定所述各个目标链路中链路拥塞程度最大的目标链路,作为待分配链路;为待分配链路的待分配数据流分配所述待分配链路的可用带宽,其中,所述待分配数据流为:流经所述待分配链路的未分配带宽的数据流;更新所述待分配数据流所流经的链路的链路信息,返回所述基于所述各个数据流的路径信息和所述链路信息,统计所述拓扑结构中各个目标链路的目标链路信息的步骤,直至所述拓扑结构中不存在目标链路。作为本专利技术实施例的一种实施方式,所述基于所述各个目标链路的目标链路信息,确定所述各个目标链路中链路拥塞程度最大的目标链路,作为待分配链路的步骤,包括:针对每个目标链路,计算该目标链路的可用带宽与流经该目标链路的未分配带宽的数据流的数目的比值,作为链路拥塞度;确定所述链路拥塞度最小的目标链路为待分配链路。作为本专利技术实施例的一种实施方式,所述为所述各个数据流计算接收窗口的目标窗口值的步骤,包括:利用如下公式为所述各个数据流计算接收窗口的目标窗口值:rwndi=bi×numibottleneck×latency其中,Fbottle表示一个方向上流经瓶颈链路的数据流的集合,所述瓶颈链路为:在某一个方向或两个方向上链路的带宽容量全部分配的链路,i表示集合Fbottle中的数据流的编号,rwndi表示编号为i的数据流的目标窗口值,表示编号为i的数据流所经过的瓶颈链路的数量,windowbase表示能满足链路的带宽容量的基本窗口大小,bi表示编号为i的数据流的分配带宽,latency表示瓶颈链路的延时,m表示集合Fbottle中的数据流的数目。作为本专利技术实施例的一种实施方式,所述目标交换机为:网络边缘交换机;所述目标流表为二级流表,其中,第一级用于将该数据流的接收窗口的大小更新为所计算的该数据流对应的目标窗口值,第二级用于路由。第二方面,本专利技术实施例提供了一种基于软件定义网络SDN的拥塞控制装置,应用于SDN控制器,所述装置包括:消息获得模块,用于获得交换机发送的packet_in消息;消息确定模块,用于确定所述packet_in消息中包括的数据包,当所述数据包为用于请求建立TCP连接的握手信息SYN包时,触发第一控制模块,当所述数据包为用于应答断开TCP连接的结束信息FIN包时,触发第二控制模块,当所述数据包为用于请求断开TCP连接的FIN包时,触发第三控制模块;所述第一控制模块,用于基于所述SDN控制器所在网络的拓扑结构和链路信息,对所述网络执行第一拥塞控制处理;所述第二控制模块,用于基于所述链路信息,对所述网络执行第二拥塞控制处理;所述第三控制模块,用于删除数据库中存储的、所述数据包所对应TCP连接的信息,其中,所述数据库用于存储各个TCP连接的信息。作为本专利技术实施例的一种实施方式,所述第一控制模块包括:信息获取子本文档来自技高网...

【技术保护点】
1.一种基于软件定义网络SDN的拥塞控制方法,其特征在于,应用于SDN控制器,所述方法包括:获得交换机发送的packet_in消息;确定所述packet_in消息中包括的数据包;当所述数据包为用于请求建立TCP连接的握手信息SYN包时,基于所述SDN控制器所在网络的拓扑结构和链路信息,对所述网络执行第一拥塞控制处理;当所述数据包为用于应答断开TCP连接的结束信息FIN包时,基于所述链路信息,对所述网络执行第二拥塞控制处理;当所述数据包为用于请求断开TCP连接的FIN包时,删除数据库中存储的、所述数据包所对应TCP连接的信息,其中,所述数据库用于存储各个TCP连接的信息。

【技术特征摘要】
1.一种基于软件定义网络SDN的拥塞控制方法,其特征在于,应用于SDN控制器,所述方法包括:获得交换机发送的packet_in消息;确定所述packet_in消息中包括的数据包;当所述数据包为用于请求建立TCP连接的握手信息SYN包时,基于所述SDN控制器所在网络的拓扑结构和链路信息,对所述网络执行第一拥塞控制处理;当所述数据包为用于应答断开TCP连接的结束信息FIN包时,基于所述链路信息,对所述网络执行第二拥塞控制处理;当所述数据包为用于请求断开TCP连接的FIN包时,删除数据库中存储的、所述数据包所对应TCP连接的信息,其中,所述数据库用于存储各个TCP连接的信息。2.根据权利要求1所述的方法,其特征在于,所述当所述数据包为用于请求建立TCP连接的SYN包时,基于所述SDN控制器所在网络的拓扑结构和链路信息,对所述网络执行第一拥塞控制处理的步骤,包括:在所述SYN包中提取通信双方信息,其中,所述通信双方信息包括:所述发送方的IP地址、所述发送方的端口地址、所述接收方的IP地址和所述接收方的端口地址;基于所述拓扑结构和目标信息,确定所述发送方和所述接收方之间的数据流的路径信息;其中,所述目标信息包括:所述交换机的ID、所述交换机的输入端口号和所述通信双方信息;将所述目标信息和所述数据流的路径信息,存储到所述数据库;基于所述链路信息和所述数据库中当前存储的各个数据流的路径信息,为所述各个数据流分配带宽;基于所述各个数据流所分配的带宽,为所述各个数据流计算接收窗口的目标窗口值;针对所述各个数据流中的每一个,生成该数据流对应的目标流表,并将该目标流表转发到与该数据流对应的目标交换机,其中,任一数据流对应的目标流表用于将该数据流的接收窗口的大小更新为所计算的该数据流对应的目标窗口值。3.根据权利要求1所述的方法,其特征在于,所述当所述数据包为用于应答断开TCP连接的FIN包时,基于所述链路信息,对所述网络执行第二拥塞控制处理的步骤,包括:基于所述链路信息和所述数据库中当前存储的各个数据流的路径信息,为所述各个数据流分配带宽;基于所述各个数据流所分配的带宽,为所述各个数据流计算接收窗口的目标窗口值;针对所述各个数据流中的每一个,生成该数据流对应的目标流表,并将该目标流表转发到与该数据流对应的目标交换机,其中,任一数据流对应的目标流表用于将该数据流的接收窗口的大小更新为所计算的该数据流对应的目标窗口值。4.根据权利要求2或3所述的方法,其特征在于,所述基于所述链路信息和所述数据库中当前存储的各个数据流的路径信息,为所述各个数据流分配带宽的步骤,包括:基于所述各个数据流的路径信息和所述链路信息,统计所述拓扑结构中各个目标链路的目标链路信息,其中,目标链路为:存在未分配带宽的数据流的链路,任一目标链路的目标链路信息包括:该目标链路的可用带宽和流经该目标链路的未分配带宽的数据流的数目;基于所述各个目标链路的目标链路信息,确定所述各个目标链路中链路拥塞程度最大的目标链路,作为待分配链路;为待分配链路的待分配数据流分配所述待分配...

【专利技术属性】
技术研发人员:廖建新戚琦王晶王敬宇包剑楠
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1