CN115174711A - Data processing method, device and medium based on full-stack programmable network - Google Patents
Data processing method, device and medium based on full-stack programmable network Download PDFInfo
- Publication number
- CN115174711A CN115174711A CN202210793471.7A CN202210793471A CN115174711A CN 115174711 A CN115174711 A CN 115174711A CN 202210793471 A CN202210793471 A CN 202210793471A CN 115174711 A CN115174711 A CN 115174711A
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- processing
- data processing
- 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.)
- Pending
Links
Images
Classifications
-
- 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/22—Parsing or analysis of headers
-
- 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 Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提出了一种基于全栈可编程网络的数据处理方法、设备及介质,在数据包报文处理的应用场景下,利用全栈可编程网络这种软件定义网络所具有的特性,实现对位于网络的数据平面上的各数据处理设备的软件功能模块以及对外接口的设计,使该数据处理设备具备完全的可编程性和可重构性,能够依据数据处理需求,自定义数据包处理逻辑,实现不同业务层应用功能的快速部署。因此,数据处理设备对接收到的数据包进行解析,得到数据包首部信息,可以将其与预定义的匹配动作表进行字段匹配,通过匹配到的处理动作对应的流水线组件,对数据包执行该处理动作,满足对数据包的多种处理需求,相对于传统交换机等转发网络设备,丰富了数据包处理方式。
This application proposes a data processing method, device and medium based on a full-stack programmable network. In the application scenario of data packet and packet processing, using the characteristics of a software-defined network such as a full-stack programmable network, the The software function modules of each data processing device located on the data plane of the network and the design of the external interface make the data processing device fully programmable and reconfigurable, and can customize the data packet processing logic according to data processing requirements , to achieve rapid deployment of application functions at different business layers. Therefore, the data processing device parses the received data packet and obtains the header information of the data packet, which can be field matched with the predefined matching action table, and the data packet is executed through the pipeline component corresponding to the matched processing action. The processing action meets various processing requirements for data packets, and enriches the processing methods of data packets compared with forwarding network devices such as traditional switches.
Description
技术领域technical field
本申请涉及计算机网络应用领域,具体涉及一种基于全栈可编程网络的数据处理方法、设备及介质。The present application relates to the field of computer network applications, in particular to a data processing method, device and medium based on a full-stack programmable network.
背景技术Background technique
随着网络规模的不断扩大,封闭的网络设备内置了过多的复杂协议,增加了运营商定制优化网络的难度,开发人员无法在真实环境中规模部署新协议。同时,随着使用者用户对网络流量的需求不断扩大,各种新型服务不断出现,增加了网络运维成本以及管理难度。With the continuous expansion of the network scale, closed network devices have built-in too many complex protocols, which makes it difficult for operators to customize and optimize the network, and developers cannot deploy new protocols on a large scale in the real environment. At the same time, as users' demands for network traffic continue to expand, various new services continue to emerge, increasing network operation and maintenance costs and management difficulties.
发明内容SUMMARY OF THE INVENTION
为实现上述目的,本申请实施例提供如下技术方案:To achieve the above purpose, the embodiments of the present application provide the following technical solutions:
本申请提出了一种基于全栈可编程网络的数据处理方法,所述方法包括:This application proposes a data processing method based on a full-stack programmable network, the method comprising:
对接收到的各数据包进行解析,得到相应的数据包首部信息;Analyze the received data packets to obtain the corresponding data packet header information;
依据所述数据包首部信息与预定义的匹配动作表的匹配结果,通过不同的流水线组件对所述数据包执行所匹配到的处理动作;所述不同的流水线组件包括包括存储流水线组件和/或计算流水线组件,以及转发流水线组件;According to the matching result between the header information of the data packet and the predefined matching action table, the matched processing actions are performed on the data packet through different pipeline components; the different pipeline components include storage pipeline components and/or Computation pipeline components, and forwarding pipeline components;
对所述转发流水线组件处理后的数据包进行重组后转发;The data packets processed by the forwarding pipeline component are reorganized and forwarded;
其中,所述存储流水线组件用于实现对所述数据包的数据内容的存储;所述计算流水线组件用于对网络设备所支持的应用提供所需计算服务。Wherein, the storage pipeline component is used to realize the storage of the data content of the data packet; the computing pipeline component is used to provide required computing services to the applications supported by the network device.
可选的,所述依据所述数据包首部信息与预定义的匹配动作表的匹配结果,通过不同的流水线组件对所述数据包执行所匹配到的处理动作,包括:Optionally, according to the matching result between the header information of the data packet and a predefined matching action table, perform the matched processing actions on the data packet through different pipeline components, including:
将所述数据包首部信息与预定义的匹配动作表进行字段匹配;Field matching is performed between the packet header information and a predefined matching action table;
确定所述数据包首部信息的至少一个第一字段匹配成功,通过所述第一字段对应的流水线组件,对所述数据包中对应第一字段数据执行所匹配的处理动作;It is determined that at least one first field of the data packet header information is successfully matched, and the matched processing action is performed on the data corresponding to the first field in the data packet through the pipeline component corresponding to the first field;
确定所述数据包首部信息的至少一个第二字段匹配失败,对所述数据包中对应第二字段数据执行预定义的默认动作。It is determined that at least one second field of the header information of the data packet fails to match, and a predefined default action is performed on the data corresponding to the second field in the data packet.
可选的,所述通过对应的流水线组件对所述数据包执行所匹配的处理动作,包括:Optionally, performing the matched processing action on the data packet through the corresponding pipeline component includes:
调用所述存储流水线组件,对所述数据包的数据内容进行存储;所述数据内容包括所述数据包中的元数据、所述数据包处理过程中产生的中间数据和/或处理后的数据包;和/或,calling the storage pipeline component to store the data content of the data packet; the data content includes metadata in the data packet, intermediate data and/or processed data generated during the processing of the data packet package; and/or,
调用所述计算流水线组件,通过虚拟机方式对网络设备的计算容量进行配置,确定所述网络设备所支持的各应用对应的虚拟机副本,以通过所述虚拟机副本实现对应应用的计算服务。The computing pipeline component is invoked, the computing capacity of the network device is configured through the virtual machine, and the virtual machine copy corresponding to each application supported by the network device is determined, so as to realize the computing service of the corresponding application through the virtual machine copy.
可选的,所述对所述数据包的数据内容进行存储,包括:Optionally, the storing the data content of the data packet includes:
依据所述数据包的上下文信息,对符合存储条件的数据包的数据内容进行持续存储;According to the context information of the data packet, continuously store the data content of the data packet that meets the storage conditions;
其中,所述符合存储条件的数据包的数据内容包括属于被请求访问次数达到请求阈值的数据类型的数据内容,和/或与上一次请求访问的数据内容的相关性达到相关阈值的数据内容。Wherein, the data content of the data package that meets the storage conditions includes data content belonging to a data type whose requested access times reach a request threshold, and/or data content whose correlation with the data content requested for access last time reaches a relevant threshold.
可选的,所述方法还包括:Optionally, the method further includes:
对所存储的数据内容进行定期更新检测;Regularly update and detect the stored data content;
依据定期更新检测结果,删除所存储的预设时长内未被访问的数据内容;和/或,Delete data content that has not been accessed for a preset period of time stored in accordance with the regularly updated detection results; and/or,
检测到存储空间剩余量小于预设容量阈值,在获得待存储数据内容时,按照已存储数据内容的存储时间戳,确定最长时间未被请求访问的待处理数据包;When it is detected that the remaining amount of storage space is less than the preset capacity threshold, when the data content to be stored is obtained, according to the storage time stamp of the stored data content, the pending data packets that have not been requested to be accessed for the longest time are determined;
由所述待存储数据内容替换所述待处理数据内容进行存储。The to-be-processed data content is replaced by the to-be-stored data content for storage.
可选的,在调用计算流水线组件过程中,所述方法还包括:Optionally, in the process of invoking the computing pipeline component, the method further includes:
对所述虚拟机副本进行定期更新或删除;Periodically update or delete the virtual machine copy;
获取数据处理设备的计算特征信息;Obtain the computing feature information of the data processing device;
将所述计算特征信息上报至控制平面的控制器,以使得所述控制器依据所述计算特征信息,实现多个所述数据处理设备的统一管理与调度。The computing feature information is reported to the controller of the control plane, so that the controller implements unified management and scheduling of a plurality of the data processing devices according to the computing feature information.
可选的,所述对接收到的各数据包进行解析,得到相应的数据包首部信息,Optionally, the received data packets are parsed to obtain corresponding data packet header information,
包括:include:
获得在控制平面上自定义的数据包解析逻辑;Get custom packet parsing logic on the control plane;
按照所述数据包解析逻辑,对接收到的对应数据包进行解析,得到对应的数据包首部信息;According to the data packet analysis logic, the received corresponding data packet is analyzed to obtain the corresponding data packet header information;
所述通过不同的流水线组件对所述数据包执行所匹配到的处理动作,包括:Performing the matched processing action on the data packet through different pipeline components includes:
获得在所述控制平面上自定义的适用于多核处理器的数据处理逻辑;obtain data processing logic customized on the control plane suitable for multi-core processors;
通过不同的流水线组件,按照对应的数据处理逻辑,对输入的所述数据包执行所匹配到的处理动作。Through different pipeline components, according to the corresponding data processing logic, the matched processing actions are performed on the input data packets.
本申请还提出了一种基于全栈可编程网络的数据处理设备,包括:解析器、多个数据处理装置以及逆解析器,其中:The present application also proposes a data processing device based on a full-stack programmable network, including: a parser, a plurality of data processing devices, and an inverse parser, wherein:
所述解析器,用于对接收到的各数据包进行解析,得到对应的数据包头信息;The parser is used to parse each received data packet to obtain corresponding data packet header information;
所述数据处理装置包括多个预定义的流水线组件,用于依据所述数据包头信息与预定义的匹配动作表的匹配结果,通过不同的所述流水线组件对所述数据包执行所匹配的处理动作;其中,所述不同的流水线组件包括存储流水线组件和/或计算流水线组件,以及转发流水线组件;所述存储流水线组件用于实现对所述数据包的数据内容的存储;所述计算流水线组件用于对网络设备所支持的应用提供所需计算服务;The data processing apparatus includes a plurality of predefined pipeline components, configured to perform the matched processing on the data packet through the different pipeline components according to the matching result between the data packet header information and the predefined matching action table Action; wherein, the different pipeline components include a storage pipeline component and/or a computing pipeline component, and a forwarding pipeline component; the storage pipeline component is used to realize the storage of the data content of the data packet; the computing pipeline component Used to provide required computing services for applications supported by network equipment;
所述逆解析器,用于对所述转发流水线组件处理后的数据包进行重组后转发。The inverse parser is configured to reassemble and forward the data packets processed by the forwarding pipeline component.
可选的,所述数据处理装置还包括:Optionally, the data processing device further includes:
更新定时器,用于记录所存储的任一数据包未被请求访问的时长,以在所记录的时长达到预设时长时,该数据包未被请求访问,删除该数据包;在所记录的时长未达到所述预设时长时,该数据包被请求访问,刷新所述更新定时器的记录时间;Update the timer, which is used to record the length of time that any stored data packet is not requested to be accessed, so that when the recorded time length reaches the preset time length, the data packet is not requested to be accessed, and the data packet is deleted; When the duration does not reach the preset duration, the data packet is requested to be accessed, and the record time of the update timer is refreshed;
其中,所述更新定时器是通过调用所述数据处理设备的应用编程接口进行配置生成。Wherein, the update timer is configured and generated by invoking an application programming interface of the data processing device.
本申请还提出了一种计算机可读存储介质,其上存储有多个计算机指令,所述多个计算机指令被处理器加载执行,实现如上述的基于全栈可编程网络的数据处理方法。The present application also provides a computer-readable storage medium on which multiple computer instructions are stored, and the multiple computer instructions are loaded and executed by a processor to implement the above-mentioned data processing method based on a full-stack programmable network.
基于上述技术方案,本申请提出了一种基于全栈可编程网络的数据处理方法、设备及介质,在数据包报文处理的应用场景下,相对于传统的交换机等转发网络设备,本申请构建基于全栈可编程网络的数据处理设备,利用全栈可编程网络这种软件定义网络所具有的特性,实现对位于网络的数据平面上的各数据处理设备的软件功能模块以及对外接口的设计,使该数据处理设备具备完全的可编程性和可重构性,能够依据数据处理需求,自定义数据包处理逻辑,实现不同业务层应用功能的快速部署。因此,数据处理设备对接收到的数据包进行解析,得到数据包首部信息,可以将其与预定义的匹配动作表进行字段匹配,通过匹配到的处理动作对应的流水线组件,对数据包执行该处理动作,满足对数据包的多种处理需求,相对于传统交换机等转发网络设备,丰富了数据包处理方式。Based on the above technical solutions, the present application proposes a data processing method, device and medium based on a full-stack programmable network. In the application scenario of data packet message processing, compared with traditional forwarding network devices such as switches, the present application constructs The data processing equipment based on the full-stack programmable network uses the characteristics of the software-defined network of the full-stack programmable network to realize the design of the software function modules and external interfaces of each data processing equipment located on the data plane of the network. The data processing device has complete programmability and reconfigurability, can customize data packet processing logic according to data processing requirements, and realize rapid deployment of application functions of different business layers. Therefore, the data processing device parses the received data packet to obtain the header information of the data packet, which can be field matched with the predefined matching action table, and executes this process on the data packet through the pipeline component corresponding to the matched processing action. The processing action meets various processing requirements for data packets, and enriches the processing methods of data packets compared with forwarding network devices such as traditional switches.
附图说明Description of drawings
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the accompanying drawings required for the description of the embodiments or the prior art. Obviously, the drawings in the following description are only It is an embodiment of the present application. For those of ordinary skill in the art, other drawings can also be obtained according to the provided drawings without any creative effort.
图1为本申请提出的基于全栈可编程网络的数据处理设备的一可选示例的结构示意图;1 is a schematic structural diagram of an optional example of a data processing device based on a full-stack programmable network proposed by the present application;
图2为本申请提出的基于全栈可编程网络的数据处理设备的又一可选示例的结构示意图;2 is a schematic structural diagram of another optional example of a data processing device based on a full-stack programmable network proposed by the present application;
图3为本申请提出的基于全栈可编程网络的数据处理设备应用中,位于控制平面的P4编译器的结构示意图;3 is a schematic structural diagram of a P4 compiler located in a control plane in the application of a data processing device based on a full-stack programmable network proposed by the present application;
图4为本申请提出的基于全栈可编程网络的数据处理方法的一可选示例的流程示意图;4 is a schematic flowchart of an optional example of a data processing method based on a full-stack programmable network proposed by the present application;
图5为本申请提出的基于全栈可编程网络的数据处理方法的一可选示例的流程示意图;5 is a schematic flowchart of an optional example of a data processing method based on a full-stack programmable network proposed by the present application;
图6为本申请提出的基于全栈可编程网络的数据处理方法的一可选示例的流程示意图;6 is a schematic flowchart of an optional example of a data processing method based on a full-stack programmable network proposed by the present application;
图7为本申请提出的基于全栈可编程网络的数据处理方法的一可选示例的流程示意图。FIG. 7 is a schematic flowchart of an optional example of a data processing method based on a full-stack programmable network proposed by the present application.
具体实施方式Detailed ways
针对背景技术部分的描述内容,为了适应降低网络复杂度、虚拟化和云计算等网络需求,提出了利用全栈可编程网络又称软件定义网络(Software Defined Network,SDN)技术构建数据处理设备,利用全栈可编程网络的数据控制解耦分离、网络虚拟化和可编程性等特性,实现了应用升级与网络设备更新换代相互独立,加快了新应用的网络部署,通过抽象网络的不同、可区分的层,提高了网络控制灵活性,减少了硬件占用空间和运营成本。In view of the description of the background technology, in order to meet the network requirements such as reducing network complexity, virtualization and cloud computing, it is proposed to use a full-stack programmable network, also known as Software Defined Network (Software Defined Network, SDN) technology to build data processing equipment. Using the characteristics of data control decoupling and separation, network virtualization and programmability of full-stack programmable networks, application upgrades and network device upgrades are independent of each other, which speeds up the network deployment of new applications. Differentiated layers improve network control flexibility and reduce hardware footprint and operating costs.
然而,目前作为网络中交换机等转发网络设备虽然具有一定的可编程能力,自定义报文头、流水线处理逻辑,无需关注具体协议的报文定义和规范,但其只能实现数据包转发功能,无法满足数据处理的多样化需求,如数据存储、计算等。为了进一步改善上述问题,本申请提出增强转发网络设备所支持的网络功能,提出一种面向多核处理器的全栈可编程装置,在具备完全的可编程性和可重构性的基础上,对数据包的数据处理设备进行优化,同时对该数据处理设备中的解析器、数据处理装置(处理流水线)、逆解析器进行改进,通过设备内部物理链路与硬件转发,并按需自定义数据包处理逻辑,实现不同数据处理设备的数据包转发功能,扩展数据包存储功能、容量计算功能等,使得该数据处理设备具有数据包转发能力的同时,也能够具有数据存储能力、计算能力等,更好地满足应用需求。However, at present, as a forwarding network device such as a switch in the network, although it has a certain programmable capability, it can customize the packet header and pipeline processing logic, and does not need to pay attention to the packet definition and specification of the specific protocol, but it can only realize the packet forwarding function. It cannot meet the diverse needs of data processing, such as data storage, computing, etc. In order to further improve the above problems, this application proposes to enhance the network functions supported by the forwarding network equipment, and proposes a full-stack programmable device for multi-core processors. The data processing equipment of the data packet is optimized, and the parser, data processing device (processing pipeline), and inverse parser in the data processing equipment are improved, and the data is forwarded through the internal physical link and hardware of the equipment, and the data is customized as needed. Packet processing logic, realize the data packet forwarding function of different data processing equipment, expand the data packet storage function, capacity calculation function, etc., so that the data processing equipment has the data packet forwarding ability, and also has the data storage ability, computing ability, etc., Better meet application needs.
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, but not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present application.
参照图1,为本申请提出的基于全栈可编程网络的数据处理设备的一可选示例的结构示意图,该数据处理设备100可以是可编程交换芯片,构成全栈可编程网络的数据平面,对某一端口接收到的数据包进行处理重构后,转发至另一端口,实现不同端口之间的数据包的转发处理。在该数据包的处理过程中,本申请可以对数据包进行自定义存储和/或计算操作,以满足后续应用处理需求。因此,如图1所示,该数据处理设备100可以包括:解析器110、数据处理装置120以及逆解析器130,其中:Referring to FIG. 1, it is a schematic structural diagram of an optional example of a data processing device based on a full-stack programmable network proposed by the present application. The data processing device 100 may be a programmable switching chip, forming a data plane of a full-stack programmable network, After processing and reconstructing the data packets received by a certain port, the data packets are forwarded to another port to realize the forwarding processing of data packets between different ports. During the processing of the data packet, the present application can perform custom storage and/or computing operations on the data packet to meet subsequent application processing requirements. Therefore, as shown in FIG. 1 , the data processing apparatus 100 may include: a
解析器110可以用于按照自定义的数据包解析逻辑,对输入的数据包进行解析,得到对应的数据包头信息。The
在实际应用中,可以利用全栈可编程网络的可编程性和可重构性,在控制平面完成数据处理逻辑、匹配动作表等信息的自定义配置,即完成对数据平面的自定义配置,以及流水线处理逻辑的配置过程,将自定义配置信息发送至数据平面运行,据此完成对数据平面所接收到的对应数据包进行处理,满足不同业务的数据处理需求。In practical applications, the programmability and reconfigurability of the full-stack programmable network can be used to complete the custom configuration of data processing logic, matching action table and other information on the control plane, that is, to complete the custom configuration of the data plane. As well as the configuration process of the pipeline processing logic, the custom configuration information is sent to the data plane for operation, and the corresponding data packets received by the data plane are processed accordingly to meet the data processing requirements of different services.
基于此,本申请可以利用全栈可编程网络的可编程自定义特性,在控制平面中自定义用于鉴别数据包头部以及数据包头部域的有效顺序,指导数据平面上的解析器完成数据包解析的解析逻辑。这样,解析器110可以按照预定义的数据包解析逻辑,对输入至该解析器110的对应数据包进行解析,得到数据包头信息,本申请对数据包解析实现过程不做详述。Based on this, the present application can use the programmable customization feature of the full-stack programmable network to customize the effective sequence for identifying the packet header and the packet header field in the control plane, and instruct the parser on the data plane to complete the packet. The parsing logic for parsing. In this way, the
其中,全栈可编程网络相对于分布式网络,将控制平面从路由器和交换机等网络设备中分离出来,将控制平面部署在专用控制设备上实现,如由一个或多个控制器构成该控制平面,通过数据平面API(Application Programming Interface,应用编程接口,如控制平面接口、运行时接口等)管理P4目标的运行;并将网络设备转换成简单的控制功能和转发功能等可编程的自定义功能。Among them, the full-stack programmable network, compared with the distributed network, separates the control plane from network equipment such as routers and switches, and deploys the control plane on a dedicated control device. For example, the control plane is composed of one or more controllers. , manage the operation of P4 targets through data plane API (Application Programming Interface, such as control plane interface, runtime interface, etc.); and convert network devices into programmable custom functions such as simple control functions and forwarding functions .
上述数据平面是由数据处理设备(如交换机等转发网络设备)以及连接该数据处理设备的线路构成的基础网络,主要执行过程中所需的流表项(即匹配动作表中的处理动作)可以由控制平面生成,由控制平面中的控制器实现流表项的加载初始化。The above-mentioned data plane is a basic network composed of data processing equipment (such as forwarding network equipment such as switches) and lines connecting the data processing equipment. The flow table entries (that is, the processing actions in the matching action table) required in the main execution process can be Generated by the control plane, and the controller in the control plane implements the loading and initialization of flow entries.
为了实现对数据平面的各数据处理逻辑的配置,如图2所示,以数据处理设备为P4交换机为例进行说明,全栈可编程网络的控制平面可以包括P4编译器200以及控制器300。在实际应用中,加载兼容基础硬件的P4编译器工具链后,用户可以输入自定义的P4文件(即程序代码文件),之后,参照如图3所示的编译器结构示意图,可以在P4编译器的前端编译环境,完成P4文件的目标独立的转换。该P4文件是用户基于数据处理要求自定义输入,本申请对该P4文件内容不做限制。In order to realize the configuration of each data processing logic of the data plane, as shown in FIG. 2 , taking the data processing device as a P4 switch as an example for illustration, the control plane of the full-stack programmable network may include a
其中,前端编译环境可以包括检查器、分析器和优化器。检查器可以用于对输入的P4文件的词法、语法、语义等内容进行检查;分析器可以用于对P4文件进行分析,生成一个无状态的中间表示(Intermediate Representation,IR),IR中通常会包含如指令依赖性和部署约束等重要信息;优化器可以对无状态的IR的上下文信息进行分析,形成面向后端编译环境的上下文感知IR,可以是带有P4文件信息的JSON文件。Among them, the front-end compilation environment may include a checker, an analyzer and an optimizer. The checker can be used to check the lexical, grammatical, semantic and other content of the input P4 file; the analyzer can be used to analyze the P4 file to generate a stateless Intermediate Representation (IR), which usually contains Contains important information such as instruction dependencies and deployment constraints; the optimizer can analyze the context information of the stateless IR to form a context-aware IR for the back-end compilation environment, which can be a JSON file with P4 file information.
之后,可以在中端编译环境实现IR配置指令和功能依赖限制,确定各网络模型策略,本申请对该策略的配置实现过程不做详述。再由后端编译环境下的合成器依据上下文感知IR指令,合成面向P4的代码实现和相关约束,通过编码器对相关约束进行编码,生成条件约束集合,由转换器依据条件约束集合,生成多核处理器的可执行文件,即.cpp(c++语言的源程序格式)格式的目标编译文件。After that, the IR configuration instruction and function dependency restriction can be implemented in the mid-end compilation environment, and each network model strategy can be determined, and the configuration implementation process of the strategy is not described in detail in this application. Then, the synthesizer in the back-end compilation environment synthesizes the P4-oriented code implementation and related constraints according to the context-aware IR instructions. The encoder encodes the related constraints to generate a set of conditional constraints, and the converter generates a multi-core set according to the set of conditional constraints. The executable file of the processor, that is, the target compiled file in .cpp (source program format of C++ language) format.
在P4编译器编译完毕后,可以由运行单元对P4编译器生成的可执行文件进行运行,对数据平面的各网络设备进行初始化,以使得数据平面能够通过运行时接口(Run-timeAPI)与控制平面进行交互,获得控制平面自定义的数据处理逻辑、匹配动作表等信息,将所采集到的数据平面的网络状态信息上报至控制平面,据此确定全局网络视图后提供给各业务应用。After the P4 compiler is compiled, the executable file generated by the P4 compiler can be run by the running unit, and each network device of the data plane can be initialized, so that the data plane can pass the runtime interface (Run-time API) and control. The plane interacts with each other, obtains information such as data processing logic and matching action table customized by the control plane, and reports the collected network status information of the data plane to the control plane. Based on this, the global network view is determined and provided to each service application.
可见,全栈可编程网络的控制平面可以将管理平面定义的网络策略转换成控制逻辑,将其解析为控制命令后,向底层数据平面的网络设备下达控制流表。基于应用需求,还可以获取数据平面的网络状态信息,向网络应用提供全局网络视图,基于逻辑集中的抽象网络视图,使得软件应用程序更易于与底层数据平面的网络设备进行交互,简化了网络策略执行和网络配置过程。本申请对控制平面的功能及其实现过程不做详述。It can be seen that the control plane of the full-stack programmable network can convert the network policy defined by the management plane into control logic, parse it into a control command, and issue a control flow table to the network device of the underlying data plane. Based on application requirements, the network status information of the data plane can also be obtained, and a global network view can be provided to the network application. Based on the abstract network view of the logic set, it is easier for the software application to interact with the network devices of the underlying data plane, and the network policy is simplified. Execute and network configuration process. This application does not describe the function of the control plane and its implementation process in detail.
其中,对于上述运行时接口除了用于自定义配置匹配动作表外,还可以用于实现查询计数器、对匹配失败的数据包执行的默认动作等信息的自定义配置,还可以供其他控制平面的应用调用,实现对数据平面的访问,完成该应用数据处理,本申请对运行时接口的调用及其应用方法不做限制,可视情而定。Among them, the above-mentioned runtime interface can be used not only to customize the configuration of the matching action table, but also to realize the customized configuration of information such as query counters and default actions performed on packets that fail to match, and can also be used for other control planes. The application invocation realizes the access to the data plane and completes the data processing of the application. The application does not limit the invocation of the runtime interface and its application method, which may be determined according to the circumstances.
数据处理装置120在数据处理设备中的数量可以为至少一个,每一个数据处理装置120可以包括多个预定义的流水线组件,用于依据数据包头信息与预定义的匹配动作表的匹配结果,通过不同的流水线组件对数据包执行所匹配的处理动作。可见,本申请将采用流水线方式实现数据处理,实现过程可以结合流水线处理器的工作原理确定,本申请在此不做详述。The number of data processing apparatuses 120 in the data processing device may be at least one, and each data processing apparatus 120 may include a plurality of predefined pipeline components, which are used for matching results of the data packet header information and the predefined matching action table through Different pipeline components perform matching processing actions on the packets. It can be seen that the present application will implement data processing in a pipeline manner, and the implementation process can be determined in combination with the working principle of the pipeline processor, which will not be described in detail in this application.
结合上文对本申请技术方案的相关描述,数据处理装置120中的流水线可以在控制平面上,依据数据处理要求进行自定义配置,得到多种流水线处理逻辑,据此对数据平面的网络设备进行初始化过程中,可以配置对应预定义的流水线组件,如存储流水线组件和/或计算流水线组件,以及转发流水线组件等。其中,该存储流水线组件可以用于实现对数据包的数据内容(如数据包中的元数据、数据包处理过程中产生的中间数据、处理后的数据包等)的存储,关于数据包的存储实现方法不作限制。而计算流水线组件可以用于对网络设备所支持的应用提供所需计算服务,通过细节可定义的复杂计算操作,实现应用的计算服务,加速网络数据的处理过程,减少网络资源的占用率。In combination with the above description of the technical solutions of the present application, the pipeline in the data processing device 120 can be customized on the control plane according to data processing requirements to obtain a variety of pipeline processing logic, and the network equipment of the data plane can be initialized accordingly. During the process, corresponding predefined pipeline components can be configured, such as storage pipeline components and/or computing pipeline components, and forwarding pipeline components. Wherein, the storage pipeline component can be used to realize the storage of data content of data packets (such as metadata in data packets, intermediate data generated during data packet processing, processed data packets, etc.), regarding the storage of data packets The implementation method is not limited. The computing pipeline component can be used to provide the required computing services for the applications supported by the network device, and realize the computing services of the applications through the complex computing operations that can be defined in detail, accelerate the processing of network data, and reduce the occupancy rate of network resources.
可以理解,对于数据包的处理动作,除了存储、计算、转发等操作外,还可以在匹配动作表中配置其他处理动作,如修改、丢弃等操作,为了实现对数据包的该处理操作,可以自定义对应的修改流水线组件、丢弃流水线组件,当然,也可以将多种处理动作融合在一个流水线组件,本申请对数据处理方法不做限制。It can be understood that for the processing of data packets, in addition to operations such as storage, calculation, and forwarding, other processing actions, such as modifying and discarding, can also be configured in the matching action table. The corresponding modified pipeline components and discarded pipeline components can be customized. Of course, multiple processing actions can also be integrated into one pipeline component, and the data processing method is not limited in this application.
在本申请实施例中,上述数据处理设备会配置对外接口,如面向控制平面的控制接口以及程序设计接口,可以通过该控制接口,在控制平面上对数据平面中各功能(如本申请实施例描述的数据处理设备的各组成部分所要实现的功能)进行动态配置,当然也可以对位于控制平面中的各器件功能进行动态配置,配置实现过程不做详述,可以结合上文对各数据处理逻辑、数据解析逻辑等功能配置的相关描述。本申请还可以通过上述控制接口获取数据平面的工作状态和数据等网络数据,据此实现对数据平面中功能配置的调整和动态管理等。In the embodiment of the present application, the above-mentioned data processing device will be configured with external interfaces, such as a control interface oriented to the control plane and a programming interface. Through the control interface, various functions in the data plane (such as the embodiments of the present application) can be configured on the control plane. The functions to be implemented by the components of the described data processing equipment) are dynamically configured, of course, the functions of each device located in the control plane can also be dynamically configured. The configuration implementation process will not be described in detail. Descriptions of functional configurations such as logic and data parsing logic. The present application can also obtain network data such as the working status and data of the data plane through the above-mentioned control interface, and accordingly realize the adjustment and dynamic management of the function configuration in the data plane.
对于上述程序设计接口可以是面向网络管理者的应用编程接口,网络管理者通过账号登录后,经过身份验证成功后,可以调取该程序设计接口,实现对应用功能的开发设计,动态对新开发的应用功能进行下发、加载、配置、修改和删除等,本申请对应用功能开发设计及其使用的实现过程不做详述。The above programming interface can be an application programming interface for network administrators. After the network administrator logs in through the account, after successful authentication, the programming interface can be invoked to realize the development and design of application functions, and dynamically develop new The application functions are distributed, loaded, configured, modified, deleted, etc., and the application function development design and the implementation process of its use are not described in detail in this application.
在本申请提出的又一些实施例中,上述数据处理装置120还可以包括:更新定时器,用于记录所存储的任一数据包未被请求访问的时长,以在所记录的时长达到预设时长时,该数据包未被请求访问,删除该数据包,从而实现对过期数据包进行及时清理,减少对存储资源的浪费;在所记录的时长未达到预设时长时,该数据包被请求访问,刷新更新定时器的记录时间,以从当前时间开始继续记录该数据包未被请求访问的时长。In still other embodiments proposed in the present application, the data processing apparatus 120 may further include: an update timer for recording the length of time during which any stored data packet is not requested to be accessed, so that when the recorded time length reaches a preset time When the time is long, the data packet is not requested to be accessed, and the data packet is deleted, so as to realize the timely cleaning of expired data packets and reduce the waste of storage resources; when the recorded time length does not reach the preset time length, the data packet is requested. Access, refresh and update the recording time of the timer, so as to continue to record the length of time that the data packet is not requested to be accessed from the current time.
其中,更新定时器是通过调用数据处理设备的应用编程接口进行配置生成,该配置实现过程可以参照上文对数据处理逻辑、匹配动作表等信息的配置过程的相关描述,本实施例在此不做详述。The update timer is configured and generated by invoking the application programming interface of the data processing device. For the configuration implementation process, reference may be made to the relevant description of the configuration process of the data processing logic, matching action table and other information above. This embodiment does not Do detail.
综上,相对于软件定义网络架构中,数据平面中具有单一转发功能的数据转发设备,本申请在数据平面中的数据处理装置中额外配置了存储流水线组件和/或计算流水线组件,在数据包到达时,不仅可以能够实现原有的转发功能,还可以在该数据平面上进行存储和/或计算服务,丰富了如交换机等数据处理设备所实现的数据处理能力。To sum up, compared with the data forwarding device with a single forwarding function in the data plane in the software-defined network architecture, the data processing device in the data plane of the present application is additionally configured with a storage pipeline component and/or a computing pipeline component. When arriving, not only can the original forwarding function be realized, but also storage and/or computing services can be performed on the data plane, which enriches the data processing capability realized by data processing devices such as switches.
逆解析器130可以用于对转发流水线组件处理后的数据包进行重组后转发,满足如交换机等数据处理设备的数据转发功能,实现用户自定义的网络数据包转发处理流程,本申请对可编程逆解析器对数据包头信息的重组实现过程不做详述。The inverse parser 130 can be used to reorganize and forward the data packets processed by the forwarding pipeline components, so as to satisfy the data forwarding function of data processing equipment such as switches, and realize the user-defined network data packet forwarding processing flow. The inverse parser does not describe the implementation process of the reassembly of the packet header information in detail.
在基于全栈可编程网络的各应用场景下,对于该网络的数据平面中的任一数据处理设备,如交换机等,均可以按照上文描述的方法,用户可以在控制平面完成对各数据处理设备的处理逻辑的自定义配置,以使得数据处理设备运行过程中,依据所配置的处理逻辑,按照流水线方式,对输入该数据处理设备的数据包进行处理,如对数据包的元数据进行修改、对数据包和/或其处理过程进行存储、对应用执行复杂的计算服务等,完成数据包处理后,经过数据包头信息的重组后,转发至其他网络设备,以实现数据包在网络中的传输。In each application scenario based on a full-stack programmable network, for any data processing device in the data plane of the network, such as a switch, the method described above can be used, and the user can complete the data processing on the control plane. The custom configuration of the processing logic of the device, so that during the operation of the data processing device, according to the configured processing logic, the data packets input to the data processing device are processed in a pipeline manner, such as modifying the metadata of the data packets. , store the data packet and/or its processing process, perform complex computing services for the application, etc. After completing the data packet processing, after the reorganization of the data packet header information, it is forwarded to other network devices to realize the data packet in the network. transmission.
下面将从上述任一数据处理设备的角度,结合上文描述的数据处理设备的结构,来详细描述本申请提出的基于全栈可编程网络的数据处理方法,但并不局限于下文各实施例描述的数据处理方法,且对于本申请中使用流程图所说明的根据本申请实施例的数据处理设备所执行的操作,可以理解,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作,本申请下文实施例并未一一详述,但均属于本申请技术方案的保护范围。The data processing method based on the full-stack programmable network proposed in the present application will be described in detail below from the perspective of any of the above data processing devices, combined with the structure of the data processing device described above, but is not limited to the following embodiments The described data processing method, and for the operations performed by the data processing device according to the embodiment of the present application described in the present application using the flowcharts, it can be understood that the preceding or following operations are not necessarily performed in exact order. Instead, the various steps can be processed in reverse order or simultaneously. At the same time, other operations can also be added to these processes, or one or several steps of operations can be removed from these processes. The following embodiments of the present application are not described in detail, but all belong to the protection scope of the technical solutions of the present application.
参照图4,为本申请提出的基于全栈可编程网络的数据处理方法的一可选示例的流程示意图,该方法适用于如上文描述的数据处理设备,如图4所示,该方法可以包括但并不局限于以下步骤:Referring to FIG. 4 , it is a schematic flowchart of an optional example of a data processing method based on a full-stack programmable network proposed by the present application. The method is applicable to the data processing device described above. As shown in FIG. 4 , the method may include: But not limited to the following steps:
步骤S41,对接收到的各数据包进行解析,得到相应的数据包首部信息;Step S41, analysing the received data packets to obtain corresponding data packet header information;
结合上文对本申请技术方案的相关描述,在全栈可编程网络的控制平面上,完成对数据平面中的各数据处理设备的自定义配置,实现过程可以参照上文实施例对应部分的描述,本实施例在此不做详述。在数据处理设备获得控制平面下发的数据处理逻辑、匹配动作表等信息后,可以据此进行运行,以使数据处理设备包含的各模块进行工作状态。In combination with the above description of the technical solutions of the present application, on the control plane of the full-stack programmable network, the custom configuration of each data processing device in the data plane is completed, and the implementation process can refer to the description of the corresponding part of the above embodiment, This embodiment will not be described in detail here. After the data processing device obtains information such as the data processing logic and the matching action table issued by the control plane, the data processing device can run according to the information, so that each module included in the data processing device is in a working state.
另外,数据处理设备还可以通过底层硬件加载单元,通过功能抽象和软硬件解耦,使该数据处理设备及其功能不依赖于专用硬件,还可以通过如上文配置的各软件功能模块满足应用需求,通过资源的灵活共享,实现新业务的快速开发和部署。In addition, the data processing device can also use the underlying hardware loading unit, through functional abstraction and decoupling of software and hardware, so that the data processing device and its functions do not depend on dedicated hardware, and can also meet application requirements through the software function modules configured as above , through the flexible sharing of resources, to achieve rapid development and deployment of new services.
因此,本申请可以将用户自定义的P4文件(程度代码文件)输入数据处理设备完成底层配置,如将P4文件输入P4编译器,生成针对该数据处理设备的配置,如数据处理逻辑等,将该配置部署到数据处理设备运行,满足对接入的数据报文的处理。Therefore, this application can input the user-defined P4 file (degree code file) into the data processing device to complete the underlying configuration, such as inputting the P4 file into the P4 compiler to generate the configuration for the data processing device, such as data processing logic, etc. This configuration is deployed to the data processing device to run, and it satisfies the processing of incoming data packets.
这样,完成全栈可编程网络应用场景下的任一数据处理设备,如交换机等网络设备的配置后,在其接收到某一数据报文的数据包后,在将其转发给其他数据处理设备或终端、服务器等计算机设备之前,可以由该数据处理设备中可编程的解析器对从入端口(ingress port)输入的数据包进行解析,实现数据包首部与载荷部分的分离。In this way, after completing the configuration of any data processing device in the full-stack programmable network application scenario, such as a switch and other network devices, after it receives a data packet of a data packet, it forwards it to other data processing devices. Or before computer equipment such as terminals and servers, the programmable parser in the data processing equipment can parse the data packets input from the ingress port to realize the separation of the data packet header and the payload part.
在P4编程语言基础组件中,该数据包首部可以是包头和元数据两种,在为用于描述数据包结构的包头的情况下,可以将分离出来的自定义的包头存放至数据包结构体中,将指针向后移动,完成对一个包头的解析,继续对预定义的下一包头进行解析,如此重复,直至完成对P4文件中所定义的各包头的解析,解析过程可以通过将在控制平面上配置的解析状态转移图(即数据包解析结构)部署到可编程的解析器上实现,实现对输入的各数据包的首部与载荷部分的分离,将分离出的首部(如报文的头部、元数据)保存到对应自定义的头部域中,用于流水线中匹配动作表的匹配操作。In the basic components of the P4 programming language, the data packet header can be divided into two types: the packet header and the metadata. In the case of the packet header used to describe the data packet structure, the separated user-defined packet header can be stored in the data packet structure. , move the pointer backward to complete the parsing of one packet header, continue to parse the next predefined packet header, and repeat until the parsing of each packet header defined in the P4 file is completed. The parsing process can be controlled by The parsing state transition diagram (that is, the packet parsing structure) configured on the plane is deployed on the programmable parser to realize the separation of the header and the payload of each input packet, and the separated header (such as the packet's header) is separated. header, metadata) are stored in the corresponding custom header field, which is used for the matching operation of the matching action table in the pipeline.
其中,元数据用来携带数据和配置信息,元数据的声明与包头类似,可以包括用户自定义元数据(如首部字段的运算结果等)以及固有元数据(如数据包的入端口、指定数据包的出端口)等,本申请对元数据的内容不作限制,可视情况而定。Among them, metadata is used to carry data and configuration information. The declaration of metadata is similar to the header, and can include user-defined metadata (such as the operation result of the header field, etc.) and inherent metadata (such as the ingress port of the data packet, the specified data, etc.) The content of the metadata is not limited in this application, which may be determined according to the situation.
步骤S42,依据数据包首部信息与预定义的匹配动作表的匹配结果,通过不同的流水线组件对所述数据包执行所匹配到的处理动作;Step S42, according to the matching result of the data packet header information and the predefined matching action table, perform the matched processing action on the data packet by different pipeline components;
在实际应用中,结合上文对数据处理设备的相关描述,如交换机等数据处理设备中会配置低级的运行时接口,通过调用该运行时接口,实现对匹配动作表、查询计数器、默认动作等配置,在该配置过程中,可以依据数据处理要求进行自定义实现,本申请对各信息的自定义实现方法不做详述。In practical applications, combined with the above description of data processing equipment, data processing equipment such as switches will be configured with a low-level runtime interface. By calling the runtime interface, matching action tables, query counters, default actions, etc. Configuration, in the configuration process, custom implementation can be performed according to data processing requirements, and this application does not describe the custom implementation method of each information in detail.
其中,对于上述匹配动作表可以定义匹配字段、处理动作以及一些相关属性参数(如表容量等),当其中定义的字段与数据包匹配成功,可以执行对应的处理动作;当匹配失败(如失配miss),可以执行预定义的默认动作。本申请对该匹配动作表的定义实现方法不做限制。Among them, for the above matching action table, matching fields, processing actions and some related attribute parameters (such as table capacity, etc.) can be defined. When the fields defined in the matching action table are successfully matched with the data packets, the corresponding processing actions can be executed; with miss), a predefined default action can be executed. This application does not limit the definition and implementation method of the matching action table.
可选的,本申请实施例可以采用键值方式定义匹配动作表,如由数据包的包头或元数据这一首部信息作为键值,匹配相应的流表项(即匹配动作表项),如用户自定义的转发、存储、计算、修改、丢弃等处理动作(也可以称为处理指令),当然,还可以自定义流表项的执行顺序(即确定优先级)、计时器、匹配域等信息,本申请对匹配动作表的配置实现方法及其表示形式不做限制。Optionally, in this embodiment of the present application, a matching action table may be defined in a key-value manner. For example, the header information of the packet header or metadata of the data packet is used as a key value to match the corresponding flow entry (that is, the matching action entry), such as User-defined processing actions such as forwarding, storage, calculation, modification, and discarding (also called processing instructions). Of course, you can also customize the execution order of flow entries (ie, determine the priority), timers, matching fields, etc. information, this application does not limit the configuration and implementation method of the matching action table and its representation.
示例性的,在P4编程语言基础组件应用中,可以采用如下规则定义匹配动作表:command_typetable_name[associated_action][match_fields_list][=>][parameters_list],在该规则定义的匹配动作表中,命令类型指示的操作种类,可以包括添加、删除、修改、丢弃、存储、计算等流表项;匹配字段列表可以包括待匹配的多种数据包字段,本申请对该字段类型不做限制。属性参数列表可以包括执行的如上述各处理动作的相关属性,如匹配失败时的默认动作、计数器、表大小等。在实际应用中,对于匹配动作表中各流表项的处理动作,可以是由用户自定义的执行序列(可以读取数据包包头和元数据的代码片段),该执行序列中可以包含若干基本模块指令,配合在运行时由控制平面传递给处理动作的参数和包头字段或元数据运行。Exemplarily, in the application of the basic component of the P4 programming language, the following rule can be used to define a matching action table: command_typetable_name[associated_action][match_fields_list][=>][parameters_list], in the matching action table defined by the rule, the command type indicates The types of operations that can be used include adding, deleting, modifying, discarding, storing, calculating, etc. flow entries; the matching field list can include various data packet fields to be matched, and this application does not limit the field types. The attribute parameter list may include related attributes of the above-mentioned processing actions to be executed, such as default actions when matching fails, counters, table sizes, and the like. In practical applications, for the processing action of each flow entry in the matching action table, it can be a user-defined execution sequence (the code fragment that can read the packet header and metadata), and the execution sequence can include several basic Module directives that operate with parameters and header fields or metadata passed to the processing action by the control plane at runtime.
基于此,在确定所接收到的数据包的首部信息后,可以将该数据包的首部各字段(如各包头字段、元数据的各字段)与控制器下发的匹配动作表中的匹配字段进行比较,确定首部信息包含的各字段是否匹配成功,对于任一匹配成功的首部字段,可以确定匹配动作表中预定义的与该字段对应的处理动作,如数据包处理运算符(如上述添加、删除、修改包头等)、基本算数运算符、哈希运算符和统计跟踪运算符(如计量、测量等)等基本动作,还可以包由多种基本动作组合而成的复合动作,可以由用户基于数据处理需求进行自定义,保障P4语言对各种协议的支持及扩展性。Based on this, after determining the header information of the received data packet, each field of the header of the data packet (such as each header field and each field of the metadata) can be matched with the matching field in the matching action table issued by the controller. Make a comparison to determine whether each field contained in the header information is successfully matched. For any header field that matches successfully, you can determine the pre-defined processing action corresponding to the field in the matching action table, such as the packet processing operator (adding as above). , delete, modify packet headers, etc.), basic arithmetic operators, hash operators, and statistical tracking operators (such as metering, measuring, etc.) Users can customize based on data processing requirements to ensure the support and scalability of P4 language for various protocols.
需要说明,关于数据包与匹配动作表之间的匹配实现方法本申请不做限制,且本申请还可以依据数据处理需求进行自定义配置和/或动态更新,以提高上述匹配结果的可靠性和准确性,实现过程可以参照该匹配动作表的配置实现方式确定。It should be noted that this application does not limit the matching implementation method between the data packet and the matching action table, and the application can also perform custom configuration and/or dynamic update according to data processing requirements, so as to improve the reliability and performance of the above matching results. Accuracy, the implementation process can be determined with reference to the configuration implementation mode of the matching action table.
由于数据处理设备的流水线组件是可编辑的,可以依据不同数据处理需求,自定义对应的流水线组件及其流水线处理逻辑,关于流水线组件的配置实现方法及其流水线处理方式本申请不做详述。结合上文对本申请技术方案的相关描述,本申请希望完成对所接收到的数据包向其他网络设备的转发之外,还可以对数据包、数据包处理过程等进行存储,以供后续调取使用;还可以提供计算能力,支持应用的复杂计算服务,满足应用处理需求等。Since the pipeline components of the data processing device are editable, the corresponding pipeline components and their pipeline processing logic can be customized according to different data processing requirements. The configuration and implementation method of the pipeline components and their pipeline processing methods are not described in detail in this application. In combination with the above description of the technical solutions of the present application, the present application hopes to complete the forwarding of the received data packets to other network devices, and also store the data packets, data packet processing procedures, etc. for subsequent retrieval. It can also provide computing power, support complex computing services for applications, and meet application processing needs.
因此,本申请预定义的不同流水线组件可以包括存储流水线组件和/或计算流水线组件,以及转发流水线组件;由存储流水线组件用于实现对数据包的数据内容的存储;由计算流水线组件用于为网络设备所支持的应用提供所需的计算服务。按照上文描述的方法,确定数据包与匹配动作表之间的匹配结果后,可调取对应的流水线组件,按照流水线方式对数据包进行处理。关于,如何调用所需的多个预定义的流水线组件,将该数据包输入所调用的流水线组件进行处理的实现过程,本申请实施例在此不做详述。Therefore, the different pipeline components predefined in this application may include a storage pipeline component and/or a computing pipeline component, and a forwarding pipeline component; the storage pipeline component is used to realize the storage of the data content of the data packet; The applications supported by the network device provide the required computing services. According to the method described above, after the matching result between the data packet and the matching action table is determined, the corresponding pipeline component can be fetched, and the data packet can be processed in a pipeline manner. Regarding the implementation process of how to call multiple required predefined pipeline components, and input the data packet into the called pipeline component for processing, this embodiment of the present application will not describe in detail here.
其中,对于每一种流水线组件,可以是可编程的多阶段流水线,主要分为入口流水线和出口流水线,入口流水线可以对输入的数据包进行数据分组修改、确定出端口等操作;出口流水线负责数据分组的修改。在实际应用中,数据平面可以依据匹配动作表的顺序依次匹配处理每个数据报文,实现过程本申请不做详述。Among them, for each pipeline component, it can be a programmable multi-stage pipeline, which is mainly divided into an entry pipeline and an exit pipeline. The entry pipeline can modify the data packets of the input data packets, determine the output port and other operations; the exit pipeline is responsible for the data Modification of grouping. In practical applications, the data plane can sequentially match and process each data packet according to the sequence of the matching action table, and the implementation process is not described in detail in this application.
步骤S43,对转发流水线组件处理后的数据包进行重组后转发。In step S43, the data packets processed by the forwarding pipeline component are reassembled and then forwarded.
对于上述流水线组件输出的数据包,可以输入可编程的逆解析器,对该数据包的数据包头信息进行重组,通过在流水线中赋好值的出端口(egress port)对重组后的数据包进行转发。本申请对逆解析器的工作原理不做详述,且在重组过程中,通常是依据在控制平面上定义生成的逆解析结构实现,关于逆解析结构的自定义配置内容本申请不做限制。For the data packets output by the above-mentioned pipeline components, a programmable inverse parser can be input to reorganize the data packet header information of the data packets, and the reassembled data packets are processed through the egress port assigned a value in the pipeline. Forward. This application does not describe the working principle of the inverse parser in detail, and during the reorganization process, it is usually implemented based on the inverse parsing structure defined and generated on the control plane, and the application does not limit the self-defined configuration content of the inverse parsing structure.
综上,在数据包报文处理的应用场景下,相对于传统的交换机等转发网络设备,本申请构建基于全栈可编程网络的数据处理设备,利用全栈可编程网络这种软件定义网络所具有的特性,实现对位于网络的数据平面上的各数据处理设备的软件功能模块以及对外接口的设计,使该数据处理设备具备完全的可编程性和可重构性,能够依据数据处理需求,自定义数据包处理逻辑,实现不同业务层应用功能的快速部署。因此,数据处理设备对接收到的数据包进行解析,得到数据包首部信息,可以将其与预定义的匹配动作表进行字段匹配,通过匹配到的处理动作对应的流水线组件,对数据包执行该处理动作,满足对数据包的多种处理需求,相对于传统交换机等转发网络设备,丰富了数据包处理方式。To sum up, in the application scenario of data packet message processing, compared with traditional forwarding network devices such as switches, this application builds a data processing device based on a full-stack programmable network, using the full-stack programmable network as a software-defined network. It has the characteristics of realizing the design of software function modules and external interfaces of each data processing device located on the data plane of the network, so that the data processing device has complete programmability and reconfigurability, and can be based on data processing requirements. Customize data packet processing logic to achieve rapid deployment of application functions at different business layers. Therefore, the data processing device parses the received data packet to obtain the header information of the data packet, which can be field matched with the predefined matching action table, and executes this process on the data packet through the pipeline component corresponding to the matched processing action. The processing action meets various processing requirements for data packets, and enriches the processing methods of data packets compared with forwarding network devices such as traditional switches.
参照图5,为本申请提出的基于全栈可编程网络的数据处理方法的又一可选示例的流程示意图,该方法适用于如上文描述的数据处理设备,本实施例可以是上文描述的数据处理方法的一可选细化实现方法,但并不局限于这种实现方法,如图5所示,该方法可以包括但并不局限于以下步骤:Referring to FIG. 5 , it is a schematic flowchart of another optional example of a data processing method based on a full-stack programmable network proposed by the present application. The method is applicable to the data processing device described above, and this embodiment may be the above-described data processing device. An optional refinement implementation method of the data processing method, but is not limited to this implementation method, as shown in Figure 5, the method may include but is not limited to the following steps:
步骤S51,获得在控制平面上自定义的数据包解析逻辑;Step S51, obtaining the custom data packet analysis logic on the control plane;
步骤S52,按照该数据包解析逻辑,对接收到的对应数据包进行解析,得到对应的数据包首部信息;Step S52, according to the data packet analysis logic, analyze the received corresponding data packet to obtain the corresponding data packet header information;
关于通过入端口输入至数据处理设备中可编程的解析器后,解析器如何对该数据包进行解析,实现数据包首部与载荷部分的分离,该解析实现过程可以参照上文实施例以及全栈可编程网络的应用原理确定,本申请实施例在此不做详述。Regarding how the parser parses the data packet after it is input to the programmable parser in the data processing device through the ingress port to realize the separation of the packet header and the payload, the parsing implementation process can refer to the above embodiment and the full stack The application principle of the programmable network is determined, which is not described in detail in this embodiment of the present application.
步骤S53,将数据包首部信息与预定义的匹配动作表进行字段匹配;Step S53, carrying out field matching with the packet header information and the predefined matching action table;
步骤S54,确定该数据包首部信息的至少一个第一字段匹配成功,获得在控制平面上自定义的与第一字段对应的数据处理逻辑;Step S54, determine that at least one first field of the packet header information is successfully matched, and obtain a self-defined data processing logic corresponding to the first field on the control plane;
步骤S55,通过该第一字段对应的流水线组件运行对应的数据处理逻辑,对输入的数据包对应的第一字段数据执行所匹配的处理动作;Step S55, running the corresponding data processing logic through the pipeline component corresponding to the first field, and performing the matched processing action on the first field data corresponding to the input data packet;
结合上文对匹配动作表的相关描述,由于该匹配动作表包含有匹配字段列表(即匹配首部域)、处理动作列表及其参数、流表数量等,以及各流水线在每张匹配动作表中的执行顺序等。这样,将分离出的数据包首部信息与控制器下发的匹配动作表进行匹配,确定哪些首部字段存在于匹配动作表中,哪些首部字段不存在于匹配动作表中,将匹配成功的首部字段记为第一字段,将匹配失败的首部字段为第二字段。Combined with the above description of the matching action table, since the matching action table contains a matching field list (ie, matching header field), a processing action list and its parameters, the number of flow tables, etc., and each pipeline is in each matching action table. execution order, etc. In this way, the separated packet header information is matched with the matching action table issued by the controller to determine which header fields exist in the matching action table and which header fields do not exist in the matching action table. It is recorded as the first field, and the first field that fails to match is the second field.
由于匹配动作表中,不同匹配字段对应的处理动作可能不同,也就是说对数据包中不同字段数据的处理动作可能不同,不同类型的处理动作的流水线处理方式不同。因此,本申请可以按照上述匹配结果,确定对数据包的各字段数据的流水线处理方式,调用对应的流水线组件对输入的数据包的字段数据执行对应的处理动作,满足对数据包的多种处理需求。在流水线处理过程中,可以按照在控制平面自定义的适用于多核处理器的数据处理逻辑实现,对于不同处理动作所定义的数据处理逻辑可以不同,所以说,本申请可以通过不同的流水线组件,按照对应的数据处理逻辑,对输入的数据包执行所匹配到的处理动作。In the matching action table, the processing actions corresponding to different matching fields may be different, that is to say, the processing actions for different field data in the data packet may be different, and the pipeline processing methods of different types of processing actions are different. Therefore, the present application can determine the pipeline processing method for each field data of the data packet according to the above matching results, and call the corresponding pipeline component to perform corresponding processing actions on the field data of the input data packet, so as to satisfy various processing methods for the data packet. need. In the process of pipeline processing, it can be implemented according to the data processing logic customized on the control plane and suitable for multi-core processors. The data processing logic defined for different processing actions can be different. Therefore, this application can use different pipeline components, According to the corresponding data processing logic, the matched processing action is performed on the input data packet.
在又一些实施例中,按照上述匹配处理方式,确定数据包首部信息的至少一个第二字段匹配失败的情况下,可以按照匹配动作表中所配置的默认动作,对该第二字段数据执行预定义的默认动作,对于该默认动作的执行过程,也可以按照在控制平面上预先配置对应的数据处理逻辑实现,实现过程本申请不做详述。In still other embodiments, when it is determined that at least one second field of the header information of the data packet fails to match according to the above matching processing method, the data of the second field may be pre-configured according to the default action configured in the matching action table. The defined default action can also be implemented according to the corresponding data processing logic pre-configured on the control plane for the execution process of the default action, and the implementation process is not described in detail in this application.
步骤S56,对转发流水线组件处理后的数据包进行重组后转发。In step S56, the data packets processed by the forwarding pipeline component are reassembled and then forwarded.
参照图6,为本申请提出的基于全栈可编程网络的数据处理方法的又一可选示例的流程示意图,本实施例可以对上文描述的数据处理方法中,调用存储流水线组件实现对数据包的数据内容进行存储的操作过程进行描述,但并不局限于本实施例描述的这种存储实现方法,关于对数据包的解析以及匹配处理过程,可以参照上文实施例对应部分的描述,本实施例在此不做详述。Referring to FIG. 6 , it is a schematic flowchart of another optional example of the data processing method based on the full-stack programmable network proposed by the present application. The operation process of storing the data content of the packet is described, but it is not limited to the storage implementation method described in this embodiment. Regarding the analysis and matching processing process of the data packet, reference can be made to the description of the corresponding part of the above embodiment, This embodiment will not be described in detail here.
如图6所示,该方法可以包括:As shown in Figure 6, the method may include:
步骤S61,调用存储流水线组件,依据数据包的上下文信息,对符合存储条件的数据包的数据内容进行持续存储;Step S61, calling the storage pipeline component, and continuously storing the data content of the data packet that meets the storage condition according to the context information of the data packet;
在可编程解析器完成对数据包解析后,需要对数据包、数据包处理过程、处理后的数据包等数据内容进行存储的情况下,如按照上文描述的匹配动作表,确定所匹配到的处理动作为存储操作,可以调用存储流水线组件,对数据包的数据内容进行存储,在该存储过程中,本申请可以依据数据包上下文信息,对符合存储条件的数据内容进行持续存储,以保证数据在不同的存储操作中的一致性。After the programmable parser completes the analysis of the data packet, it is necessary to store the data content such as the data packet, the processing process of the data packet, the processed data packet, etc., such as according to the matching action table described above, determine the matching The processing action is a storage operation, and the storage pipeline component can be called to store the data content of the data packet. During the storage process, the application can continuously store the data content that meets the storage conditions according to the context information of the data packet, so as to ensure Data consistency across different storage operations.
对于上述存储条件可以依据数据存储需求确定,如按照相关领域的访问热点、对象访问关注点等相关数据进行存储,因此,上述符合存储条件的数据包的数据内容可以包括属于被请求访问次数达到请求阈值的数据类型的数据内容,和/或与上一次请求访问的数据内容的相关性达到相关阈值的数据内容等,本申请对该请求阈值、相关阈值的数值以及存储条件内容等均不作限制,可视情况而定。The above storage conditions can be determined according to data storage requirements, such as storage according to relevant data such as access hotspots and object access concerns in related fields. Therefore, the data content of the above-mentioned data packets that meet the storage conditions may include requests that belong to the requested access times reached. The data content of the data type of the threshold value, and/or the data content of which the correlation with the data content of the last requested access reaches the relevant threshold value, etc., this application does not limit the request threshold value, the value of the relevant threshold value, and the storage condition content, etc., Subject to availability.
其中,对于上述存储流水线组件可以是运行预定义的数据存储逻辑的存储芯片,实现对符合存储条件的数据内容的持久化存储,这样,在该数据处理设备异常导致所转发的数据包丢失的情况下,仍可以直接从存储流水线组件中读取相应的数据包,无需数据源重新发送该数据包,提高了数据包传输速度,减少了该数据包重复传输所造成的资源浪费。The above-mentioned storage pipeline component may be a storage chip running a predefined data storage logic to realize persistent storage of data content that meets storage conditions. In this way, in the case of an abnormality in the data processing device, the forwarded data packets are lost. In this case, the corresponding data packet can still be directly read from the storage pipeline component, and the data packet does not need to be resent by the data source, which improves the transmission speed of the data packet and reduces the waste of resources caused by repeated transmission of the data packet.
可见,对于本申请提出的基于全栈编码网络的数据处理设备,相对于传统的交换机等转发网络设备,在流水线处理模块中,在转发流水线组件的基础上,附加了一部分存储空间(即存储流水线组件所具有的存储空间),通过维持一个内容名的表单记录符合存储条件的数据内容,并依据该表单对所存储的数据内容进行各种操作等,本申请对该表单内容不做限制。It can be seen that, for the data processing device based on the full-stack coding network proposed in this application, compared with the traditional forwarding network devices such as switches, in the pipeline processing module, on the basis of the forwarding pipeline component, a part of storage space (that is, the storage pipeline is added) is added. The storage space of the component), record the data content that meets the storage conditions by maintaining a form with a content name, and perform various operations on the stored data content according to the form. This application does not limit the form content.
步骤S62,对所存储的数据内容进行定期更新检测;Step S62, regularly update and detect the stored data content;
为了减少存储资源浪费,对于数据平面中的任一数据处理节点所存储的数据内容,可以进行定期更新检测,及时清理长时间未被访问的数据内容。对此,本申请实施例可以在控制平面上,预先依据业务类型、数据处理场景等,自定义数据内容更新处理规则,本申请对该规则内容不做限制。之后,在数据处理设备运行过程中,可以按照预定义的数据内容更新处理规则,对自身存储的数据内容进行定期更新检测,实现过程不做详述。In order to reduce the waste of storage resources, the data content stored by any data processing node in the data plane can be regularly updated and detected, and the data content that has not been accessed for a long time can be cleaned up in time. In this regard, in this embodiment of the present application, a data content update processing rule may be customized on the control plane in advance according to the service type, data processing scenario, etc., and the present application does not limit the content of the rule. After that, during the operation of the data processing device, the data content stored by itself may be periodically updated and detected according to the predefined data content update processing rules, and the implementation process will not be described in detail.
基于此,在一些实施例中,对于数据处理设备所存储的各数据内容,可以记录该数据内容的动态存储时长、记录该数据内容每一次被访问后的未被访问时长等需要更新检测的内容,以便后续据此确定需要删除或更新的数据内容等,本申请对更新检测的内容不做限制,可视情而定。Based on this, in some embodiments, for each data content stored by the data processing device, the dynamic storage duration of the data content, the non-access duration after each access to the data content, etc. , so that the content of the data that needs to be deleted or updated can be subsequently determined accordingly. This application does not limit the content of the update detection, which may be determined according to the circumstances.
步骤S63,依据定期更新检测结果,删除所存储的预设时长内未被访问的数据内容;Step S63, according to the regular update detection result, delete the data content that has not been accessed within the stored preset duration;
结合上述分析,对所存储的数据内容的相关信息进行每一次更新检测后,若确定所存储的某些数据内容长时间未被访问,为了减少对存储资源的占用,可以从存储空间删除这类数据内容。因此,本申请可以依据数据处理场景、业务要求等,预先配置数据内容未被访问时长达到多少(记为预设时长),可以删除该数据内容,本申请对该预设时长的数值不作限制。Combined with the above analysis, after each update detection of the relevant information of the stored data content, if it is determined that some of the stored data content has not been accessed for a long time, in order to reduce the occupation of storage resources, you can delete such types of data from the storage space. data content. Therefore, this application can pre-configure how long the data content has not been accessed (referred to as the preset time length) according to the data processing scenario, business requirements, etc., and the data content can be deleted. This application does not limit the value of the preset time length.
其中,在上述数据内容更新处理过程中,可以针对数据存储设备所维护的每一个内容名的表单,配置对应的更新定时器(也可以称为过期定时器),用于记录对应数据内容每次被访问后的存储时长,在该存储时长未达到预设时长,该数据内容就被请求访问,可以刷新该更新定时器,如将该更新定时器的计时清零,从该数据内容本次被请求访问开始,重新对该数据内容未被访问的存储时长进行统计。Wherein, in the above data content update processing process, a corresponding update timer (also called an expiration timer) can be configured for each content name form maintained by the data storage device, which is used to record the corresponding data content every time The storage duration after being accessed, if the storage duration does not reach the preset duration, the data content is requested to be accessed, and the update timer can be refreshed. When the requested access starts, the storage time of the data content that has not been accessed is counted again.
步骤S64,检测到存储空间剩余量小于预设容量阈值,在获得待存储数据内容时,按照已存储数据内容的存储时间戳,确定最长时间未被请求访问的待处理数据包;Step S64, it is detected that the remaining amount of storage space is less than the preset capacity threshold, and when the data content to be stored is obtained, according to the storage time stamp of the stored data content, determine the to-be-processed data packet that has not been requested to access for the longest time;
步骤S65,由待存储数据内容替换所述待处理数据内容进行存储。In step S65, the data content to be processed is replaced by the data content to be stored for storage.
在又一些实施例中,关于数据处理设备对所存储的数据内容的更新处理方式,包括但并不局限于上文描述的对长时间未被访问的数据内容进行清理的处理方式,还可以依据数据存设备自身的存储空间动态余量,对新获得的需要存储的数据内容进行存储处理。因此,本申请可以对数据处理设备的存储空间剩余量进行实时检测,检测到该存储空间剩余量小于预设容量阈值,可以认为该数据处理设备的存储空间不足,为了对当前获得的待存储数据内容的存储,可以按照已存储数据内容的存储时间戳,替换掉最长时间未被请求访问的待处理数据包,但并不局限于这种处理方式。In still other embodiments, regarding the update processing method of the stored data content by the data processing device, including but not limited to the above-described processing method for cleaning up the data content that has not been accessed for a long time, it can also be based on The dynamic margin of the storage space of the data storage device itself is used to store the newly acquired data content that needs to be stored. Therefore, the present application can perform real-time detection on the remaining amount of storage space of the data processing device, and if it is detected that the remaining amount of storage space is less than the preset capacity threshold, it can be considered that the storage space of the data processing device is insufficient, in order to analyze the currently obtained data to be stored. In the storage of the content, the data packets to be processed that have not been requested to be accessed for the longest time can be replaced according to the storage time stamp of the stored data content, but it is not limited to this processing method.
在本申请提出的又一些实施例中,如上述分析,在数据处理设备的流水线处理过程中,除了数据包转发功能外,还可以附加一定的计算容量,即调用计算流水线组件,满足应用的计算服务。因此,如图7所示的本申请提出的基于全栈可编程网络的数据处理方法的又一可选示例的流程示意图,在完成数据包的解析后,还可以调用预定义的计算流水线组件进行计算,关于数据包的解析处理过程,可以参照上文实施例相应部分的描述,本实施例在此不做赘述,本实施例可以对计算流水线组件运行过程进行描述。如图7所示,该方法可以包括:In some other embodiments proposed in this application, according to the above analysis, in the pipeline processing process of the data processing device, in addition to the data packet forwarding function, a certain computing capacity can also be added, that is, the computing pipeline component can be called to meet the computing requirements of the application. Serve. Therefore, as shown in FIG. 7 , a schematic flowchart of another optional example of the data processing method based on the full-stack programmable network proposed by the present application, after completing the parsing of the data packet, a predefined computing pipeline component can also be called to perform For calculation, regarding the analysis and processing process of the data packet, reference may be made to the description of the corresponding part of the above embodiment, which is not repeated in this embodiment, and the operation process of the calculation pipeline component can be described in this embodiment. As shown in Figure 7, the method may include:
步骤S71,调用计算流水线组件,通过虚拟机方式对网络设备的计算容量进行配置,确定该网络设备所支持的各应用对应的虚拟机副本,以通过虚拟机副本实现对应应用的计算服务;Step S71, invoking the computing pipeline component, configuring the computing capacity of the network device by means of a virtual machine, and determining the virtual machine copy corresponding to each application supported by the network device, so as to realize the computing service of the corresponding application through the virtual machine copy;
本申请实施例中,对于应用的一些复杂计算,可以调用计算流水线组件,通过虚拟机方式,对数据处理设备的计算网络进行划分,为每一个需要计算服务的应用,提供具有计算能力的虚拟机副本,据此实现对应应用的计算服务,本申请对各应用所支持的计算服务类型及其运算原理不做详述,可以依据业务处理需求确定。In the embodiments of the present application, for some complex calculations of applications, the calculation pipeline component can be called to divide the computing network of the data processing device by means of a virtual machine, and provide a virtual machine with computing capabilities for each application that requires computing services Copy, according to which the computing service corresponding to the application is realized. This application does not describe in detail the computing service type supported by each application and its operation principle, which can be determined according to business processing requirements.
步骤S72,对虚拟机副本进行定期更新或删除;Step S72, regularly update or delete the virtual machine copy;
计算流水线组件可以自身所能够提供的计算服务,维持一个计算服务表单,据此实现对虚拟机副本的定时更新或删除,可以参照上文对数据内容的定期更新检测实现过程,如对于长时间未被启动的计算服务,可以删除支持该计算服务的虚拟机副本;若计算服务的功能更新,可以对应更新支持该计算服务的虚拟机副本,实现过程不做详述。The computing pipeline component can maintain a computing service form based on the computing services that it can provide, according to which the virtual machine copy can be updated or deleted regularly. The activated computing service may delete the virtual machine copy supporting the computing service; if the function of the computing service is updated, the virtual machine copy supporting the computing service may be updated correspondingly, and the implementation process will not be described in detail.
步骤S73,获取数据处理设备的计算特征信息;Step S73, acquiring computing feature information of the data processing device;
步骤S74,将该计算特征信息上报至控制平面的控制器,以使得控制器依据该计算特征信息,实现多个数据处理设备的统一管理与调度。Step S74 , reporting the computing feature information to the controller of the control plane, so that the controller implements unified management and scheduling of multiple data processing devices according to the computing feature information.
为了实现网络中多个数据处理设备的统一管理和调度,计算流水线组件可以提取所在数据处理设备的计算特征信息,如该数据处理设备的剩余计算容量等,及时将其上报至控制平面上的控制器,以使该控制依据该计算特征信息进行统一管理和调度,实现计算资源的合理利用。关于多个数据处理设备的管理和调度实现方法本申请在此不做详述。In order to achieve unified management and scheduling of multiple data processing devices in the network, the computing pipeline component can extract the computing feature information of the data processing device where it is located, such as the remaining computing capacity of the data processing device, and report it to the control plane on the control plane in time. so that the control can perform unified management and scheduling according to the computing feature information, so as to realize the rational utilization of computing resources. This application will not describe in detail the management and scheduling implementation methods of multiple data processing devices.
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器加载并执行,实现上述的基于全栈可编程网络的数据处理方法的各步骤,具体实现过程可以参照上述实施例相应部分的描述,本实施例不做赘述。Embodiments of the present application further provide a computer-readable storage medium on which a computer program is stored, and the computer program is loaded and executed by a processor to implement the steps of the above-mentioned full-stack programmable network-based data processing method, For a specific implementation process, reference may be made to the descriptions in the corresponding parts of the foregoing embodiments, which will not be repeated in this embodiment.
本申请实施例还提出了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述基于全栈可编程网络的数据处理方法的各种可选实现方式中所提供方法,具体实现过程可以参照上述相应实施例的描述,不做赘述。The embodiments of the present application also provide a computer program product or computer program, where the computer program product or computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the above-mentioned various optional implementations of the full-stack programmable network-based data processing method. For the method and the specific implementation process, reference may be made to the descriptions of the above corresponding embodiments, which will not be repeated.
最后,需要说明,本说明书中各个实施例采用递进或并列的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的数据处理设备、介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。Finally, it should be noted that the various embodiments in this specification are described in a progressive or juxtaposed manner, and each embodiment focuses on the differences from other embodiments, and the same and similar parts between the various embodiments can be referred to each other. . For the data processing device and medium disclosed in the embodiment, since it corresponds to the method disclosed in the embodiment, the description is relatively simple, and the relevant part can be referred to the description of the method.
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计预设条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Professionals may further realize that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two, in order to clearly illustrate the possibilities of hardware and software. Interchangeability, the above description has generally described the components and steps of each example in terms of function. Whether these functions are implemented in hardware or software depends on the specific application of the technical solution and design preset conditions. Skilled artisans may implement the described functionality using different methods for each particular application, but such implementations should not be considered beyond the scope of this application.
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的核心思想或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。The above description of the disclosed embodiments enables any person skilled in the art to make or use the present application. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the core idea or scope of the present application. Therefore, this application is not intended to be limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210793471.7A CN115174711A (en) | 2022-07-07 | 2022-07-07 | Data processing method, device and medium based on full-stack programmable network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210793471.7A CN115174711A (en) | 2022-07-07 | 2022-07-07 | Data processing method, device and medium based on full-stack programmable network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115174711A true CN115174711A (en) | 2022-10-11 |
Family
ID=83491389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210793471.7A Pending CN115174711A (en) | 2022-07-07 | 2022-07-07 | Data processing method, device and medium based on full-stack programmable network |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115174711A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116132018A (en) * | 2022-12-20 | 2023-05-16 | 暨南大学 | Method for realizing SHA256 algorithm on P4 programmable switch |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108306757A (en) * | 2017-12-25 | 2018-07-20 | 清华大学 | Programmable data planar virtual layer building method and storage medium |
CN108494574A (en) * | 2018-01-18 | 2018-09-04 | 清华大学 | Network function parallel processing architecture in a kind of NFV |
US20200053025A1 (en) * | 2018-08-13 | 2020-02-13 | Metaswitch Networks Ltd. | Programmable packet data processing system |
CN114337893A (en) * | 2021-12-28 | 2022-04-12 | 中国传媒大学 | A Precise Time Synchronization Method Based on Programmable Data Plane |
-
2022
- 2022-07-07 CN CN202210793471.7A patent/CN115174711A/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108306757A (en) * | 2017-12-25 | 2018-07-20 | 清华大学 | Programmable data planar virtual layer building method and storage medium |
CN108494574A (en) * | 2018-01-18 | 2018-09-04 | 清华大学 | Network function parallel processing architecture in a kind of NFV |
US20200053025A1 (en) * | 2018-08-13 | 2020-02-13 | Metaswitch Networks Ltd. | Programmable packet data processing system |
CN114337893A (en) * | 2021-12-28 | 2022-04-12 | 中国传媒大学 | A Precise Time Synchronization Method Based on Programmable Data Plane |
Non-Patent Citations (3)
Title |
---|
崔鹏帅: "存转算一体的多模态网络共性平台技术研究", 《中兴通讯技术》, pages 1 - 6 * |
张雯雯: "SDN数据平面软件一致性测试用例生成方法", 软件学报, pages 1 - 14 * |
赵敏;田野;: "P4与POF协议无关可编程网络技术比较研究", 网络新媒体技术, no. 01 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116132018A (en) * | 2022-12-20 | 2023-05-16 | 暨南大学 | Method for realizing SHA256 algorithm on P4 programmable switch |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12032933B2 (en) | Compiling system and compiling method for programmable network element | |
Bremler-Barr et al. | OpenBox: A software-defined framework for developing, deploying, and managing network functions | |
Foster et al. | Frenetic: a high-level language for OpenFlow networks | |
Jouet et al. | BPFabric: Data plane programmability for software defined networks | |
He et al. | Easynet: 100 gbps network for hls | |
EP2127221A1 (en) | A method and system for monitoring messages passed over a network | |
CN115118617B (en) | Method, system and storage medium for measuring intention driving network | |
Gracia-Tinedo et al. | Iostack: Software-defined object storage | |
Chaarawi et al. | A tool for optimizing runtime parameters of open mpi | |
CN118265973A (en) | Message processing method and device | |
Shiomoto | Research challenges for network function virtualization-re-architecting middlebox for high performance and efficient, elastic and resilient platform to create new services | |
CN115174711A (en) | Data processing method, device and medium based on full-stack programmable network | |
Alim et al. | {FLICK}: Developing and Running {Application-Specific} Network Services | |
CA2729314C (en) | A method of performing data mediation, and an associated computer program product, data mediation device and information system | |
CN113708965B (en) | High-performance component-based data packet processing system | |
Herlicq et al. | Nextgenemo: an efficient provisioning of edge-native applications | |
Gulias et al. | VoDKA: Developing a video-on-demand server using distributed functional programming | |
Bonelli et al. | Packet fan-out extension for the pcap library | |
Bannour et al. | A flexible GraphQL northbound API for intent-based SDN applications | |
CN116668520A (en) | Gateway-based service arrangement method, system, equipment and storage medium | |
Gobatto et al. | Programmable data planes meets in-network computing: A review of the state of the art and prospective directions | |
Fais et al. | Data Stream Processing in Software Defined Networks: Perspectives and Challenges | |
Michel | Packet-Level Network Telemetry and Analytics | |
CN113992644A (en) | Internet of things gateway system based on non-service technology and data processing method thereof | |
Hamadi et al. | Compiling packet forwarding rules for switch pipelined architecture |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221011 |