CN112685625B - 一种实现浮动关键字匹配的深度可编程转发系统、方法及装置 - Google Patents

一种实现浮动关键字匹配的深度可编程转发系统、方法及装置 Download PDF

Info

Publication number
CN112685625B
CN112685625B CN202011618512.6A CN202011618512A CN112685625B CN 112685625 B CN112685625 B CN 112685625B CN 202011618512 A CN202011618512 A CN 202011618512A CN 112685625 B CN112685625 B CN 112685625B
Authority
CN
China
Prior art keywords
programmable
keyword matching
keyword
matching table
pipeline configuration
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
CN202011618512.6A
Other languages
English (en)
Other versions
CN112685625A (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.)
Information Engineering University of the Chinese People's Liberation Army Cyberspace Force
Original Assignee
Information Engineering University of PLA Strategic Support Force
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 Information Engineering University of PLA Strategic Support Force filed Critical Information Engineering University of PLA Strategic Support Force
Priority to CN202011618512.6A priority Critical patent/CN112685625B/zh
Publication of CN112685625A publication Critical patent/CN112685625A/zh
Application granted granted Critical
Publication of CN112685625B publication Critical patent/CN112685625B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于网络可编程转发技术领域,公开了一种实现浮动关键字匹配的深度可编程转发系统,该系统包括:关键字编码器、数据平面代理、可编程流水线配置和扩展库文件。本发明实现浮动关键字匹配的可编程流水线配置是完全静态的,仅在网络初始化阶段编译一次并配置在可编程交换机内部,不同的用户输入关键字通过运行在控制器的关键字编码器生成动态的流表,借助可编程网络硬件的灵活性和高性能完成关键信息的搜索和定位业务,加速端到端数据检索应用的处理效率。

Description

一种实现浮动关键字匹配的深度可编程转发系统、方法及 装置
技术领域
本发明属于网络可编程转发技术领域,涉及一种实现浮动关键字匹配的深度可编程转发系统、方法及装置。
背景技术
字符串搜索是计算机上最常见和最重要的功能之一。据估计,世界上80%的数据是非结构化的,这意味着使用固定的数据模型很难对其进行查询。相反,用户必须搜索大量的日志数据、JSON文件、电子邮件、web页面和其他文档,以找到相关的匹配数据。
然而,越来越多的数据存储在无法提供良好搜索性能的设备上。特别是在火热的云数据中心内部,云厂商为了提高物理资源的利用率、降低运维成本,纷纷选择分解式的网络架构——海量数据保存在大规模的存储集群中。集群中的存储设备普遍具有CPU性能较弱/配备的内存有限等特点,执行搜索任务需要承担从磁盘上获取数据的总线成本,大大限制了的数据搜索应用的效率。
发明内容
本发明的目的在于提供一种实现浮动关键字匹配的深度可编程转发系统、方法及装置,通过在网络可编程设备上开发集成面向全载荷的浮动关键字匹配能力,网元设备在转发流量的过程中支持对数据包内容进行扫描搜索,使能深度包检测业务向网络转发层卸载,加速端到端字符串搜索应用的处理效率,达到Tbps级的网络吞吐量。
为实现上述目的,本发明采用以下技术方案:
本发明提供一种实现浮动关键字匹配的深度可编程转发系统,所述系统包括:关键字编码器、数据平面代理、可编程流水线配置和扩展库文件,其中,
所述关键字编码器,用于读取用户输入关键字的字符串并整合编码,生成关键字匹配表项,通过南向接口将关键字匹配表项下发至可编程交换机;
所述数据平面代理,用于对关键字匹配表项进行验证,并将通过验证的关键字匹配表项安装至所述可编程流水线配置,同时将定位到关键字表项中字符串的数据包报文进行Packet_in消息封装后上报控制器;
所述可编程流水线配置,用于依据关键字匹配表项对用户数据包载荷进行全域搜索,并将字符串搜索结果上报数据平面代理;
所述扩展库文件,用于为所述可编程流水线配置提供数据包处理逻辑,且调用Packet_in消息上报的接口。
优选地,所述关键字编码器以字节为单位工作。
优选地,所述关键字编码器内置面向可编程流水线配置的字符串搜索算法,所述字符串搜索算法根据用户输入关键字的字符串生成基于确定有限状态自动机数据结构的关键字匹配表项。
优选地,所述可编程流水线配置构建在基于协议无关交换机架构的网络可编程芯片之上。
本发明还提供一种基于上述一种实现浮动关键字匹配的深度可编程转发系统的深度可编程转发方法,包括以下步骤:
步骤1:将基于扩展库文件开发的可编程流水线配置加载至可编程交换机中;
步骤2:控制器接收用户输入的关键字;
步骤3:利用关键字编码器读取用户输入关键字的字符传并整合编码,生成关键字匹配表项,并通过南向接口将关键字匹配表项下发至可编程交换机;
步骤4:利用数据平面代理对关键字匹配表项进行验证,将通过验证的关键字匹配表项安装至可编程流水线配置;
步骤5:利用可编程流水线配置依据关键字匹配表项对用户数据包载荷进行全域搜索,并将字符串搜索结果上报数据平面代理;
步骤6:利用数据平面代理构建关键字匹配结果信息报文,将定位到关键字匹配表项中字符串的数据包报文进行Packet_in消息封装后上报控制器;
步骤7:分析Packet_in消息中的字符串偏移情况,将分析报告反馈给用户。
优选地,所述步骤5具体包括:
判断用户数据包中是否存在与关键字匹配表项相匹配的字符串,若是,则将含有该字符串的数据包上报数据平面代理,若否,将用户数据包所属的流量定向转发或直接过滤。
本发明还提供一种基于上述的一种实现浮动关键字匹配的深度可编程转发方法的深度可编程转发装置,包括加载模块、接收模块、编译模块、验证模块、搜索模块、监控模块和分析模块,其中,
加载模块,用于将基于扩展库文件开发的可编程流水线配置加载至可编程交换机中;
接收模块,用于利用控制器接收用户输入的关键字;
编译模块,用于利用关键字编码器读取用户输入关键字的字符传并整合编码,生成关键字匹配表项,并通过南向接口将关键字匹配表项下发至可编程交换机;
验证模块,用于利用数据平面代理对关键字匹配表项进行验证,将通过验证的关键字匹配表项安装至可编程流水线配置;
搜索模块,用于利用可编程流水线配置依据关键字匹配表项对用户数据包载荷进行全域搜索,并将字符串搜索结果上报数据平面代理;
监控模块,用于利用数据平面代理构建关键字匹配结果信息报文,对将定位到关键字匹配表项中字符串的数据包报文进行Packet_in消息封装后上报控制器;
分析模块,用于分析Packet_in消息中的字符串偏移情况,将分析报告反馈给用户。
相比现有技术,本发明的有益效果在于:
本发明实现浮动关键字匹配的可编程流水线配置是完全静态的,仅在网络初始化阶段编译一次并配置在可编程交换机内部,不同的用户输入关键字通过运行在控制器的关键字编码器生成动态的流表,借助可编程网络硬件的灵活性和高性能完成关键信息的搜索和定位业务,加速端到端数据检索应用的处理效率。同时,在信息业务爆发式增长的互联网中,实现浮动关键字匹配的流量转发逻辑,能够帮助各大运营商、服务商提供更加灵活的信息查询业务。
附图说明
图1为本发明一种实现浮动关键字匹配的深度可编程转发系统框图。
图2为本发明一种实现浮动关键字匹配的深度可编程转发方法的流程图。
图3为本发明一种实现浮动关键字匹配的深度可编程转发装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
实施例一
如今,世界上80%的数据是非结构化的,这意味着使用固定的数据模型很难对其进行查询。相反,用户必须搜索大量的日志数据、JSON文件、电子邮件、web页面和其他文档,以找到相关的匹配数据。然而,越来越多的数据存储在无法提供良好搜索性能的设备上。特别是在火热的云数据中心内部,云厂商为了提高物理资源的利用率、降低运维成本,纷纷选择分解式的网络架构——海量数据保存在大规模的存储集群中。集群中的存储设备普遍具有CPU性能较弱,配备的内存有限等特点,执行搜索任务需要承担从磁盘上获取数据的总线成本,大大限制了的数据搜索应用的效率。因此,本发明公开了一种实现浮动关键字匹配的深度可编程转发系统,应用于在网络流量转发的过程中对数据包载荷进行关键字搜索和定位过程中。
如图1所示,本发明一种实现浮动关键字匹配的深度可编程转发系统包括:关键字编码器101、数据平面代理102、可编程流水线配置103和扩展库文件104,其中,
关键字编码器101,用于读取用户输入关键字的字符串并整合编码,生成关键字匹配表项,通过南向接口将关键字匹配表项下发至可编程交换机;
数据平面代理102,用于对关键字匹配表项进行验证,并将通过验证的关键字匹配表项安装至可编程流水线配置103,同时将定位到关键字表项中字符串的数据包报文进行Packet_in消息封装后上报控制器;
可编程流水线配置103,用于依据关键字匹配表项对用户数据包载荷进行全域搜索,并将字符串搜索结果上报数据平面代理;
扩展库文件104,用于为可编程流水线配置103提供数据包处理逻辑,且调用Packet_in消息上报的接口。
如图1所示,关键字编码器101作为应用进程运行在控制器内部,关键字编码器101内置面向可编程流水线配置的字符串搜索算法,字符串搜索算法根据用户输入关键字的字符串生成基于确定有限状态自动机(DFA)数据结构的关键字匹配表项。关键字编码器101以字节为单位进行工作,对用户输入关键字的编码方式和模式长度不作任何前提假设。在一个实施例中,字符串搜索算法可以是AC算法(Aho-CorasickAlgorithm ,AC),该算法复杂度为O(n),与模式串的数量和长度无关,逐字节扫描关键字即完成字符串搜索。
数据平面代理102作为通信进程运行在可编程交换机的操作系统中,占用相关端口号与控制器建立远程连接,对来自控制器的数据进行验证,验证包括两方面:安全验证(是否是信任控制器下发的流表)和格式验证(下发的流表是否适配本机可编程流水线配置103上的转发表)。通过验证后,安装至可编程流水线配置103,同时对字符串搜索结果进行再封装后上报控制器。
可编程流水线配置103构建在基于协议无关交换机架构(PISA架构)的网络可编程芯片之上,由一系列描述状态机转换逻辑的匹配动作表构成,在网络初始化阶段经过一次静态编译后载入可编程交换机,支持对任何基于DFA数据结构的关键字匹配表项进行全域搜索。
扩展库文件104,用于向上提供完备的编程调用接口,屏蔽底层软硬件实现细节,为网络管理员提供友好的流水线开发框架,以标准的范式和丰富的语法实现数据包处理逻辑的灵活定义。
实施例二
如图2所示,本发明一种实现浮动关键字匹配的深度可编程转发方法,包括以下步骤:
步骤S201:将基于扩展库文件开发的可编程流水线配置加载至可编程交换机中,以构建支持浮动关键字匹配的数据包并行处理流水线;
步骤S202:控制器接收用户输入的关键字;
步骤S203:利用关键字编码器读取用户输入关键字的字符传并整合编码,生成关键字匹配表项,并通过南向接口将关键字匹配表项下发至可编程交换机;
步骤S204:利用数据平面代理对关键字匹配表项进行验证,将通过验证的关键字匹配表项安装至可编程流水线配置;
步骤S205:利用可编程流水线配置依据关键字匹配表项对用户数据包载荷进行全域搜索,并将字符串搜索结果上报数据平面代理;
步骤S206:利用数据平面代理构建关键字匹配结果信息报文,将定位到关键字匹配表项中字符串的数据包报文进行Packet_in消息封装后上报控制器;
步骤S207:分析Packet_in消息中的字符串偏移情况,将分析报告反馈给用户。
在一个实施例中可编程流水线配置可按需扩展匹配数据包的处理方案,步骤205具体包括:
判断用户数据包中是否存在与关键字匹配表项相匹配的字符串,若是,则将含有该字符串的数据包上报数据平面代理,若否,将用户数据包所属的流量定向转发或直接过滤。
值得说明的是,本发明关键字匹配表项使用定制化的二进制串行格式表示,支持一次性安装多条流表至可编程流水线配置,减少内存开销和安装时间。
实施例三
如图3所示,本发明一种实现浮动关键字匹配的深度可编程转发装置,包括:加载模块301、接收模块302、编译模块303、验证模块304、搜索模块305、监控模块306和分析模块307,其中,
加载模块301,用于将基于扩展库文件开发的可编程流水线配置加载至可编程交换机中;
接收模块302,用于利用控制器接收用户输入的关键字;
编译模块303,用于利用关键字编码器读取用户输入关键字的字符传并整合编码,生成关键字匹配表项,并通过南向接口将关键字匹配表项下发至可编程交换机;
验证模块304,用于利用数据平面代理对关键字匹配表项进行验证,将通过验证的关键字匹配表项安装至可编程流水线配置;
搜索模块305,用于利用可编程流水线配置依据关键字匹配表项对用户数据包载荷进行全域搜索,并将字符串搜索结果上报数据平面代理;
监控模块306,用于利用数据平面代理构建关键字匹配结果信息报文,对将定位到关键字匹配表项中字符串的数据包报文进行Packet_in消息封装后上报控制器;
分析模块307,用于分析Packet_in消息中的字符串偏移情况,将分析报告反馈给用户。
以上所述之实施例,只是本发明的较佳实施例而已,仅仅用以解释本发明,并非限制本发明实施范围,对于本技术领域的技术人员来说,当然可根据本说明书中所公开的技术内容,通过置换或改变的方式轻易做出其它的实施方式,故凡在本发明的原理上所作的变化和改进等,均应包括于本发明申请专利范围内。

Claims (6)

1.一种实现浮动关键字匹配的深度可编程转发系统,其特征在于,所述系统包括:关键字编码器、数据平面代理、可编程流水线配置和扩展库文件,其中,
所述关键字编码器,用于读取用户输入关键字的字符串并整合编码,生成关键字匹配表项,通过南向接口将关键字匹配表项下发至可编程交换机;所述关键字编码器内置面向可编程流水线配置的字符串搜索算法,所述字符串搜索算法根据用户输入关键字的字符串生成基于确定有限状态自动机数据结构的关键字匹配表项;
所述数据平面代理,用于对关键字匹配表项进行验证,并将通过验证的关键字匹配表项安装至所述可编程流水线配置,同时将定位到关键字表项中字符串的数据包报文进行Packet_in消息封装后上报控制器;
所述可编程流水线配置,用于依据关键字匹配表项对用户数据包载荷进行全域搜索,并将字符串搜索结果上报数据平面代理;
所述扩展库文件,用于为所述可编程流水线配置提供数据包处理逻辑,且调用Packet_in消息上报的接口。
2.根据权利要求1所述的一种实现浮动关键字匹配的深度可编程转发系统,其特征在于,所述关键字编码器以字节为单位工作。
3.根据权利要求1所述的一种实现浮动关键字匹配的深度可编程转发系统,其特征在于,所述可编程流水线配置构建在基于协议无关交换机架构的网络可编程芯片之上。
4.基于权利要求1~3任一项所述的一种实现浮动关键字匹配的深度可编程转发系统的深度可编程转发方法,其特征在于,包括以下步骤:
步骤1:将基于扩展库文件开发的可编程流水线配置加载至可编程交换机中;
步骤2:控制器接收用户输入的关键字;
步骤3:利用关键字编码器读取用户输入关键字的字符传并整合编码,生成关键字匹配表项,并通过南向接口将关键字匹配表项下发至可编程交换机;
步骤4:利用数据平面代理对关键字匹配表项进行验证,将通过验证的关键字匹配表项安装至可编程流水线配置;
步骤5:利用可编程流水线配置依据关键字匹配表项对用户数据包载荷进行全域搜索,并将字符串搜索结果上报数据平面代理;
步骤6:利用数据平面代理构建关键字匹配结果信息报文,将定位到关键字匹配表项中字符串的数据包报文进行Packet_in消息封装后上报控制器;
步骤7:分析Packet_in消息中的字符串偏移情况,将分析报告反馈给用户。
5.根据权利要求4所述的深度可编程转发方法,其特征在于,所述步骤5具体包括:
判断用户数据包中是否存在与关键字匹配表项相匹配的字符串,若是,则将含有该字符串的数据包上报数据平面代理,若否,将用户数据包所属的流量定向转发或直接过滤。
6.执行 权利要求4~5任一项所述的深度可编程转发方法的深度可编程转发装置,其特征在于,包括加载模块、接收模块、编译模块、验证模块、搜索模块、监控模块和分析模块,其中,
加载模块,用于将基于扩展库文件开发的可编程流水线配置加载至可编程交换机中;
接收模块,用于利用控制器接收用户输入的关键字;
编译模块,用于利用关键字编码器读取用户输入关键字的字符传并整合编码,生成关键字匹配表项,并通过南向接口将关键字匹配表项下发至可编程交换机;
验证模块,用于利用数据平面代理对关键字匹配表项进行验证,将通过验证的关键字匹配表项安装至可编程流水线配置;
搜索模块,用于利用可编程流水线配置依据关键字匹配表项对用户数据包载荷进行全域搜索,并将字符串搜索结果上报数据平面代理;
监控模块,用于利用数据平面代理构建关键字匹配结果信息报文,对将定位到关键字匹配表项中字符串的数据包报文进行Packet_in消息封装后上报控制器;
分析模块,用于分析Packet_in消息中的字符串偏移情况,将分析报告反馈给用户。
CN202011618512.6A 2020-12-31 2020-12-31 一种实现浮动关键字匹配的深度可编程转发系统、方法及装置 Active CN112685625B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011618512.6A CN112685625B (zh) 2020-12-31 2020-12-31 一种实现浮动关键字匹配的深度可编程转发系统、方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011618512.6A CN112685625B (zh) 2020-12-31 2020-12-31 一种实现浮动关键字匹配的深度可编程转发系统、方法及装置

Publications (2)

Publication Number Publication Date
CN112685625A CN112685625A (zh) 2021-04-20
CN112685625B true CN112685625B (zh) 2022-10-28

Family

ID=75453641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011618512.6A Active CN112685625B (zh) 2020-12-31 2020-12-31 一种实现浮动关键字匹配的深度可编程转发系统、方法及装置

Country Status (1)

Country Link
CN (1) CN112685625B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116208497B (zh) * 2023-05-05 2023-07-21 广东省新一代通信与网络创新研究院 一种可编程网络系统、方法、交换机及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787081A (en) * 1996-05-13 1998-07-28 Lockheed Martin Corporation Allocation of node transmissions in switching networks used with scalable coherent interfaces
US7949683B2 (en) * 2007-11-27 2011-05-24 Cavium Networks, Inc. Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph
CN101639861B (zh) * 2009-09-02 2012-06-27 福建星网锐捷网络有限公司 一种基于有限状态自动机的字符串匹配方法及装置
CN103347013B (zh) * 2013-06-21 2016-02-10 北京邮电大学 一种增强可编程能力的OpenFlow网络系统和方法
CN103957131B (zh) * 2014-04-11 2017-04-12 烽火通信科技股份有限公司 一种基于有限自动机的深度报文检测方法
CN110601983A (zh) * 2019-10-15 2019-12-20 南京信息职业技术学院 一种协议无感知源路由转发方法及系统

Also Published As

Publication number Publication date
CN112685625A (zh) 2021-04-20

Similar Documents

Publication Publication Date Title
US11120018B2 (en) Spark query method and system supporting trusted computing
CN115629829A (zh) 用于实时数据流编程的高效状态机
US12032933B2 (en) Compiling system and compiling method for programmable network element
CN108090360B (zh) 一种基于行为特征的安卓恶意应用分类方法及系统
CN107506256B (zh) 一种崩溃数据监控的方法和装置
CN113315742B (zh) 攻击行为检测方法、装置及攻击检测设备
CN103853650A (zh) 一种模糊测试的测试用例生成方法及装置
CN110688096B (zh) 包含插件的应用程序的构建方法、装置、介质及电子设备
CN111061678B (zh) 业务数据处理方法、装置、计算机设备和存储介质
CN106897072A (zh) 业务工程调用方法、装置及电子设备
US20170097852A1 (en) Methods and systems for representing processing resources
US20170017792A1 (en) Method and device for constructing apk virus signature database and apk virus detection system
CN112685625B (zh) 一种实现浮动关键字匹配的深度可编程转发系统、方法及装置
CN108153745B (zh) 一种应用数据调用方法及应用开发系统
CN109783132B (zh) 一种可适应系统单体化及分布式化的实现方法及装置
CN111324645B (zh) 区块链的数据处理方法及装置
CN113568623B (zh) 一种部署应用的方法、装置和电子设备
CN112199080B (zh) vuejs项目webpack构建方法及设备
CN114969190A (zh) 可扩展的区块链数据导出工具
CN111459793B (zh) 一种全生命周期的软件自动化测试方法和装置
CN111580799A (zh) 领域特定语言脚本拼装方法及系统
Soewito et al. Hybrid pattern matching for trusted intrusion detection
US20240086242A1 (en) Method and non-transitory computer-readable storage medium and apparatus for analyzing algorithms designed for running on network processing unit
CN117435258B (zh) 系统加载方法及装置、存储介质、计算机程序产品和芯片
CN114003317B (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
CP03 Change of name, title or address

Address after: 450000 Science Avenue 62, Zhengzhou High-tech Zone, Henan Province

Patentee after: Information Engineering University of the Chinese People's Liberation Army Cyberspace Force

Country or region after: China

Address before: No. 62 Science Avenue, High tech Zone, Zhengzhou City, Henan Province

Patentee before: Information Engineering University of Strategic Support Force,PLA

Country or region before: China