1.本技术实施例涉及网络技术领域,尤其涉及软件定义网络中的决策下发方法、装置及存储介质。
背景技术:2.软件定义网络(software defined network,sdn)是一种新型的网络架构,是网络虚拟化的一种实现方式,其核心技术是通过将网络设备控制面和数据面分离来实现网络流量的灵活控制,使网络作为管道变得更加智能。
3.目前,现有的一种基于sdn架构的决策下发方法如下:该方法由一台sdn控制器下发决策,基于开放流(open flow)协议将决策传输给多台网络转发设备来实现网络数据的转发。但是,使用上述方法下发决策会出现sdn异常进而导致整个sdn网络不能正常工作的问题。
技术实现要素:4.本技术提供一种软件定义网络中的决策下发方法、装置及存储介质,可以提升软件定义网络的稳定性。
5.第一方面,本技术提供一种软件定义网络中的决策下发方法,应用于第一sdn控制设备,该方法包括:获取sdn转发设备的网络动态信息;基于所述网络动态信息确定所述软件定义网络中的第一数据转发决策;接收来自m个sdn控制设备的m个数据转发决策,所述m个数据转发决策与所述m个sdn控制设备一一对应,所述m个数据转发决策中每个数据转发决策来自所述m个sdn控制设备中对应sdn控制设备,m为正整数;基于m+1个数据转发决策确定目标数据转发决策,所述m+1个数据转发决策包括所述第一数据转发决策和所述m个数据转发决策;向sdn转发设备发送所述目标数据转发决策。
6.该方法中,第一sdn控制设备基于获取的sdn转发设备的网络动态信息确定软件定义网络中的第一数据转发决策,并接收来自m个sdn控制设备的m个数据转发决策,第一sdn控制设备在m+1个数据转发决策中确定目标数据转发决策。因为软件定义网络中含有多个sdn控制设备,每个sdn控制设备间可以进行数据转发决策的交互从而确定目标数据转发决策,这样,可以避免因一台sdn控制设备出现异常导致整个软件定义网络无法使用的问题,进而可以提升软件定义网络的稳定性。
7.在一种可能的实施方式中,所述方法还包括:向所述m个sdn控制设备中每个sdn控制设备发送所述第一数据转发决策;其中,基于m+1个数据转发决策确定目标数据转发决策,包括:从所述m+1个数据转发决策中确定第一最佳数据转发决策;向所述每个sdn控制设备发送所述第一最佳数据转发决策;接收来自所述m个sdn控制设备的m个最佳数据转发决策,所述m个最佳数据转发决策与所述m个sdn控制设备一一对应,所述m个最佳数据转发决策中每个最佳数据转发决策来自所述m个sdn控制设备中对应sdn控制设备;从m+1个最佳数据转发决策中确定所述目标数据转发决策,所述m+1个最佳数据转发决策包括所述第一最
佳数据转发决策和所述m个最佳数据转发决策。
8.该实现方式中,第一sdn控制设备向m个sdn控制设备中每个sdn控制设备发送第一最佳数据转发决策,并接收来自所述m个sdn控制设备的m个最佳数据转发决策,在m+1个最佳数据转发决策中确定所述目标数据转发决策。第一sdn控制设备可以和m个sdn控制设备进行信息交互,使得每个sdn控制设备都可以获知软件定义网络中所有最佳数据转发决策,这样有利于软件定义网络中每个sdn控制设备可以确定更合理的目标数据转发决策。
9.在一种可能的实施方式中,从m+1个最佳数据转发决策中确定所述目标数据转发决策,包括:将所述m+1个最佳数据转发决策中的第二数据转发决策确定为所述目标数据转发决策,所述第二数据转发决策为所述m+1个最佳数据转发决策中的数量最多的数据转发决策。
10.在一种可能的实施方式中,所述第二数据转发决策包括第三数据转发决策和第四数据转发决策;将所述m+1个最佳数据转发决策中的第二数据转发决策确定为所述目标数据转发决策,包括:基于所述m个sdn控制设备和所述第一sdn控制设备的预设决策权值,确定所述第三数据转发决策的权值和所述第四数据转发决策的权值;将所述第二数据转发决策中权值最大的数据转发决策确定为所述目标数据转发决策。
11.在一种可能的实施方式中,基于所述m个sdn控制设备和所述第一sdn控制设备的预设决策权值,确定所述第三数据转发决策的权值和所述第四数据转发决策的权值包括:将选则所述第三数据转发决策作为最佳数据转发决策的所有sdn控制设备的预设决策权值的总和确定为所述第三数据转发决策的权值;将选则所述第四数据转发决策作为最佳数据转发决策的所有sdn控制设备的预设决策权值的总和确定为所述第四数据转发决策的权值。
12.在一种可能的实施方式中,若所述第三数据转发决策的权值等于所述第四数据转发决策的权值,则将所述第三数据转发决策确定为所述目标数据转发决策,选择所述第三数据转发决策作为最佳数据转发决策的多个sdn控制设备中的第二sdn控制设备的预设决策权值为第一预设决策权值,所述第一预设决策权值大于选择所述第四数据转发决策作为最佳数据转发决策的每个sdn控制设备的预设决策权值。
13.该实现方式中,第一sdn控制设备将第二数据转发决策中权值最大的数据转发决策确定为所述目标数据转发决策,这样,可以确保软件定义网络中的第一sdn控制设备向sdn转发设备下发一条目标数据转发决策,避免因第一sdn控制设备下发多条目标数据转发决策导致转发路径混乱。
14.在一种可能的实施方式中,向sdn转发设备发送所述目标数据转发决策,包括:向目标sdn转发设备发送所述目标数据转发决策,所述目标sdn转发设备距离所述每个sdn控制设备的距离大于所述目标sdn转发设备至所述第一sdn控制设备的距离。
15.该实现方式中,目标sdn转发设备距离每个sdn控制设备的距离大于目标sdn转发设备至第一sdn控制设备的距离,这样,可以降低第一sdn控制设备向目标sdn转发设备发送目标数据转发决策的时延。
16.第二方面,本技术提供一种软件定义网络中的决策下发装置,应用于第一sdn控制设备,该装置包括用于实现第一方面中的方法的各个功能模块。其中,每个功能模块可以通过软件和/或硬件方式实现。
17.作为示例,该装置可以包括:获取模块,用于获取sdn转发设备的网络动态信息;第一确定模块,用于基于所述网络动态信息确定所述软件定义网络中的第一数据转发决策;接收模块,用于接收来自m个sdn控制设备的m个数据转发决策,所述m个数据转发决策与所述m个sdn控制设备一一对应,所述m个数据转发决策中每个数据转发决策来自所述m个sdn控制设备中对应sdn控制设备,m为正整数;第二确定模块,用于基于m+1个数据转发决策确定目标数据转发决策,所述m+1个数据转发决策包括所述第一数据转发决策和所述m个数据转发决策;发送模块,用于向sdn转发设备发送所述目标数据转发决策。
18.在一种可能的实施方式中,所述发送模块具体用于:向所述m个sdn控制设备中每个sdn控制设备发送所述第一数据转发决策;所述第一确定模块具体用于从所述m+1个数据转发决策中确定第一最佳数据转发决策;所述发送模块具体用于:向所述每个sdn控制设备发送所述第一最佳数据转发决策;所述接收模块具体用于:接收来自所述m个sdn控制设备的m个最佳数据转发决策,所述m个最佳数据转发决策与所述m个sdn控制设备一一对应,所述m个最佳数据转发决策中每个最佳数据转发决策来自所述m个sdn控制设备中对应sdn控制设备;所述第二确定模块具体用于:从m+1个最佳数据转发决策中确定所述目标数据转发决策,所述m+1个最佳数据转发决策包括所述第一最佳数据转发决策和所述m个最佳数据转发决策。
19.在一种可能的实施方式中,所述第二确定模块具体用于:将所述m+1个最佳数据转发决策中的第二数据转发决策确定为所述目标数据转发决策,所述第二数据转发决策为所述m+1个最佳数据转发决策中的数量最多的数据转发决策。
20.在一种可能的实施方式中,所述第二数据转发决策包括第三数据转发决策和第四数据转发决策。
21.在一种可能的实施方式中,所述第二确定模块具体用于:基于所述m个sdn控制设备和所述第一sdn控制设备的预设决策权值,确定所述第三数据转发决策的权值和所述第四数据转发决策的权值;将所述第二数据转发决策中权值最大的数据转发决策确定为所述目标数据转发决策。
22.在一种可能的实施方式中,所述第二确定模块具体用于:将选则所述第三数据转发决策作为最佳数据转发决策的所有sdn控制设备的预设决策权值的总和确定为所述第三数据转发决策的权值;将选则所述第四数据转发决策作为最佳数据转发决策的所有sdn控制设备的预设决策权值的总和确定为所述第四数据转发决策的权值。
23.在一种可能的实施方式中,所述第二确定模块具体用于:若所述第三数据转发决策的权值等于所述第四数据转发决策的权值,则将所述第三数据转发决策确定为所述目标数据转发决策,选择所述第三数据转发决策作为最佳数据转发决策的多个sdn控制设备中的第二sdn控制设备的预设决策权值为第一预设决策权值,所述第一预设决策权值大于选择所述第四数据转发决策作为最佳数据转发决策的每个sdn控制设备的预设决策权值。
24.在一种可能的实施方式中,所述发送模块具体用于:向目标sdn转发设备发送所述目标数据转发决策,所述目标sdn转发设备距离所述每个sdn控制设备的距离大于所述目标sdn转发设备至所述第一sdn控制设备的距离。
25.因为第二方面中的装置包括用于实现第一方面中的方法的各个功能模块,因此,第一方面中的技术效果同样适用于第二方面中的装置,此处不再赘述。
26.第三方面,本技术提供一种微内核操作系统的调试信息的输出装置,包括:至少一个处理器和存储器;
27.其中,所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,以使所述至少一个处理器能够执行第一方面中任一项所述的方法。
28.该装置可以是决策下发设备、决策下发服务器或决策下发服务系统,也可以是能够应用于决策下发设备、决策下发服务器或决策下发服务系统的装置,例如可以是能够应用与决策下发设备、决策下发服务器或决策下发服务系统中的芯片。
29.因为第三方面中的装置包括用于实现第一方面中的方法的各个功能模块,因此,第一方面中的技术效果同样适用于第三方面中的装置,此处不再赘述。
30.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现第一方面中的方法。
31.第五方面,本技术提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现第一方面中的方法。
附图说明
32.图1为本技术一个实施例提供的sdn网络的示例性系统架构图;
33.图2为本技术一个实施例提供的基于sdn架构的决策下发方法的流程示意图;
34.图3为本技术另一个实施例提供的基于sdn架构的决策下发方法的流程示意图;
35.图4为本技术另一个实施例提供的sdn网络的示例性架构图;
36.图5为本技术一个实施例提供的sdn网络的决策下发装置的示意性结构图;
37.图6为本技术一个实施例提供的sdn网络的决策下发装置的结构示意图。
具体实施方式
38.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
39.本技术实施例适用的一种应用场景如下:sdn网络架构包含sdn控制设备和sdn转发设备,sdn控制设备得出决策并将决策下发至sdn转发设备,sdn转发设备依据决策实现数据的转发,用户可以基于sdn网络架构实现数据流量的灵活控制,还可以基于sdn网络架构通过软件部署相关网络功能,从而可以提高网络应用的灵活性。
40.在相关技术中,sdn网络架构由一台sdn控制设备和多台sdn转发设备构成。sdn控制设备基于open flow协议通过南向接口获取sdn转发设备的网络信息生成决策,sdn控制设备通过南向接口将决策传输给sdn转发设备,sdn转发设备基于接收到的决策实现数据的转发。
41.这种方法中,由于sdn网络架构中仅有一台sdn控制设备,一旦sdn控制设备受到网络攻击、自身出现损坏或者遇到其他不可抗力的影响,会导致整个sdn网络出现瘫痪,从而导致sdn网络的稳定性差。
42.针对上述问题,本技术提出一种sdn网络中的决策下发方法。本技术提出的技术方
案中,sdn网络架构由多台sdn控制设备和多台sdn转发设备构成,多台sdn控制设备通过提前部署的协商机制得出决策,进而确定下发决策的sdn控制设备,由该sdn控制设备基于open flow协议通过南向接口将决策传输给sdn转发设备,sdn转发设备基于接收到的决策实现数据的转发。
43.由于本技术的sdn架构中具有多台sdn控制设备,这使得任何一台控制设备设备出现问题或者受到攻击时,不会影响整个sdn网络的运行,进而可以提高sdn网络的稳定性。
44.图1为本技术一个实施例提供的sdn网络的示例性系统架构图。如图1所示,该系统可以包括一个sdn控制设备组和多台sdn转发设备,其中,sdn控制设备组可以包含多台sdn控制设备。
45.sdn控制设备作为sdn网络中的操作系统,负责整个sdn网络的集中化控制,一方面,sdn控制设备可以通过接口协议对底层sdn转发设备进行集中管理、状态监测、转发决策以处理和调度数据平面的流量;另一方面,sdn控制设备可以通过接口向上层应用开放多个层次的可编程能力,允许网络用户根据特定的应用场景灵活的制定各种网络策略。本实施例中,sdn控制设备主要通过接口向sdn转发设备下发决策。
46.sdn转发设备的主要功能是依据sdn控制设备下发的决策对网络数据进行转发。
47.下面结合图2,对基于sdn架构的决策下发方法进行介绍。图2为本技术一个实施例提供的基于sdn架构的决策下发方法的流程示意图。如图2所示,该方法可以包括s210、s220、s230、s240和s250。
48.s210、第一sdn控制设备获取sdn转发设备的网络动态信息。
49.第一sdn控制设备的一种示例为图1所示sdn中任意一个sdn控制设备。
50.作为示例,该sdn转发设备为所述第一sdn控制设备管理的sdn转发设备。
51.作为示例,sdn转发设备的网络动态信息可以为sdn转发设备实时的网络动态信息。例如,sdn转发设备的网络动态信息可以包括sdn转发设备当前所属网络的实时带宽使用率和sdn转发设备的实时流表使用率等信息。
52.可选地,第一sdn控制设备可以基于“open flow”协议通过南向接口获取所述sdn控制设备所管理的sdn转发设备的网络动态信息,其中,南向接口是指sdn控制设备和sdn转发设备间的标准消息接口。
53.通常,在软件定义网络中sdn控制设备和sdn转发设备需要基于“open flow”协议进行通信,sdn控制设备需要建立安全通道,sdn控制设备可以通过安全通道经由南向接口和sdn转发设备进行信息交互,进而实现数据转发决策的下发、查询以及上报等功能。
54.在软件定义网络中,通过“open flow”安全通道的信息交互必须按照“open flow”协议规定的格式来执行,安全通道中传输的“open flow”消息类型可以包括控制设备到转发设备(controller-to-switch)消息、异步(asynchronous)消息和对称(symmetric)消息三大类型。在controller-to-switch消息类型中还可以包含多种子消息类型,例如获取转发设备特性(features)、配置转发设备(configuration)、修改转发设备状态(modify-state)、读取转发设备状态(read-state)等。在本实施例中,第一sdn控制设备主要通过controller-to-switch消息类型中的read-state消息来读取sdn转发设备的网络动态信息。作为示例,第一sdn控制设备可以通过“open flow”安全通道经由南向接口实时的向第一sdn控制设备管理的sdn转发设备发送read-state消息,read-state消息可以读取sdn转
发设备实时的网络动态信息并返回给第一sdn控制设备。
55.s220、所述第一sdn控制设备基于所述网络动态信息确定所述软件定义网络中的第一数据转发决策。
56.作为示例,sdn控制设备可以基于获取的网络动态信息生成数据转发决策,所述数据转发决策可以包括流表,每条流表可以由一系列的字段组成,流表中可以包含数据在sdn中的转发路径,sdn转发设备可以依据流表中的转发路径实现数据的转发。
57.s230、所述第一sdn控制设备接收来自m个sdn控制设备的m个数据转发决策,所述m个数据转发决策与所述m个sdn控制设备一一对应,所述m个数据转发决策中每个数据转发决策来自所述m个sdn控制设备中对应sdn控制设备,m为正整数。在本实施例的sdn中,每个sdn控制设备都具有通信接口,每个sdn控制设备可以基于这些通信接口实现sdn控制设备之间的信息交互。
58.作为示例,第一sdn控制设备可以通过通信接口接收来自m个sdn控制设备的m个数据转发决策。s240、所述第一sdn控制设备基于m+1个数据转发决策确定目标数据转发决策,所述m+1个数据转发决策包括所述第一数据转发决策和所述m个数据转发决策。
59.s250、所述第一sdn控制设备向sdn转发设备发送所述目标数据转发决策。
60.图3为本技术另一个实施例提供的基于sdn架构的决策下发方法的流程示意图,在图2实施例的一些可能的实现方式中,如图3所示,还可以包括:
61.s235、第一sdn控制设备将所述第一数据转发决策发送至m个sdn控制设备中每个sdn控制设备,m为正整数。
62.作为示例,第一sdn控制设备可以通过通信接口将所述第一数据转发决策发送至m个sdn控制设备中每个sdn控制设备。相应地,s240、即所述第一sdn控制设备基于m+1个数据转发决策确定目标数据转发决策,可以包括s241、s242、s243、s244和s245。
63.s241、所述第一sdn控制设备从所述m+1个数据转发决策中确定第一最佳数据转发决策。
64.s242、所述第一sdn控制设备向所述每个sdn控制设备发送所述第一最佳数据转发决策。
65.s243、所述第一sdn控制设备接收来自所述m个sdn控制设备的m个最佳数据转发决策,所述m个最佳数据转发决策与所述m个sdn控制设备一一对应,所述m个最佳数据转发决策中每个最佳数据转发决策来自所述m个sdn控制设备中对应sdn控制设备。
66.s244、所述第一sdn控制设备从m+1个最佳数据转发决策中确定所述目标数据转发决策,所述m+1个最佳数据转发决策包括所述第一最佳数据转发决策和所述m个数据转发决策。
67.作为示例,所述第一sdn控制设备可以基于自己管理的sdn转发设备的网络动态信息从这m+1个数据转发决策中确定出第一最佳数据转发决策。
68.可选的,所述第一sdn控制设备可以基于自己获取的网络动态信息中包含的sdn转发设备的实时流表使用率确定第一最佳数据转发决策。
69.作为示例,s245、即所述第一sdn控制设备从m+1个最佳数据转发决策中确定所述目标数据转发决策的实现方式可以包括:第一sdn控制设备可以基于最佳数据转发决策被选择的次数来确定目标数据转发决策。例如,第一sdn控制设备可以将被选择次数最多的最
佳数据转发决策确定为目标转发决策。
70.换句话说,第一sdn控制设备统计这m+1个最佳数据转发决策中相同最佳数据转发决策的数量,并将数量最多的最佳数据转发决策确定为目标数据转发决策。数量最多的最佳数据转发决策相当于更多sdn控制设备都选择的是该最佳数据转发决策。
71.可选地,若存在不同最佳数据转发决策被选择次数相同的情况,作为示例,所述第一sdn控制设备可以基于预先设置好的决策权值来从这些不同的数据转发决策中选择目标数据转发决策。
72.例如,管理人员可以预先在每个sdn控制设备中设置好sdn中每个sdn控制设备的决策权值,然后基于选择数量最多的最佳数据转发决策所对应的sdn控制设备的决策权值计算该最佳数据转发决策的分值,并将分值最高的最佳数据转发决策确定为目标数据转发决策。
73.例如10个sdn控制设备中有四个sdn控制设备选择第一数据转发决策作为最佳数据转发决策,另外四个sdn控制设备选择第二数据转发决策作为最佳数据转发决策。这种情况下,可以基于前四个sdn控制设备的决策权值确定第一数据转发策略作为目标数据转发决策的分值,基于后四个sdn控制设备的决策权值确定第二数据转发决策作为目标数据转发决策的分值,并将分值最高的数据转发决策确定为目标数据转发决策。
74.可选地,基于多个sdn控制设备的决策权值计算数据转发决策的分值的实现方式如下:将这多个sdn控制设备的决策权值相加,或者将这多个sdn控制设备的决策权值相加再求均值。
75.本实施例中,可选地,s250中,所述第一sdn控制设备可以向自己管理的sdn转发设备发送目标数据转发决策。
76.可选地,第一sdn控制设备可以基于第一sdn控制设备和sdn转发设备间的距离确定目标sdn控制设备。
77.例如,所述sdn控制设备可以将与所述目标转发决策中包含的sdn转发设备距离最近的sdn控制设备作为目标sdn控制设备。
78.这种情况下,第一sdn控制设备向距离自己最近的sdn转发设备发送目标数据转发决策。
79.下面以sdn网络架构包含3台sdn控制设备和6台sdn转发设备为例,结合图4,对本实施例的方法进行介绍。图4为本技术另一个实施例提供的sdn网络的示例性架构图。
80.本实施例中,这3台sdn控制设备依次记为sdn控制设备1、sdn控制设备2和sdn控制设备3,这6台sdn转发设备依次记为sdn转发设备1、sdn转发设备2、sdn转发设备3、sdn转发设备4、sdn转发设备5和sdn转发设备6。
81.本实施例中,不同的sdn控制设备位于不同的物理位置,彼此之间可以实现信息交互。每个sdn控制设备在各自的网络范围内管理2台sdn转发设备。
82.例如,sdn控制设备1负责管理sdn转发设备1和sdn转发设备2;sdn控制设备2负责管理sdn转发设备3和sdn转发设备4;sdn控制设备3负责管理sdn转发设备5和sdn转发设备6。
83.sdn控制设备1基于“open flow”协议通过南向接口获取sdn转发设备1和sdn转发设备2当前运行的网络动态信息。
84.sdn控制设备2基于“open flow”协议通过南向接口获取sdn转发设备3和sdn转发设备4当前运行的网络动态信息。
85.sdn控制设备3基于“open flow”协议通过南向接口获取sdn转发设备5和sdn转发设备6当前运行的网络动态信息。
[0086]“open flow协议”是一种网络通信协议,它可以使得sdn控制设备具备远程控制sdn转发设备的数据转发路径的能力,例如,可以通过远程新增、修改与移除数据包控制规则与行动来改变数据包转送路径。
[0087]
sdn转发设备的网络动态信息可以包括sdn转发设备当前所属网络的实时带宽使用率和sdn转发设备的流表使用率等信息。
[0088]
每个sdn控制设备获取的sdn转发设备当前的网络动态信息确定这6个sdn转发设备之间的数据转发决策。
[0089]
可选地,该数据转发决策可以包括流表,每条流表可以由一系列的字段组成,流表中可以包含数据的转发路径,sdn转发设备可以依据流表中的转发路径实现数据的转发。
[0090]
具体地,sdn控制设备1依据sdn转发设备1和sdn转发设备2当前的网络动态信息确定这6个sdn转发设备之间的数据转发决策1。作为示例,数据转发决策1中包括如下转发路径:sdn转发设备1-至sdn转发设备2-至sdn转发设备3-至sdn转发设备5。
[0091]
sdn控制设备2依据sdn转发设备3和sdn转发设备4当前的网络动态信息确定这6个sdn转发设备之间的数据转发决策2。作为示例,数据转发决策2中包括如下转发路径:sdn转发设备1-至sdn转发设备2-至sdn转发设备5。
[0092]
sdn控制设备3依据sdn转发设备5和sdn转发设备6当前的网络动态信息确定这6个sdn转发设备之间的数据转发决策3。作为示例,数据转发决策3中包括如下转发路径:sdn转发设备1-至sdn转发设备3-至sdn转发设备5。
[0093]
每个sdn控制设备将其确定的数据转发决策通过预先定义的接口传输至其余sdn控制设备。这样,每个sdn控制设备都可以获知所有sdn控制设备做出的数据转发决策,即数据转发决策1、数据转发决策2和数据转发决策3。
[0094]
每个sdn控制设备依据获取的sdn转发设备的网络动态信息从所有数据转发决策中确定最佳数据转发决策。
[0095]
作为一种示例,sdn控制设备可以根据sdn转发设备的网络动态信息中的流表使用率来确定最佳数据转发决策。
[0096]
例如,若sdn转发设备1和sdn转发设备2的流表使用率较高,则说明由sdn转发设备1至sdn转发设备2的链路较为拥塞,那么sdn控制设备1会选择数据转发决策3,即sdn转发设备1至sdn转发设备3至sdn转发设备5的转发路径。
[0097]
本实施例中,将sdn控制设备1确定的最佳数据转发决策称为最佳数据转发决策1,将sdn控制设备2确定的最佳数据转发决策称为最佳数据转发决策2,将sdn控制设备3确定的最佳数据转发决策称为最佳数据转发决策3。
[0098]
每个sdn转发设备确定出最佳数据转发决策之后,向其他sdn转发设备发送该最佳数据转发决策。这样,每个sdn转发设备均能获知所有最佳数据转发决策。
[0099]
针对每个sdn控制设备而言,该sdn控制设备将被选则次数最多的最佳数据转发决策确定为目标数据转发决策。
[0100]
例如,sdn控制设备1和sdn控制设备2选择的最佳数据转发决策均为数据转发决策3,sdn控制设备3选择的最佳数据转发决策为数据转发决策2,则每个sdn控制设备都将数据转发决策3确定为目标数据转发决策。
[0101]
若存在不同的数据转发决策被选为最佳数据转发决策的次数相同的情况,则sdn控制设备可以基于预先设置好的决策权值来从这些不同的数据转发决策中选择目标数据转发路径。可选地,本实施例中,网络管理员可以提前对sdn控制设备组中任意一个sdn控制设备赋予决策权值并在每个sdn控制设备中设置好每个sdn控制设备的决策权值。
[0102]
作为示例,网络管理员可以依据任意一个sdn控制设备管理的区域大小赋予决策权值。例如,sdn控制设备所管理的区域越大,则决策权值较大。
[0103]
作为一种示例,若sdn控制设备1选择的最佳数据转发决策为数据转发决策1,sdn控制设备2选择的最佳数据转发决策为数据转发决策2,sdn控制设备3选择的最佳数据转发决策为数据转发决策3,且sdn控制设备1的决策权值为50%,sdn控制设备2的决策权值为20%,sdn控制设备3的决策权值为30%,那么,每个sdn控制设备将数据转发决策1确定为目标数据转发决策。
[0104]
作为示例,sdn控制设备需要在sdn控制设备组中确定目标sdn控制设备,所述目标sdn控制设备为下发目标转发决策的sdn控制设备。
[0105]
作为一种示例,sdn控制设备1可以基于sdn控制设备组中每个sdn控制设备和sdn转发设备间的距离确定所述目标sdn控制设备,具体的,sdn控制设备1可以将与目标转发决策中包含的sdn转发设备距离最近的sdn控制设备作为目标sdn控制设备。
[0106]
例如,sdn控制设备1确定的目标转发决策中包含的转发路径为sdn转发设备1-至sdn转发设备2-至sdn转发设备3,那么sdn控制设备1可以将距离sdn转发设备1、sdn转发设备2和sdn转发设备3最近的sdn控制设备确定为目标sdn转发设备,由目标sdn控制设备下发目标数据转发决策。
[0107]
图5为本技术一个实施例提供的sdn网络的决策下发装置的示意性结构图。参见图5,该装置500可以包括:获取模块501、第一确定模块502、接收模块503、第二确定模块504和发送模块505。
[0108]
该装置500可以用于实现图2和图3所示实施例中的方法。例如,获取模块501可以用于实现s210,第一确定模块502可以用于实现s220,接收模块503可以用于实现s230,第二确定模块504可以用于实现s240,发送模块505可以用于实现s250。
[0109]
图6为本技术一个实施例提供的sdn网络的决策下发装置的结构示意图。参见图6,该装置600可以包括:至少一个处理器601和存储器602。其中,处理器601和存储器602之间通过总线603相互连接。
[0110]
作为一种示例,处理器601用于执行该存储器602所存储的程序指令,使得至少一个处理器601实现图2和图3所示实施例中的方法。
[0111]
在上述图6所示的实施例中,应理解,处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组
合执行完成。
[0112]
存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器。
[0113]
总线可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本技术附图中的总线并不限定仅有一根总线或一种类型的总线。
[0114]
本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现上述方法。
[0115]
本技术实施例还可提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,可实现上述方法。
[0116]
本说明书中使用的术语“模块”,可用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。
[0117]
本技术实施例是参照根据本技术实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0118]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0119]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0120]
显然,本领域的技术人员可以对本技术实施例进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术实施例的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:1.一种软件定义网络中的决策下发方法,其特征在于,应用于第一软件定义网络sdn控制设备,包括:获取sdn转发设备的网络动态信息;基于所述网络动态信息确定所述软件定义网络中的第一数据转发决策;接收来自m个sdn控制设备的m个数据转发决策,所述m个数据转发决策与所述m个sdn控制设备一一对应,所述m个数据转发决策中每个数据转发决策来自所述m个sdn控制设备中对应sdn控制设备,m为正整数;基于m+1个数据转发决策确定目标数据转发决策,所述m+1个数据转发决策包括所述第一数据转发决策和所述m个数据转发决策;向sdn转发设备发送所述目标数据转发决策。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:向所述m个sdn控制设备中每个sdn控制设备发送所述第一数据转发决策;其中,基于m+1个数据转发决策确定目标数据转发决策,包括:从所述m+1个数据转发决策中确定第一最佳数据转发决策;向所述每个sdn控制设备发送所述第一最佳数据转发决策;接收来自所述m个sdn控制设备的m个最佳数据转发决策,所述m个最佳数据转发决策与所述m个sdn控制设备一一对应,所述m个最佳数据转发决策中每个最佳数据转发决策来自所述m个sdn控制设备中对应sdn控制设备;从m+1个最佳数据转发决策中确定所述目标数据转发决策,所述m+1个最佳数据转发决策包括所述第一最佳数据转发决策和所述m个最佳数据转发决策。3.根据权利要求2所述的方法,其特征在于,从m+1个最佳数据转发决策中确定所述目标数据转发决策,包括:将所述m+1个最佳数据转发决策中的第二数据转发决策确定为所述目标数据转发决策,所述第二数据转发决策为所述m+1个最佳数据转发决策中的数量最多的数据转发决策。4.根据权利要求3所述的方法,其特征在于,所述第二数据转发决策包括第三数据转发决策和第四数据转发决策;将所述m+1个最佳数据转发决策中的第二数据转发决策确定为所述目标数据转发决策,包括:基于所述m个sdn控制设备和所述第一sdn控制设备的预设决策权值,确定所述第三数据转发决策的权值和所述第四数据转发决策的权值;将所述第二数据转发决策中权值最大的数据转发决策确定为所述目标数据转发决策。5.根据权利要求4所述的方法,其特征在于,基于所述m个sdn控制设备和所述第一sdn控制设备的预设决策权值,确定所述第三数据转发决策的权值和所述第四数据转发决策的权值包括:将选则所述第三数据转发决策作为最佳数据转发决策的所有sdn控制设备的预设决策权值的总和确定为所述第三数据转发决策的权值;将选则所述第四数据转发决策作为最佳数据转发决策的所有sdn控制设备的预设决策权值的总和确定为所述第四数据转发决策的权值。6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
若所述第三数据转发决策的权值等于所述第四数据转发决策的权值,则将所述第三数据转发决策确定为所述目标数据转发决策,选择所述第三数据转发决策作为最佳数据转发决策的多个sdn控制设备中的第二sdn控制设备的预设决策权值为第一预设决策权值,所述第一预设决策权值大于选择所述第四数据转发决策作为最佳数据转发决策的每个sdn控制设备的预设决策权值。7.根据权利要求6所述的方法,其特征在于,向sdn转发设备发送所述目标数据转发决策,包括:向目标sdn转发设备发送所述目标数据转发决策,所述目标sdn转发设备距离所述每个sdn控制设备的距离大于所述目标sdn转发设备至所述第一sdn控制设备的距离。8.一种软件定义网络中的决策下发装置,其特征在于,应用于第一sdn控制设备,所述装置包括:获取模块,用于获取sdn转发设备的网络动态信息;第一确定模块,用于基于所述网络动态信息确定所述软件定义网络中的第一数据转发决策;接收模块,用于接收来自m个sdn控制设备的m个数据转发决策,所述m个数据转发决策与所述m个sdn控制设备一一对应,所述m个数据转发决策中每个数据转发决策来自所述m个sdn控制设备中对应sdn控制设备,m为正整数;第二确定模块,用于基于m+1个数据转发决策确定目标数据转发决策,所述m+1个数据转发决策包括所述第一数据转发决策和所述m个数据转发决策;发送模块,用于向sdn转发设备发送所述目标数据转发决策。9.一种软件定义网络中的决策下发装置,其特征在于,包括:至少一个处理器和存储器;其中,所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的方法。
技术总结本申请提供一种软件定义网络中的决策下发方法、装置及存储介质。本申请的技术方案中,软件定义网络可以包含多台SDN控制设备和多台SDN转发设备,每一台SDN控制设备可以通过获取SDN转发设备的网络动态信息制定数据转发决策,每台SDN控制设备之间可以进行信息交互,使每台SDN控制设备可以获知软件定义网络中的所有的SDN控制设备的数据转发决策,每台SDN控制设备在所有数据转发决策中确定目标数据转发决策,进而通过一台SDN控制设备将目标数据转发决策下发至SDN转发设备。在软件定义网络中部署多台SDN控制设备,可以提高软件定义网络的稳定性。的稳定性。的稳定性。
技术研发人员:刘思聪 姜欣廷
受保护的技术使用者:中国联合网络通信集团有限公司
技术研发日:2022.06.23
技术公布日:2022/11/1