本发明涉及一种不确定网络环境下ryu控制器流表自动生成方法,尤其涉及基于openflow协议的ryu控制器对应网络流表自动生成方法,主要应用于软件定义网络的可靠性验证以及流表的自动生成,属于信息通信技术领域。
背景技术:
软件定义网络是一种新型网络架构,其设计理念是将网络的控制平面与数据转发平面进行分离,并实现可编程化的集中控制。然而在使用sdn配置网络的各个软件工程开发阶段,包括需求分析,系统设计,代码实现等,容易引入人为错误,从而导致网络环路、次优路由策略、网络黑洞、ddos攻击等网络故障。随着网络规模的扩大以及网络需求的增多,通过严格的数学和模型去验证网络的正确性,安全性以及容错性成为了软件定义网络发展的关键环节,其发展逐渐受到动态网络环境变化,多目标优化以及验证与优化一体化的挑战,首先缺少环境对网络的非确定性影响的描述,不能根据环境变化来调整网络策略并且验证网络的正确性;其次随着网络设备使用范围的扩大,网络能耗也越来越大。而目前许多网络设备在能源管理方面没有被优化,因此在保证网络性能的同时减少能量消耗至关重要。基于软件定义网络的中央决策的机制,可以设计算法降低整个网络能耗。然而,在动态网络环境下权衡网络的能效、延迟和吞吐量性能是一个np-hard问题,缺少一体化框架完成对软件定义网络的转发策略进行优化的同时验证网络的正确性的功能。
现有工作绝大多数建立网络能耗分析模型来减少网络能耗,但是能耗模型受到网络参数的影响,灵活性较差。对于基于策略的网络管理架构,交换机的能耗信息以及中央控制器的控制信息增加的额外开销较大,且现有工作未考虑到网络的非确定性变化,缺少环境对网络的非确定性影响的建模,不能根据环境变化来调整网络策略,而在重新配置网络的过程中未考虑因为人为错误或者网络延时等原因造成的网络规则冲突的问题,从而导致网络环路或者网络黑洞等问题。目前的工作主要采用在网络性能限制条件下对能耗进行线性优化,本发明采用基于权重组合的帕累托优化方法对网络吞吐性能,网络延迟和网络能耗进行多目标优化,且自动生成软件定义网络交换机流表,一方面可以使得转发策略可根据网络环境以及用户需求动态调整,另一方面避免人为引入错误,提高系统可靠性。
技术实现要素:
本发明的目的是克服现有技术存在的缺陷,提供一种不确定网络环境下ryu控制器流表自动生成方法,一方面通过对模型进行属性查询避免网络环路问题,另一方面自动生成流表转发策略,避免人为错误,提高软件定义网络对于环境变化的自适应性。
实现本发明目的的技术方案是:一种不确定网络环境下ryu控制器流表自动生成方法,其特征在于:基于随机博弈模型对软件定义网络中的交换机以及数据链路、随机网络环境、网络流建模,生成随机环境下的软件定义网络系统的tptg模板;具体包括如下步骤:
步骤一:
定义网络中的交换机以及数据链路,具体为:定义五元组
步骤二:对随机网络环境参数进行配置;所述随机网络环境参数为不确定网络环境参数,是网络拥塞以及软件定义网络架构中交换机随机下线的概率分布,设定不同的概率分布函数会影响网络环境的不确定性;
步骤三:查询属性的转化,具体为:将软件定义网络系统的数据流可达性约束、能耗及网络性能约束转化为查询属性,prism是一个对存在随机或概率行为的系统进行形式化建模和分析的概率模型检验工具,prism-games是prism工具的一个扩展,用于验证包含竞争或者协作博弈关系的随机系统,即随机博弈系统。使用prism-games作为模型验证引擎,通过概率交替时序逻辑以及线性时序逻辑检查网络的静态及动态控制逻辑,生成最优数据流转发策略;
步骤四:流表的生成,根据数据流转发策略自动生成软件定义网络的tptg模板,即各个交换机的流表。上述技术方案所述步骤四中,tptg模板,即(turn-basedprobabilistictimedgames),基于回合制的定时随机博弈模板,tptg模板描述了面向时间约束的回合制随机博弈行为模式,tptg模板能够访问参数配置,并可采用prism-games作为模型验证引擎验证网络可靠性并生成最优数据流转发策略;
所述查询属性的形式如下:
式中,
如公式(1)和(2)所示(下面写了),rew(r)针对不同的路径的奖励和不同,且路径存在概率分布,所以采用
式中,
上述技术方案所述步骤一中的对网络流建模具体为:根据图模型g,采用零和随机博弈模型描述交换机与网络环境之间的博弈,并采用
上述技术方案所述步骤一中的对随机网络环境建模,主要描述网络环境的存在的不确定变化,包括网络交换机休眠或者下线事件、以及网络流量异常导致的网络拥塞事件以及事件发生的概率分布。
上述技术方案所述步骤二中,基于概率分布的模型检验,采用概率交替时序逻辑以及线性时序逻辑验证网络可靠性,通过验证数据流的可达性避免网络环路,网络黑洞问题。
上述技术方案所述步骤三中,具体为生成基于权重组合的多目标优化转发策略,分别对能耗、损耗率、吞吐量进行归一化处理,并分配权重
式中,
上述技术方案所述步骤四中具体为,根据多目标优化转发策略生成软件定义网络转发流表;根据不同交换机在不同状态下选择的最优操作,分别对应ryu控制器对于交换机的动作指令,分别为forward、drop、modify以及enqueue操作,通过jinja模板生成ryu控制器执行代码,最后通过packet-out消息将流表更新信息发送送到各个网络交换机。
上述技术方案所述步骤一中,根据奖励函数
对于数据流的集合f,根据对应的路径λ的概率分布,整个策略的期望奖励为
上述技术方案通过确保
其中,
由公式(3)及公式(4)采用值迭代方法更新的
采用上述技术方案后,本发明具有以下积极的效果:
(1)本发明的目的是弥补当前在不确定环境下采用统一的框架验证软件定义网络的可靠性并针对网络能耗、数据链路损失以及吞吐量进行多目标优化的短板。
(2)本发明可以突破现有软件定义网络验证框架的局限性,建立统一的框架验证在不确定环境下软件定义网络的可靠性,并根据网络动态变化权衡网络能效及性能,自动生成网络交换机的转发流表;一方面可以使得转发策略可根据网络环境以及用户需求动态调整,另一方面避免人为引入错误,提高系统可靠性。
(3)本发明自动生成网络流表可避免人为引入网络黑洞错误,并提高软件定义网络对于环境变化的自适应性。
附图说明
为了使本发明的内容更容易被清楚地理解,下面根据具体实施例并结合附图,对本发明作进一步详细的说明,其中
图1所示为本发明中软件定义网络流表的自动生成方法的框架图;
图2所示为本发明流程图;
图3所示为本发明中网络拓扑模型示意图;
图4所示为本发明网络交换机与不确定环境动态博弈模型示意图。
具体实施方式
见图2,本发明提出的一种不确定环境下软件定义网络流表自动生成方法,针对网络环境的非确定性变化,首先对软件定义网络建立随机博弈模型,对模型增加吞吐量、延迟、能耗等奖励标注,量化模型的期望;然后采用概率时序逻辑规范描述网络属性要求以及优化目标,在随机博弈模型的基础上采用概率模型检验以及线性时序逻辑计算网络模型的期望奖励;利用基于奖励的概率交替时序逻辑(rpatl)检查网络的静态控制逻辑,避免网络黑洞、网络环路;
其中,基于奖励的概率交替时序逻辑rewardprobabilisticalternatingtemporallogic(rpatl),可以验证如
其中c表示博弈参与方,c表示一个实数,
同时利用基于奖励的概率交替时序逻辑(rpatl)来检查网络的动态控制逻辑,生成对应帕累托最优的多目标优化的网络流转发策略;最后根据转发策略以及jinja模板生成ryu控制器代码。
本发明能够突破现有软件定义网络验证框架的局限性,建立统一的框架验证在不确定环境下软件定义网络的可靠性,并根据网络动态变化权衡网络能效及性能,自动生成网络交换机的转发流表。一方面可以使得转发策略可根据网络环境以及用户需求动态调整,另一方面避免人为引入错误,提高系统可靠性。
参阅图1,该图反映了软件定义网络中各个交换机转发流表的生成过程。首先将网络架构建设为图模g=(v,e),其中v作为图的点,描述网络交换机的集合;e作为图的边,描述数据链路的集合,根据图模型,采用五元组
参阅图3,该图反映了一个网络拓扑图以及对应的数据流向图的简单案例。其中,数据中心dc1需要发送数据流至数据中心dc3,交换机sw1,sw2以及sw3处于工作状态,而交换机sw4以及sw5处于休眠状态。提出的方法可以自动生成转发策略使得数据流通过sw1以及sw3转发至dc3,同时将不需要使用的sw2放入休眠模式。若sw3随机下线或者在sw3处发现拥堵现象,则唤醒sw2进行数据流转发,如虚线所示。同时整个方案验证网络的可靠性,即验证数据流不会在dc1->sw1->sw4以及sw1->sw3->sw2内进行环路转发。
参阅图4,该图反映了基于随机博弈模型语义的交换机sw1在不同网络环境下所采取的博弈策略。在网络拓扑,数据链路能耗,损耗率及吞吐量已知条件下,其中博弈一方为网络控制策略,将数据流从一个数据中心转发至另一个数据中心。博弈另一方为网络环境的带有对抗性的不确定变化,包括网络交换机休眠或者下线事件、以及网络流量异常导致的网络拥塞事件。网络控制策略根据随机博弈的优化结果动态选择权衡网络能耗及网络性能的最优策略,选择唤醒网络流需要的网络交换机,并且将不需要使用的网络交换机放入休眠模式。
根据表1所示的网络模型参数及对应的博弈策略,发生网络拥塞的概率为p,若采取延时重发,丢包率为1%;若更换传输网络端口,则丢包率会大大增加。若接受交换机下线,则必须要更换传输端口,然而也会造成丢包。拟通过博弈模型权衡网络性能与网络能耗。
表1网络模型参数及对应博弈策略
参阅图1,本发明通过tptg模板输入prism-games概率模型检验引擎中,通过概率交替时序逻辑以及线性时序逻辑检查网络的静态及动态控制逻辑。
为了避免网络环路及网络黑洞,验证数据流是否可以从起始点到达终点。对于网络流
为了权衡网络能耗,查询属性验证网络能耗损失期望低于
首先确保网络拓扑以及转发策略不会造成网络黑洞与环路,要确保
首先转化目标函数
由公式(3)及公式(4)采用值迭代方法更新的
基于网络可靠性,采取帕累托优化权衡网络能耗,损耗率及吞吐率,即找到
最终,可得基于权重组合的奖励期望的公式为:
算法1是计算基于多权重组合的
给定
当
参阅图1,本发明根据prism-games引擎生成的转发策略对应至ryu生成流表所需要的指令,主要包括构造match字段、actions字段并通过send_msg()将构造的消息发送至各个交换机。
match字段由ofp_parser.ofpmatch类构造,根据ipv4_src以及ipv4_dst参数根据数据流的源ip地址以及目的地ip地址构造,所有数据包符合条件的数据包可以匹配当前条目。
actions字段由ofpinstructionactions类构造,主要存在转发,丢包,更改源目ip地址以及延时四种操作,对应使用的类如表2所示。
表2转发操作及对应ryu控制器api
对应表2所示类,生成jinja模板,传入的参数为数据流源目ip地址,转发包的端口,更改的源目ip地址,延时队列id。根据prism-games引擎生成的多目标优化策略生成ryu控制器代码,并通过packet-out消息将流表更新信息发送送到各个网络交换机。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。