CN111125493B - 一种基于协议无感知转发的高速数据查询系统及方法 - Google Patents
一种基于协议无感知转发的高速数据查询系统及方法 Download PDFInfo
- Publication number
- CN111125493B CN111125493B CN201911314399.XA CN201911314399A CN111125493B CN 111125493 B CN111125493 B CN 111125493B CN 201911314399 A CN201911314399 A CN 201911314399A CN 111125493 B CN111125493 B CN 111125493B
- Authority
- CN
- China
- Prior art keywords
- data
- query
- module
- data packet
- protocol
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于协议无感知转发的高速数据查询系统及方法,其对应的协议无关转发设备,包括基于DPDK驱动的协议无感知转发模块,协议无感知转发模块作为一个基于DPDK驱动的模块运行在用户态,该协议无感知转发模块包括功能平面子模块、Metadata数据更新功能子模块、Metadata数据查询功能子模块、流表维护功能子模块和路由功能子模块;基于DPDK驱动的协议无感知转发模块利用DPDK开发套件,实现该模块下的子模块对协议无关转发设备的数据包的处理是经过轮询的方式从硬件驱动读取数据包,绕开操作系统内核。本发明具有高速查询数据的优点。
Description
技术领域
本发明涉及一种基于协议无感知转发的高速查询系统及方法,属于软件定义网络技术领域。
背景技术
软件定义网络是将网络的控制与转发分离,提供一种集中式的控制平面,对整个网络进行监控、配置与管理。软件定义网络是对传统网络架构的革新,软件定义网络架构分为应用层、控制层和转发层。转发层对应的物理实体是协议无感知转发设备,控制层对应的物理实体是网络控制器。协议无感知转发设备负责网络数据的高速转发,其转发决策来自于网络控制器。网络控制器通过南向接口对协议无感知转发设备进行集中统一管理。软件定义网络使得转发层具有可编程能力,数据包的解析和转发流程通过编程控制,打破了硬件设备对转发平面的功能限制。
目前的协议转发设备分为两大类,一种是协议感知的转发设备,一种是协议无感知的转发设备。协议感知的转发设备根据已知协议类型,设计好固定的操作逻辑。若进入转发设备的数据包是已知的协议类型,则设备能按照对应的协议类型对数据包字段进行读写访问操作,若是一些未知格式的协议,则无法处理,因此称协议感知的转发设备是协议绑定的。其缺点是不灵活,对于一些新协议,若协议感知的转发设备未及时进行软件更新,则无法识别新协议的数据包。协议无感知技术克服该缺点,通过指定数据包的偏移和长度构成匹配域,利用灵活的匹配域来识别任意协议格式的数据包字段,使得转发设备无需感知报文的协议类型,协议无感知转发设备按照“匹配-动作”模式工作,即对数据包的某些字段与流表项的匹配域相比较,如果匹配一致,则执行流表项的动作,如转发数据包操作、丢弃数据包操作、修改数据包字段操作等。数据包处理逻辑由网络控制器控制,因此协议无感知的转发设备具备更大的灵活性,支持任意的协议格式的数据包。
现有技术需要将携带用户查询指令的查询数据包先进入操作系统的协议栈解封装处理,再进入数据库系统进行查询,然后将查询结果返回协议栈进行应答数据包封装,最后将应答数据包发送客户端。这个技术存在的缺点是数据包处理过程冗长,效率低下。当前互联网对服务时延要求越来越严格,使用现有的数据查询技术,其时延无法适应万物互联时代大规模数据快速查询的场景。
发明内容
本发明技术解决问题:克服现有技术存在的不足,提供一种基于协议无感知转发的高速数据查询系统及方法,利用数据平面协议无感知转发技术实现查询数据包解封装、数据查询、应答数据包封装等,达到高速查询数据的目的。
本发明技术解决方案:
本发明的一种基于协议无感知转发的高速数据查询系统,其对应的协议无关转发设备,包括:所述系统基于DPDK驱动的协议无感知转发模块,协议无感知转发模块作为一个基于DPDK驱动的模块运行在用户态,该协议无感知转发模块包括功能平面子模块、Metadata数据更新功能子模块、Metadata数据查询功能子模块、流表维护功能子模块和路由功能子模块;基于DPDK驱动的协议无感知转发模块利用DPDK开发套件,实现该模块下的子模块对协议无关转发设备的数据包的处理是经过轮询的方式从网卡等硬件设备读取数据包,绕开操作系统内核;所述Metadata是协议无感知转发设备存储且可在流表项之间共享的数据,用户通过协议无感知技术对该区域的数据进行查询、更新操作;其中:
功能平面子模块,接收携带查询指令的数据包,根据所述数据包的功能平面ID的字段值判断该数据包所要触发的功能子模块;所述功能平面ID为指示协议无感知转发设备,该数据包触发的功能平面,除了所述功能平面ID的字段,数据包的字段还包括:表ID、数据ID、操作码和数据内容;表ID指明待查询数据所属的表;数据ID指明待查询数据在表ID所指的表中的索引;操作码指明对数据做的操作;数据内容指存放数据的查询内容;
Metadata数据更新功能子模块,负责对Metadata数据区域进行更新操作;
Metadata数据查询功能子模块,负责对Metadata数据区域进行查询操作;该模块具有支持匹配和修改数据包所有内容的指令,该指令使得查询结果可直接复制到数据包的指定位置,从而完成查询任务;
流表维护功能子模块,负责对协议无关转发设备的流表项进行修改、下发、删除和上报操作;所述流表项是协议无感知转发设备的基本组成,协议无感知转发设备包括若干流表,每个流表包括多个流表项;
路由功能子模块,负责对协议无关转发设备的应答数据包进行封装、转发操作。
本发明的一种基于协议无感知转发的高速数据查询方法,包括以下步骤:
(1)客户端根据功能平面ID、表ID、数据ID、操作码、数据内容的协议格式封装好,作为查询数据包,发送给协议无感知转发设备;
(2)协议无感知转发模块通过DPDK驱动的CPU轮询方式接收客户端发来的查询数据包,协议无感知转发设备具有多个功能平面,不同的数据包,即功能平面子模块所接收到的数据包会触发协议无感知转发设备执行不同的功能,接收到的查询数据包首先进入功能平面子模块进行处理,判断所要执行的功能;
(3)功能平面子模块根据“位置+偏移”即数据包的特定比特位置和偏移长度解封装查询数据包,判断解析到的查询数据包的功能平面ID字段是否等于0x03,0x03是一个16进制的8比特码,是Metadata数据查询功能平面的编码,若是则进入Metadata数据查询功能子模块;
(4)Metadata数据查询功能子模块判断查询数据包的表ID字段和数据ID字段,根据这两个值定位到对应的Metadata表上的记录,这两个值是目的Metadata数据位置信息;
(5)Metadata数据查询功能子模块接着再判断操作码,若操作码是0xff,0xff是一个16进制的8比特码,是查询操作的编码,则表示是查询操作;
(6)Metadata数据查询功能子模块根据步骤(4)和步骤(5)得到的目的Metadata数据位置信息和操作码,获取查询目的Metadata数据位置的数据内容后,通过修改数据包内容指令,将查询结果复制到应答数据包的数据内容字段;
(7)查询完成后,Metadata数据查询功能子模块更改功能平面ID字段的ID值为0x01,0x01是一个16进制的8比特码,是路由功能平面的编码,返回给功能平面子模块,功能平面子模块判断该应答数据包的功能平面ID为0x01,0x01是一个16进制的8比特码,是路由功能平面的编码,将应答数据包交给路由功能子模块,该路由功能子模块将应答数据包返回给客户端。
本发明与现有技术相比的优点在于:
(1)现有的数据包收发技术,采用的是传统的操作系统驱动和内核协议栈收发方式,其特点是必须采用硬中断来做通讯,数据包需要经过硬中断上下文切换,数据在内核态和用户态之间的拷贝等操作,从网卡到业务进程,经过的路径太长,产生大量的CPU时间耗费;而本发明利用DPDK技术进行数据包的收发,DPDK驱动屏蔽了硬件发出中断,在用户态采用主动轮询的方式,从而可以绕开内核在用户态作收发包处理,实现了零拷贝、无系统调用的好处,减少上下文切换带来的消耗。因此本发明在数据包的收发方面具有快速,高效的特点。
(2)现有的数据查询技术,主要是数据库系统或文件系统接收用户指令,然后对数据进行查询操作,从接收指令到完成指令过程需要大量的系统调用,系统资源消耗较大。本发明利用协议无感知技术,通过设计数据包协议格式、增加了支持匹配和修改数据包所有内容的指令,该指令使得查询结果可直接复制到数据包的指定位置,因此协议无感知转发设备可以直接根据接收到的数据包的功能平面ID字段值,然后执行数据查询操作,获取Metadata数据并且修改到数据包的数据内容字段。因此本发明从接收指令到完成指令过程简洁,系统消耗资源少。
(3)Metadata数据存储在内存上,协议无感知模块可直接进行内存访问。相比于存储在本地硬盘,数据访问更快速。
(4)相比现有的数据查询方法,本发明综合采用了DPDK收发技术、数据包驱动的查询技术、Metadata数据存储在内存的方式。三者的优点使得本发明在应对大规模数据查询场景时,效率更高。
附图说明
图1为本发明的协议无感知转发设备功能组成图;
图2为协议无感知转发数据高速查询系统部署图;
图3为查询数据包和应答数据包协议封装格式;
图4为本发明的查询方法实施过程图。
具体实施方式
下面结合附图及实施例对本发明进行详细说明。
术语解释:
数据包:是包交换网络的数据传输基本单位。由头部控制信息和负载数据组成。本发明中包括查询数据包和应答数据包。
协议无感知转发:网络转发设备对网络协议和数据包处理转发流程没有感知,对数据包的读写访问等操作均通过一套通用的网络指令集定义,网络指令集灵活定义数据包的处理逻辑。
协议无感知转发设备:是软件定义网络架构中转发层的组成实体,包括若干流表,每个流表包括多个流表项,每个流表项表达了对数据包处理的规则。
Metadata是协议无感知转发设备存储且可在流表项之间共享的数据,用户可以通过协议无感知技术对该区域的数据进行查询、更新等操作。
如图1所示,本发明中的协议无感知转发设备功能组成如图1所示,协议无感知转发模块作为一个基于DPDK驱动的模块运行在用户态,该模块由功能平面子模块、Metadata数据更新功能子模块、Metadata数据查询功能子模块、流表维护功能子模块、路由功能子模块组成。功能平面子模块,负责根据数据包的“功能平面ID”字段值,判断该数据包所要触发的功能子模块;Metadata数据更新功能子模块,负责对Metadata数据区域进行更新操作;Metadata数据查询功能子模块,负责对Metadata数据区域进行查询操作;流表维护功能子模块,负责对协议无关转发设备的流表项进行修改、下发、删除、上报等操作;路由功能子模块,负责对协议无关转发设备的数据包进行封装、转发操作。所有的模块都利用DPDK技术进行数据包的收发,DPDK驱动屏蔽了硬件发出中断,在用户态采用主动轮询的方式,绕开内核在用户态做收发包处理。
本系统部署图如图2所示,部署方式采用客户端/服务端的模式。一台或多台协议无感知转发设备作为服务端,用户终端通过网络与服务端相连接。
协议无感知转发设备在逻辑上分为多个功能平面,Metadata数据更新功能平面、Metadata数据查询功能平面、流表维护功能平面、路由功能平面。本发明主要使用Metadata数据更新功能平面。本发明利用协议无感知技术,通过设计数据包协议格式,设备直接根据接收到的数据包的字段值执行相应的功能平面。
图4所示的查询方法实施过程如下:
(1)客户端根据图3所示的数据包格式封装好查询数据包,发送给协议无感知转发设备。其中,“功能平面ID”指示设备该数据包触发的功能平面;“表ID”指明待查询数据所属的表;“数据ID”指明待查询数据在表中的索引;“操作码”指明对数据做的操作;“数据内容”存放数据的查询内容;
(2)协议无感知转发模块通过DPDK驱动的CPU轮询方式接收客户端发来的数据包,协议无感知转发设备具有多个功能平面,不同的数据包会触发协议无感知转发设备执行不同的功能,接收到的数据包首先进入功能平面子模块处理,判断所要执行的功能;
(3)功能平面子模块对数据包进行解封装,利用协议无感知转发技术,通过数据包特定比特位置和偏移长度抽取数据包的“功能平面ID”字段,根据该值是否等于0x03,0x03是一个16进制的8比特码,是Metadata数据查询功能平面的编码,若是则进入Metadata数据查询功能子模块;
(4)Metadata数据查询功能子模块判断数据包的“表ID”字段和“数据ID”字段,根据这两个值定位到对应的Metadata表上的记录,这两个值是目标数据位置信息;
(5)Metadata数据查询功能子模块接着判断“操作码”,若操作码是0xff,0xff是一个16进制的8比特码,是查询操作的编码,则表示是查询操作;
(6)Metadata数据查询功能子模块根据步骤(4)和步骤(5)得到的目标数据位置信息和操作码,获取查询结果后,通过“修改数据包内容指令”,将查询结果复制到应答数据包的数据内容字段;
(7)查询完成后,Metadata数据查询功能子模块更改“功能平面ID”字段的ID值为0x01,0x01是一个16进制的8比特码,是路由功能平面的编码,返回给功能平面子模块,功能平面子模块判断该数据包的“功能平面ID”为0x01,0x01是一个16进制的8比特码,是路由功能平面的编码,将应答数据包交给路由功能子模块,该路由功能子模块将应答数据包返回给客户端。
本发明针对查询效率要求较高的一些网络数据查询场景,如移动网络用户信息查询、网络ID和地址解析等,利用数据平面协议无感知转发技术实现查询数据包解封装、数据查询、应答数据包封装等,达到高速查询数据的目的。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
Claims (2)
1.一种基于协议无感知转发的高速数据查询系统,其特征在于,包括:所述系统基于DPDK驱动的协议无感知转发模块,该协议无感知转发模块包括功能平面子模块、Metadata数据更新功能子模块、Metadata数据查询功能子模块、流表维护功能子模块和路由功能子模块;基于DPDK驱动的协议无感知转发模块利用DPDK开发套件,实现该模块下的子模块对协议无关转发设备的数据包的处理是经过轮询的方式从硬件设备读取数据包,绕开操作系统内核;所述Metadata是协议无感知转发设备存储且可在流表项之间共享的数据,用户通过协议无感知技术对该数据进行查询操作;其中:
功能平面子模块,接收携带查询指令的数据包,根据所述数据包的功能平面ID的字段值判断该数据包所要触发的功能子模块;所述功能平面ID为指示协议无感知转发设备,该数据包触发的功能平面,除了所述功能平面ID的字段,数据包的字段还包括:表ID、数据ID、操作码和数据内容;表ID指明待查询数据所属的表;数据ID指明待查询数据在表ID所指的表中的索引;操作码指明对数据做的操作;数据内容指存放数据的查询内容;
Metadata数据更新功能子模块,负责对Metadata数据区域进行更新操作;
Metadata数据查询功能子模块,负责对Metadata数据区域进行查询操作;该模块具有支持匹配和修改数据包所有内容的指令,该指令使得查询结果直接复制到数据包的指定位置,从而完成查询任务;
流表维护功能子模块,负责对协议无关转发设备的流表项进行修改、下发、删除和上报操作;所述流表项是协议无感知转发设备的基本组成,协议无感知转发设备包括若干流表,每个流表包括多个流表项;
路由功能子模块,负责对协议无关转发设备的应答数据包进行封装、转发操作。
2.一种基于协议无感知转发的高速数据查询方法,其特征在于,包括以下步骤:
(1)客户端的查询请求根据功能平面ID、表ID、数据ID、操作码、数据内容的协议格式封装好,作为查询数据包,发送给协议无感知转发设备;
(2)协议无感知转发模块通过DPDK驱动的CPU轮询方式从网卡设备接收客户端发来的查询数据包,协议无感知转发设备具有多个功能平面,不同的数据包,即功能平面子模块所接收到的数据包会触发协议无感知转发设备执行不同的功能,接收到的查询数据包首先进入功能平面子模块进行处理,判断所要执行的功能;
(3)功能平面子模块根据“位置+偏移”解封装查询数据包,判断解析到的查询数据包的功能平面ID字段是否是Metadata数据查询功能平面的编码,若是则进入Metadata数据查询功能子模块;
(4)Metadata数据查询功能子模块判断查询数据包的表ID字段和数据ID字段,根据这两个值定位到对应的Metadata表上的记录,这两个值是目的Metadata数据位置信息;
(5)Metadata数据查询功能子模块接着再判断操作码,若操作码是查询操作的编码,则表示是查询操作;
(6)Metadata数据查询功能子模块根据步骤(4)和步骤(5)得到的目的Metadata数据位置信息和操作码,获取查询目的Metadata数据位置的数据内容后,通过修改数据包内容指令,将查询结果复制到应答数据包的数据内容字段;
(7)查询完成后,Metadata数据查询功能子模块更改功能平面ID字段的ID值为路由功能平面的编码,返回给功能平面子模块,功能平面子模块判断该应答数据包的功能平面ID为路由功能平面的编码,则将应答数据包交给路由功能子模块,该路由功能子模块将应答数据包返回给客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911314399.XA CN111125493B (zh) | 2019-12-19 | 2019-12-19 | 一种基于协议无感知转发的高速数据查询系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911314399.XA CN111125493B (zh) | 2019-12-19 | 2019-12-19 | 一种基于协议无感知转发的高速数据查询系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111125493A CN111125493A (zh) | 2020-05-08 |
CN111125493B true CN111125493B (zh) | 2021-11-26 |
Family
ID=70500145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911314399.XA Active CN111125493B (zh) | 2019-12-19 | 2019-12-19 | 一种基于协议无感知转发的高速数据查询系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111125493B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220383911A1 (en) * | 2021-05-25 | 2022-12-01 | Yangtze Memory Technologies Co., Ltd. | Method and apparatus for power saving in semiconductor devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107276916A (zh) * | 2017-06-22 | 2017-10-20 | 中国科学技术大学 | 基于协议无感知转发技术的交换机流表管理方法 |
US9860154B2 (en) * | 2011-11-07 | 2018-01-02 | Netflow Logic Corporation | Streaming method and system for processing network metadata |
CN107222353B (zh) * | 2017-07-11 | 2019-11-22 | 中国科学技术大学 | 支持协议无关的软件定义网络虚拟化管理平台 |
-
2019
- 2019-12-19 CN CN201911314399.XA patent/CN111125493B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9860154B2 (en) * | 2011-11-07 | 2018-01-02 | Netflow Logic Corporation | Streaming method and system for processing network metadata |
CN107276916A (zh) * | 2017-06-22 | 2017-10-20 | 中国科学技术大学 | 基于协议无感知转发技术的交换机流表管理方法 |
CN107222353B (zh) * | 2017-07-11 | 2019-11-22 | 中国科学技术大学 | 支持协议无关的软件定义网络虚拟化管理平台 |
Non-Patent Citations (2)
Title |
---|
Protocol Oblivious Forwarding (POF): Software-Defined Networking with Enhanced Programmability;Shengru Li;《IEEE Access》;20170427;全文 * |
基于协议无感知转发的服务功能链;葛敬国;《计算机系统应用》;20180915;全文 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220383911A1 (en) * | 2021-05-25 | 2022-12-01 | Yangtze Memory Technologies Co., Ltd. | Method and apparatus for power saving in semiconductor devices |
Also Published As
Publication number | Publication date |
---|---|
CN111125493A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2898053A1 (en) | Deep packet inspection method, device, and coprocessor | |
US20110047627A1 (en) | Method and system for secure data exfiltration from a closed network or system | |
CN111416865B (zh) | 一种基于拟态防御的协议代理处理方法及系统 | |
CN104601468A (zh) | 报文转发方法和设备 | |
CN105468709A (zh) | 基于HBase的数据查询装置及数据查询方法 | |
CN112333169A (zh) | 一种报文处理方法、装置、电子设备及计算机可读介质 | |
CN110808854A (zh) | 报文调度方法、装置及交换机 | |
CN109088957B (zh) | Nat规则管理的方法、装置和设备 | |
US20070038762A1 (en) | Secure gateway with proxy service capability servers for service level agreement checking | |
CN111125493B (zh) | 一种基于协议无感知转发的高速数据查询系统及方法 | |
EP2139193B1 (en) | A method of performing data mediation, and an associated computer program product, data mediation device and information system | |
CN112165537B (zh) | 一种用于ping回复的虚拟IP的方法 | |
CN111050339B (zh) | 一种基于协议无感知转发的高速数据更新系统及方法 | |
CN103581020A (zh) | 一种报文转发的方法、装置及系统 | |
CN113542409B (zh) | 一种RocketMQ消息队列实例管理系统及处理方法 | |
CN112769716B (zh) | 基于混合型虚拟网桥的虚拟交换机的数据转发方法及装置 | |
CN107357853B (zh) | 一种redis控制台的操作方法、装置及计算机系统 | |
WO2015154393A1 (zh) | 业务节点能力处理方法、装置、业务分类器及业务控制器 | |
CN110661895A (zh) | 一种服务器的网络地址映射方法及网络地址映射设备 | |
CN101577660A (zh) | 一种标签转发表项获取、报文转发方法和装置 | |
CN117714398B (zh) | 一种数据传输系统、方法、电子设备及存储介质 | |
CN105991450A (zh) | Mac地址表更新方法及装置 | |
CN117792896B (zh) | 一种基于fpga的配置管理系统及配置管理方法 | |
CN113032010B (zh) | 命令的传输控制方法、终端及计算机可读存储介质 | |
CN115242895B (zh) | 基于dpdk的访问本机方法和装置 |
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 |