基于SDN的WRED报文丢弃方法及系统与流程

文档序号:11930201阅读:599来源:国知局
基于SDN的WRED报文丢弃方法及系统与流程

本发明涉及一种报文丢弃策略技术领域,特别是涉及一种基于SDN(Software Defined Network,软件定义网络)的WRED(Weighted Random Early Detection,加权随机先期检测)报文丢弃方法及系统。



背景技术:

Tail-drop(尾部丢弃)是传统的丢包策略,当队列的长度达到最大值后,所有新到来的报文都将被丢弃。这种丢弃策略会引发TCP(Transmission Control Protocol,传输控制协议)全局同步现象,具体地,当队列同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入拥塞避免和慢启动状态以降低并调整流量,而后又会在某个时间同时出现流量高峰,如此反复,使网络流量不停震荡。多个TCP流同时进入TCP慢启动的过程被称为全局同步(global synchronization)或者TCP同步。当TCP同步发生时,连接的带宽不能充分利用,从而造成了带宽的浪费。

为避免TCP全局同步现象,可使用WRED。WRED是将随机先期检测与优先级排队结合起来,这种结合为高优先级分组提供了优先通信处理能力。当某个接口开始出现拥塞时,它有选择地丢弃较低优先级的通信,而不是简单地随机丢弃分组。

通过随机丢弃低优先级报文避免了TCP的全局同步现象,使得当某个TCP连接的报文被丢弃、开始减速发送的时候,其他的TCP连接仍然有较高的发送速度。这样,无论什么时候,总有TCP连接在进行较快的发送,提高了线路带宽的利用率。

但传统的WRED流量控制算法是基于某一台转发设备,如图1所示,WRED算法集成于转发设备(例如交换机S1、S2)中,且丢包策略是固定的,整个配置是分布式的,即人工地在每一台交换机(如交换机S1、S2)中配置WRED算法及其相关参数,由于每一台交换机都需要进行相同的配置,所以配置操作繁琐复杂,而且,由于需要人工地对每一台交换机进行相同的配置,所以极易出现人工配置错误,即人工配置出错率高。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中的WRED流量控制算法丢包策略是固定的、配置复杂且容易出错的缺陷,提供一种基于SDN的WRED报文丢弃方法及系统。

本发明是通过下述技术方案来解决上述技术问题的:

本发明提供一种基于SDN的WRED报文丢弃方法,其特点在于,其包括以下步骤:

S1、SDN控制器中配置有WRED算法;

S2、该SDN控制器从入口交换机获取未匹配流表的报文,创建WRED表项;

S3、该SDN控制器从出口交换机接收上报的Experimenter报文,并根据该Experimenter报文获取该出口交换机的出端口的实际负载和不同流量的优先级;

S4、该SDN控制器根据出端口的实际负载情况和不同流量的优先级动态生成当前链路的流量的WRED流表,并下发给该入口交换机,该WRED流表包含WRED丢包策略;

S5、该入口交换机根据该WRED流表调整入端口的数据包的进入或丢包。

较佳地,在步骤S4中,该SDN控制器判断当前流量的优先级是否大于一第一设定阈值,若是则当前流量为第一优先级别,没有WRED丢包策略,该SDN控制器并不下发WRED流表给该入口交换机;

该SDN控制器判断出当前流量的优先级小于该第一设定阈值时,再判断当前流量的优先级是否小于一第二设定阈值,若是则当前流量为第三优先级别,该SDN控制器下发第一WRED流表给该入口交换机;

该SDN控制器判断出当前流量的优先级大于该第二设定阈值且小于该第一设定阈值时,则当前流量为第二优先级别,该SDN控制器下发第二WRED流表给该入口交换机。

较佳地,在当前流量为该第三优先级别时,该SDN控制器判断当前链路的实际负载,在该实际负载超过最大门限值时,随机丢包率为一第一设定值,在该实际负载超过最小门限值时,随机丢包率为一第二设定值,其中,该第一设定值大于该第二设定值。

较佳地,在当前流量为该第二优先级别时,该SDN控制器判断当前链路的实际负载,在该实际负载超过最大门限值时,随机丢包率为一第三设定值,在该实际负载超过最小门限值时,随机丢包率为一第四设定值,其中,该第三设定值大于该第四设定值。

本发明还提供一种基于SDN的WRED报文丢弃系统,其特点在于,其包括一SDN控制器、一入口交换机和一出口交换机;

该SDN控制器用于配置有WRED算法;

该SDN控制器用于从入口交换机获取未匹配流表的报文,创建WRED表项;

该SDN控制器用于从出口交换机接收上报的Experimenter报文,并根据该Experimenter报文获取该出口交换机的出端口的实际负载和不同流量的优先级;

该SDN控制器用于根据出端口的实际负载情况和不同流量的优先级动态生成当前链路的流量的WRED流表,并下发给该入口交换机,该WRED流表包含WRED丢包策略;

该入口交换机用于根据该WRED流表调整入端口的数据包的进入或丢包。

较佳地,该SDN控制器用于判断当前流量的优先级是否大于一第一设定阈值,若是则当前流量为第一优先级别,没有WRED丢包策略,该SDN控制器用于不下发WRED流表给该入口交换机;

该SDN控制器用于在判断出当前流量的优先级小于该第一设定阈值时,再判断当前流量的优先级是否小于一第二设定阈值,若是则当前流量为第三优先级别,该SDN控制器用于下发第一WRED流表给该入口交换机;

该SDN控制器用于在判断出当前流量的优先级大于该第二设定阈值且小于该第一设定阈值时,则当前流量为第二优先级别,该SDN控制器用于下发第二WRED流表给该入口交换机。

较佳地,在当前流量为该第三优先级别时,该SDN控制器用于判断当前链路的实际负载,在该实际负载超过最大门限值时,随机丢包率为一第一设定值,在该实际负载超过最小门限值时,随机丢包率为一第二设定值,其中,该第一设定值大于该第二设定值。

较佳地,在当前流量为该第二优先级别时,该SDN控制器用于判断当前链路的实际负载,在该实际负载超过最大门限值时,随机丢包率为一第三设定值,在该实际负载超过最小门限值时,随机丢包率为一第四设定值,其中,该第三设定值大于该第四设定值。

在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。

本发明的积极进步效果在于:

本发明基于SDN架构,SDN控制器进行统一调度,出端口的发送情况将实时反馈到SDN控制器,SDN控制器根据出端口的拥塞情况,在入端口采用WRED丢包策略。

而且,本发明所有的配置都集中于SDN控制器,配置方便而简单,流量控制的策略是端对端的,由SDN控制器统一控制,并且根据出端口的流量和拥塞情况,动态调整丢包策略。

附图说明

图1为传统的WRED流量控制方法的流程图。

图2为本发明较佳实施例的基于SDN的WRED报文丢弃系统的示意图。

图3为本发明较佳实施例的基于SDN的WRED报文丢弃方法的流程图。

图4为本发明较佳实施例的SDN控制器逻辑处理流程图。

图5为本发明较佳实施例的模拟测试环境的示意图。

具体实施方式

下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案,但并不因此将本发明限制在所述的实施例范围之中。

本实施例提供一种基于SDN的WRED报文丢弃系统,其包括一SDN控制器、一入口交换机和一出口交换机。

如图2所示,若数据包是由客户端传输至服务器,则图2中的S1为入口交换机,S3为出口交换机;若数据包是由服务器传输至客户端,则图2中的S3为入口交换机,S1为出口交换机。SDN控制器是针对网络的整体控制,即图2中的S0-S3都会向SDN控制器上报私有报文,然后SDN控制器配置流表下发到各个交换机,其后根据报文的发起地址和目的地址的链路来控制入口交换机的丢包。

SDN控制器支持基于SDN的WRED控制算法配置任务序列,包括:动态WRED表和基于SDN的WRED控制算法功能打开或关闭。具体配置项和对应含义见表1:

表1

私有的动态WRED表可动态创建(交换机上报未匹配流表报文的时刻,创建WRED表项),出口交换机上报Experimenter报文的时刻,决定流量的WRED优先级别,用户仅可以做修改。动态WRED表中的字段及其含义如表2所示:

表2

从交换机到SDN控制器的私有扩展Experimenter报文的格式如下表3所示。Experimenter值为255,需要向ONF组织申请。Experimenter type值为1表明是从交换机方向到控SDN制器。私有扩展Experimenter报文由转发路径上的出口交换机上报给SDN控制器。交换机id为交换机MAC地址,源IP地址和目的IP地址确定一条流。报文优先级可以确定WRED优先级。

表3

由此,该SDN控制器中配置有WRED算法,下面具体介绍该WRED报文丢弃系统中各部件所具备的功能:

该SDN控制器用于从入口交换机获取未匹配流表的报文,创建WRED表项。

该SDN控制器用于从出口交换机接收上报的Experimenter报文,并根据该Experimenter报文获取该出口交换机的出端口的实际负载和不同流量的优先级。

该SDN控制器用于根据出端口的实际负载情况和不同流量的优先级动态生成当前链路的流量的WRED流表,并下发给该入口交换机,该WRED流表包含WRED丢包策略。

该入口交换机用于根据该WRED流表调整入端口的数据包的进入或丢包。

其中,该SDN控制器根据出端口的实际负载情况和不同流量的优先级动态生成当前链路的流量的WRED流表具体包括:

该SDN控制器用于判断当前流量的优先级是否大于一第一设定阈值(例如6),若是则当前流量为第一优先级别,没有WRED丢包策略,该SDN控制器用于不下发WRED流表给该入口交换机;该SDN控制器用于在判断出当前流量的优先级小于该第一设定阈值时,再判断当前流量的优先级是否小于一第二设定阈值(例如3),若是则当前流量为第三优先级别,该SDN控制器用于下发第一WRED流表给该入口交换机;该SDN控制器用于在判断出当前流量的优先级大于该第二设定阈值且小于该第一设定阈值时,则当前流量为第二优先级别,该SDN控制器用于下发第二WRED流表给该入口交换机。

在当前流量为该第三优先级别时,该SDN控制器用于判断当前链路的实际负载,在该实际负载超过最大门限值时,随机丢包率为一第一设定值(例如80%),在该实际负载超过最小门限值时,随机丢包率为一第二设定值(例如20%),其中,该第一设定值大于该第二设定值。

在当前流量为该第二优先级别时,该SDN控制器用于判断当前链路的实际负载,在该实际负载超过最大门限值时,随机丢包率为一第三设定值(例如50%),在该实际负载超过最小门限值时,随机丢包率为一第四设定值(例如10%),其中,该第三设定值大于该第四设定值。

其中,最大门限值默认值为线路负载的80%,当然,本领域的技术人员也可以根据实际需要设置最大门限的具体数值,最小门限值默认值为线路负载的10%,当然,本领域的技术人员也可以根据实际需要设置最小门限的具体数值。

如图3所示,本实施例提供一种基于SDN的WRED报文丢弃方法,其包括以下步骤:

步骤101、在SDN控制器中,配置SDN的WRED算法;

步骤102、该SDN控制器从入口交换机获取未匹配流表的报文,创建WRED表项;

步骤103、该SDN控制器从出口交换机接收上报的Experimenter报文,确定WRED优先级;

步骤104、该SDN控制器下发流表给该入口交换机,实现WRED功能,该入口交换机根据下发的流表调整入端口的数据包的进入或丢包。

其中,如图4所示,步骤102和103具体包括以下步骤:

该SDN控制器从入口交换机获取未匹配流表的报文,创建WRED表项。

该SDN控制器从出口交换机接收上报的Experimenter报文,并根据该Experimenter报文获取该出口交换机的出端口的实际负载和不同流量的优先级,Experimenter报文的优先级分别来自于报文的VLAN优先级。

该SDN控制器判断当前流量的优先级(即VLAN优先级)是否大于一第一设定阈值(例如6),若是则当前流量为第一优先级别,没有WRED丢包策略,该SDN控制器并不下发WRED流表给该入口交换机。

否则该SDN控制器判断当前流量的优先级是否大于一第二设定阈值(例如3)且小于该第一设定阈值,若是则当前流量为第二优先级别,该SDN控制器判断当前链路的实际负载,在该实际负载超过最大门限值时,随机丢包率为一第三设定值(例如50%),在该实际负载超过最小门限值时,随机丢包率为一第四设定值(例如10%),其中,该第三设定值大于该第四设定值,该SDN控制器据此动态生成当前流量的WRED流表并下发给该入口交换机,该WRED流表包含WRED丢包策略。

该SDN控制器判断出当前流量的优先级小于该第二设定阈值时,则当前流量为第三优先级别,该SDN控制器判断当前链路的实际负载,在该实际负载超过最大门限值时,随机丢包率为一第一设定值(例如80%),在该实际负载超过最小门限值时,随机丢包率为一第二设定值(例如20%),其中,该第一设定值大于该第二设定值,该SDN控制器据此动态生成当前流量的WRED流表并下发给该入口交换机。

此外,本实施例的交换机和SDN控制器需要支持扩充流表,其定义如下表4所示:

表4

如图5所示搭建模拟测试环境,其中FTP(文件传输协议)服务器是指在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。

见图5,客户端通过入口交换机S1和出口交换机S3将报文传输至FTP服务器,报文的优先级别为1。假设出口交换机S3出端口的线路负载为85%,对应的优先级为第三优先级别,线路负载超过最大门限值,所以随机丢包率为80%;假设出口交换机S3出端口的线路负载为20%,对应的优先级为第三优先级别,线路负载超过最小门限值,所以随机丢包率为20%。

见图5,FTP服务器通过入口交换机S3和出口交换机S1将另一报文传输至客户端,报文的优先级别为7。假设出口交换机S1出端口的线路负载为85%,对应的优先级为第一优先级别,所以不丢包;假设出口交换机S1出端口的线路负载为20%,对应的优先级为第一优先级别,所以不丢包。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

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