Packet transmission method and apparatus, and computing device
By directly switching data paths at target nodes in a ring topology network, the problem of transmission interruption caused by faults in the ring topology network is solved, thereby improving transmission efficiency and network reliability.
Patent Information
- Application Number
- PCT/CN2024/137780
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-12
- Filing Date
- 2024-12-09
- Publication Date
- 2025-10-16
AI Technical Summary
In a toroidal topology network, if a data path fails during message transmission, existing technologies require waiting for the faulty node to report information and resend the route, resulting in service interruption and reduced transmission efficiency.
The target node directly uses the stored target routing information to re-determine at least one second data path from multiple data paths to transmit packets, avoiding reporting fault information to the management node and directly switching to an available data path.
It avoids interruption of message transmission services, improves transmission efficiency and network reliability, can tolerate more faulty nodes, and simplifies routing algorithm logic.
Smart Images

Figure CN2024137780_16102025_PF_FP_ABST
Abstract
Description
Message transmission method and device and computing device
[0001] The present application claims priority to the Chinese patent application No. 202410444393.9, filed on April 12, 2024, and entitled "Message transmission method, device and computing device", the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD
[0002] The present application relates to the field of networking technology, in particular to a message transmission method, device and computing device. BACKGROUND
[0003] A torus topology network is widely used in data centers due to its low cost. However, when the torus topology network fails, the node with the fault (hereinafter referred to as the fault node) will report the fault information to the management node of the torus topology network. After receiving the fault information, the management node will reissue routing information to the torus topology network to indicate the reachable paths between different nodes in the torus topology network. In this way, when the torus topology network needs to transmit a message, the reachable path of the message can be determined through the newly issued routing information.
[0004] However, if a fault node appears on the data path of the transmitted message during the message transmission process, the message transmission service will be affected by the fault node, resulting in service interruption and a serious decline in the transmission efficiency of the message. SUMMARY
[0005] The present application provides a message transmission method, device and computing device, which can avoid the influence of faults on message transmission services, thereby avoiding service interruption caused by faults and ensuring the transmission efficiency of messages when faults occur.
[0006] In a first aspect, a message transmission method is provided, which is applied to a torus topology network. The torus topology network includes a plurality of nodes, and each node in the plurality of nodes stores target routing information. The target routing information is used to indicate a plurality of data paths in the torus topology network. The method includes: determining, by a target node in the plurality of nodes, a first data path from the plurality of data paths for transmitting a first message; determining, by the target node, at least one second data path from the plurality of data paths if there is a fault on the first data path; and transmitting, by the target node, the first message through the at least one second data path.
[0007] In the scheme, the torus topology network stores target routing information used for indicating a plurality of data paths in the torus topology network. Based on this, after the target node determines a first data path from the plurality of data paths for transmitting the first message, if there is a fault in the first data path, the target node can re-determine at least one second data path from the plurality of data paths, and transmit the first message through the at least one re-determined second data path.
[0008] When there is a fault in the first data path, the target node directly uses the plurality of data paths indicated by the currently stored target routing information to re-determine a data path (i.e., at least one second data path) that can reach the destination node of the first message, and transmits the first message through the at least one re-determined second data path. In this way, the torus topology network does not need to report fault information to the management node to trigger the management node to re-issue routing information, so as to determine a data path for transmitting a message according to the re-issued routing information. Therefore, the present application avoids the interruption of message transmission service caused by the fault of the data path for transmitting the message, thereby avoiding the influence of the fault of the data path for transmitting the message on the message transmission efficiency, and further ensuring that the message transmission efficiency will not decrease significantly when the data path for transmitting the message fails. In addition, by determining a plurality of second data paths for transmitting the first message, the number of fault nodes that can be tolerated in the message transmission process can be increased, thereby helping to improve the network reliability of the torus topology network.
[0009] In a possible implementation, the target node is a source node of the first message, or the target node is a node on the first data path. In this way, it not only helps to improve the success probability of message transmission, but also helps to improve the node range to which the message transmission method of the present application is applicable.
[0010] In another possible implementation, if the target node is a node on the first data path, the target node determines at least one second data path from the plurality of data paths, including: the target node determines at least one second data path from a plurality of target data paths; and the plurality of target data paths include a data path between the target node and a destination node of the first message. In this way, it not only helps to reduce the hop count of the second data path, but also helps to increase the selection range of the second data path.
[0011] In another possible implementation, if the target node is a node on the first data path, the target node determines the at least one second data path from the plurality of data paths, including: the target node determines the at least one second data path from a plurality of fourth data paths; the plurality of fourth data paths include data paths between the source node of the first packet and the destination node of the first packet. In this way, not only is the accuracy of the second data path ensured, i.e., the first packet can be accurately transmitted to the destination node, but the logic of the target routing algorithm is also simplified.
[0012] In another possible implementation, the target node transmits the first packet through the at least one second data path, including: the target node updates the first packet to obtain a second packet; the source node indicated by the second packet is the target node, and the destination node indicated by the second packet is the destination node of the first packet; and the target node transmits the second packet through the at least one second data path.
[0013] In another possible implementation, the second packet includes a failure identifier, and the failure identifier is used to indicate a number of times of detecting a failure in the process of transmitting the first packet. In this way, a node receiving the second packet can determine whether a failure has been detected in the process of transmitting the original packet of the second packet according to the failure identifier, and can determine whether to discard the second packet according to the number of times of detecting the failure, thereby helping to ensure the accuracy of the packet discarding operation.
[0014] In another possible implementation, the method further includes: the target node transmits a target message to a node of the at least one second data path; and the target message is used to indicate that the source node of the first packet is the target node.
[0015] In another possible implementation, the target message is further used to indicate a number of times of detecting a failure in the process of transmitting the first packet.
[0016] In another possible implementation, the at least one second data path includes a target second data path, and the target second data path includes the first node; and the method further includes: if the target second data path has a failure, the first node discards a received packet. In this way, it is possible to avoid a deadlock on a tor topology network.
[0017] In another possible implementation, the fault of the first data path includes at least one of a fault of a first port on the target node, a fault of a second port on the destination node of the first message, a fault of a second node on the first data path, and a fault of a third node on the first data path; the first port is connected with a node on the first data path, the second port is connected with a node on the first data path, the second node is a next hop node of the target node, the third node is spaced apart from the target node by at least one node, and the at least one node is on the first data path. In this way, the reliability of the first data path is ensured, and thus the probability of successful transmission of the first message is improved.
[0018] In another possible implementation, the at least one second data path includes a plurality of second data paths, and different second data paths in the plurality of second data paths do not have the same node. In this way, the number of fault nodes that can be tolerated in the process of transmitting the first message is increased.
[0019] In another possible implementation, each of the at least one second data path includes a fourth node, the fourth node is a next hop node of the target node, and the fourth node is a non-fault node. In this way, the success rate of message transmission is improved.
[0020] In another possible implementation, the method further includes: receiving, by the target node, a target value; and the target value is used to determine the number of the at least one second data path. In this way, the user can specify the number of second data paths by sending the target value to the target node.
[0021] In another possible implementation, the target routing information indicates that there are M data paths between the target node and the destination node of the first message, M is a positive integer greater than 1; and determining, by the target node, the at least one second data path from the plurality of data paths includes: determining, by the target node, K second data paths with the least number of hops from the M data paths; and K is a positive integer less than or equal to the target value. In this way, the efficiency of message transmission is improved.
[0022] In another possible implementation, the target routing information indicates that there are M data paths between the target node and the destination node of the first message, M is a positive integer greater than 1; and determining, by the target node, the at least one second data path from the plurality of data paths includes: determining, by the target node, K second data paths from the M data paths at random. In this way, the selection diversity of the second data path is improved.
[0023] In a second aspect, a packet transmission apparatus is provided, which comprises functional units for performing any of the methods provided in the first aspect, and each functional unit performs an action by hardware or by hardware executing corresponding software. For example, the packet transmission apparatus comprises a routing module and a transmission module. The routing module is configured to determine a first data path from a plurality of data paths for transmitting a first packet; and the routing module is further configured to determine at least one second data path from the plurality of data paths if there is a fault on the first data path; and the transmission module is configured to transmit the first packet through the at least one second data path.
[0024] In a third aspect, a computing device is provided, which can comprise a processor, a memory, and a computer program / instruction stored on the memory; the processor executes the computer program to enable the computing device to perform the steps of any of the methods provided in the first aspect.
[0025] In a fourth aspect, a node of a torus topology network is provided, which comprises a processor, a memory, and a computer program / instruction stored on the memory; the processor executes the computer program to enable the node to perform the steps of any of the methods provided in the first aspect.
[0026] In a fifth aspect, a torus topology network is provided, which comprises a plurality of nodes, and each node of the plurality of nodes comprises a processor, a memory, and a computer program / instruction stored on the memory; the processor executes the computer program to enable the torus topology network to perform the steps of any of the methods provided in the first aspect.
[0027] In a sixth aspect, a computer program product is provided, which comprises a computer program / instruction, and the computer program / instruction is executed by a processor to perform the steps of any of the methods provided in the first aspect.
[0028] In a seventh aspect, a computer readable storage medium is provided, which stores a computer program / instruction, and the computer program / instruction is executed by a processor to perform the steps of any of the methods provided in the first aspect.
[0029] The technical effects brought by any of the implementation manners of the second aspect to the seventh aspect can be referred to the technical effects brought by the different implementation manners of the first aspect, which will not be described herein. BRIEF DESCRIPTION OF DRAWINGS
[0030] FIG. 1 is a schematic diagram of a deadlock provided in the present application;
[0031] FIG. 2 is a schematic diagram of a storage network provided in the present application;
[0032] FIG. 3 is a schematic diagram of a system architecture provided in the present application;
[0033] Fig. 4 is a schematic diagram of another system architecture provided by the present application;
[0034] Fig. 5 is a flow chart of a packet transmission method provided by the present application;
[0035] Fig. 6 is a schematic diagram of a torus topology network provided by the present application;
[0036] Fig. 7 is a flow chart of another packet transmission method provided by the present application;
[0037] Fig. 8 is a schematic diagram of another torus topology network provided by the present application;
[0038] Fig. 9 is a flow chart of another packet transmission method provided by the present application;
[0039] Fig. 10 is a schematic diagram of a packet transmission device provided by the present application. DETAILED DESCRIPTION
[0040] For the convenience of understanding, first, the related terms involved in the present application are briefly introduced.
[0041] Data Paths (DP): refers to the path of transmitting packets between different components.
[0042] In the present application, data paths refer to the paths of transmitting packets between different nodes in a torus topology network.
[0043] Multiple Data Paths (MDP): refers to multiple paths of transmitting packets between different components.
[0044] Torus topology network: refers to a plurality of nodes arranged in a regular grid, adjacent nodes in the same row / column are connected, and the two nodes at the farthest ends of the same row / column are also connected, wherein each row / column of the torus topology network is a ring.
[0045] Virtual channel (VC): the buffer area of a network card device can be divided into multiple queues, a queue can be referred to as a virtual channel, and a queue is used to store the received packets / sending packets of the network card device.
[0046] Deadlock: refers to a state in which multiple resources wait for each other and cannot continue to execute.
[0047] In the present application, deadlock refers to a state in which multiple nodes in a torus topology network wait for each other and cannot continue to transmit packets.
[0048] As shown in FIG. 1, for example, node 1, node 2, node 3, and node 4 are respectively configured with one virtual channel. Virtual channel 1 of node 1 is occupied by message 1, virtual channel 1 of node 2 is occupied by message 2, virtual channel 1 of node 3 is occupied by message 3, and virtual channel 1 of node 4 is occupied by message 4. Among them, node 1 waits for node 2 to release virtual channel 1 to transmit message 1 to node 2. Node 2 waits for node 3 to release virtual channel 1 to transmit message 2 to node 3. Node 3 waits for node 4 to release virtual channel 1 to transmit message 3 to node 4. Node 4 waits for node 1 to release virtual channel 1 to transmit message 4 to node 1. In this case, a circular dependency is formed among node 1, node 2, node 3, and node 4, causing all messages to be unable to continue transmission, thereby causing a deadlock.
[0049] Hop count: refers to the total number of hops required for a message to be routed from a source node to a destination node, wherein routing from one node to the next node is referred to as one hop.
[0050] The technical solutions provided in the present application will be described in detail below with reference to the accompanying drawings.
[0051] Currently, the networking form of a data center includes a FatTree topology, a Spine-leaf topology, and the like. As shown in FIG. 2, a data center can include a computing network and a storage network, the computing network can include a plurality of computing nodes, and the storage network can include a plurality of storage nodes. Hereinafter, the current networking form will be described by way of example with reference to the storage network.
[0052] In order to distinguish between north-south traffic and east-west traffic in the storage network, the storage network is divided into a front-end network and a back-end network. The front-end network is responsible for north-south communication between the user's computing nodes and the storage nodes, for example, transmitting read-write traffic, and the like. The back-end network is responsible for data communication between the storage nodes, for example, erasure codes (EC), garbage collection (GC), and the like. This networking form, when the number of storage nodes exceeds the port limit of a single switch, connects the storage nodes to front-end switches respectively, then connects the front-end switches to a convergence switch upward, and connects the convergence switch with the computing nodes. As can be seen, in the case of a large number of nodes, this networking form requires a large number of switches, which results in a high cost of networking.
[0053] In order to reduce the cost, the related technology proposes a torus topology networking (which can also be referred to as a torus direct connection topology networking). Since the torus topology networking directly connects different nodes, that is, different nodes are not connected through a switch, the cost of networking is greatly reduced.
[0054] In the torus topology networking, there are multiple different reachable paths between any two nodes, that is, there are multiple data paths between any two nodes. In order to ensure that the torus topology networking can communicate normally, the torus topology networking determines the paths (i.e., data paths) used when different nodes communicate by running a routing algorithm. At present, the torus topology networking uses a routing algorithm that selects the shortest path for communication. For example, a dimension-ordered routing (DOR) algorithm, a shortest path first (SPF) algorithm, etc.
[0055] When the torus topology networking using the above routing algorithm fails, the faulty node reports the fault information to the management node of the torus topology networking. After receiving the fault information, the management node reissues routing information to the torus topology networking to indicate the reachable paths between different nodes, that is, the paths between different nodes that do not include the faulty node. In this way, when the torus topology networking needs to transmit a message, it can determine the reachable path of the message by using the newly issued routing information. However, if a fault occurs on the data path of the transmitted message during the transmission of the message, since the torus topology networking needs to wait for the faulty node to report the fault information and re-determine the reachable path according to the new routing information, the message transmission service will be affected by the fault and cause service interruption, thereby causing a serious decline in the transmission efficiency of the message.
[0056] Therefore, the present application provides a message transmission method applied to a torus topology networking. The torus topology networking stores routing information, and the routing information indicates multiple data paths in the torus topology networking. Based on this, after a target node in the torus topology networking determines a first data path from the multiple data paths for transmitting a first message, if there is a fault on the first data path, the target node can continue to determine at least one second data path from the multiple data paths for transmitting the first message.
[0057] When a fault exists on the first data path, the target node directly determines a data path (at least one second data path) that can reach the destination node of the first message by using the plurality of data paths indicated by the currently stored target routing information, and transmits the first message through the at least one second data path determined again, so that the torus topology networking does not need to report fault information to the management node to trigger the management node to reissue routing information, and thus determine the data path for transmitting the message according to the reissued routing information. Therefore, the message transmission method provided in the present application avoids the message transmission service interruption caused by the fault of the data path of the to-be-transmitted message, thereby avoiding the influence of the fault of the data path of the to-be-transmitted message on the message transmission efficiency, and further ensuring that the message transmission efficiency will not decrease seriously when the fault of the data path of the to-be-transmitted message occurs. In addition, by determining a plurality of second data paths for transmitting the first message, the number of fault nodes that can be tolerated in the message transmission process can be increased, and thus the network reliability of the torus topology networking can be improved.
[0058] Next, the system architecture related to the technical solutions provided in the present application will be further introduced in combination with the drawings.
[0059] The system architecture provided in the present application is applicable to the above-mentioned message transmission method. The system architecture can include a management node and a torus topology networking. The torus topology networking can include a plurality of nodes, and each node in the plurality of nodes can communicate with the management node.
[0060] Each node can include a storage medium, which can be referred to as a local storage medium of the node. The local storage medium of the node can be used to store the routing information issued by the management node.
[0061] It should be noted that in the present application, a plurality of can mean two or more. In addition, the management node can be referred to as a management plane or a control plane, and the torus topology networking can be referred to as a data plane, which will not be described in detail hereinafter.
[0062] For example, each node on the torus topology networking can communicate with the management node through a switch, or each node on the torus topology networking can directly communicate with the management node, which is not limited in the present application.
[0063] For example, the torus topology networking can be a two-dimensional (2D) networking, a three-dimensional (3D) networking, etc., which is not limited in the present application. Each node on the 2D torus topology networking can include 4 ports, and each node on the 3D torus topology networking can include 6 ports, wherein the ports of one node on the torus topology networking can be used to connect other nodes on the torus topology networking.
[0064] In the present application, the management node can be configured to manage the nodes in the torus topology network, such as issuing routing information to the nodes in the torus topology network. The routing information can be configured to indicate a plurality of reachable paths (i.e., data paths) between each two nodes in the torus topology network. The nodes in the torus topology network can be configured to perform the packet transmission method provided in the present application, so as to avoid the packet transmission service from being affected by the fault, thereby avoiding the service interruption caused by the fault, and ensuring that the packet transmission efficiency will not be seriously reduced when the fault occurs.
[0065] Optionally, the nodes in the torus topology network can be computing devices or the like. In the present application, the computing devices can be storage nodes, computing nodes, or the like. The computing nodes can be configured to perform computing tasks, and the storage nodes can be configured to perform storage tasks.
[0066] In the present application, the computing devices can be servers or electronic devices.
[0067] The server can be a physical or logical server, or two or more physical or logical servers sharing different responsibilities and cooperating with each other to implement the functions of the server. For example, the server can be a blade server, a high-density server, a rack server, or a tower server, etc. The electronic device can include an ultra-mobile personal computer (UMPC), a notebook computer, a netbook, a desktop computer, an all-in-one computer, etc.
[0068] It should be noted that the present application does not limit the type of nodes in the torus topology network, and the above is only an exemplary description. In the following, the nodes in the torus topology network are taken as computing devices as an example to introduce the present application.
[0069] In the present application, the nodes in the torus topology network can include network card devices, which can be configured to perform the packet transmission method provided in the present application. The network card device can include a storage medium, which can be referred to as the local storage medium of the network card device. The local storage medium of the network card device can be configured to store the routing information issued by the management node.
[0070] Optionally, the network card device can be a programmable network card, a data processing unit (DPU) network card, or the like.
[0071] It should be noted that the present application does not limit the type of network card device, and the above is only an exemplary description.
[0072] Optionally, the management node can be a server or an electronic device.
[0073] FIG. 3 is a schematic diagram of a system architecture provided in the present application.
[0074] As shown in FIG. 3, the system architecture can include a computing network, a front-end network of a storage network, and a back-end network of the storage network. The computing network can communicate with the storage nodes in the back-end network through the front-end network.
[0075] In the system architecture shown in FIG. 3, the back-end network includes a plurality of storage nodes, such as node 1, …, node 16. The plurality of storage nodes form a torus topology network, so that a plurality of data paths are formed between any two storage nodes. The front-end network can include a plurality of computing nodes, and the plurality of computing nodes can communicate with the plurality of storage nodes through the front-end network.
[0076] Optionally, the system architecture can further include a management node and a switch. The management node can communicate with each storage node in the torus topology network through the switch to issue routing information to each storage node.
[0077] Optionally, the system architecture can further include an electronic device, and the electronic device can communicate with the management node.
[0078] In the present application, a user can send a target value to the management node through the electronic device, and the target value can be used to specify a maximum value of a number of fault nodes supported by the torus topology network. The storage nodes can determine a number of at least one second data path according to the target value.
[0079] It should be noted that the back-end network shown in FIG. 3 includes 16 storage nodes, which is only an example. The number of nodes of the back-end network is not limited in the present application, i.e., the number of nodes of the torus topology network is not limited in the present application.
[0080] FIG. 4 is a schematic diagram of another system architecture provided by the present application.
[0081] As shown in FIG. 4, the system architecture can include a computing network, a front-end network of a storage network, and a back-end network of the storage network, and the computing network can communicate with the storage nodes in the back-end network through the front-end network.
[0082] In the system architecture shown in FIG. 4, the computing network includes a plurality of computing nodes, such as node 1, …, node 16. The plurality of computing nodes form a torus topology network, so that a plurality of data paths are formed between any two computing nodes. The back-end network can include a plurality of storage nodes, and the plurality of storage nodes can communicate with the plurality of computing nodes through the front-end network.
[0083] It should be noted that other related descriptions of the system architecture shown in FIG. 4 can refer to the descriptions of the system architecture shown in FIG. 3, which will not be described herein.
[0084] It should be noted that the system architecture shown in FIG. 3 and FIG. 4 is only an exemplary description of the system architecture applicable to the packet transmission method provided in the present application, and does not constitute a limitation on the system architecture for executing the packet transmission method provided in the present application.
[0085] The present application also provides a target routing algorithm, which can be used to implement the packet transmission method provided in the present application. The target routing algorithm can be run by a node on a torus topology network, that is, the node on the torus topology network can implement the packet transmission method provided in the present application by running the target routing algorithm.
[0086] Exemplarily, the target routing algorithm can be run by a network card device on the node, thereby implementing the packet transmission method provided in the present application.
[0087] It should be noted that the system architecture and application scenarios described in the present application are for more clearly illustrating the technical solutions of the present application, and do not constitute a limitation on the technical solutions provided in the present application. Those skilled in the art can know that the technical solutions provided in the present application are also applicable to similar technical problems as the system architecture evolves and new application scenarios appear.
[0088] In order to facilitate understanding, the packet transmission method provided in the present application will be exemplarily introduced below in combination with the above system architecture and the accompanying drawings.
[0089] The present application will be divided into three parts to exemplarily introduce the scheme of the packet transmission method.
[0090] In the first part, the scheme of transmitting a packet by a source node of a first packet as a target node is introduced in combination with FIG. 5 to FIG. 6.
[0091] In the second part, the scheme of transmitting a packet by a node on a first data path as a target node is introduced in combination with FIG. 7 to FIG. 8.
[0092] In the third part, the scheme of transmitting a packet by a node on a second data path is introduced in combination with FIG. 9.
[0093] In the following, the first part of the present application is introduced in combination with FIG. 5 to FIG. 6.
[0094] FIG. 5 is a flowchart of a packet transmission method provided in the present application. Exemplarily, the method can include the following steps 501-505.
[0095] It should be noted that the "step" in the present application can be abbreviated as "S" and will not be described in detail hereinafter.
[0096] The packet transmission method shown in FIG. 5 is applicable to the torus topology network shown in FIG. 3 and FIG. 4. In the following, the present application is exemplarily described taking the torus topology network shown in FIG. 3 as an example.
[0097] In the present application, the management node can send target routing information to the torus topology network, and the target routing information can be used to indicate a plurality of data paths on the torus topology network. The plurality of data paths includes a data path between each two nodes on the torus topology network.
[0098] For example, as shown in FIG. 3, the management node can send the target routing information to each node on the torus topology network through the switch, and each node stores the target routing information in the storage medium after receiving the target routing information. For example, the management node can send the target routing information to the network card device of each node through the switch, and the network card device of each node can store the target routing information in the node after receiving the target routing information.
[0099] In one example, the target routing information can be stored in the local storage medium of each node. In another example, the target routing information can be stored in the local storage medium of the network card device of each node.
[0100] It should be noted that the present application does not limit the storage location of the target routing information, and the above is only an example. In addition, the way the management node generates the target routing information and the way the management node sends the target routing information to the torus topology network can refer to the way in the related art, and the present application does not limit this.
[0101] Hereinafter, the source node of the first packet is referred to as the first source node, and the destination node of the first packet is referred to as the first destination node. The first source node can also be referred to as the initial source node, and the subsequent description will not be repeated.
[0102] In the present application, the operations performed by the first source node, such as steps 501-505, can be performed by the network card device on the first source node, and the subsequent description will not be repeated.
[0103] Step 501: The first source node determines a first data path from the plurality of data paths for transmitting the first packet.
[0104] In the present application, after the first source node (i.e., the target node) generates the first packet, the first source node can determine the first data path for transmitting the first packet according to the plurality of data paths indicated by the target routing information stored in the node.
[0105] The operations performed by the first source node, such as steps 501-505, can be operations performed by the first source node by running the target routing algorithm, and the subsequent description will not be repeated.
[0106] Exemplarily, the plurality of data paths indicated by the target routing information comprises a plurality of fourth data paths, and the plurality of fourth data paths comprises a data path between the first source node and the first destination node. Based on this, the first source node can determine the first data path from the plurality of fourth data paths indicated by the target routing information.
[0107] In one example, the first data path can be a data path with least hop count in the plurality of fourth data paths. In this way, the transmission efficiency of the first message can be improved. In another example, the first data path can be any one of the plurality of fourth data paths. In this way, the selection diversity of the first data path can be improved.
[0108] It should be noted that the specific algorithm for the first source node to determine the first data path is not limited in the present application, and the above is only an exemplary description.
[0109] Exemplarily, as shown in (a) of FIG. 6, node 9 is the first source node, and node 4 is the first destination node, wherein the target routing information is stored on the node 9, and the target routing information indicates a plurality of fourth data paths between the node 9 and the node 4, such as the plurality of fourth data paths can include data path 1, data path 2, data path 3 and data path 5. Among them, the data path 1 includes node 10, node 11, node 12 and node 8, the data path 2 includes node 5, node 6, node 7 and node 3, the data path 3 includes node 13, node 14, node 15, node 16, the data path 4 includes node 5 and node 8, and the data path 5 includes node 13 and node 1. Based on this, after the node 9 generates the first message, the node 9 determines the data path 1 (i.e. the first data path) from the data path 1-data path 5 for transmitting the first message.
[0110] Step 502: The first source node determines whether there is a fault on the first data path.
[0111] If the determination result is no, step 503 is performed. If the determination result is yes, step 504 is performed.
[0112] The first data path comprises at least one of a first port on the first source node, a second port on the first destination node, a second node on the first data path and a third node on the first data path. The first port is connected with a node on the first data path, the second port is connected with a node on the first data path, the second node is a next hop node of the first source node, the third node is spaced from the first source node by at least one node, and the at least one node is located on the first data path.
[0113] In the present application, after the first source node determines the first data path, it can determine whether there is a fault on the first data path. If there is no fault, the first message is transmitted through the first data path. If there is a fault, at least one second data path is re-determined from the multiple data paths indicated by the target routing information for transmitting the message.
[0114] Optionally, step 502 includes various implementation manners, which are exemplarily illustrated below by way of mode 1 to mode 4.
[0115] Mode 1: The fault existing on the first data path includes a fault existing in the first port. Based on this, step 502 can include that the first source node determines whether there is a fault in the first port. If there is a fault in the first port, the determination result of step 502 is yes. If there is no fault in the first port, the determination result of step 502 is no.
[0116] In the present application, the state information of multiple ports is stored on the first source node, the state information of multiple ports includes the state information of each port on the first source node, and the state information of one port is used to indicate that one port is in a fault state or a non-fault state. After the first source node determines that the first data path is used for transmitting the message, the port connected with the first data path on the first source node is determined, so that the first port is obtained. On this basis, the first source node determines the state information of the first state from the state information of multiple ports, and determines whether there is a fault in the first port according to the state information of the first port. If the state information of the first port indicates a fault state, the first port has a fault. If the state information of the first port indicates a non-fault state, the first port has no fault.
[0117] For example, as shown in (b) of FIG. 6, node 9 stores the state information of multiple ports, and the state information of multiple ports includes the state information of each port of node 9. After node 9 determines that data path 1 is used for transmitting the first message, it is determined that port 1 (i.e., the first port) is connected with node 10. Then, node 9 determines the state information of port 1 from the state information of multiple ports, and determines whether there is a fault in port 1 according to the state information of port 1.
[0118] In the present application, different ports have different port identifiers, and the state information of multiple ports is stored in association with the port identifiers of multiple ports. Based on this, the first source node can screen the state information of the first port from the state information of multiple ports according to the port identifier of the first port.
[0119] In this implementation manner, when the first port has a fault, it is determined that the first data path has a fault, so that the data path for transmitting the first message is re-determined. In this way, it is helpful to improve the coverage of the scheme of the present application, so as to improve the success rate of message transmission.
[0120] In the manner 2, the fault on the first data path includes a fault on the second port. Based on this, the step 502 can include: determining, by the first source node, whether the second port is faulty. If the second port is faulty, the determination result of the step 502 is yes. If the second port is not faulty, the determination result of the step 502 is no.
[0121] It should be noted that the other related descriptions of the manner 2 can refer to the descriptions of the manner 1, which will not be repeated here.
[0122] In this implementation manner, when the second port is faulty, it is determined that the first data path is faulty, so as to re-determine the data path for transmitting the first message. In this way, it not only helps to improve the coverage of the scheme of the present application, thereby helping to improve the message transmission success rate, but also helps to re-determine the data path for transmitting the message as soon as possible when the first data path is faulty, thereby improving the message transmission success rate.
[0123] In the manner 3, the fault on the first data path includes a fault on the second node. Based on this, the step 502 can include: determining, by the first source node, whether the second node is faulty.
[0124] If the second node is faulty, the determination result of the step 502 is yes. If the second node is not faulty, the determination result of the step 502 is no. The second node being faulty can be considered as the second node being a faulty node, and the second node being not faulty can be considered as the second node being a non-faulty node.
[0125] In this manner, when the next hop node of the first source node is faulty, it is determined that the first data path is faulty. In this way, the at least one second data path can be determined by the previous hop node of the faulty node to continue transmitting the message through the at least one second data path, so as to help to reduce the total number of hops when the first message is transmitted through the at least one second data path, i.e., the sum of the number of hops of different second data paths for transmitting the first message, thereby helping to reduce the number of nodes occupied when the first message is transmitted, and improving the network performance of the torus topology networking.
[0126] In the present application, after the first source node determines the first data path, the next hop node is determined from at least one node on the first data path, and it is determined whether the next hop node is faulty. For example, as shown in (b) of FIG. 6, after node 9 determines that the data path 1 is used for transmitting the first message, the next hop node is determined to be node 10 from node 10, node 11, node 12 and node 8, and it is determined whether node 10 is faulty. Since node 10 is faulty, the determination result of node 9 is yes.
[0127] In the following, the process of determining whether the first source node is faulty is exemplarily introduced through two implementation manners.
[0128] Optionally, the first source node determining whether the second node is faulty can include S1-S2.
[0129] S1: The first source node sends a detection signal to the second node. The detection signal is used to detect whether the second node is faulty.
[0130] In the present application, the first source node determines the first data path, and after determining that the second node on the first data path is the next hop node, the first source node sends a detection signal to the second node to determine whether the second node is faulty. For example, as shown in (b) of FIG. 6, node 9 sends a detection signal to node 10 to detect whether node 10 is faulty.
[0131] S2: If the first source node does not receive a response signal returned by the second node within a first time length, the first source node determines that the second node is faulty.
[0132] In the present application, after the first source node sends a detection signal to the second node, the second node can receive the detection signal and return a response signal to the first source node. Based on this, after the first source node sends the detection signal, the first source node can determine whether the response signal of the second node is received within the first time length. If the response signal is not received within the first time length, it means that the second node cannot normally respond to the first source node, and then the second node is determined to be faulty. Conversely, if the response signal is received within the first time length, it is determined that the fourth node is not faulty.
[0133] Optionally, the second node includes a third port, and the first source node and the second node are connected through a first link. The second node being faulty can include at least one of the third port being faulty, the first link being faulty, and software / hardware of the second node being faulty.
[0134] In one example, the second node receives the detection signal sent by the first source node through the first link through the third port. In the case that the third port or the first link is faulty, the second node cannot receive the detection signal. In this case, the second node will not return a response signal to the first source node. Based on this, the first source node will not receive the response signal returned by the second node within the first time length, and the second node will be determined to be faulty.
[0135] In another example, the second node can successfully receive the detection signal sent by the first source node. However, the second node cannot return a response signal to the first source node due to software / hardware being faulty. Based on this, the first source node will not receive the response signal returned by the second node within the first time length, and the second node will be determined to be faulty.
[0136] It should be noted that the present application does not limit the type of fault of the second node, and the above is only an exemplary description.
[0137] For example, as shown in (b) of FIG. 6, after node 9 sends the detection signal to node 10, node 10 fails to return the response signal to node 9 due to the fault, and based on this, node 9 is determined to have the fault because the response signal returned by node 10 is not received within the first time length.
[0138] It should be noted that the type of the detection signal and the response signal is not limited in the present application, and can refer to the type of the signal for detecting the fault node in the related art, which will not be described herein. In addition, the specific value of the first time length is not limited in the present application, and can be set according to the actual scene. For example, it can be set to several milliseconds, several tens of milliseconds, etc.
[0139] In the implementation manner described above, the first source node determines whether the second node has the fault in real time through the detection signal. Since the second node is determined whether to have the fault in real time, the accuracy of the detection result is guaranteed.
[0140] Optionally, the second implementation manner of the first source node determining whether to have the fault can include S3 to S4.
[0141] In the present application, the first source node stores state information of a plurality of nodes on the torus topology network. The state information of a node is used to indicate a fault state or a non-fault state. For example, the state information of the plurality of nodes can be stored in a storage medium of the first source node or a storage medium of a network card device of the first source node.
[0142] S3: The first source node determines the state information of the second node from the state information of the plurality of nodes.
[0143] In the present application, after the first source node determines the first data path, the state information of the second node is filtered from the state information of the plurality of nodes.
[0144] For example, as shown in (b) of FIG. 6, the node 9 stores the state information of node 1,..., and the state information of node 16. After the node 9 determines the first data path and determines that the next hop node is node 10, the state information of node 10 is filtered from the state information of node 1,..., and the state information of node 16.
[0145] In the present application, different nodes on the torus topology network have different node identifiers, and the state information of the plurality of nodes can be stored in association with the node identifiers of the plurality of nodes. Based on this, the first source node can filter the state information of node 10 from the state information of the plurality of nodes according to the node identifier of node 10.
[0146] S4: The first source node determines that the second node has the fault according to the state information of the second node indicating the fault state.
[0147] In the present application, if the state information of the second node indicates a fault state, the first source node determines that the second node has a fault. If the state information of the second node indicates a non-fault state, the first source node determines that the second node has no fault.
[0148] For example, as shown in (b) of FIG. 6, the state information of node 10 indicates a fault state, and node 9 determines that node 10 has a fault.
[0149] In the above implementation, the first source node determines whether the second node has a fault according to the state information of the plurality of nodes, which helps to improve the determination efficiency of the fault node.
[0150] It should be noted that the present application does not limit the way the first source node determines whether there is a fault, and the above is only an example.
[0151] In the present application, the initial state indicated by the state information of each node in the plurality of nodes is a non-fault state. Hereinafter, the updating process of the state information of the plurality of nodes will be introduced exemplarily in combination with node 9 and node 10 shown in (b) of FIG. 6.
[0152] For example, in the state information of the plurality of nodes stored on node 9, the initial state indicated by the state information of node 10 is a non-fault state. On this basis, node 9 sends a detection signal to node 10 according to a preset period to determine whether node 10 is a fault node. After node 9 sends the detection signal to node 10 every period, if no response signal returned by node 10 is received within a first time length, node 9 determines that node 10 is in a fault state. Based on this, node 9 updates the state information of node 10 stored in the node to obtain updated state information of node 10, and the updated state information of node 10 indicates a fault state.
[0153] In addition, node 9 can also send the updated state information of node 10 to node 1-node 8 and node 11-node 16. After receiving the updated state information of node 10, node 1-node 8 and node 11-node 16 store the updated state information of node 10. For example, the updated state information of node 10 can be used to overwrite the historical state information of node 10.
[0154] It should be noted that the present application does not limit the way the updated state information is stored, and the above is only an example.
[0155] In addition, the present application does not limit the length of the preset period, which can be set according to the actual scene. For example, the preset period can be several milliseconds, several tens of milliseconds, etc.
[0156] It should be noted that the other related descriptions of mode 3 can refer to the descriptions of modes 1 to 2, which will not be repeated here.
[0157] In mode 4, the fault on the first data path includes a fault of the third node. Based on this, step 502 can include: the first source node determining whether the third node has a fault.
[0158] If the third node has a fault, the determination result of step 502 is yes. If the third node does not have a fault, the determination result of step 502 is no. The third node having a fault can be considered as the third node being a fault node, and the third node not having a fault can be considered as the third node being a non-fault node.
[0159] In this application, the third node refers to a type of node, which includes other nodes on the first data path except the second node. Based on this, the first node can include at least one node. As shown in (a) of FIG. 6, the third node includes node 11, node 11 and node 8.
[0160] In this application, after the first source node determines the first data path, the third node is determined from the plurality of nodes on the first data path, and whether the third node has a fault is determined. For example, as shown in (c) of FIG. 6, after node 9 determines that data path 1 is used for transmitting the first packet, it can be determined whether node 11, node 12 and node 8 have a fault. If node 11, node 12 and node 8 all do not have a fault, the determination result of step 502 is no. Otherwise, if at least one of node 11, node 12 and node 8 has a fault, the determination result of step 502 is yes.
[0161] In this mode, when the third node on the first data path has a fault, it is determined that the first data path has a fault, which not only helps to improve the coverage of the scheme of the present application, thereby helping to improve the success rate of packet transmission, but also helps to determine the data path for transmitting the packet as soon as possible when the first data path has a fault, thereby improving the success rate of packet transmission.
[0162] Optionally, the first source node can determine whether the third node has a fault according to the state information of the third node.
[0163] In this application, after the first source node determines the first data path, the state information of the third node on the first data path is filtered from the state information of the plurality of nodes, and whether the third node on the first data path has a fault is determined according to the state information of the third node on the first data path. If at least part of the state information of the third node indicates a fault state, it is determined that the third node has a fault. If the state information of the third node all indicates a non-fault state, it is determined that the third node does not have a fault.
[0164] Exemplarily, as shown in (c) of FIG. 6, the node 9 stores the state information of the node 1, …, the state information of the node 16, and determines the first data path. After determining the first data path, the node 9 screens the state information of the node 11, the node 12 and the node 8 from the state information of the node 1, …, the state information of the node 16. The state information of the node 12 indicates a fault state, and the state information of the node 11 and the node 8 indicates a non-fault state. Based on this, the node 9 determines that there is a fault on the first data path.
[0165] It should be noted that the other related descriptions of the manner 4 can refer to the descriptions of the manners 1 to 3, which will not be described here again. In addition, the manners 1 to 4 can be used alone or in combination, which is not limited in the present application.
[0166] Step 503: The first source node transmits the first packet through the first data path.
[0167] In the present application, if the determination result of step 502 is no, the first source node transmits the first packet to the next hop node (i.e. the fourth node). Exemplarily, as shown in (a) of FIG. 6, the node 9 transmits the first packet to the node 10.
[0168] Step 504: The first source node determines at least one second data path from the plurality of data paths.
[0169] The second data path is different from the first data path.
[0170] It should be noted that the data path is named as the first data path, the second data path, etc. in order to distinguish the data paths in different scenarios, which will not be described here again.
[0171] Optionally, the second data path does not include the fault node on the first data path. In this way, it is helpful to increase the number of the second data paths that can successfully transmit the packet, thereby helping to improve the transmission success rate of the first packet.
[0172] It should be noted that the related description of the first source node determining the second data path can refer to the description of the first source node determining the first data path, which will not be described here again.
[0173] In the present application, after the first source node detects that there is a fault on the first data path, the first source node re-determines at least one second data path from the plurality of fourth data paths between the first source node and the first destination node, for transmitting the first packet.
[0174] In one example, the first source node can determine one second data path. In this way, it is possible to avoid that the first packet occupies too many data paths, thereby helping to avoid deadlock in the torus topology networking.
[0175] In another example, the first source node can determine a plurality of second data paths. In this way, the first message can be transmitted through the plurality of data paths, thereby helping to increase the number of faulty nodes that can be tolerated in the process of transmitting the first message, and thereby helping to increase the probability of successful transmission of the first message to the destination node.
[0176] The number of faulty nodes that can be tolerated by the message transmission method provided by the present application is described below.
[0177] For example, for 2D torus topology networking, each node includes four ports. Based on this, if there is a fault on the first data path, the first source node can determine at most three non-intersecting second data paths, such as second data path 1, second data path 2, and second data path 3. If two of the three second data paths have faulty nodes, such as the second data path 1 and the second data path 2, the first message can be transmitted through the second data path 3.
[0178] As can be seen, for 2D torus topology networking, the message transmission method provided by the present application can tolerate at least three faulty nodes, such as the faulty node on the first data path, the faulty node on the second data path 1, and the faulty node on the second data path 2, in the process of transmitting the message. That is, even if there are three faulty nodes, the message can still be successfully transmitted to the destination node.
[0179] On this basis, if there is still one faulty node on the torus topology network, and the one faulty node is not on the second data path 3, then even if there are four faulty nodes on the torus topology network, the first message transmitted through the second data path 3 can still be transmitted.
[0180] Based on the above, when transmitting a message based on the message transmission method provided by the present application, for 2D torus topology networking, any three node faults and part of four node faults are supported, and for 3D torus topology networking, any five node faults and part of six node faults are supported.
[0181] The implementation of determining the number of at least one second data path is described below.
[0182] For example, the target routing information indicates M data paths between the first source node and the first destination node, that is, there are M data paths between the first source node and the first destination node, and M is a positive integer greater than 1.
[0183] Optionally, the first source node stores a target value, and the target value is less than or equal to M. The target value can be used to specify the maximum number of faulty nodes supported by the torus topology network.
[0184] In the present application, the number of the at least one second data path can be less than or equal to a target value. In this way, by selecting a proper target value, not only the deadlock of the torus topology network in the process of transmitting the first message can be avoided, but also the probability of successfully transmitting the first message to the destination node can be improved.
[0185] In the following, the implementation of determining the number of the at least one second data path is introduced by way a to way b.
[0186] Way a: the first source node determines K second data paths with the least hop counts from the M data paths.
[0187] Wherein, K is a positive integer less than or equal to the target value.
[0188] In the present application, after the first source node determines that there is a fault on the first data path, the target value is obtained, and K second data paths with the least hop counts are determined from the M data paths indicated by the target routing information.
[0189] In one example, K is equal to the target value. For example, the target value is equal to 2, and K is equal to 2. In this way, the first message can be transmitted by using as many data paths as possible, so as to improve the probability of transmitting the first message to the destination node.
[0190] In another example, K is less than the target value. For example, the target value is equal to 3, and K can be equal to 1 or 2. In this way, the message can be transmitted by using fewer data paths, so as to reduce the number of occupied nodes, and thus avoid the deadlock.
[0191] For example, as shown in (b) or (c) of FIG. 6, the hop count of data path 2 is 5, the hop count of data path 3 is 5, the hop count of data path 4 is 3, and the hop count of data path 5 is 3. Based on way a, if K is equal to 2, node 9 can determine that data path 4 and data path 5 are used to transmit the first message.
[0192] In this way, the K second data paths with the least hop counts are determined to transmit the message, so as to reduce the nodes occupied by transmitting the message, and thus avoid the deadlock of the torus topology network.
[0193] Way b: the first source node randomly determines K second data paths from the M data paths.
[0194] In the present application, after the first source node obtains the target value, K second data paths can be randomly determined from the M data paths indicated by the target routing information.
[0195] For example, as shown in (b) or (c) of FIG. 6, based on mode b, if K is equal to 2, node 9 can determine data path 2 and data path 3, or data path 4 and data path 5, or data path 2 and data path 5, or data path 3 and data path 4 as the second data path. For example, node 9 determines data path 2 and data path 3 as the second data path.
[0196] It should be noted that other related descriptions of mode b can refer to the description of mode a, which will not be repeated here.
[0197] In this mode, K second data paths are randomly determined for transmitting the packet, which helps to improve the selection diversity of the second data path.
[0198] In this application, in the case where the first source node does not store the target data value, at least one second data path can be determined by the above mode a or mode b, wherein the number of at least one second data path can be less than or equal to M.
[0199] Next, the process of obtaining the target value by the first source node is exemplarily introduced.
[0200] Optionally, on the basis of steps 501-505, the packet transmission method can further include: receiving the target value by the first source node.
[0201] In combination with FIG. 3, the user can send the target value to the management node through the electronic device to specify the maximum value of the number of fault nodes supported by the torus topology networking. After receiving the target value, the management node can issue the target value to the torus topology networking. For example, the target value is sent to each node in the torus topology networking. Wherein, after receiving the target value, the first source node stores the target value in the storage medium.
[0202] For example, the management node can send the target value to the network card device on each node, and the network card device can store the target value in the local storage medium of the network card device, or also can store the target value in the local storage medium of the node.
[0203] In this embodiment, by setting that the first source node can receive and store the target value, the maximum value of the number of fault nodes supported by the torus topology networking can be specified by the user, so that the user can specify appropriate target values for the torus topology networking in different scenarios according to the business requirements in different scenarios, which helps to improve the performance of the torus topology networking and the user experience. For example, for the scenario with low business reliability requirement, the target value can be set relatively small. For the scenario with high business reliability requirement, the target value can be set relatively large to improve the probability of successful packet transmission.
[0204] Optionally, each of the at least one second data path comprises a fourth node, the fourth node being a next hop node of the first source node, and the fourth node being a non-faulty node.
[0205] For example, as shown in (d) of FIG. 6, node 5 is a faulty node, node 5 is a node on data path 2 and data path 4, and node 5 is a next hop node of the first source node, thus, data path 2 and data path 4 are not selected as the second data path, that is, the first source node can select the second data path from data path 3 and data path 5.
[0206] In this embodiment, by setting the next hop node of the first source node on the second data path as a non-faulty node, it is helpful to improve the data of the second data path on which the first message can be successfully transmitted, and thus it is helpful to improve the probability of successfully transmitting the first message to the destination node.
[0207] Optionally, in the case that the at least one second data path comprises a plurality of second data paths, different second data paths in the plurality of second data paths do not have the same node.
[0208] For example, as shown in (b) or (c) of FIG. 6, data path 2 and data path 4 have the same node (i.e., node 5), and data path 3 and data path 5 have the same node (i.e., node 13). Based on this, the plurality of second data paths can comprise data path 2 and data path 3, or data path 4 and data path 5, or data path 2 and data path 5, or data path 3 and data path 4.
[0209] In this embodiment, by setting different second data paths in the plurality of second data paths not having the same node, it is possible to avoid the first messages transmitted by different second data paths being transmitted to the same node, and thus on the one hand, it is possible to increase the number of faulty nodes that can be tolerated in the process of transmitting the message. For example, if there is a same node in two second data paths, when the same node is a faulty node, it will simultaneously cause the two second data paths to be unable to normally transmit the message. On the other hand, it is possible to avoid a plurality of first messages simultaneously occupying a plurality of virtual channels of the same node, and thus it is helpful to avoid a deadlock in the process of transmitting the first message, and thus it is helpful to improve the probability of transmitting the first message to the destination node of the first message.
[0210] Step 505: The first source node transmits the first message through the at least one second data path.
[0211] In this application, after determining the at least one second data path, the first source node transmits the first message through each of the at least one second data path.
[0212] For example, in combination with the above mode b, the first source node determines data path 2 and data path 5 as the second data paths. As shown in (c) or (d) of FIG. 6, node 9 can transmit the first packet to node 5 to transmit the first packet through data path 2. In addition, node 9 also transmits the first packet to node 13 to transmit the first packet through data path 5.
[0213] In the above embodiment, when the first data path fails, the first source node directly determines the data path (i.e., at least one second data path) that can reach the first destination node according to the plurality of data paths indicated by the currently stored target routing information, and transmits the first packet through the at least one second data path determined again. In this way, the fault node does not need to report the fault information to the management node to trigger the management node to reissue the routing information, so as to avoid the business interruption of the first packet transmission caused by the fault, thereby avoiding the influence of the fault on the transmission efficiency of the first packet, and further ensuring that the transmission efficiency of the first packet will not decrease seriously when the fault occurs.
[0214] Optionally, based on the result of step 502 being yes, the packet transmission method can further include: marking the first packet as a fault packet by the first source node. Wherein, one packet being a fault packet is used to indicate that a fault has been detected on the data path for transmitting the one packet. For example, the first packet being a fault packet can be used to indicate that a fault has been detected on the data path (e.g., the first data path) for transmitting the first packet.
[0215] In this way, when the intermediate node of the transmitted packet detects a fault, it can determine whether the currently detected fault is the first detected fault by judging whether the received packet is a fault packet, so that the intermediate node can execute a related strategy according to the number of times of detecting the fault, such as discarding the packet when the number of times of detecting the fault is greater than 1. The intermediate node refers to other nodes before the source node and the destination node in the plurality of nodes for transmitting the packet. For example, as shown in (a) of FIG. 6, nodes 10, 11, 12 and 8 are intermediate nodes of the first packet.
[0216] For marking the first packet as a fault packet, a plurality of implementation manners can be included, and the following two implementation manners are exemplarily introduced.
[0217] In the first implementation manner, the first packet can be marked as a fault packet by updating the first packet. Based on this, the packet transmission method can include the following S5.
[0218] S5: updating the first packet to obtain a third packet by the first source node. Wherein, the third packet includes a fault identifier, and the fault identifier is used to indicate the number of times of detecting the fault in the process of transmitting the first packet.
[0219] The first message can be referred to as an original message of the third message, and the third message can be referred to as an updated message of the first message.
[0220] In one example, the fault identifier is used to indicate that a fault has been detected in the process of transmitting the first message, that is, one fault has been detected. In another example, the fault identifier is used to indicate that S faults have been detected in the process of transmitting the first message, S being a positive integer greater than 1. That is, the fault identifier can be used to indicate that a fault has been detected, or to indicate the specific number of times a fault has been detected.
[0221] In this application, in combination with S5, step 505 can include: the first source node transmits the third message through at least one second data path. In this way, the intermediate node transmitting the first message can directly determine the number of times a fault has been detected in the process of transmitting the original message (i.e., the first message) of the third message according to the received third message, which helps to improve the efficiency of determining the number of faults.
[0222] In this implementation, the first message is marked as a fault message by updating the first message, which helps to improve the marking efficiency.
[0223] In the second implementation, the first message can be marked as a fault message through a message. Based on this, the message transmission method can further include the following S6.
[0224] S6: The first source node generates a first message. The first message is used to indicate the number of times a fault has been detected in the process of transmitting the first message.
[0225] The first message can be used to indicate that a fault has been detected, or to indicate the specific number of times a fault has been detected. Other descriptions of the first message can be referred to the description of the fault identifier, which will not be repeated here.
[0226] Based on this, on the basis of step S505, the message transmission method can further include: the source node of the first message transmits the first message to each node on at least one second data path. In this way, the intermediate node transmitting the first message can receive the first message, and then determine the number of times a fault has been detected in the process of transmitting the first message according to the second message.
[0227] It should be noted that other related descriptions of S6 can be referred to the description of S5 above, which will not be repeated here.
[0228] In this implementation, the first message is marked as a fault message through a message, which helps to ensure the accuracy of the first message.
[0229] In the present application, the first source node marks the first message as a fault message when detecting that there is a fault on the first data path, which is an optional way, that is, the first source node can also not mark the first message as a fault message. In this way, it helps to reduce the statistical number of detecting faults in the process of transmitting the first message, thereby helping to delay the implementation of the message discarding strategy, and further helping to improve the success rate of message transmission.
[0230] It should be noted that in the following, the first source node does not mark the first message as a fault message as an example to exemplarily illustrate the present application.
[0231] The above describes the scheme of transmitting a message when the source node of the first message is the target node, and next, in combination with FIG. 7 and FIG. 8, the scheme of transmitting a message when the node on the first data path is the target node is introduced.
[0232] It should be noted that in the following, only the differences between the two schemes are described in detail, and the same parts are not described in detail.
[0233] FIG. 7 is a flowchart of another message transmission method provided by the present application. Exemplarily, the method can include the following steps 701-705.
[0234] Exemplarily, the judgment result of step 502 is no, that is, after the first source node generates the first message, the first source node transmits the first message through the first data path. Based on this, the node on the first data path can receive the first message.
[0235] In the present application, the node on the first data path can be referred to as a first intermediate node. In the following, the first intermediate node as the target node is exemplarily introduced to steps 701-705.
[0236] In the following embodiments, the operations performed by the first intermediate node, such as steps 701-705, can be performed by the network card device on the first intermediate node. Exemplarily, the network card device of the first intermediate node can execute steps 701-705 by running a target routing algorithm.
[0237] Optionally, on the basis of steps 701-705, the message transmission method can further include the following S7. By setting that the message transmission method includes S7, the node receiving the message can execute the message transmission method provided by the present application in the case that the node is not the destination node.
[0238] S7: The first intermediate node judges whether the node is the destination node of the first message based on the received first message.
[0239] If the judgment result is yes, it is ended. If the judgment result is no, step 701 is executed.
[0240] In the present application, after the first source node generates the first message and determines that the first data path is used to transmit the first message, the first source node sends the first message to the node (i.e., the first intermediate node) on the first data path. The first message indicates the source node (i.e., the first source node) and the destination node (i.e., the first destination node) of the first message. After receiving the first message, the first intermediate node determines whether the node (i.e., the first intermediate node) is the destination node (i.e., the first destination node) of the first message.
[0241] For example, the first intermediate node can determine the node identifier of the first destination node by analyzing the first message, and determine whether the node identifier of the node and the node identifier of the first destination node are the same. If they are the same, the node is the first destination node. If they are not the same, the node is not the first destination node.
[0242] For example, as shown in (a) of FIG. 8, after receiving the first message sent by node 9, node 10 determines whether node 10 is the destination node of the first message. Since the destination node of the first message is node 4, the result of the determination is no.
[0243] It should be noted that S7 is an optional step. That is, after receiving the first message, the first intermediate node can directly execute step 701 without executing S7.
[0244] In this embodiment, the message transmission method message includes determining whether the node receiving the message is the destination node. In this way, the destination node can avoid executing the message transmission method provided by the present application after receiving the message, thereby helping to avoid occupying the processing resources of the destination node.
[0245] Step 701: The first intermediate node determines that the first data path is used to transmit the first message from a plurality of data paths.
[0246] In the present application, after receiving the first message, the first intermediate node can determine that the first data path is used to transmit the first message from the data paths between the source node and the destination node indicated by the first message (i.e., a plurality of fourth data paths), i.e., a plurality of fourth data paths between the first source node and the first destination node.
[0247] For example, as shown in (a) of FIG. 8, after receiving the first message sent by node 9, node 10 can determine that data path 1 is used to transmit the first message from a plurality of fourth data paths between node 9 (i.e., the first source node) and node 4 (i.e., the first destination node) of the first message.
[0248] Since each node on the torus topology network is based on the same routing algorithm to determine the data path for transmitting the packet, that is, the nodes on the first data path and the first source node are based on the same routing algorithm (such as a destination routing algorithm) to determine the data path for transmitting the first packet, therefore, the first intermediate node and the first source node determine the same first data path for transmitting the first packet.
[0249] It should be noted that the other related description of step 701 can refer to the description of step 501, which will not be repeated here.
[0250] Step 702: The first intermediate node determines whether there is a fault on the first data path.
[0251] If the result is no, step 703 is executed. If the result is yes, step 704 is executed.
[0252] It should be noted that the related description of step 702 can refer to the description of step 502, which will not be repeated here.
[0253] Step 703: The first intermediate node transmits the first packet through the first data path.
[0254] It should be noted that the related description of step 703 can refer to step 503, which will not be repeated here.
[0255] Step 704: The first intermediate node determines at least one second data path from a plurality of data paths.
[0256] In this application, step 704 includes a variety of implementation ways, which will be exemplarily described below by way A to way B.
[0257] Way A: Step 704 includes that the first intermediate node determines at least one second data path from a plurality of fourth data paths between the first source node and the first destination node.
[0258] In this application, when the first intermediate node detects that there is a fault on the first data path, it can determine at least one second data path from a plurality of fourth data paths between the source node and the destination node indicated by the first packet, and each fourth node on the second data path is the next hop node of the first intermediate node.
[0259] Exemplarily, as shown in (b) of FIG. 8, after node 10 detects that node 11 is a fault node, it can determine at least one of data path 2 and data path 5 from data path 2 to data path 5 between node 9 and node 4 as the second data path, wherein node 6 on data path 2 is the next hop node of node 10, and node 14 on data path 3 is the next hop node of node 10.
[0260] In this implementation, the second data path is selected from the plurality of fourth data paths between the first source node (i.e., the initial source node) and the first destination node, so that the logic for determining the second data path is the same as that for determining the first data path, which helps to reduce the complexity of the target routing algorithm.
[0261] Option B: Step 704 includes that the first intermediate node determines at least one second data path from the plurality of target data paths between the first intermediate node and the first destination node.
[0262] In this application, when the first intermediate node detects that there is a fault on the first data path, the first intermediate node is taken as a new source node, and at least one second data path from the new source node to the first destination node is determined.
[0263] For example, as shown in (b) of FIG. 8, node 10 is the first intermediate node, and node 10 detects that node 11 is a fault node. Then, node 10 is taken as a new source node of the first message, and at least one second data path from node 10 to node 4 is determined. For example, the data paths from node 10 to node 4 include data path 6, data path 7, and data path 8, wherein data path 6 includes node 6, node 7, and node 8, data path 7 includes node 14, node 15, and node 16, and data path 8 includes node 9, node 12, and node 8. Based on this, node 10 can determine data path 6, data path 7, and data path 8 as the second data path.
[0264] In this implementation, the first intermediate node is taken as a new source node, and the second data path is selected from the plurality of data paths between the new source node and the first destination node, which not only helps to reduce the hop count of the second data path, but also helps to increase the selection range of the second data path.
[0265] For example, as shown in (b) of FIG. 8, in the case that node 11 of data path 1 where node 10 is located is a fault node, if the second data path is selected from a plurality of data paths a between node 9 (i.e., the initial source node) and node 4, then the next hop node of node 10 can include node 6 and node 14, that is, node 10 can only select the second data path from the part of data paths a including node 6 and node 14 in the plurality of data paths a, so that node 10 can transmit the message to the selected data path a. If the second data path is selected from a plurality of data paths b between node 10 and node 4, then the next hop node of node 10 can include node 6, node 9, and node 14. As can be seen, by taking node 10 as a new source node and determining at least one second data path, the number of data paths to be selected is increased.
[0266] In the application, in the case that the first intermediate node screens the second data path by way B, the scheme of determining the second data path by the first source node and the first intermediate node is different, wherein the first source node is the first source node as the source node of the first message to determine the second data path, and the first intermediate node is the first intermediate node as the source node of the first message to determine the second data path. Hereinafter, by two implementation manners, the scheme of screening the second data path by the first intermediate node as the source node is exemplarily introduced.
[0267] The first implementation manner: on the basis of steps 701-705, the message transmission method can include the following S8, so that the first source node and the first intermediate node can realize screening the second data path by different schemes according to different judgment results.
[0268] S8: the first intermediate node judges whether the node is the source node of the first message.
[0269] If the judgment result is yes, the first scheme is executed. If the judgment result is no, the second scheme is executed.
[0270] The first scheme includes determining at least one second data path according to the source node of the first message and the destination node of the first message, that is, determining at least one second data path from the plurality of fourth data paths, that is, the scheme of way A. The second scheme includes determining at least one second data path according to the first intermediate node and the destination node of the first message, that is, determining at least one second data path from the plurality of target data paths between the first intermediate node and the destination node of the first message, that is, the scheme of way B.
[0271] In the application, after the first intermediate node receives the first message, it can also judge whether the node is the source node of the received first message. Since the first intermediate node is a node on the first data path, the first intermediate node is not the source node of the first message, and the judgment result of S8 is no.
[0272] Optionally, the first intermediate node can determine whether the local node is the source node of the first message according to the node identifier of the node and the node identifier of the source node indicated by the first message. If the node identifier of the node and the node identifier of the source node indicated by the first message are the same, the node is the source node of the first message, and the judgment result of S8 is yes. Otherwise, the node is not the source node of the first message, and the judgment result of S8 is no.
[0273] In the embodiment, when the target node (for example, the first source node) detects that there is a fault on the first data path, the target node continues to determine whether the node is the source node of the first message, and executes different logics according to different determination results. In this way, the target node can determine the second data path through different strategies according to different types of the node, thereby helping to improve the diversity of the message transmission method, and further helping to improve the reliability and stability of the message transmission method by configuring different strategies for different types of nodes.
[0274] Based on the first implementation manner, in an example, the step of "determining whether the node is the source node of the first message" can be executed only by the node receiving the first message. In this way, the steps of the message transmission method executed by the first source node are simplified, thereby improving the message transmission efficiency.
[0275] In another example, the message transmission method shown in FIG. 5 can also include the step of "determining whether the node is the source node of the first message". In this way, the steps of the message transmission method executed by different nodes (that is, the initial source node and the intermediate node) for transmitting the message are the same, thereby helping to simplify the logic of the target routing algorithm and reduce the complexity of the target routing algorithm.
[0276] The intermediate node refers to a node other than the initial source node and the destination node among the nodes for transmitting the message. For example, the first intermediate node on the first data path.
[0277] In the second implementation manner, when the first source node and the first intermediate node detect that there is a fault on the first data path, the second data path is determined based on the node as the source node. That is, at least one second data path is determined from the data path between the node and the first destination node.
[0278] Based on this, when the first source node detects the fault, the second data path is determined based on the first source node as the source node. When the first intermediate node detects the fault, the second data path is determined based on the first intermediate node as the source node.
[0279] In the implementation manner, the second data path is determined based on the node as the source node when the node is detected. This not only ensures that the initial source node and the intermediate node determine the second data path through different strategies, but also simplifies the steps of the message transmission method, thereby improving the message transmission efficiency.
[0280] Step 705: The first intermediate node transmits the second message through the at least one second data path.
[0281] In the present application, step 705 can include various implementation manners, which will be exemplarily described below through two implementation manners.
[0282] In the first implementation, in combination with the manner A in step 704, when performing step 705, the first intermediate node can directly transmit the first packet through the at least one second data path, that is, the first intermediate node does not update the source node of the first packet. In this way, the transmission efficiency is improved. For example, in combination with the manner A in step 704, as shown in (b) of FIG. 8, the node 10 can transmit the first packet to the node 14 and the node 6.
[0283] In the second implementation, in combination with the manner B in step 704, when performing step 705, the first intermediate node can update the source node of the first packet, and update the source node of the first packet to the first intermediate node, so that the subsequent intermediate node receiving the first packet can determine the data path according to the updated source node. In this way, the accuracy of the subsequent other intermediate node determining the data path is improved.
[0284] For updating the source node of the first packet, various implementations can be included, which are exemplarily introduced below through the manner A to the manner B.
[0285] The manner A updates the source node of the first packet by updating the first packet. Based on this, the packet transmission method can further include the following S9.
[0286] S9: The first intermediate node updates the first packet to obtain a second packet; the second packet indicates that the source node is the first intermediate node, and the second packet indicates that the destination node is the first destination node.
[0287] The first packet can be referred to as the original packet of the second packet, and the second packet can be referred to as the updated packet of the first packet.
[0288] In this application, when the first intermediate node determines that there is a fault on the first data path, the first packet can be updated to obtain the second packet. The second packet indicates that the source node is the first intermediate node, that is, the first intermediate node is the new source node, and the second packet indicates that the destination node is the destination node of the first packet, that is, the destination node does not change.
[0289] In this application, the difference between the first packet and the second packet includes that the source node indicated by the first packet is different from the source node indicated by the second packet. For example, as shown in (b) of FIG. 8, the source node indicated by the first packet is the node 9, and the source node indicated by the second packet is the node 10. It can be considered that the node 9 is the initial source node, and the node 10 is the new source node.
[0290] It should be noted that the data field in the first packet is the same as the data field in the second packet, that is, the data carried by the first packet is the same as the data carried by the second packet.
[0291] Optionally, the second packet includes a target identifier, and the target identifier is a node identifier of the first intermediate node. In this way, the second packet can indicate the first intermediate node as the new source node through the target identifier, which helps to ensure the accuracy of the new source node indicated by the second packet.
[0292] Optionally, the target identifier can include an internet protocol (IP) address, an identity document (ID), or a media access control (MAC) address. Indicating the first intermediate node through the IP address, the ID, the MAC address, or the like helps to improve the diversity of the manner in which the second packet indicates the source node.
[0293] Optionally, the packet header of the second packet includes the target identifier. In this way, the target identifier can be added to the packet header of the first packet to obtain the second packet, which can avoid changing the content of the data field of the first packet when updating the first packet, thereby helping to ensure that the data field of the second packet is the same as that of the first packet, and further helping to ensure the accuracy of the data content conveyed by the second packet.
[0294] Exemplarily, the packet header of the first packet can include the fields shown in Table 1.
[0295] Table 1
[0296] Among them, Flag, Class, Number are used to represent optional types (Type). “Flag” is used to represent an identifier, “Class” is used to represent a type, and “Number” is used to represent a numerical value. “Option length” is used to represent the length of the optional type, and “Option Data” is used to represent the data of the optional type. Exemplarily, the “Flag” field is 1 bit, the “Class” field is 2 bits, and the “Number” field is 5 bits. The “Option length” field is 8 bits. The length of the “Option Data” field is variable. The value of the “Class” field can include 0 or 2, wherein 0 is used to represent control, and 2 is used to represent For debugging and measurement.
[0297] Exemplarily, the first intermediate node can write the target identifier of the first intermediate node into the “Option Data” field of the first packet to obtain the second packet. The second packet indicates the first intermediate node as the source node through the target identifier stored in the “Option Data” field.
[0298] It should be noted that the present application does not limit the field in the second packet indicating that the first intermediate node is the source node, and the above is only an exemplary description.
[0299] In the above embodiment, after the first intermediate node detects that there is a fault on the first data path, the first packet is updated to obtain the second packet indicating that the first intermediate node is the new source node. In this way, after the intermediate node on the second data path receives the second packet, the intermediate node can determine the data path according to the new source node and the destination node indicated by the second packet, thereby helping to ensure that the data path determined by the node on the second data path is the same as the data path determined by the first intermediate node, and further helping to avoid message disordering when multiple messages are transmitted.
[0300] In the present application, in combination with S9, step 705 can include: the first intermediate node transmitting the second packet through at least the first second data path.
[0301] For example, as shown in (b) of FIG. 8, node 10 can transmit the second packet to node 6, node 9, and node 14 to transmit the second packet through data path 6, data path 7, and data path 8.
[0302] It should be noted that other related descriptions of step 705 can refer to the description of step 505, which will not be described here.
[0303] In combination with the embodiments shown in FIGS. 5 and 7, the first source node can be set as the target node. When the first source node detects that there is a fault on the first data path, the first source node can re-determine at least one second data path for transmitting the message. The node on the first data path can be set as the target node. When any node on the first data path detects that there is a fault on the first data path during the transmission of the first message, the node can re-determine at least one second data path for transmitting the message. Therefore, at any time when a fault is detected on the data path for transmitting the message, the data path for transmitting the message can be re-determined through the scheme of the present application. In this way, not only does it help to improve the range of nodes applicable to the scheme of the present application, but also helps to improve the success rate of message transmission.
[0304] Optionally, the second packet can include a fault identifier, and the fault identifier is used to indicate the number of times of detecting the fault during the transmission of the first packet.
[0305] When the number of times of detecting the fault is greater than or equal to 1, the second packet can be considered as a fault packet. One message being a fault packet can be used to indicate that a fault has been detected on the data path for transmitting the one message (or the original message for transmitting the one message). For example, the second packet being a fault packet can be used to indicate that a fault has been detected on the data path (i.e., the first data path) for transmitting the first packet (i.e., the original message of the second packet).
[0306] In the present application, the fault identifier can be recorded in the packet header. In this way, the accuracy of the data field of the first packet can be ensured, thereby ensuring the accuracy of the content conveyed by the first packet.
[0307] It should be noted that the description of the fault identifier can refer to the description of the fault identifier in S5, which will not be repeated here. In addition, the recording method of the fault identifier can refer to the recording method of the target identifier, which will not be repeated here.
[0308] In the above embodiment, the second packet can carry the fault identifier. In this way, after receiving the second packet, the other intermediate nodes can directly determine the number of times of detecting the fault according to the second packet, which not only helps to improve the efficiency of determining the number of times of detecting the fault, but also helps to provide the accuracy of the determined number of times of detecting the fault, so that when the other intermediate nodes detect the fault, they can accurately determine whether it is the first time to detect the fault, and then accurately determine whether to discard the second packet, thereby avoiding performing incorrect operations.
[0309] Method B, the source node of the first packet can be updated through a message. Based on this, the packet transmission method can include the following S10.
[0310] S10: The first intermediate node generates a target message, wherein the target message is used to indicate that the source node of the first packet is the first intermediate node.
[0311] Based on this, on the basis of step 705, the packet transmission method can include: the first intermediate node transmits the target message to each node on at least one second data path. In this way, the other intermediate nodes that transmit the first packet can determine that the source node of the first packet is the first intermediate node through the received target message, so as to determine the data path for transmitting the first packet according to the first intermediate node, that is, to determine the data path for transmitting the first packet from the data path between the first intermediate node and the first destination node.
[0312] Illustratively, the target message can also indicate that the destination node of the first packet is the first destination node. In this way, the other intermediate nodes can determine the source node and the destination node of the first packet through the target message at the same time, which helps to improve the convenience of determining the source node and the destination node, thereby helping to improve the convenience of determining the data path.
[0313] Optionally, the target message can also be used to indicate the number of times of detecting the fault in the process of transmitting the first packet. In this way, it not only helps to improve the diversity of the content indicated by the target message, but also helps to ensure the accuracy of the first packet.
[0314] It should be noted that other related descriptions of S10 can be referred to the descriptions of S9, S6, etc., which will not be repeated here.
[0315] In this implementation, the target message indicates the update source node of the first message, which helps to ensure the accuracy of the first message.
[0316] The above describes the scheme in which the source node of the first message (or the first intermediate node on the first data path) transmits the message as the target node. Next, in combination with FIG. 9, the scheme in which the node on the second data path transmits the message is introduced.
[0317] It should be noted that the following only describes the differences between the two schemes, and the same parts will not be repeated.
[0318] FIG. 9 is a flowchart of another message transmission method provided by the present application. The method may, for example, include steps 901-906.
[0319] In example 1, the result of step 502 is yes, that is, the first source node generates the first message and determines that the first data path is used to transmit the first message, and then detects that there is a fault on the first data path. On this basis, the first source node transmits the first message through at least one second data path. In combination with step 505, the second intermediate node can receive the first message transmitted by the first source node, or receive the third message transmitted by the first source node, or receive the first target information transmitted by the first source node, wherein the first target information includes the first message and the first message.
[0320] In example 2, the result of step 702 is yes, that is, the first intermediate node receives the first message and determines that the first data path is used to transmit the first message, and then detects that there is a fault on the first data path. On this basis, the first intermediate node transmits the first message through at least one second data path. In combination with step 705, the second intermediate node can receive the first message transmitted by the first intermediate node, or receive the second message transmitted by the first intermediate node, or receive the second target information transmitted by the first intermediate node, wherein the second target information includes the first message and the target message.
[0321] It should be noted that the following, the above example 2 and the second intermediate node receiving the second message are taken as examples to illustrate steps 901-906.
[0322] In the present application, the at least one second data path includes a target second data path. The target second data path can be any one of the at least one second data path.
[0323] The node on the second data path can be referred to as a second intermediate node (or a first node). The steps 901 to 906 are exemplarily introduced below by taking the second intermediate node on the target second data path as an example.
[0324] The second intermediate node determines the target second data path from the plurality of data paths for transmitting the second packet.
[0325] The second intermediate node judges whether there is a fault on the target second data path.
[0326] If the judgment result is no, the step 903 is performed. If the judgment result is yes, the step 904 or the step 905 is performed.
[0327] The second intermediate node transmits the second packet through the target second data path.
[0328] It should be noted that the related description of the steps 901 to 903 can refer to the description of the steps 501 to 503 and the steps 701 to 703, which will not be described herein.
[0329] Optionally, based on the judgment result of the step 902 being yes, the packet transmission method can include the following S11, so that it can be judged whether the detected fault is the first detected fault, thereby determining the target strategy to be executed, such as discarding the packet, re-determining the data path for transmitting the packet, and the like.
[0330] The second intermediate node judges whether the detected fault on the second data path is the first detected fault.
[0331] If the judgment result is no, the third strategy scheme is executed. If the judgment result is yes, the fourth strategy scheme is executed.
[0332] The third strategy scheme includes discarding the received packet, such as the scheme of the step 904. The fourth strategy scheme includes determining at least one data path for transmitting the received packet, such as the schemes of the steps 905 to 906.
[0333] In the present application, when the second intermediate node detects that there is a fault on the target second data path, it can be judged whether it is the first detected fault. If the judgment result is no, it means that at least one fault has been detected in the process of transmitting the packet, and the fault on the target second data path is not the first detected fault.
[0334] For example, the second intermediate node parses the received message to determine whether the received message includes the fault identifier or whether the received information includes the first message / target message, so as to determine whether the detected fault is the first time. If the received message includes the fault identifier or the received information includes the first message / target message, the determination result is no. Otherwise, if the received message does not include the fault identifier or the received information does not include the first message / target message, the determination result is yes.
[0335] In combination with the above-described example 1 and example 2, if the first message is received, the determination result is no. If the second message and the third message are received, the determination result is yes. If the first target information and the second target information are received, the determination result is yes.
[0336] In this embodiment, the message transmission method includes determining whether the fault detected by the current node is the first time, so that the message can be discarded when the fault is detected multiple times. In this way, not only the success rate of message transmission can be ensured, but also the occupation of too many data paths can be avoided to cause deadlock.
[0337] In this application, the message transmission method shown in FIG. 7 can also include the step of determining whether the detected fault is the first time. In this way, the steps of the message transmission method performed by different intermediate nodes (such as the first intermediate node and the second intermediate node) are the same, so as to help simplify the logic of the target routing algorithm and reduce the complexity of the target routing algorithm.
[0338] It can be understood that the first source node transmits the first message to the first intermediate node on the first data path under the condition that no fault is detected on the first data path. Therefore, the fault detected by the first intermediate node on the first data path is the first detected fault, that is, the determination result is yes, and based on this, the first intermediate node performs the scheme of determining at least one data path for transmitting the received message, that is, performs the scheme of steps 704-705.
[0339] Alternatively, based on the determination result of step 902 being no, the message transmission method can include the following S12, so that the number of times of detecting the fault can be determined, and the target strategy to be executed can be determined, such as discarding the message, re-determining the data path for transmitting the message, etc.
[0340] S12: The second intermediate node determines whether the number of times of detecting the fault is greater than or equal to a number threshold.
[0341] If the determination result is yes, the scheme of the third strategy is executed. If the determination result is no, the scheme of the fourth strategy is executed.
[0342] It should be noted that the specific value of the number threshold is not limited in the application, and can be set by the user according to the actual scene.
[0343] In this embodiment, whether to discard the packet is determined by detecting the number of faults, which not only helps to improve the diversity of the packet transmission method, but also helps to improve the flexibility of the packet transmission method, and further helps to improve the user experience.
[0344] It should be noted that other related descriptions of S11 can refer to the description of S10, which will not be repeated here.
[0345] Step 904: The second intermediate node discards the received second packet.
[0346] In this application, when the second intermediate node detects that there is a fault on the target second data path, the received second packet is discarded.
[0347] In this embodiment, when the node on the second data path detects the fault again, the received second packet can be discarded directly, which helps to reduce the number of data paths for continuing to transmit the first packet, thereby helping to avoid deadlock.
[0348] Step 905: The second intermediate node determines at least one third data path from the plurality of data paths.
[0349] Step 906: The second intermediate node transmits a third packet through the at least one third data path.
[0350] It should be noted that the related description of steps 905-906 can refer to steps 504-505, steps 704-705, which will not be repeated here.
[0351] In this embodiment, when the node on the second data path detects the fault again, at least one third data path for transmitting the packet can be determined according to the target routing information, which helps to increase the number of data paths for transmitting the second packet, thereby helping to improve the transmission success rate of the second packet.
[0352] In this application, the scheme for the node on the third data path to transmit the packet can refer to the scheme for the second intermediate node on the second data path to transmit the packet, which will not be repeated here.
[0353] The above mainly introduces the scheme provided by the present application from the method aspect. To achieve the above functions, the packet transmission device comprises hardware structure and / or software module corresponding to each function. Those skilled in the art should easily realize that the units and algorithm steps of each example described in combination with the embodiments disclosed in the present application can be realized in the form of hardware or the combination of hardware and computer software. Whether a certain function is realized in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. The skilled person can use different methods to realize the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.
[0354] The present application can divide the packet transmission device into functional modules according to the above method. For example, the packet transmission device can comprise functional modules corresponding to each function, or two or more functions can be integrated into one processing module. The above integrated module can be realized in the form of hardware or software functional module. It should be noted that the division of modules in the present application is illustrative, and is only a logical functional division. Actual implementation can have another division method.
[0355] For example, FIG. 10 shows a possible structure diagram of the packet transmission device (denoted as packet transmission device 1000) involved in the above embodiments. The actions performed by the packet transmission device 1000 are realized by the nodes of the torus topology network or by the nodes executing corresponding software. The torus topology network stores target routing information, which is used to indicate a plurality of data paths on the torus topology network. The packet transmission device 1000 can comprise a routing module 1001 and a transmission module 1002. The routing module 1001 is configured to determine a first data path from the plurality of data paths for transmitting a first packet. For example, S501 shown in FIG. 5 and S701 shown in FIG. 7. The routing module is further configured to determine at least one second data path from the plurality of data paths if there is a failure on the first data path. For example, S502 and S504 shown in FIG. 5 and S702 and S704 shown in FIG. 7. The transmission module is configured to transmit the first packet through the at least one second data path. For example, S505 shown in FIG. 5 and S705 shown in FIG. 7.
[0356] Optionally, the target node comprises a source node of the first packet, or the target node comprises a node on the first data path.
[0357] Optionally, if the target node is a node on the first data path, the routing module 1001 is configured to determine at least one second data path from a plurality of target data paths, wherein the plurality of target data paths comprise data paths between the target node and a destination node of the first packet.
[0358] Optionally, if the target node is a node on the first data path, the routing module 1001 is configured to determine at least one second data path from a plurality of fourth data paths, wherein the plurality of fourth data paths comprise data paths between a source node of the first packet and the destination node of the first packet.
[0359] Optionally, transmitting the first packet by the target node via the at least one second data path comprises: updating the first packet to obtain a second packet, wherein the source node indicated by the second packet is the target node, and the destination node indicated by the second packet is the destination node of the first packet; and transmitting the second packet via the at least one second data path.
[0360] Optionally, the second packet comprises a failure identifier, and the failure identifier is used to indicate a number of times of detecting a failure in the process of transmitting the first packet.
[0361] In another possible implementation, the routing module 1001 is configured to transmit a target message to a node of the at least one second data path, wherein the target message is used to indicate that the source node of the first packet is updated to the target node.
[0362] In another possible implementation, the target message is further used to indicate a number of times of detecting a failure in the process of transmitting the first packet.
[0363] Optionally, the at least one second data path comprises a target second data path, and the target second data path comprises the first node; and the routing module 1001 is further configured to discard the received packet if the target second data path has a failure.
[0364] Optionally, the failure of the first data path comprises at least one of a failure of a first port on the target node, a failure of a second port on the destination node of the first packet, a failure of a second node on the first data path, and a failure of a third node on the first data path, wherein the first port is connected to a node on the first data path, the second port is connected to a node on the first data path, the second node is a next-hop node of the target node, the third node is spaced apart from the target node by at least one node, and the at least one node is located on the first data path.
[0365] Optionally, the at least one second data path comprises a plurality of second data paths, and different second data paths in the plurality of second data paths do not have the same node.
[0366] Optionally, each of the at least one second data path comprises a fourth node, the fourth node being a next hop node of the target node, and the fourth node being a non-faulty node.
[0367] Optionally, the routing module 1001 is further configured to receive a target value, and the target value is used to determine the number of the at least one second data path.
[0368] Optionally, the target routing information indicates that there are M data paths between the target node and the destination node of the first packet, M being a positive integer greater than 1; and the routing module 1001 is specifically configured to determine K second data paths with the least number of hops from the M data paths, K being a positive integer less than or equal to the target value.
[0369] Optionally, the target routing information indicates that there are M data paths between the target node and the destination node of the first packet, M being a positive integer greater than 1; and the routing module 1001 is specifically configured to randomly determine K second data paths from the M data paths.
[0370] For specific descriptions of the above optional manners, refer to the foregoing method embodiments, which will not be described herein again. In addition, the foregoing explanations and beneficial effect descriptions of any one of the packet transmission apparatuses 1000 provided above can refer to the foregoing corresponding method embodiments, which will not be described herein again.
[0371] The present application also provides a computing device, which can include a processor, a memory, and a computer program / instruction stored on the memory; the processor executes the computer program to enable the computing device to implement the steps of the packet transmission method.
[0372] The present application also provides a node in a torus topology network, which can include a processor, a memory, and a computer program / instruction stored on the memory; the processor executes the computer program to enable the node to implement the steps of the packet transmission method.
[0373] The present application also provides a torus topology network, which can include a plurality of nodes, each of the plurality of nodes including a processor, a memory, and a computer program / instruction stored on the memory; the processor executes the computer program to enable the torus topology network to implement the steps of the packet transmission method.
[0374] The present application also provides a computer program product, which includes a computer program / instruction, the computer program / instruction being executed by a processor to implement the steps of the packet transmission method.
[0375] The present application also provides a computer readable storage medium, which stores a computer program / instruction, the computer program / instruction being executed by a processor to implement the steps of the packet transmission method.
[0376] In the above embodiments, all or part can be realized by software, hardware, firmware or any combination thereof. When realized by software, all or part can be realized in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed by a computer, all or part generates a process or function according to the present application.
[0377] The computer can be a general purpose computer, a special purpose computer, a computer network or other programmable devices. The computer instructions can be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, the computer instructions can be transmitted from one website site, computer, server or data center to another website site, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) mode. The computer readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. integrated with one or more available media. The available media can be magnetic media (such as floppy disk, magnetic disk, magnetic tape), optical media (such as digital video disc (DVD)), or semiconductor media (such as solid state drive (SSD)) and the like.
[0378] Through the description of the above embodiments, those skilled in the art can clearly understand that, for the convenience and brevity of description, only the above division of functional modules is taken as an example, and in actual application, the above functions can be completed by different functional modules according to needs, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. The specific working process of the system, device and unit described above can refer to the corresponding process in the foregoing method embodiments, which will not be repeated here.
[0379] In several embodiments provided in the present application, it should be understood that the disclosed methods, devices, etc. can be implemented by other ways. For example, the device embodiments described above are only schematic, for example, the division of the modules or units is only a logical function division, and actual implementation can have another division manner, for example, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the shown or discussed each other can be indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.
[0380] The units described as separate components may or may not be physically separate, and the components displayed as units may or may not be physical units, i.e. may be located in one place, or may be distributed on multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiment scheme.
[0381] In addition, each functional unit in each embodiment of the present application can be integrated in one processing unit, or each unit can be physically present alone, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software functional unit.
[0382] The integrated unit, if realized in the form of a software functional unit and sold or used as an independent product, can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the present application essentially or the part of the prior art that contributes to the technical solutions or all or part of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a plurality of instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: a flash memory, a mobile hard disk, a read-only memory, a random access memory, a magnetic disk or an optical disk, and various program code storage media.
[0383] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any changes or replacements within the technical scope disclosed in the present application should be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.
Claims
1. A message transmission method, characterized in that: The method is applied to a torus topology network, wherein the torus topology network includes a plurality of nodes, each of the plurality of nodes stores target routing information, and the target routing information is used to indicate a plurality of data paths on the torus topology network; the method includes: The destination node among the multiple nodes determines, from the multiple data paths, a first data path for transmitting the first message; If there is a fault on the first data path, the target node determines at least one second data path from the multiple data paths; The target node transmits the first message through the at least one second data path.
2. The method according to claim 1, characterized in that The target node includes a source node of the first message, or the target node includes a node on the first data path.
3. The method according to claim 2, characterized in that If the target node includes a node on the first data path, the target node determines at least one second data path from the plurality of data paths, including: The target node determines the at least one second data path from a plurality of target data paths; the plurality of target data paths include a data path between the target node and a destination node of the first message.
4. The method according to claim 3, characterized in that The target node transmitting the first message through the at least one second data path includes: The target node updates the first message to obtain a second message; the source node indicated by the second message is the target node, and the destination node indicated by the second message is the destination node of the first message; The target node transmits the second message through the at least one second data path.
5. The method according to any one of claims 1 to 4, characterized in that The at least one second data path includes a target second data path, the target second data path includes the first node; the method further includes: If the target second data path fails, the first node discards the received message.
6. The method according to any one of claims 1 to 5, characterized in that The failure of the first data path includes at least one of a failure of a first port on the target node, a failure of a second port on the destination node of the first message, a failure of a second node on the first data path, and a failure of a third node on the first data path; wherein, the first port is connected to a node on the first data path, the second port is connected to a node on the first data path, the first node is the next hop node of the target node, there is at least one node between the third node and the target node, and the at least one node is located on the first data path.
7. The method according to any one of claims 1 to 6, characterized in that The at least one second data path includes a plurality of second data paths, and different second data paths in the plurality of second data paths do not have the same node.
8. The method according to any one of claims 1 to 7, characterized in that Each second data path in the at least one second data path includes a fourth node, the fourth node is a next-hop node of the target node, and the fourth node is a non-faulty node.
9. The method according to any one of claims 1 to 7, characterized in that The method further comprises: The target node receives a target value; the target value is used to determine the quantity of the at least one second data path.
10. The method according to claim 9, characterized in that The target routing information indicates that there are M data paths between the target node and the destination node of the first message, where M is a positive integer greater than 1; The target node determines at least one second data path from the multiple data paths, including: The target node determines K second data paths with the least number of hops from the M data paths; K is a positive integer less than or equal to the target value; or The target node randomly determines K second data paths from the M data paths.
11. A message transmission device, characterized in that: Applicable to a ring topology network; the device includes: a routing module, configured to determine, from a plurality of data paths, a first data path for transmitting the first message; The routing module is further configured to determine at least one second data path from the plurality of data paths if a fault occurs on the first data path; A transmission module is configured to transmit the first message through the at least one second data path.
12. A computing device, characterized in that The computing device comprises a processor, a memory, and a computer program / instruction stored in the memory; the processor executes the computer program to enable the computing device to implement the steps of the method according to any one of claims 1 to 10.
13. A node in a torus topology network, characterized in that: The node includes a processor, a memory, and a computer program / instruction stored in the memory; the processor executes the computer program to enable the node to implement the steps of the method according to any one of claims 1 to 10.
14. A torus topology network, characterized in that: The torus topology network includes multiple nodes, each of the multiple nodes includes a processor, a memory, and a computer program / instructions stored on the memory; the processor executes the computer program so that the torus topology network implements the steps of the method as described in any one of claims 1-10.
15. A computer program product, characterized in that The method comprises a computer program / instruction, which, when executed by a processor, implements the steps of the method according to any one of claims 1 to 10.
16. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program / instruction, which, when executed by a processor, implements the steps of the method according to any one of claims 1 to 10.
Citation Information
Patent Citations
Non-isolated topologies in computing network environments
CN113541995A
Fault processing method, network equipment, storage medium and chip system
CN116980345A
Method to route packets in a distributed direct interconnect network
US20160344618A1
A storage array interconnection fabric using a torus topology
WO2002050683A2