本申请公开了一种流表处理的方法、装置及电子设备。该方法可以包括如下步骤:接收流表,流表包含多个流表项;根据多个流表项,判断流表是否为待合并流表;在流表为待合并流表的情况下,在总流表中查询并保存待合并流表的一个或多个上级流表至待处理列表,总流表中包括接收到的尚未进行处理的流表;合并待处理列表中各个流表的预设流表项得到合并流表。通过实施本申请,可以减少流表所占用的资源,并且可以提升流表查询的效率。提升流表查询的效率。提升流表查询的效率。
【技术实现步骤摘要】
一种流表处理的方法、装置及电子设备
[0001]本申请涉及新一代信息技术产业的电数字数据处理领域,尤其涉及一种流表处理的方法、装置及电子设备。
技术介绍
[0002]虚拟交换机OpenVSwitch(简称OVS)是一个支持多层数据转发的高质量虚拟交换机,主要部署在服务器上,相比传统交换机具有很好的编程扩展性,同时具备传统交换机实现的网络隔离和数据转发功能,运行在每个实现虚拟化的物理机器上,并提供远程管理。OVS提供了两种在虚拟化环境中远程管理的协议:一个是网络通信协议(OpenFlow协议),通过流表来管理交换机的行为,一个是开放虚拟交换机数据库管理协议(Open vSwitch Database Management Protocol,OVSDB管理协议),用来暴露交换机的端口状态。但是因为OVS本身的设计需要经过软中断、硬中断、内核空间与用户空间的切换来完成网络数据的传输;另一方面OVS的数据转发是在系统内核空间上实现的,跟其他任务一样占用的是中央处理单元(Central Processing Unit,简称CPU)的时间片,而不是整个CPU资源,这样就存在资源抢占的可能,不能保证在需要转发网络数据的时候一定占用资源。为了提高其转发性能,需要将其网络转发卸载到专门的转发芯片上实现。
[0003]连接跟踪Conntrack是在Linux操作系统的子系统Netfilter框架下提供的针对流转发发现并跟踪连接状态的机制。连接跟踪所做的事情就是发现并跟踪这些连接的状态,具体包括:(1)从数据包中提取元组(tuple)信息,辨别数据流(flow)和对应的连接(connection);(2)为所有连接维护一个状态数据库(conntrack table),例如连接的创建时间、发送包数、发送字节数等等;(3)回收过期的连接(GC);(4)为更上层的功能(例如 NAT)提供服务。
[0004]OVS结合Conntrack为云计算网络中基于双向流量状态转发控制的应用提供支持,通过流表编排和双向连接建立构建状态安全组、外部网际互联协议(External IP)、分布式四层负载均衡、网络地址转换(NAT)等业务应用。但是,OVS的Conntrack连接状态的流表通常存在多项流表项。由于硬件资源非常宝贵且成本较高,若将流表的所有流表项全都下发到硬件的话,将会占用大量资源。因此,如何减少流表的资源占用是需要解决的问题。
技术实现思路
[0005]本申请实施例提供了一种流表处理的方法、装置及电子设备,可以在存在多级流表的情况下,减少流表所占用的资源。
[0006]第一方面,本申请实施例提供了一种流表处理的方法,包括:接收流表,所述流表包含多个流表项;根据所述流表项,判断所述流表是否为待合并流表;在所述流表为待合并流表的情况下,在总流表中查询并保存所述待合并流表的一个或多个上级流表至待处理列表,所述总流表中包括接收到的尚未进行处理的流表;
合并所述待处理列表中各个流表的预设流表项得到合并流表。
[0007]第二方面,本申请实施例提供了一种流表处理的装置,包括:接收模块,用于接收流表,所述流表包含多个流表项;处理模块,用于根据所述流表项,判断所述流表是否为待合并流表;用于在所述流表为待合并流表的情况下,在总流表中查询并保存所述待合并流表的一个或多个上级流表至待处理列表,所述总流表中包括接收到的尚未进行处理的流表;以及用于合并所述待处理列表中各个流表的预设流表项得到合并流表。
[0008]第三方面,本申请实施例提供了一种电子设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如第一方面所述的方法。
[0009]第四方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如第一方面所述的方法。
[0010]第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机可操作来使计算机执行如第一方面所述的方法。
[0011]通过实施本申请实施例,可以在存在多级流表的情况下,根据流表项判断流表是否为待合并流表,通过合并待合并流表得到合并流表,从而可以减少流表所占用的资源,并且可以提升流表查询的效率。
附图说明
[0012]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0013]图1为本申请实施例提供的一种流表处理的方法的流程示意图;图2为本申请实施例提供的一种流表处理的装置的组成示意图;图3为本申请实施例提供的一种电子设备的组成示意图。
具体实施方式
[0014]下面结合附图对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
[0015]本申请的说明书以及附图中的术语“第一”和“第二”等是用于区分不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
[0016]需要说明的是,本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例
证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方法不应被解释为比其他实施例或设计方案更优地或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。在本申请实施例中,“A和/或B”表示A和B,A或B两个含义。“A,和/或B,和/或C”表示A、B、C中的任一个,或者,表示A、B、C中的任两个,或者,表示A和B和C。
[0017]下面,结合图1对本申请实施例提供的流表处理的方法进行详细说明。
[0018]请参见图1,为本申请实施例提供的一种流表处理的方法的流程示意图,可以包括如下步骤S101
‑
步骤S104:步骤S101:接收流表,所述流表包含多个流表项。
[0019]流表是一张张的转发表(ForwardingTable),用于作为流转发的依据,每张流表都是由多个流表项(FlowEntry)组成,每张流表对应了网络传输的一条流。流是指在一段时间内经过同一个网络的一系列具有相同属性的顺序发送的报文(数据包)集合。流表项是流表的最小单位,流表项用于表示流表所对应的流的各种信息,本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种流表处理的方法,其特征在于,所述方法包括:接收流表,所述流表包含多个流表项;根据所述流表项,判断所述流表是否为待合并流表;在所述流表为待合并流表的情况下,在总流表中查询并保存所述待合并流表的一个或多个上级流表至待处理列表,所述总流表中包括接收到的尚未进行处理的流表;合并所述待处理列表中各个流表的预设流表项得到合并流表。2.根据权利要求1所述的方法,其特征在于,所述根据所述流表项,判断所述流表是否为待合并流表包括:根据所述流表项中的第一流表项判断所述流表是否为已建立跟踪的流表;在所述流表为已建立跟踪的流表的情况下,根据所述流表项中的第二流表项判断所述流表是否为首部流表,并根据所述流表项中的第三流表项判断所述流表是否存在下级流表;若所述流表不是首部流表且不存在下级流表,则所述流表为待合并流表。3.根据权利要求2所述的方法,其特征在于,所述预设流表项包括Key值和Action,所述Key值用于确定流表,所述Action用于表示对流表进行的动作。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:在所述流表为已建立跟踪的流表的情况下,提取所述流表中的第四流表项,并向内核注册回调函数。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在所述流表存在下级流表的情况下,将所述流表打上待处理标志;在所述流表上记录所述流表的下级流表的第二流表项,以用于找到所述流表的下级流表;将所述流表保存至所述总流表中。6.根据权利要求4所述的方法,其特征在于,所述...
【专利技术属性】
技术研发人员:余兆国,彭雪娇,孙路遥,
申请(专利权)人:珠海星云智联科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。