[0019] 下面结合具体实施方式对本发明的技术方案作进一步更详细的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0020] SDN是软件定义网络(Software Defined Network,SDN),是一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。传统的网络架构中,根据业务需求部署上线以后,无法对网络中的数据流的数量进行控制。在互联网大数据瞬息万变的业务环境下,网络的高稳定与高性能还不足以满足业务需求,灵活性和敏捷性反而更为关键。SDN所做的事是将网络设备上的控制权分离出来,由集中的控制器管理,无须依赖底层网络设备(路由器、SDN交换机、防火墙),屏蔽了来自底层网络设备的差异。而控制权是完全开放的,用户可以根据需求动态对端口、SDN交换机和全网的数据流进行数目限制,从而实现全网SDN流数目控制,从而更加灵活和智能,无需繁琐操作。
[0021] 参阅图1,图1是本发明提供的一种SDN流转发的数量限制方法的第一实施方式的流程示意图。该方法的步骤包括:
[0022] S101:SDN控制器接收一SDN交换机处理并上报的SDN流,并实时计算SDN流的数量。
[0023] SDN交换机为SDN交换机,SDN交换机处理并上报SDN数据流。本实施方式中,具体为SDN交换机进行学习和老化MAC地址信息,SDN交换机设置一MAC地址表,包含MAC地址和对应的端口。每一MAC地址进入SDN交换机时审查源MAC地址,进行查找,如果MAC地址表中没有包含这个MAC地址,SDN交换机会创建一个新条目,包括源MAC地址和接收端口。若有去往这个MAC地址的数据,SDN交换机则往对应的端口进行转发。SDN交换机中的MAC地址条目有一定的生存时间,每学习一个MAC地址条目都附加一个时间值,称为老化时间。老化时间是一个影响交换机学习进程的参数,默认为300秒。从一个地址记录加入地址表以后开始计时,如果在老化时间内各端口未收到源地址为该MAC地址的数据,这些地址将从动态转发地址表(由源MAC地址、目的MAC地址和它们相对应的交换机的端口号)中被删除。SDN交换机学习或老化MAC地址信息,形成SDN流,立即上报给SDN控制器。SDN控制器接收SDN交换机上报的SDN流,并实时计算SDN流的数量,进入步骤S102。
[0024] S102:SDN控制器依次用SDN流的数量与第一阈值、第二阈值及第三阈值做比较。
[0025] SDN控制器中预设第一阈值、第二阈值及第三阈值,其中第一阈值时全局阈值,可设定为整个网络中SDN流数量的阈值,第二阈值是SDN交换机中SDN流数量的阈值,第三阈值是SDN交换机的端口中SDN流数量的阈值,且三个阈值的数值依次减少。然后进入步骤S103,以SDN控制器实时计算得到SDN流的数量和上述三个阈值进行比较。
[0026] S103:在SDN控制器判定SDN流的数量大时,丢弃SDN流,否则继续与下一阈值做比较;判定SDN流的数量小于第一阈值、第二阈值及第三阈值时,SDN控制器根据SDN流的信息向SDN交换机转发SDN流。
[0027] SDN控制器用实时计算得到SDN流的数量和第一阈值相比,若SDN流的数量大于第一阈值,则SDN控制器丢弃SDN流,反之则继续用SDN流的数量和第二阈值相比,若SDN流的数量大于第二阈值,则SDN控制器丢弃SDN流,反之则继续用SDN流的数量和第三阈值相比,若SDN流的数量大于第三阈值,则SDN控制器丢弃SDN流,反之,SDN控制器根据SDN流的信息,如MAC地址信息、LLDP信息和流特征码计算流转发路径,向该SDN交换机的端口转发SDN流。
[0028] 区别于现有技术,本发明的SDN流转发的数量限制方法将利用SDN控制器实时计算SDN交换机上报的SDN流的数量,将SDN流的数量分别依次和三个阈值比较,在SDN流的数量大于任意一个阈值时丢弃SDN流,在SDN流的数量小于所有阈值时,SDN控制器根据SDN流的信息向SDN交换机转发SDN流,SDN控制器能够动态对端口,SDN交换机和全网SDN流进行数目限制,从而实现全网SDN流数目控制。
[0029] 参阅图2,图2是本发明提供的一种SDN流转发的数量限制方法的第二实施方式的流程示意图。该方法的步骤包括:
[0030] S201:SDN控制器向SDN交换机下发流表。
[0031] 在SDN交换机向SDN控制器上报SDN流之前,SDN控制器首先向SDN交换机下发流表,该流表包含限制SDN流数量的指令,限制SDN流数量的指令至少包括匹配字段和动作字段。将SDN流分类为第一部分SDN流和第二部分SDN流,其中第一部分SDN流和流表匹配,直接按照流表转发第一部分SDN流。未匹配流表的第二部分SDN流则被SDN控制器上报给SDN控制器,进入步骤S202。
[0032] S202:SDN控制器接收一SDN交换机处理并上报的SDN流,并实时计算SDN流的数量。
[0033] 对于前述未匹配流表的第二部分SDN流,与前一实施方式相同,是SDN交换机在学习或老化MAC地址信息,形成的SDN流,立即上报给SDN控制器。SDN控制器接收SDN交换机上报的SDN流,并实时计算SDN流的数量,进入步骤S202。
[0034] S203:SDN控制器依次用SDN流的数量与第一阈值、第二阈值及第三阈值做比较。
[0035] SDN控制器向SDN交换机下发流表,该流表包含限制SDN流数量的指令,限制SDN流数量的指令至少包括匹配字段和动作字段。其中,匹配字段至少包括第一阈值、第二阈值和第三阈值,第一阈值是全网SDN流的数量阈值,是整个网络最大可容纳的SDN流的数量值;第二阈值是SDN交换机SDN流的数量阈值,是与SDN控制器连接的一台SDN交换机最大可容纳的SDN流的数量值;第三阈值是SDN交换机的端口SDN流的数量阈值,是SDN交换机下的端口最大可容纳的SDN流的数量值。三个阈值的数值依次减小。进入步骤S204。
[0036] S204:在SDN控制器判定SDN流的数量大时,丢弃SDN流,否则继续与下一阈值做比较;判定SDN流的数量小于第一阈值、第二阈值及第三阈值时,SDN控制器根据SDN流的信息向SDN交换机转发SDN流。
[0037] 动作字段是用步骤S202实时计算得到的SDN流的数量和上述的三个阈值依次进行比较:首先用实时的SDN流的数量和第一阈值全局阈值进行比较,如果实时的SDN流的数量大于第一阈值,则丢弃SDN流,反之则使该实时的SDN流的数量和第二阈值交换机阈值进行比较,如果实时的SDN流的数量大于第二阈值,则丢弃SDN流,反之继续使该实时的SDN流的数量和第三阈值端口阈值进行比较,如果实时的SDN流的数量大于第三阈值,则丢弃SDN流,反之,转发该SDN流,就如步骤S205。
[0038] S205:SDN控制器根据SDN流的信息确定转发路径,将SDN流转发到转发路径对应的SDN交换机。
[0039] SDN交换机上报SDN流时会携带该SDN流的基本信息,至少包括MAC地址信息、链路层发现协议信息和流特征码。当在步骤S204中确定转发SDN流时,SDN控制器会根据SDN流的信息,确定该SDN流的转发路径,具体确定将该SDN流转发到指定SDN交换机的端口。
[0040] 区别于现有技术,本发明的SDN流转发的数量限制方法通过SDN交换机将SDN流分类,已匹配流表的SDN流直接按流表转发,未匹配流表的SDN流在与SDN控制器预设的阈值比较,大于任意阈值的,丢弃SDN流,小于全部阈值时,根据该SDN流的信息确定其转发路径后进行转发,动态对端口、SDN交换机和全网SDN流进行数目限制,从而实现全网SDN流数目控制。
[0041] 参阅图3,图3是本发明提供的一种SDN流转发的数量限制系统的第一实施方式的结构示意图。系统100包括客户端110、SDN交换机120和SDN控制器130,客户端110通过无线连接的方式连接到SDN交换机120,具体为蓝牙连接或wifi连接;SDN交换机120和SDN控制器130之间通过无线或有线的方式连接。
[0042] 客户端110在与其他客户端(图未示)或SDN交换机120交互时产生SDN流,然后,客户端110向SDN交换机120发起SDN流,SDN交换机120对比SDN流和SDN控制器130向其下发的流表,用SDN流匹配流表中的表项,如果SDN流中有流数据和流表匹配,则直接根据流表转发。对于未匹配流表的SDN流,则由SDN交换机120上报SDN控制器130。
[0043] SDN控制器130包括计算机制131、设定机制132、判断机制133和转发机制134。设定机制132设定第一阈值、第二阈值和第三阈值,其中,第一阈值是全网SDN流的数量阈值,是整个网络最大可容纳的SDN流的数量值;第二阈值是SDN交换机SDN流的数量阈值,是与SDN控制器连接的一台SDN交换机最大可容纳的SDN流的数量值;第三阈值是SDN交换机的端口SDN流的数量阈值,是SDN交换机下的端口最大可容纳的SDN流的数量值。且在SDN控制器130接收到SDN交换机120上报的SDN流后,计算机制131实时计算SDN流的流数量,然后判断机制133将实时计算SDN流的流数量与前述的三个阈值分别进行比较,首先用实时的SDN流的数量和第一阈值全局阈值进行比较,如果实时的SDN流的数量大于第一阈值,则丢弃SDN流,反之则使该实时的SDN流的数量和第二阈值交换机阈值进行比较,如果实时的SDN流的数量大于第二阈值,则丢弃SDN流,反之继续使该实时的SDN流的数量和第三阈值端口阈值进行比较,如果实时的SDN流的数量大于第三阈值,则丢弃SDN流,反之,SDN控制器130转发该SDN流。SDN交换机120上报SDN流时会携带该SDN流的基本信息,至少包括MAC地址信息、链路层发现协议信息和流特征码。当确定转发SDN流时,转发机制134会根据SDN流的信息,确定该SDN流的转发路径,具体确定将该SDN流转发到指定SDN交换机120的端口(未标示)。
[0044] 区别于现有技术,本发明的SDN流转发的数量限制系统利用SDN控制器实时计算SDN交换机上报的SDN流的数量,将SDN流的数量分别依次和三个阈值比较,在SDN流的数量大于任意一个阈值时丢弃SDN流,在SDN流的数量小于所有阈值时,SDN控制器根据SDN流的信息向SDN交换机转发SDN流,SDN控制器能够动态对端口,SDN交换机和全网SDN流进行数目限制,从而实现全网SDN流数目控制。
[0045] 以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。