A communication method and computing device between services

By setting the service type in the service mesh architecture and using the sockmap module to bypass the TCP/IP protocol stack, the problem of communication delay between the service and the service mesh agent is solved, and more efficient network packet transmission is achieved.

CN116248744BActive Publication Date: 2025-04-01XFUSION DIGITAL TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202211654854.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-22
Publication Date
2025-04-01
Estimated Expiration
2042-12-22

AI Technical Summary

Technical Problem

Under the service grid architecture, communication between the service and the service grid agent needs to go through multiple TCP/IP protocol stacks, resulting in an increase in network communication delay.

Method used

By setting the service type in the socket connection between the application and the proxy, and using the sockmap module to confirm that the service type is a specific service type, network packets are forwarded by bypassing the TCP/IP protocol stack.

Benefits of technology

It reduces the network communication delay between the service and the service grid agent, avoids the memory consuming of too much network information in the sockmap, and improves query efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116248744B_ABST
    Figure CN116248744B_ABST
Patent Text Reader

Abstract

A communication method between services, used for communication between two services, each service includes an application end and an agent end, including: creating a socket connection between the application end and the agent end; setting the business type of the business transmitted by the application end and the agent end in the socket connection; when the business type of the transmitted business is confirmed to be the first business type through the sockmap module, the network data packet between the application end and the agent end is forwarded bypassing the TCP / IP protocol stack. In this way, the computing device forwards the network data packet between the application end and the agent end by bypassing the TCP / IP protocol through the sockmap module only when the type of the business transmitted by the application end and the agent end is a specific business type. As a result, the communication delay between the two services performing specific business is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of information technology (IT) technology, and in particular to a communication method, device and storage medium between services. Background Art

[0002] Service mesh is a new generation of microservice architecture. As the infrastructure layer for communication between services, service mesh is a lightweight, high-performance network proxy that can provide secure, fast, and reliable communication between services, deployed together with the actual application, but transparent to the application. Under this architecture, the application, as the initiator of the service, can send the request to the local service mesh proxy, which then performs subsequent operations such as service discovery, load balancing, and finally forwards the request to the target service. The current service mesh solution is istio. istio is an open source service mesh framework initiated by some companies. However, under this framework, the communication between the service and the service mesh proxy often needs to go through multiple TCP / IP protocol stacks, which increases the delay of network communication between the service and the service mesh proxy. Therefore, how to reduce the network delay between the service and the service mesh proxy is a technical problem that needs to be solved urgently. Summary of the invention

[0003] The present application provides a communication method and computing device between services, which can reduce the communication delay between different services (such as between a service and a service grid agent).

[0004] In a first aspect, the present application provides a method for communication between services, which is used for communication between two services, each service including an application end and an agent end; including: creating a socket connection between the application end and the agent end; setting the business type of the business transmitted by the application end and the agent end in the socket connection; when it is confirmed through the sockmap module that the business type of the transmitted business is the first business type, forwarding the network data packets between the application end and the agent end by bypassing the TCP / IP protocol stack.

[0005] In this way, the computing device forwards the network data packets between the application end and the proxy end by bypassing the TCP / IP protocol through the sockmap module only when the type of business transmitted between the application end and the proxy end is a specific business type, thereby reducing the communication delay between the two services performing the specific business.

[0006] In a possible implementation, the service type of the service transmitted between the application and the agent is set in the socket connection, including: if the type transmitted between the application and the agent is a first service type, the service type in the socket option module is set to a first value.

[0007] In a possible implementation, the service type is set in a socket option module in the application or agent.

[0008] In a possible implementation, after the step of setting the service type of the service transmitted by the application end and the proxy end in the socket connection, the method includes: calling the sockmap module so that the sockmap module obtains the socket connection; based on the obtained socket connection, determining whether the service type of the service transmitted by the socket connection is the first service type.

[0009] In a possible implementation, based on the obtained socket connection, determining whether the service type of the service transmitted by the socket connection is the first service type includes: extracting the service type in the socket option module from the socket connection; if the service type in the socket option module matches the service type in the socket option in the sockmap module, determining that the service type of the transmitted service is the first service type; wherein the service type in the socket option in the sockmap module is pre-set.

[0010] In one possible implementation, when the sockmap program confirms that the service type of the transmitted service is the first service type, the step of forwarding the network data packet between the application end and the proxy end bypassing the TCP / IP protocol stack includes: when the sockmap module confirms for the first time from the socket connection that the service type of the transmitted service is the first service type, the network information in the socket connection is extracted and saved in the sock mapping table; wherein the sock mapping table is used to save the network information of the service type that allows bypassing the TCP / IP protocol stack to transmit the network data packet.

[0011] In one possible implementation, when it is confirmed through the sockmap program that the service type of the transmitted service is the first service type, the step of forwarding the network data packet between the application end and the agent end is bypassed by the TCP / IP protocol stack, including: obtaining the network data packet transmitted between the application end and the agent end; extracting the network information in the network data packet; if the network information in the extracted data packet matches the network information stored in the mapping table, then forwarding the network data packet is bypassed by the TCP / IP protocol stack.

[0012] In a possible implementation, the network information includes one or more of a source IP, a source TCP port, a destination IP, and a destination TCP port of the first service type.

[0013] In a possible implementation, the method further includes: if it is confirmed through the sockmap module that the network information of the sent network data packet does not match the network information stored in the mapping table, sending the network data packet between the application end and the agent end through the TCP / IP protocol stack.

[0014] In one possible implementation, the method further includes: in response to an instruction to change the network information stored in the mapping table, setting the service type value in the socket option module to an expected value; and setting the service type in the socket option in the sockmap module to the expected value.

[0015] In a possible implementation, the first business type is a service grid type.

[0016] In a second aspect, the present application provides a computing device, in which a device for executing at least one of the two services in the first aspect is deployed.

[0017] It can be understood that the beneficial effects of the second aspect mentioned above can be found in the relevant description of the first aspect mentioned above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] Figure 1 It is a schematic diagram of a communication network architecture provided by an embodiment of the present application and provided under the istio framework;

[0019] Figure 2 It is a schematic diagram of a network architecture for inter-service communication provided in an embodiment of the present application;

[0020] Figure 3 It is a flow chart of a communication method between services provided in an embodiment of the present application. DETAILED DESCRIPTION

[0021] The term "and / or" in this article is a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. The symbol " / " in this article indicates that the associated objects are in an or relationship, for example, A / B means A or B.

[0022] The terms "first" and "second" in the specification and claims herein are used to distinguish different objects rather than to describe a specific order of the objects. For example, a first response message and a second response message are used to distinguish different response messages rather than to describe a specific order of the response messages.

[0023] In the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a specific way.

[0024] In the description of the embodiments of the present application, unless otherwise specified, "multiple" means two or more than two. For example, multiple processing units refer to two or more processing units, etc.; multiple elements refer to two or more elements, etc.

[0025] For example, Figure 1 Figure 1 shows a communication network architecture that is served under the istio framework. Figure 1 As shown in the figure, when Service1 in Pod1 communicates with Service2 in Pod2, the data sent by Service1 needs to pass through the socket interface, TCP / IP protocol stack and iptables in turn to reach the loopback network card in Pod1. Then, the data forwarded by the loopback network card passes through the TCP / IP protocol stack and the socket interface in turn to reach the service grid proxy 1. Then, the data forwarded by Proxy1 passes through the socket interface, TCP / IP protocol stack and iptables protocol stack in turn to reach the physical network card (eth0), and is transmitted from eth0 to the container bridge (Docker bridge). Then, the data forwarded by the Docker bridge first passes through eth0, iptables, TCP / IP protocol stack and socket interface in pod2 to reach Proxy2. Then, the data forwarded by Proxy2 passes through the socket interface and TCP / IP protocol stack in turn to reach the loopback network card in Pod2. Finally, the data forwarded by the loopback network card in Pod2 passes through iptables, TCP / IP protocol stack and socket interface in turn to reach Service2. Among them, Proxy is mainly used for service discovery (such as detecting all available upstream or downstream service instances, etc.), health detection (such as detecting whether the upstream or downstream service instances are healthy and ready to receive network traffic, etc.), traffic routing (such as routing network requests to the correct upstream or downstream services, etc.), load balancing (for example: when making requests to upstream or downstream services, select the appropriate service instance to receive the request, and handle timeouts, circuit breaks, retries, etc.), etc. For example, Figure 1 A Pod in can be a collection of containers. In addition, Figure 1The Proxy in the example can be, but is not limited to, a Sidecar or Envoy located on the data plane in the istio framework.

[0026] Depend on Figure 1 The communication process between services can be seen in Figure 1 When the Service and Proxy on the same pod communicate, whether the Service sends data to the Proxy or the Service receives data sent by the Proxy, they need to use the Socket mechanism and go through the TCP / IP protocol stack twice, which greatly increases the delay of communication between the two.

[0027] In order to reduce the communication delay between the Service and Proxy on the same pod, you can use the sockmap technology in the service grid. Next, the system architecture of using the sockmap technology in the service grid is introduced.

[0028] For example, Figure 2 Figure 1 shows a network architecture for inter-service communication. Figure 2 As shown, in this architecture, Pod1 and Pod2 are located in the same computing device. Of course, Pod1 and Pod2 can also be located in different computing devices. A Socket connection can be established between the Service and the Proxy in each Pod through the Socket interface. In this system architecture, the Sockops component can be used to accelerate the communication between the Service and the Proxy in a Pod. Among them, Sockops is a component in the open source Cillium, which mainly uses the Sockmap technology to directly bypass the TCP / IP protocol stack and send the message directly to the peer socket, thereby accelerating the communication between the sockets of the same node.

[0029] In this embodiment, an extended Berkeley packet filter (eBPF) is mounted on each Socket interface to implement the Sockmap technology. Among them, Sockmap is a special eBPF MAP type provided by eBPF, which is mainly used for socket redirection. When the source and destination establish a socket connection, the network information of both ends (i.e., source IP address, destination IP address, source port and destination port) will be added to the sockmap. When a message is transmitted through the socket interface, the kernel will execute the eBPF program mounted under this socket interface to filter the message. If the key of the message (mainly a four-tuple, i.e., source IP address, destination IP address, source port and destination port) is hit in the sockmap (i.e., the key of the message exists in the sockmap), then the message will bypass the TCP / IP protocol stack and be sent directly to the socket of the opposite end to accelerate the communication between the same node sockets.

[0030] In this embodiment, in user mode, the user can use eBPF assembly or eBPF-specific C language to write eBPF programs, and use the low level virtual machine (LLVM) / CLang compiler to compile the eBPF program into eBPF bytecode, and load the eBPF bytecode into the kernel. In kernel mode, the kernel can use just in time (JIT) technology to compile the eBPF bytecode into native machine code. Then, the kernel can mount the obtained eBPF native machine code to different running paths of the kernel according to the function of the eBPF program to complete the mounting of the eBPF program. When the kernel runs to these paths, it will trigger the execution of the eBPF native machine code on the corresponding path. In some embodiments, the eBPF program can be mounted on the socket interface, so that when the socket interface receives a message, the eBPF program will be executed to filter the message. Exemplarily, the setsockopt() function can be used to mount the eBPF native machine code on the socket interface, and the code is as follows:

[0031] setsockopt(sock,SOL_SOCKET,SO_ATTACH_BPF,&prog_fd,sizeof(prog_fd));

[0032] The meaning of each parameter in the setsockopt() function is as follows:

[0033] sock: the socket handle where the eBPF program is to be mounted;

[0034] SOL_SOCKET: The level of the options to be set. If you want to set options at the socket level, you must set it to SOL_SOCKET.

[0035] SO_ATTACH_BPF: means to mount the eBPF program to the socket.

[0036] prog_fd: The file handle returned by the bpf() system call after loading the eBPF program into the kernel.

[0037] From the above content, we can see that the sockmap technology successfully accelerates the communication between the service and the proxy in a container. However, when applying the sockmap technology, it is often impossible to perceive the type of application that calls the socket, which makes the kernel add the network information of both ends to the sockmap as long as it listens to the establishment of a socket connection at both ends. This will result in a lot of network information stored in the sockmap, occupying memory. In addition, when the kernel filters the message through the eBPF program mounted under the socket interface, it needs to query the sockmap for the key of the message transmitted by the socket interface. Since there is a lot of network information stored in the sockmap, it takes the kernel more time to filter the message, so the kernel queries the sockmap efficiently. In other words, although the use of the sockmap technology can reduce the communication delay between the service and the proxy in a container, it cannot reduce the communication delay to the minimum.

[0038] In view of this, the embodiment of the present application provides a method for communication between services. When establishing a socket connection between different services, the network data packets between the two services can be forwarded by bypassing the TCP / IP protocol through the sockmap module only when the type of business transmitted between the services is a specific business type. As a result, it avoids storing too much network information in the sockmap, reduces the memory occupied by the sockmap, and also improves the query efficiency in the sockmap, thereby reducing the communication delay between two services performing specific business.

[0039] For example, Figure 3The flow of a method for communication between services is shown. It should be understood that the method can be executed by any device, equipment, platform, or device cluster that has computing and processing capabilities. For ease of description, the following is an introduction using the execution of a computing device as an example. Among them, the method for communication between services can be applied to the communication between two services (such as the different pods described above), and each service can include an application end and an agent end. Exemplarily, the application end can be understood as the aforementioned Figure 2 The Service shown in the proxy can be understood as the aforementioned Figure 2 Proxy as shown in . Figure 3 As shown, the inter-service communication method may include the following steps:

[0040] S301. Create a socket connection between the application end and the proxy end.

[0041] In this embodiment, when the application end and the agent end need to establish a socket connection, the computing device can create a socket connection between the two. For example, the computing device can control the agent end to send a socket request to the application end, or control the application end to send a socket request to the agent end.

[0042] S302: Setting the service type of the service transmitted between the application end and the proxy end in the socket connection.

[0043] In this embodiment, the computing device can set the service type of the service transmitted between the application end and the agent end in the socket connection between the two. In some embodiments, when the type of service transmitted between the application end and the agent end is the first service type, the computing device can set the service type in the socket option module to the first value. In some embodiments, the socket option module can be located at the application end or the agent end. Exemplarily, the socket option module can be a setsockopt function. The code of the setsockopt function is as follows:

[0044] int app_type = 1; / / indicates service grid application

[0045] setsockopt(socket,SOL_SOCKET,SO_APP_TYPE,(char*)&app_type,sizeof(int));

[0046] Among them, the first parameter socket in setsockopt is the socket descriptor; the second parameter is the level of the option to be set. If you want to set the option at the socket level, you must set it to SOL_SOCKET; the third parameter SO_APP_TYPE, (char*) & app_type is the type of business transmitted between the application end and the agent end. The business type at this time is a service grid application; the fourth parameter sizeof (int) is the number of bytes of the integer type. In the above code, the number 1 can be understood as the first value.

[0047] S303: When it is confirmed through the sockmap module that the service type of the transmitted service is the first service type, the network data packet between the application end and the proxy end is forwarded by bypassing the TCP / IP protocol stack.

[0048] In this embodiment, when the proxy and the application transmit network data packets, the computing device can confirm whether the service type of the service transmitted by the two is the first service type through the sockmap model. Among them, when the service type of the service transmitted by the two is the first service type, the computing device can bypass the TCP / IP protocol stack to forward the network data packets between the application and the proxy. Exemplarily, the sockmap module can be the eBPF program described above. Exemplarily, the first service type is a service grid type.

[0049] In this way, the computing device forwards the network data packets between the application end and the proxy end by bypassing the TCP / IP protocol through the sockmap module only when the type of business transmitted between the application end and the proxy end is a specific business type, thereby reducing the communication delay between the two services performing the specific business.

[0050] In some embodiments, after S302, the computing device may call the sockmap module so that the sockmap module obtains the socket connection between the application end and the proxy end. Then, the computing device may determine whether the business type of the business transmitted by the socket connection is the first business type based on the obtained socket connection. Since the business type has been set in the socket connection, when the computing device obtains the socket connection between the application end and the proxy end, it can determine the business type of the business transmitted by the two from the socket connection, and then confirm whether the business type is the first business type.

[0051] Exemplarily, the computing device can extract the service type in the socket option module from the socket connection it obtains. If the service type in the socket option module matches the service type in the socket option in the sockmap module, the computing device can determine that the service type of the service transmitted by the application end and the proxy end is the first service type. Among them, the service type in the socket option in the sockmap module is preset. Exemplarily, the socket option in the sockmap module can be a struct sock structure, and the code of the struct sock structure can be as follows:

[0052] struct bpf_sock_ops{

[0053] __u32 op;

[0054] …

[0055] __u32 skb_tcp_flags;

[0056] __u32 sk_app_type;

[0057] }

[0058] Among them, u32 sk_app_type is the pre-set service type.

[0059] Further, S303 may specifically be: when the computing device confirms for the first time from the socket connection through the sockmap module that the service type of the transmitted service is the first service type, the computing device may extract the network information in the socket connection and save it in the sock mapping table. The sock mapping table is used to save the network information of the service type that allows bypassing the TCP / IP protocol stack to transmit network data packets. As a result, only the network information of the service corresponding to the service of a specific service type is stored in the sock mapping table, reducing the memory occupied by the sock mapping table. Exemplarily, the sock mapping table may be the sockmap described above. Exemplarily, the network information may include one or more of the source IP, source TCP port, destination IP, and destination TCP port of the first service type.

[0060] Among them, when a network data packet is transmitted between the application end and the agent end, the computing device can obtain the network data packet transmitted between the two. Then, the network information in the network data packet is extracted from the network data packet. Finally, if the network information in the extracted data packet matches the network information stored in the sock mapping table, the computing device forwards the network data packet bypassing the TCP / IP protocol stack. Since the sock mapping table only stores the network information of the service corresponding to the business of a specific business type, unnecessary queries can be reduced when querying in the sock mapping table, thereby improving the query efficiency and reducing the communication delay between the agent and the server.

[0061] In addition, if the computing device confirms through the sockmap module that the network information of the network data packet sent between the agent and the server does not match the network information stored in the sock mapping table, it indicates that the business corresponding to the network data packet is not a specific business, so there is no need to bypass the TCP / IP protocol stack to transmit the network data packet. Therefore, the computing device can send network data packets between the application and the agent through the TCP / IP protocol stack.

[0062] In some embodiments, the user can also change the network information maintained in the sock mapping table according to actual business needs. For example, the user can change the network information maintained in the sock mapping table through a command line or a user interface. After obtaining the user's instruction to change the network information maintained in the sock mapping table, the computing device can set the business type value in the socket option module to the expected value, and set the business type in the socket option in the sockmap module to the expected value. Exemplarily, the expected value can be pre-set or randomly generated.

[0063] When the target type is changed, the kernel makes a judgment based on the new target type. The kernel can delete the target type of the cause, store the latest service type changed by the user, and initialize the sockmap, such as deleting the original IP address and port number in the sockmap.

[0064] In some embodiments, continue to refer to Figure 1 , when Proxy1 in Pod1 communicates with Proxy2 in Pod2, it still needs to go through the TCP / IP protocol stack twice, which will increase the communication delay between Proxy1 and Proxy2. To solve this problem and reduce the communication delay across nodes, continue to refer to Figure 2The embodiment of the present application adopts single root input / output virtualization (SR-IOV) technology, directly connects the virtual function (VF) device of the physical network card, that is, bypasses the kernel protocol stack, eliminates the overhead of switching between kernel state and user state, puts the implementation code of the TCP / IP protocol stack into an independent user state process, and removes the central processing unit (CPU) overhead of the protocol stack implementation in the Proxy. In this way, when Proxy1 needs to transmit a message to Proxy2, Proxy1 can transmit the message to the development virtual switch (open vswitch, OVS), and then the OVS directly transmits it to Proxy2. In this way, direct communication between different nodes of the TCP / IP protocol stack is realized, reducing the delay of cross-node communication. Among them, OVS can be understood as a bridge. Exemplarily, network information, such as IP address, subnet mask, gateway, etc., can be configured in OVS through a controller for controlling OVS, and traffic forwarding rules can be generated according to the network topology structure and sent to the kernel data path of OVS so that OVS can realize data forwarding.

[0065] Furthermore, in order to further improve the transmission performance across nodes, OVS can also offload the forwarding flow table entries in the kernel to the hardware forwarding path of the smart network card to implement hardware forwarding of network traffic through the smart network card.

[0066] It is understandable that the size of the sequence number of each step in the above embodiment does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application. In addition, in some possible implementations, each step in the above embodiment can be selectively executed according to actual conditions, and can be partially executed or fully executed, which is not limited here.

[0067] Based on the method in the above embodiment, the embodiment of the present application provides a computing device. Any one or more of the services described above may be deployed inside the computing device.

[0068] Based on the method in the above embodiment, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program. When the computer program runs on a processor, the processor executes the method in the above embodiment.

[0069] Based on the method in the above embodiment, an embodiment of the present application provides a computer program product. When the computer program product runs on a processor, the processor executes the method in the above embodiment.

[0070] It is understood that the processor in the embodiments of the present application may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. The general-purpose processor may be a microprocessor or any conventional processor.

[0071] The method steps in the embodiments of the present application can be implemented by hardware or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, and the software modules can be stored in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disks, mobile hard disks, CD-ROMs, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and the storage medium can be located in an ASIC.

[0072] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted through the computer-readable storage medium. The computer instructions may be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state disk (SSD)), etc.

[0073] It should be understood that the various numerical numbers involved in the embodiments of the present application are only used for the convenience of description and are not used to limit the scope of the embodiments of the present application.

Claims

1. A method for communication between services, used for communication between two services, each service including an application end and an agent end; characterized in that: include: Creating a socket connection between the application and the agent; Set the service type of the service transmitted between the application and the proxy in the socket connection; Calling the sockmap module so that the sockmap module obtains the socket connection; Extracting the service type in the socket option module from the socket connection; If the service type in the socket option module matches the service type in the socket option in the sockmap module, determining that the service type of the transmitted service is the first service type; wherein the service type in the socket option in the sockmap module is preset; When it is confirmed through the sockmap module that the service type of the transmitted service is the first service type, the network data packet between the application end and the proxy end is forwarded by bypassing the TCP / IP protocol stack.

2. The method according to claim 1, characterized in that: The service type of the service transmitted between the application end and the proxy end is set in the socket connection, including: If the type transmitted between the application end and the agent end is the first service type, the service type in the socket option module is set to the first value.

3. The method according to claim 2, characterized in that The service type is set in a socket option module in the application end or the agent end.

4. The method according to claim 1, characterized in that When the sockmap module confirms that the service type of the transmitted service is the first service type, the step of bypassing the TCP / IP protocol stack to forward the network data packet between the application end and the proxy end includes: When the sockmap module first confirms from the socket connection that the service type of the transmitted service is the first service type, the network information in the socket connection is extracted and saved in the sock mapping table; wherein the sock mapping table is used to save the network information of the service type that allows bypassing the TCP / IP protocol stack to transmit network data packets.

5. The method according to claim 4, characterized in that When the sockmap module confirms that the service type of the transmitted service is the first service type, the step of bypassing the TCP / IP protocol stack to forward the network data packet between the application end and the proxy end includes: Acquire network data packets transmitted between the application end and the agent end; Extracting network information from the network data packet; If the network information in the extracted data packet matches the network information stored in the mapping table, the network data packet is forwarded bypassing the TCP / IP protocol stack.

6. The method according to claim 4, characterized in that The method further comprises: If it is confirmed through the sockmap module that the network information of the sent network data packet does not match the network information stored in the mapping table, the network data packet between the application end and the proxy end is sent through the TCP / IP protocol stack.

7. The method according to claim 1, characterized in that The method further comprises: In response to an instruction to modify network information stored in a sock mapping table, a service type value in a socket option module is set to an expected value; The service type in the socket option in the sockmap module is set to the expected value.

8. The method according to claim 1, characterized in that: The first business type is a service grid type.

9. A computing device, characterized in that At least one of the two services as described in claims 1 to 8 is deployed in the computing device; the computing device also includes a processor and a memory, the memory stores a communication program between services, and when the communication program between services is executed by the processor, the service communication method as described in claims 1 to 8 is implemented.