CN116684358B - 一种可编程网元设备的流表管理系统及方法 - Google Patents

一种可编程网元设备的流表管理系统及方法 Download PDF

Info

Publication number
CN116684358B
CN116684358B CN202310948487.5A CN202310948487A CN116684358B CN 116684358 B CN116684358 B CN 116684358B CN 202310948487 A CN202310948487 A CN 202310948487A CN 116684358 B CN116684358 B CN 116684358B
Authority
CN
China
Prior art keywords
flow table
module
type
flow
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310948487.5A
Other languages
English (en)
Other versions
CN116684358A (zh
Inventor
薛镭
王永杰
张富军
朱俊
邹涛
张汝云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202310948487.5A priority Critical patent/CN116684358B/zh
Publication of CN116684358A publication Critical patent/CN116684358A/zh
Application granted granted Critical
Publication of CN116684358B publication Critical patent/CN116684358B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种可编程网元设备的流表管理系统,该系统包括流表分类器、流表验证器、流表调度器、流表存储器;流表分类器用于识别Ipv4/Ipv6、Mobile First、Powerlink、Geo‑Networking、Named Data Networking、SRv6这七种网络流表类型,通过下发流表的协议类型识别通过后传递给流表验证器,否则丢弃;流表验证器用于提取可编程网元设备配置的网络程序中的信息,对流表分类器传递的流表进行格式验证,通过验证后传递给流表调度器,否则丢弃;流表调度器用于将通过验证的流表根据类型调度给流表存储器;流表存储器用于构建内存和硬盘的二级存储数据结构,并定期监测流表的使用情况和性能,删除不再需要的规则,以适应网络的变化和需求。本发明可以提高可编程网络的路由效率和可靠性。

Description

一种可编程网元设备的流表管理系统及方法
技术领域
本发明涉及计算机网络领域,尤其涉及一种可编程网元设备的流表管理系统及方法。
背景技术
在可编程网络中,可编程网元设备作为数据平面受控于控制平面下发的流表转发数据包。流表管理系统在可编程网络中起着重要的作用。在可编程网络中,可编程网元设备作为数据平面受控于控制平面下发的流表,用于转发数据包。然而,现有的可编程网元设备的缓存空间有限,无法满足不断扩大的网络规模和增多的网络协议种类所需的路由需求。缓存空间不足可能导致网络路由规划失败。此外,缺乏验证的恶意流表一旦被写入数据平面设备,将对网络基础平台造成严重影响。
在可编程数据平面设备中,流表管理是一个关键的任务,用于定义和管理流表项,决定数据包的处理方式。然而,现有可编程数据平面设备的流表管理存在以下问题:
(1)流表容量限制:可编程数据平面设备的流表容量通常是有限的,尤其是针对较低成本的设备。这意味着设备只能管理有限数量的流表项。如果网络中的流量规模超出了设备的容量,流表项将被拒绝添加或删除,导致无法正确处理数据包。
(2)流表项匹配:流表项的匹配规则通常基于数据包头部字段进行匹配。然而,某些应用场景可能需要更复杂的匹配规则,例如基于数据包负载或特定的协议字段。现有可编程数据平面设备的流表项匹配能力可能有限,无法满足所有的需求。
(3)流表项更新:可编程数据平面设备中的流表项需要动态地添加、修改和删除。然而,流表项的更新可能会引发数据平面的不连续性或中断,从而影响网络的正常运行。此外,对流表项进行更新可能需要复杂的操作,导致配置错误和延迟。
(4)流表项冲突:在流表中添加的流表项可能存在冲突,即多个流表项匹配同一个数据包。这种冲突可能导致不确定的行为,例如数据包丢失或被重复处理。解决流表项冲突需要设计和实施合适的冲突解决策略,增加了管理复杂性。
(5)流表项管理接口:现有可编程数据平面设备的流表管理接口通常是基于命令行界面(CLI)或专有的管理软件。这些接口可能不够直观和易用,对于网络管理员来说,学习和使用这些接口可能需要额外的时间和精力。
发明内容
针对现有技术的不足,本发明提供一种可编程网元设备的流表管理系统及方法,以达到提高可编程网元设备的可靠性和稳定性的目的。
本发明的目的通过如下的技术方案来实现:
一种可编程网元设备的流表管理系统,该系统包括流表分类器、流表验证器、流表调度器、流表存储器;
所述流表分类器用于识别Ipv4/Ipv6、Mobile First、Powerlink、Geo-Networking、Named Data Networking、SRv6这七种网络流表类型,通过下发流表的协议类型识别通过后传递给流表验证器,否则丢弃;
所述流表验证器用于提取可编程网元设备配置的网络程序中的信息,对流表分类器传递的流表进行格式验证,通过验证后传递给流表调度器,否则丢弃;
所述流表调度器用于将通过验证的流表根据类型调度给流表存储器;
所述流表存储器用于构建内存和硬盘的二级存储数据结构,并定期监测流表的使用情况和性能,删除不再需要的规则,以适应网络的变化和需求。
进一步地,所述流表分类器包括流表类型字段提取模块、流表类型解析模块、流表分类处理模块;
所述流表类型字段提取模块用于从下发的流表中提取出流表的类型字段,如果提取到的类型字段为空,则表示无法识别流表类型,此时将流表丢弃;如果提取到的类型字段非空,则将其传递给流表类型解析模块;
所述流表类型解析模块用于解析流表的类型字段,将其转换为内部表示的流表类型,如果解析成功,表示流表的类型被正确识别,将该类型传递给流表分类处理模块进行处理;如果解析失败,即无法识别流表类型,则将该流表丢弃;
所述流表分类处理模块用于根据预定义的规则将传入的数据包分配到相应的处理路径,以便进行适当的操作或转发。
进一步地,所述流表类型解析模块在解析流表的类型字段时,将其解析为相应的枚举值或标识符。
进一步地,所述流表验证器包括网络程序提取模块和流表格式验证模块;
所述网络程序提取模块用于提取配置在可编程网元设备中的网络程序信息;
所述流表格式验证模块用于根据提取的网络程序信息,对传递给流表验证器的流表进行格式验证,包括将流表的字段、匹配规则、操作类型与网络程序的要求进行匹配,如果格式正确则传递给后续流程,否则丢弃。
进一步地,所述流表格式验证模块以流表对象、协议类型和表项类型作为参数,通过调用相关接口获取特定协议类型和表项类型所需的字段列表,然后遍历字段列表,检查每个字段是否存在于流表中,如果存在则继续验证,否则返回False,表示格式验证失败;如果所有字段都存在于流表中,则返回True,表示格式验证成功。
进一步地,所述流表调度器包括流表查重模块和流表读写模块;
所述流表查重模块用于查询流表是否已经存在于存储器中,如果新的流表已经存在于存储器中,表示流表重复,将其丢弃;如果新的流表是一个新规则,则传递给流表读写模块进行进一步处理;
所述流表读写模块用于根据流表的类型和属性,将流表写入对应的缓存数据结构中。
进一步地,所述流表读写模块具体的写入操作涉及更新数据结构中的索引、添加新的表项、调整表项的优先级。
进一步地,所述流表存储器包括内存存储模块、文件存储模块和流表更新模块;
所述内存存储模块用于负责构建内存中的流表数据结构,并保存活跃度高的流表规则;
所述文件存储模块用于保存活跃度低的流表规则;
所述流表更新模块用于根据活跃度的更新信息定时执行流表的更新操作,即,根据流表规则的访问模式和活跃度信息,将活跃度高的规则从文件存储模块中更新至内存存储模块中,以保证快速访问和匹配;同时将活跃度低的规则移动到文件存储模块中,以释放内存空间。
进一步地,所述活跃度是指被访问和使用的次数,活跃度高表示被访问和使用的次数多。
一种可编程网元设备的流表管理方法,该方法基于可编程网元设备的流表管理系统来实现,该方法包括:
通过所述流表分类器接收流表后提取流表类型字段,根据字段值判断是否属于Ipv4/Ipv6、Mobile First、Powerlink、Geo-Networking、Named Data Networking、SRv6这七种网络流表类型之一,如果是,则将流表传递给流表验证器;
通过所述流表验证器提取可编程网元设备配置的网络程序中的信息,对流表分类器传递的流表进行格式验证,通过验证后传递给流表调度器,否则丢弃;
通过所述流表调度器将通过验证的流表根据类型调度给流表存储器;
通过所述流表存储器构建内存和硬盘的二级存储数据结构,并根据流表的活跃度进行定期更新。
与现有技术相比,本发明的有益效果如下:
(1)本发明的可编程网元设备的流表管理系统,通过流表分类器、流表验证器,实现识别流表的类型并检测和过滤恶意流表,防止恶意流表进入数据平面设备。
(2)本发明的可编程网元设备的流表管理系统,通过流表调度器、流表存储器,实现构建缓存和硬盘的二级存储数据结构,并根据流表的活跃度进行定时更新。
(3)通过引入这样的流表管理系统,可以根据实时的网络状况和需求,自动调整流表的容量分配、优先级设置或者缓存替换策略,以满足网络的路由需求,并提高可编程网元设备流表管理的效率和可靠性。
附图说明
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1为本发明一实施例提供的流表管理系统的示意图。
图2为本发明一实施例提供的流表分类器的示意图。
图3为本发明一实施例提供的流表验证器的示意图。
图4为本发明一实施例提供的流表调度器的示意图。
图5为本发明一实施例提供的流表存储器的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如图1所示,本发明实施例的一种可编程网元设备的流表管理系统,包括流表分类器、流表验证器、流表调度器、流表存储器。
流表分类器用于识别Ipv4/Ipv6、Mobile First、Powerlink、Geo-Networking、Named Data Networking、SRv6这七种网络流表类型,通过下发流表的协议类型识别通过后传递给流表验证器,否则丢弃。
流表验证器用于提取可编程网元设备配置的网络程序中的信息,对流表分类器传递的流表进行格式验证,通过验证后传递给流表调度器,否则丢弃。
流表调度器用于将通过验证的流表根据类型调度给流表存储器。
流表存储器用于构建内存和硬盘的二级存储数据结构,并定期监测流表的使用情况和性能,删除不再需要的规则,以适应网络的变化和需求。
本实施例中,图2为流表分类器的示意图。流表分类器根据下发的流表的协议类型,识别流表属于哪一种网络流表类型,并将其传递给流表验证器进行验证;定义FlowTableClassifier类是一个流表分类器,用于对流表进行分类和验证;FlowTableClassifier类的构造函数接收一个流表对象作为参数,并将其保存为类的属性,以便后续的处理操作;通过FlowTableClassifier类和流表验证接口函数,可以对流表进行分类、解析和验证操作。该类提供了一个框架,用于实现流表分类和验证的逻辑,并通过访问接口方法与外部系统进行交互。具体的分类、解析和验证逻辑需要根据实际需求和流表类型的定义进行定制和补充;设计一些流表验证接口函数,用于验证不同类型的流表。这些函数仅打印相应的验证消息,可以根据实际需求进行具体的流表验证操作。在示例用法中,首先定义了一个示例的流表对象,其中包含一个类型字段;然后调用流表类型字段提取模块提取类型字段值,如果类型字段不为空,则调用流表类型解析模块解析类型字段,如果解析成功,则调用流表分类处理模块处理流表;在处理流表过程中,将解析后的类型作为参数传递给流表验证接口,以进行相应类型的流表验证。如果类型字段为空或无法解析,则输出相应的错误消息。如果无法识别流表的协议类型,则该流表会被丢弃,涉及多个子模块,包括:
流表类型字段提取模块,用于从下发的流表中提取出流表的类型字段。这个类型字段可以包含诸如Ipv4、Ipv6、Mobile First、Powerlink、Geo-Networking、Named DataNetworking、SRv6等七种网络流表类型的信息。如果提取到的类型字段为空,则表示无法识别流表类型,此时将该流表丢弃。如果提取到的类型字段非空,则将其传递给流表类型解析模块。
流表类型解析模块用于解析流表的类型字段,将其转换为内部表示的流表类型。例如,将字符串类型的流表类型字段解析为相应的枚举值或标识符。如果解析成功,表示流表的类型被正确识别,将该类型传递给流表分类处理模块进行处理;如果解析失败,即无法识别流表类型,则将该流表丢弃。
数据平面设备的流表分类处理模块是网络设备中的一部分,用于对数据包进行分类和处理。这个模块的主要功能是根据预定义的规则将传入的数据包分配到相应的处理路径,以便进行适当的操作或转发。
具体而言,流表分类处理模块实现以下功能:
1、流表规则定义:模块中会包含一个或多个流表,每个流表都由一系列规则组成。这些规则定义了数据包的匹配条件和相应的操作。匹配条件可以包括源/目的IP地址、源/目的端口号、协议类型等,操作可以是转发、丢弃、修改数据包头部等。
2、数据包匹配:当一个数据包进入设备时,流表分类处理模块会依次对每个流表进行匹配。它会检查数据包的头部字段,并与每个流表中的规则进行比较,以确定数据包应该被分配到哪个流表。
3、规则优先级:流表中的规则通常按照优先级进行排列,高优先级的规则会先于低优先级的规则进行匹配。这样可以确保特定的规则能够优先处理相关的数据包。
4、数据包操作:当数据包与流表中的某个规则匹配成功后,流表分类处理模块会执行与该规则关联的操作。这可能包括修改数据包的头部信息(如更改目的IP地址或端口号)、更新数据包的元数据、记录日志等。
5、动态更新:流表分类处理模块通常支持动态更新,可以根据网络管理员的配置或控制器的指示实时修改流表规则。这样可以根据网络流量的变化和管理策略的调整来调整数据包的处理方式。
总的来说,数据平面设备的流表分类处理模块通过匹配数据包的特征并执行相应的操作,实现了对网络流量的灵活控制和管理。它是网络设备中重要的组成部分,可以用于实现路由、防火墙、负载均衡等功能,提高网络性能和安全性。
本实施例中,图3为流表验证器的示意图。流表验证器负责对流表进行格式验证,以确保流表与网络程序的要求相符。它通过提取网络程序的信息,包括网络协议类型和逻辑表匹配字段的表项类型等,来比对流表的格式是否正确。只有通过格式验证的流表才会继续进行后续的流表调度和存储等操作,否则将被丢弃。流表验证器对流表分类器传递过来的流表进行验证,以确保流表的格式和配置符合预期的要求。流表验证器涉及以下子模块,包括:
网络程序提取模块用于提取配置在可编程网元设备中的网络程序信息。它可以获取网络程序的各种属性,例如网络协议类型、逻辑表匹配字段的表项类型等。这些信息是流表验证的基础,以便后续进行格式验证和逻辑匹配;网络程序提取模块接收一个设备配置对象作为参数,通过调用相关接口,获取协议类型和表项类型的值,然后将这两个值作为元组返回。
流表格式验证模块用于根据提取的网络程序信息,对传递给流表验证器的流表进行格式验证,包括将流表的字段、匹配规则、操作类型与网络程序的要求进行匹配,流表的格式与网络程序中定义的要求一致,表示验证通过,将其传递给后续流程进行处理。如果流表的格式不符合要求,则将其丢弃。流表格式验证模块以流表对象、协议类型和表项类型作为参数,通过调用相关接口获取特定协议类型和表项类型所需的字段列表,然后遍历字段列表,检查每个字段是否存在于流表中,如果存在则继续验证,否则返回False,表示格式验证失败;如果所有字段都存在于流表中,则返回True,表示格式验证成功。
本实施例中,图4为流表调度器的示意图。流表调度器的任务是根据流表的类型将流表调度到适当的存储位置。它通过流表查重模块来避免存储重复的流表规则,只将新的、非重复的流表传递给流表读写模块。流表读写模块负责将流表写入合适的缓存数据结构中,确保流表能够被高效地访问和匹配。流表调度器根据流表的类型将流表调度到相应的存储位置,涉及多个子模块,包括:
流表查重模块,用于查询流表是否已经存在于存储器中。它会比对新到达的流表与已存在的流表进行比对,以避免重复存储相同的流表规则。如果新的流表已经存在于存储器中,表示流表重复,将其丢弃。如果新的流表是一个新规则,则传递给流表读写模块进行进一步处理。流表查重模块接受一个流表对象和一个现有流表列表作为参数。它通过判断流表对象是否在现有流表列表中,如果存在则返回True表示存在重复流表,否则返回False表示没有重复。
流表读写模块,用于根据流表的类型和属性,将流表写入对应的缓存数据结构中。它根据流表的类型选择合适的数据结构,并将流表规则写入其中。具体的写入操作可能涉及更新数据结构中的索引、添加新的表项、调整表项的优先级等。通过流表读写模块的处理,流表被成功存储到指定的数据结构中,以供后续的流表匹配和数据包转发;流表读写模块接受一个流表对象和一个缓存数据结构cache作为参数。根据流表的类型字段,函数将流表对象写入相应类型的缓存数据结构中。在示例中,如果流表类型为'type1',则将流表对象追加到cache['type1']列表中;如果流表类型为'type2',则将流表对象追加到cache['type2']列表中。
本实施例中,图5为流表存储器的示意图。流表存储器负责管理流表规则的存储和更新。它通过内存存储模块和文件存储模块来区分存储活跃度高和低的规则,以提高访问效率和节省内存空间。流表更新模块根据规则的活跃度信息定时进行规则的更新操作,保证内存中存储的规则是最活跃和常用的规则。流表存储器用于存储和管理流表规则,涉及多个子模块,包括:
内存存储模块用于负责构建内存中的流表数据结构,并保存活跃度高的流表规则。内存存储模块通常使用高速缓存等快速访问的数据结构,以便快速匹配和处理流表规则。活跃度高的流表规则是指经常被访问和使用的规则,因此将其存储在内存中,以提高访问效率;内存存储模块初始化了一个空的flow_table_cache字典作为内存存储的缓存;内存存储模块接受一个流表对象flow_table作为参数,并使用流表的id作为键,将流表对象存储在flow_table_cache字典中;内存存储模块接受一个流表id作为参数,并返回flow_table_cache字典中对应的流表对象,如果流表不存在,则返回None。
文件存储模块用于保存活跃度低的流表规则。活跃度低的规则是指不经常被访问和使用的规则,可以将其存储在文件中以释放内存空间。文件存储模块将流表规则以某种格式存储在磁盘或其他非易失性存储介质中,以便需要时可以从文件中读取并加载到内存中;文件存储模块接受一个文件路径file_path作为参数,并将其保存在实例变量file_path中;文件存储模块接受一个流表对象flow_table作为参数;文件存储模块打开文件,将流表对象转换为字符串并追加到文件中。
流表更新模块,用于根据活跃度的更新信息定时执行流表的更新操作。根据流表规则的访问模式和活跃度信息,流表更新模块可以将活跃度高的规则从文件存储模块中更新至内存存储模块中,以保证快速访问和匹配。同时,活跃度低的规则可以被移动到文件存储模块中,以释放内存空间。流表更新模块根据系统的策略和需求进行定期或动态的更新操作,以适应网络的变化和需求。流表更新模块接受一个内存存储实例memory_storage和一个文件存储实例file_storage作为参数,并将它们保存在实例变量中;流表更新模块接受一个更新信息字典update_info作为参数,遍历更新信息字典中的每个流表,通过流表id从内存存储中获取对应的流表对象;如果流表对象存在,流表更新模块则根据活跃度级别将其存储到内存存储或文件存储中。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。

Claims (5)

1.一种可编程网元设备的流表管理系统,其特征在于,该系统包括流表分类器、流表验证器、流表调度器、流表存储器;
所述流表分类器用于识别Ipv4/Ipv6、Mobile First、Powerlink、Geo-Networking、Named Data Networking、SRv6这七种网络流表类型,通过下发流表的协议类型识别通过后传递给流表验证器,否则丢弃;
所述流表验证器用于提取可编程网元设备配置的网络程序中的信息,对流表分类器传递的流表进行格式验证,通过验证后传递给流表调度器,否则丢弃;
所述流表调度器用于将通过验证的流表根据类型调度给流表存储器;所述流表调度器包括流表查重模块和流表读写模块;所述流表查重模块用于查询流表是否已经存在于存储器中,如果新的流表已经存在于存储器中,表示流表重复,将其丢弃;如果新的流表是一个新规则,则传递给流表读写模块进行进一步处理;所述流表读写模块用于根据流表的类型和属性,将流表写入对应的缓存数据结构中;所述流表读写模块具体的写入操作涉及更新数据结构中的索引、添加新的表项、调整表项的优先级;
所述流表存储器用于构建内存和硬盘的二级存储数据结构,并定期监测流表的使用情况和性能,删除不再需要的规则,以适应网络的变化和需求;所述流表存储器包括内存存储模块、文件存储模块和流表更新模块;所述内存存储模块用于负责构建内存中的流表数据结构,并保存活跃度高的流表规则;所述文件存储模块用于保存活跃度低的流表规则;所述流表更新模块用于根据活跃度的更新信息定时执行流表的更新操作,即,根据流表规则的访问模式和活跃度信息,将活跃度高的规则从文件存储模块中更新至内存存储模块中,以保证快速访问和匹配;同时将活跃度低的规则移动到文件存储模块中,以释放内存空间;所述活跃度是指被访问和使用的次数,活跃度高表示被访问和使用的次数多;
所述流表分类器包括流表类型字段提取模块、流表类型解析模块、流表分类处理模块;
所述流表类型字段提取模块用于从下发的流表中提取出流表的类型字段,如果提取到的类型字段为空,则表示无法识别流表类型,此时将流表丢弃;如果提取到的类型字段非空,则将其传递给流表类型解析模块;
所述流表类型解析模块用于解析流表的类型字段,将其转换为内部表示的流表类型,如果解析成功,表示流表的类型被正确识别,将该类型传递给流表分类处理模块进行处理;如果解析失败,即无法识别流表类型,则将该流表丢弃;
所述流表分类处理模块用于根据预定义的规则将传入的数据包分配到相应的处理路径,以便进行适当的操作或转发。
2.根据权利要求1所述的可编程网元设备的流表管理系统,其特征在于,所述流表类型解析模块在解析流表的类型字段时,将其解析为相应的枚举值或标识符。
3.根据权利要求1所述的可编程网元设备的流表管理系统,其特征在于,所述流表验证器包括网络程序提取模块和流表格式验证模块;
所述网络程序提取模块用于提取配置在可编程网元设备中的网络程序信息;
所述流表格式验证模块用于根据提取的网络程序信息,对传递给流表验证器的流表进行格式验证,包括将流表的字段、匹配规则、操作类型与网络程序的要求进行匹配,如果格式正确则传递给后续流程,否则丢弃。
4.根据权利要求3所述的可编程网元设备的流表管理系统,其特征在于,所述流表格式验证模块以流表对象、协议类型和表项类型作为参数,通过调用相关接口获取特定协议类型和表项类型所需的字段列表,然后遍历字段列表,检查每个字段是否存在于流表中,如果存在则继续验证,否则返回False,表示格式验证失败;如果所有字段都存在于流表中,则返回True,表示格式验证成功。
5.一种可编程网元设备的流表管理方法,其特征在于,该方法基于权利要求1~4中任意一项所述的可编程网元设备的流表管理系统来实现,该方法包括:
通过所述流表分类器接收流表后提取流表类型字段,根据字段值判断是否属于Ipv4/Ipv6、Mobile First、Powerlink、Geo-Networking、Named Data Networking、SRv6这七种网络流表类型之一,如果是,则将流表传递给流表验证器;
通过所述流表验证器提取可编程网元设备配置的网络程序中的信息,对流表分类器传递的流表进行格式验证,通过验证后传递给流表调度器,否则丢弃;
通过所述流表调度器将通过验证的流表根据类型调度给流表存储器;
通过所述流表存储器构建内存和硬盘的二级存储数据结构,并根据流表的活跃度进行定期更新。
CN202310948487.5A 2023-07-31 2023-07-31 一种可编程网元设备的流表管理系统及方法 Active CN116684358B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310948487.5A CN116684358B (zh) 2023-07-31 2023-07-31 一种可编程网元设备的流表管理系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310948487.5A CN116684358B (zh) 2023-07-31 2023-07-31 一种可编程网元设备的流表管理系统及方法

Publications (2)

Publication Number Publication Date
CN116684358A CN116684358A (zh) 2023-09-01
CN116684358B true CN116684358B (zh) 2023-12-12

Family

ID=87785833

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310948487.5A Active CN116684358B (zh) 2023-07-31 2023-07-31 一种可编程网元设备的流表管理系统及方法

Country Status (1)

Country Link
CN (1) CN116684358B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116980279B (zh) * 2023-09-25 2023-12-12 之江实验室 一种可编程网元设备的故障诊断系统及故障诊断方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103181129A (zh) * 2011-10-25 2013-06-26 华为技术有限公司 数据报文处理方法和系统、报文转发设备
CN104348757A (zh) * 2013-07-31 2015-02-11 华为技术有限公司 一种流表交互方法、交换机及系统
CN104348716A (zh) * 2013-07-23 2015-02-11 杭州华三通信技术有限公司 一种报文处理方法及设备
WO2016082169A1 (zh) * 2014-11-28 2016-06-02 华为技术有限公司 内存访问方法、交换机及多处理器系统
CN113746893A (zh) * 2021-07-16 2021-12-03 苏州浪潮智能科技有限公司 一种基于fpga的智能网卡数据转发方法、系统及终端
CN114885047A (zh) * 2022-07-12 2022-08-09 之江实验室 一种可编程网络的协议解析方法、系统和可读存储介质
CN115208810A (zh) * 2021-04-12 2022-10-18 益思芯科技(上海)有限公司 一种转发流表加速方法及装置、电子设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11169932B2 (en) * 2019-05-17 2021-11-09 Google Llc Flow table aging optimized for dram access

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103181129A (zh) * 2011-10-25 2013-06-26 华为技术有限公司 数据报文处理方法和系统、报文转发设备
CN104348716A (zh) * 2013-07-23 2015-02-11 杭州华三通信技术有限公司 一种报文处理方法及设备
CN104348757A (zh) * 2013-07-31 2015-02-11 华为技术有限公司 一种流表交互方法、交换机及系统
WO2016082169A1 (zh) * 2014-11-28 2016-06-02 华为技术有限公司 内存访问方法、交换机及多处理器系统
CN115208810A (zh) * 2021-04-12 2022-10-18 益思芯科技(上海)有限公司 一种转发流表加速方法及装置、电子设备和存储介质
CN113746893A (zh) * 2021-07-16 2021-12-03 苏州浪潮智能科技有限公司 一种基于fpga的智能网卡数据转发方法、系统及终端
CN114885047A (zh) * 2022-07-12 2022-08-09 之江实验室 一种可编程网络的协议解析方法、系统和可读存储介质

Also Published As

Publication number Publication date
CN116684358A (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
CA2635969C (en) Systems and methods for improved network based content inspection
US7505463B2 (en) Rule set conflict resolution
US10305776B2 (en) Network verification
US7512071B2 (en) Distributed flow enforcement
US7760730B2 (en) Rule set verification
CN116684358B (zh) 一种可编程网元设备的流表管理系统及方法
EP2868045B1 (en) A method of and network server for detecting data patterns in an input data stream
US7840696B2 (en) Apparatus and method for classifier identification
US9356844B2 (en) Efficient application recognition in network traffic
US8352391B1 (en) Fast update filter
CN111786959B (zh) 安全防护方法、waf系统、电子设备及存储介质
KR20010068051A (ko) 패킷 차단방식 방화벽 시스템에서의 고속 정책 판별 방법
US8543528B2 (en) Exploitation of transition rule sharing based on short state tags to improve the storage efficiency
US8902731B2 (en) Method, network card, and communication system for binding physical network ports
US20060221824A1 (en) Storage system and data processing method
CN109564502B (zh) 应用于存储设备中的访问请求的处理方法和装置
CN110912826A (zh) 利用acl扩充ipfix表项的方法及装置
CN104067558A (zh) 具有控制模块和网络访问模块的网络访问装置
CN113497797A (zh) 一种icmp隧道传输数据的异常检测方法及装置
CN116360954B (zh) 基于云边协同技术的工业物联网管控方法和管控系统
EP4357931A1 (en) Shard adjustment method and apparatus for time series database, device, and readable storage medium
CN112003813A (zh) 一种工业控制系统威胁态势感知方法
CN114401235B (zh) 一种队列管理中重载处理方法、系统、介质、设备及应用
US8499026B2 (en) Distributed packet processing system for high-speed networks and distributed packet processing method using thereof
CN117520256A (zh) 可编程消息检查引擎

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant