[0039] 下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案,但并不因此将本发明限制在所述的实施例范围之中。
[0040] 本实施例提供一种基于SDN的WRED报文丢弃系统,其包括一SDN控制器、一入口交换机和一出口交换机。
[0041] 如图2所示,若数据包是由客户端传输至服务器,则图2中的S1为入口交换机,S3为出口交换机;若数据包是由服务器传输至客户端,则图2中的S3为入口交换机,S1为出口交换机。SDN控制器是针对网络的整体控制,即图2中的S0-S3都会向SDN控制器上报私有报文,然后SDN控制器配置流表下发到各个交换机,其后根据报文的发起地址和目的地址的链路来控制入口交换机的丢包。
[0042] SDN控制器支持基于SDN的WRED控制算法配置任务序列,包括:动态WRED表和基于SDN的WRED控制算法功能打开或关闭。具体配置项和对应含义见表1:
[0043] 表1
[0044]
[0045] 私有的动态WRED表可动态创建(交换机上报未匹配流表报文的时刻,创建WRED表项),出口交换机上报Experimenter报文的时刻,决定流量的WRED优先级别,用户仅可以做修改。动态WRED表中的字段及其含义如表2所示:
[0046] 表2
[0047]
[0048] 从交换机到SDN控制器的私有扩展Experimenter报文的格式如下表3所示。Experimenter值为255,需要向ONF组织申请。Experimenter type值为1表明是从交换机方向到控SDN制器。私有扩展Experimenter报文由转发路径上的出口交换机上报给SDN控制器。交换机id为交换机MAC地址,源IP地址和目的IP地址确定一条流。报文优先级可以确定WRED优先级。
[0049] 表3
[0050]
[0051] 由此,该SDN控制器中配置有WRED算法,下面具体介绍该WRED报文丢弃系统中各部件所具备的功能:
[0052] 该SDN控制器用于从入口交换机获取未匹配流表的报文,创建WRED表项。
[0053] 该SDN控制器用于从出口交换机接收上报的Experimenter报文,并根据该Experimenter报文获取该出口交换机的出端口的实际负载和不同流量的优先级。
[0054] 该SDN控制器用于根据出端口的实际负载情况和不同流量的优先级动态生成当前链路的流量的WRED流表,并下发给该入口交换机,该WRED流表包含WRED丢包策略。
[0055] 该入口交换机用于根据该WRED流表调整入端口的数据包的进入或丢包。
[0056] 其中,该SDN控制器根据出端口的实际负载情况和不同流量的优先级动态生成当前链路的流量的WRED流表具体包括:
[0057] 该SDN控制器用于判断当前流量的优先级是否大于一第一设定阈值(例如6),若是则当前流量为第一优先级别,没有WRED丢包策略,该SDN控制器用于不下发WRED流表给该入口交换机;该SDN控制器用于在判断出当前流量的优先级小于该第一设定阈值时,再判断当前流量的优先级是否小于一第二设定阈值(例如3),若是则当前流量为第三优先级别,该SDN控制器用于下发第一WRED流表给该入口交换机;该SDN控制器用于在判断出当前流量的优先级大于该第二设定阈值且小于该第一设定阈值时,则当前流量为第二优先级别,该SDN控制器用于下发第二WRED流表给该入口交换机。
[0058] 在当前流量为该第三优先级别时,该SDN控制器用于判断当前链路的实际负载,在该实际负载超过最大门限值时,随机丢包率为一第一设定值(例如80%),在该实际负载超过最小门限值时,随机丢包率为一第二设定值(例如20%),其中,该第一设定值大于该第二设定值。
[0059] 在当前流量为该第二优先级别时,该SDN控制器用于判断当前链路的实际负载,在该实际负载超过最大门限值时,随机丢包率为一第三设定值(例如50%),在该实际负载超过最小门限值时,随机丢包率为一第四设定值(例如10%),其中,该第三设定值大于该第四设定值。
[0060] 其中,最大门限值默认值为线路负载的80%,当然,本领域的技术人员也可以根据实际需要设置最大门限的具体数值,最小门限值默认值为线路负载的10%,当然,本领域的技术人员也可以根据实际需要设置最小门限的具体数值。
[0061] 如图3所示,本实施例提供一种基于SDN的WRED报文丢弃方法,其包括以下步骤:
[0062] 步骤101、在SDN控制器中,配置SDN的WRED算法;
[0063] 步骤102、该SDN控制器从入口交换机获取未匹配流表的报文,创建WRED表项;
[0064] 步骤103、该SDN控制器从出口交换机接收上报的Experimenter报文,确定WRED优先级;
[0065] 步骤104、该SDN控制器下发流表给该入口交换机,实现WRED功能,该入口交换机根据下发的流表调整入端口的数据包的进入或丢包。
[0066] 其中,如图4所示,步骤102和103具体包括以下步骤:
[0067] 该SDN控制器从入口交换机获取未匹配流表的报文,创建WRED表项。
[0068] 该SDN控制器从出口交换机接收上报的Experimenter报文,并根据该Experimenter报文获取该出口交换机的出端口的实际负载和不同流量的优先级,Experimenter报文的优先级分别来自于报文的VLAN优先级。
[0069] 该SDN控制器判断当前流量的优先级(即VLAN优先级)是否大于一第一设定阈值(例如6),若是则当前流量为第一优先级别,没有WRED丢包策略,该SDN控制器并不下发WRED流表给该入口交换机。
[0070] 否则该SDN控制器判断当前流量的优先级是否大于一第二设定阈值(例如3)且小于该第一设定阈值,若是则当前流量为第二优先级别,该SDN控制器判断当前链路的实际负载,在该实际负载超过最大门限值时,随机丢包率为一第三设定值(例如50%),在该实际负载超过最小门限值时,随机丢包率为一第四设定值(例如10%),其中,该第三设定值大于该第四设定值,该SDN控制器据此动态生成当前流量的WRED流表并下发给该入口交换机,该WRED流表包含WRED丢包策略。
[0071] 该SDN控制器判断出当前流量的优先级小于该第二设定阈值时,则当前流量为第三优先级别,该SDN控制器判断当前链路的实际负载,在该实际负载超过最大门限值时,随机丢包率为一第一设定值(例如80%),在该实际负载超过最小门限值时,随机丢包率为一第二设定值(例如20%),其中,该第一设定值大于该第二设定值,该SDN控制器据此动态生成当前流量的WRED流表并下发给该入口交换机。
[0072] 此外,本实施例的交换机和SDN控制器需要支持扩充流表,其定义如下表4所示:
[0073] 表4
[0074]
[0075] 如图5所示搭建模拟测试环境,其中FTP(文件传输协议)服务器是指在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。
[0076] 见图5,客户端通过入口交换机S1和出口交换机S3将报文传输至FTP服务器,报文的优先级别为1。假设出口交换机S3出端口的线路负载为85%,对应的优先级为第三优先级别,线路负载超过最大门限值,所以随机丢包率为80%;假设出口交换机S3出端口的线路负载为20%,对应的优先级为第三优先级别,线路负载超过最小门限值,所以随机丢包率为20%。
[0077] 见图5,FTP服务器通过入口交换机S3和出口交换机S1将另一报文传输至客户端,报文的优先级别为7。假设出口交换机S1出端口的线路负载为85%,对应的优先级为第一优先级别,所以不丢包;假设出口交换机S1出端口的线路负载为20%,对应的优先级为第一优先级别,所以不丢包。
[0078] 虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。