Message transmission method and communication device

The IP address of the Ethernet packet is parsed through the gateway device and encapsulated LID to the IB packet header, which solves the problem of low transmission efficiency of Ethernet IP packets in the IB network, realizes remote direct access to the IB network, and improves transmission efficiency.

CN115701063BActive Publication Date: 2025-08-08HUAWEI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202110872533.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-07-30
Publication Date
2025-08-08
Estimated Expiration
2041-07-30

AI Technical Summary

Technical Problem

When the Ethernet IP packet is directly encapsulated in IB packets through tunneling technology, it is impossible to achieve the remote direct access effect of the IB network, affecting the transmission efficiency.

Method used

The gateway device analyzes the IP address of the Ethernet packet, determines the LID in combination with the lookup table, and encapsulates it into the IB packet header, realizing remote direct access, avoiding kernel copying, and improving transmission efficiency.

Benefits of technology

It realizes the remote direct access effect of IB network and improves the packet transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115701063B_ABST
    Figure CN115701063B_ABST
Patent Text Reader

Abstract

The present invention discloses a message transmission method and a communication device for improving the message transmission rate. The method of the present invention includes: a gateway parses a first message from a first network device to obtain the IP address of a second network device, matches the LID corresponding to the IP address of the second network device in a lookup table, encapsulates a second message header including the LID of the second network device into the first message after stripping the first message header, generates a second message, stores the LID in a local routing header of the second message, and then sends the second message based on the LID of the second network device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the field of communications, and in particular to a message transmission method and a communication device. Background Art

[0002] As data volumes increase exponentially, the computing power demands placed on processing systems by application performance is exponentially increasing, leading to a surge in demand for high-performance computing (HPC) clusters. Ethernet and InfiniBand (IB) network clusters account for 78% of HPC interconnects, far exceeding other interconnects. Remote direct memory access (RDMA) technology first appeared in IB networks. Since its inception, IB has been the preferred choice for supercomputing due to its high performance and low latency. However, the emergence of Ethernet-based remote direct access (RDMA over ConvergedEthernet version 2, RoCEv2) networks has led to their adoption by a growing number of supercomputing networks due to their full compatibility with Ethernet Internet Protocol (IP) networks and support for RDMA.

[0003] Ethernet IP packets are transmitted over the IB network through a gateway device using the Internet Protocol over InfiniBand (IPoIB) technology.

[0004] However, since Ethernet IP packets are directly encapsulated in IB packets through tunneling technology, the packets still pass through the kernel copy and software protocol stack, and the remote direct access effect of the IB network cannot be achieved, affecting transmission efficiency. Summary of the Invention

[0005] The embodiments of the present application provide a message transmission method and a communication device for improving the message transmission rate.

[0006] A first aspect of an embodiment of the present application provides a message transmission method, the method comprising: a gateway receives a first message from a first network device, a first message header of the first message includes an Internet Protocol IP address of a second network device, and the second network device is the destination network device for transmitting the message to the first network device; the gateway determines the local identifier LID of the second network device based on the IP address of the second network device in combination with a lookup table, the lookup table including an association between the IP address and the LID; the gateway strips the first message header of the first message and encapsulates the second message header to obtain a second message, the second message header including a local routing header, and the local routing header including the LID of the second network device; the gateway sends the second message based on the LID of the second network device.

[0007] In the first aspect mentioned above, the gateway parses the first message of the first network device to obtain the IP address of the second network device, matches the LID corresponding to the IP address of the second network device in the lookup table, encapsulates the second message header including the LID of the second network device, generates a second message in the first message after stripping the first message header, and then sends the second message according to the LID of the second network device. The second message is an ordinary IB format message, and the LID of the second network device is stored in the local routing header of the second message. The transmission of the second message in the IB network does not need to be copied through the kernel, and can achieve remote direct access to the IB network, thereby improving the message transmission efficiency.

[0008] In one possible implementation, the above-mentioned step of the gateway receiving the first message from the first network device includes: the gateway receiving the first message in a large-capacity buffer according to the credit flow control mechanism; the gateway feedbacks the status information of the large-capacity buffer to the first network device by pausing the message, so that the first network device adjusts the message transmission.

[0009] In the above possible implementation methods, the gateway can adopt the credit flow control mechanism of the IB network in combination with a large-capacity buffer to receive messages from the first network device. The large-capacity buffer can receive more flying messages. The gateway can also indicate the status information of the buffer to the first network device by pausing the message so that the first network device can adjust the transmission of subsequent messages. The first network device can reduce or stop sending messages accordingly, thereby avoiding message transmission congestion.

[0010] In one possible implementation, before the gateway receives the first message from the first network device in the above step, the method further includes: the gateway applies for an LID from the subnet manager based on the routing change, and the routing change indicates that the first network device joins the network; the gateway receives the LID of the first network device; the gateway obtains a response message from the second network device, and the response message includes the LID and IP address of the second network device; the gateway updates the lookup table based on the IP address and LID of the first network device, and the IP address and LID of the second network device.

[0011] In the above possible implementation manner, the gateway can apply for an LID for the subnet manager on the IB side for the first network device accessing the network, and obtain the response message of the second network device based on the broadcast message of the first network device, and generate or update the lookup table based on the IP address and LID of the second network device in the response message, thereby improving the feasibility of this solution.

[0012] In one possible implementation, the above-mentioned step in which the gateway applies for the LID from the subnet manager according to the routing change includes: the gateway receives an Address Resolution Protocol ARP message from the first network device, the ARP message includes the IP address of the first network device and the IP address of the second network device; the gateway applies for the LID of the first network device from the subnet manager according to the ARP message.

[0013] In the above possible implementation manner, the broadcast message can be an ARP message, and the routing change can also be determined by the ARP message. The gateway converts the ARP message into an ARP message in IB format and sends it to the second network device. The second network device feeds back an ARP response message, which includes the IP address and LID of the second network device, thereby improving the feasibility of this solution.

[0014] In one possible implementation, after the gateway strips the first message header of the first message and encapsulates the second message header to obtain the second message in the above step, the method further includes: the gateway updates the invariant cyclic redundancy check (ICRC) and the variant cyclic redundancy check (VCRC) of the second message.

[0015] In the above possible implementation manner, after the gateway converts the first message into the second message, the gateway needs to modify the ICRC and VCRC of the second message to increase the error detection capability.

[0016] In a possible implementation, the first message is an Ethernet message, and the second message is an IB message.

[0017] In one possible implementation, the Ethernet message includes an Ethernet header, an IP header, a UDP header, an IB transport header, an IB payload, an ICRC, and a cyclic redundancy check (CRC).

[0018] In a possible implementation, the IB message includes a local routing header, an IB transport header, an IB payload, an ICRC, and a VCRC.

[0019] A second aspect of an embodiment of the present application provides a message transmission method, including: a gateway receives a third message from a first network device, the third message header of the third message includes a local routing header, the local routing header includes a local identifier LID of a second network device, and the second network device is the destination network device for transmitting the message to the first network device; the gateway determines the Internet Protocol IP address of the second network device based on the LID of the second network device in combination with a lookup table, the lookup table includes an association between the IP address and the LID; the gateway strips the third message header of the third message and encapsulates a fourth message header to obtain a fourth message, the fourth message header includes the IP address of the second network device; the gateway sends the fourth message based on the IP address of the second network device.

[0020] In the second aspect mentioned above, the gateway parses the first message of the first network device to obtain the LID of the second network device, matches the IP address corresponding to the LID in the lookup table, encapsulates the second message header including the IP address of the second network device, generates a second message in the first message after stripping the first message header, and then sends the second message according to the LID of the second network device. The transmission of the second message in the Ethernet network does not need to be copied through the kernel, and can achieve remote direct access to the Ethernet network, thereby improving the message transmission efficiency.

[0021] In one possible implementation, the method further includes: the gateway obtains the queue pair number (QPN) of the first network device and the QPN of the second network device based on the link establishment message; the gateway obtains the User Datagram Protocol UDP port number of the second network device based on the QPN of the first network device and the QPN of the second network device, and the lookup table also includes the association between the QPN, UDP port number, IP address and LID, and the fourth message header also includes the media access control layer MAC address and UDP port number of the second network device, and the MAC address of the second network device is obtained by broadcasting according to the IP address of the second network device.

[0022] In the above possible implementation manner, when the gateway establishes a transmission link between the first network device and the second network device, it can also record the QPN of the first network device and the second network device, and calculate the UDP port number of the second network device through the QPN of the first network device and the second network device. The gateway can also send a broadcast message to the RoCE network according to the IP address of the second network device, so that the second network device can feedback the MAC address, and encapsulate the MAC address and UDP port number of the second network device into the second message, so that the gateway can transmit the second message according to the IP address, MAC address and UDP port number of the second network device, thereby improving the reliability of message transmission.

[0023] In one possible implementation, the above-mentioned step of the gateway sending the fourth message according to the IP address of the second network device includes: the gateway sending the fourth message in a large-capacity buffer according to the credit flow control mechanism and the IP address of the second network device; the gateway feeds back the status information of the large-capacity buffer to the second network device through a pause message, so that the second network device adjusts the message transmission.

[0024] In one possible implementation, before the gateway receives the third message from the first network device in the above step, the method also includes: the gateway applies for LID from the subnet manager based on the routing change, and the routing change indicates that the second network device joins the network; the gateway receives the LID of the second network device; the gateway obtains a response message from the first network device, and the response message includes the LID and IP address of the first network device; the gateway updates the lookup table based on the IP address and LID of the first network device, and the IP address and LID of the second network device.

[0025] In one possible implementation, the above-mentioned step of the gateway applying for the LID from the subnet manager according to the routing change includes: the gateway receiving the Address Resolution Protocol ARP message from the second network device, the ARP message including the IP address of the first network device and the IP address of the second network device; the gateway applying for the LID of the second network device from the subnet manager according to the ARP message.

[0026] In a possible implementation, after the gateway strips the first message header of the first message and encapsulates the second message header to obtain the second message in the above steps, the method further includes: the gateway updates the ICRC and CRC of the second message.

[0027] In a possible implementation, the first message is an Ethernet message, and the second message is an IB message.

[0028] In a possible implementation, the Ethernet message includes an Ethernet header, an IP header, a UDP header, an IB transport header, an IB payload, an ICRC, and a CRC.

[0029] In a possible implementation, the IB message includes a local routing header, an IB transport header, an IB payload, an ICRC, and a VCRC.

[0030] A third aspect of an embodiment of the present application provides a communication device, including: a receiving unit, used to receive a first message from a first network device, the first message header of the first message including the Internet Protocol IP address of a second network device, and the second network device is the destination network device for transmitting the message to the first network device; a determining unit, used to determine the local identifier LID of the second network device based on the IP address of the second network device in combination with a lookup table, the lookup table including an association relationship between the IP address and the LID; an encapsulating unit, used to strip the first message header of the first message and encapsulate the second message header to obtain a second message, the second message header including a local routing header, and the local routing header including the LID of the second network device; a sending unit, used to send the second message according to the LID of the second network device.

[0031] The communication device is used to execute the method of the first aspect or any implementation method of the first aspect.

[0032] The fourth aspect of an embodiment of the present application provides a communication device, including: a receiving unit, used to receive a third message from a first network device, the third message header of the third message includes a local routing header, the local routing header includes a local identifier LID of a second network device, and the second network device is the destination network device for transmitting the message to the first network device; a determination unit, used to determine the Internet Protocol IP address of the second network device based on the LID of the second network device in combination with a lookup table, the lookup table including an association between the IP address and the LID; an encapsulation unit, used to strip the third message header of the third message and encapsulate a fourth message header to obtain a fourth message, the fourth message header including the IP address of the second network device; a sending unit, used to send the fourth message based on the IP address of the second network device.

[0033] The communication device is used to execute the method of the second aspect or any implementation manner of the second aspect.

[0034] A fifth aspect of an embodiment of the present application provides a communication device, comprising: a processor, a memory, and a communication interface, wherein the processor is configured to execute instructions stored in the memory, causing the communication device to perform the method provided in the first aspect or any optional embodiment of the first aspect, and the communication interface is configured to receive or send instructions. Specific details of the communication device provided in the fifth aspect can be found in the first aspect or any optional embodiment of the first aspect, and are not further described here.

[0035] A sixth aspect of an embodiment of the present application provides a communication device, comprising: a processor, a memory, and a communication interface, the processor being configured to execute instructions stored in the memory so that the communication device performs the method provided in the second aspect or any optional embodiment of the second aspect, and the communication interface being configured to receive or send instructions. Specific details of the communication device provided in the sixth aspect may be found in the second aspect or any optional embodiment of the second aspect, and are not further described here.

[0036] A seventh aspect of an embodiment of the present application provides a computer-readable storage medium, in which a program is stored. When the computer executes the program, the method provided in the first aspect or any optional method of the first aspect is executed.

[0037] An eighth aspect of an embodiment of the present application provides a computer-readable storage medium, in which a program is stored. When the computer executes the program, the method provided in the aforementioned second aspect or any optional method of the second aspect is executed.

[0038] A ninth aspect of the embodiments of the present application provides a computer program product. When the computer program product is executed on a computer, the computer executes the method provided in the first aspect or any optional manner of the first aspect.

[0039] A tenth aspect of the embodiments of the present application provides a computer program product. When the computer program product is executed on a computer, the computer executes the method provided in the second aspect or any optional manner of the second aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0040] Figure 1 A block diagram of the HPC system provided in the embodiment of this application;

[0041] Figure 2 A schematic diagram of a short-distance scenario within a data center provided in an embodiment of the present application;

[0042] Figure 3 A schematic diagram of a long-distance scenario for supercomputing intermediate interconnection provided in an embodiment of the present application;

[0043] Figure 4 A schematic diagram of an embodiment of a message transmission method provided in an embodiment of the present application;

[0044] Figure 5 A schematic diagram of another embodiment of the message transmission method provided in an embodiment of the present application;

[0045] Figure 6 A schematic diagram of the structure of a gateway provided in an embodiment of the present application;

[0046] Figure 7 Another schematic diagram of the structure of the gateway provided in the embodiment of the present application;

[0047] Figure 8 Another schematic diagram of the structure of the gateway provided in the embodiment of the present application;

[0048] Figure 9 A schematic structural diagram of a communication device provided in an embodiment of the present application;

[0049] Figure 10 Another structural diagram of a communication device provided in an embodiment of the present application;

[0050] Figure 11 A schematic diagram of the structure of a communication device provided in an embodiment of the present application;

[0051] Figure 12 Another structural diagram of the communication device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0052] The embodiments of the present application provide a message transmission method and a communication device for improving the message transmission rate.

[0053] The following describes the embodiments of the present application in conjunction with the accompanying drawings. Obviously, the embodiments described are only part of the embodiments of the present application, rather than all the embodiments. Those skilled in the art will appreciate that with the development of technology and the emergence of new scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.

[0054] The terms "first," "second," and the like in the specification and claims of this application and in the accompanying drawings are used to distinguish similar objects and are not necessarily used to describe a particular order or precedence. It should be understood that the terms used in this manner are interchangeable where appropriate so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "including" and "having," as well as any variations thereof, are intended to cover non-exclusive inclusions, e.g., a process, method, system, product, or apparatus comprising a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units that are not explicitly listed or that are inherent to these processes, methods, products, or apparatus.

[0055] The word “exemplary” is used exclusively herein to mean “serving as an example, example, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.

[0056] The tables in this application can be split and merged, and are not limited to this. This is just an example.

[0057] In addition, numerous specific details are provided in the detailed description below to better illustrate the present application. Those skilled in the art will appreciate that the present application can be practiced without certain specific details. In some instances, methods, means, components, and circuits well known to those skilled in the art are not described in detail in order to highlight the main purpose of the present application.

[0058] As data volumes increase dramatically, the computing power requirements of processing systems for application performance are exponentially increasing, leading to a surge in demand for high-performance computing (HPC) applications. The main industries and applications for HPC are in scientific research institutions such as schools and research institutes. These include the petroleum sector, medical biology, computational chemistry, automotive and aerospace design, architectural structure design, and three-dimensional graphics computing. HPC refers to computing systems and environments that utilize many processors (part of a single machine) or several computers in a cluster (operating as a single computing resource). Parallel algorithms are used for large-scale computing tasks, splitting a large task and distributing it to different nodes within the cluster for parallel computing. The results are then aggregated to quickly obtain the final result. This shows that HPC system performance is closely related not only to the computing power and storage performance of the computing nodes, but also to the performance of the network interconnecting the nodes. Since its inception, InfiniBand (IB) has been the preferred choice for supercomputer interconnection due to its high performance and low latency. However, with the emergence of Ethernet-based Remote Direct Access (RDMA over converged Ethernet version 2, RoCEv2) networks, it has been increasingly adopted for supercomputer interconnection due to its full compatibility with Ethernet IP networks and support for the Remote Direct Memory Access (RDMA) protocol.

[0059] The Ethernet message is a message transmitted in the Ethernet network and is transmitted in the Ethernet network based on the IP address in the IP header.

[0060] IB messages are messages transmitted in the IB network. The IB network is unaware of IP addresses. Network devices in the IB network are assigned local identification (LID). IB messages are transmitted in the IB network based on the LID in the local routing header.

[0061] Currently, there are scenarios in which IB networks and RoCE networks coexist in data centers and need to interact with each other. For example, storage and computing use different high-speed Internet networks, and devices and equipment that support the interconnection of IB networks and RoCE networks are required. Figure 1The figure shows the block diagram of the HPC system provided by the embodiment of the present application. In the HPC cluster environment, the computing nodes and storage nodes are interconnected by a high-performance RDMA network. Currently, the mainstream ones are IB and RoCEv2 network interconnections. Figure 1 In the example, a mixed IB and RoCE interconnection exists, and Ethernet packets are converted into IB packets.

[0062] Most HPC clusters use IB and RoCE networks for networking. There is a need for data transmission across IB and RoCE networks, and efficient intercommunication between IB and RoCE networks is required.

[0063] The method for converting IB and Ethernet RoCE implemented in the embodiment of the present application can be used for efficient data interaction scenarios across IB networks and RoCE networks, mainly in short-distance scenarios within data centers and long-distance scenarios between supercomputing centers, such as Figure 2 The diagram shows a short-distance scenario within a data center provided by an embodiment of the present application. The IB network and the RoCE network are transmitted through a gateway. The IB message of the IB network is converted into an Ethernet message through the gateway for transmission in the RoCE network, or the Ethernet message of the RoCE network is converted into an IB message through the gateway for transmission in the IB network. Figure 3 The figure shows a long-distance scenario diagram of supercomputing intermediate interconnection provided by an embodiment of the present application, including IB network 1, gateway 1, IB network 2, and gateway 2. IB network 1 converts IB messages into Ethernet messages through gateway 1 and transmits them to gateway 2. Gateway 2 converts Ethernet messages into IB messages for transmission within IB network 2. This embodiment of the present application takes a short-distance scenario as an example.

[0064] In the existing technology, Ethernet IP messages are transmitted on the IB network through a gateway device (GateWay) using the Internet Protocol over InfiniBand (IPoIB) technology running on the IB. Among them, TCP / IP messages are directly encapsulated in the IB message transmission through tunnel technology. The messages still go through the kernel copy and software protocol stack, which cannot give full play to the kernel bypass and zero copy advantages of the IB network. The latency is large and the CPU occupancy rate is high. Traditional messages are encapsulated through the IB network, which cannot give full play to the high carrying efficiency advantage of the IB network. In particular, for small message messages, the message encapsulation efficiency is significantly reduced.

[0065] To solve the above problems, an embodiment of the present application provides a message transmission method, which is as follows.

[0066] See also Figure 4 ,like Figure 4FIG. 1 is a diagram illustrating an embodiment of a message transmission method provided by an embodiment of the present application, the method comprising:

[0067] 401. The first network device sends a first message to the gateway.

[0068] In an embodiment of the present application, the first network device is a network device on the RoCE network side, and the second network device is a network device on the IB network side. The network device on the RoCE network side needs to send data to the network device on the IB network side. Specifically, the first network device can send a first message including the data to the second network device through a gateway. The first message is an Ethernet message. The first message includes the media access control (MAC) address, internet protocol (IP) address, and user datagram protocol (UDP) port number of the first network device, as well as the MAC address and IP address of the second network device.

[0069] The message format of the first message is shown in Table 1 below. The first message includes an Ethernet (ETH) header, an IP header, a UDP header, an IB transport header, an IB payload, an invariant cyclic redundancy check (ICRC) and a cyclic redundancy check (CRC) field, wherein the ETH header stores the MAC addresses of the first network device and the second network device, the IP header stores the IP addresses of the first network device and the second network device, the UDP header stores the UDP port number of the first network device, the IB transport header field stores the QPN of the first network device and the QPN of the second network device, and the ICRC field and the CRC field are used to verify the data in the frame to ensure the correctness of data transmission.

[0070] Table 1

[0071]

[0072] 402. The gateway determines the LID of the second network device based on the IP address of the second network device and in combination with the lookup table.

[0073] In an embodiment of the present application, after receiving the first message, the gateway can parse the first message to obtain the IP address of the second network device in the IP header, and then can match the IP address of the second network device with the lookup table based on the association between the IP address and LID in the lookup table to obtain the LID of the second network device.

[0074] Optionally, before step 401, the gateway requests an LID from the subnet manager based on the routing change; the gateway receives the LID of the first network device; the gateway obtains a response message from the second network device; and the gateway updates the lookup table based on the IP address and LID of the first network device and the IP address and LID of the second network device. Specifically, when the first network device accesses the network, the gateway needs to add a routing path, i.e., the gateway can determine the routing change. The gateway can request an LID from the subnet manager, which is located in the IB network. The subnet manager can randomly assign a LID, and the gateway can then associate the LID with the IP address of the first network device. The gateway can also receive a broadcast message from the first network, convert it into an IB message, and forward it to the second network device, so that the second network device returns a response message. The response message includes the IP address and LID of the second network device. The gateway can then associate the IP address and LID of the first network device with the IP address and LID of the second network device and save it in the lookup table, or update the lookup table.

[0075] Optionally, the gateway may request the LID from the subnet manager based on the routing change by receiving an Address Resolution Protocol (ARP) message from the first network device and requesting the LID of the first network device from the subnet manager based on the ARP message. Specifically, the gateway may also identify a newly added terminal on the Ethernet side by receiving an ARP message from the Ethernet side or a message from another protocol. Upon receiving the ARP message, the gateway may obtain the IP address in the ARP message and request the LID for the first network device from the subnet manager. Accordingly, the gateway converts the ARP message into an ARP message on the IB side and sends it to the second network device. The response message sent by the second network device is the ARP response message.

[0076] Optionally, after the above-mentioned lookup table is generated or updated, an aging setting can also be performed. The source IP address and destination IP address in the lookup table can be used as the judgment basis. If a message including the source IP address and destination IP address is not received within a set time, the association between the source IP address and the destination IP address in the lookup table is deleted, or if a message including the source IP address and the destination IP address is not received within a set time, the lookup table enters the aging counting process. When the aging counter reaches a preset value, the association between the source IP address and the destination IP address in the lookup table is deleted. This embodiment does not limit the method of deleting the association between the source IP address and the destination IP address in the lookup table. Specifically, if an Ethernet message containing a specific IP is received during the counting period of the aging counting process, the aging counting process is re-entered.

[0077] 403. The gateway strips the first message header from the first message and encapsulates the second message header to obtain a second message.

[0078] In an embodiment of the present application, after the gateway obtains the LID of the second network device from the lookup table based on the IP address of the second network device, it can strip the first message header of the first message, wherein the first message includes the ETH header, IP header and UDP header as shown in Table 1. The gateway can then encapsulate the first message after stripping the first message header with the second message header to form a second message, the second message header includes the LID of the second network device, the second message header is an IB message, and the conversion between the IB message and the Ethernet message is realized by using a hardware lookup table. The format of the second message is shown in Table 2, the local route header (Local Route Header) is included in the second message header, and the Local Route Header field includes the LIDs of the first network device and the second network device.

[0079] Table 2

[0080]

[0081] After stripping the first message header and encapsulating the second message header, the gateway may also update the UDP port number in the first message header and the QPN in the IB transport header into the lookup table.

[0082] The format of the lookup table may be as shown in Table 3 below, where Src represents the source device, Dst represents the destination device, and Src UDPport1 represents the UDP port number of the second network device.

[0083] Table 3

[0084] Src IP1 Dst IP1 Src LID1 Dst LID1 Dst QPN1 Src QPN1 Src UDP port1 Src IP2 Dst IP2 Src LID2 Dst LID2 Dst QPN2 Src QPN2 Src UDP port2 Src IP3 Dst IP3 Src LID3 Dst LID3 Dst QPN3 Src QPN3 Src UDP port 3 … … … … … … … Src IPn Dst IPn Src LIDn Dst LIDn Dst QPNn Src QPNn Src UDP portn

[0085] Optionally, before sending the second message to the second network device, the gateway may also update the ICRC and variable cyclic redundancy check (VCRC) of the second message. Specifically, after the gateway converts the first message into the second message, the gateway needs to modify the ICRC and VCRC of the second message to increase the code distance and error detection and correction capabilities of the entire coding system.

[0086] This converts Ethernet packets into IB packets, updates the packet's ICRC and VCRC, and records the UDP port number. Furthermore, the RoCEv2 type of service (TOS) / differentiated services code point (DSCP) is mapped to the IB packet's service level (SL) field to deliver quality of service (QoS) information. DSCP uses the used 6 bits and unused 2 bits in the service category TOS identifier byte of each packet's IP header to distinguish priorities through encoded values. Eight of the 16 virtual ports on the IB side are mapped to the RoCE network's eight transmit queues. Table 4 shows the value range of the Ethernet-side DSCP field and the mapping method for the IB-side SL field.

[0087] Table 4

[0088] RoCEv2-side DSCP (6 bits) IB side SL (4 bits) Priority 0-7 0 Priority 0 8-15 1 Priority 1 16-23 2 Priority 2 24-31 3 Priority 3 32-39 4 Priority 4 40-47 5 Priority 5 48-55 6 Priority 6 56-63 7 Priority 7

[0089] 404. The gateway sends a second message according to the LID of the second network device.

[0090] In the embodiment of the present application, after generating the second message, the gateway may send the second message to the second network device in the IB network according to the LID of the second network device.

[0091] For long-distance interconnection scenarios within supercomputing centers, the local gateway and remote gateway must negotiate a common subnet manager. This means the LID assigned by the subnet manager must be unique within the IB network where the local and remote gateways reside. The local gateway converts IB messages into Ethernet messages, and the IP and MAC addresses can be configured on the local gateway.

[0092] The local gateway receives messages from the remote gateway using a two-level flow control method:

[0093] Optionally, the gateway receives the first message from the first network device by receiving the first message in a large-capacity buffer according to a credit flow control mechanism; the gateway feeds back status information of the large-capacity buffer to the first network device via a Pause message, so that the first network device adjusts message transmission. Specifically, the gateway adopts the credit flow control mechanism native to the IB network, uses a large-capacity buffer docking system based on a first-in-first-out (FIFO) queue at a virtual lane (VL) granularity, adopts a configurable FIFO waterline, and monitors the internal storage status of the FIFO in real time. The large-capacity buffer can receive more in-flight messages. When the remote Ethernet side transmits a large amount of data to the local gateway, the local gateway transmits the FIFO status information to the Ethernet port of the remote gateway via an Ethernet flow control Pause message, and simultaneously parses the Pause message and combines it with the waterline setting to determine the congestion status of the other end and adjust the sending end to ensure efficient transmission and no congestion on the other end. Specifically, the priority-based flow control (PFC) function of the port can be used to control the flow of packets based on the 802.1P priority, and the pause time in the PFC can be changed to the buffer stacking condition.

[0094] The technical solution of the embodiment of the present application parses the first message of the first network device through the gateway to obtain the IP address of the second network device, matches the LID corresponding to the IP address of the second network device in the lookup table, encapsulates the second message header including the LID of the second network device, generates a second message in the first message after stripping the first message header, and then sends the second message according to the LID of the second network device. The transmission of the second message in the IB network does not need to be copied through the kernel, and the remote direct access effect of the IB network can be achieved, thereby improving the message transmission efficiency.

[0095] The above describes a method in which a gateway converts an Ethernet message into an IB message. The following describes a method in which a gateway converts an IB message into an Ethernet message. The first network device is a network device of an IB network, and the second network device is a network device of an Ethernet network.

[0096] See also Figure 5 ,like Figure 5 Shown is a schematic diagram of another embodiment of a message transmission method provided in an embodiment of the present application, the method is as follows.

[0097] 501. The first network device sends a third message to the gateway.

[0098] In an embodiment of the present application, the third message is an IB message, and the format of the IB message can refer to the format of the IB message in step 403. The third message header of the third message includes a Local Route Header, and the Local Route Header includes the LID of the first network device and the LID of the second network device, as well as the QPN of the first network device and the QPN of the second network device.

[0099] 502. The gateway determines the Internet Protocol IP address of the second network device according to the LID of the second network device in combination with the lookup table.

[0100] The method of searching for the IP address according to the LID and updating the lookup table in step 502 can refer to the description of searching for the LID according to the IP address and updating the lookup table in step 402, which will not be repeated here.

[0101] 503. The gateway strips the third message header of the third message and encapsulates the fourth message header to obtain a fourth message.

[0102] In an embodiment of the present application, the fourth message header includes an ETH header, an IP header, a UDP header, an IB transport header, an IB payload and a CRC field. The gateway receives the IB message, parses the source LID and destination LID and destination QPN of the LRH field inside the IB message, and realizes the source IP address, destination IP address and UDP port number of the Ethernet header of the Ethernet message through the source LID and destination LID and destination QPN matching lookup table of the message, and directly encapsulates the IB transport header and IB payload into the corresponding location field of RoCEv2. The gateway can also send a broadcast message to the RoCE network according to the destination IP address, so that the second network device can feedback the MAC address, which is the destination MAC address, and the destination MAC address is stored in the ETH header field. Based on the hop-by-hop nature of the MAC address in the ETH header of the Ethernet message, the MAC address of the Ethernet side interface of the gateway can be used as the source MAC address, and the ICRC and CRC fields of the message are updated and encapsulated into the corresponding check field. At this point, the gateway realizes the mutual conversion between the IB message on the IB side and the Ethernet message on the Ethernet side. The fourth message can refer to Figure 4 The format of the first message in will not be described here.

[0103] Optionally, the gateway obtains the QPN of the first network device and the QPN of the second network device based on the link establishment message; the gateway obtains the UDP port number of the second network device based on the QPN of the first network device and the QPN of the second network device. Specifically, when the first network device and the second network device establish a connection, the first network device may send a link establishment message to the gateway, which converts the link establishment message into IB format and sends it to the second network device, and the second network device then returns a link establishment response message. Alternatively, the second network device may send a link establishment message to the gateway, which converts the link establishment message into Ethernet format and sends it to the first network device, and the first network device then returns a link establishment response message. The gateway may obtain the QPN of the first network device and the QPN of the second network device based on the link establishment message, and calculate the UDP port number of the second network device based on the mapping relationship between QPN and UDP port number, combined with the QPN of the first network device and the QPN of the second network device. The gateway may store the corresponding relationship between the QPN of the first network device, the QPN of the second network device, and the UDP port number of the second network device in a lookup table. After the gateway assigns an LID to the second network device, the lookup table may also include the association between the IP address, LID, QPN, and UDP port number. The gateway can then determine the MAC address of the first network device and the MAC address of the second network device, the IP address of the first network device and the IP address of the second network device, the QPN of the first network device and the QPN of the second network device, and the UDP port number of the second network device required by the fourth message header based on the third message.

[0104] 504. The gateway sends a fourth message according to the IP address of the second network device.

[0105] In the embodiment of the present application, the gateway may transmit the fourth message according to the IP address of the second network device in the fourth message in accordance with the transmission mode of the Ethernet message.

[0106] Optionally, the gateway may employ two-stage flow control transmission to send the fourth message based on the IP address of the second network device. The gateway transmits the fourth message in a large-capacity buffer based on a credit flow control mechanism and the IP address of the second network device. The gateway then provides feedback of large-capacity buffer status information to the second network device via a pause message, enabling the second network device to adjust message transmission. The description of this two-stage flow control transmission can be found in step 304 and is not repeated here.

[0107] The technical solution of the embodiment of the present application parses the first message of the first network device through the gateway to obtain the LID of the second network device, matches the IP address corresponding to the LID in the lookup table, encapsulates the second message header including the IP address of the second network device, generates a second message in the first message after stripping the first message header, and then sends the second message according to the LID of the second network device. The transmission of the second message in the Ethernet network does not need to be copied through the kernel, and can achieve remote direct access effect of the Ethernet network, thereby improving the message transmission efficiency.

[0108] The structure of the gateway in the embodiment of the present application can be as follows Figure 6 The gateway structure diagram shown in the figure includes a switching chip and a processing chip, wherein the switching chip mainly implements the basic forwarding function, and the processing chip can be a CPU, FPGA, etc., which is responsible for establishing and maintaining the lookup table required for the conversion of different protocol messages and the conversion of different protocol messages.

[0109] The structure of the gateway in the embodiment of the present application can be as follows Figure 7 Another structural diagram of the gateway shown is shown, which includes a switching chip, wherein the switching chip includes a receiving module, a processing module and a sending module. The receiving module and the sending module implement basic forwarding functions, and the processing module is responsible for establishing and maintaining the lookup table required for conversion of different protocol messages and converting different protocol messages.

[0110] In the embodiment of the present application, the structure of the processing chip can refer to Figure 8 The processing chip structure diagram shown in the figure includes an Ethernet interface, an encapsulation / decapsulation module, a buffer module, an IB credit flow control module, an IB interface, a quality of service module and a management module.

[0111] The Ethernet interface is used to receive or output Ethernet packets.

[0112] The encapsulation / decapsulation module is used to perform conversion between Ethernet messages and IB messages.

[0113] The buffer module is used to store in-flight messages and send the status information of the buffer module to the peer end through the RoCE network.

[0114] The IB credit flow control module is used to adjust the message transmission on the IB side.

[0115] The QoS module is used to determine the virtual port for transmission between the Ethernet side and the IB side.

[0116] The management module is used to manage LIDs, and may exemplarily apply for LIDs from the subnet manager and allocate LIDs to nodes.

[0117] The message transmission method is described above. The following describes a communication device that can execute the message transmission method.

[0118] See also Figure 9 ,like Figure 9 FIG. 1 is a schematic diagram of a communication device according to an embodiment of the present application. The communication device 90 includes:

[0119] A receiving unit 901 is configured to receive a first message from a first network device, wherein a first message header of the first message includes an Internet Protocol (IP) address of a second network device, and the second network device is a destination network device to which the first network device transmits the message;

[0120] A determining unit 902 is configured to determine a local identifier LID of the second network device according to the IP address of the second network device and in combination with a lookup table, wherein the lookup table includes an association between the IP address and the LID;

[0121] an encapsulation unit 903, configured to strip the first message header from the first message and encapsulate the second message header to obtain a second message, where the second message header includes a local routing header, and the local routing header includes an LID of the second network device;

[0122] The sending unit 904 is configured to send a second message according to the LID of the second network device.

[0123] Optionally, the receiving unit 901 is specifically configured to:

[0124] receiving a first message in a large-capacity buffer according to a credit flow control mechanism;

[0125] The status information of the large-capacity buffer is fed back to the first network device by pausing the message, so that the first network device adjusts the message transmission.

[0126] Optionally, the sending unit 904 is further configured to:

[0127] requesting an LID from the subnet manager based on the routing change, the routing change instructing the first network device to join the network;

[0128] The receiving unit 901 is further configured to:

[0129] receiving a LID of a first network device;

[0130] The acquisition unit 905 is further configured to:

[0131] Obtain a response message from the second network device, where the response message includes the LID and IP address of the second network device;

[0132] The communication device further includes an updating unit 906, which is specifically configured to:

[0133] The lookup table is updated according to the IP address and LID of the first network device and the IP address and LID of the second network device.

[0134] Optionally, the sending unit 904 is further configured to:

[0135] Receive an Address Resolution Protocol (ARP) message from the first network device, where the ARP message includes an IP address of the first network device and an IP address of the second network device;

[0136] Apply for the LID of the first network device from the subnet manager according to the ARP message.

[0137] Optionally, the updating unit 906 is further configured to:

[0138] The invariant cyclic redundancy check code ICRC and the variable cyclic redundancy check code VCRC of the second message are updated.

[0139] Optionally, the first message is an Ethernet message, and the second message is an IB message.

[0140] Optionally, the Ethernet message includes an Ethernet header, an IP header, a UDP header, an IB transport header, an IB payload, an ICRC, and a CRC.

[0141] Optionally, the IB message includes a local routing header, an IB transport header, an IB payload, an ICRC, and a VCRC.

[0142] See also Figure 10 ,like Figure 10 FIG. 1 is another structural diagram of a communication device provided in an embodiment of the present application. The communication device 100 includes:

[0143] A receiving unit 1001 is configured to receive a third message from a first network device, where a third message header of the third message includes a local routing header, and the local routing header includes a local identifier LID of a second network device, where the second network device is a destination network device for transmitting the message to the first network device;

[0144] A determining unit 1002 is configured to determine an Internet Protocol (IP) address of the second network device based on the LID of the second network device in combination with a lookup table, wherein the lookup table includes an association between the IP address and the LID;

[0145] an encapsulation unit 1003, configured to strip the third message header from the third message and encapsulate the fourth message header to obtain a fourth message, where the fourth message header includes the IP address of the second network device;

[0146] The sending unit 1004 is configured to send a fourth message according to the IP address of the second network device.

[0147] Optionally, the communication device 100 further includes an acquisition unit 1005, and the acquisition unit 1005 is specifically configured to:

[0148] Obtain the QPN of the first network device and the QPN of the second network device according to the link establishment message;

[0149] The User Datagram Protocol UDP port number of the second network device is obtained according to the QPN of the first network device and the QPN of the second network device. The lookup table also includes the association between QPN, UDP port number, IP address and LID. The fourth message header also includes the media access control layer MAC address and UDP port number of the second network device. The MAC address of the second network device is obtained by broadcasting according to the IP address of the second network device.

[0150] Optionally, the sending unit 1004 is specifically configured to:

[0151] sending a fourth message in the large-capacity buffer according to the credit flow control mechanism and the IP address of the second network device;

[0152] The status information of the large-capacity buffer is fed back to the second network device by pausing the message, so that the second network device adjusts the message transmission.

[0153] Optionally, the sending unit 1004 is further configured to:

[0154] requesting an LID from the subnet manager based on the routing change, the routing change instructing the second network device to join the network;

[0155] The receiving unit 1001 is further configured to:

[0156] receiving a LID of a second network device;

[0157] The acquisition unit 1005 is further configured to:

[0158] Obtain a response message from the first network device, where the response message includes the LID and IP address of the first network device;

[0159] The communication device 100 further includes an updating unit 1006, which is specifically configured to:

[0160] The lookup table is updated according to the IP address and LID of the first network device and the IP address and LID of the second network device.

[0161] Optionally, the sending unit 1004 is further configured to:

[0162] receiving an Address Resolution Protocol (ARP) message from the second network device, where the ARP message includes the IP address of the first network device and the IP address of the second network device;

[0163] Apply for the LID of the second network device from the subnet manager according to the ARP message.

[0164] Optionally, the updating unit 1006 is further configured to:

[0165] The invariant cyclic redundancy check ICRC and the cyclic redundancy check CRC of the second message are updated.

[0166] Optionally, the first message is an Ethernet message, and the second message is an IB message.

[0167] Optionally, the Ethernet message includes an Ethernet header, an IP header, a UDP header, an IB transport header, an IB payload, an ICRC, and a CRC.

[0168] Optionally, the IB message includes a local routing header, an IB transport header, an IB payload, an ICRC, and a VCRC.

[0169] Figure 11 FIG1 is a diagram showing a possible logical structure of a communication device 110 according to an embodiment of the present application. The communication device 110 includes a processor 1101, a communication interface 1102, a storage system 1103, and a bus 1104. The processor 1101, the communication interface 1102, and the storage system 1103 are interconnected via the bus 1104. In an embodiment of the present application, the processor 1101 is used to control and manage the actions of the communication device 110. For example, the processor 1101 is used to execute Figure 4 The steps performed by the gateway in the embodiment of the method. The communication interface 1102 is used to support the communication device 110 to communicate. The storage system 1103 is used to store program codes and data of the communication device 110.

[0170] Among them, the processor 1101 can be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a transistor logic device, a hardware component or any combination thereof. It can implement or execute the various exemplary logic blocks, modules and circuits described in conjunction with the disclosure of this application. The processor 1101 can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, and so on. The bus 1104 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 11 Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.

[0171] The receiving unit 901 and the sending unit 904 in the communication apparatus 90 are equivalent to the communication interface 1102 in the communication device 110 , and the determining unit 902 , the encapsulating unit 903 , the acquiring unit 905 and the updating unit 906 in the communication apparatus 90 are equivalent to the processor 1101 in the communication device 110 .

[0172] The communication device 110 of this embodiment may correspond to the above Figure 4 In the gateway of the method embodiment, the communication interface 1102 in the communication device 110 can implement the above Figure 4 For the sake of brevity, the functions of the gateway and / or the various steps implemented in the method embodiment are not described in detail here.

[0173] Figure 12 FIG1 is a diagram showing a possible logical structure of a communication device 120 according to an embodiment of the present application. The communication device 120 includes a processor 1201, a communication interface 1202, a storage system 1203, and a bus 1204. The processor 1201, the communication interface 1202, and the storage system 1203 are interconnected via the bus 1204. In an embodiment of the present application, the processor 1201 is used to control and manage the actions of the communication device 120. For example, the processor 1201 is used to execute Figure 5 The steps performed by the gateway in the embodiment of the method. The communication interface 1202 is used to support the communication device 120 to communicate. The storage system 1203 is used to store program codes and data of the communication device 120.

[0174] Among them, the processor 1201 can be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a transistor logic device, a hardware component or any combination thereof. It can implement or execute the various exemplary logic blocks, modules and circuits described in conjunction with the disclosure of this application. The processor 1201 can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, and so on. The bus 1204 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 12 Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.

[0175] The receiving unit 1001 and the sending unit 1004 in the communication apparatus 100 are equivalent to the communication interface 1202 in the communication device 120 , and the determining unit 1002 , the encapsulating unit 1003 , the acquiring unit 1005 and the updating unit 1006 in the communication apparatus 100 are equivalent to the processor 1201 in the communication device 120 .

[0176] The communication device 120 of this embodiment may correspond to the above Figure 5 In the gateway of the method embodiment, the communication interface 1202 in the communication device 120 can implement the above Figure 5 For the sake of brevity, the functions of the gateway and / or the various steps implemented in the method embodiment are not described in detail here.

[0177] In another embodiment of the present application, a computer-readable storage medium is further provided. The computer-readable storage medium stores computer-executable instructions. When the processor of the device executes the computer-executable instructions, the device executes the above-mentioned Figure 4 The steps of the message transmission method executed by the gateway in the method embodiment.

[0178] In another embodiment of the present application, a computer-readable storage medium is further provided. The computer-readable storage medium stores computer-executable instructions. When the processor of the device executes the computer-executable instructions, the device executes the above-mentioned Figure 5 Steps of the message transmission method executed by the gateway in the method embodiment.

[0179] In another embodiment of the present application, a computer program product is further provided. The computer program product includes computer-executable instructions stored in a computer-readable storage medium. When the processor of the device executes the computer-executable instructions, the device executes the above-mentioned Figure 4 Steps of the message transmission method executed by the gateway in the method embodiment.

[0180] In another embodiment of the present application, a computer program product is further provided. The computer program product includes computer-executable instructions stored in a computer-readable storage medium. When the processor of the device executes the computer-executable instructions, the device executes the above-mentioned Figure 5 Steps of the message transmission method executed by the gateway in the method embodiment.

[0181] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0182] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0183] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.

[0184] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.

[0185] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, read-only memory), random access memory (RAM, random access memory), disk or optical disk, and other media that can store program code.

Claims

1. A message transmission method, characterized in that: include: The gateway receives a first message from a first network device, where a first message header of the first message includes an Internet Protocol IP address of a second network device, and the second network device is a destination network device to which the first network device transmits the message; The gateway determines the local identifier LID of the second network device according to the IP address of the second network device in combination with a lookup table, wherein the lookup table includes an association between the IP address and the LID; The gateway strips the first message header of the first message and encapsulates the second message header to obtain a second message, where the second message header includes a local routing header, and the local routing header includes the LID of the second network device; The gateway sends the second message according to the LID of the second network device.

2. The message transmission method according to claim 1, wherein: The gateway receiving a first message from a first network device includes: The gateway receives the first message in a large-capacity buffer according to a credit flow control mechanism; The gateway feeds back the status information of the large-capacity buffer to the first network device by pausing the message, so that the first network device adjusts the message transmission.

3. The message transmission method according to any one of claims 1 to 2, characterized in that: Before the gateway receives the first message from the first network device, the method further includes: The gateway applies for an LID from the subnet manager based on a routing change, wherein the routing change instructs the first network device to join the network; The gateway receives the LID of the first network device; The gateway obtains a response message from the second network device, where the response message includes the LID and IP address of the second network device; The gateway updates the lookup table according to the IP address and LID of the first network device and the IP address and LID of the second network device.

4. The message transmission method according to claim 3, wherein: The gateway applying for the LID from the subnet manager according to the route change includes: The gateway receives an Address Resolution Protocol ARP message from the first network device, where the ARP message includes the IP address of the first network device and the IP address of the second network device; The gateway applies for the LID of the first network device from the subnet manager according to the ARP message.

5. The message transmission method according to claim 3, wherein: After the gateway strips the first message header of the first message and encapsulates the second message header to obtain the second message, the method further includes: The gateway updates an invariant cyclic redundancy check code ICRC and a variable cyclic redundancy check code VCRC of the second message.

6. The message transmission method according to any one of claims 1-2, characterized in that: The first message is an Ethernet message, and the second message is an IB message.

7. The message transmission method according to claim 6, characterized in that: The Ethernet message includes an Ethernet header, an IP header, a UDP header, an IB transport header, an IB effective load, an ICRC and a cyclic redundancy check code CRC.

8. The message transmission method according to claim 6, wherein: The IB message includes the local routing header, the IB transport header, the IB payload, the ICRC and the VCRC.

9. A message transmission method, characterized in that: include: The gateway receives a third message from the first network device, where a third message header of the third message includes a local routing header, and the local routing header includes a local identifier LID of the second network device, where the second network device is the destination network device to which the first network device transmits the message; The gateway determines the Internet Protocol IP address of the second network device based on the LID of the second network device in combination with a lookup table, wherein the lookup table includes an association between the IP address and the LID; The gateway strips the third message header of the third message and encapsulates the fourth message header to obtain a fourth message, where the fourth message header includes the IP address of the second network device; The gateway sends the fourth message according to the IP address of the second network device.

10. The message transmission method according to claim 9, characterized in that: The method further comprises: The gateway obtains the queue pair number QPN of the first network device and the QPN of the second network device according to the link establishment message; The gateway obtains the User Datagram Protocol UDP port number of the second network device based on the QPN of the first network device and the QPN of the second network device. The lookup table also includes the association between QPN, UDP port number, IP address and LID. The fourth message header also includes the media access control layer MAC address and UDP port number of the second network device. The MAC address of the second network device is obtained by broadcasting the IP address of the second network device.

11. The message transmission method according to claim 9 or 10, characterized in that: The gateway sending the fourth message according to the IP address of the second network device includes: The gateway sends the fourth message in a large-capacity buffer according to the credit flow control mechanism and the IP address of the second network device; The gateway feeds back the status information of the large-capacity buffer to the second network device via a pause message, so that the second network device adjusts message transmission.

12. The message transmission method according to any one of claims 9 to 10, characterized in that: Before the gateway receives the third message from the first network device, the method further includes: The gateway applies for an LID from the subnet manager according to the routing change, wherein the routing change instructs the second network device to join the network; The gateway receives the LID of the second network device; The gateway obtains a response message from the first network device, where the response message includes the LID and IP address of the first network device; The gateway updates the lookup table according to the IP address and LID of the first network device and the IP address and LID of the second network device.

13. The message transmission method according to claim 12, characterized in that: The gateway applying for the LID from the subnet manager according to the route change includes: The gateway receives an Address Resolution Protocol ARP message from the second network device, where the ARP message includes the IP address of the first network device and the IP address of the second network device; The gateway applies for the LID of the second network device from the subnet manager according to the ARP message.

14. The message transmission method according to claim 12, wherein: After the gateway strips the third message header of the third message and encapsulates the fourth message header to obtain the fourth message, the method further includes: The gateway updates the invariant cyclic redundancy check ICRC and the cyclic redundancy check CRC of the fourth message.

15. The message transmission method according to any one of claims 9 to 10, characterized in that: The fourth message is an Ethernet message, and the third message is an IB message.

16. The message transmission method according to claim 15, characterized in that: The Ethernet message includes an Ethernet header, an IP header, a UDP header, an IB transport header, an IB payload, an ICRC and a CRC.

17. The message transmission method according to claim 15, characterized in that: The IB message includes the local routing header, the IB transmission header, the IB payload, the ICRC and the variable cyclic redundancy check code VCRC.

18. A communication device, characterized in that: include: a receiving unit, configured to receive a first message from a first network device, wherein a first message header of the first message includes an Internet Protocol (IP) address of a second network device, and the second network device is a destination network device to which the first network device transmits the message; a determining unit, configured to determine a local identifier LID of the second network device according to the IP address of the second network device in combination with a lookup table, wherein the lookup table includes an association relationship between the IP address and the LID; an encapsulation unit, configured to strip a first message header from the first message and encapsulate a second message header to obtain a second message, wherein the second message header includes a local routing header, and the local routing header includes an LID of the second network device; A sending unit is used to send the second message according to the LID of the second network device.

19. The communication device according to claim 18, wherein: The receiving unit is specifically configured to: receiving the first message in a large-capacity buffer according to a credit flow control mechanism; The status information of the large-capacity buffer is fed back to the first network device by pausing the message, so that the first network device adjusts the message transmission.

20. The communication device according to any one of claims 18 to 19, characterized in that: The sending unit is further configured to: requesting a LID from a subnet manager based on a routing change, the routing change indicating that the first network device has joined the network; The receiving unit is further configured to: receiving the LID of the first network device; The communication device further includes an acquisition unit, which is specifically configured to: Obtain a response message from the second network device, where the response message includes the LID and IP address of the second network device; The communication device further includes an updating unit, which is specifically configured to: The lookup table is updated according to the IP address and LID of the first network device and the IP address and LID of the second network device.

21. The communication device according to claim 20, wherein: The sending unit is further configured to: receiving an Address Resolution Protocol (ARP) message from the first network device, where the ARP message includes the IP address of the first network device and the IP address of the second network device; Apply for the LID of the first network device from the subnet manager according to the ARP message.

22. The communication device according to claim 20, wherein: The updating unit is further configured to: An invariant cyclic redundancy check code ICRC and a variable cyclic redundancy check code VCRC of the second message are updated.

23. The communication device according to any one of claims 18 to 19, characterized in that: The first message is an Ethernet message, and the second message is an IB message.

24. The communication device according to claim 23, wherein: The Ethernet message includes an Ethernet header, an IP header, a UDP header, an IB transport header, an IB effective load, an ICRC and a cyclic redundancy check code CRC.

25. The communication device according to claim 23, wherein: The IB message includes the local routing header, the IB transport header, the IB payload, the ICRC and the VCRC.

26. A communication device, characterized in that: include: a receiving unit, configured to receive a third message from the first network device, wherein a third message header of the third message includes a local routing header, and the local routing header includes a local identifier LID of a second network device, where the second network device is a destination network device for transmitting the message to the first network device; a determining unit, configured to determine an Internet Protocol IP address of the second network device according to the LID of the second network device in combination with a lookup table, wherein the lookup table includes an association between the IP address and the LID; an encapsulation unit, configured to strip the third message header from the third message and encapsulate a fourth message header to obtain a fourth message, wherein the fourth message header includes the IP address of the second network device; A sending unit, configured to send the fourth message according to the IP address of the second network device.

27. The communication device according to claim 26, characterized in that The communication device further includes an acquisition unit, which is specifically configured to: Obtain, according to the link establishment message, a queue pair sequence number QPN of the first network device and a QPN of the second network device; The User Datagram Protocol UDP port number of the second network device is obtained according to the QPN of the first network device and the QPN of the second network device. The lookup table also includes the association between QPN, UDP port number, IP address and LID. The fourth message header also includes the media access control layer MAC address and UDP port number of the second network device. The MAC address of the second network device is obtained by broadcasting the IP address of the second network device.

28. The communication device according to claim 26 or 27, characterized in that The sending unit is specifically configured to: sending the fourth message in a large-capacity buffer according to the credit flow control mechanism and the IP address of the second network device; The status information of the large-capacity buffer is fed back to the second network device by pausing the message, so that the second network device adjusts the message transmission.

29. The communication device according to claim 27, wherein: The sending unit is further configured to: requesting a LID from the subnet manager based on a routing change, wherein the routing change instructs the second network device to join the network; The receiving unit is further configured to: receiving an LID of the second network device; The acquisition unit is further configured to: Obtain a response message from the first network device, the response message including the LID and IP address of the first network device; The communication device further includes an updating unit, which is specifically configured to: The lookup table is updated according to the IP address and LID of the first network device and the IP address and LID of the second network device.

30. The communication device according to claim 29, wherein: The sending unit is further configured to: receiving an Address Resolution Protocol (ARP) message from the second network device, where the ARP message includes the IP address of the first network device and the IP address of the second network device; Apply for the LID of the second network device from the subnet manager according to the ARP message.

31. The communication device according to claim 29, wherein: The updating unit is further configured to: An invariant cyclic redundancy check ICRC and a cyclic redundancy check CRC of the fourth message are updated.

32. The communication device according to any one of claims 26-27, characterized in that The fourth message is an Ethernet message, and the third message is an IB message.

33. The communication device according to claim 32, wherein: The Ethernet message includes an Ethernet header, an IP header, a UDP header, an IB transport header, an IB payload, an ICRC and a CRC.

34. The communication device according to claim 32, wherein: The IB message includes the local routing header, the IB transmission header, the IB payload, the ICRC and the variable cyclic redundancy check code VCRC.

35. A communication device, characterized in that: include: processor and memory, The processor is configured to execute instructions stored in the memory, so that the communication device performs the method according to any one of claims 1 to 8.

36. A communication device, characterized in that: include: processor and memory, The processor is configured to execute instructions stored in the memory, so that the communication device performs the method according to any one of claims 9 to 17.

37. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, which, when executed on the computer, enables the computer to perform the method according to any one of claims 1 to 17.

38. A computer program product, characterized in that When the computer program product is executed on a computer, the computer performs the method according to any one of claims 1 to 17.

Citation Information

Patent Citations

  • Systems and Methods for Ethernet Frame Translation to Internet Protocol over Infiniband

    US20140226659A1