CN109756421B - 一种基于OpenFlow技术的拥塞控制***及方法 - Google Patents
一种基于OpenFlow技术的拥塞控制***及方法 Download PDFInfo
- Publication number
- CN109756421B CN109756421B CN201910062999.5A CN201910062999A CN109756421B CN 109756421 B CN109756421 B CN 109756421B CN 201910062999 A CN201910062999 A CN 201910062999A CN 109756421 B CN109756421 B CN 109756421B
- Authority
- CN
- China
- Prior art keywords
- network
- switch
- link
- controller
- bandwidth
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于OpenFlow技术的拥塞控制***及方法,该***包括:网络拓扑感知模块、网络带宽监控模块、网络时延检测模块、流量调度模块、网络可视化展示模块和网络配置管理模块;该方法主要包括网络拓扑采集以及根据Dijkstra算法计算全网最短路径;通过OpenFlow消息中OFPPortStatsRequest的请求与回复实时监控链路带宽数据;通过LLDP数据包新增的时间戳标签和echo消息新增的时间戳标签实时检测链路时延;展示可视化界面,可通过REST API实时改变路由规则;如果判断发生拥塞,则通过流量调度模块把流量调度到轻负载链路上以避免某段链路的拥塞,否则按原路转发流量。本发明的拥塞控制***及方法能快速恢复网络业务,缓解网络拥塞,提高链路带宽利用率。
Description
技术领域
本发明涉及数据通信网的拥塞控制领域,特别涉及一种基于OpenFlow技术的拥塞控制***及方法。
背景技术
传统的流量工程依赖于TCP/IP协议栈,而如今网络流量***增长,传统方法对于拥塞感知和拥塞流量调度是低效的,有些方法甚至还需要在端***上对协议栈进行修改,随着计算机网络的变化,其性能也越来越无法满足人们的需求。
近几年,软件定义网络成为了网络通信领域的研究热点,它的设计颠覆了计算机网络的传统架构,OpenFlow作为核心协议,使高效智能的流量调度成为了可能,软件定义网络架构中的控制器具备全局视野,控制器不仅掌握全网拓扑结构,还具备实时收集网络信息的能力,这样控制器就拥有了路由决策能力。而现阶段,许多基于OpenFlow技术的研究,仅把带宽作为拥塞发生标志,提出了基于流调度代价的拥塞控制方法,它们的基本思路是先检测链路情况,当判断出网络拥塞时,对流量进行重路由,以此减缓高负载链路上的拥塞状况。然而以上方案只考虑了网络带宽而没有考虑到链路时延,当网络中存在难以忍受的链路时延时,上述方法无法实现预期效果。本发明基于OpenFlow技术,提出了一种检测链路时延的方法,基于OpenFlow协议,提出了一种带宽监控方法,结合拓扑感知、流量调度,提出了一种拥塞控制***及方法。
发明内容
本发明的目的在于克服现有技术中的缺点与不足,提供了一种基于OpenFlow技术的拥塞控制***及方法,能够实时监控带宽、检测时延,并可以动态地选择路由规则,有利于高效调度流量。
为实现以上目的,本发明采取如下技术方案:
一种基于OpenFlow技术的拥塞控制***,包括:
网络拓扑感知模块,用于感知全网交换机以及主机拓扑;
网络带宽监控模块,用于实时收集全网链路的带宽使用情况;
网络时延检测模块,用于实时收集全网链路的时延数据;
流量调度模块,用于根据所述网络拓扑感知模块、网络带宽监控模块和网络时延检测模块采集的数据,实时动态地执行多参数流量调度方案,并且能够根据网络管理员的需求,在线改变路由规则。
作为优选的技术方案,所述的***还包括两个辅助模块:
网络可视化展示模块,用于将感知得到的网络拓扑、收集得到的网络参数整理后由图形界面显示;
网络配置管理模块,用于基于REST API设计一套动态改变路由规则的方法,并且通过易于操作的图形界面用户配置监控周期、检测周期,以及用于对于网络可视化展示模块的自定义管理。
作为优选的技术方案,基于OpenFlow技术的拥塞控制***的控制方法,包括下述步骤:
(1)获取全网拓扑并计算基于跳数的全网最短路径:调用网络拓扑感知模块使用LLDP协议来感知交换机,使用ARP协议感知主机,以得到全网拓扑;得到全网拓扑后,流量调度模块根据Dijkstra算法计算基于跳数的全网最短路径,因各链路cost值相等,所以最优路径等价于最短路径,最短路径仅取决于跳数;
(2)实时监控带宽并计算基于带宽的全网最优路径:利用OpenFlow协议中的OFPPortStatsRequest消息,控制器获知全网链路的带宽值,周期调用网络带宽监控模块,掌握实时带宽数据;以所述带宽数据作为各链路的cost值,流量调度模块根据Dijkstra算法计算基于带宽的全网最优路径;
(3)实时检测时延并计算基于时延的全网最优路径:在OpenFlow协议中添加时间戳变量,计算出全网链路时延,周期调用网络时延检测模块,可掌握实时时延数据;以所述时延数据作为各链路的cost值,流量调度模块根据Dijkstra算法计算基于时延的全网最优路径;
(4)计算全局最优路径:以不同权重占比的时延和带宽为各链路的cost值,流量调度模块根据Dijkstra算法计算全局最优路径;
(5)选择路由规则:针对网络中各链路的时延、带宽数据情况,网络管理员根据自定义REST API选择合适的路由规则,使流量调度模块为所选路径上的交换机依次下发流表项,从而最大程度地缓解网络拥塞。
作为优选的技术方案,步骤(1)中,所述调用网络拓扑感知模块使用LLDP协议来感知交换机,使用ARP协议感知主机,以得到全网拓扑,具体过程如下:
感受交换机:在网络初始化时,控制器通过下发OpenFlow协议中的Packet_out消息给交换机,来指示交换机发送LLDP数据包给另一台交换机,所述另一台交换机收到LLDP数据包后,封装到Packet_in消息里,再交给控制器,经过解析获得全网交换机信息;
感受主机:主机向网络发送ARP数据包的时候,所述ARP数据包第一个到达的接入交换机不知道如何转发,所述ARP数据包将会被封装到Packet_in消息里并上交给控制器,控制器于是知道该主机连接着所述接入交换机。
作为优选的技术方案,步骤(1)中,在感知拓扑时,得到每条链路的配置信息包括链路容量;
得到全网拓扑后,将交换机作为顶点,链路作为边,存储于图结构中,以作为Dijkstra算法的输入参数。
作为优选的技术方案,步骤(2)中,所述利用OpenFlow协议中的OFPPortStatsRequest消息,控制器掌握全网链路的带宽值,周期调用网络带宽监控模块,掌握实时带宽数据,具体包括下述步骤:
(2-1)初始化配置:通过网络拓扑感知模块获取全网信息后,通过网络管理模块确定监控周期;
(2-2)控制器向全网交换机发送OFPPortStatsRequest请求;
(2-3)每台交换机接收到OFPPortStatsRequest请求后,会查询自己所有端口的统计数据,然后回复给控制器一个集合,包括所有端口的统计数据,元素数量即为端口数量,集合中每一个元素都是一个结构体,称作ofp_port_stats,结构体包含四个重要数据:发送字节数、接收字节数、存活时间、存活纳秒时间,这四个重要数据是该端口自初始化以来的统计数据;控制器收到ofp_port_stats结构体,保存四个重要数据以备计算;
(2-4)间隔一定周期,控制器再向全网交换机发送OFPPortStatsRequest请求,以求新的端口统计数据;
(2-5)计算端口带宽数据,根据以下公式计算得到端口的带宽值;
其中间隔时间period为:
period=(durationsec_new+durationnsec_new×10-9)-(durationsec_old+durationnsec_old×10-9)
作为优选的技术方案,步骤(3)中,所述在OpenFlow协议中添加时间戳变量,计算出全网链路时延,周期调用网络时延检测模块,掌握实时时延数据,具体包括下述步骤:
(3-1)根据OpenFlow消息中封装的LLDP数据包中新增的时间戳变量,得到[控制器—交换机s1—交换机s2—控制器]这三段链路的时延,设为T1;
(3-2)根据步骤(3-1)的原理,[控制器—交换机s1—交换机s2—控制器]得到三段链路的反向时延,设为T2,定义RTT为往返时延,显然有:
T1+T2=RTT控制器-s1+RTTs1-s2+RTTs2-控制器
(3-3)根据OpenFlow v1.3协议标准可知,通过echo消息新增的时间戳变量得到控制器到交换机的往返时延,具体过程是:在发送消息echo_request中设置时间戳参数,控制器发送echo_request消息给交换机时,把当前时间写入时间戳字段,交换机接收会回复echo_reply消息给控制器,控制器接收并立即查询当前时间,于是有:
RTT控制器-交换机=接收时间戳-发送时间戳
于是得到RTT控制器-s1、RTT控制器-s2;
(3-4)通过上述步骤推导,得到交换机s1与交换机s2之间的链路时延:
作为优选的技术方案,步骤(4)中,计算全局最优路径,具体包括下述步骤:
(4-1)假设网络中有n条链路,设网络链路集合L:{l1,l2,…ln},链路已用带宽集合B:{b1,b2,…bn},链路剩余带宽集合R:{r1,r2,…rn},链路容量集合S:{s1,s2,…sn},链路时延集合D:{d1,d2,…dn},五个集合元素个数相等,集合L与集合S可由网络拓扑感知模块获得,集合B可由网络带宽监控模块获得,集合D可由网络时延检测模块获得,集合R中各元素由下式计算得到:
ri=si-bi(i=1,2,...n)
(4-2)设各链路cost值集合C:{c1,c2,…cn},集合C中各元素可由下式计算出:
ci=αdi-βri
其中α、β为权重系数,数值取决于具体的网络模型,可由网络管理员实时配置;
(4-3)将集合C作为输入参数传入Dijkstra算法,计算全局最优路径。
作为优选的技术方案,步骤(5)中,在所述自定义REST API中,定义四种合法的请求:①切换路由规则为跳数;②切换路由规则为带宽;③切换路由规则为时延;④切换路由规则为带宽和时延的权重和;
向运行控制器程序的服务器中提交上述任意一种请求,都可使路由规则发生改变,网络管理员可按情况自由设置路由规则。
本发明相对于现有技术具有如下的优点和效果:
(1)本发明提出的动态监控链路带宽的方法,该方法准确性高、灵敏度高,适合在软件定义网络环境收集带宽数据。
(2)本发明提出的检测链路时延的方法,通过添加时间戳变量,获得网络中各链路的时延数据,经过实践,该方法测量准确性高,可作为底层数据收集模块,为丰富网络功能带来了可能。
(3)本发明提出的流量调度方法中,通过可视化界面展示时延和带宽数据,通过自定义REST API实时改变路由规则;如果判断发生拥塞,则通过流量调度模块把流量调度到轻负载链路上以避免某段链路的拥塞,否则按原路转发流量。故而能快速恢复网络业务,缓解网络拥塞,提高链路带宽利用率。
(4)本发明充分利用控制器灵活可编程的特性,开发出丰富的REST API,以供网络管理员管理、配置网络,这极大地提高了网络管理员的效率,降低了网络管理的成本。
(5)本发明通过数据测量模块,可实时监控网络状况,优化了管理人员的操作复杂度,也减少了低效调度带来的危害,所述的拥塞控制方案可根据网络中的多种网络参数决定路由规则,既可在网络初始化时决定单一参数的静态路由规则,也可以在网络运行过程中,由网络管理员动态配置多参数的路由规则,从而实现流量的高效调度,大大减缓网络拥塞,最终优化了网络的敏捷调度和灵活控制能力。
附图说明
为了更清楚直观地说明本实施实例的技术方案,下面将介绍相关的附图。
图1为本实施例的拥塞控制***示意图;
图2为本实施例的带宽监控功能的流程图;
图3为本实施例的时延检测原理示意图,实线箭头的三段链路时延和为T1,称为前向时延,虚线箭头的三段链路时延和为T2,称为反向时延,控制器到交换机s1的链路时延为RTT控制器-s1,控制器到交换机s2的链路时延为RTT控制器-s2;
图4为本实施例的网络拓扑结构的模型图,包括一台控制器(Controller)、五台OpenFlow交换机(s1,s2,s3,s4,s5)和三台主机(h1,h2,h3),其中h1、h2作为客户端,h3作为服务器端。
具体实施方式
为了使本发明的目的、技术方案以及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不限于本发明。
实施例
本实施例提出的一种基于OpenFlow技术的拥塞控制***及方法,具有动态的带宽监控效果;通过添加时间戳标签,确定了一种精确的时延检测方法;通过实时收集链路的带宽、时延数据,动态地更新路由规则,实现流量的高效调度,从而大大缓解网络拥塞。
如图1所示,本实施例基于OpenFlow技术的拥塞控制***,主要包括网络拓扑感知模块、网络带宽监控模块、网络时延检测模块、以及流量调度模块,前三个测量模块获得的数据可以实时反馈给所述流量调度模块,所述流量调度模块执行多参数流量调度算法,从而实现最优路径转发功能,达到流量的高效调度。同时本实施例的***还包括两个辅助模块:网络可视化展示模块和网络配置管理模块,所述网络可视化展示模块用来将感知得到的网络拓扑、收集得到的网络参数整理后由图形界面显示;所述网络配置管理模块,用于基于REST API(REST:表现层状态转换;API:应用程序接口)设计了一套动态改变路由规则的方法,并且通过易于操作的图形界面用户配置监控周期、检测周期,以及用于对于网络可视化展示模块的自定义管理。
在本实施例中,所述网络拓扑感知模块用于得到全网拓扑结构,初始化时,控制器通过LLDP协议(Link Layer Discovery Protocol,链路层发现协议)掌握全网交换机的联网情况,然后再根据ARP协议(Address Resolution Protocol,地址解析协议)发现全网主机。根据得到的全网拓扑结构,流量调度模块执行Dijkstra算法计算基于跳数的全网最短路径,此时各链路的cost值相等,最优路径等价于最短路径,最短路径取决于跳数。
所述网络带宽监控模块,用于周期性收集全网链路的带宽数据,通过查阅OpenFlow协议文档,发现OFPPortStatsRequest请求十分适合测量需求。当控制器向交换机发送这个请求时,交换机会把各端口自初始化以来的发送字节数(tx_bytes)、接收字节数(rx_bytes)、存活时间(duration_sec)、存活纳秒时间(duration_nsec)等数据回复给控制器。因为端口带宽指的是端口的数据传输能力,所以一定间隔时间内的总数据是发送数据与接收数据之和。因为端口收发的数据通过与之唯一连接的链路传输,所以该端口带宽就等于对应链路带宽。以链路带宽数据作为各链路的cost值,流量调度模块根据Dijkstra算法计算基于带宽的全网最优路径。
如图2所示为计算链路带宽数据的具体流程,其详细步骤如下:
步骤1、初始化配置,感知网络拓扑,通过网络配置管理模块确定监控周期。
步骤2、控制器向全网交换机发送OFPPortStatsRequest请求,因为控制器与交换机存在安全通道(secure channel),OFPPortStatsRequest请求通过安全通道传输。
步骤3、每台交换机接收到OFPPortStatsRequest请求后,会查询自己所有端口的统计数据,然后回复给控制器一个集合,包括所有端口的统计数据,元素数量即为端口数量,集合中每一个元素都是一个结构体,称作ofp_port_stats,结构体包含四个重要数据:发送字节数(tx_bytes)、接收字节数(rx_bytes)、存活时间(duration_sec)、存活纳秒时间(duration_nsec),它们是该端口自初始化以来的统计数据。控制器收到ofp_port_stats结构体,保存前述四个种数据以备计算。
步骤4、间隔一定时间period(周期),控制器再向全网交换机发送OFPPortStatsRequest请求,与步骤2类似。
步骤5、与步骤3类似,控制器掌握了新的时刻所有交换机的所有端口自初始化以来的发送字节数(tx_bytes)、接收字节数(rx_bytes)、存活时间(duration_sec)、存活纳秒时间(duration_nsec)。
步骤6,计算端口带宽数据,根据以下公式可以得到端口的带宽值:
其中间隔时间period为:
period=(durationsec_new+durationnsec_new×10-9)-(durationsec_old+durationnsec_old×10-9)
根据以上步骤可得到全网链路的带宽数据,至此,一个带宽监控周期完成,根据步骤1设置的周期间隔,回到步骤2重新循环。
如图3所示为网络时延检测模块的检测原理,本实施例所需的链路时延指的是交换机s1到交换机s2的时延,需分两步计算。
第一步,利用了LLDP数据包中新增的时间戳变量,LLDP数据包用于链路发现,这里将其扩展,新增了时延检测的功能,代价可以忽略不计。首先,控制器将当前时间作为时间戳添加到LLDP数据包中,这也就是发送时间,然后控制器向s1发送封装了LLDP数据包的OpenFlow消息,s1接收到这个消息后发送LLDP数据包出去,根据流表机制,s1接收到这个LLDP数据包后不知道如何操作(Action),于是会将其封装交给控制器,控制器再从中解析出时间戳变量,当前时间也就是接收时间,用接收时间减去发送时间即可得到三段链路的时延,设为T1,这个过程由图3中实线箭头表示。同理,只需改变方向即可得到这三段链路的反向时延,设为T2,这个过程由图3中的虚线箭头表示。定义RTT(Round-Trip Time)为往返时延,于是有:
T1+T2=RTT控制器-s1+RTTs1-s2+RTTs2-控制器
接下来需要知道控制器到交换机的时延。
第二步,通过查询OpenFlow v1.3协议标准,echo消息可以实现测量需求,echo消息是一个对称消息,控制器和交换机都可以主动发出给对方,该消息很简单,一方发送echo_request消息,另一方回复echo_reply消息,echo消息主要用来检测对端设备的活跃性。
于是,本实施例中在echo_request消息中设置时间戳参数。控制器发送echo_request消息给交换机时,把当前时间写入时间戳字段,交换机接收会回复echo_reply消息给控制器,控制器接收会立即查询当前时间。于是有:
RTT控制器-交换机=接收时间戳-发送时间戳
于是得到RTT控制器-s1、RTT控制器-s2;在图3中,RTT控制器-交换机由点线框中的实现箭头和虚线箭头组合而成。
进而得到交换机s1与交换机s2之间的链路时延:
根据以上两步可得到全网链路的时延数据,至此,一段链路的时延检测完成。
图4所示为网络拓扑结构的模型图,在本实施例的拥塞控制机制下,带宽数据与时延数据测量误差小、精度高,且反应灵敏,下面举例说明本实施例是如何通过流量调度实现拥塞控制的。
首先,网络中没有流量,每条链路的跳数为1,带宽为0,时延大致相等(一个很小的默认值),h1向h3发送数据包,流量调度模块会为这条流量打通s1-s2-s5这条转发路径(控制器为这几个交换机依次下发对应的流表项),同时,h3向h1发送数据包的路径也会由流量调度模块确定,即为反向的转发路径:s5-s2-s1。当h2向h3发送数据包,流量调度模块检测到s1-s2-s5的这条转发路径承担了大量流量,于是会为h2到h3这条流打通s1-s3-s4-s5这条转发路径,同时确定反向的转发路径:s5-s4-s3-s1。这样,可以实现带宽分流的功能,极大缓解网络拥塞情况。
进一步地,如果当前网络中s1-s2这条链路的链路时延因突发事件而陡然增加,时延检测模块能迅速地将数据收集,提供给流量调度模块,然后流量调度模块执行基于时延的最优路径转发功能,于是把经过这条链路的流量重路由到另一条路径上去。具体来说,首先删除h1到h3的转发路径:s1-s2-s5(控制器向这几台交换机下发指令删除对应流表项),然后打通s1-s3-s4-s5这条转发路径(控制器为这几个交换机依次下发对应的流表项)。于是,即使某条链路突然出现难以忍受的时延,在很短的时间内,拥塞控制***可以检测到这种情况并通过流量调度缓解这一情况。
本实施例中,把链路带宽和链路时延这两个参数结合起来计算全局最优路径,使得流量调度更加科学合理,其步骤如下:
步骤1、假设网络中有n条链路,可设网络链路集合L:{l1,l2,…ln},链路已用带宽集合B:{b1,b2,…bn},链路剩余带宽集合R:{r1,r2,…rn},链路容量集合S:{s1,s2,…sn},链路时延集合D:{d1,d2,…dn},五个集合元素个数相等,集合L与集合S可由网络拓扑感知模块获得,集合B可由网络带宽监控模块获得,集合D可由网络时延检测模块获得,集合R中各元素可由下式计算得到:
ri=si-bi(i=1,2,…n)
步骤2、设各链路cost值集合C:{c1,c2,…cn},集合C中各元素可由下式计算出:
ci=αdi-βri
其中α、β为权重系数,数值取决于具体的网络模型,可由网络管理员实时配置。
步骤3、将集合C作为输入参数传入Dijkstra算法,计算全局最优路径。
本实施例中,根据网络可视化展示模块展示的网络中各链路的时延、带宽数据情况,如果判断发生拥塞,网络管理员根据自定义REST API选择合适的路由规则,通过流量调度模块把流量调度到轻负载链路上以避免某段链路的拥塞,否则按原路转发流量。
在所述自定义REST API中,定义四种合法的请求:①切换路由规则为跳数;②切换路由规则为剩余带宽;③切换路由规则为时延;④切换路由规则为带宽和时延的权重和。向运行控制器程序的服务器中提交上述任意一种请求,都可使路由规则发生改变。网络管理员可按情况自由设置路由规则,使流量调度模块为所选路径上的交换机依次下发流表项,从而最大程度地缓解网络拥塞。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以权利要求所述为准。
Claims (8)
1.一种基于OpenFlow技术的拥塞控制***,其特征在于,包括:
网络拓扑感知模块,用于感知全网交换机以及主机拓扑;即通过网络拓扑感知模块使用LLDP协议来感知交换机,使用ARP协议感知主机,以得到全网拓扑,具体过程如下:感受交换机:在网络初始化时,控制器通过下发OpenFlow协议中的Packet_out消息给交换机,来指示交换机发送LLDP数据包给另一台交换机,所述另一台交换机收到LLDP数据包后,封装到Packet_in消息里,再交给控制器,经过解析获得全网交换机信息;感受主机:主机向网络发送ARP数据包的时候,所述ARP数据包第一个到达的接入交换机不知道如何转发,所述ARP数据包将会被封装到Packet_in消息里并上交给控制器,控制器于是知道该主机连接着所述接入交换机;
网络带宽监控模块,用于实时收集全网链路的带宽使用情况;即基于OpenFlow环境下,利用OpenFlow协议中的OFPPortStatsRequest消息,控制器掌握全网链路的带宽值,周期调用网络带宽监控模块,掌握实时带宽数据;
网络时延检测模块,用于实时收集全网链路的时延数据;即基于OpenFlow环境下,在OpenFlow协议中添加时间戳变量,计算出全网链路时延,周期调用网络时延检测模块,掌握实时时延数据;
流量调度模块,用于根据所述网络拓扑感知模块、网络带宽监控模块和网络时延检测模块采集的数据,实时动态地执行多参数流量调度方案,并且能够根据网络管理员的需求,在线改变路由规则;
具体如下:流量调度模块计算基于跳数的全网最短路径;流量调度模块计算基于带宽的全网最优路径;流量调度模块计算基于时延的全网最优路径;以不同权重占比的时延和带宽为各链路的cost值,流量调度模块计算全局最优路径;针对网络中各链路的时延、带宽数据情况,网络管理员根据自定义需求选择合适的路由规则,使流量调度模块为所选路径上的交换机依次下发流表项;
所述的***还包括两个辅助模块:
网络可视化展示模块,用于将感知得到的网络拓扑、收集得到的网络参数整理后由图形界面显示;
网络配置管理模块,用于基于REST API设计一套动态改变路由规则的方法,并且通过易于操作的图形界面用户配置监控周期、检测周期,以及用于对于网络可视化展示模块的自定义管理。
2.一种基于OpenFlow技术的拥塞控制方法,根据权利要求1所述的基于OpenFlow技术的拥塞控制***来实现的控制方法,其特征在于,包括下述步骤:
(1)获取全网拓扑并计算基于跳数的全网最短路径:调用网络拓扑感知模块使用LLDP协议来感知交换机,使用ARP协议感知主机,以得到全网拓扑;得到全网拓扑后,流量调度模块根据Dijkstra算法计算基于跳数的全网最短路径,因各链路cost值相等,所以最优路径等价于最短路径,最短路径仅取决于跳数;
(2)实时监控带宽并计算基于带宽的全网最优路径:利用OpenFlow协议中的OFPPortStatsRequest消息,控制器获知全网链路的带宽值,周期调用网络带宽监控模块,掌握实时带宽数据;以所述带宽数据作为各链路的cost值,流量调度模块根据Dijkstra算法计算基于带宽的全网最优路径;
(3)实时检测时延并计算基于时延的全网最优路径:在OpenFlow协议中添加时间戳变量,计算出全网链路时延,周期调用网络时延检测模块,可掌握实时时延数据;以所述时延数据作为各链路的cost值,流量调度模块根据Dijkstra算法计算基于时延的全网最优路径;
(4)计算全局最优路径:以不同权重占比的时延和带宽为各链路的cost值,流量调度模块根据Dijkstra算法计算全局最优路径;
(5)选择路由规则:针对网络中各链路的时延、带宽数据情况,网络管理员根据自定义REST API选择合适的路由规则,使流量调度模块为所选路径上的交换机依次下发流表项,从而最大程度地缓解网络拥塞。
3.根据权利要求2所述的基于OpenFlow技术的拥塞控制方法,其特征在于,步骤(1)中,所述调用网络拓扑感知模块使用LLDP协议来感知交换机,使用ARP协议感知主机,以得到全网拓扑,具体过程如下:
感受交换机:在网络初始化时,控制器通过下发OpenFlow协议中的Packet_out消息给交换机,来指示交换机发送LLDP数据包给另一台交换机,所述另一台交换机收到LLDP数据包后,封装到Packet_in消息里,再交给控制器,经过解析获得全网交换机信息;
感受主机:主机向网络发送ARP数据包的时候,所述ARP数据包第一个到达的接入交换机不知道如何转发,所述ARP数据包将会被封装到Packet_in消息里并上交给控制器,控制器于是知道该主机连接着所述接入交换机。
4.根据权利要求2所述的基于OpenFlow技术的拥塞控制方法,其特征在于,步骤(1)中,在感知拓扑时,得到每条链路的配置信息包括链路容量;
得到全网拓扑后,将交换机作为顶点,链路作为边,存储于图结构中,以作为Dijkstra算法的输入参数。
5.根据权利要求2所述的基于OpenFlow技术的拥塞控制方法,其特征在于,步骤(2)中,所述利用OpenFlow协议中的OFPPortStatsRequest消息,控制器掌握全网链路的带宽值,周期调用网络带宽监控模块,掌握实时带宽数据,具体包括下述步骤:
(2-1)初始化配置:通过网络拓扑感知模块获取全网信息后,通过网络管理模块确定监控周期;
(2-2)控制器向全网交换机发送OFPPortStatsRequest请求;
(2-3)每台交换机接收到OFPPortStatsRequest请求后,会查询自己所有端口的统计数据,然后回复给控制器一个集合,包括所有端口的统计数据,元素数量即为端口数量,集合中每一个元素都是一个结构体,称作ofp_port_stats,结构体包含四个重要数据:发送字节数tx_bytes、接收字节数rx_bytes、存活时间duration_sec、存活纳秒时间duration_nsec,这四个重要数据是该端口自初始化以来的统计数据;控制器收到ofp_port_stats结构体,保存四个重要数据以备计算;
(2-4)间隔一定周期,即间隔时间period,控制器再向全网交换机发送OFPPortStatsRequest请求,以求新的端口统计数据;
(2-5)计算端口带宽数据,根据以下公式计算得到端口的带宽值;
其中间隔时间period为:
6.根据权利要求2所述的基于OpenFlow技术的拥塞控制方法,其特征在于,步骤(3)中,所述在OpenFlow协议中添加时间戳变量,计算出全网链路时延,周期调用网络时延检测模块,掌握实时时延数据,具体包括下述步骤:
(3-1)根据OpenFlow消息中封装的LLDP数据包中新增的时间戳变量,得到[控制器—交换机s1—交换机s2—控制器]这三段链路的时延,设为T1;
(3-2)根据步骤(3-1)的原理,[控制器—交换机s1—交换机s2—控制器]得到三段链路的反向时延,设为T2,定义RTT为往返时延,显然有:
T1+T2=RTT控制器-s1+RTTs1-s2+RTTs2-控制器
(3-3)根据OpenFlow v1.3协议标准可知,通过echo消息新增的时间戳变量得到控制器到交换机的往返时延,具体过程是:在发送消息echo_request中设置时间戳参数,控制器发送echo_request消息给交换机时,把当前时间写入时间戳字段,交换机接收会回复echo_reply消息给控制器,控制器接收并立即查询当前时间,于是有:
RTT控制器-交换机=接收时间戳-发送时间戳
于是得到RTT控制器-s1、RTT控制器-s2;
(3-4)通过上述步骤推导,得到交换机s1与交换机s2之间的链路时延:
7.根据权利要求2所述的基于OpenFlow技术的拥塞控制方法,其特征在于,步骤(4)中,计算全局最优路径,具体包括下述步骤:
(4-1)假设网络中有n条链路,设网络链路集合L:{l1,l2,…ln},链路已用带宽集合B:{b1,b2,…bn},链路剩余带宽集合R:{r1,r2,…rn},链路容量集合S:{s1,s2,…sn},链路时延集合D:{d1,d2,…dn},五个集合元素个数相等,集合L与集合S可由网络拓扑感知模块获得,集合B可由网络带宽监控模块获得,集合D可由网络时延检测模块获得,集合R中各元素由下式计算得到:
ri=si-bi (i=1,2,...n)
(4-2)设各链路cost值集合C:{c1,c2,…cn},集合C中各元素可由下式计算出:
ci=αdi-βri
其中α、β为权重系数,数值取决于具体的网络模型,可由网络管理员实时配置;
(4-3)将集合C作为输入参数传入Dijkstra算法,计算全局最优路径。
8.根据权利要求2所述的基于OpenFlow技术的拥塞控制方法,其特征在于,步骤(5)中,在所述自定义REST API中,定义四种合法的请求:①切换路由规则为跳数;②切换路由规则为带宽;③切换路由规则为时延;④切换路由规则为带宽和时延的权重和;
向运行控制器程序的服务器中提交上述任意一种请求,都可使路由规则发生改变,网络管理员可按情况自由设置路由规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910062999.5A CN109756421B (zh) | 2019-01-23 | 2019-01-23 | 一种基于OpenFlow技术的拥塞控制***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910062999.5A CN109756421B (zh) | 2019-01-23 | 2019-01-23 | 一种基于OpenFlow技术的拥塞控制***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109756421A CN109756421A (zh) | 2019-05-14 |
CN109756421B true CN109756421B (zh) | 2021-07-16 |
Family
ID=66406066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910062999.5A Active CN109756421B (zh) | 2019-01-23 | 2019-01-23 | 一种基于OpenFlow技术的拥塞控制***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109756421B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110191065B (zh) * | 2019-06-08 | 2022-04-08 | 西安电子科技大学 | 基于软件定义网络的高性能负载均衡***与方法 |
CN112995036B (zh) * | 2019-12-13 | 2023-08-01 | 中盈优创资讯科技有限公司 | 网络流量的调度方法及装置 |
CN111835653B (zh) * | 2020-07-20 | 2023-10-20 | 浙江亿邦通信科技有限公司 | 一种网络流量负载均衡的控制方法及*** |
CN116866249A (zh) * | 2020-09-08 | 2023-10-10 | 超聚变数字技术有限公司 | 一种通信***、数据处理方法以及相关设备 |
CN112350949B (zh) * | 2020-10-23 | 2022-05-31 | 重庆邮电大学 | 软件定义网络中基于流调度的重路由拥塞控制方法及*** |
CN112702253A (zh) * | 2020-12-11 | 2021-04-23 | 邦彦技术股份有限公司 | 基于网络链路质量的mpls隧道创建方法、***、存储介质 |
US11818046B2 (en) * | 2021-01-26 | 2023-11-14 | Samsung Electronics Co., Ltd. | Coordinated congestion control in network-attached devices |
CN113472661B (zh) * | 2021-06-17 | 2023-07-25 | 中盈优创资讯科技有限公司 | 一种网络路由cost值自动优化方法及装置 |
CN114650257B (zh) * | 2022-03-18 | 2023-07-04 | 南京邮电大学 | 一种基于rtt的sdn网络拥塞控制***与方法 |
CN114884824B (zh) * | 2022-06-09 | 2023-06-16 | 中国联合网络通信集团有限公司 | 一种时延预算路的查询方法、设备及*** |
CN115865759A (zh) * | 2023-02-27 | 2023-03-28 | 科来网络技术股份有限公司 | 基于流量镜像协议的网络设备时延获取方法及*** |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600102A (zh) * | 2018-03-29 | 2018-09-28 | 北京交通大学 | 一种基于智慧协同网络中的柔性数据传输*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107517155A (zh) * | 2016-06-15 | 2017-12-26 | 中兴通讯股份有限公司 | 一种软件定义网络、节点、路径计算方法及装置 |
CN107135159B (zh) * | 2017-03-31 | 2019-11-22 | 武汉绿色网络信息服务有限责任公司 | 一种sdn网络中最优路径确定的方法和*** |
CN107070714B (zh) * | 2017-04-10 | 2019-06-21 | 中国人民解放军国防科学技术大学 | 一种sdn网络异常监控方法 |
CN107483337A (zh) * | 2017-07-31 | 2017-12-15 | 郑州云海信息技术有限公司 | 确定路径的方法及其网络设备 |
CN108881031B (zh) * | 2018-06-11 | 2020-09-18 | 云南师范大学 | 一种基于sdn网络的自适应可靠数据传输方法 |
-
2019
- 2019-01-23 CN CN201910062999.5A patent/CN109756421B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600102A (zh) * | 2018-03-29 | 2018-09-28 | 北京交通大学 | 一种基于智慧协同网络中的柔性数据传输*** |
Also Published As
Publication number | Publication date |
---|---|
CN109756421A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109756421B (zh) | 一种基于OpenFlow技术的拥塞控制***及方法 | |
Zhang et al. | Load balancing in data center networks: A survey | |
CN108600102B (zh) | 一种基于智慧协同网络的柔性数据传输*** | |
Su et al. | CeMon: A cost-effective flow monitoring system in software defined networks | |
Hafeez et al. | Detection and mitigation of congestion in SDN enabled data center networks: A survey | |
Zats et al. | DeTail: Reducing the flow completion time tail in datacenter networks | |
US8730806B2 (en) | Congestion control and resource allocation in split architecture networks | |
US8115617B2 (en) | Alarm reordering to handle alarm storms in large networks | |
Tahaei et al. | A multi-objective software defined network traffic measurement | |
US9059922B2 (en) | Network traffic distribution | |
US10645006B2 (en) | Information system, control apparatus, communication method, and program | |
CN109120525B (zh) | 用于sdn的路径确定方法、装置、sdn控制器及网络 | |
CN111526089B (zh) | 一种基于变长粒度的数据融合传输与调度的装置 | |
Hu et al. | Adjusting switching granularity of load balancing for heterogeneous datacenter traffic | |
Wang et al. | A survey of elephant flow detection in SDN | |
CN114500354B (zh) | 一种交换机控制方法、装置、控制设备及存储介质 | |
CN102025621A (zh) | 基于映射机制的认知网络路由选择方法 | |
Mliki et al. | A comprehensive survey on carrier ethernet congestion management mechanism | |
CN105262682B (zh) | 一种用于电力数据通信的软件定义网络***及其流量疏导方法 | |
Hwang et al. | Load balancing and routing mechanism based on software defined network in data centers | |
Huang et al. | An enhanced scheduling framework for elephant flows in SDN-based data center networks | |
Hussain et al. | A dynamic multipath scheduling protocol (DMSP) for full performance isolation of links in software defined networking (SDN) | |
Wang et al. | SDN controller network load balancing approach for cloud computing data center | |
Farahmand et al. | A closed-loop rate-based contention control for optical burst switched networks | |
EP3713164B1 (en) | Data scheduling method and tor switch |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |