CN113282296A - 基于数据面编程的数据转发方法及装置 - Google Patents
基于数据面编程的数据转发方法及装置 Download PDFInfo
- Publication number
- CN113282296A CN113282296A CN202110602604.3A CN202110602604A CN113282296A CN 113282296 A CN113282296 A CN 113282296A CN 202110602604 A CN202110602604 A CN 202110602604A CN 113282296 A CN113282296 A CN 113282296A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- forwarding
- programming
- compiling
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于数据面编程的数据转发方法及装置,所述方法包括数据加速模块根据基础配置信息进行设备基础配置;数据面编程文件经数据编程模块接收和预处理后加载至编译处理模块进行编译,生成编译文件并发送至特定目标配置加载模块;当接收到与所述数据编程文件相对应的转发配置文件时,所述特定目标配置加载模块将所述转发配置文件和所述编译文件加载到数据平面;所述数据平面将所述转发配置文件与所述控制平面交互并执行所述编译文件;所述控制平面将所述转发配置文件进行处理,并发送至所述数据加速模块,所述数据加速模块根据所述数据转发配置文件进行设备转发配置并在配置结束后进行数据的接收和转发。
Description
技术领域
本发明涉及数据传输领域,具体的说,涉及了一种基于数据面编程的数据转发方法及装置。
背景技术
目前,传统网络通信协议在为SDN进行应用开发时并未做到协议不相关,只能依据现有协议定义流表项,且限制了固定的字段,不能满足现实网络协议中的各种需求。当特定协议交换机生产出后,无法支持新的协议字段,只能在现有协议上进行开发,最终只能面临淘汰。
当协议字段不断被扩充以满足网络世界各种协议时,会出现匹配效率低下、空间占用率大等问题;数据包处理速率低下给开发人员或网络运维人员带来了更大的难题,只能通过上层的一些技术手段来提升数据转发速率。
为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。
发明内容
本发明的目的是针对现有技术的不足,从而提供了一种基于数据面编程的数据转发方法及装置,利用数据面编程模块,克服网络通信协议的局限,自定义协议字段类型和自定义动作类型从而自定义流表,形成流水线以得到想要的数据面,极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率,解决了因扩展字段而使数据转发速率低下等问题。
为了实现上述目的,本发明所采用的技术方案是:一种基于数据面编程的数据转发方法,所述方法包括:
当接收到基础配置信息时,数据加速模块根据所述基础配置信息进行设备基础配置,并在设备基础配置完成后等待控制平面下发数据转发配置文件;
当接收到数据面编程文件时,数据编程模块,对所述数据面编程文件进行预处理,将所述数据面编程文件转换为编译处理模块可识别的文件形式,并加载至所述编译处理模块;
所述编译处理模块通过预设编译规则对所述数据编程文件进行编译,生成编译文件,并将所述编译文件发送至特定目标配置加载模块;
当接收到与所述数据编程文件相对应的转发配置文件时,所述特定目标配置加载模块将所述转发配置文件和所述编译文件加载到数据平面;
所述数据平面将所述转发配置文件与所述控制平面交互并执行所述编译文件,形成目标数据平面;
所述控制平面将所述转发配置文件保存到内存中,并发送至所述数据加速模块,所述数据加速模块根据所述控制平面下发的数据转发配置文件进行设备转发配置;
在设备转发配置完成后,所述数据加速模块等待接收数据以进行数据的转发。
基于上述,所述数据面编程文件至少包括自定义的协议字段、动作类型以及匹配规则。
基于上述,所述数据加速模块根据所述基础配置信息进行设备基础配置至少包括对数据加速模块进行加载绑定内核处理、设置大页处理、绑定端口处理。
基于上述,与所述数据编程文件匹配的转发配置文件至少包括自定义流表。
本发明第二方面提供一种基于数据面编程的数据转发装置,所述装置包括:
数据加速模块,用于在接收到基础配置信息时,根据所述基础配置信息进行设备基础配置;在接收到所述控制平面下发的数据转发配置文件时,根据所述数据转发配置文件进行设备转发配置;以及在设备转发配置完成后,进行数据的接收和转发;
数据编程模块,用于在接收到数据面编程文件时,将所述数据面编程文件转换为编译处理模块可识别的文件形式并加载至编译处理模块;
所述编译处理模块,用于通过预设编译规则对所述数据编程文件进行编译,生成编译文件,并将所述编译文件发送至特定目标配置加载模块;
所述特定目标配置加载模块,用于在接收到与所述数据编程文件相对应的转发配置文件时,将所述转发配置文件和所述编译文件加载到数据平面;
所述数据平面,用于将所述转发配置文件与控制平面交互,并执行所述编译文件,形成目标数据平面;
所述控制平面将所述转发配置文件保存到内存中,并发送至所述数据加速模块
基于上述,所述数据面编程文件至少包括自定义的协议字段、动作类型以及匹配规则。
基于上述,所述数据加速模块根据所述基础配置信息进行设备基础配置至少包括对数据加速模块进行加载绑定内核处理、设置大页处理、绑定端口处理。
基于上述,与所述数据编程文件匹配的转发配置文件至少包括自定义流表。
本发明相对现有技术具有突出的实质性特点和显著的进步,具体的说,本发明利用数据面编程对所述数据面编程文件进行预处理并加载至编译处理模块,利用所述编译处理模块对所述数据编程文件进行编译,生成编译文件,并将所述编译文件发送至特定目标配置加载模块;当接收到与所述数据编程文件匹配的转发配置文件时,所述特定目标配置加载模块将所述转发配置文件和所述编译文件加载到数据平面;所述数据平面将所述转发配置文件与所述控制平面交互并执行所述编译文件,形成目标数据平面;所述控制平面将所述转发配置文件进行处理,并发送至所述数据加速模块,所述数据加速模块根据所述控制平面下发的数据转发配置文件进行设备转发配置;通过上述步骤解决了网络通信协议的局限,即无法自定义协议字段类型和动作类型等,协助设计人员扩展网络通信协议形成流水线以得到想要的数据面,极大提高数据处理性能和吞吐量;在扩展的基础上不影响网络转发速率并提高网络转发速率,提升了网络通信的灵活性、高效率并降低了对某一种特定网络通信协议的依赖程度。
附图说明
图1是本发明的所述方法的流程示意图。
图2是本发明的所述装置的结构示意图。
具体实施方式
下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
如图1所示,本实施例提供一种基于数据面编程的数据转发方法,所述方法包括:
当接收到基础配置信息时,数据加速模块根据所述基础配置信息进行设备基础配置,并在设备基础配置完成后等待控制平面下发数据转发配置文件。
具体的,所述基础配置信息由设计人员根据实际需求进行设计并下发,所述数据加速模块根据所述基础配置信息进行设备基础配置至少包括对数据加速模块进行加载绑定内核处理、设置大页处理、绑定端口处理。
其中,所述加载绑定内核处理是为了减少中断以及内存拷贝次数,并绕过系统协议栈直接进入用户协议栈,使用户能够获得协议栈的控制权,可以定制化协议栈降低复杂度。其中减少中断主要通过重设终端回调行为从而绕过系统协议栈后续的处理流程来实现;无拷贝收发包,是直接将数据包存入内存,交付应用层软件通过底层提供的接口来直接处理,这样节省大量的CPU中断时间和内存拷贝时间,减少了内存拷贝开销;因此由数据加速模块处理的数据包全部在用户空间使用的内存池进行管理,内核空间与用户空间的内存交互不用进行拷贝,只做控制权转移。
所述设置大页处理是为了让程序尽量独占内存防止内存换出,扩大页表提高hash命中率,通过大页技术扩大了该使用的页表大小,设定为更适合高频内存使用程序的状态。
所述绑定端口处理则是数据加速模块物理上的实现,使得收到的数据通过绑定后的端口进行加速处理完成上述数据加速过程,可以理解为已绑定的端口是数据转发设备。
当接收到数据面编程文件时,数据编程模块,对所述数据面编程文件进行预处理,将其转换为编译处理模块可识别的文件形式,并加载至所述编译处理模块。
所述数据面编程文件由设计人员根据实际需求进行设计并下发,具体的,所述数据面编程文件至少包括自定义的协议字段、动作类型以及匹配规则。
所述编译处理模块通过预设编译规则对所述数据编程文件进行编译,生成编译文件,并将所述编译文件发送至特定目标配置加载模块。
所述编译规则是指生成数据面、控制面和所述数据加速模块可识别的“机器语言”。
当接收到与所述数据编程文件中协议字段、动作类型以及匹配规则相对应的转发配置文件时,所述特定目标配置加载模块将所述转发配置文件和所述编译文件加载到数据平面;其中,与所述数据编程文件匹配的转发配置文件至少包括自定义流表。
所述数据平面将所述转发配置文件与所述控制平面交互并执行所述编译文件,形成目标数据平面。
所述控制平面将所述转发配置文件进行处理,并发送至所述数据加速模块,所述数据加速模块根据所述控制平面下发的数据转发配置文件进行设备转发配置。
在设备转发配置完成后,所述数据加速模块等待接收数据以进行数据的转发。
本发明通过开发人员自定义协议字段类型和动作类型以及匹配规则,形成灵活的网络协议,解决了传统网络通信协议的局限,协助设计人员扩展网络通信协议形成流水线以得到想要的数据面,极大提高数据处理性能和吞吐量;在扩展的基础上不影响网络转发速率并提高网络转发速率,提升了网络通信的灵活性、高效率并降低了对某一种特定网络通信协议的依赖程度。
实施例2
本实施例提供一种基于数据面编程的数据转发装置,如图2所示,所述装置包括:
数据加速模块,用于在接收到基础配置信息时,根据所述基础配置信息进行设备基础配置,其中,所述设备基础配置至少包括对数据加速模块进行加载绑定内核处理、设置大页处理、绑定端口处理;在接收到所述控制平面下发的数据转发配置文件时,根据所述数据转发配置文件进行设备转发配置;以及在设备转发配置完成后,进行数据的接收和转发;
数据编程模块,用于在接收到数据面编程文件时,对所述数据面编程文件进行预处理,将其转换为编译模块可识别的文件形式,并加载至编译处理模块;其中,所述数据面编程文件至少包括自定义的协议字段、动作类型以及匹配规则;
所述编译处理模块,用于通过预设编译规则对所述数据编程文件进行编译,生成编译文件,并将所述编译文件发送至特定目标配置加载模块;
所述特定目标配置加载模块,用于在接收到与所述数据编程文件相对应的转发配置文件时,将所述转发配置文件和所述编译文件加载到数据平面;其中,与所述数据编程文件相对应的的转发配置文件至少包括自定义流表;
所述数据平面,用于将所述转发配置文件与控制平面交互,并执行所述编译文件,形成目标数据平面;
所述控制平面将所述转发配置文件保存到内存中,并发送至所述数据加速模块。
数据面编程模块主要通过数据编程文件描述系统需要如何处理数据包可以克服现有网络协议局限,得到我们想要的数据面, 然后通过编译处理模块编译生成可识别的“机器语言”,再由特定目标配置加载模块通知特定目标(已绑定的端口)该做什么,可以认为数据面编程模块主要用于编程程序以下达指令给数据转发平面的设备(已绑定的端口)。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (8)
1.一种基于数据面编程的数据转发方法,其特征在于:
当接收到基础配置信息时,数据加速模块根据所述基础配置信息进行设备基础配置,并在设备基础配置完成后等待控制平面下发数据转发配置文件;
当接收到数据面编程文件时,数据编程模块,对所述数据面编程文件进行预处理,将所述数据面编程文件转换为编译处理模块可识别的文件形式,并加载至所述编译处理模块;
所述编译处理模块通过预设编译规则对所述数据编程文件进行编译,生成编译文件,并将所述编译文件发送至特定目标配置加载模块;
当接收到与所述数据编程文件相对应的转发配置文件时,所述特定目标配置加载模块将所述转发配置文件和所述编译文件加载到数据平面;
所述数据平面将所述转发配置文件与所述控制平面交互并执行所述编译文件,形成目标数据平面;
所述控制平面将所述转发配置文件保存到内存中,并发送至所述数据加速模块,所述数据加速模块根据所述控制平面下发的数据转发配置文件进行设备转发配置;
在设备转发配置完成后,所述数据加速模块等待接收数据以进行数据的转发。
2.根据权利要求1所述的基于数据面编程的数据转发方法,其特征在于:所述数据面编程文件至少包括自定义的协议字段、动作类型以及匹配规则。
3.根据权利要求1所述的基于数据面编程的数据转发方法,其特征在于:所述数据加速模块根据所述基础配置信息进行设备基础配置至少包括对数据加速模块进行加载绑定内核处理、设置大页处理、绑定端口处理。
4.根据权利要求1所述的基于数据面编程的数据转发方法,其特征在于:与所述数据编程文件匹配的转发配置文件至少包括自定义流表。
5.一种基于数据面编程的数据转发装置,其特征在于:
数据加速模块,用于在接收到基础配置信息时,根据所述基础配置信息进行设备基础配置;在接收到所述控制平面下发的数据转发配置文件时,根据所述数据转发配置文件进行设备转发配置;以及在设备转发配置完成后,进行数据的接收和转发;
数据编程模块,用于在接收到数据面编程文件时,将所述数据面编程文件转换为编译处理模块可识别的文件形式并加载至编译处理模块;
所述编译处理模块,用于通过预设编译规则对所述数据编程文件进行编译,生成编译文件,并将所述编译文件发送至特定目标配置加载模块;
所述特定目标配置加载模块,用于在接收到与所述数据编程文件相对应的转发配置文件时,将所述转发配置文件和所述编译文件加载到数据平面;
所述数据平面,用于将所述转发配置文件与控制平面交互,并执行所述编译文件,形成目标数据平面;
所述控制平面将所述转发配置文件保存到内存中,并发送至所述数据加速模块。
6.根据权利要求5所述的基于数据面编程的数据转发装置,其特征在于:所述数据面编程文件至少包括自定义的协议字段、动作类型以及匹配规则。
7.根据权利要求5所述的基于数据面编程的数据转发装置,其特征在于:所述数据加速模块根据所述基础配置信息进行设备基础配置至少包括对数据加速模块进行加载绑定内核处理、设置大页处理、绑定端口处理。
8.根据权利要求5所述的基于数据面编程的数据转发装置,其特征在于:与所述数据编程文件匹配的转发配置文件至少包括自定义流表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110602604.3A CN113282296B (zh) | 2021-05-31 | 2021-05-31 | 基于数据面编程的数据转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110602604.3A CN113282296B (zh) | 2021-05-31 | 2021-05-31 | 基于数据面编程的数据转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113282296A true CN113282296A (zh) | 2021-08-20 |
CN113282296B CN113282296B (zh) | 2022-12-13 |
Family
ID=77282641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110602604.3A Active CN113282296B (zh) | 2021-05-31 | 2021-05-31 | 基于数据面编程的数据转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113282296B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116074208A (zh) * | 2023-03-24 | 2023-05-05 | 之江实验室 | 一种多模态网络的模态部署方法及模态部署系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006515499A (ja) * | 2003-01-07 | 2006-05-25 | インテル コーポレイション | ネットワークフォワーディングエレメントでデータプレーンの挙動を構成するための装置及び方法 |
US20110103259A1 (en) * | 2009-11-04 | 2011-05-05 | Gunes Aybay | Methods and apparatus for configuring a virtual network switch |
CN102929627A (zh) * | 2012-10-29 | 2013-02-13 | 无锡江南计算技术研究所 | 基于ate的测试程序自动生成方法及ate测试方法 |
CN104836753A (zh) * | 2015-03-27 | 2015-08-12 | 清华大学 | Sdn数据平面带状态交换设备、系统及转发处理方法 |
CN108738022A (zh) * | 2018-07-04 | 2018-11-02 | 中国科学技术大学 | 一种无线通信网络移动管理方法及系统 |
US10516626B1 (en) * | 2016-03-16 | 2019-12-24 | Barefoot Networks, Inc. | Generating configuration data and API for programming a forwarding element |
CN111600852A (zh) * | 2020-04-27 | 2020-08-28 | 中国舰船研究设计中心 | 一种基于可编程数据平面的防火墙设计方法 |
CN111858091A (zh) * | 2020-07-06 | 2020-10-30 | 河南信大网御科技有限公司 | 基于进程级的拟态架构和拟态防御方法 |
CN111880830A (zh) * | 2020-07-23 | 2020-11-03 | 中国航发控制系统研究所 | 分布式控制软件源代码的自动化编译链接和加载方法 |
CN112491743A (zh) * | 2020-11-02 | 2021-03-12 | 锐捷网络股份有限公司 | 一种交换芯片的配置方法及装置 |
-
2021
- 2021-05-31 CN CN202110602604.3A patent/CN113282296B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006515499A (ja) * | 2003-01-07 | 2006-05-25 | インテル コーポレイション | ネットワークフォワーディングエレメントでデータプレーンの挙動を構成するための装置及び方法 |
US20110103259A1 (en) * | 2009-11-04 | 2011-05-05 | Gunes Aybay | Methods and apparatus for configuring a virtual network switch |
CN102929627A (zh) * | 2012-10-29 | 2013-02-13 | 无锡江南计算技术研究所 | 基于ate的测试程序自动生成方法及ate测试方法 |
CN104836753A (zh) * | 2015-03-27 | 2015-08-12 | 清华大学 | Sdn数据平面带状态交换设备、系统及转发处理方法 |
US10516626B1 (en) * | 2016-03-16 | 2019-12-24 | Barefoot Networks, Inc. | Generating configuration data and API for programming a forwarding element |
CN108738022A (zh) * | 2018-07-04 | 2018-11-02 | 中国科学技术大学 | 一种无线通信网络移动管理方法及系统 |
CN111600852A (zh) * | 2020-04-27 | 2020-08-28 | 中国舰船研究设计中心 | 一种基于可编程数据平面的防火墙设计方法 |
CN111858091A (zh) * | 2020-07-06 | 2020-10-30 | 河南信大网御科技有限公司 | 基于进程级的拟态架构和拟态防御方法 |
CN111880830A (zh) * | 2020-07-23 | 2020-11-03 | 中国航发控制系统研究所 | 分布式控制软件源代码的自动化编译链接和加载方法 |
CN112491743A (zh) * | 2020-11-02 | 2021-03-12 | 锐捷网络股份有限公司 | 一种交换芯片的配置方法及装置 |
Non-Patent Citations (3)
Title |
---|
RAJAREVANTH NARISETTY: "OpenFlow Configuration Protocol: Implementation for the of Management Plane", 《2013 SECOND GENI RESEARCH AND EDUCATIONAL EXPERIMENT WORKSHOP》 * |
王涛: "软件定义网络及安全防御技术研究", 《通信学报》 * |
赵敏等: "P4与POF协议无关可编程网络技术比较研究", 《网络新媒体技术》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116074208A (zh) * | 2023-03-24 | 2023-05-05 | 之江实验室 | 一种多模态网络的模态部署方法及模态部署系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113282296B (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113282296B (zh) | 基于数据面编程的数据转发方法及装置 | |
WO2022021852A1 (zh) | 一种基于fpga的fast协议解码方法、装置及设备 | |
CN103034658A (zh) | 一种数据查询和报表导出的方法及系统 | |
CN110471692B (zh) | 终端程序的空中升级方法、装置、设备及存储介质 | |
CN102202242A (zh) | 基于机顶盒浏览器的JavaScript解释器实现方法 | |
CN107707687A (zh) | 一种虚拟机ip地址配置的方法和装置 | |
WO2023029961A1 (zh) | 任务执行方法、系统、电子设备及计算机存储介质 | |
CN111211999A (zh) | 一种基于ovs的实时虚拟网络的实现方法 | |
CN106452994A (zh) | 一种设备控制方法及装置 | |
CN106453154B (zh) | 基于多播复制报文的实时调试方法及调试系统 | |
CN100417095C (zh) | 实现网管和网元配置操作的方法与系统 | |
CN113986985A (zh) | 能源管理的io读取方法、系统、设备及存储介质 | |
CN103888297A (zh) | 交换机网络管理方法和系统 | |
CN106685854B (zh) | 一种数据发送方法及系统 | |
CN110401939B (zh) | 一种低功耗蓝牙控制器链路层装置 | |
CN107277062A (zh) | 数据包的并行处理方法及装置 | |
CN100527693C (zh) | 通信网络以及操作该通信网络以传送数据的方法 | |
CN103888283A (zh) | 一种sctp通信方法及装置 | |
WO2012119547A1 (zh) | 一种数据同步的方法、系统及设备 | |
CN112491614B (zh) | 一种用于嵌入式设备的配置信息在线自动生效方法及系统 | |
CN102752312B (zh) | 一种批量解压缩swf文件的方法 | |
CN110519277B (zh) | 一种基于单点执行合约实现控制其它系统的方法 | |
CN113986299A (zh) | 一种设备升级方法、装置、待升级设备及系统 | |
CN113132141B (zh) | 一种存储、业务网分离的分布式训练高效通信网络、方法 | |
CN111030904A (zh) | 一种多级通讯下多路can总线消息实时处理方法 |
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 |