Service grid message acceleration processing method, device and system and DPU
By implementing the message acceleration processing method in the DPU protocol stack of the service mesh, using the service configuration information of the Sidecar proxy module for message processing and forwarding, the problem of large interaction overhead between the Sidecar proxy module and the protocol stack is solved, and the message is improved Forwarding efficiency and system performance.
Patent Information
- Application Number
- CN202411318071.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-20
- Publication Date
- 2025-02-18
- Estimated Expiration
- 2044-09-20
AI Technical Summary
In the existing service mesh message forwarding method, the interaction overhead between the Sidecar proxy module and the protocol stack is large, resulting in an increase in the application layer message delay. The Sidecar proxy module obtains data multiple times in the receiving buffer, affecting message forwarding. efficiency.
By implementing the service mesh message acceleration processing method in the protocol stack of the data processor DPU, using the service configuration information of the application layer message type pre-sented by the Sidecar proxy module, the service processing is performed in the protocol stack and the message is forwarded to the pre-supported The application layer message buffer is set to reduce the service processing and interaction overhead of the Sidecar proxy module.
It effectively reduces the interaction overhead between the protocol stack and the Sidecar proxy module, reduces the movement and copying of application layer messages at different software layers, and improves the efficiency of service mesh message forwarding and the overall performance of the system.
Smart Images

Figure CN119484460A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of data processing technology, and in particular to a service grid message acceleration processing method, device, system and DPU. Background Art
[0002] A service mesh is an intermediate layer for managing inter-service communication and traffic control. It provides a flexible, scalable, and transparent way to handle inter-service communication and security issues. A service mesh is usually deployed at the edge of a service as a proxy for the service to facilitate communication and control between services. A service mesh can implement functions such as load balancing, circuit breaking, monitoring, and authentication to improve the reliability, performance, and observability of services. In a service mesh, the role of the Sidecar proxy module is to act as a proxy for the service to help manage communication and functional expansion between services, and can be referred to as Sidecar.
[0003] At present, in the existing service mesh message forwarding method, the application layer message from the initiator to the target device needs to be processed by the Sidecar proxy module. The application layer message forwarding process needs to pass through the protocol stack and the Sidecar proxy module twice. The interaction overhead between the sidecar proxy module and the protocol stack and the business processing of the sidecar proxy module itself will increase the application layer message delay between the client and the server. In order to obtain the complete application layer message, the sidecar proxy module may also need to obtain data from the receiving end buffer (rxbuf) multiple times, which will affect the efficiency of service mesh message forwarding. Summary of the invention
[0004] In view of this, embodiments of the present application provide a service grid message acceleration processing method, device, system and DPU to eliminate or improve one or more defects existing in the prior art.
[0005] One aspect of the present application provides a service grid message acceleration processing method, including:
[0006] If it is determined that the application layer message type to which the target application layer message currently received in the protocol stack of the data processor DPU belongs has been marked as accelerated processing, then based on the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module, the target application layer message is subjected to service processing in the protocol stack;
[0007] The target application layer message is sent to a target application layer message buffer that is preset in the protocol stack and corresponds to the sending end buffer, so as to forward the target application layer message in the target application layer message buffer based on a network communication protocol.
[0008] In some embodiments of the present application, before performing service processing on the target application layer message in the protocol stack based on the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module, the further includes:
[0009] Based on the network transmission protocol, receiving data to be forwarded to the target device in the protocol stack of the DPU, and sending each data to an application layer message buffer that is set in the protocol stack and corresponds to the receiving end buffer so that the application layer message buffer parses each data and forms a corresponding application layer message, takes the application layer message as the current target application layer message and parses the target application layer message to obtain a unique identifier of the application layer message type to which the target application layer message belongs;
[0010] Among the pre-stored unique identifiers corresponding to each application layer message type that has been marked for accelerated processing, check whether the unique identifier of the application layer message type to which the target application layer message belongs is included. If so, determine that the application layer message type to which the target application layer message belongs has been marked for accelerated processing.
[0011] In some embodiments of the present application, the service grid message acceleration processing method further includes:
[0012] If the unique identifier of the application layer message type to which the target application layer message belongs is not found in the pre-stored unique identifiers corresponding to the respective application layer message types marked for accelerated processing, the target application layer message is sent to the receiving end buffer, so that the service grid Sidecar proxy module obtains the target application layer message from the receiving end buffer via the downstream interface, and the service grid Sidecar proxy module performs business processing on the target application layer message and sends the target application layer message to the sending end buffer;
[0013] Extracting the target application layer message from the sending end buffer;
[0014] The target application layer message is sent to a target application layer message buffer that is preset in the protocol stack and corresponds to the sending end buffer, so as to forward the target application layer message in the target application layer message buffer based on a network communication protocol.
[0015] In some embodiments of the present application, when or after the service grid Sidecar proxy module performs business processing on the target application layer message, the service grid Sidecar proxy module further generates an accelerated processing tag and business configuration information corresponding to a unique identifier of an application layer message type to which the target application layer message belongs, and then sends the accelerated processing tag and business configuration information corresponding to the unique identifier of the application layer message type to the protocol stack;
[0016] Correspondingly, before performing business processing on the target application layer message in the protocol stack based on the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module, the method further includes:
[0017] Receive the acceleration processing tag and business configuration information corresponding to the unique identifier of the application layer message type sent by the service grid Sidecar proxy module;
[0018] Based on the accelerated processing mark corresponding to the unique identifier of the application layer message type, the corresponding relationship between the unique identifier of the application layer message type and the accelerated processing mark and the service configuration information is stored in the protocol stack.
[0019] In some embodiments of the present application, the performing service processing on the target application layer message in the protocol stack based on the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module, includes:
[0020] Extracting network speed limit rule data corresponding to the application layer message type to which the target application layer message belongs from the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is sent in advance by the service grid Sidecar proxy module, and allocating corresponding network transmission speed limit constraint data to the target application layer message in the protocol stack based on the network speed limit rule data;
[0021] Correspondingly, forwarding the target application layer message in the target application layer message buffer based on the network communication protocol includes:
[0022] The target application layer message in the target application layer message buffer is forwarded based on the network communication protocol and the network transmission speed limit constraint data corresponding to the target application layer message.
[0023] In some embodiments of the present application, the performing service processing on the target application layer message in the protocol stack based on the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module, includes:
[0024] Extracting a target sending end buffer specified by the application layer message type to which the target application layer message belongs from the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is sent in advance by the service grid Sidecar proxy module;
[0025] Among the application layer message buffers in the protocol stack that are respectively uniquely corresponding to the respective sending end buffers, an application layer message buffer that is uniquely corresponding to the target sending end buffer is determined, so that the application layer message buffer is used as the current target application layer message buffer.
[0026] Another aspect of the present application provides a service grid message acceleration processing device, including:
[0027] A service processing unit, configured to, if it is determined that the application layer message type to which the target application layer message currently received in the protocol stack of the data processor DPU belongs has been marked as accelerated processing, perform service processing on the target application layer message in the protocol stack based on the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module;
[0028] The application layer message forwarding unit is used to send the target application layer message to a target application layer message buffer preset in the protocol stack and corresponding to the sending end buffer, so as to forward the target application layer message in the target application layer message buffer based on the network communication protocol.
[0029] A third aspect of the present application provides a service grid message acceleration processing system, comprising: a business processing module and an application layer message buffer that are respectively arranged in a protocol stack and are in communication connection with each other;
[0030] The business processing module is used to execute the service grid message acceleration processing method.
[0031] In some embodiments of the present application, in the service mesh message acceleration processing system, there are multiple application layer message buffers, and the multiple application layer message buffers include: an application layer message buffer that is communicatively connected to a receiving end buffer corresponding to a service mesh Sidecar proxy module, and an application layer message buffer that is communicatively connected to a sending end buffer corresponding to the service mesh Sidecar proxy module;
[0032] The service processing module is communicatively connected with the sending end buffer and the application layer message buffer respectively.
[0033] The fourth aspect of the present application provides a DPU, comprising: a protocol stack, and the service grid message acceleration processing system is provided in the protocol stack.
[0034] The service grid message acceleration processing method provided in the present application, if it is determined that the application layer message type to which the target application layer message currently received in the protocol stack of the data processor DPU belongs has been marked for accelerated processing, then based on the business configuration information corresponding to the application layer message type to which the target application layer message belongs which is pre-sent by the service grid Sidecar proxy module, the target application layer message is processed in the protocol stack; the target application layer message is sent to a target application layer message buffer preset in the protocol stack and corresponding to the sending end buffer, so as to forward the target application layer message in the target application layer message buffer based on the network communication protocol, so as to sink the business of the service grid Sidecar proxy module to the protocol stack, effectively reduce the interaction overhead between the protocol stack and the service grid Sidecar proxy module, and also reduce the movement and copying of application layer message data in different software layers, thereby improving the efficiency of service grid message forwarding and the overall performance of related systems while ensuring that the application layer business is effective.
[0035] Additional advantages, purposes, and features of the present application will be partially described in the following description, and will become partially apparent to those skilled in the art after studying the following, or may be learned from the practice of the present application. The purposes and other advantages of the present application can be achieved and obtained by the structures specifically pointed out in the specification and the drawings.
[0036] Those skilled in the art will understand that the purposes and advantages that can be achieved by the present application are not limited to the above specific description, and the above and other purposes that can be achieved by the present application will be more clearly understood based on the following detailed description. BRIEF DESCRIPTION OF THE DRAWINGS
[0037] The drawings described herein are used to provide a further understanding of the present application, constitute a part of the present application, and do not constitute a limitation of the present application. The components in the drawings are not drawn to scale, but are only for the purpose of illustrating the principles of the present application. In order to facilitate the illustration and description of some parts of the present application, the corresponding parts in the drawings may be enlarged, that is, they may become larger relative to other components in the exemplary device actually manufactured according to the present application. In the drawings:
[0038] Figure 1 Schematic diagram of service mesh traffic path.
[0039] Figure 2 This is a first flow chart of a method for accelerating service grid message processing in one embodiment of the present application.
[0040] Figure 3 This is a second flow chart of the service grid message acceleration processing method in one embodiment of the present application.
[0041] Figure 4 This is a third flow chart of the service grid message acceleration processing method in one embodiment of the present application.
[0042] Figure 5 This is a structural diagram of a service grid message acceleration processing device in one embodiment of the present application.
[0043] Figure 6 This is a structural diagram of a service grid message acceleration processing system in one embodiment of the present application.
[0044] Figure 7 A schematic diagram of the relationship between a service processing module (process) and an application layer message buffer (msgbuf) corresponding to a transmitting end buffer (txbuf) in an application example of the present application.
[0045] Figure 8 This is a schematic diagram of the Sidecar proxy module in an application example of the present application sending the service to the service processing module.
[0046] Fig. 9 This is a flowchart of an example of a method for accelerating service grid message processing in an application example of the present application. DETAILED DESCRIPTION
[0047] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the implementation modes and the accompanying drawings. Here, the illustrative implementation modes and descriptions of the present application are used to explain the present application, but are not intended to limit the present application.
[0048] It should also be noted here that in order to avoid obscuring the present application due to unnecessary details, only the structures and / or processing steps closely related to the scheme according to the present application are shown in the accompanying drawings, while other details that are not very relevant to the present application are omitted.
[0049] It should be emphasized that the term “include / comprises” when used herein refers to the presence of features, elements, steps or components, but does not exclude the presence or addition of one or more other features, elements, steps or components.
[0050] It should also be noted that, unless otherwise specified, the term “connection” herein may refer not only to a direct connection but also to an indirect connection involving an intermediate.
[0051] Hereinafter, embodiments of the present application will be described with reference to the accompanying drawings. In the accompanying drawings, the same reference numerals represent the same or similar components, or the same or similar steps.
[0052] First, the sidecar proxy module in the service mesh (also written as service mesh sidecar proxy module or sidecar proxy module) can achieve the following functions:
[0053] 1) Traffic management: The Sidecar proxy module can serve as the entry and exit of the service, responsible for managing traffic forwarding and routing between services. It can implement functions such as load balancing, circuit breaking, and current limiting to improve service reliability and performance.
[0054] 2) Security and Authentication: The Sidecar proxy module can be responsible for handling security and authentication issues between services. It can perform authentication, authorization, encryption and other operations to ensure that the communication between services is secure and reliable.
[0055] 3) Observability: The Sidecar proxy module can collect and forward service metrics, logs, and trace information for monitoring, analysis, and alerting. It can help the service mesh provide observability and debugging capabilities to better manage and maintain microservice architecture systems.
[0056] In order to implement application layer message forwarding based on service grid, we can first adopt the following Figure 1 In the service mesh traffic path architecture shown in the figure, the TCP connection from the client device (client) to the server (server) is actually split into two TCP connections by the Sidecar proxy module:
[0057] 1) The connection from the client device (client) of the downstream interface (downstream socket) to the Sidecar proxy module;
[0058] 2) The connection from the Sidecar proxy module of the upstream socket to the server; the proxy of the Sidecar proxy module is required.
[0059] Based on the above path, it can be seen that the application layer message from the client device (client) to the server (server) needs to pass through the protocol stack and the Sidecar proxy module twice because it requires the business processing of the Sidecar proxy module. The interaction overhead between the Sidecar proxy module and the protocol stack, and the business processing of the Sidecar proxy module itself, all increase the application layer message delay between the client device (client) and the server (server). At the same time, due to the streaming mode characteristics of TCP, incomplete application layer messages may exist in the receiving end buffer (rxbuf). As a result, data may have to be retrieved from the receiving end buffer (rxbuf) multiple times to obtain a complete application layer message, which in turn increases the processing delay of the Sidecar proxy module.
[0060] Based on this, in order to solve the problems of high latency and low efficiency of service mesh message forwarding in existing service mesh message forwarding methods, the embodiments of the present application respectively provide a service mesh message acceleration processing method, a service mesh message acceleration processing device for executing the service mesh message acceleration processing method, a service mesh message acceleration processing system and a DPU (data processor), which can sink the business of the service mesh Sidecar proxy module to the protocol stack, effectively reduce the interaction overhead between the protocol stack and the service mesh Sidecar proxy module and improve the forwarding efficiency of the service mesh messages.
[0061] The details are described in detail through the following examples.
[0062] Based on this, the embodiment of the present application provides a service grid message acceleration processing method that can be implemented by a service grid message acceleration processing device. The service grid message acceleration processing method is executed in the protocol stack of the data processor DPU, and the service grid message acceleration processing device is arranged in the protocol stack. Figure 2 The service grid message acceleration processing method specifically includes the following contents:
[0063] Step 100: If it is determined that the application layer message type to which the target application layer message currently received in the protocol stack of the data processor DPU belongs has been marked as accelerated processing, then based on the business configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module, business processing is performed on the target application layer message in the protocol stack.
[0064] In one or more embodiments of the present application, the service grid message acceleration processing device may be a business processing module provided in a protocol stack, which may be written as a process module.
[0065] Prior to step 100, the protocol stack first receives a target application layer message from an application layer message sender (such as an application APP in a client device) based on a network communication protocol such as the TCP / IP protocol and stores the target application layer message in an application layer message buffer (msgbuf) in the protocol stack that uniquely corresponds to the receiving end buffer (rxbuf), so that a service grid message acceleration processing device such as a process module can extract the target application layer message from the application layer message buffer (msgbuf) that uniquely corresponds to the receiving end buffer (rxbuf), and then parse the target application layer message to obtain the application layer message type to which the target application layer message belongs.
[0066] On this basis, in step 100, if the service grid message acceleration processing device such as the process module determines that the application layer message type to which the target application layer message currently received in the protocol stack of the data processor DPU belongs has been marked as accelerated processing, for example, the current label of the application layer message type to which the pre-stored target application layer message belongs is read as an accelerated processing label, then the service configuration information corresponding to the application layer message type to which the target application layer message belongs pre-stored in the service grid message acceleration processing device such as the process module is retrieved, and the service configuration information is changed to the service grid Sidecar proxy module that is sent to the service grid message acceleration processing device such as the process module in advance for storage or update. Then, the service grid message acceleration processing device such as the process module performs service processing on the target application layer message in the protocol stack according to the service configuration information.
[0067] Step 200: Send the target application layer message to a target application layer message buffer preset in the protocol stack and corresponding to the sending end buffer, so as to forward the target application layer message in the target application layer message buffer based on a network communication protocol.
[0068] In one or more embodiments of the present application, the target application layer message buffer refers to the application layer message buffer (msgbuf) corresponding to the sending end buffer (txbuf) that is finally selected to cache the target application layer message for forwarding. That is to say, in the service grid message acceleration processing method provided in the embodiment of the present application, a plurality of application layer message buffers (msgbuf) are provided in the protocol stack, which can be specifically divided into an application layer message buffer (msgbuf) corresponding to the receiving end buffer (rxbuf) and an application layer message buffer (msgbuf) corresponding to the sending end buffer.
[0069] From the above description, it can be seen that the service grid message acceleration processing method provided in the embodiment of the present application can sink the business of the service grid Sidecar proxy module to the protocol stack, which can effectively reduce the interaction overhead between the protocol stack and the service grid Sidecar proxy module, and can also reduce the movement and copying of application layer message data in different software layers, thereby improving the efficiency of service grid message forwarding and the overall performance of related systems while ensuring that the application layer business is effective.
[0070] In order to further improve the effectiveness and reliability of determining that the application layer message type to which the target application layer message currently received in the protocol stack of the data processor DPU belongs has been marked as accelerated processing, in a service grid message acceleration processing method provided in an embodiment of the present application, see Figure 3 The service grid message acceleration processing method further includes the following contents before step 100:
[0071] Step 010: Based on the network transmission protocol, data to be forwarded to the target device is received in the protocol stack of the DPU, and each data is sent to an application layer message buffer that is set in the protocol stack and corresponds to the receiving end buffer so that the application layer message buffer parses each of the data and composes a corresponding application layer message, and uses the application layer message as the current target application layer message and parses the target application layer message to obtain a unique identifier of the application layer message type to which the target application layer message belongs.
[0072] It should be noted that the network transmission protocol can adopt the TCP / IP protocol. The data in the buffer of the TCP / IP protocol is in stream mode. Multiple application layer messages are connected end to end, and the integrity of the application layer message cannot be guaranteed. If the application layer message received based on the network transmission protocol is directly sent to the process module, the process module cannot split each application layer message, nor can it process incomplete application layer messages. Therefore, in order to further reduce the delay of service grid message processing and improve the forwarding efficiency of service grid messages, in an embodiment of the present application, the protocol stack is in the application layer message buffer (msgbuf) corresponding to the receiving end buffer so that the application layer message buffer parses each of the data and composes the corresponding application layer message, that is, after the application layer message buffer (msgbuf) parses the TCP stream received by the network transmission module based on the network transmission protocol and composes a complete application layer message, it is sent to the process module for parsing the unique identifier of the application layer message type to which it belongs.
[0073] Step 020: Search among the pre-stored unique identifiers corresponding to each application layer message type marked for accelerated processing to see whether the unique identifier of the application layer message type to which the target application layer message belongs is included; if so, execute step 030.
[0074] Step 030: Determine that the application layer message type to which the target application layer message belongs has been marked for accelerated processing.
[0075] In an example of the present application, the unique identifier of the application layer message type can specifically adopt the corresponding user ID, which can be written as UserID.
[0076] In order to further improve the execution effectiveness and reliability of the service grid message acceleration process, in a service grid message acceleration method provided in an embodiment of the present application, see Figure 3 The service grid message acceleration processing method further includes the following contents before step 100:
[0077] If the unique identifier of the application layer message type to which the target application layer message belongs is not found in the pre-stored unique identifiers corresponding to the respective application layer message types marked for accelerated processing in step 020, step 040 is executed.
[0078] Step 040: Send the target application layer message to the receiving end buffer, so that the service grid Sidecar proxy module obtains the target application layer message from the receiving end buffer via the downstream interface, and the service grid Sidecar proxy module performs business processing on the target application layer message and sends the target application layer message to the sending end buffer.
[0079] Step 050: Extract the target application layer message from the sending end buffer.
[0080] In the existing service grid message forwarding method, since the network transmission module based on the TCP / IP protocol in the protocol stack is directly connected to the receiving end buffer, and the data in the receiving end buffer is in stream mode, multiple application layer messages are connected end to end, and the integrity of the application layer message cannot be guaranteed, the service grid Sidecar proxy module is required to obtain each data in the receiving end buffer multiple times and compose the corresponding application layer message by itself. In the above step 040 designed in the embodiment of the present application, since the data is not directly sent to the receiving end buffer by the network transmission module based on the TCP / IP protocol, but is first sent to the application layer message buffer (msgbuf) corresponding to the receiving end buffer in the protocol stack so that the application layer message buffer parses each of the data and composes the corresponding application layer message. In this way, even if a certain type of application layer message sent by an application of a client device is received for the first time, the number of interactions between the service grid Sidecar proxy module and the receiving end buffer can be greatly reduced, so as to further improve the execution efficiency of the service grid message acceleration processing process.
[0081] Step 060: Send the target application layer message to a target application layer message buffer that is preset in the protocol stack and corresponds to the sending end buffer, so as to forward the target application layer message in the target application layer message buffer based on a network communication protocol.
[0082] In order to further improve the execution effectiveness and reliability of the service grid message acceleration processing process, in a service grid message acceleration processing method provided in an embodiment of the present application, when or after the service grid Sidecar proxy module performs business processing on the target application layer message, the service grid Sidecar proxy module also generates an acceleration processing tag and business configuration information corresponding to the unique identifier of the application layer message type to which the target application layer message belongs, and then sends the acceleration processing tag and business configuration information corresponding to the unique identifier of the application layer message type to the protocol stack; correspondingly, see Figure 3 The service grid message acceleration processing method further includes the following contents after step 040 and before step 100:
[0083] Step 070: Receive the acceleration processing tag and business configuration information corresponding to the unique identifier of the application layer message type sent by the service grid Sidecar proxy module.
[0084] Step 080: Based on the accelerated processing tag corresponding to the unique identifier of the application layer message type, the corresponding relationship between the unique identifier of the application layer message type and the accelerated processing tag and service configuration information is stored in the protocol stack.
[0085] In order to further improve the effectiveness and reliability of business processing of the target application layer message in the protocol stack, in a service grid message acceleration processing method provided in an embodiment of the present application, the business configuration information includes network speed limit rule data corresponding to the application layer message type to which the target application layer message belongs. Correspondingly, see Figure 4 , step 100 in the service grid message acceleration processing method specifically includes the following contents:
[0086] Step 110: Extract the network speed limit rule data corresponding to the application layer message type to which the target application layer message belongs from the business configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module, and based on the network speed limit rule data, allocate corresponding network transmission speed limit constraint data to the target application layer message in the protocol stack.
[0087] Correspondingly, step 200 in the service grid message acceleration processing method specifically includes the following contents:
[0088] Step 210: forwarding the target application layer message in the target application layer message buffer based on the network communication protocol and the network transmission speed limit constraint data corresponding to the target application layer message.
[0089] In order to further improve the effectiveness and reliability of business processing of the target application layer message in the protocol stack, in a service grid message acceleration processing method provided in an embodiment of the present application, the target sending end buffer specified by the application layer message type to which the target application layer message belongs, correspondingly, see Figure 4 Step 100 in the service grid message acceleration processing method may also specifically include the following content:
[0090] Step 120: Extract the target sending end buffer specified by the application layer message type to which the target application layer message belongs from the business configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module.
[0091] Step 130: Determine, among the application layer message buffers in the protocol stack that uniquely correspond to the respective sender buffers, an application layer message buffer that uniquely corresponds to the target sender buffer, and use the application layer message buffer as the current target application layer message buffer.
[0092] The present application also provides a service grid message acceleration processing device (also referred to as a service processing module) for executing all or part of the service grid message acceleration processing method, see Figure 5 The service grid message acceleration processing device specifically includes the following contents:
[0093] The business processing unit 10 is used to perform business processing on the target application layer message in the protocol stack based on the business configuration information corresponding to the application layer message type to which the target application layer message currently received in the protocol stack of the data processor DPU belongs, if it is determined that the application layer message type to which the target application layer message currently received in the protocol stack of the data processor DPU belongs has been marked as accelerated processing.
[0094] The application layer message forwarding unit 20 is used to send the target application layer message to a target application layer message buffer preset in the protocol stack and corresponding to the sending end buffer, so as to forward the target application layer message in the target application layer message buffer based on the network communication protocol.
[0095] The embodiment of the service grid message acceleration processing device provided in the present application can be specifically used to execute the processing flow of the embodiment of the service grid message acceleration processing method in the above-mentioned embodiment. Its functions will not be repeated here, and reference can be made to the detailed description of the embodiment of the above-mentioned service grid message acceleration processing method.
[0096] The part of the service grid message acceleration processing device that performs service grid message acceleration processing can be completed in the protocol stack of the DPU.
[0097] From the above description, it can be seen that the service grid message acceleration processing device provided in the embodiment of the present application can sink the business of the service grid Sidecar proxy module to the protocol stack, which can effectively reduce the interaction overhead between the protocol stack and the service grid Sidecar proxy module, and can also reduce the movement and copying of application layer message data in different software layers, thereby improving the efficiency of service grid message forwarding and the overall performance of related systems while ensuring that the application layer business is effective.
[0098] Based on the aforementioned service grid message acceleration processing method and / or the service grid message acceleration processing device, the present application also provides an embodiment of the service grid message acceleration processing system, see Figure 6 The service grid message acceleration processing system specifically includes the following contents:
[0099] The business processing modules and application layer message buffers connected to each other in the protocol stack are respectively set;
[0100] The business processing module is used to execute the service grid message acceleration processing method in the aforementioned embodiment. The embodiment of the business processing module provided in the present application can be specifically used to execute the processing flow of the embodiment of the service grid message acceleration processing method in the aforementioned embodiment. Its functions will not be repeated here, and reference can be made to the detailed description of the embodiment of the aforementioned service grid message acceleration processing method.
[0101] In order to further improve the effectiveness and reliability of the service grid message acceleration processing, in one embodiment of the service grid message acceleration processing system, there are multiple application layer message buffers, and the multiple application layer message buffers include: an application layer message buffer that is communicatively connected to the receiving end buffer corresponding to the service grid Sidecar proxy module, and an application layer message buffer that is communicatively connected to the sending end buffer corresponding to the service grid Sidecar proxy module;
[0102] The service processing module is communicatively connected with the sending end buffer and the application layer message buffer respectively.
[0103] Based on the above-mentioned embodiment of the service grid message acceleration processing system, the present application also provides an embodiment of a data processor DPU, in which a protocol stack is provided, and the service grid message acceleration processing system provided in the above-mentioned embodiment is provided in the protocol stack. In order to further improve the overall performance of the service grid message acceleration processing, in an embodiment of a data processor DPU provided in the present application, the DPU is also provided with the service grid Sidecar proxy module.
[0104] Based on this, in order to make it easier to understand the above embodiments proposed in this application, this application also provides a specific application example of a service grid message acceleration processing method, see Figure 7 , add an application layer message buffer (msgbuf) and a service processing module (process) under the receiving end buffer (rxbuf), wherein the service processing module may include at least a ratelimit service unit and a router service unit, wherein the ratelimit service unit is used to execute the aforementioned step 110, and the router service unit is used to execute the aforementioned steps 120 and 130. The data in TCP's buf (buffer) is in stream mode, multiple application layer messages are connected end to end, and the integrity of the application layer messages cannot be guaranteed, and are directly sent to the service processing module. The service processing module cannot split each message, nor can it process incomplete messages. The TCP stream is parsed in the application layer message buffer, and after the completed application layer message is formed, it is sent to the service processing module. The service processing module performs service processing on the complete application layer message according to the service configured by the user. For example, the UserID (user ID) in the message is parsed, different users are given different rate limits, or different upstreams are selected for sending.
[0105] See also Figure 8 The business processing module provides a configuration channel, and the Sidecar proxy module can deliver the business to the business processing module.
[0106] See also Fig. 9 , take the first application layer message and the second application layer message as examples for explanation, where the unique identifier of the first application layer message is UserID1, and the unique identifier of the second application layer message is UserID2. According to the business configuration, the first application layer message of the same type is sent to the Sidecar proxy module along the normal path. After the Sidecar proxy module processes it, it will send the business configuration to the business processing module (process). The subsequent business processing module (process) directly performs business processing and forwards it to the application layer message buffer (msgbuf) of the sending end buffer (txbuf). The application layer message can be directly forwarded without passing through the Sidecar proxy module.
[0107] The application layer message buffer (msgbuf) has two sources in the sending direction, and the order cannot be guaranteed, which will cause disorder. However, the application layer message buffer (msgbuf) can guarantee the complete application layer message, which will only affect the disorder at the message level, and will not cause the disorder of the original TCP stream in the buffer. Therefore, it will not affect the client device (client) and server (server) processing.
[0108] Based on this, except for the first request, the above-mentioned application instance of the present application does not need to enter the application proxy to achieve forwarding, thereby reducing the message latency. In other words, the above-mentioned application instance of the present application actually provides a method for sinking the Sidecar proxy module business in a service grid to the protocol stack. This design can realize the first packet to be sent to the Sidecar proxy module, and the subsequent packets can be directly forwarded without passing through the Sidecar proxy module. The first request of the application layer message takes a slow path, and the subsequent requests take a fast path. This can reduce the interaction overhead between the protocol stack and the Sidecar proxy module, and also reduce the movement and copying of data in different software layers, thereby ensuring that the application layer business is effective. Improvement of the overall system performance can be achieved.
[0109] It should be understood by those skilled in the art that the exemplary components, systems and methods described in conjunction with the embodiments disclosed herein can be implemented in hardware, software or a combination of the two. Whether it is specifically performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application. When implemented in hardware, it can be, for example, an electronic circuit, an application specific integrated circuit (ASIC), appropriate firmware, a plug-in, a function card, etc. When implemented in software, the elements of this application are programs or code segments used to perform the required tasks. The program or code segment can be stored in a machine-readable medium, or transmitted on a transmission medium or a communication link via a data signal carried in a carrier.
[0110] It should be clear that the present application is not limited to the specific configuration and processing described above and shown in the figures. For the sake of simplicity, a detailed description of the known method is omitted here. In the above embodiments, several specific steps are described and shown as examples. However, the method process of the present application is not limited to the specific steps described and shown, and those skilled in the art can make various changes, modifications and additions, or change the order between the steps after understanding the spirit of the present application.
[0111] In the present application, features described and / or illustrated for one embodiment may be used in the same manner or in a similar manner in one or more other embodiments, and / or combined with features of other embodiments or replace features of other embodiments.
[0112] The above description is only the preferred embodiment of the present application and is not intended to limit the present application. For those skilled in the art, the embodiments of the present application may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included in the protection scope of the present application.
Claims
1. A service grid message acceleration processing method, characterized in that: include: If it is determined that the application layer message type to which the target application layer message currently received in the protocol stack of the data processor DPU belongs has been marked as accelerated processing, then based on the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module, the target application layer message is subjected to service processing in the protocol stack; The target application layer message is sent to a target application layer message buffer that is preset in the protocol stack and corresponds to the sending end buffer, so as to forward the target application layer message in the target application layer message buffer based on a network communication protocol.
2. The service grid message acceleration processing method according to claim 1, characterized in that: Before performing service processing on the target application layer message in the protocol stack based on the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module, the method further includes: Based on the network transmission protocol, receiving data to be forwarded to the target device in the protocol stack of the DPU, and sending each data to an application layer message buffer that is set in the protocol stack and corresponds to the receiving end buffer so that the application layer message buffer parses each data and forms a corresponding application layer message, takes the application layer message as the current target application layer message and parses the target application layer message to obtain a unique identifier of the application layer message type to which the target application layer message belongs; Among the pre-stored unique identifiers corresponding to each application layer message type that has been marked for accelerated processing, check whether the unique identifier of the application layer message type to which the target application layer message belongs is included. If so, determine that the application layer message type to which the target application layer message belongs has been marked for accelerated processing.
3. The service grid message acceleration processing method according to claim 2, characterized in that: Also includes: If the unique identifier of the application layer message type to which the target application layer message belongs is not found in the pre-stored unique identifiers corresponding to the respective application layer message types marked for accelerated processing, the target application layer message is sent to the receiving end buffer, so that the service grid Sidecar proxy module obtains the target application layer message from the receiving end buffer via the downstream interface, and the service grid Sidecar proxy module performs business processing on the target application layer message and sends the target application layer message to the sending end buffer; Extracting the target application layer message from the sending end buffer; The target application layer message is sent to a target application layer message buffer that is preset in the protocol stack and corresponds to the sending end buffer, so as to forward the target application layer message in the target application layer message buffer based on a network communication protocol.
4. The service grid message acceleration processing method according to claim 3, characterized in that: When or after the service grid Sidecar proxy module performs service processing on the target application layer message, the service grid Sidecar proxy module further generates an accelerated processing tag and service configuration information corresponding to the unique identifier of the application layer message type to which the target application layer message belongs, and then sends the accelerated processing tag and service configuration information corresponding to the unique identifier of the application layer message type to the protocol stack; Correspondingly, before performing business processing on the target application layer message in the protocol stack based on the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module, the method further includes: Receive the acceleration processing tag and service configuration information corresponding to the unique identifier of the application layer message type sent by the service grid Sidecar proxy module; Based on the accelerated processing mark corresponding to the unique identifier of the application layer message type, the corresponding relationship between the unique identifier of the application layer message type and the accelerated processing mark and the service configuration information is stored in the protocol stack.
5. The service grid message acceleration processing method according to claim 1, characterized in that: The performing business processing on the target application layer message in the protocol stack based on the business configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module, includes: Extracting network speed limit rule data corresponding to the application layer message type to which the target application layer message belongs from the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is sent in advance by the service grid Sidecar proxy module, and allocating corresponding network transmission speed limit constraint data to the target application layer message in the protocol stack based on the network speed limit rule data; Correspondingly, forwarding the target application layer message in the target application layer message buffer based on the network communication protocol includes: The target application layer message in the target application layer message buffer is forwarded based on the network communication protocol and the network transmission speed limit constraint data corresponding to the target application layer message.
6. The service grid message acceleration processing method according to claim 1 or 5, characterized in that: The performing business processing on the target application layer message in the protocol stack based on the business configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module, includes: Extracting a target sending end buffer specified by the application layer message type to which the target application layer message belongs from the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is sent in advance by the service grid Sidecar proxy module; Among the application layer message buffers in the protocol stack that are respectively uniquely corresponding to the respective sending end buffers, an application layer message buffer that is uniquely corresponding to the target sending end buffer is determined, so that the application layer message buffer is used as the current target application layer message buffer.
7. A service grid message acceleration processing device, characterized in that: include: A service processing unit, configured to, if it is determined that the application layer message type to which the target application layer message currently received in the protocol stack of the data processor DPU belongs has been marked as accelerated processing, perform service processing on the target application layer message in the protocol stack based on the service configuration information corresponding to the application layer message type to which the target application layer message belongs, which is pre-sent by the service grid Sidecar proxy module; The application layer message forwarding unit is used to send the target application layer message to a target application layer message buffer preset in the protocol stack and corresponding to the sending end buffer, so as to forward the target application layer message in the target application layer message buffer based on the network communication protocol.
8. A service grid message acceleration processing system, characterized in that: include: The business processing modules and application layer message buffers connected to each other in the protocol stack are respectively set; The business processing module is used to execute the service grid message acceleration processing method described in any one of claims 1 to 7.
9. The service grid message acceleration processing system according to claim 8, characterized in that: There are multiple application layer message buffers, including: an application layer message buffer that is communicatively connected to a receiving end buffer corresponding to a service mesh Sidecar proxy module, and an application layer message buffer that is communicatively connected to a sending end buffer corresponding to the service mesh Sidecar proxy module; The service processing module is communicatively connected with the sending end buffer and the application layer message buffer respectively.
10. A DPU, characterized in that: include: A protocol stack, wherein the protocol stack is provided with a service grid message acceleration processing system as described in claim 8 or 9.
Citation Information
Patent Citations
Data plane forwarding method and device based on DPU, equipment and medium
CN117240935A
Service flow forwarding method, device and system based on DPU
CN117478589A
Service grid data plane acceleration method and device and readable storage medium
CN118158165A
Data processing method, device and system based on DPU and medium
CN118474220A
Microservice-Based Service Mesh System and Service Oriented Architecture Governance Method
US20230239326A1