一种抗DDoS的SDN控制器消息调度方法与流程

文档序号:17072093发布日期:2019-03-08 23:24阅读:329来源:国知局
一种抗DDoS的SDN控制器消息调度方法与流程

本发明涉及网络通信技术领域,特别是涉及一种抗ddos的sdn控制器消息调度方法。



背景技术:

分布式拒绝服务攻击(distributeddenialofservice,ddos)是严重威胁网络安全的问题之一,其利用大量终端平台同时请求单一或少数目标的资源,达到耗尽目标资源,使目标不能提供正常服务的目的,具有易于发起、难以防御、危害性大的特点。软件定义网络(softwaredefinednetwork,sdn)是一种控制与转发相分离的网络架构,其将网络中的控制功能逻辑性地集中在了统一的控制器上,具有集中化的控制、开放的网络接口、支持网络虚拟化等优点。sdn已经应用于数据中心、物联网、广域网等领域,得到了学术界及工业界的广泛认可,被认为是有可能取代传统网络的网络架构之一。作为一种新型的网络架构,sdn同样面临着严峻的威胁,ddos就是sdn面临的严重网络安全问题之一。

与传统网络不同,sdn解耦了传统网络设备的转发功能与控制功能,sdn的这种结构使得出现ddos时,不但sdn网络设备会受到ddos的影响,sdn控制器也将收到大量的网络设备发送的openflow消息。鉴于sdn控制器正是通过处理网络设备发送的openflow消息管控网络设备,同时上述openflow消息具有不同的类型、来自不同的网络设备、实现不同的功能,因此上述openflow消息具有不同的重要程度。如果不能合理地分配上述openflow消息的处理顺序,会导致控制器不能接收某些重要的openflow消息(如网络拓扑变化消息、网络设备错误消息等),使得控制器不能及时掌握网络的变化情况,影响sdn控制器对网络的管控能力。在sdn中出现ddos时,使用合理的控制器消息调度方法能够避免因某些openflow消息得不到及时处理导致的网络错误,延长sdn网络的生存时间。



技术实现要素:

为解决现有技术中存在的问题,本发明提供了一种抗ddos的sdn控制器消息调度方法,通过分析出现ddos时sdn控制器收到的openflow消息的出现频率及重要性,以达到避免某些重要的openflow消息得不到及时处理而导致的网络错误,进而延长出现ddos时sdn网络的生存时间。

本发明采用的技术方案是:

一种抗ddos的sdn控制器消息调度方法,该方法通过将sdn控制器收到的openflow消息划分为用户请求消息及网络管理消息,依据消息类型进行消息入队及出队操作。该方法由消息入队方法及消息出队方法组成。

所述消息入队方法具体步骤包括:

s1:控制器启动后,建立网络管理消息队列,网络管理消息队列为单个队列,用于存储网络管理消息;

s2:所述控制器建立用户请求消息队列,该队列包含多个子队列,每个子队列对应一个交换机,用于存储相应交换机发送的openflow消息;

s3:所述控制器收到openflow消息后,解析该openflow消息,获取此消息的类型;

s4:如果所述openflow消息不是packet-in消息,进入步骤s5;如果所述openflow消息是packet-in消息,进入步骤s6;

s5:将所述openflow消息存入网络管理消息队列的队尾,程序结束;

s6:所述控制器解析packet-in消息,获取发送所述packet-in消息的交换机的id;

s7:根据所述发送packet-in消息的交换机的id,将所述packet-in消息存入此交换机对应的用户请求消息子队列的队尾,程序结束。

所述消息出队方法具体步骤包括:

c1:控制器检查网络管理消息队列是否为空;

c2:如果所述网络管理消息队列不为空,控制器取出并处理网络管理消息队列头部的消息,返回步骤c1;如果所述网络管理消息队列为空,进入步骤c3;

c3:所述控制器检查用户请求消息队列是否为空;

c4:如果所述用户请求消息队列为空,进入步骤c5,否则进入步骤c6;

c5:等待一段时间后,返回步骤c1;

c6:所述控制器计算待处理的下一用户请求消息子队列号;

c7:所述控制器取出并处理位于所述用户请求消息子队列头部的消息,本轮消息出队结束,返回步骤c1。

本发明的有益效果是:

本发明通过分析sdn中出现ddos时控制器接收到的openflow消息的出现频率及重要程度,将其分为用户请求消息及网络管理消息,为上述消息分别设计了存储及调度方法,因此,本发明能够避免网络中出现因某些类型的openflow消息得不到处理而导致的网络错误,延长出现ddos时sdn网络的生存时间。

附图说明

图1为本发明实施例中一种抗ddos的控制器消息调度方法的消息入队方法流程图;

图2为本发明实施例中一种抗ddos的控制器消息调度方法的消息出队方法流程图。

具体实施方式

下面结合附图对本发明做进一步说明,所举实例仅用于解释本发明,并非用于限定本发明的范围。

实施例

如图1所示,本发明实施例中一种抗ddos的控制器消息调度方法的消息入队方法,其具体步骤为:

e1:控制器启动后,创建一个用于存储网络管理消息的队列,该队列记为qmmsf;

e2:控制器创建用于存储用户请求消息的队列qrur,该队列由多个子队列组成,每个子队列对应网络中的一个交换机;

e3:控制器接收到openflow消息mj后,解析mj,获取消息mj的类型pj;

e4:如果mj不是packet-in消息,则将mj存入网络管理消息队列qmmsf的队尾,消息入队操作完成;否则转入步骤e5;

e5:获取发送消息mj的交换机的id:ns;

e6:根据ns获取对应的用户请求消息子队列

e7:将mj存入用户请求消息子队列的队尾,程序结束。

如图2所示,本发明实施例中一种抗ddos的控制器消息调度方法的消息出队方法,其具体步骤为:

f1:控制器检查网络管理消息的队列qmmsf是否为空;

f2:如果qmmsf不为空,则控制器取出qmmsf队列头部的消息进行处理,至此本轮消息出队结束,返回步骤f1;如果为空,则进入步骤f3;

f3:控制器检查用户请求消息队列qrur是否为空;

f4:如果qrur为空,则没有消息需要处理,进入步骤f5;如果qrur不为空,则进入步骤f6;

f5:控制器等待一段时间t后,返回步骤f1;

f6:使用轮询方法计算下一待取出的用户请求消息子队列

f7:取出队列头部存储的openflow消息进行处理,本轮消息出队结束,返回步骤f1。

本实施例中采用轮询方法计算待取出的用户请求消息子队列,但此方法仅用来对本发明中的检测算法进行说明,本发明中的子队列计算方法不限于此方法。对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

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