流表生成方法和装置、软件定义网络和存储介质与流程

文档序号:20917037发布日期:2020-05-29 13:40阅读:231来源:国知局
本发明涉及数据通信领域,特别涉及一种流表生成方法和装置、软件定义网络和存储介质。
背景技术
::openflow技术的核心思想就是将原本完全由交换机/路由器控制的数据包转发过程,转化为由openflowswitch(openflow交换机)和controller(控制器)分别完成的独立过程。转变背后进行的实际上是控制权的更迭:传统网络中数据包的流向是人为指定的,虽然交换机、路由器拥有控制权,却没有数据流的概念,只进行数据包级别的交换;而在openflow网络中,统一的控制器取代路由,决定了所有数据包在网络中传输路径。openflow交换机会在本地维护一个与转发表不同的流表(flowtable),如果要转发的数据包在流表中有对应项,则直接进行快速转发;如果流表中没有此项,数据包就会被发送到控制器进行传输路径的确认,再根据下发结果进行转发。技术实现要素:申请人发现:在openflow网络中,统一的控制器取代路由,决定了所有数据包在网络中传输路径。openflow交换机完全根据控制器下发的流表对数据包进行转发,因此对控制器开发的要求较高,如流表下发错误,将会导致交换机工作异常,数据包无法转发至预期目的地;对控制器的直接修改很容易造成牵一发而动全身的局面,控制器的开发周期拉长,无法完成快速迭代。鉴于以上技术问题,本发明提供了一种流表生成方法和装置、软件定义网络和存储介质,在保证了下发给sdn(softwaredefinednetwork,软件定义网络)网关的流表的可控性和安全性的同时,大幅缩短了开发周期。根据本发明的一个方面,提供一种流表生成方法,包括:业务模块对业务进行业务功能描述,并将业务功能描述信息发送给服务层;服务层将收到的所述业务功能描述信息对应到至少一个服务模块;触发所述至少一个服务模块生成流表;将所述至少一个服务模块生成的流表发送至控制器;控制器整合从服务层接收的流表,并将整合后的流表发送至软件定义网络设备,以便软件定义网络设备根据所述整合后的流表对数据包进行转发。在本发明的一些实施例中,所述流表生成方法还包括:业务模块在业务流程中,调用服务层中相应的服务模块,生成流表。在本发明的一些实施例中,所述流表生成方法还包括:服务层的服务模块在业务流程中,被调用的情况下生成基础流表或业务流表。在本发明的一些实施例中,各个服务模块生成的流表间相互隔离。在本发明的一些实施例中,所述控制器整合从服务层接收的流表,并将整合后的流表发送至软件定义网络设备包括控制器整合从服务层接收的基础流表和/或业务流表,并将整合后的流表发送至软件定义网络网关。在本发明的一些实施例中,所述业务模块对业务进行业务功能描述包括:业务模块根据业务进行开发,对业务进行逻辑化、流程化描述。根据本发明的另一方面,提供一种流表生成装置,包括:业务模块,用于对业务进行业务功能描述,并将业务功能描述信息发送给服务层;服务层,用于将收到的所述业务功能描述信息对应到至少一个服务模块;触发所述至少一个服务模块生成流表;将所述至少一个服务模块生成的流表发送至控制器;控制器,用于整合从服务层接收的流表,并将整合后的流表发送至软件定义网络设备,以便软件定义网络设备根据所述整合后的流表对数据包进行转发。在本发明的一些实施例中,业务模块,用于在业务流程中,调用服务层中相应的服务模块,生成流表。在本发明的一些实施例中,服务层包括多个服务模块,其中,所述各个服务模块,用于在业务流程中,被调用的情况下生成基础流表或业务流表。在本发明的一些实施例中,各个服务模块生成的流表间相互隔离。在本发明的一些实施例中,控制器,用于整合从服务层接收的基础流表和/或业务流表,并将整合后的流表发送至软件定义网络网关。在本发明的一些实施例中,业务模块,用于根据业务进行开发,对业务进行逻辑化、流程化描述。根据本发明的另一方面,提供一种软件定义网络,包括软件定义网络设备、以及如上述任一实施例所述的流表生成装置。根据本发明的另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上述任一实施例所述的流表生成方法。本发明在保证了下发给sdn网关的流表的可控性和安全性的同时,大幅缩短了开发周期。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明流表生成装置一些实施例的示意图。图2为本发明流表生成方法一些实施例的示意图。图3为本发明软件定义网络一些实施例的示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。图1为本发明流表生成装置一些实施例的示意图。如图1所示,所述流表生成装置可以包括业务模块11、服务层12和控制器13,其中:业务模块11,用于对业务进行业务功能描述,并将业务功能描述信息发送给服务层。在本发明的一些实施例中,业务模块11是决定业务逻辑的模块,该模块对业务进行描述,达到业务效果,将业务逻辑化、流程化;业务模块11用于在业务流程中,调用服务层12中相应的服务模块,生成流表。由于业务模块11不直接对控制器13进行操作,该业务模块11可进行快速迭代。在本发明的一些实施例中,业务模块11可以用于描述业务,对业务进行逻辑化、流程化描述;根据业务进行开发,在业务流程过程中调用需要的各服务模块,以生成流表。服务层12,用于将收到的所述业务功能描述信息对应到至少一个服务模块;触发所述至少一个服务模块生成流表;将所述至少一个服务模块生成的流表发送至控制器。在本发明的一些实施例中,服务层12可以包括多个服务模块,其中,所述各个服务模块,用于在业务流程中,被调用的情况下生成基础流表或业务流表。在本发明的一些实施例中,服务层12直接对控制器13操作,决定了控制器下发的流表。服务层12内有各种服务模块(例如图1实施例的服务模块a、服务模块b、……、服务模块n),服务层12根据收到的业务功能描述,对应至一个或多个服务模块;各服务模块将生成基础流表或业务流表。各个服务模块所生成的流表相互隔离,互不干扰。在本发明上述实施例中,服务层12被调用的各服务模块会生成业务流表或基础流表,因此各模块生成的流表相对固定,这些流表将下发至控制器13处,通过控制器13对网关进行控制。控制器13,用于整合从服务层12接收的流表,并将整合后的流表发送至软件定义网络设备,以便软件定义网络设备根据所述整合后的流表对数据包进行转发。在本发明的一些实施例中,控制器13可以用于整合从服务层12接收的基础流表和/或业务流表,并通过openflow协议将整合后的流表发送至软件定义网络网关,以便sdn网关会根据该流表对数据包进行快速转发。基于本发明上述实施例提供的流表生成装置,首次提出了流表隔离保护概念,增加了服务层,提出了流表转化的概念。本发明上述实施例首次提出了业务流表和基础流表的概念,本发明上述实施例对下发至sdn设备的流表进行了二次整合流程,从而确保了下发至sdn设备的流表不会破坏sdn设备的基本运行及其他功能,在确保了sdn设备基本功能的安全性的同时,本发明上述实施例业务模块的开发难度减小,开发时间缩短,达到了业务能够在更短的时间内开发上线的目的。图2为本发明流表生成方法一些实施例的示意图。优选的,本实施例可由本发明流表生成装置执行。该方法包括以下步骤:步骤21,业务模块11对业务进行业务功能描述,并将业务功能描述信息发送给服务层12。在本发明的一些实施例中,所述流表生成方法可以包括:业务模块11对业务进行描述,达到业务效果,将业务逻辑化、流程化;业务模块11在业务流程中,调用服务层12中相应的服务模块,生成流表。本发明上述实施例中业务模块11是决定业务逻辑的模块。由于业务模块11不直接对控制器13进行操作,业务模块11可进行快速迭代。在本发明的一些实施例中,所述流表生成方法可以包括:业务模块11描述业务,对业务进行逻辑化、流程化描述;业务模块11根据业务进行开发,在业务流程过程中调用需要的各服务模块,以生成流表。步骤22,服务层12将收到的所述业务功能描述信息对应到至少一个服务模块;触发所述至少一个服务模块生成流表;将所述至少一个服务模块生成的流表发送至控制器13。在本发明的一些实施例中,步骤22可以包括:服务层12根据收到的业务功能描述,对应至一个或多个服务模块;各服务模块将生成基础流表或业务流表。在本发明上述实施例中,服务层12直接对控制器13操作,决定了控制器下发的流表。服务层12内设置有各种服务模块(例如图1实施例的服务模块a、服务模块b、……、服务模块n)。在本发明上述实施例中,服务层12被调用的各服务模块会生成业务流表或基础流表,因此各模块生成的流表相对固定,这些流表将下发至控制器13处,通过控制器13对网关进行控制。步骤23,控制器13整合从服务层12接收的流表,并将整合后的流表发送至软件定义网络设备,以便软件定义网络设备根据所述整合后的流表对数据包进行转发。在本发明的一些实施例中,步骤23可以包括:控制器13整合从服务层12接收的基础流表和/或业务流表,并通过openflow协议将整合后的流表发送至软件定义网络网关,以便sdn网关会根据该流表对数据包进行快速转发。基于本发明上述实施例提供的流表生成方法,实现了业务逻辑在流表中的隔离,规避了流表混乱可能引发的网关严重异常,服务层的增加,达到了开发人员通过对业务模块的开发就可以完成业务功能开发,避免了所有参与业务功能开发的人员直接修改下发给网关的流表可能引发的一系列问题,在保证了下发给sdn网关的流表的可控性和安全性的同时,大幅缩短了开发周期。图3为本发明软件定义网络一些实施例的示意图。如图3所示,本发明软件定义网络可以包括流表生成装置31和至少一个软件定义网络设备32,其中:流表生成装置31可以为如上述任一实施例(例如图1实施例)所述的流表生成装置。软件定义网络设备32,可以为软件定义网络网关。在本发明的一些实施例中,软件定义网络设备32可以为openflow交换机。基于本发明上述实施例提供的软件定义网络,首次在软件定义网络设备提出了流表隔离保护概念,增加了服务层,提出了流表转化的概念。本发明上述实施例首次提出了业务流表和基础流表的概念,本发明上述实施例对下发至sdn设备的流表进行了二次整合流程,从而确保了下发至sdn设备的流表不会破坏sdn设备的基本运行及其他功能;在确保了sdn设备基本功能的安全性的同时,本发明上述实施例业务模块的开发难度减小,开发时间缩短,达到了业务能够在更短的时间内开发上线的目的。根据本发明的另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上述任一实施例所述的流表生成方法。基于本发明上述实施例提供的流表生成方法,实现了业务逻辑在流表中的隔离,规避了流表混乱可能引发的网关严重异常,通过服务层的增加,达到了开发人员通过对业务模块的开发就可以完成业务功能开发,避免了所有参与业务功能开发的人员直接修改下发给网关的流表可能引发的一系列问题,在保证了下发给sdn网关的流表的可控性和安全性的同时,大幅缩短了开发周期。在上面所描述的流表生成装置可以实现为用于执行本申请所描述功能的通用处理器、可编程逻辑控制器(plc)、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意适当组合。至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1