Communication method and apparatus, and communication system
By using gateway devices to convert address and protocols in heterogeneous networks, the problem of heterogeneous network address mapping is solved, efficient communication and flexible network topology are achieved, and high concurrency and low latency are met.
Patent Information
- Application Number
- PCT/CN2024/084691
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-07
- Filing Date
- 2024-03-29
- Publication Date
- 2025-01-02
AI Technical Summary
In heterogeneous network interoperability scenarios, how to implement many-to-one mapping between different network addresses, reduce excessive occupation of address space, and meet the needs of high concurrency and low latency.
The communication address conversion rules between networks are determined through the first gateway device, and the packet is received and processed, and the address of the first network protocol is mapped to the address of the second network protocol using the pre-configured address mapping page table and address offset information. And carry out protocol conversion to realize interconnection between heterogeneous networks.
It realizes many-to-one mapping between heterogeneous network addresses, reduces the use of address space, supports large bandwidth, flexible and scalable network topology, reduces application communication delay, and simplifies system implementation and deployment.
Smart Images

Figure CN2024084691_02012025_PF_FP_ABST
Abstract
Description
Communication method, device and communication system
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of the People's Republic of China on June 29, 2023, with application number 202310785858.2 and invention name "A data transmission method". This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of the People's Republic of China on September 7, 2023, with application number 202311160032.3 and invention name "A communication method, device and communication system", the entire contents of which are incorporated by reference into this application. Technical Field
[0003] The present application relates to the field of communication technology, and in particular to a communication method, device and communication system. Background Art
[0004] With the advancement of technology, network structures are becoming increasingly complex, and the development and design requirements for applications (APPs) are gradually evolving towards features such as high concurrency and low latency in input / output (IO), such as high-performance computing applications and big data analysis applications. These demands also place higher demands on the corresponding business systems. For example, in scenarios where heterogeneous networks are interconnected, it is necessary to implement many-to-one mapping between network addresses using different network protocols to reduce excessive address space usage. However, how to achieve many-to-one mapping between different network addresses remains an important issue that needs to be solved urgently.
[0005] Summary of the Invention
[0006] Embodiments of the present application provide a communication method, apparatus, and communication system for implementing many-to-one mapping between heterogeneous network addresses, thereby reducing excessive occupation of address space.
[0007] In the first aspect, an embodiment of the present application provides a communication method, which can be implemented by a first gateway device, the first gateway device is located in a first network, and at least one computing node in the first network adopts a first network protocol to achieve interconnection. The method may include: determining a communication address conversion rule between the first network and the second network, and at least one computing node in the second network adopts a second network protocol to achieve interconnection; receiving a first message from a first computing node in the second network; mapping a first address carried in the first message to a second address according to the communication address conversion rule; performing protocol conversion on the first message based on the second address and the first network protocol to obtain a second message; and sending the second message to a second computing node in the first network.
[0008] In combination with the first aspect, in a possible implementation method, determining the communication address conversion rules between the first network and the second network includes: receiving a third message from the first computing node, wherein the third message includes first indication information, and the first indication information is used to indicate address offset information; based on the first indication information, determining the communication address conversion rules between the first network and the second network.
[0009] In combination with the first aspect, in a possible implementation method, mapping the first address carried in the first message to the second address according to the communication address conversion rule includes: mapping the first address carried in the first message to the second address according to a pre-configured address mapping page table and the address offset information, wherein a first mapping relationship is recorded in the address mapping page table, and the first mapping relationship is used to characterize the mapping relationship between different public network addresses using the first network protocol and different public network addresses using the second network protocol.
[0010] In combination with the first aspect, in a possible implementation, if different public network addresses of the first network protocol are used to associate with the same first service, the method may further include: using any one of the following scheduling algorithms to determine a computing node that can provide the first service in the second network as the second computing node: a first-in-first-out scheduling algorithm; a round-robin scheduling algorithm or a lowest load first scheduling algorithm.
[0011] In combination with the first aspect, in a possible implementation manner, the method may further include: acquiring address mapping information input or selected in the management platform, and establishing the address mapping page table based on the address mapping information.
[0012] In combination with the first aspect, in a possible implementation manner, if the first address cannot be mapped to the second address, the method further includes: discarding the first message.
[0013] In combination with the first aspect, in a possible implementation manner, the method may further include: reconfiguring the address mapping page table based on the discarded first message.
[0014] In combination with the first aspect, in a possible implementation, the method may further include: receiving a fourth message from the second computing node; mapping a fourth address carried in the fourth message to a fifth address, wherein the fourth address corresponds to the first network protocol and the fifth address corresponds to the second network protocol; performing protocol conversion on the fourth message based on the fifth address and the second network protocol to obtain a fifth message; and sending the fifth message to the first computing node.
[0015] In combination with the first aspect, in a possible implementation, the second network protocol includes an Ethernet protocol / Internet Protocol (IP) protocol, and the first network protocol includes a Unified Bus (UB) protocol.
[0016] In combination with the first aspect, in a possible implementation, one of the at least one computing node in the second network includes any of the following types: a bare metal server, a virtual machine, a container, a lightweight container, or a serverless server.
[0017] In the second aspect, an embodiment of the present application provides a communication device, wherein the communication address is located in a first network, and at least one computing node in the first network adopts a first network protocol to achieve interconnection, and the communication device includes: a determination unit for determining a communication address conversion rule between the first network and the second network, and at least one computing node in the second network adopts a second network protocol to achieve interconnection; a communication interface for receiving a first message from a first computing node in the second network; a mapping unit for mapping the first address carried in the first message to a second address according to the communication address conversion rule; a conversion unit for performing protocol conversion on the first message based on the second address and the first network protocol to obtain a second message; and the communication interface is used to send the second message to the second computing node in the first network.
[0018] In combination with the second aspect, in a possible implementation method, the determination unit is specifically used to: receive a third message from the first computing node, wherein the third message includes first indication information, and the first indication information is used to indicate address offset information; based on the first indication information, determine the communication address conversion rules between the first network and the second network.
[0019] In combination with the second aspect, in a possible implementation method, the mapping unit is specifically used to: map the first address carried in the first message to the second address according to a pre-configured address mapping page table and the address offset information, wherein a first mapping relationship is recorded in the address mapping page table, and the first mapping relationship is used to characterize the mapping relationship between different public network addresses using the first network protocol and different public network addresses using the second network protocol.
[0020] In combination with the second aspect, in a possible implementation, if different public network addresses of the first network protocol are used to associate with the same first service, the device also includes: a scheduling unit, used to use any of the following scheduling algorithms to determine a computing node that can provide the first service in the second network as the second computing node: first-in-first-out scheduling algorithm; polling scheduling algorithm or lowest load first scheduling algorithm.
[0021] In combination with the second aspect, in a possible implementation, the device further includes: an acquisition unit, configured to acquire address mapping information input or selected on the management platform, and establish the address mapping page table based on the address mapping information.
[0022] In combination with the second aspect, in a possible implementation, if the first address cannot be mapped to the second address, the mapping unit is further configured to discard the first message.
[0023] In combination with the second aspect, in a possible implementation, the apparatus may further include: an updating unit, configured to reconfigure the address mapping page table based on the discarded first message.
[0024] In combination with the second aspect, in one possible implementation, the communication interface is also used to receive a fourth message from the second computing node; the mapping unit is also used to map the fourth address carried in the fourth message to a fifth address, wherein the fourth address corresponds to the first network protocol and the fifth address corresponds to the second network protocol; the conversion unit is also used to perform protocol conversion on the third message based on the fifth address and the second network protocol to obtain a fifth message; the communication interface is also used to send the fifth message to the first computing node.
[0025] In conjunction with the second aspect, in a possible implementation, the second network protocol includes an Ethernet protocol / Internet Protocol (IP) protocol, and the first network protocol includes a Unified Bus (UB) protocol.
[0026] In combination with the second aspect, in a possible implementation, one of the at least one computing node in the second network includes any of the following types: a bare metal server, a virtual machine, a container, a lightweight container, or a serverless server.
[0027] In the third aspect, an embodiment of the present application also provides a communication system, including a first computing node, a first gateway device, and a second computing node, wherein the first computing node is located in the second network, and at least one computing node in the second network adopts a second network protocol to achieve interconnection, the second computing node and the first gateway device are located in the first network, and at least one computing node in the first network adopts a first network protocol to achieve interconnection, wherein the first gateway device is used to determine the communication address conversion rules between the first network and the second network; the first computing node is used to send a first message to the first gateway device; the first gateway device is used to receive the first message, map the first address carried in the first message to the second address according to the communication address conversion rules, perform protocol conversion on the first message based on the second address and the first network protocol to obtain a second message, and send the second message to the second computing node, wherein the first address corresponds to the second network protocol, and the second address corresponds to the first network protocol; the second computing node is used to receive the second message.
[0028] In a fourth aspect, an embodiment of the present application provides a computer program product comprising instructions, which, when executed by a computing device cluster, enables the computing device cluster to execute the method described in the first aspect and any possible design of the first aspect.
[0029] In a fifth aspect, an embodiment of the present application provides a computer-readable storage medium comprising computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster executes the method described in the first aspect and any possible design of the first aspect.
[0030] In a sixth aspect, an embodiment of the present application provides a computing device cluster comprising at least one computing device, each computing device comprising a processor and a memory; the processor of the at least one computing device is used to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method described in the first aspect above and any possible design of the first aspect.
[0031] Based on the implementations provided in the above aspects, the embodiments of the present application can be further combined to provide more implementations.
[0032] The technical effects that can be achieved by any possible implementation method in any of the second to sixth aspects mentioned above can be referred to the description of the technical effects that can be achieved by any possible implementation method in any of the first to second aspects mentioned above, and the repetitions will not be discussed. BRIEF DESCRIPTION OF THE DRAWINGS
[0033] FIG1 is a schematic diagram showing the structure of a communication system to which an embodiment of the present application is applicable;
[0034] FIG2 is a schematic diagram showing a flow chart of a communication method according to an embodiment of the present application;
[0035] FIG3 shows a schematic diagram of a negotiation message according to an embodiment of the present application;
[0036] FIG4 is a schematic diagram showing a negotiation message in an RDMA scenario according to an embodiment of the present application;
[0037] FIG5 shows a schematic diagram of the structure of a heterogeneous network according to an embodiment of the present application;
[0038] FIG6 shows a schematic diagram of an IP message according to an embodiment of the present application;
[0039] FIG7 is a schematic diagram showing a flow chart of a communication method according to an embodiment of the present application;
[0040] FIG8 shows a schematic structural diagram of a communication device according to an embodiment of the present application;
[0041] FIG9 shows a schematic structural diagram of a communication device according to an embodiment of the present application. DETAILED DESCRIPTION
[0042] To make the purpose, technical solutions, and advantages of the embodiments of this application more clear, the technical solutions in the embodiments of this application will be clearly and completely described below in conjunction with the drawings in the embodiments of this application. Obviously, the described embodiments are part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.
[0043] The embodiments of the present application provide a communication method and a communication system for realizing many-to-one mapping between heterogeneous network addresses, reducing excessive occupation of address space, and at the same time helping to realize a large-bandwidth, flexible and scalable network topology, reducing application communication latency, and reducing the burden of system implementation and deployment. Among them, the method and the device are based on the same technical concept. Since the principles of the method and the device for solving problems are similar, the implementation of the device and the method can refer to each other, and the repetitions will not be repeated. Moreover, in the various embodiments of the present application, if there is no special explanation and logical conflict, the terms and / or descriptions between the various embodiments are consistent and can be referenced to each other, and the technical features in different embodiments can be combined to form a new embodiment according to their inherent logical relationship.
[0044] It should be noted that, in the embodiments of the present application, "at least one" refers to one or more, and "more" refers to two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following items" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b, or c can represent: a, b, c, a and b, a and c, b and c, or a and b and c, where a, b, c can be single or multiple.
[0045] Furthermore, unless otherwise specified, references to ordinal numbers such as "first" and "second" in the embodiments of this application are intended to distinguish between multiple objects and are not intended to define the priority or importance of multiple objects. For example, "first gateway" and "second gateway" are simply used to distinguish gateways from different networks, and do not indicate a difference in priority or importance between the two gateways. For example, in some embodiments, the first gateway and the second gateway may be the same gateway.
[0046] The following is a detailed description with reference to the accompanying drawings and embodiments.
[0047] FIG1 shows a schematic diagram of the architecture of a communication system to which an embodiment of the present application is applicable.
[0048] As shown in FIG1 , the communication system may include at least one network system (or network domain), such as network 10_1 , network 10_2 , network 10_3 , etc., and each network system may be interconnected through a gateway device.
[0049] Each network system may include at least one computing node, such as computing nodes 20_1, 20_2, and 20_3 within network 10_1, computing nodes 20_4, 20_5, and 20_6 within network 10_2, and computing nodes 20_7, 20_8, and 20_9 within network 10_3. Each computing node may include, but is not limited to, any of the following types: bare metal servers, virtual machines, containers, lightweight containers, or serverless servers, and may be used to provide at least one service (or business), including, but not limited to, rendering services, video encoding and decoding services, machine learning services, security services, artificial intelligence (AI) services, high-performance computing (HPC) services, storage services, or network services.
[0050] In an optional embodiment, each computing node in the at least one network system can use the same network protocol. When different network systems need to communicate, the computing node serving as the source can send a request message to a gateway device, which forwards the request message to the computing node serving as the target. After processing the request message, the target computing node also feeds back a response message to the source computing node.
[0051] For example, if computing node 20_1 in network 10_1 needs to accelerate computing power with the help of computing node 20_7 in network 10_3, computing node 20_1 can send a request message. The gateway device can receive the request message from computing node 20_1 and forward the request message to computing node 20_7 based on the destination address carried in the request message. After receiving the request message, computing node 20_7 uses its own computing power facilities to process the request message and then sends a response message back to the gateway device and computing node 20_1.
[0052] As network structures become increasingly complex, in another optional implementation, different network systems in FIG1 may adopt different network protocols to achieve heterogeneous network interconnection.
[0053] For example, network 10_1 may adopt network protocol A, network 10_2 may adopt network protocol A, and network 10_3 may adopt network protocol B. Alternatively, network 10_1 may adopt network protocol A, network 10_2 may adopt network protocol B, and network 10_3 may adopt network protocol B. Alternatively, network 10_1 may adopt network protocol A, network 10_2 may adopt network protocol B, and network 10_3 may adopt network protocol C.
[0054] When achieving interconnection and interoperability of heterogeneous networks, gateway devices need to map the communication address of one network protocol to the communication address of another network protocol. As the network load increases, in order to reduce the excessive occupation of address space, it is necessary to implement many-to-one mapping between network addresses.
[0055] For example, the industry is currently designing a new unified bus (UB) protocol to meet the needs of high bandwidth and low latency. This protocol, based on high-speed physical and link layer technologies, leverages network technology to reconstruct the system bus architecture, achieving a high-bandwidth, flexible and scalable network topology, reducing application communication latency, and alleviating the burden of system implementation and deployment. The characteristics of the UB protocol make it possible for system architectures using it to replace Ethernet / Internet Protocol (IP) to improve overall system performance. However, system architectures using the UB protocol also need to implement many-to-one mapping between network addresses to reduce excessive address space usage.
[0056] Figure 2 shows a flow chart of the communication method of an embodiment of the present application. The method can be implemented by the gateway device shown in Figure 1. In a specific implementation, the gateway device can be an independent device, or it can be logically divided into a first gateway device deployed in network 10_1, a second gateway device deployed in network 10_2, and a third gateway device deployed in network 10_3. The embodiment of the present application does not limit this product form. For ease of description, the first network refers to network 10_1 and the second network refers to 10_2. At least one computing node in the first network can be interconnected using a first network protocol, and at least one computing node in the second network can be interconnected using a second network protocol. The first gateway device can be used to assist in realizing interconnection between different computing nodes of the first network and different computing nodes of the second network.
[0057] Referring to FIG2 , the communication method may include the following steps:
[0058] S210: The first gateway device determines a communication address translation rule between the first network and the second network.
[0059] For example, the first gateway device may determine the communication address translation rule based on a negotiation message received from the second network.
[0060] The negotiation message is represented by a third message. When S210 is specifically implemented, the first gateway device may receive the third message from the first computing node in the second network. The third message may include first indication information, and the first indication information may be used to indicate address offset information. The first gateway device may determine a communication address translation rule between the first network and the second network based on the first indication information.
[0061] As shown in FIG3 , the third message may encapsulate a link layer header, a network layer header, message type information, and a payload (e.g., user data). The payload may include, for example, a protocol message header, which may include, but is not limited to, the length of a set of keys (including at least one key), the message type to be converted, the source address, and the destination address. The payload may also include at least one key and the starting position information of the at least one key. The at least one key may be used as address offset information required for subsequent communication with the first computing node.
[0062] Exemplarily, the starting position information can be indicated in the form of an offset and a byte length. The specific values of the n keys and the corresponding specific values of the return (reverse) keys can be configured by the first computing node, and can be fixed values or optional values. n is an integer greater than or equal to 1. The embodiment of the present application does not limit the configuration method of the key.
[0063] As shown in Figure 4, taking the third message implemented as a Remote Direct Memory Access (RDMA) message as an example, it can be agreed that the length of each key is fixed. The protocol message header of this message can indirectly indicate the length of a group of keys by the number of keys. The message type to be converted can be UDP, the source address (SIP) can be 111.111.111.222, and the destination address (DIP) can be 111.111.111.111. The offset value is 12 and the length value is 6, indicating that 6 bytes of content need to be read from the 12th byte of the payload to obtain the required key value. The key can be expressed in hexadecimal, for example, key = 0x15, return key = 0x16. The first gateway device can establish session information for key = 0x15 in a static manner (for example, a session record in the session table described below), and the return key of the session = 0x16. In subsequent communications with the first computing node, the first gateway device can perform subsequent address mapping and message conversion processes based on the session information.
[0064] S220: The first gateway device receives a first message from the first computing node.
[0065] In an embodiment of the present application, the first computing node may be located in the second network, and at least one computing node in the second network may be interconnected using the second network protocol. The first gateway device may be located in the first network.
[0066] If the first computing node has access requirements for the first network, the first computing node can encapsulate a first message based on the public network address (i.e., the destination IP address (DIP)) published by the target computing node to be accessed, and send the first message. The first message will first reach the first gateway device located at the boundary of the second network. The first gateway device can receive and parse the first message.
[0067] Exemplarily, as shown in Figure 5, the second network can be an Ethernet / IP network domain, and the second network protocol can be an Ethernet / IP network protocol, such as an IPv4 network protocol or an IPv6 network protocol. Different computing nodes (such as servers) within the second network can achieve intra-domain communication through the IPv4 network protocol or the IPv6 network protocol. The first network and the second network are heterogeneous networks, the first network can be a UB network domain, and the first network protocol can be a UB protocol. Different computing nodes (such as servers) within the first network can achieve intra-domain communication through the UB network protocol. In other optional implementations, the first network protocol / second network protocol can also be other types of communication protocols, which are not limited in the embodiments of the present application.
[0068] S230: The first gateway device maps the first address carried in the first message to the second address according to the communication address conversion rule.
[0069] In an embodiment of the present application, the first message may be a request message, such as a computing power acceleration request message from the first computing node.
[0070] The first address corresponds to the second network protocol. Taking the second network protocol as IP protocol, the first message is an IP message. The first address can be an IP address, for example, including a source IP address and a destination IP address, carried in the header of the first message, as shown in FIG6 .
[0071] In an optional embodiment, the first gateway device may be pre-configured with an address mapping page table. When implementing S230, the first gateway device may map the first address carried in the first message to the second address based on the address mapping page table and the address offset information obtained when implementing S210, so as to access resources within the first network using the second address. The address mapping table may record a first mapping relationship, which may be used to represent a mapping relationship between different public network addresses using the first network protocol and different public network addresses using the second network protocol.
[0072] Taking the example of a UB network as the first network, external services across the UB network can be provided within a data center within the UB's native private network for access by external clients. During the deployment phase of the UB network, different computing nodes (e.g., servers) within the same network can be divided based on service granularity. For example, at least one server within the UB network can be grouped (or clustered) to jointly provide a service, meaning that different public network addresses can be associated with the same first service. Administrators can identify at least one service provided by the UB network (e.g., represented as a first service) using an address format recognized by external clients (e.g., clients deployed on the first computing node), thereby binding the public network address of the external client to the at least one service provided by the UB network. Administrators can configure address mapping information through a management platform by inputting or selecting it, and then provide this address mapping information externally. The first gateway device can obtain the address mapping information input or selected on the management platform and establish an address mapping page table based on the address mapping information. This address mapping page table can record a first mapping relationship, which can be used to represent the mapping relationship between different public network addresses using a first network protocol and a first service provided by the UB network (specifically, a service port or a UB private network address associated with the service). When an external client sends a request to the UB network, the first gateway device can map the public network address carried in the request to a specific service by looking up the table, and use the available resources in the UB network to provide the corresponding service to the external client.
[0073] For example, the address mapping page table may be as shown in Table 1 below:
[0074] Table 1
[0075] It should be understood that Table 1 is merely an example of the UB private network address associated with a service port / service, the external public network address, and the mapping relationship between the two, and is not intended to be limiting. In some embodiments, the mapping relationship between the external public network address and the UB private network address associated with the service port / service can be N:1, where N is an integer greater than or equal to 1.
[0076] If the first address carried in the first message can be used as a key to hit the external public network address in Table 1, the address conversion process can be entered, that is, the first address is converted into a second address associated with the external public network address, such as UB EID.
[0077] If the first address carried in the first message, as a key, fails to match the external public network address in Table 1, meaning that the first address cannot be mapped to the second address, the first gateway device may discard the first message according to exception handling, thereby discarding the service access that the first gateway device cannot identify. Simultaneously, the first gateway device may also trigger an update process for the address mapping page table. For example, based on the discarded first message, the first gateway device may reconfigure the address mapping page table to further improve the network types supported by the first network.
[0078] S240: The first gateway device performs protocol conversion on the first message based on the second address and the first network protocol to obtain a second message.
[0079] In a specific implementation, the address information carried in the first message is not limited to one type. For example, an IP message can carry both a source IP address and a destination IP address. Therefore, the first address carried in the first message may not be limited to one address. The first gateway device can combine different fields in the first message according to the previously determined communication address conversion rules to obtain a set of keys, and query the address flow session table based on the set of keys. If the session table exists, the conversion from the first address to the second address is implemented according to the content in the session table. If the session table does not exist, the first gateway device can also trigger the establishment of a session table for this message flow and a corresponding action.
[0080] For example, the content of the session table may be as follows:
[0081] 1) TCP / UDP scenario:
[0082] Session information includes: Key: source IP address (SIP) of the message traffic, DIP, a set of dynamic keys;
[0083] Action: (SEID is configured from the address pool, N:1 mapping), (DEID and DIP are mapped one to one), add a set of dynamic keys.
[0084] 2) RDMA scenario:
[0085] Session information includes: Key: SIP, DIP of message traffic, a set of dynamic keys;
[0086] Action: (SEID is configured from the address pool, N:1 mapping), (DEID and DIP are mapped one to one), add a set of dynamic keys, and strip the UDP header of the message.
[0087] The SEID configuration address pool is the pre-configured service port or service-associated UB private network address in Table 1 above. Multiple different public network addresses can be mapped to the same SEID.
[0088] If the first gateway device queries the content of the session table of the TCP / UDP scenario in 1) based on the SIP, DIP, and a set of dynamic keys carried in the first message, when implementing S240, the first gateway device can convert the SIP of the second network protocol (with the symbol (represents) the SEID using the first network protocol, converts the DIP using the second network protocol into the DEID using the first network protocol, and adds a set of dynamic keys in the third message to achieve a many-to-one mapping between network addresses.
[0089] If the first gateway device queries the content of the session table of the RDMA scenario in 2) above based on the SIP, DIP carried in the first message and a set of dynamic keys in the third message, then when implementing S240, the first gateway device can convert the SIP into SEID, convert the DIP into DEID according to the action recorded in the session table content, add a set of dynamic keys, and strip the UDP header of the message.
[0090] The first gateway device can perform conversion processing according to the content of the above-mentioned session table, re-encapsulate the content contained in the first message to convert it into a UB message, and fill in the destination address of the new message, such as DEID, in the UB message to encapsulate and obtain the second message.
[0091] S250: The first gateway device sends the second message to the second computing node in the first network.
[0092] For example, if the first network is a UB network, and at least one computing node provides the same service, such as at least one public network address associated with the same first service, the first gateway device may use any of the following scheduling algorithms to determine, within the second network, a computing node that can provide the first service as the second computing node: a first-in-first-out scheduling algorithm; a round-robin scheduling algorithm; or a lowest-load-first scheduling algorithm. This embodiment of the present application does not limit the service scheduling method within this second network.
[0093] After the second computing node processes the second message, it can also feed back a response message to the first computing node. As shown in FIG7 , the feedback process may include the following steps:
[0094] The second computing node encapsulates the fourth message using the address in the address pool, queries the route in the first network domain, and sends the message to the first gateway device.
[0095] S710: The first gateway device receives a fourth message from the second computing node.
[0096] S720: The first gateway device maps the fourth address carried in the fourth message to a fifth address based on the communication address translation rule, where the fourth address corresponds to the first network protocol and the fifth address corresponds to the second network protocol. Similar to S230, the first gateway device queries the address mapping table and the address offset information recorded in the session table. If the DEID carried in the fourth message matches the address mapping table, the address translation process begins. Otherwise, the fourth message is discarded.
[0097] S730: The first gateway device performs protocol conversion on the fourth message based on the fifth address and the second network protocol to obtain a fifth message.
[0098] In a specific implementation, if the second network uses the IP network protocol, the first gateway device can query the address flow session table based on the combination of fields in the fourth message as a group key, and reversely convert the EID to the IP address. If the session table does not match, the fourth message is discarded.
[0099] For example, the content of the session table may be as follows:
[0100] 1) TCP / UDP scenario:
[0101] Key: SEID, DEID of packet traffic, a set of dynamic keys;
[0102] Action: (SEID and SIP configuration 1:1 mapping), (DEID and DIP N:1 mapping, configured in the address pool), add a set of dynamic keys.
[0103] 2) RDMA scenario:
[0104] Key: message traffic SEID, DEID, a set of dynamic keys;
[0105] Action: (SEID and SIP configuration 1:1 mapping), (DEID and DIP N:1 mapping, configured in the address pool), add a set of dynamic keys, and take out the UDP header port in the table to encapsulate the UDP message.
[0106] It should be understood that the content of the session table described here is the same as the content of the session table introduced above in conjunction with S430, and will not be repeated here.
[0107] S740: The first gateway device sends the fifth message, ie, the response message, to the first computing node.
[0108] In the above communication method, when interconnecting and interoperating between heterogeneous networks, a set of dynamic keys required for this session can be first negotiated through protocol messages, so that in subsequent multiple interactions, a many-to-one mapping between heterogeneous network addresses can be achieved based on this set of keys, thereby reducing excessive occupation of address space while achieving interconnection and interoperability of heterogeneous networks. It should be understood that the above method embodiments are only introduced using UB networks and Ethernet / IP networks as examples. In other embodiments, similar methods can also be used to achieve interconnection and interoperability between other types of network architectures, which will not be repeated here. Therefore, through the above method, by setting a special EID address in the UB domain to represent the external network, setting an IP host address / network segment in the IP network domain to represent a certain network domain, and adding a gateway device in the UB network domain to achieve conversion between different network addresses, interconnection and interoperability between heterogeneous networks is achieved, thereby achieving a large-bandwidth, flexible and scalable network topology, reducing application communication latency, and reducing the burden of system implementation and deployment.
[0109] An embodiment of the present application further provides a communication device for executing the method executed by the first gateway device in the above method embodiment. Relevant features can be found in the above method embodiment and will not be repeated here.
[0110] As shown in Figure 8, the communication device 800 may include: a determination unit 801 for determining a communication address conversion rule between a first network and a second network, wherein at least one computing node in the second network is interconnected using a second network protocol; a communication interface 802 for receiving a first message from a first computing node in the second network; a mapping unit 803 for mapping a first address carried in the first message to a second address according to the communication address conversion rule; a conversion unit 804 for performing protocol conversion on the first message based on the second address and the first network protocol to obtain a second message; and the communication interface 802 for sending the second message to the second computing node in the first network. For specific implementation methods, please refer to the method steps implemented by the first device in the above method embodiment, which will not be repeated here.
[0111] It should be understood that the division of the various units in the above device is only a division of logical functions. In actual implementation, they can be fully or partially integrated into a physical entity, or they can be physically separated. In addition, the units in the device can be implemented in the form of a processor calling software; for example, the device includes a processor, the processor is connected to a memory, and the memory stores instructions. The processor calls the instructions stored in the memory to implement any of the above methods or realize the functions of the various units of the device, where the processor is, for example, a general-purpose processor, such as a central processing unit (CPU) or a microprocessor, and the memory is a memory within the device or a memory outside the device. Alternatively, the units in the device can be implemented in the form of hardware circuits, and the functions of some or all of the units can be realized by designing the hardware circuits. The hardware circuit can be understood as one or more processors. For example, in one implementation, the hardware circuit is an application-specific integrated circuit (ASIC), which realizes the functions of some or all of the above units by designing the logical relationship of the components in the circuit. For another example, in another implementation, the hardware circuit can be implemented by a programmable logic device (PLD). Taking a field programmable gate array (FPGA) as an example, it can include a large number of logic gate circuits, and the connection relationship between the logic gate circuits is configured by configuring the configuration file, thereby realizing the functions of some or all of the above units. All units of the above devices can be implemented in the form of software called by the processor, or in the form of hardware circuits, or in part by the form of software called by the processor, and the rest by hardware circuits.
[0112] In an embodiment of the present application, a processor is a circuit with a signal processing capability. In one implementation, the processor may be a circuit with instruction reading and execution capability, such as a CPU, a microprocessor, a graphics processing unit (GPU) (which can be understood as a microprocessor), or a digital signal processor (DSP); in another implementation, the processor may implement certain functions through the logical relationship of a hardware circuit, and the logical relationship of the hardware circuit is fixed or reconfigurable, such as a hardware circuit implemented by an ASIC or PLD, such as an FPGA. In a reconfigurable hardware circuit, the process of the processor loading a configuration document and implementing the hardware circuit configuration can be understood as the process of the processor loading instructions to implement the functions of some or all of the above units. In addition, it can also be a hardware circuit designed for artificial intelligence, which can be understood as an ASIC, such as a neural network processing unit (NPU), a tensor processing unit (TPU), a deep learning processing unit (DPU), etc.
[0113] It can be seen that each unit in the above device can be one or more processors (or processing circuits) configured to implement the above method, such as: CPU, GPU, NPU, TPU, DPU, microprocessor, DSP, ASIC, FPGA, or a combination of at least two of these processor forms.
[0114] In addition, the various units in the above devices can be fully or partially integrated together, or can be implemented independently. In one implementation, these units are integrated together and implemented in the form of a system-on-a-chip (SOC). The SOC may include at least one processor for implementing any of the above methods or implementing the functions of the various units of the device. The type of the at least one processor can be different, for example, including a CPU and FPGA, a CPU and an artificial intelligence processor, a CPU and a GPU, etc.
[0115] In a simple embodiment, those skilled in the art can imagine that the communication devices in the above embodiments may all take the form of a computing device as shown in FIG. 9 .
[0116] The apparatus 900 shown in FIG9 includes at least one processor 910 and a communication interface 930. In an optional design, a memory 920 may also be included.
[0117] The embodiment of the present application does not limit the specific connection medium between the processor 910 and the memory 920.
[0118] In the apparatus shown in FIG. 9 , the processor 910 may transmit data through the communication interface 930 when communicating with other devices.
[0119] When the communication device adopts the form shown in FIG. 9 , the processor 910 in FIG. 9 can call the computer-executable instructions stored in the memory 920 so that the device 900 can execute any of the above method embodiments.
[0120] An embodiment of the present application also relates to a chip system, which includes a processor for calling a computer program or computer instructions stored in a memory so that the processor executes the method of any of the above embodiments.
[0121] In a possible implementation, the processor may be coupled to the memory through an interface.
[0122] In a possible implementation, the chip system may also directly include a memory, in which a computer program or computer instructions are stored.
[0123] For example, the memory may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. The non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache memory. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
[0124] An embodiment of the present application further relates to a processor, which is used to call a computer program or computer instruction stored in a memory so that the processor executes the method described in any of the above embodiments.
[0125] For example, in the embodiments of the present application, the processor is an integrated circuit chip with signal processing capabilities. For example, the processor can be an FPGA, a general-purpose processor, a DSP, an ASIC or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, a system on chip (SoC), a CPU, a network processor (NP), a microcontroller unit (MCU), a PLD or other integrated chip, and can implement or execute the various methods, steps and logic block diagrams disclosed in the embodiments of the present application. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor. The steps of the method disclosed in the embodiments of the present application can be directly embodied as being executed by a hardware decoding processor, or can be executed by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium mature in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, registers, etc. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware.
[0126] It should be understood that the embodiments of the present application may be provided as methods, systems, or computer program products.
[0127] In one possible implementation, an embodiment of the present application provides a computer-readable storage medium, which stores program code. When the program code runs on the computer, the computer executes the above method embodiment.
[0128] In a possible implementation, an embodiment of the present application provides a computer program product. When the computer program product is run on a computer, the computer is caused to execute the above method embodiment.
[0129] Therefore, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware. Furthermore, the present application may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0130] These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a product including an instruction device that implements the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.
[0131] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.
[0132] Obviously, those skilled in the art can make various changes and modifications to the embodiments of the present application without departing from the scope of the embodiments of the present application. Thus, if these modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these changes and variations. In the various embodiments of the present application, unless otherwise specified or logically conflicting, the terms and / or descriptions between the various embodiments are consistent and can be referenced to each other, and the technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationships.
Claims
1. A communication method, characterized in that: The method is applied to a first gateway device, the first gateway device is located in a first network, at least one computing node in the first network is interconnected using a first network protocol, and the method includes: Determine a communication address translation rule between the first network and the second network, wherein at least one computing node in the second network is interconnected using a second network protocol; Receiving a first message from a first computing node in the second network; According to the communication address conversion rule, mapping the first address carried in the first message to a second address; Based on the second address and the first network protocol, perform protocol conversion on the first message to obtain a second message; Send the second message to a second computing node in the first network.
2. The method according to claim 1, characterized in that The determining of a communication address conversion rule between the first network and the second network includes: receiving a third message from the first computing node, wherein the third message includes first indication information, and the first indication information is used to indicate address offset information; A communication address conversion rule between the first network and the second network is determined according to the first indication information.
3. The method according to claim 2, characterized in that The mapping, according to the communication address conversion rule, of the first address carried in the first message to the second address includes: According to a pre-configured address mapping page table and the address offset information, the first address carried in the first message is mapped to the second address, wherein a first mapping relationship is recorded in the address mapping page table, and the first mapping relationship is used to characterize the mapping relationship between different public network addresses using the first network protocol and different public network addresses using the second network protocol.
4. The method according to claim 3, characterized in that If different public network addresses of the first network protocol are used to associate with the same first service, the method further includes: Any one of the following scheduling algorithms is used to determine, in the second network, a computing node that can provide the first service as the second computing node: First-in-first-out scheduling algorithm; polling scheduling algorithm or lowest load first scheduling algorithm.
5. The method according to claim 3 or 4, characterized in that: The method further comprises: The address mapping information input or selected in the management platform is acquired, and the address mapping page table is established based on the address mapping information.
6. The method according to any one of claims 1 to 5, characterized in that If the first address cannot be mapped to the second address, the method further includes: The first message is discarded.
7. The method according to claim 6, characterized in that The method further comprises: Based on the discarded first message, the address mapping page table is reconfigured.
8. The method according to any one of claims 1 to 7, characterized in that The method further comprises: receiving a fourth message from the second computing node; According to the communication address conversion rule, mapping the fourth address carried in the fourth message to a fifth address, wherein the fourth address corresponds to the first network protocol and the fifth address corresponds to the second network protocol; Based on the fifth address and the second network protocol, performing protocol conversion on the fourth message to obtain a fifth message; Send the fifth message to the first computing node.
9. The method according to any one of claims 1 to 8, characterized in that The second network protocol includes the Ethernet protocol / Internet IP protocol, and the first network protocol includes the unified bus UB protocol.
10. The method according to any one of claims 1 to 9, characterized in that One of the at least one computing node in the second network includes any of the following types: a bare metal server, a virtual machine, a container, a lightweight container, or a serverless server.
11. A communication device, characterized in that: The communication device is located in a first network, at least one computing node in the first network is interconnected using a first network protocol, and the communication device includes: A determination unit, configured to determine a communication address translation rule between a first network and a second network, wherein at least one computing node in the second network is interconnected using a second network protocol; A communication interface, configured to receive a first message from a first computing node in the second network; A mapping unit, configured to map the first address carried in the first message to a second address according to the communication address conversion rule; a conversion unit, configured to perform protocol conversion on the first message based on the second address and the first network protocol to obtain a second message; The communication interface is used to send the second message to a second computing node in the first network.
12. A communication system, characterized in that: The method comprises a first computing node, a first gateway device, and a second computing node, wherein the first computing node is located in a second network, at least one computing node in the second network is interconnected using a second network protocol, the second computing node and the first gateway device are located in a first network, and at least one computing node in the first network is interconnected using a first network protocol, wherein: The first gateway device is used to determine a communication address conversion rule between the first network and the second network; The first computing node is used to send a first message to the first gateway device; The first gateway device is used to receive the first message, map the first address carried in the first message to a second address according to the communication address conversion rule, perform protocol conversion on the first message based on the second address and the first network protocol to obtain a second message, and send the second message to the second computing node, wherein the first address corresponds to the second network protocol, and the second address corresponds to the first network protocol; The second computing node is used to receive the second message.
13. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 10.
14. A computer-readable storage medium, characterized in that: The method comprises computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster performs the method according to any one of claims 1 to 10.
15. A computing device cluster, characterized in that: comprising at least one computing device, each computing device comprising a processor and a memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1 to 10.
Citation Information
Patent Citations
Data processing method and device, electronic equipment and storage medium
CN110677405A
Broadband access method and device, equipment and storage medium
CN113014680A
Data processing method and device based on distributed shared memory system
CN113590364A
Message transmission method and communication device
CN115701063A
Data access method and related device
WO2023000784A1
Cited By
Network message processing method and device, equipment, medium and program product
CN121056540A