Data retransmission method, data transmission system and network apparatus
By establishing multiple links between network devices and using backup links for data retransmission, the problems of high network failure rate and unreliable communication when the link is disconnected are solved, and efficient and reliable data transmission is achieved.
Patent Information
- Application Number
- PCT/CN2024/117054
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-07
- Filing Date
- 2024-09-05
- Publication Date
- 2025-08-14
AI Technical Summary
The existing network has a high network failure rate, resulting in an increase in the probability of network packet loss. The existing data retransmission methods cannot communicate or have poor performance when the link is disconnected.
By establishing multiple links between network devices, data retransmission is performed using a backup link or an idle link when an exception is detected, a retransmission notification message is generated and data retransmission is performed through the second link, ensuring the reliability of data transmission.
Improve the reliability of data transmission, avoid performance degradation due to link abnormalities, and enhance network stability and efficiency.
Smart Images

Figure CN2024117054_14082025_PF_FP_ABST
Abstract
Description
Data retransmission method, data transmission system and network device
[0001] This application claims priority to Chinese patent application No. 202410175818.0 filed on February 7, 2024, entitled “Data Retransmission Method, Data Transmission System, and Network Device,” the entire contents of which are incorporated herein by reference. Technical Field
[0002] The present application relates to the field of communications, and in particular to a data retransmission method, a data transmission system, and a network device. Background Art
[0003] As the scale of networks continues to expand, the number of network devices such as switches and network interface controllers (NICs) in the network is also increasing. The increase in network equipment inevitably leads to an increase in the network failure rate, which in turn increases the probability of network packet loss. Therefore, a more reliable data retransmission method is needed to deal with network packet loss.
[0004] There are two main data retransmission methods in the prior art. In the first method, a sender sends a message to the network, which forwards the message to a receiver. After receiving the message, the receiver sends a reply message to the sender through the network to indicate successful reception of the message. If the sender does not receive the reply message from the receiver within a preset time, the sender resends the message to the network, and the network forwards the message to the receiver via another path. In the second method, retransmission is performed between two adjacent network devices in the network via a link between ports: the upstream link (sending port) sends a message to the downstream link (receiving port). If the downstream link detects packet loss, it sends a retransmission notification message to the upstream link. After receiving the retransmission notification message, the upstream link resends the message to the downstream link.
[0005] However, in the first method mentioned above, the sender needs to wait until the response times out before initiating retransmission, resulting in low network data transmission performance; in the second method mentioned above, since there is a single link between ports, when the link is disconnected, the two ports cannot communicate, the retransmission method will fail, and the reliability of data transmission is low.
[0006] Summary of the Invention
[0007] The embodiments of the present application provide a data retransmission method, a data transmission system, and a network device, which can improve the reliability of data transmission while ensuring the data transmission performance of the network. The technical solution is as follows.
[0008] In a first aspect, a data retransmission method is provided, applied to a first network device, the method comprising:
[0009] The first network device generates a retransmission notification message corresponding to a first link between the first network device and the second network, and sends the retransmission notification message to the second network device through a second link between the first network device and the second network device, so as to instruct the second network device to retransmit data that failed to be sent on the first link through the second link.
[0010] Among them, the first network device and the second network device can be computing nodes or switches in a data center, or network cards in computing nodes, network interface controllers, switch chips in switches, and other devices with network communication functions. The embodiments of the present application do not limit the specific form of the network device.
[0011] The first network device includes multiple receiving ports, and the second network device includes multiple transmitting ports. Multiple links are established between the multiple transmitting ports of the second network device and the multiple receiving ports of the first network device, respectively, to transmit data between the second network device and the first network device. The first link is a link established between the first transmitting port of the second network device and the first receiving port of the first network device.
[0012] In the above method, when an abnormality occurs in the data transmission of the first link, the downstream uses the second link to send a retransmission notification message corresponding to the first link to the upstream, and the upstream uses the second link to retransmit the data that failed to be sent on the first link. This can avoid the degradation of data transmission performance caused by the abnormality of the first link, and is conducive to improving the reliability of data transmission.
[0013] Optionally, the generating a retransmission notification message corresponding to the first link between the first network device and the second network device includes:
[0014] In response to detecting that the first link is disconnected or the first link is congested, the retransmission notification message is generated.
[0015] The first network device provides a link monitoring function capable of detecting the status of the link between the first network device and the second network device. The link status includes disconnected, congested, and idle. When the link status is disconnected or congested, the link cannot transmit data.
[0016] Optionally, the second link is a pre-designated backup link of the first link; or, the second link is any link between the first network device and the second network device; or, the second link is an idle link between the first network device and the second network device.
[0017] In some embodiments, the backup link of the first link is a pre-designated second link, and the first network device can store the backup relationship between the first link and the second link, so that when the first link cannot continue to transmit data, based on the backup relationship, the second link is enabled to retransmit the data that failed to be sent by the first link. In some embodiments, the first link has multiple pre-designated backup links, and the first network device can select the second link according to whether the multiple backup links are idle. In other embodiments, the first link has multiple pre-designated backup links, and the multiple pre-designated backup links have priorities, then the first network device determines the backup link with the highest priority among the multiple pre-designated backup links as the second link. If the backup link with the highest priority is disconnected or congested, the backup link with the second highest priority is determined as the second link, and so on. In some further embodiments, the first link has multiple pre-designated backup links, then the first network device determines the backup link with the lowest load among the multiple pre-designated backup links as the second link, which is conducive to achieving load balancing between multiple links, thereby improving the efficiency of data transmission and network performance.
[0018] In some embodiments, the second link is any link between the first network device and the second network device, and the first network device randomly selects a link from multiple links between the first network device and the second network device as the second link.
[0019] Optionally, at least one of the sending port and the receiving port of the first link and the second link is a different port.
[0020] Among them, when the sending port and receiving port of the first link and the second link are different, the second link can transmit data together with the first link. When the first link cannot transmit data, the data that failed to be sent on the first link is retransmitted through the second link.
[0021] Optionally, the retransmission notification message includes link information of the first link and a data address of the data to be retransmitted.
[0022] Optionally, the link information of the first link includes at least one of a sending port of the first link and a link identifier of the first link.
[0023] Optionally, the data address of the data to be retransmitted is an offset address of the data to be retransmitted in the data storage space corresponding to the first link in the second network device; or, the data address of the data to be retransmitted is in the form of a bitmap.
[0024] Among them, the data address of the data to be retransmitted is in the form of a bitmap, which means that the position marked as 1 in the bitmap is used to identify the data address of the successfully received data, and the position marked as 0 in the bitmap is used to identify the data address of the unreceived data, that is, the data address of the data to be retransmitted.
[0025] Optionally, the method further includes:
[0026] receiving data retransmitted by the second network device through the second link; and sending a reception success message to the second network device through the second link, the reception success message indicating that the first network device has received the data sent through the second link that failed to be sent on the first link.
[0027] In a second aspect, a data retransmission method is provided, which is applied to a second network device, and the method includes:
[0028] The second network device receives a retransmission notification message sent by the first network device through a second link between the first network device and the second network device, wherein the retransmission notification message is used to instruct the second network device to retransmit data that failed to be sent on the first link through the second link; the second network device retransmits data that failed to be sent on the first link through the second link.
[0029] In the above method, when an abnormality occurs in the data transmission of the first link, the downstream uses the second link to send a retransmission notification message corresponding to the first link to the upstream, and the upstream uses the second link to retransmit the data that failed to be sent on the first link. This can avoid the degradation of data transmission performance caused by the abnormality of the first link, and is conducive to improving the reliability of data transmission.
[0030] Optionally, the second link is a pre-designated backup link of the first link; or, the second link is any link between the first network device and the second network device; or, the second link is an idle link between the first network device and the second network device.
[0031] Optionally, at least one of the sending port and the receiving port of the first link and the second link is a different port.
[0032] Optionally, the retransmission notification message includes link information of the first link and a data address of the data to be retransmitted.
[0033] Optionally, the link information of the first link includes at least one of a sending port of the first link and a link identifier of the first link.
[0034] Optionally, the data address of the data to be retransmitted is an offset address of the data to be retransmitted in the data storage space corresponding to the first link in the second network device;
[0035] The step of sending the data that fails to be sent on the first link to the first network device through the second link includes:
[0036] Starting from the offset address, data in the data storage space is acquired; and the acquired data is sent to the first network device via the second link.
[0037] Optionally, the data address of the data to be retransmitted is in the form of a bitmap;
[0038] The step of sending the data that fails to be sent on the first link to the first network device through the second link includes:
[0039] Based on the data address in the bitmap form, data in the data storage space is acquired; and the acquired data is sent to the first network device through the second link.
[0040] Optionally, the method further includes:
[0041] In response to receiving a successful reception message sent by the first network device, data storage space corresponding to the first link in the first network device is cleared, and the successful reception message indicates that the first network device has received the data that failed to be sent on the first link and was sent through the second link.
[0042] According to a third aspect, a data retransmission method is provided, the method comprising:
[0043] The first network device generates a retransmission notification message corresponding to a first link between the first network device and the second network, and sends the retransmission notification message to the second network device via a second link between the first network device and the second network device. After receiving the retransmission notification message, the second network device retransmits the data that failed to be sent on the first link via the second link.
[0044] In the above method, when an abnormality occurs in the data transmission of the first link, the downstream uses the second link to send a retransmission notification message corresponding to the first link to the upstream, and the upstream uses the second link to retransmit the data that failed to be sent on the first link. This can avoid the degradation of data transmission performance caused by the abnormality of the first link, and is conducive to improving the reliability of data transmission.
[0045] Optionally, the first network device generates a retransmission notification message corresponding to the first link between the first network device and the second network device, including:
[0046] The first network device generates the retransmission notification message in response to detecting that the first link is disconnected or the first link is congested.
[0047] Optionally, the second link is a pre-designated backup link of the first link; or, the second link is any link between the first network device and the second network device; or, the second link is an idle link between the first network device and the second network device.
[0048] Optionally, at least one of the sending port and the receiving port of the first link and the second link is a different port.
[0049] Optionally, the retransmission notification message includes link information of the first link and a data address of the data to be retransmitted.
[0050] Optionally, the link information of the first link includes a sending port of the first link or a link identifier of the first link.
[0051] Optionally, the data address of the data to be retransmitted is an offset address of the data to be retransmitted in the data storage space corresponding to the first link in the first network device;
[0052] The second network device sends the data that fails to be sent on the first link to the first network device through the second link, including:
[0053] Starting from the offset address, data in the data storage space is acquired; and the acquired data is sent to the first network device via the second link.
[0054] Optionally, the data address of the data to be retransmitted is in the form of a bitmap;
[0055] The second network device sends the data that fails to be sent on the first link to the first network device through the second link, including:
[0056] Based on the data address in the bitmap form, data in the data storage space is acquired; and the acquired data is sent to the first network device through the second link.
[0057] Optionally, the method further includes:
[0058] The first network device receives the data retransmitted by the second network device through the second link;
[0059] The first network device sends a reception success message to the second network device through the second link, where the reception success message indicates that the first network device has received the data that failed to be sent on the first link and was sent through the second link;
[0060] In response to receiving the successful reception message sent by the first network device, the second network device clears data from the data storage space corresponding to the first link in the first network device.
[0061] In a fourth aspect, a network device is provided, which includes at least one functional module, and the at least one functional module is used to execute the data retransmission method provided by the first aspect or any possible implementation of the first aspect.
[0062] In a fifth aspect, a network device is provided, which includes at least one functional module, and the at least one functional module is used to execute the data retransmission method provided by the second aspect or any possible implementation of the second aspect.
[0063] Based on the implementation methods provided in the above aspects, this application can be further combined to provide more implementation methods. BRIEF DESCRIPTION OF THE DRAWINGS
[0064] FIG1 is a schematic diagram of the architecture of a data transmission system provided in an embodiment of the present application;
[0065] FIG2 is a schematic diagram of the architecture of a data transmission system provided in an embodiment of the present application;
[0066] FIG3 is a schematic diagram of a topological structure of a data center network provided in an embodiment of the present application;
[0067] FIG4 is a flow chart of a data retransmission method provided in an embodiment of the present application;
[0068] FIG5 is a schematic diagram of a retransmission notification message provided in an embodiment of the present application;
[0069] FIG6 is a schematic flow chart of a data retransmission method provided in an embodiment of the present application;
[0070] FIG7 is a flow chart of a data retransmission method provided in an embodiment of the present application;
[0071] FIG8 is a flow chart of a data retransmission method provided in an embodiment of the present application;
[0072] FIG9 is a schematic diagram of a data retransmission method provided in an embodiment of the present application applied to a data center;
[0073] FIG10 is a schematic structural diagram of a network device provided in an embodiment of the present application;
[0074] FIG11 is a schematic structural diagram of a network device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0075] In order to make the objectives, technical solutions and advantages of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.
[0076] First, the implementation environment of the embodiment of the present application is introduced.
[0077] FIG1 is a schematic diagram of the architecture of a data transmission system provided in an embodiment of the present application. As shown in FIG1 , the data transmission system is a data center, which includes one or more computing nodes 110 (three computing nodes 110 are shown in FIG1 , but are not limited to three computing nodes 110), and each computing node 110 can communicate with each other. A computing node 110 is a device that has both computing and storage capabilities, such as a server, a desktop computer, etc. For example, an ARM server or an X86 server can be used as the computing node 110 here. In terms of hardware, as shown in FIG1 , the computing node 110 includes at least a processor 112, a memory 113, a network card 114, and a hard disk 115. The processor 112, the memory 113, the network card 114, and the hard disk 115 are connected via a bus. The processor 112 and the memory 113 are used to provide computing resources. Specifically, the processor 112 is a central processing unit (CPU) that is used to process data access requests from outside the computing node 110 (application servers or other computing nodes 110), and is also used to process requests generated within the computing node 110. Exemplarily, when the processor 112 receives a write data request, it temporarily stores the data in the write data request in the memory 113. When the total amount of data in the memory 113 reaches a certain threshold, the processor 112 sends the data stored in the memory 113 to the hard disk 115 for persistent storage. In addition, the processor 112 is also used for data calculation or processing, such as metadata management, deduplication, data compression, data verification, virtualized storage space, and address conversion. Figure 1 shows only one CPU 112. In actual applications, there are often multiple CPUs 112, and one CPU 112 has one or more CPU cores. This embodiment does not limit the number of CPUs or the number of CPU cores.
[0078] Memory 113 refers to an internal memory that directly exchanges data with the processor. It can read and write data at any time and at a high speed, and serves as a temporary data storage for the operating system or other running programs. Memory includes at least two types of memory. For example, memory can be either random access memory or read-only memory (ROM). For example, random access memory is dynamic random access memory (DRAM) or storage class memory (SCM). DRAM is a type of semiconductor memory that, like most random access memory (RAM), is a volatile memory device. SCM is a composite storage technology that combines the characteristics of traditional storage devices and memory. Storage class memory can provide faster read and write speeds than hard disks, but has slower access speeds than DRAM and is also cheaper than DRAM. However, DRAM and SCM are only exemplary in this embodiment. Memory can also include other random access memories, such as static random access memory (SRAM). As for the read-only memory, for example, it can be a programmable read only memory (PROM), an erasable programmable read only memory (EPROM), etc. In addition, the memory 113 can also be a dual in-line memory module or a dual-line memory module (DIMM), that is, a module composed of dynamic random access memory (DRAM), or a solid state disk (SSD). In actual applications, multiple memories 113 and different types of memories 113 can be configured in the computing node 110. This embodiment does not limit the number and type of memory 113. In addition, the memory 113 can be configured to have a power-saving function. The power-saving function means that when the system loses power and then powers on again, the data stored in the memory 113 will not be lost. A memory with a power-saving function is called a non-volatile memory.
[0079] The hard disk 115 is used to provide storage resources, such as storing data. It can be a disk or other types of storage media, such as a solid-state drive or a shingled magnetic recording hard disk. The network card 114 is used to communicate with other application computing nodes 110.
[0080] It should be noted that the data center shown in FIG1 is described using a storage-computing integrated architecture as an example. In some embodiments, the data center adopts a storage-computing separation architecture, as shown in FIG2 . FIG2 is an architectural diagram of a data transmission system provided in an embodiment of the present application. The data transmission system is a data center adopting a storage-computing separation architecture. The data center includes a computing node cluster and a storage node cluster. The computing node cluster includes one or more computing nodes 110 (three computing nodes 110 are shown in FIG2 , but are not limited to three computing nodes 110), and each computing node 110 can communicate with each other. The computing node 110 is a computing device, such as a server, a desktop computer, or a controller of a storage array. In terms of hardware, as shown in FIG2 , the computing node 110 includes at least a processor CPU 112, a memory 113, and a network card 114. The storage node cluster includes multiple storage nodes 100 (three storage nodes 100 are shown in FIG2 , but are not limited to three storage nodes 100). A storage node 100 includes one or more control units 101, a network card 104, and multiple hard disks 105. The network card 104 is used to communicate with the computing node 110. Hard disk 105 is used to store data and can be a magnetic disk or other type of storage medium, such as a solid-state drive or a shingled magnetic recording hard disk. Control unit 101 is used to write data to or read data from hard disk 105 based on read / write data requests sent by computing nodes 110. During the data reading and writing process, control unit 101 needs to convert the addresses carried in the read / write data requests into addresses that the hard disk can recognize. Therefore, control unit 101 also performs some simple computing functions.
[0081] The architecture of the data transmission system is described above. In the data transmission system shown in FIG. 1 or FIG. 2 , each computing node 110 communicates with each other through a data center network. FIG. 3 is a schematic diagram of a topological structure of a data center network provided in an embodiment of the present application. As shown in FIG. 3 , taking a data center network as a tree structure as an example, the tree structure includes multiple computing nodes 110, an access layer switch (also called a top-of-rack switch) 120 connected to the computing node 110, an aggregation layer switch 130 connected to the top-of-rack switch 120, and a core layer switch 140 connected to the aggregation layer switch 130. Switches at different levels are interconnected to provide communication channels for communication between computing nodes 110.
[0082] An embodiment of the present application provides a data retransmission method, which includes: a first network device generates a retransmission notification message corresponding to a first link between the first network device and the second network, and sends the retransmission notification message to the second network device via a second link between the first network device and the second network device; after the second network device receives the retransmission notification message, it retransmits the data that failed to be sent on the first link via the second link. In the above method, when an abnormality occurs in the data transmission of the first link, the downstream uses the second link to send the retransmission notification message corresponding to the first link to the upstream, and the upstream uses the second link to retransmit the data that failed to be sent on the first link, which can avoid the degradation of data transmission performance caused by the abnormality of the first link and is conducive to improving the reliability of data transmission.
[0083] In the above method, the retransmission notification message is used to instruct the second network device to retransmit the data that failed to be sent on the first link through the second link between the first network device and the second network device. The retransmission notification message includes the link information of the first link and the data address of the data to be retransmitted. The link information of the first link is at least one of the sending port of the first link and the link identifier of the first link, indicating that the link for data retransmission is the first link. The data address of the data to be retransmitted is the offset address of the data to be retransmitted in the data storage space corresponding to the first link in the first network device, or the data address to be retransmitted is in the form of a bitmap. In some embodiments, the retransmission notification message includes the sending port of the first link and the offset address of the data to be retransmitted in the data storage space corresponding to the first link in the first network device; in other embodiments, the retransmission notification message includes the link identifier of the first link and the first bitmap, and the first bitmap is used to indicate the data address of the data to be retransmitted; in still other embodiments, the retransmission notification message includes the sending port of the first link, the offset address of the data storage space corresponding to the first link in the first network device, and the routing information of the retransmission notification message, and the routing information is used to indicate the transmission path of the retransmission notification message. It should be noted that the above embodiments are only exemplary descriptions of the content of the retransmission notification message, and the content of the retransmission notification message is not limited to the above three cases. The following describes the process of the above data retransmission method in detail, taking the retransmission notification message as an example of the above three cases.
[0084] First, the process of the above-mentioned data retransmission method is described, taking as an example the case where the retransmission notification message includes the sending port of the first link and the offset address of the data to be retransmitted in the data storage space corresponding to the first link in the first network device. Figure 4 is a schematic flow diagram of a data retransmission method provided in an embodiment of the present application. As shown in Figure 4, taking the method interactively executed by the first network device and the second network device as an example, the method includes the following steps 401 to 411.
[0085] 401. A second network device sends data to a first network device through a first link between the second network device and the first network device.
[0086] Among them, the first network device and the second network device can be computing nodes or switches in a data center, or network cards, network interface controllers (NICs) in computing nodes, switch chips in switches, and other devices with network communication functions. The embodiments of the present application do not limit the specific form of the network devices.
[0087] The first network device includes multiple receiving ports, and the second network device includes multiple transmitting ports. Multiple links are established between the multiple transmitting ports of the second network device and the multiple receiving ports of the first network device, respectively, to transmit data between the second network device and the first network device. The first link is a link established between the first transmitting port of the second network device and the first receiving port of the first network device.
[0088] The upstream of each link corresponds to a data storage space (retry buffer), which is used to store multiple messages sent from the link's sending port to the link's receiving port. The process of a second network device sending data to a first network device via a first link includes: the first sending port of the second network device obtains a first message to be sent from a first data storage space in the second network device, where the first data storage space is the data storage space upstream of the first link; and the first sending port sends the first message via the first link to the receiving port of the first link, i.e., the first receiving port.
[0089] Among them, the multiple messages stored in the data storage space carry a message identifier, and the message identifier indicates the offset address of the message in the data storage space; the process of the first sending port obtaining the first message to be sent from the first data storage space includes: the first sending port obtains the first message to be sent from the first data storage space in sequence according to the message identifier. In the above embodiment, the first sending port sends the message according to the message identifier, that is, the message is sent sequentially according to the offset address of the message in the first data storage space, which can improve the efficiency of message sending. In some embodiments, the data length corresponding to each message is L, and the offset address a=i×L of the message with message identifier i in the first data storage space. It should be noted that the above description of the conversion relationship between the message identifier and the offset address is only exemplary, and the embodiments of the present application do not limit this. In some embodiments, the message also carries verification information, and the verification information is used to verify whether the message is erroneous.
[0090] In some embodiments, the multiple messages stored in the data storage space also carry a priority identifier, which indicates the message's sending priority. The process of the first sending port obtaining the first message to be sent from the first data storage space includes: the first sending port sequentially obtains the first message to be sent from the first data storage space in descending order of sending priority based on the first priority identifier. In the above embodiment, the first sending port sends messages according to the sending priority, preferentially processing messages with higher priorities, which is conducive to improving the response efficiency for higher-priority services.
[0091] 402. A first network device receives data sent by a second network device through a first link.
[0092] The first network device receives the message sent by the second network device through the first link through the first receiving port of the first network device; the first network device parses the received message based on the message header of the received message to obtain data in the message.
[0093] In some embodiments, the first network device parses the received message based on the message header of the received message to obtain verification information in the message; the first network device verifies the received message based on the verification information, and obtains data from the message if the message verification passes; if the message verification fails and the first link is normal, the first network device sends a retransmission notification for the message to the second network device via the first link to instruct the second network device to retransmit the data in the message via the first link.
[0094] 403. In response to detecting that the first link is disconnected or congested, the first network device determines an offset address of data that fails to be sent on the first link in a data storage space corresponding to the first link in the second network device.
[0095] The first network device provides a link monitoring function capable of detecting the status of the link between the first network device and the second network device. The link status includes disconnected, congested, and idle. When the link status is disconnected or congested, the link cannot transmit data.
[0096] The messages that fail to be sent on the first link include: data that has not been received by the first network device and data that has been received by the first network device but is found to be erroneous after verification.
[0097] Among them, the process of the first network device determining the offset address of the data that failed to be sent on the first link in the data storage space includes: the first network device receives the message identifier of the last message successfully received through the first link, determines the message identifier of the message that failed to be sent on the first link, and the message identifier of the message that failed to be sent on the first link indicates the offset address of the data that failed to be sent on the first link in the first data storage space. For example, the data length corresponding to each message is 10, and the message identifier of the last message successfully received by the first network device through the first link is 5, then the message identifier of the first message that failed to be sent on the first link is 6, then the offset address of the data that failed to be sent on the first link in the first data storage space = 6 × 10 = 60. It should be noted that the above description of the process of determining the offset address of the data that failed to be sent in the first data storage space is only exemplary, and those skilled in the art can use other methods to determine the offset address, and the embodiments of the present application are not limited to this.
[0098] 404. The first network device generates a first retransmission notification message corresponding to the first link. The first retransmission notification message includes a sending port of the first link and an offset address of the data to be retransmitted in a data storage space corresponding to the first link in the second network device.
[0099] The data to be retransmitted is data that fails to be sent on the first link.
[0100] In some embodiments, the first network device stores link information between the first network device and the second network device, and the link information indicates multiple links between the first network device and the second network device, as well as the sending port and receiving port of each link; the first network device determines the sending port of the first link by querying the link information, that is, the first sending port. In other embodiments, when detecting the status of the first link, the first network device can detect the sending port of the first link, that is, the first sending port. In some other embodiments, the message sent on the first link carries the first sending port, and the second network device determines that the sending port of the first link is the first sending port based on the message received from the first link. It should be noted that the above description of the process of the first network device determining the sending port of the first link is only exemplary, and the embodiments of the present application do not limit this.
[0101] Among them, the process of the first network device generating the first retransmission notification message includes: the first network device encapsulates the sending port of the first link and the offset address of the data to be retransmitted in the first data storage space according to the link protocol between the first network device and the second network device to obtain the first retransmission notification message.
[0102] In some embodiments, the process of the first network device encapsulating the sending port of the first link and the offset address of the data to be retransmitted in the first data storage space includes: the first network device adds a message header (RN head) to the sending port of the first link and the offset address to obtain the first retransmission notification message, and the message header indicates that the first retransmission notification message is a link layer retransmission notification message. In other embodiments, the encapsulation process includes: the first network device adds a message header and verification information to the sending port of the first link and the offset address to obtain the first retransmission notification message, and the verification information is used to verify whether the first retransmission notification message is erroneous. The verification information can be a cyclic redundancy check code (CRC) or an error correcting code (ECC), etc., which is not limited in the embodiments of the present application. It should be noted that the above description of the encapsulation process of the first retransmission notification message is only exemplary, and the encapsulation process is not limited in the embodiments of the present application.
[0103] Taking FIG5 as an example, the format of the first retransmission notification message is illustrated. FIG5 is a schematic diagram of a retransmission notification message provided in an embodiment of the present application. As shown in FIG5, the retransmission notification message includes a message header (RN Header), a sending port (source port) of the first link, and a data address (retry buffer pointer) of the data to be retransmitted, wherein the message header is used to indicate that the message is a link layer retransmission notification message. It should be noted that FIG5 is only an example of the format of the retransmission notification message, and the format of the retransmission notification message in the embodiment of the present application is not limited thereto.
[0104] It should be noted that, in the above step 404, generating the retransmission notification message when the first link is disconnected or congested is only exemplary, and the embodiment of the present application does not limit the timing and conditions for generating the retransmission notification message.
[0105] It should be noted that the above steps 403 and 404 are an implementation method of generating a retransmission notification message in response to detecting that the first link is disconnected or the first link is congested. In some embodiments, this process is also implemented based on other methods, and the embodiments of the present application do not limit this.
[0106] 405. The first network device determines a second link.
[0107] In some embodiments, the first network device is capable of detecting the status of a port in the first network device, where the status of the port includes normal and faulty. If the first network device detects that the first link is disconnected or congested, and the first network device detects that the status of the receiving port corresponding to the first link is normal, then a second link among the multiple links between the first network device and the second network device can be used, which has the same receiving port as the first link but a different sending port; if the first network device detects that the first link is disconnected or congested, and the status of the receiving port corresponding to the first network device is faulty, then a second link among the multiple links between the first network device and the second network device can be used, which has a different receiving port than the first link but the same sending port.
[0108] In other embodiments, the first receiving port in the first network device has a backup receiving port, and the sending port in the second network device has a backup sending port; in response to detecting that the first link is disconnected or congested, the first network device may adopt a second link among the multiple links between the first network device and the second network device, which is different from the receiving port and sending port of the first link, and the receiving port of the second link is a backup receiving port of the first receiving port, and the sending port of the second link is a backup sending port of the first sending port.
[0109] In some embodiments, the backup link of the first link is a pre-designated second link, and the first network device can store the backup relationship between the first link and the second link, so that when the first link cannot continue to transmit data, based on the backup relationship, the second link is enabled to retransmit the data that failed to be sent by the first link. In some embodiments, in some embodiments, the first link has multiple pre-designated backup links, and the first network device can select the second link according to whether the multiple backup links are idle. In other embodiments, the first link has multiple pre-designated backup links, and the multiple pre-designated backup links have priorities, then the first network device determines the backup link with the highest priority among the multiple pre-designated backup links as the second link. If the backup link with the highest priority is disconnected or congested, the backup link with the second highest priority is determined as the second link, and so on, which will not be repeated. In some further embodiments, the first link has multiple pre-designated backup links, then the first network device determines the backup link with the lowest load among the multiple pre-designated backup links as the second link, which is conducive to achieving load balancing between multiple links, thereby improving the efficiency of data transmission and network performance.
[0110] In some other embodiments, the first network device randomly uses one of the multiple links between the first network device and the second network device as the second link.
[0111] In some further embodiments, the first network device uses an idle link among a plurality of links between the first network device and the second network device as the second link.
[0112] It should be noted that the above steps 404 and 405 are described by taking the example of first generating the first retransmission notification message and then determining the second link. In some embodiments, the second link is determined first and then the first retransmission notification message is generated, or the second link is determined synchronously when the first retransmission notification message is generated. The embodiments of the present application do not limit this.
[0113] 406. The first network device sends the first retransmission notification message to the second network device through the second link.
[0114] The downstream of the second link corresponds to a second data storage space, which is used to store multiple messages sent from the receiving port of the second link to the transmitting port of the first link. The first network device stores the first retransmission notification message in the second data storage space, and the second receiving port of the first network device retrieves the first retransmission notification message from the second data storage space and sends the retransmission notification message to the second transmitting port of the second network device. The second receiving port is the receiving port of the second link of the first network device, and the second transmitting port is the transmitting port of the second link of the second network device.
[0115] 407. The second network device receives the first retransmission notification message sent by the first network device through the second link.
[0116] The second sending port of the second network device receives the first retransmission notification message.
[0117] In some embodiments, the second network device parses the first retransmission notification message based on the message header of the first retransmission notification message to obtain the first sending port of the first link in the first retransmission notification message and the offset address of the data that failed to be sent on the first link in the first data storage space.
[0118] In some embodiments, the second network device parses the first retransmission notification message based on a header of the first retransmission notification message to obtain verification information in the first retransmission notification message. The second network device verifies the first retransmission notification message based on the verification information. If the first retransmission notification message passes verification, the second network device obtains from the retransmission notification message the first sending port of the first link and the offset address of the data that failed to be sent on the first link in the first data storage space. In some embodiments, if the first retransmission notification message fails verification, the second network device sends an error message regarding the first retransmission notification message to the first network device via the second link, instructing the first network device to retransmit the first retransmission notification message via the second link.
[0119] 408. The second network device obtains the data that failed to be sent on the first link from the data storage space corresponding to the first link in the second network device based on the first retransmission notification message.
[0120] Among them, the second network device determines the data storage space corresponding to the first link, that is, the first data storage space, based on the first sending port of the first link in the first retransmission notification message; the second network device obtains the message that failed to be sent on the first link from the first data storage space based on the offset address of the data that failed to be sent on the first link in the first retransmission notification message in the first data storage space, and obtains the data that failed to be sent from the message; the second network device encapsulates the obtained data into a message to be retransmitted sent by the second link, and stores the message in the data storage space upstream of the second link, so as to retransmit the data that failed to be sent on the first link through the second link.
[0121] In some embodiments, each link corresponds to a data transmission permission. The second network device matches the data transmission permission of the second link with the data transmission permission of the first link. If the data transmission permission of the second link is the same as or higher than the data transmission permission of the first link, the second network device obtains the message that failed to be sent on the first link from the first data storage space, obtains the data that failed to be sent from the message, encapsulates the obtained data into a message to be retransmitted sent by the second link, and stores the message in the data storage space corresponding to the upstream of the second link.
[0122] In some embodiments, when the data transmission permission of the second link is lower than the data transmission permission of the first link, the second network device determines a third link from the link between the first network device and the second network device, and the data transmission permission of the third link is not lower than the data transmission permission of the first link. The second network device obtains the message that failed to be sent on the first link from the first data storage space, obtains the data that failed to be sent from the message, encapsulates the obtained data into a message to be retransmitted by the third link, and stores the message in the corresponding data storage space downstream of the third link, so as to retransmit the data that failed to be sent on the first link through the third link.
[0123] In the above embodiment, each link has corresponding data transmission authority, and a link with a lower authority cannot retransmit data to a link with a higher authority, thereby ensuring data security.
[0124] 409. The second network device sends the data that failed to be sent on the first link to the first network device through the second link.
[0125] Among them, the second network device stores the message to be retransmitted in the third data storage space, which is the data storage space corresponding to the upstream of the second link; the second sending port of the second network device obtains the message to be retransmitted from the third data storage space, and sends the message to be retransmitted to the second receiving port in the first network device through the second link.
[0126] The message to be retransmitted carries a message identifier, and the second network device sequentially obtains and sends messages from the third data storage space according to the message identifier carried by each message in the third data storage space.
[0127] In some embodiments, the message to be retransmitted carries a priority identifier, which is higher than the message normally transmitted by the second link in the third data storage space. The second network device preferentially obtains the message to be retransmitted from the third data storage space and sends it.
[0128] It should be noted that the above steps 408 and 409 are an implementation method that starts with the offset address, obtains the data in the data storage space, and sends the obtained data to the first network device through the second link. In some embodiments, this step is also implemented based on other methods, and the embodiments of the present application are not limited to this.
[0129] 410. The first network device receives data retransmitted by the second network device through the second link, and sends a reception success message to the second network device through the second link, indicating that the first network device has received the data sent through the second link that failed to be sent on the first link.
[0130] The process of the first network device receiving the data retransmitted via the second link is similar to the above step 402 and will not be described in detail.
[0131] After receiving the data retransmitted through the second link, the first network device performs operations such as forwarding, storing, or calculating the data, which is not limited in this embodiment of the present application.
[0132] 411. In response to receiving the successful reception message, the second network device clears data from the data storage space corresponding to the first link in the first network device.
[0133] It should be noted that the above steps 410 and 411 are optional steps. In some embodiments, the above steps 410 and 411 may not be performed, and the embodiments of the present application do not limit this.
[0134] The process shown in steps 401 to 411 above is illustrated below with reference to FIG6 . FIG6 is a schematic flow chart of a data retransmission method provided in an embodiment of the present application. As shown in FIG6 , 601 is a first network device and 602 is a second network device. The first network device 601 includes a first receiving port 6011 and a second receiving port 6012, and the second receiving port 6012 is a backup receiving port of the first receiving port 6011. The first network device 601 includes a cross-port link retry module (CPLR) corresponding to the first receiving port 6011, and the CPLR includes a link monitoring submodule (link monitor), a backup port recording submodule (backup port) and a retry notification submodule (retry notify). The second receiving port is similar and will not be described in detail. The second network device 602 includes a first sending port 6021 and a second sending port 6022, and the second sending port 6022 is a backup sending port of the first sending port 6021. The second network device 602 includes a cross-port link retransmission module corresponding to the first transmitting port 6021. The CPLR includes a data storage space (retry buffer) and a backup port record submodule. The second transmitting port is similarly configured and will not be further described. The link between the first transmitting port 6021 and the first receiving port 6011 is a first link, and the link between the second transmitting port 6022 and the second receiving port 6012 is a second link.In response to detecting that the first link is disconnected, the link monitoring submodule corresponding to the first receiving port 6011 sends a link disconnection notification to the retransmission notification submodule corresponding to the first receiving port; based on the link disconnection notification, the retransmission notification submodule corresponding to the first receiving port 6011 queries the backup port recording submodule corresponding to the first receiving port, determines the second receiving port 6012, and based on the second receiving port 6012, determines the second sending port 6022, and then determines the second link; the retransmission notification submodule corresponding to the first receiving port 6011 generates a first retransmission notification message corresponding to the first link based on the first sending port 6021 and the data address of the data to be retransmitted; the retransmission notification submodule corresponding to the first receiving port 6011 sends the first retransmission notification message to the second receiving port 6022. receiving port 6012; the second receiving port 6012 sends the first retransmission notification message to the second sending port 6022 via the second link; the second sending port 6022, in response to receiving the first retransmission notification message, obtains the data to be retransmitted from the data storage space corresponding to the first sending port 6021 based on the data address of the data to be retransmitted; the second sending port 6022 sends the obtained data to the second receiving port 6012 via the second link; after the second receiving port 6012 receives the retransmitted data, it sends a reception success message for the retransmitted data to the second sending port 6022 via the second link; after receiving the reception success message, the second sending port 6022 clears the data in the data storage space corresponding to the first sending port 6021.
[0135] It should be noted that the above description of each receiving port of the first network device being configured with a CPLR module, and each transmitting port of the second network device being configured with a CPLR module, is merely exemplary. In some embodiments, multiple receiving ports of the first network device share a single CPLR module, and multiple transmitting ports of the second network device share a single CPLR module. This is not limited in the present embodiments. Furthermore, the above description of the CPLR module corresponding to the receiving port including a link monitoring submodule, a backup port recording submodule, and a retransmission notification submodule, and the CPLR module corresponding to the transmitting port including a data storage space and a backup port recording submodule, is also exemplary. This is not limited in the present embodiments.
[0136] In the above method, when an abnormality occurs in the data transmission of the first link, the downstream uses the second link to send a retransmission notification message corresponding to the first link to the upstream, and the upstream uses the second link to retransmit the data that failed to be sent on the first link. This can avoid the degradation of data transmission performance caused by the abnormality of the first link, which is conducive to improving the reliability of data transmission; in addition, the entire data retransmission process is executed by the underlying hardware, and the upper-layer business is not aware of the underlying link abnormality. The data retransmission process does not require the participation of the upper-layer business system, which can reduce the responsibility of the upper-layer business system.
[0137] The following describes the process of the data retransmission method, taking the example of a retransmission notification message including the link identifier and first bitmap of the first link. FIG7 is a schematic flow diagram of a data retransmission method provided by an embodiment of the present application. As shown in FIG7 , taking the example of the method interactively executed by a first network device and a second network device, the method includes the following steps 701 to 711.
[0138] 701. A second network device sends data to a first network device through a first link between the second network device and the first network device.
[0139] 702. The first network device receives data sent by the second network device through the first link.
[0140] Step 701 and step 702 are similar to the above-mentioned steps 401 and 402 and are not described in detail.
[0141] 703. In response to detecting that the first link is disconnected or congested, the first network device determines a data address of data that is successfully sent and a data address of data that fails to be sent on the first link.
[0142] The process of the first network device detecting the status of the first link is similar to the process of the first network device detecting the status of the first link in step 403 , and will not be described in detail.
[0143] The first network device records the data addresses of the successfully received data. Based on the recorded data addresses of the successfully received data, the first network device determines the data addresses of the data successfully sent and the data addresses of the data failed to be sent on the first link. In some embodiments, the first network device records the data addresses of the data successfully sent and the data addresses of the data failed to be sent on the first link using a first bitmap, wherein the positions marked as 1 in the bitmap are used to identify the data addresses of the successfully received data, and the positions marked as 0 in the bitmap are used to identify the data addresses of the unreceived data, i.e., the data addresses of the data to be retransmitted.
[0144] 704. The first network device generates a second retransmission notification message corresponding to the first link. The second retransmission notification message includes a link identifier of the first link and a first bitmap. The first bitmap is used to indicate a data address of the data to be retransmitted.
[0145] In some embodiments, the first network device stores link information between the first network device and the second network device, where the link information indicates multiple links between the first network device and the second network device, as well as a sending port and a receiving port of each link; the first network device determines the link identifier of the first link by querying the link information.
[0146] The process of the first network device generating the second retransmission notification message is similar to the process of generating the first retransmission notification message in step 404, and will not be described in detail.
[0147] It should be noted that the above steps 703 and 704 are an implementation method of generating a retransmission notification message in response to detecting that the first link is disconnected or the first link is congested. In some embodiments, this process is also implemented based on other methods, and the embodiments of the present application do not limit this.
[0148] 705. The first network device determines a second link.
[0149] 706. The first network device sends the second retransmission notification message to the second network device through the second link.
[0150] 707. The second network device receives the second retransmission notification message sent by the first network device through the second link.
[0151] Steps 705 to 707 are similar to the above steps 405 to 407 and are not described in detail.
[0152] 708. The second network device obtains the data that failed to be sent on the first link from the data storage space corresponding to the first link in the second network device based on the first bitmap.
[0153] This step 708 is similar to the above-mentioned step 408, except that, in step 708, the second network device determines the data that failed to be sent on the first link based on the first bitmap. The process includes: the second network device determines the data address of the data that failed to be sent on the first link based on the position marked as 0 in the first bitmap; the process of the second network device obtaining the data that failed to be sent on the first link from the data storage space corresponding to the first link is similar to the above-mentioned step 408 and will not be repeated.
[0154] 709. The second network device sends the data that failed to be sent on the first link to the first network device through the second link.
[0155] It should be noted that the above steps 708 and 709 are an implementation method of obtaining data in the data storage space based on the data address in bitmap form, and sending the obtained data to the first network device through the second link. In some embodiments, this step is also implemented based on other methods, which is not limited in the embodiments of the present application.
[0156] 710. The first network device receives data retransmitted by the second network device through the second link, and sends a reception success message to the second network device through the second link, indicating that the first network device has received the data sent through the second link that failed to be sent on the first link.
[0157] 711 . In response to receiving the successful reception message, the second network device clears data from the data storage space corresponding to the first link in the first network device.
[0158] Steps 709 to 711 are similar to the above-mentioned steps 409 to 411 and are not described in detail.
[0159] In the above method, when an abnormality occurs in the data transmission of the first link, the downstream uses the second link to send a retransmission notification message corresponding to the first link to the upstream, and the upstream uses the second link to retransmit the data that failed to be sent on the first link. This can avoid the degradation of data transmission performance caused by the abnormality of the first link, which is conducive to improving the reliability of data transmission; in addition, the entire data retransmission process is executed by the underlying hardware, and the upper-layer business is not aware of the underlying link abnormality. The data retransmission process does not require the participation of the upper-layer business system, which can reduce the responsibility of the upper-layer business system.
[0160] The following describes the process of the data retransmission method described above, taking as an example a case where the retransmission notification message includes the sending port of the first link, the offset address of the data to be retransmitted in the data storage space corresponding to the first link in the first network device, and the routing information of the retransmission notification message. FIG8 is a flowchart of a data retransmission method provided in an embodiment of the present application. As shown in FIG8 , taking the method interactively executed by the first network device and the second network device as an example, the method includes the following steps 801 to 811.
[0161] 801. A second network device sends data to a first network device through a first link between the second network device and the first network device.
[0162] 802. A first network device receives data sent by a second network device through a first link.
[0163] 803 . In response to detecting that the first link is disconnected or congested, the first network device determines an offset address of data that fails to be sent on the first link in a data storage space corresponding to the first link in the first network device.
[0164] The above steps 801 to 803 are similar to the above steps 401 to 403 and are not described in detail.
[0165] 804. The first network device determines a second link.
[0166] Step 804 is similar to step 405 and will not be described in detail.
[0167] 805. The first network device generates a third retransmission notification message corresponding to the first link, and the third retransmission notification message includes the sending port of the first link, the offset address of the data to be retransmitted in the data storage space corresponding to the first link in the first network device, and the routing information of the third retransmission notification message, and the routing information is used to indicate the transmission path of the third retransmission notification message.
[0168] The routing information of the third retransmission notification message includes the receiving port of the second link and the sending port of the second link, and the routing information indicates that the third retransmission notification message is sent to the sending port of the second link via the receiving port of the second link.
[0169] It should be noted that the above steps 803 and 805 are an implementation method of generating a retransmission notification message in response to detecting that the first link is disconnected or the first link is congested. In some embodiments, this process is also implemented based on other methods, and the embodiments of the present application do not limit this.
[0170] 806. The first network device sends the third retransmission notification message to the second network device through the second link.
[0171] 807. The second network device receives a third retransmission notification message sent by the first network device through the second link.
[0172] 808. The second network device obtains the data that failed to be sent on the first link from the data storage space corresponding to the first link in the second network device based on the third retransmission notification message.
[0173] 809. The second network device sends the data that failed to be sent on the first link to the first network device through the second link.
[0174] 810. The first network device receives data retransmitted by the second network device through the second link, and sends a reception success message to the second network device through the second link, indicating that the first network device has received the data sent through the second link that failed to be sent on the first link.
[0175] 811. In response to receiving the successful reception message, the second network device clears data from the data storage space corresponding to the first link in the first network device.
[0176] The above steps 806 to 811 are similar to the above steps 406 to 411 and are not described in detail.
[0177] In the above method, when an abnormality occurs in the data transmission of the first link, the downstream uses the second link to send a retransmission notification message corresponding to the first link to the upstream, and the upstream uses the second link to retransmit the data that failed to be sent on the first link. This can avoid the degradation of data transmission performance caused by the abnormality of the first link, which is conducive to improving the reliability of data transmission; in addition, the entire data retransmission process is executed by the underlying hardware, and the upper-layer business is not aware of the underlying link abnormality. The data retransmission process does not require the participation of the upper-layer business system, which can reduce the responsibility of the upper-layer business system.
[0178] It should be noted that the above method embodiment is illustrated by taking data interaction between two network devices as an example. The data retransmission method provided in the embodiment of the present application can be applied to the data transmission process between any two network devices in a system such as a data center. For example, as shown in Figure 9, Figure 9 is a schematic diagram of a data retransmission method provided in an embodiment of the present application applied to a data center. In Figure 9, the data center includes multiple network devices, such as multi-port high-speed link chips such as NIC and switch. By configuring CPLR modules in each network device, the entire data center is constructed into a high-performance and high-reliability cluster, which can reduce the time for link failure retransmission from seconds to nanoseconds.
[0179] FIG10 is a schematic structural diagram of a network device provided in an embodiment of the present application. The network device is a first network device, and the first network device includes a generating module 1001 and a sending module 1002 .
[0180] The generating module 1001 is configured to generate a retransmission notification message corresponding to a first link between the first network device and the second network device, the retransmission notification message being configured to instruct the second network device to retransmit data that failed to be sent on the first link via the second link between the first network device and the second network device;
[0181] The sending module 1002 is configured to send the retransmission notification message to the second network device via the second link.
[0182] Optionally, the generating module 1001 is used to:
[0183] In response to detecting that the first link is disconnected or the first link is congested, the retransmission notification message is generated.
[0184] Optionally, the second link is a pre-designated backup link of the first link; or, the second link is any link between the first network device and the second network device; or, the second link is an idle link between the first network device and the second network device.
[0185] Optionally, at least one of the sending port and the receiving port of the first link and the second link is a different port.
[0186] Optionally, the retransmission notification message includes link information of the first link and a data address of the data to be retransmitted.
[0187] Optionally, the link information of the first link includes a sending port of the first link or a link identifier of the first link.
[0188] Optionally, the data address of the data to be retransmitted is an offset address of the data to be retransmitted in the data storage space corresponding to the first link in the first network device; or, the data address of the data to be retransmitted is in a bitmap form.
[0189] Optionally, the first network device further includes:
[0190] a receiving module, configured to receive data retransmitted by the second network device through the second link;
[0191] The sending module 1002 is further configured to send a successful reception message to the second network device via the second link, where the successful reception message indicates that the first network device has received the data that failed to be sent on the first link and was sent via the second link.
[0192] It should be noted that, in other embodiments, the steps implemented by the above modules can be specified as needed, and the full functionality of the above device can be achieved by implementing different steps in the above data retransmission method through the above modules. That is, the network device provided in the above embodiments only uses the division of the above functional modules as an example to illustrate the implementation of the data retransmission method. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the device provided in the above embodiments and the corresponding method embodiments are based on the same concept. The specific implementation process is detailed in the method embodiments and will not be repeated here.
[0193] FIG11 is a schematic structural diagram of a network device provided in an embodiment of the present application. The network device is a second network device, and the second network device includes a receiving module 1101 and a retransmission module 1102 .
[0194] a receiving module 1101, configured to receive a retransmission notification message sent by the first network device via a second link between the second network device and the first network device, the retransmission notification message being used to instruct the second network device to retransmit data that failed to be sent on the first link between the second network device and the first network device via the second link;
[0195] The retransmission module 1102 is configured to send the data that failed to be sent on the first link to the first network device via the second link.
[0196] Optionally, the second link is a pre-designated backup link of the first link; or, the second link is any link between the first network device and the second network device; or, the second link is an idle link between the first network device and the second network device.
[0197] Optionally, at least one of the sending port and the receiving port of the first link and the second link is a different port.
[0198] Optionally, the retransmission notification message includes link information of the first link and a data address of the data to be retransmitted.
[0199] Optionally, the link information of the first link includes a sending port of the first link or a link identifier of the first link.
[0200] Optionally, the data address of the data to be retransmitted is an offset address of the data to be retransmitted in the data storage space corresponding to the first link in the first network device;
[0201] The sending module 1102 is used to:
[0202] Starting from the offset address, obtain the data in the data storage space;
[0203] The acquired data is sent to the first network device through the second link.
[0204] Optionally, the data address of the data to be retransmitted is in the form of a bitmap;
[0205] The sending module 1102 is used to:
[0206] Based on the data address in bitmap form, obtaining data in the data storage space;
[0207] The acquired data is sent to the first network device through the second link.
[0208] Optionally, the receiving module 1101 is further configured to:
[0209] In response to receiving a successful reception message sent by the first network device, data storage space corresponding to the first link in the first network device is cleared, and the successful reception message indicates that the first network device has received the data that failed to be sent on the first link and was sent through the second link.
[0210] It should be noted that, in other embodiments, the steps implemented by the above modules can be specified as needed, and the full functionality of the above device can be achieved by implementing different steps in the above data retransmission method through the above modules. That is, the network device provided in the above embodiments only uses the division of the above functional modules as an example to illustrate the implementation of the data retransmission method. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the device provided in the above embodiments and the corresponding method embodiments are based on the same concept. The specific implementation process is detailed in the method embodiments and will not be repeated here.
[0211] The generation module 1001, the sending module 1002, the receiving module 1101, and the retransmission module 1102 can all be implemented via software or hardware. For example, the implementation of the generation module 1001 will be described below using the generation module 1001 as an example. Similarly, the implementation of the sending module 1002, the receiving module 1101, and the retransmission module 1102 can refer to the implementation of the generation module 1001.
[0212] As an example of a software functional unit, the generation module 1001 may include codes running on a network device.
[0213] As an example of a hardware functional unit, the generation module 1001 can be implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD can be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
[0214] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.), and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the data and ports involved in this application are obtained with full authorization.
[0215] Those skilled in the art will appreciate that the various method steps and units described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0216] Those skilled in the art will clearly understand that, for the sake of 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.
[0217] 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 only schematic. For example, the division of the unit is only 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. In addition, 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, or can be electrical, mechanical or other forms of connection.
[0218] 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 the units may be selected according to actual needs to achieve the purpose of the embodiments of the present application.
[0219] In addition, each unit in each embodiment of the present application may be integrated into a processing unit, each unit may exist physically separately, or two or more units may be integrated into a single unit. The above-mentioned integrated units may be implemented in the form of hardware or software units.
[0220] 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 computing device (which can be a personal computer, a server, or a computing device, etc.) to execute all or part of the steps of the method in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0221] In this application, the terms "first," "second," and the like are used to distinguish between identical or similar items having substantially the same role and function. It should be understood that there is no logical or temporal dependency between "first," "second," and "nth," nor does it limit the quantity or order of execution. It should also be understood that although the following description uses the terms first, second, and the like to describe various elements, these elements should not be limited by the terms. These terms are merely used to distinguish one element from another. For example, without departing from the scope of the various examples, a first network device may be referred to as a second network device, and similarly, a second network device may be referred to as a first network device. The first network device and the second network device may both be network devices, and in some cases, may be separate and distinct network devices.
[0222] The term "at least one" in this application means one or more, and the term "plurality" in this application means two or more. The terms "system" and "network" are often used interchangeably in this document.
[0223] It should also be understood that the term "if" may be interpreted to mean "when" or "upon" or "in response to determining" or "in response to detecting." Similarly, the phrase "if it is determined that..." or "if [stated condition or event] is detected" may be interpreted to mean "upon determining that..." or "in response to determining that..." or "upon detecting [stated condition or event]" or "in response to detecting [stated condition or event]," depending on the context.
[0224] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in this application, and such modifications or substitutions should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.
[0225] In the above embodiments, all or part of the embodiments may be implemented using software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments may be implemented in the form of a computer program product. The computer program product includes one or more computer program instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
[0226] The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer program instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired or wireless method. The computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, or a magnetic tape), an optical medium (e.g., a digital video disc (DVD), or a semiconductor medium (e.g., a solid-state drive)), etc.
[0227] Those skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware, or may be accomplished by a program to instruct the relevant hardware, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.
[0228] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.
Claims
1. A data retransmission method, characterized in that: Applied to a first network device, the method includes: generating a retransmission notification message corresponding to a first link between the first network device and the second network device, wherein the retransmission notification message is used to instruct the second network device to retransmit data that failed to be sent on the first link through the second link between the first network device and the second network device; The retransmission notification message is sent to the second network device through the second link.
2. The method according to claim 1, characterized in that The generating a retransmission notification message corresponding to the first link between the first network device and the second network device includes: In response to detecting that the first link is disconnected or the first link is congested, the retransmission notification message is generated.
3. The method according to claim 1 or 2, characterized in that The second link is a pre-designated backup link of the first link; or, the second link is any link between the first network device and the second network device; or, the second link is an idle link between the first network device and the second network device.
4. The method according to any one of claims 1 to 3, characterized in that At least one of the sending port and the receiving port of the first link and the second link is different.
5. The method according to any one of claims 1 to 4, characterized in that The retransmission notification message includes link information of the first link and a data address of data to be retransmitted.
6. The method according to claim 5, characterized in that The link information of the first link includes at least one of a sending port of the first link and a link identifier of the first link.
7. The method according to claim 5, characterized in that The data address of the data to be retransmitted is an offset address of the data to be retransmitted in the data storage space corresponding to the first link in the second network device; or, the data address of the data to be retransmitted is in a bitmap format.
8. The method according to any one of claims 1 to 7, characterized in that The method further comprises: receiving data retransmitted by the second network device through the second link; A reception success message is sent to the second network device through the second link, where the reception success message indicates that the first network device has received the data that failed to be sent on the first link and was sent through the second link.
9. A data retransmission method, characterized in that: Applied to the second network device, the method includes: receiving a retransmission notification message sent by the first network device via a second link between the second network device and the first network device, the retransmission notification message being used to instruct the second network device to retransmit data that failed to be sent on the first link between the second network device and the first network device via the second link; The data that fails to be sent on the first link is sent to the first network device through the second link.
10. The method according to claim 9, characterized in that The second link is a pre-designated backup link of the first link; or, the second link is any link between the first network device and the second network device; or, the second link is an idle link between the first network device and the second network device.
11. The method according to claim 9 or 10, characterized in that At least one of the sending port and the receiving port of the first link and the second link is different.
12. The method according to any one of claims 9 to 11, characterized in that The retransmission notification message includes link information of the first link and a data address of data to be retransmitted.
13. The method according to claim 12, characterized in that The link information of the first link includes at least one of a sending port of the first link and a link identifier of the first link.
14. The method according to claim 12, characterized in that The data address of the data to be retransmitted is an offset address of the data to be retransmitted in the data storage space corresponding to the first link in the second network device; The sending, through the second link, the data that fails to be sent on the first link to the first network device includes: Starting from the offset address, acquiring data in the data storage space; The acquired data is sent to the first network device through the second link.
15. The method according to claim 12, characterized in that The data address of the data to be retransmitted is in the form of a bitmap; The sending, through the second link, the data that fails to be sent on the first link to the first network device includes: Based on the data address in bitmap form, acquiring data in the data storage space; The acquired data is sent to the first network device through the second link.
16. The method according to any one of claims 9 to 15, characterized in that The method further comprises: In response to receiving a successful reception message sent by the first network device, data storage space corresponding to the first link in the first network device is cleared, wherein the successful reception message indicates that the first network device has received the data that failed to be sent on the first link and was sent through the second link.
17. A data retransmission method, characterized in that: The method comprises: The first network device generates a retransmission notification message corresponding to a first link between the first network device and the second network device, wherein the retransmission notification message is used to instruct the second network device to retransmit data that failed to be sent on the first link through a second link between the first network device and the second network device; The first network device sends the retransmission notification message to the second network device through the second link; The second network device receives the retransmission notification message; The second network device sends the data that fails to be sent on the first link to the first network device through the second link.
18. A data transmission system, characterized in that: The data transmission system includes a first network device and a second network device; The first network device is configured to: generating a retransmission notification message corresponding to a first link between the first network device and the second network device, wherein the retransmission notification message is used to instruct the second network device to retransmit data that failed to be sent on the first link through the second link between the first network device and the second network device; sending the retransmission notification message to the second network device through the second link; The second network device is configured to: receiving the retransmission notification message; The data that fails to be sent on the first link is sent to the first network device through the second link.
19. A network device, characterized in that: The network device is a first network device, and the first network device includes: a generating module, configured to generate a retransmission notification message corresponding to a first link between the first network device and the second network device, the retransmission notification message being used to instruct the second network device to retransmit data that failed to be sent on the first link through the second link between the first network device and the second network device; A sending module is used to send the retransmission notification message to the second network device through the second link.
20. A network device, characterized in that: The network device is a second network device, and the second network device includes: a receiving module, configured to receive a retransmission notification message sent by the first network device via a second link between the second network device and the first network device, the retransmission notification message being used to instruct the second network device to retransmit data that failed to be sent on the first link between the second network device and the first network device via the second link; The sending module is configured to send data that fails to be sent on the first link to the first network device via the second link.
Citation Information
Patent Citations
Data transmission method and first device
CN111512603A
Message transmission method, message transmission system and storage medium
CN114698146A
Fault processing method, related equipment and system
CN117176546A
Multi-link-based data transmission method and device, equipment and storage medium
CN117395716A
System and method of local retransmission of TCP / IP frames
US20180367256A1