Message transmission method, apparatus and device, and computer readable storage medium

By setting path information and load sharing during message transmission, the problem of low timeliness of transmission abnormality detection in the prior art is solved, and more efficient transmission performance and more uniform load sharing are achieved.

CN119835209APending Publication Date: 2025-04-15HUAWEI TECH CO LTD
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202311331888.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-10-14
Publication Date
2025-04-15

AI Technical Summary

Technical Problem

In the prior art, abnormal perception during message transmission is slow and detection is low, resulting in a lag in quality changes in the transmission path, affecting the packet transmission performance.

Method used

By setting path information in the message, load sharing is performed using multiple transmission paths, and path information is parsed at the receiving end to detect transmission exceptions, realizing timely abnormal detection and path updates.

Benefits of technology

It improves the timeliness and accuracy of transmission abnormality detection, reduces network congestion points, improves message transmission performance, and reduces the implementation complexity and resource cost on the end side.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119835209A_ABST
    Figure CN119835209A_ABST
Patent Text Reader

Abstract

The invention discloses a message transmission method, device and equipment and a computer readable storage medium, and belongs to the technical field of communication. The method comprises the following steps: acquiring a plurality of messages, wherein the plurality of messages comprise a first message; multiple transmission paths corresponding to the multiple messages are determined, path information is set in the multiple messages according to the multiple transmission paths, the path information in any message is used for indicating changes of paths for transmitting the multiple messages and / or the transmission path of any message, and the multiple transmission paths are used for load sharing of the multiple messages; and sending the plurality of messages after the path information is set. When the message is transmitted, the communication device performs path marking and path information setting on the message according to the plurality of transmission paths capable of transmitting the message so as to determine whether transmission abnormity exists or not according to the path information carried in the message, so that the transmission abnormity can be found in time in the process of transmitting the message.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a message transmission method, device, equipment and a computer-readable storage medium. Background Art

[0002] With the development of communication technology, there are more and more transmission paths for transmitting messages on the network.

[0003] In the related art, during the message transmission process, the message sending device will use probe messages or periodic statistics to periodically detect the operation of the transmission path to determine whether there is a transmission anomaly. The above method is slow to perceive anomalies during message transmission and has low detection timeliness. The transmission path selected based on the transmission detection result with low timeliness will lag behind the quality change of the transmission path, resulting in low message transmission performance. Summary of the invention

[0004] The present application provides a message transmission method, device, equipment and computer-readable storage medium to solve the problems existing in the related technologies. The technical solution is as follows:

[0005] In a first aspect, a message transmission method is provided, which is applied to a communication device, and the method includes: obtaining multiple messages, the multiple messages including a first message; determining multiple transmission paths corresponding to the multiple messages, and setting path information in the multiple messages according to the multiple transmission paths, the path information in any message is used to indicate the change of the path for transmitting the multiple messages and / or the transmission path of any message, and the multiple transmission paths are used to load share the multiple messages; and sending the multiple messages after setting the path information.

[0006] In the process of transmitting messages, the communication device will mark the message according to the multiple transmission paths that can transmit the message, set the path information, and determine whether there is a transmission anomaly according to the path information carried in the message, so that the transmission anomaly can be discovered in time during the transmission of the message. In addition, through the collaboration of the communication devices on the transmission path, the transmission detection task is shared, thereby reducing the implementation complexity and resource cost of the terminal side, the load is shared more evenly, effectively reducing network congestion points, and improving the transmission performance of the message.

[0007] In a possible implementation, the first message carries a first identifier, and the first identifier is used to determine the network location where path information needs to be set. After acquiring multiple messages, the method further includes: when the first identifier carried by the first message successfully matches the network location of the communication device, performing an operation of setting path information in the first message according to multiple transmission paths. Determining whether path information needs to be set for the first message based on the first identifier carried by the first message avoids setting path information for all acquired messages, thereby wasting resources.

[0008] In a possible implementation, the path information includes at least one of the number of paths and the path identifier, the number of paths indicating the total number of multiple transmission paths supporting load sharing of multiple messages in the network where the communication device is located, and the path identifier indicating the transmission path used to transmit the message carrying the path information. The path information carried in the message is not limited, and can be the number of paths or the path identifier, and whether the number of paths or the path identifier is carried in the message, it can be used for transmission detection, with high flexibility and wide versatility.

[0009] In a possible implementation, setting path information in multiple messages according to multiple transmission paths includes: when the initial value of the number of paths is carried in the first message, updating the value of the number of paths according to the initial value of the number of paths and the number of multiple transmission paths; or, when the initial value of the number of paths is not carried in the first message, adding the number of multiple transmission paths as the value of the number of paths in the first message. The communication device can add the number of paths in the first message, or update the value of the number of paths originally carried in the first message. The way to set the number of paths is diverse and flexible.

[0010] In a possible implementation, the initial value of the number of paths is determined based on the transmission paths connected between the communication device and the upstream device corresponding to the first message. The initial value of the number of paths reflects the number of transmission paths connected between the communication device and the upstream device, so that the communication device can determine the number of transmission paths connected to the upstream device based on the initial value of the number of paths, and then determine the number of transmission paths in the network where the communication device is located by combining the number of transmission paths connected to the upstream device and the number of transmission paths connected to the communication device, and the determined number of paths has high accuracy.

[0011] In a possible implementation, path information is set in multiple messages according to multiple transmission paths, including: determining a reference identifier of a transmission path used to transmit a first message, the reference identifier being used to distinguish different transmission paths among multiple transmission paths connected to a communication device; and setting a path identifier in the first message according to the reference identifier of the determined transmission path, the path identifier being used to distinguish different transmission paths among multiple transmission paths used to load share multiple messages in a network where the communication device is located. The path identifier can distinguish different transmission paths in the network where the communication device is located, and has a wider range of distinction compared to a reference identifier that can only distinguish different transmission paths connected to the communication device. The path identifier is determined based on the reference identifier, thereby achieving accurate indication of the transmission path.

[0012] In a possible implementation, setting a path identifier in a first message according to a reference identifier of a determined transmission path includes: when the first message carries an initial value of the path identifier, updating the value of the path identifier carried in the first message according to the initial value of the path identifier, the value of the reference identifier, and the number of multiple transmission paths; or, when the first message does not carry the initial value of the path identifier, adding the value of the reference identifier as the value of the path identifier to the first message. Regardless of whether the first message carries the initial value of the path identifier, the communication device can set the path identifier in the first message, and the setting process of the path identifier is highly flexible.

[0013] In a possible implementation, determining multiple transmission paths corresponding to multiple messages includes: detecting the path operation status of multiple transmission paths connected to the communication device; when the path operation status of any transmission path indicates that any transmission path fails, updating the multiple transmission paths according to the failed transmission path, and determining the multiple transmission paths corresponding to the multiple messages according to the updated multiple transmission paths. In the case of a transmission path failure, the communication device timely updates the information of the multiple connected transmission paths, and there is a difference in the path information set according to the updated transmission path information, so that transmission detection can be implemented according to the path information carried in the message.

[0014] In a possible implementation, the first message also carries a second identifier, and the second identifier is used to determine the load sharing method of the first message. Before sending multiple messages after setting the path information, it also includes: when the load sharing method indicated by the second identifier is packet-by-packet sharing, select a transmission path for transmitting each message from multiple transmission paths; or, when the load sharing method indicated by the second identifier is flow-by-flow sharing, select a transmission path for transmitting multiple messages from multiple transmission paths according to the flow information of multiple messages. Different load sharing methods are flexibly selected according to the second identifier, so that when the message has high latency requirements, multiple messages are transmitted in a flow-by-flow sharing manner, and when the message has low latency requirements, multiple messages are transmitted in a packet-by-packet sharing manner, thereby realizing flexible transmission of messages according to latency requirements.

[0015] In a possible implementation, the first message also carries an initial value of the number of paths and an initial value of the path identifier. After determining the multiple transmission paths corresponding to the multiple messages, it also includes: determining the transmission path for transmitting the first message according to the initial value of the number of paths carried in the first message, the initial value of the path identifier, and the first number of transmission paths connected to the communication device; and transmitting the second message obtained based on the first message through the determined transmission path. In addition to transmission detection, the initial value of the number of paths and the initial value of the path identifier carried in the first message can also be used to indicate the transmission path for transmitting the first message, which is highly flexible.

[0016] In a possible implementation, before transmitting the second message obtained based on the first message through the determined transmission path, the method further includes: updating the initial value of the number of paths and the initial value of the path identifier carried in the first message according to the first quantity to obtain the second message. Before transmitting the message, the value of the number of paths and the path identifier carried in the first message is also updated according to the first quantity, so that the downstream device determines the transmission path to which the downstream device is connected according to the updated number of paths and the path identifier.

[0017] In a possible implementation, the initial value of the number of paths and the initial value of the path identifier are determined according to the transmission path in the network where the communication device is located. The initial value of the number of paths and the initial value of the path identifier can be determined according to the transmission path in the network where the communication device is located, and the determination process is simple.

[0018] In a possible implementation, the path information in any message is used by a receiving device of multiple messages to determine whether there is a transmission anomaly in the multiple messages. By carrying the path information in the message, transmission anomaly detection can be achieved, and the detection process is simple.

[0019] In a second aspect, a message transmission method is provided, which is applied to a receiving device, and includes: receiving multiple messages sent by a communication device; parsing path information carried by each message, and determining whether multiple messages have transmission anomalies according to the path information. After receiving the message, the receiving device can determine whether a transmission anomaly occurs according to the path information in the message, and the detection process is simple and the detection timeliness is high.

[0020] In a possible implementation, the method further includes: in the case where there is a transmission anomaly in the multiple messages, sending a message retransmission instruction to a sending device of the multiple messages, the message retransmission instruction instructing the sending device to retransmit at least one of the multiple messages. In the case where a transmission anomaly is detected, message retransmission is triggered, and the impact of the transmission anomaly is reduced by timely retransmitting the message.

[0021] In a possible implementation, the path information includes at least one of the number of paths and the path identifier, and the path information carried by each message is parsed, and it is determined whether multiple messages have transmission anomalies according to the path information, including: parsing at least one of the number of paths and the path identifier carried by multiple messages to obtain the parsing results of the number of paths and / or the path identifier; when any of the parsing results of the number of paths and the path identifier indicates anomalies, it is determined that multiple messages have transmission anomalies. Regardless of whether the message carries the number of paths or the path identifier, it can be determined whether there is a transmission anomaly according to the parsing results, which is highly flexible.

[0022] In a possible implementation, parsing at least one of the number of paths and the path identifiers carried by multiple messages to obtain the parsing result of the number of paths and / or the path identifier includes: comparing the number of paths carried by the multiple messages; and when the number of paths carried by the multiple messages is different, determining that the parsing result of the number of paths indicates an abnormality. By comparing the number of paths carried by the multiple messages, transmission detection can be achieved, and the detection process is simple and efficient.

[0023] In a possible implementation, at least one of the number of paths and path identifiers carried by multiple messages is parsed to obtain the parsing result of the number of paths and / or the path identifier, including: updating the receiving information of the transmission path of the message according to the message sequence number and path identifier of the received message, the receiving information is used to count the messages received on the transmission path; when the receiving information of the transmission path indicates that there is packet loss of the message, determining that the parsing result of the path identifier indicates an abnormality. The statistics of the received information are implemented according to the path identifier, and then it can be determined whether there is packet loss of the message, and the packet loss detection is simple and the operation complexity is low.

[0024] In a possible implementation, when the received information of the transmission path indicates that a packet has been lost, before determining that the parsing result of the path identifier indicates an abnormality, it also includes: determining the first sequence number of the unreceived message in each transmission path according to the received information of each transmission path; determining the maximum message sequence number among the messages received by each transmission path according to the received information of each transmission path; and determining that the message corresponding to the first sequence number has been lost when the first sequence number is less than the maximum message sequence number corresponding to each transmission path. By comparing the first sequence number with the maximum message sequence number, the possibility that the message corresponding to the first sequence number is still being transmitted on the transmission path is excluded, thereby determining that the message corresponding to the first sequence number has been lost, and the packet loss detection accuracy is high.

[0025] In a possible implementation, the message retransmission instruction includes the message sequence number of the message that has been lost. The sending device can resend the message that has been lost according to the message sequence number included in the message retransmission instruction, thereby achieving accurate message retransmission and ensuring efficient use of transmission resources.

[0026] According to a third aspect, a message transmission device is provided, which is applied to a communication device, and the device includes: an acquisition module, used to acquire multiple messages, the multiple messages including a first message; a setting module, used to determine multiple transmission paths corresponding to the multiple messages, and set path information in the multiple messages according to the multiple transmission paths, the path information in any message is used to indicate the change of the path for transmitting the multiple messages and / or the transmission path of any message, and the multiple transmission paths are used to load share the multiple messages; a sending module, used to send the multiple messages after the path information is set.

[0027] In one possible implementation, the first message carries a first identifier, and the setting module is further used to execute an operation of setting path information in the first message according to multiple transmission paths when the first identifier carried by the first message successfully matches the network location of the communication device.

[0028] In one possible implementation, the path information includes at least one of a path number and a path identifier, wherein the path number indicates the total number of paths of multiple transmission paths that support load sharing of multiple messages in the network where the communication device is located, and the path identifier indicates the transmission path used to transmit the message carrying the path information.

[0029] In one possible implementation, a module is set to update the value of the number of paths according to the initial value of the number of paths and the number of multiple transmission paths when the first message carries the initial value of the number of paths; or, when the first message does not carry the initial value of the number of paths, add the number of multiple transmission paths as the value of the number of paths in the first message.

[0030] In a possible implementation manner, an initial value of the number of paths is determined according to a transmission path connected between the communication device and an upstream device corresponding to the first message.

[0031] In one possible implementation, a module is set to determine a reference identifier of a transmission path used to transmit a first message, the reference identifier being used to distinguish different transmission paths among a plurality of transmission paths connected to a communication device; a path identifier is set in the first message according to the determined reference identifier of the transmission path, the path identifier being used to distinguish different transmission paths among a plurality of transmission paths used to load share a plurality of messages in a network where the communication device is located.

[0032] In a possible implementation, a module is set to update the value of the path identifier carried in the first message according to the initial value of the path identifier, the value of the reference identifier, and the number of multiple transmission paths when the initial value of the path identifier is carried in the first message; or, when the initial value of the path identifier is not carried in the first message, add the value of the reference identifier as the value of the path identifier to the first message.

[0033] In one possible implementation, a module is set up to detect the path operation status of multiple transmission paths connected to a communication device; when the path operation status of any transmission path indicates that any transmission path has failed, the multiple transmission paths are updated according to the failed transmission path, and the multiple transmission paths corresponding to the multiple messages are determined according to the updated multiple transmission paths.

[0034] In a possible implementation, the first message also carries a second identifier, and the second identifier is used to determine the load sharing method of the first message. The setting module is also used to select a transmission path for transmitting each message from multiple transmission paths when the load sharing method indicated by the second identifier is packet-by-packet sharing; or, when the load sharing method indicated by the second identifier is flow-by-flow sharing, select a transmission path for transmitting multiple messages from multiple transmission paths according to the flow information of the multiple messages.

[0035] In a possible implementation, the first message also carries an initial value of the number of paths and an initial value of the path identifier, and the setting module is further used to determine a transmission path for transmitting the first message based on the initial value of the number of paths carried in the first message, the initial value of the path identifier, and the first number of transmission paths connected to the communication device; and transmit the second message obtained based on the first message through the determined transmission path.

[0036] In a possible implementation, the setting module is further configured to update an initial value of the number of paths and an initial value of the path identifier carried in the first message according to the first number to obtain a second message.

[0037] In a possible implementation manner, the initial value of the number of paths and the initial value of the path identifier are determined according to the transmission path in the network where the communication device is located.

[0038] In a possible implementation, the path information in any message is used by a receiving device of multiple messages to determine whether there is any transmission anomaly in the multiple messages.

[0039] In a fourth aspect, a message transmission device is provided, which is applied to a receiving device, and the device includes: a receiving module, which is used to receive multiple messages sent by a communication device; a detection module, which is used to parse path information carried by each message, and determine whether there are transmission anomalies in the multiple messages based on the path information.

[0040] In a possible implementation, the device further includes: a sending module, configured to send a message retransmission instruction to a sending device of the multiple messages when there is a transmission anomaly in the multiple messages, the message retransmission instruction instructing the sending device to retransmit at least one of the multiple messages.

[0041] In a possible implementation, the path information includes at least one of a path quantity and a path identifier, and the detection module is used to parse at least one of the path quantity and the path identifier carried by multiple messages to obtain a parsing result of the path quantity and / or the path identifier; when any one of the parsing results of the path quantity and the path identifier indicates an abnormality, it is determined that the multiple messages have a transmission abnormality.

[0042] In a possible implementation, the detection module is used to compare the number of paths carried by the multiple messages; when the number of paths carried by the multiple messages is different, determine that the parsing result of the number of paths indicates an abnormality.

[0043] In one possible implementation, the detection module is used to update the reception information of the transmission path of the message based on the message sequence number and path identifier of the received message, and the reception information is used to count the messages received on the transmission path; when the reception information of the transmission path indicates that there is packet loss, it is determined that the parsing result of the path identifier indicates an abnormality.

[0044] In a possible implementation, the detection module is further used to determine the first sequence number of the unreceived message in each transmission path according to the reception information of each transmission path; determine the maximum message sequence number in the messages received by each transmission path according to the reception information of each transmission path; and determine that the message corresponding to the first sequence number has been lost when the first sequence number is smaller than the maximum message sequence number corresponding to each transmission path.

[0045] In a possible implementation manner, the message retransmission instruction includes the message sequence number of the message that has been lost.

[0046] In a fifth aspect, a message transmission device is provided, which includes a processor, and the processor is used to load and execute at least one instruction so that the message transmission device executes the method in the first aspect or any possible implementation of the first aspect, or executes the method in the second aspect or any possible implementation of the second aspect.

[0047] In a possible implementation, the device includes a memory, which is coupled to a processor, and the memory stores at least one instruction.

[0048] In the sixth aspect, a message transmission system is provided, which includes a communication device and a receiving device, the communication device is used to execute the method in the first aspect or any possible implementation of the first aspect, and the receiving device is used to execute the method in the second aspect or any possible implementation of the second aspect.

[0049] In the seventh aspect, a computer-readable storage medium is provided, in which at least one instruction is stored, and the instruction is loaded and executed by a processor to implement the message transmission method in the first aspect or any possible implementation of the first aspect, or to implement the message transmission method in the second aspect or any possible implementation of the second aspect.

[0050] In the eighth aspect, a computer program (product) is provided, which includes a computer program / instructions, and the computer program / instructions are executed by a processor to enable a computer to implement the message transmission method in the first aspect or any possible implementation of the first aspect, or to implement the message transmission method in the second aspect or any possible implementation of the second aspect.

[0051] In a ninth aspect, a communication device is provided, the device comprising: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other through an internal connection path, the memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals, and when the processor executes the instructions stored in the memory, the processor executes the method in the first aspect or any possible implementation of the first aspect, or executes the method in the second aspect or any possible implementation of the second aspect.

[0052] Optionally, there are one or more processors and one or more memories.

[0053] Optionally, the memory may be integrated with the processor, or the memory may be provided separately from the processor.

[0054] In the specific implementation process, the memory can be a non-transitory memory, such as a read-only memory (ROM), which can be integrated with the processor on the same chip or can be set on different chips. This application does not limit the type of memory and the setting method of the memory and the processor.

[0055] In a tenth aspect, a chip is provided, comprising a processor for calling and executing program instructions or codes stored in a memory, so that a communication device equipped with the chip executes the methods in the above aspects.

[0056] In the eleventh aspect, another chip is provided, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected through an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute the methods in the above aspects.

[0057] It should be understood that the beneficial effects achieved by the technical solutions of the third to eleventh aspects of the present application and the corresponding possible implementation methods can be referred to the above-mentioned technical effects of the first aspect and its corresponding possible implementation methods or the second aspect and its corresponding possible implementation methods, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0058] Figure 1 A schematic diagram of an implementation environment provided for an embodiment of the present application;

[0059] Figure 2 A schematic diagram of a network topology structure provided in an embodiment of the present application;

[0060] Figure 3 A flowchart of a message transmission method provided in an embodiment of the present application;

[0061] Figure 4 A schematic diagram of another network topology structure provided in an embodiment of the present application;

[0062] Figure 5 A schematic diagram of another network topology structure provided in an embodiment of the present application;

[0063] Figure 6 A schematic diagram of message transmission provided in an embodiment of the present application;

[0064] Figure 7 A schematic diagram of carrying path information provided in an embodiment of the present application;

[0065] Figure 8 A schematic diagram of a transmission path failure provided in an embodiment of the present application;

[0066] Fig. 9 A schematic diagram of a message transmission process provided in an embodiment of the present application;

[0067] Fig.10 A schematic diagram of another network topology structure provided in an embodiment of the present application;

[0068] Fig.11 A schematic diagram of receiving information statistics of a transmission path provided in an embodiment of the present application;

[0069] Fig.12 A schematic diagram of a structure for receiving information provided in an embodiment of the present application;

[0070] Fig.13 A schematic diagram of the structure of a message transmission device provided in an embodiment of the present application;

[0071] Fig.14 A schematic diagram of the structure of another message transmission device provided in an embodiment of the present application;

[0072] Fig.15 A schematic diagram of the structure of a network device provided in an embodiment of the present application;

[0073] Fig.16 A schematic diagram of the structure of another network device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0074] The terms used in the implementation method of this application are only used to explain the specific embodiments of this application, and are not intended to limit this application. In order to make the purpose, technical solution and advantages of this application clearer, the implementation method of this application will be further described in detail below with reference to the accompanying drawings.

[0075] With the development of communication technology, communication devices can select different transmission paths to transmit multiple messages according to the path status of the transmission path, thereby achieving load sharing of multiple messages.

[0076] In the related art, the path status of each transmission path is detected by a sending device configured on the end side of the transmission path, so as to select the transmission path for transmitting the message according to the detected path status, thereby realizing multi-path load sharing. In the process of transmitting messages using the transmission path, the path quality of the transmission path is periodically measured by sending probe messages or periodically counting the transmission delay and the number of messages, and then determining whether there is a transmission anomaly in the message based on the measured path quality. The above-mentioned message transmission method has a slow perception of transmission anomalies and low detection timeliness.

[0077] The embodiment of the present application provides a message transmission method, which is used to set path information in the message during the message transmission process, so as to implement transmission anomaly detection according to the path information of the message. Figure 1 , which shows a schematic diagram of the implementation environment of the message transmission method provided in an embodiment of the present application, and the implementation environment includes a communication device 01 and a receiving device 02. Among them, multiple transmission paths for transmitting messages can be established between the communication device 01 and the receiving device 02 in a wired or wireless network, and the receiving device 02 can be a convergence point of multiple transmission paths, such as an endpoint of a tunnel, an endpoint of an overlay path, or a terminal of a message (for example, a destination end of a data stream), etc. Exemplarily, after the communication device 01 obtains the message to be transmitted, it sets the path information in the message, and sends the message with the path information set to the receiving device 02. The receiving device 02 parses the received message to determine whether there is a transmission abnormality in the message based on the path information in the message.

[0078] Figure 2 A schematic diagram of a network topology structure provided in an embodiment of the present application is provided. Figure 2 The network in the system includes the core layer, aggregation layer and access layer. The network nodes configured in the core layer are Figure 2 The network nodes configured at the aggregation layer are marked with C in Figure 2 A is used to identify the network nodes configured at the access layer. Figure 2 It is marked with T. Figure 2The number of the network node in is used to distinguish different network nodes in the same layer network. In one possible case, the communication device 01 can be Figure 2 The network node configured at the access layer may also be a network node configured at the aggregation layer, or a network node configured at the core layer, or an access node. Figure 2 The transmission path of the message may include multiple communication devices 01, such as Figure 2 The network nodes T0 and A1 in the dashed box 1 will both perform the operations involved in the communication device 01, that is, the communication device 01 can be Figure 2 Network nodes T0 and A1 in.

[0079] In addition, the communication device 01 and the receiving device 02 may be directly connected or indirectly connected. Figure 2 For example, the network node T0 in the dashed box 3 is used to connect Figure 2 The receiving device 02 in the communication device 01 is used to send the first message after setting the path information to the receiving device 02. In this case, the network node T0 as the communication device 01 and the receiving device 02 are directly connected through the transmission path. Figure 2 Taking the network node T0 in the dotted box 1 and the receiving device 02 connected to the network node T0 in the dotted box 3 as an example, in this case, the network node T0 as the communication device 01 and the receiving device 02 will also be indirectly connected through the network nodes of the aggregation layer and the core layer.

[0080] In one possible case, the communication device 01 and the receiving device 02 can be as follows Figure 1 and Figure 2 The configuration shown is in the same network, and can also be configured in different networks. For example, the communication device 01 is a sending device at the network end of the first data center (for example, the egress network device of the data center), and the receiving device 02 is a receiving device at the network source end of the second data center (for example, the ingress network device of the data center). The communication device 01 sends a message to the receiving device 02 to realize the cross-network transmission of the message. The embodiments of the present application do not limit the network where the communication device 01 and the receiving device 02 are located. For example, the communication device 01 and the receiving device 02 can be as follows Figure 2 The multi-stage switching network (Clos networking) configured in the data communication network (DCN) shown in the figure can also be configured in other DCN networks, or high performance computing (HPC) networks, cloud networks, campus networks and other different network scenarios.

[0081] In a possible implementation, the communication device 01 and the receiving device 02 may be any device with a message forwarding function. For example, the communication device 01 and the receiving device 02 may be terminal devices such as a desktop, a laptop or a smart phone, or may be a server, such as a central server, an edge server, or a local server in a local data center. The server may be a physical server or a cloud server that provides cloud computing services. Exemplarily, the communication device 01 and the receiving device 02 may also be forwarding devices such as a gateway, a router and a switch, or a network card configured in the above-mentioned devices.

[0082] The message transmission method provided in the embodiment of the present application can be applied to the above Figure 1 or Figure 2 In the implementation scenario shown in FIG. 1 , the method can be interactively executed by a communication device and a receiving device. The flowchart of the message transmission method is shown in FIG. Figure 3 As shown, including S301-S305.

[0083] S301: A communication device obtains a plurality of messages, wherein the plurality of messages include a first message.

[0084] Exemplarily, the communication device is a device configured on the message transmission path, and is used to send the message to the receiving device to achieve the transmission of the message. The communication device can be configured at the source end of the message transmission path. Figure 4 A schematic diagram of a network topology structure provided in an embodiment of the present application is provided. Figure 4 The sending device and the receiving device establish a transmission connection through Clos networking, then the communication device can be Figure 4 In addition, the communication device may be a forwarding device configured on the transmission path, such as Figure 4 Network nodes T0, S0 or C0, etc. Figure 4 In the figure, T refers to the top of rack (TOR) switch, S refers to the spine (SPINE), and C refers to the core (Core).

[0085] The embodiment of the present application does not limit the number of communication devices configured on the transmission path of the message, which can be one or more. In the case where the message is transmitted through multiple communication devices, each communication device will process the received message to achieve message transmission. Since the processing process of different numbers of communication devices is similar, the processing process of the communication device is described below by taking any one communication device as an example.

[0086] Regardless of where the communication device is configured, multiple messages that need to be forwarded can be obtained. Optionally, the communication device can receive multiple messages sent from other upstream devices. In the case where the communication device is a forwarding device, the other upstream devices are, for example, Figure 4In the case where the communication device is a sending device, the other upstream devices are, for example, forwarding devices that establish a communication connection with the sending device and are located in other data center networks.

[0087] In one possible case, the communication device may also generate multiple messages to be transmitted. Taking the communication device as a terminal as a sending device as an example, the communication device generates multiple business messages to be transmitted based on business operation, and the multiple business messages are used as multiple messages. In addition, the message types corresponding to the multiple messages may be the same, for example, the multiple messages are all game messages. The message types of the multiple messages may also be different, for example, the multiple messages include video messages, picture messages, and voice messages. Regardless of the method by which the multiple messages are obtained, the multiple messages include a first message, wherein the first message may be one of the multiple messages. In the following embodiments, the first message will be taken as an example to illustrate the process of setting the path information. Among them, the first before the first message is intended to distinguish the message currently being processed by the communication device, rather than to limit the order and importance of the message, that is, the first message can be any message to be transmitted.

[0088] S302, the communication device determines multiple transmission paths corresponding to multiple messages, and sets path information in the multiple messages according to the multiple transmission paths. The path information in any message is used to indicate the change of the path for transmitting the multiple messages and / or the transmission path of any message. The multiple transmission paths are used to load share the multiple messages.

[0089] Exemplarily, after the communication device obtains the message, it parses the destination address carried in the message and determines multiple transmission paths corresponding to the message according to the destination address. The multiple transmission paths corresponding to the message are transmission paths connected by the communication device that can send the message to the destination address. Figure 4 For example, the communication device is Figure 4In the network node T0, there are 8 multiple transmission paths corresponding to the message, namely T0-S0, T0-S1, ..., T0-S7. In some cases, the multiple transmission paths corresponding to the message are transmission paths included in an equal-cost multipath (ECMP) group, and the multiple transmission paths can be located in multiple ECMP groups or in one ECMP group. In addition, the multiple transmission paths can be all transmission paths included in an ECMP group or part of the transmission paths included in an ECMP group. For example, since the number of transmission paths included in the ECMP group is much larger than the number of messages to be transmitted, for example, the number of transmission paths is greater than the product of the number of messages multiplied by a coefficient threshold set based on experience, the communication device can divide the ECMP group into multiple subgroups according to the message flow, and one message flow corresponds to at least one subgroup, that is, the multiple messages included in the message flow are transmitted through the transmission path included in the subgroup. Exemplarily, the multiple transmission paths corresponding to the message may also be transmission paths included in an unequal cost multipath (UCMP) group or a trunk link, etc. The situation of the UCMP group is similar to that of the ECMP group, and the above description may be referred to, which will not be repeated here.

[0090] In a possible implementation, the destination addresses carried by multiple messages acquired by the communication device are the same, that is, the multiple messages need to be forwarded by the communication device to the same receiving device. Since the multiple transmission paths corresponding to the messages can all send the messages from the communication device to the receiving device, the communication device can use the multiple transmission paths corresponding to the messages to load-share the multiple messages, and then use different transmission paths to achieve the transmission of multiple messages.

[0091] After determining multiple transmission paths, the communication device can use the multiple transmission paths to transmit multiple messages. Before transmitting the message, the communication device will also determine whether it is necessary to set path information for the message. Exemplarily, the first message included in the multiple messages carries a first identifier, and the first identifier is used to determine the network location where path information needs to be set. In this case, the communication device can parse the first identifier carried by the first message, and when the first identifier carried by the first message successfully matches the network location of the communication device, the operation of setting the path information in the first message is performed.

[0092] In a possible implementation, the first identifier is carried by a message field (e.g., a control information (CTRL_INFO) field) of the first message, and the length of the field is Bit[N1:0], where N1 is an arbitrary positive integer. The communication device reads the value of the CTRL_INFO field, converts it into binary form, and determines the network location where the path information needs to be set according to the bit position where 1 in the binary form is located. Taking the value of the CTRL_INFO field as 0 as an example, the binary form is b'0000, where b indicates a bit. Since there is no bit position with a value of 1, it indicates that there is no need to set path information for the first message. Taking the value of the CTRL_INFO field as 1 as an example, the binary form is b'0001, indicating that the first-level network node needs to set path information for the first message. Taking the value of the CTRL_INFO field as 2 as an example, the binary form is b'0010, indicating that the second-level network node needs to set path information for the first message. Taking the value of the CTRL_INFO field as 3 as an example, the binary form is b'0011, indicating that both the first-level and second-level network nodes need to set path information for the first message. The first-level and second-level network nodes can be determined according to the layering of the transmission network, for example Figure 4 In the figure, the first-level network node is the network node T located at the access layer, and the second-level network node is the network node S located at the aggregation layer. In addition, the first identifier can determine the network position by the bit where 1 is located, or can determine the network position by the bit where other numbers are located, such as 0 or numbers included in other bases, which is not limited in the embodiments of the present application.

[0093] When the first identifier and the network location of the communication device match successfully, the communication device determines that path information needs to be set for the first message. Figure 4 In the network node T0 in the communication device, in this case, the communication device is located in the first-level network, and the network location and the first identifier match successfully, and the communication device thus determines that the match is successful. Optionally, the communication device can detect some of the multiple messages, and determine whether it is necessary to set path information for the message according to the detection results of the partial messages. For example, multiple messages belong to the same message flow. Since the same operation needs to be performed on the messages included in the same message flow, when the first identifier of any message indicates that path information needs to be set, the communication device thus determines that the operation of setting path information needs to be performed on all messages included in the message flow. Alternatively, the communication device can detect each message, and determine whether it is necessary to set path information for each message according to the detection results of each message. For example, there are messages that need to set path information among the multiple messages, and there are also messages that do not need to set path information and only need to be forwarded. The communication device can select the message that needs to set path information from the multiple messages according to the first identifier, thereby controlling the number of times the path information is set to improve efficiency.

[0094] In addition, when the communication device parses the first identifier in the message and successfully matches the first identifier and the network location, it will also update the first identifier carried in the message and adjust the value of the field in the first identifier and the network location of the communication device from 1 to 0. Figure 4 As shown, Figure 4 In the example, the value of the first identifier of the first message received by the communication device T0 is 3, and the binary form is b'0011. The communication device T0 thus determines that the path information of the first message needs to be set, and adjusts the 0th bit from 1 to 0, and the binary form is updated to b'0010, and the value of the first identifier becomes 2. Or, Figure 4 In the example, the value of the first identifier of the first message received by the communication device S0 is 2, which is b'0010 in binary form. The communication device S0 determines that the path information of the first message needs to be set, and adjusts the first bit from 1 to 0, which is updated to b'0000 in binary form, and the value of the first identifier becomes 0. By updating the value of the first identifier, it is ensured that the communication device at the same network position sets the path information for the message once, so as to avoid the communication device at the network position continuing to calculate the transmission path included in the network position when the message arrives at the network position again, for example Figure 4 The communication devices S8 and T8 in the communication path cause redundant calculation of the transmission path.

[0095] In addition to determining whether the path information needs to be set according to the first identifier carried in the first message, the communication device can also determine whether the path information needs to be set based on experience. Exemplarily, the network also includes a controller connected to the communication device. The controller selects the communication device that needs to set the path information based on the topological structure in the network and the network situation. The selected communication device determines the need to set the path information according to the instructions or configuration of the controller. For example, if the end-side resources are insufficient, or the SPINE position in the network has low traffic and no congestion, the controller is set at the location of the network node T to set the path information for the message. The above process of selecting a communication device in combination with the network situation can be determined by path negotiation. Among them, the process of path negotiation is similar to the message transmission process. It is also implemented by setting the path information in the message during the message transmission process. The difference is that the message transmitted during the path negotiation process is a link request message. For a detailed description, please refer to S302-S305, which will not be repeated here. Alternatively, it is determined based on experience that the communication devices on the transmission path of the message need to be configured with the function of setting the path information for the message. In addition, it is determined based on experience whether the communication device needs to set the path information, and it can also be implemented according to the network location where the communication device is located. For example, the communication device needs to set path information for the message at the specified position of the transmission path. The specified position can be set based on experience and topology, for example Figure 4 The first-level network or second-level network in, etc.

[0096] Regardless of the manner in which the communication device determines that path information needs to be set for a message, the path information can be set in the message according to multiple transmission paths after determining that path information needs to be set for the message. Exemplarily, the path information includes at least one of the number of paths and path identifiers. The number of paths indicates the total number of paths in the network where the communication device is located that supports multiple transmission paths for load sharing of multiple messages, that is, the total number of selectable transmission paths that the message may experience in the network. Figure 5 A schematic diagram of a network topology structure provided in an embodiment of the present application is provided. Figure 5 In the example, T0 and T1 are both communication devices for load sharing, and the transmission paths for load sharing in the network include T0-S0-C0, T0-S0-C8, T0-S1-C1, T0-S1-C9, ... T0-S7-C7, T0-S7-C15, T1-S0-C0, T1-S0-C8, T1-S1-C1, T1-S1-C9, ..., T1-S7-C7, T1-S7-C15. That is, the total number of transmission paths that a message may go through when it is transmitted from the first-level network node to the third-level network node is 32, and one or more transmission paths can be selected from the 32 transmission paths to transmit the message. In addition, the communication devices connected by different transmission paths may be different from or the same as those in the above examples. For example, two links are respectively connected between communication device 1, communication device 2, and communication device 3. Then, the link connected between communication device 1 and communication device 2 and the link connected between communication device 2 and communication device 3 can form four transmission paths. The communication devices connected by the four transmission paths are the same, namely, communication device 1, communication device 2, and communication device 3 in the above examples.

[0097] The embodiments of the present application do not limit the process of setting the number of paths in the first message. The communication device can add the number of paths in the first message. For example, when the first message does not carry the initial value of the number of paths, the number of multiple transmission paths is added as the value of the number of paths in the first message. Among them, the initial value of the number of paths indicates the value of the number of paths originally carried in the first message. The multiple transmission paths indicate the transmission paths connected by the communication device that can be used for load sharing transmission of the first message. Since the first message does not carry the initial value of the number of paths, that is, the first message does not perform load sharing records before reaching the communication device, but the communication device starts to count the number of transmission paths that can be used for load sharing in the network. The transmission path that the first message may pass through in the current network is the transmission path connected to the communication device. Therefore, the communication device can directly add the number of multiple transmission paths as the value of the number of paths in the first message.

[0098] Optionally, the communication device may also update the value of the number of paths originally carried in the first message, that is, the initial value of the number of paths, to achieve setting of the number of paths. For example, when the initial value of the number of paths is carried in the first message, the value of the number of paths is updated according to the initial value of the number of paths and the number of multiple transmission paths.

[0099] Exemplarily, when the sending device sends a first message to the communication device, the message header carries a sequence number (PSN) and the number of paths. After receiving the first message, the communication device can update the number of paths according to the number of connected transmission paths, thereby realizing the statistics of transmission paths for load sharing in the network. In one possible implementation, the initial value of the number of paths can be set based on experience, for example, the initial value is set to 1. Alternatively, the initial value of the number of paths is determined based on the transmission path connected between the communication device and the upstream device corresponding to the first message. Figure 5 Taking the network node T0 in as an example, the upstream device is a sending device, and the sending device is connected to different communication devices through multiple ports to improve the reliability and performance of the transmission network. In this case, there are two transmission paths connecting the sending device and the network node. The initial value of the number of paths added by the sending device in the first message before sending the first message is 2, or in other words, the sending device sets the path information in the first message, and the number of paths included in the path information is 2.

[0100] The above is a process in which the sending device sets the number of connected transmission paths to the initial value of the number of paths when the sending device is also used to count path information. In one possible case, the process of determining the initial value according to the transmission path connected between the communication device and the upstream device corresponding to the first message may also include setting the initial value to 1 when the transmission path is connected between the communication device and the upstream device. Figure 5 For example, although there are two transmission paths between the sending device and the network node T0, the sending device does not participate in the statistics of the path information. Therefore, the sending device sets the initial value of the number of paths to 1, that is, it only starts to calculate the number of transmission paths connected to the communication device. By setting the initial value of the number of paths, the network node that starts to set the path information is flexibly selected to achieve fine-grained statistics of different network layers of the transmission paths in the network. That is, the initial value of the number of paths carried by the first message is set by the upstream device, where the upstream device can be the sending device in the above embodiment, or it can be other communication devices, such as Figure 5 The communication device S0 needs to set path information for the received first message, and the initial value of the number of paths carried in the first message is obtained by the communication device T0 according to the transmission path setting of the connection.

[0101] Regardless of the method by which the initial value of the number of paths is determined, illustratively, the communication device can multiply the number of multiple transmission paths by the initial value, and the product obtained is the updated number of paths. The formula is, for example: pkt.path_num = pkt.path_num × path_group_size. Among them, pkt.path_num indicates the number of paths carried in the first message, path_group_size is the number of transmission paths connected to the communication device, that is, the number of transmission paths corresponding to the first message, and in the case where multiple transmission paths are transmission paths included in the ECMP group, path_group_size can also be called ecmp_group_size, that is, the number of current ECMP group members, wherein the current ECMP group can be one ECMP group or multiple ECMP groups, that is, the number of current ECMP group members can be the number of transmission paths included in one ECMP group, or can be the sum of the number of transmission paths included in multiple ECMP groups. The number of multiple transmission paths is multiplied by the initial value, and the product obtained is the number of combinations of multiple transmission paths. Taking the communication device as Figure 4 Taking network node S0 in FIG. 1 as an example, the number of paths for the first message received by the communication device is set by network node T0 to 8. Since the communication device is connected to two transmission paths, the two transmission paths connected to the communication device and the transmission path connected to network node T0 can be combined into 2×8=16 different transmission paths.

[0102] In one possible implementation, the communication device may set a path identifier in the first message, wherein the path identifier indicates a transmission path for transmitting a message carrying path information. Exemplarily, the process of the communication device setting the path identifier includes but is not limited to: determining a reference identifier of the transmission path for transmitting the first message; and setting the path identifier in the first message according to the reference identifier of the determined transmission path. The reference identifier is used to distinguish different transmission paths among multiple transmission paths connected to the communication device, and the path identifier is used to distinguish different transmission paths among multiple transmission paths for load sharing the streams to which multiple messages belong in the network where the communication device is located.

[0103] Optionally, the communication device also needs to select a transmission path for transmitting the first message before determining the reference identifier. The communication device can directly select the transmission path for transmitting the first message based on the path quality of each transmission path. The path quality is determined, for example, based on at least one information such as the link bandwidth, link load, or queue depth of the transmission path. The transmission path is selected to transmit the first message based on the path quality so that the transmission path with good path quality can share more message transmissions. Alternatively, the communication device can also randomly select a transmission path for transmitting the message from the connected transmission paths, or select a transmission path for transmitting the message using a round robin (RR) method. In addition, in the process of selecting the transmission path for the first message, the communication device can also refer to the load sharing method of the first message. For example, the first message also carries a second identifier, and the second identifier is used to determine the load sharing method of the first message. Then, the process of the communication device determining the transmission path includes: when the load sharing method indicated by the second identifier is packet-by-packet sharing, selecting a transmission path for transmitting each message from multiple transmission paths; or, when the load sharing method indicated by the second identifier is flow-by-flow sharing, selecting a transmission path for transmitting the message from multiple transmission paths according to the flow information of the message. When the second identifiers carried by multiple messages all indicate flow-by-flow sharing and the flow identifiers of the multiple messages are the same, the transmission paths of the multiple messages are the same, and when the second identifiers carried by multiple messages all indicate packet-by-packet sharing, the transmission paths of the multiple messages are likely to be different.

[0104] In a possible implementation, the load sharing mode (LB_MODE) field included in the first message is a second identifier, and the length is Bit[0]. In this case, when LB_MODE is 0, the indicated load sharing method is flow-by-flow sharing, and when LB_MODE is 1, the indicated load sharing method is packet-by-packet sharing. Alternatively, when LB_MODE is 1, the indicated load sharing method is flow-by-flow sharing, and when LB_MODE is 0, the indicated load sharing method is packet-by-packet sharing. The embodiment of the present application does not limit the correspondence between the value of the second identifier and the load sharing method. When the second identifier indicates packet-by-packet sharing, the process of the communication device selecting a transmission path can refer to the process of selecting a transmission path in the above embodiment. The transmission path for transmitting each message can be selected based on the path quality of multiple transmission paths, such as congestion level, load, etc., or it can be randomly selected. And the transmission paths of different messages can be the same or different. When the second identifier indicates flow-by-flow allocation, the communication device performs a hash calculation based on the five-tuple information of the message to obtain an exit path index (index), and determines a transmission path for transmitting the multiple messages based on the exit path index. The multiple messages transmitted are multiple messages corresponding to the flow-by-flow allocation, for example, multiple messages included in the message that needs flow-by-flow allocation. In addition, since the flow information carried by multiple messages is the same, the communication device can obtain the exit path index based on the hash calculation of the flow information of one message, and can also obtain the exit path index based on the hash calculation of the flow information of multiple messages to verify the exit path index. Since in the case of flow-by-flow allocation, the communication device can determine the transmission path based on the hash calculation, therefore, flow-by-flow allocation can also be referred to as flow-by-flow hash allocation in some cases. In addition, the flow information can be the five-tuple information in the above embodiment, or it can be two-tuple information or other information indicating the receiving device.

[0105] In addition, multiple messages can be allocated uniformly by packet, by flow, or by a combination of packet and flow. Figure 6 , Figure 6 The multiple messages include three messages, namely message 1, message 2 and message 3. Among them, message 2 has a higher requirement on delay. The second identifier carried by message 5 and message 6 included in message 2 indicates that the load sharing method is flow-by-flow sharing. In this case, the communication device selects the flow information included in message 2. Figure 6 The fourth transmission path from top to bottom transmits message 2 including messages 5 and 6, and transmits messages with high delay requirements through the same transmission path to avoid the transmission delay difference between different transmission paths causing the transmission delay of the message to become longer, thereby failing to meet the transmission requirements of the message. Figure 6The multiple messages also include messages with low delay requirements, such as messages 1 and 3. Then, messages 1-4 and 7-9 of message 1 and message 3 are allocated packet by packet and transmitted respectively through four transmission paths.

[0106] Regardless of the method by which the communication device selects the transmission path of the message, the path identifier can be set according to the selected transmission path to record the transmission path of the message. The communication device can add the path identifier to the first message. For example, when the initial value of the path identifier is not carried in the first message, the value of the reference identifier is added to the first message as the value of the path identifier. Figure 7 In FIG. 1 , the eight transmission paths connected to the communication device T0 are T0-S0, T0-S1, ..., T0-S7, and the reference identifiers are 0, 1, 2, ..., 7, respectively. The communication device can add the value of the reference identifier as the value of the path identifier in the first message. The result after adding is shown in FIG. Figure 7 , Figure 7 The 0 in indicates that the path ID is 0, and the 8 indicates that the number of paths is 8.

[0107] The communication device may also update the path identifier originally carried in the first message, for example, when the first message carries the initial value of the path identifier, the value of the path identifier carried in the first message is updated according to the initial value of the path identifier, the value of the reference identifier and the number of multiple transmission paths. The reference identifier is used to distinguish multiple transmission paths connected to the communication device, for example Figure 4 In the figure, the two transmission paths connected to the communication device S0 are S0-C0 and S0-C8, with reference numbers 0 and 1 respectively, and the two transmission paths connected to the communication device S1 are S1-C1 and S1-C9, with reference numbers 0 and 1 respectively.

[0108] Since the transmission paths connected to different communication devices may have the same reference identifier, it is necessary to determine the path identifier based on the reference identifier to distinguish the transmission paths connected to different communication devices, such as the transmission path S0-C0 and the transmission path S1-C1 in the above example. In one possible case, the communication device may multiply the initial value of the path identifier by the number of multiple transmission paths, add the product obtained by the multiplication and the reference identifier, and obtain the path identifier. The calculation formula is, for example, pkt.path_id=pkt.path_id*path_group_size+path_member_id. Among them, pkt.path_id is the path identifier carried by the first message, path_group_size indicates the number of transmission paths connected to the communication device, and path_member_id indicates the reference identifier of the transmission path. In the case where multiple transmission paths are transmission paths included in the ECMP group, path_member_id can also be understood as the sub-member index of the transmission path in the ECMP group.

[0109] Continue with Figure 4 For example, the initial value of the path identifier carried in the first message received by the communication devices S0 and S1 is shown in Figure 7 , equal to 0. In this case, the communication device S0 calculates the path identifier of S0-C0 as 0×2+0=0, and the communication device S1 calculates the path identifier of S1-C1 as 1×2+0=2. Through the above operation, different transmission paths in the network where the communication device is located are distinguished, so that the path identifier carried in the first message can indicate the transmission path used to transmit the first message. In addition, the communication device can also use other methods to determine the path identifiers of different transmission paths, for example, according to the network location of the communication device and the reference identifier sequence number of the transmission path, that is, Figure 4 In the example, the path of S0-C0 is identified as 0, the path of S0-C8 is identified as 1, the path of S1-C1 is identified as 2, and the path of S1-C9 is identified as 3.

[0110] In some embodiments of the present application, the communication device may select different ways to set the path information of the first message according to the path information carried in the first message. For example, in the case where the first message carries the initial value of the number of paths but does not carry the initial value of the path identifier, the communication device may update the value of the number of paths and then add the path identifier in the first message. Alternatively, in the case where the first message does not carry the initial value of the number of paths and the initial value of the path identifier, the communication device may use the above operations to add the path identifier and the number of paths respectively. In addition, the communication device may choose to set the number of paths and the path identifier in the first message, or may choose to set any one of them. The path information set in different first messages may be the same, such as both the number of paths or the path identifier, or may be different. For example, the first message A carries the number of paths and the path identifier, and the first message B carries the number of paths. The embodiments of the present application do not set this.

[0111] The embodiment of the present application also does not limit the position of the set path information in the message. A new message header can be added to the message to carry the path information, or the reserved field in the message can be used to implement the setting of the path information. For example, the path number (path_number, PATH_NUM) field carried in the message header sets the path number, and the path identity document (path_identity document, PATH_ID) field carried in the message header sets the path identifier. In addition, the field used to carry the path information in the message can be any bit length set according to the requirements, for example, the length of the field corresponding to the path number is Bit[N2:0], and the length of the field corresponding to the path identifier is Bit[N3:0], where N2 and N3 can be any positive integers, and N2 and N3 can be the same or different.

[0112] In some embodiments of the present application, path information is set in the first message so that a receiving device of multiple messages determines whether multiple messages have transmission anomalies according to the path information of any message. The principle that the path information can reflect the transmission anomaly is that the communication device detects the path operation status of multiple connected transmission paths; when the path operation status of any transmission path indicates that any transmission path fails, multiple transmission paths are updated according to the failed transmission path.

[0113] Figure 8 A schematic diagram of a transmission path failure provided in an embodiment of the present application is provided. Figure 8 In the example, the communication device is connected to four transmission paths, and the reference identifiers of the four transmission paths are 0, 1, 2, and 3 respectively. Figure 8In (1), the path states of the four transmission paths are all normal (OK), and the communication device determines that the number of the multiple transmission paths corresponding to the first message is 4, and sets the number of paths according to 4. Afterwards, the communication device detects the path operation status of the multiple transmission paths, and the detection results are shown in Figure 8 (2), there is a transmission path failure, that is, the transmission path with reference identifier 0, the path operation status is failure (fail), in this case, the communication device determines that the multiple transmission paths corresponding to the first message are 3, and subsequently sets the number of paths according to 3. That is, when the transmission path connected to the communication device fails, the number of paths carried in the first message will also change, and the subsequent receiving device can implement transmission anomaly detection according to the change in the number of paths.

[0114] Exemplarily, in the case where the path identifier needs to be set, the communication device may set the path identifier according to the number of updated transmission paths, such as setting the path identifier according to 3 in the above embodiment, or may set the path identifier according to the number of transmission paths before the update, such as setting the path identifier according to 4 in the above embodiment. In addition, when the communication device detects that a transmission path fails, the communication device no longer selects the failed transmission path as the exit for subsequent incoming messages.

[0115] S303, the communication device sends multiple messages after setting the path information.

[0116] Regardless of the method by which the communication device sets the path information of the message, the message with the set path information can be sent to the receiving device. Exemplarily, the communication device transmits multiple messages according to the determined transmission path to achieve load sharing. Fig. 9 As shown, when the transmission path of any message is the transmission path connecting S0-C8, the communication device S0 sends the message with the path information set to the communication device C8, so that the message is sent to the receiving device through the communication device C8.

[0117] The communication device that receives the message will continue to determine whether it is necessary to set path information for the message, and then continue to transmit the message. Fig. 9 As shown in the communication device C8, since the communication device C8 is located in the third-level network, and the value of the first identifier of the message is 0, the communication device C8 determines that there is no need to update the path information carried in the message, transmits the received message, and converts the message into Fig. 9 As shown, it is sent to the communication device S8.

[0118] The above is a process in which the communication device selects a transmission path to send a message. In a possible implementation, the communication device can also transmit a message according to the transmission path selected by the sending device, and the transmission path selected by the sending device is indicated by the initial value of the number of paths and the initial value of the path identifier. In this case, the communication device determines the transmission path for transmitting the first message according to the initial value of the number of paths carried in the first message, the initial value of the path identifier, and the first number of transmission paths connected to the communication device; and transmits the second message obtained based on the first message through the determined transmission path.

[0119] Exemplarily, the initial value of the number of paths and the initial value of the path identifier carried by the first message are determined according to the transmission path in the network where the communication device is located. The sending device or the controller determines the initial value of the number of paths and the path identifier according to the number of transmission paths in the current network and the selected transmission path, for example Fig.10 In the example, there are 16 transmission paths in the two-level network, and the sending device selects the third transmission path to transmit the first message, thereby setting the number of paths and the initial values ​​of the path identifier carried by the first message to 16 and 3, respectively. In addition, in the process of selecting the transmission path, the sending device or the controller can select the transmission path of each message according to the method of packet-by-packet allocation or flow-by-flow allocation as described in S302.

[0120] Regardless of the method by which the sending device selects the transmission path of the first message, and adds the path number and path identifier to the first message according to the selected transmission path, the first message carrying the path number and path identifier can be sent to the communication device, for example Fig.10 In the communication device T0, after receiving the first message, the communication device can calculate the parameter identifier of the transmission path according to the path identifier and the number of paths carried by the first message. The calculation formula is, for example, local_link_id=pkt.path_id / pkt.path_num*local_path_group_size. Among them, local_link_id is the reference identifier of the transmission path, pkt.path_id is the path identifier carried by the first message, pkt.path_num is the number of paths carried by the first message, and local_path_group_size is the number of transmission paths connected by the communication device. When the initial value of the number of paths is 16 and the initial value of the path identifier is 3, the reference identifier of the transmission path calculated by the communication device is 3 / 16×8=1, and the selected transmission path is Fig.10 The transmission path connecting T0-S1.

[0121] After determining the transmission path, the communication device can update the initial value of the number of paths and the initial value of the path identifier carried in the first message according to the first number to obtain the second message. The updating process is, for example, pkt.path_num = pkt.path_num / local_path_group_size, pkt.path_id = pkt.path_id% (pkt.path_num / local_path_group_size). By updating the number of paths and the path identifier, the communication device that receives the second message can continue to select a path according to the updated number of paths and the path identifier. Fig.10 For example, the updated number of paths is 2, and the path identifier is 1. The communication device T0 sends a second message carrying 2, 1 to the communication device S1. The communication device S1 performs a second route selection based on the number of paths and the path identifier carried by the second message, and calculates the reference identifier to be 1, that is, Fig.10 The transmission path connecting S1-C8 in the second message is updated, and the number of paths and the path identifier carried in the second message are updated to 1 and 0.

[0122] In the case where the communication device can detect the path operation status of the transmission path to determine whether there is a transmission path failure, since the first number indicates the number of transmission paths connected to the communication device, even if there is a transmission path failure in the transmission path connected to the communication device, the first number will not change. For example Figure 8 In (2), although there are 3 transmission paths in normal operation, the first number is still equal to 4. The communication device subsequently calculates the path and obtains the second message based on 4. In addition, the sending device can transmit all messages in the multiple messages in a designated transmission path manner, or can transmit some messages in the multiple messages in a designated transmission path manner, and continue with Figure 6 Taking the multiple messages shown as an example, message 3 among the multiple messages includes messages 7-9 which are transmitted according to the specified transmission path, while the messages included in messages 1 and 2 are transmitted in a manner in which the communication device selects a transmission path for load sharing and sets path information.

[0123] S304: The receiving device receives multiple messages sent by the communication device.

[0124] Exemplarily, the receiving device receives multiple messages sent by the upstream device, where the multiple messages are sent by the communication device. Fig. 9 As shown, the receiving device receives multiple messages sent by the upstream device T8, and the multiple messages are sent by the communication device T0.

[0125] S305, the receiving device parses the path information carried by each message, and determines whether there is any transmission anomaly in the multiple messages according to the path information.

[0126] In a possible implementation, the path information carried in the message includes at least one of the number of paths and the path identifier, and the process of the receiving device parsing the path information to determine whether there is a transmission abnormality includes: parsing at least one of the number of paths and the path identifier carried by multiple messages to obtain the parsing results of the number of paths and / or the path identifier; when any of the parsing results of the number of paths and the path identifier indicates an abnormality, it is determined that there is a transmission abnormality in the multiple messages. That is, the receiving device can flexibly choose to parse the number of paths or the path identifier, and no matter what kind of path information is parsed, it can determine whether there is a transmission abnormality based on the parsing result. The process of parsing the number of paths and the path identifier is described below.

[0127] Analysis method 1: compare the number of paths carried by multiple messages; when the number of paths carried by the multiple messages is different, determine that the analysis result of the number of paths indicates abnormality.

[0128] Exemplarily, the receiving device reads the number of paths carried by each message, and compares the numbers of paths carried by different messages to confirm whether they are the same, and then determines whether there is a transmission anomaly based on the comparison result. Since multiple messages are sent from the same communication device to the receiving device, the number of paths of the message is determined according to the number of transmission paths connected to the communication device, which also reflects the total number of transmission paths in the network where the communication device is located that support load sharing of multiple messages. Under normal circumstances, the number of paths carried by multiple messages should be the same, for example Figure 8 As shown in (1), the number of paths carried by multiple messages is 4. However, the number of paths carried by multiple messages is different, which means that there is a failure in the transmission path connected to the communication device during the process of setting the path information of the message, for example Figure 8 In (2), a transmission path failure occurs. In this case, the number of paths carried by the message becomes 3. The messages received by the receiving device include messages with a path number of 4 and messages with a path number of 3. The difference in the number of paths set by the same communication device indicates that there is a transmission path failure. The receiving device thus determines that the parsing result of the path number indicates an abnormality. In addition, the number of paths carried by the messages is different, which may refer to the number of paths carried by some messages being different, for example, the number of paths carried by message A is 3, and the number of paths carried by other messages is 4. It may also refer to the number of paths carried by all messages being different.

[0129] Parsing method two: based on the message sequence number and path identifier of the received message, update the receiving information of the message transmission path, and the receiving information is used to count the messages received on the transmission path; when the receiving information of the transmission path indicates that there is packet loss, determine that the parsing result of the path identifier indicates an abnormality.

[0130] In a possible implementation, the receiving device determines the transmission path for which the received information needs to be counted according to the path identifier carried by the message. For example, the path identifiers carried by the multiple messages received by the receiving device are 1, 2, 3, and 4, respectively. The receiving device thus determines that the received information of four transmission paths needs to be counted, namely, the received information of transmission path 1, the received information of transmission path 2, the received information of transmission path 3, and the received information of transmission path 4. The four transmission paths are, for example, Fig.11 shown.

[0131] The received information of the transmission path indicates the message transmitted by the transmission path. In a possible case, the received information can be counted through a bitmap pattern. Fig.12 shows a schematic diagram of a structure for receiving information, Fig.12 Taking the starting sequence as 10 as an example, the bitmap is shown. In this case, when the receiving device receives a message with a message number of 10, it determines the receiving information corresponding to the transmission path according to the path identifier carried by the message, and assigns the bit corresponding to the message number 10 in the received information to 1. In addition, the receiving device can assign the bit corresponding to the message number to 1 as in the above embodiment, and the bit not received is as follows: Fig.12 The hole value is 0. In some cases, the receiving device can also assign other values ​​to the bit, which is not limited in the embodiments of the present application. Regardless of the method by which the receiving device updates the corresponding bit of the bitmap according to the message sequence numbers of the received multiple messages to obtain the reception information of the transmission path, it can determine whether there is packet loss based on the reception information of each transmission path.

[0132] In one possible case, the process of the receiving device determining packet loss includes but is not limited to: determining the first sequence number of the message not received in each transmission path according to the reception information of each transmission path; determining the maximum message sequence number among the messages received by each transmission path according to the reception information of each transmission path; and determining that the message corresponding to the first sequence number has been lost when the first sequence number is less than the maximum message sequence number corresponding to each transmission path. The first sequence number is the sequence number corresponding to the hole value in the received information, for example Fig.12 11, 12 and 14 shown are all first serial numbers.

[0133] There are two possible reasons why the receiving device may not receive a message: one is that the message is still being transmitted on the transmission path, and the other is that the message is lost. Therefore, the receiving device needs to count the maximum message sequence number of each transmission path to determine whether the message is still being transmitted based on the maximum message sequence number. The maximum message sequence number of each transmission path can be determined based on the sequence number assigned to 1 in the received information, for example Fig.12The maximum message sequence number shown is 15. Exemplarily, the receiving device can determine the table size of the maximum message sequence number record of the transmission path, that is, (MaxPSN[Path_num]), according to the number of paths carried in the transmitted link establishment request message during the negotiation stage, and update the table entry according to the maximum message sequence number of each transmission path to achieve the statistics of the maximum message sequence number of each transmission path. Among them, the table entry can be less than or equal to the number of paths carried in the link establishment request message, that is, the maximum number of network paths.

[0134] The receiving device can count the maximum message sequence number and the first sequence number of the transmission path at different times. Fig.11 The first sequence numbers not received in the transmission paths are 6 and 7. When the maximum message sequence numbers of each transmission path are greater than 6 and 7, for example Fig.11 The last statistical reception information [8, 9, 11, 10] in this case, all four transmission paths have transmitted the messages after messages 6 and 7, which means that the possibility that messages 6 and 7 are still being transmitted is ruled out. The receiving device can determine that messages 6 and 7 are lost.

[0135] In addition, the receiving device can count the receiving information of each transmission path according to the path identifier, and can also determine the transmission path for which the receiving information needs to be counted by other means, for example, determine multiple connected transmission paths, and count the receiving information on each transmission path to determine whether there is packet loss based on the receiving information.

[0136] In a possible implementation, the receiving device may select parsing method 1 or parsing method 2 to parse the message according to the path information carried in the message. In the case where the message includes the number of paths and the path identifier, the receiving device may use parsing method 1 and parsing method 2 to obtain the parsing results of the number of paths and the path identifier, and determine that the transmission of multiple messages is abnormal if any of the parsing results is abnormal. In addition, the receiving device may also select any parsing method in parsing method 1 or parsing method 2 to obtain the parsing result, which is not limited in the embodiments of the present application.

[0137] Regardless of the method by which the receiving device determines that there are transmission anomalies in multiple messages, a message retransmission instruction can be sent to the sending device of the multiple messages when there are transmission anomalies in multiple messages, and the message retransmission instruction instructs the sending device to retransmit the multiple messages. According to the process of determining the transmission anomaly in the above embodiment, it can be known that the transmission anomaly determined according to the path identifier is packet loss. In this case, the lost message can be retransmitted by retransmitting the message, thereby reducing the impact of the message loss. The transmission anomaly determined according to the number of paths is a transmission path failure. In this case, the transmission path failure may also cause message loss. For example, if the communication device continues to transmit messages using the faulty transmission path, the messages transmitted on the faulty transmission path will also be lost. Therefore, the impact of the transmission path failure can also be reduced by retransmitting the message.

[0138] The embodiment of the present application does not limit the multiple messages that need to be retransmitted indicated by the message retransmission instruction, which can be all the messages currently transmitted, and the messages currently transmitted, for example, refer to the messages transmitted within the transmission period set based on experience. By retransmitting all messages when a transmission anomaly is detected, the triggering of fast retransmission is realized to reduce the impact of message packet loss. Alternatively, the sending device can also transmit part of the multiple messages, and the part of the message can be one message or multiple messages. Some messages can be messages corresponding to the transmission path where the fault occurs, or they can be all messages that have not arrived. For example, the receiving device carries the message sequence number of all the messages that have not arrived in the message retransmission instruction to instruct the receiving device to send all the messages that have not arrived. Among them, all the messages that have not arrived include messages that have lost packets and messages that are currently being transmitted and have not arrived. Some messages can also be messages that have lost packets. In one possible case, the message retransmission instruction can also include the message sequence number of the message that has lost packets. The message sequence number can be obtained by the second parsing method of S305 according to the path identifier and the received information statistics. By carrying the message sequence number of the message to be retransmitted in the message retransmission instruction, accurate message retransmission is achieved, and the sending device only needs to retransmit the lost message, effectively saving transmission resources and achieving efficient use of transmission resources.

[0139] In summary, the message transmission method provided by the embodiment of the present application, when transmitting a message, the communication device will mark the message according to the multiple transmission paths that can transmit the message, set the path information, and determine whether there is a transmission anomaly according to the path information carried in the message, so that the transmission anomaly can be discovered in time during the transmission of the message. In addition, through the collaboration of the communication devices on the transmission path, the transmission detection task is shared, thereby reducing the implementation complexity and resource cost of the end side, etc., the load is shared more evenly, effectively reducing the network congestion point, and improving the transmission performance of the message. After receiving the message, the receiving device can determine whether a transmission anomaly occurs according to the path information in the message, and trigger the message retransmission in the case of transmission anomaly. The timeliness of detecting transmission anomalies is high, and the message is retransmitted in time in the case of transmission anomalies to reduce the impact of packet loss. Even in the scenario of multi-path load sharing, selective retransmission can be achieved, the retransmission efficiency is improved, and lossy networks are supported.

[0140] The above introduces the message transmission method of the embodiment of the present application. Corresponding to the above method, the embodiment of the present application also provides a message transmission device. Fig.13 This is a schematic diagram of the structure of a message transmission device provided in an embodiment of the present application. Fig.13 As shown in the following multiple modules, the Fig.13 The message transmission device shown can perform the above Figure 3 It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown, and the embodiments of the present application are not limited to this. Fig.13 As shown, the device comprises:

[0141] An acquisition module 1301 is used to acquire multiple messages, where the multiple messages include a first message;

[0142] A setting module 1302, used to determine multiple transmission paths corresponding to multiple messages, and set path information in the multiple messages according to the multiple transmission paths, where the path information in any message is used to indicate a change in the path for transmitting the multiple messages and / or the transmission path of any message, and the multiple transmission paths are used to load share the multiple messages;

[0143] The sending module 1303 is used to send multiple messages after setting the path information.

[0144] In one possible implementation, the first message carries a first identifier, and the setting module 1302 is further used to execute an operation of setting path information in the first message according to multiple transmission paths when the first identifier carried by the first message successfully matches the network location of the communication device.

[0145] In one possible implementation, the path information includes at least one of a path number and a path identifier, wherein the path number indicates the total number of paths of multiple transmission paths that support load sharing of multiple messages in the network where the communication device is located, and the path identifier indicates the transmission path used to transmit the message carrying the path information.

[0146] In one possible implementation, module 1302 is set to update the value of the number of paths according to the initial value of the number of paths and the number of multiple transmission paths when the first message carries the initial value of the number of paths; or, when the first message does not carry the initial value of the number of paths, add the number of multiple transmission paths as the value of the number of paths in the first message.

[0147] In a possible implementation manner, an initial value of the number of paths is determined according to a transmission path connected between the communication device and an upstream device corresponding to the first message.

[0148] In one possible implementation, module 1302 is set to determine a reference identifier of a transmission path used to transmit a first message, where the reference identifier is used to distinguish different transmission paths among multiple transmission paths connected to a communication device; a path identifier is set in the first message according to the determined reference identifier of the transmission path, where the path identifier is used to distinguish different transmission paths among multiple transmission paths used to load share multiple messages in a network where the communication device is located.

[0149] In a possible implementation, module 1302 is set to update the value of the path identifier carried in the first message according to the initial value of the path identifier, the value of the reference identifier, and the number of multiple transmission paths when the initial value of the path identifier is carried in the first message; or, when the initial value of the path identifier is not carried in the first message, add the value of the reference identifier as the value of the path identifier to the first message.

[0150] In one possible implementation, a module 1302 is set to detect the path operation status of multiple transmission paths connected to the communication device; when the path operation status of any transmission path indicates that any transmission path has failed, the multiple transmission paths are updated according to the failed transmission path, and the multiple transmission paths corresponding to the multiple messages are determined according to the updated multiple transmission paths.

[0151] In one possible implementation, the first message also carries a second identifier, and the second identifier is used to determine the load sharing method of the first message. The setting module 1302 is also used to select a transmission path for transmitting each message from multiple transmission paths when the load sharing method indicated by the second identifier is packet-by-packet sharing; or, when the load sharing method indicated by the second identifier is flow-by-flow sharing, select a transmission path for transmitting multiple messages from multiple transmission paths according to the flow information of the multiple messages.

[0152] In one possible implementation, the first message also carries an initial value of the number of paths and an initial value of the path identifier, and the setting module 1302 is also used to determine a transmission path for transmitting the first message based on the initial value of the number of paths carried in the first message, the initial value of the path identifier, and the first number of transmission paths connected to the communication device; and transmit the second message obtained based on the first message through the determined transmission path.

[0153] In a possible implementation, the setting module 1302 is further configured to update an initial value of the number of paths and an initial value of the path identifier carried in the first message according to the first number, so as to obtain a second message.

[0154] In a possible implementation manner, the initial value of the number of paths and the initial value of the path identifier are determined according to the transmission path in the network where the communication device is located.

[0155] In a possible implementation, the path information in any message is used by a receiving device of multiple messages to determine whether there is any transmission anomaly in the multiple messages.

[0156] In the process of transmitting messages, the communication device will mark the message according to the multiple transmission paths that can transmit the message, set the path information, and determine whether there is a transmission anomaly according to the path information carried in the message, so that the transmission anomaly can be discovered in time during the message transmission process. In addition, through the coordination of the communication devices on the transmission path, the transmission detection task is shared, thereby reducing the implementation complexity and resource cost of the end side, the load is shared more evenly, effectively reducing network congestion points, and improving the transmission performance of the message.

[0157] The embodiment of the present application also provides another message transmission device. Fig.14 This is a schematic diagram of the structure of a message transmission device provided in an embodiment of the present application. Fig.14 As shown in the following multiple modules, the Fig.14 The message transmission device shown can perform the above Figure 3 It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown, and the embodiments of the present application are not limited to this. Fig.14 As shown, the device comprises:

[0158] The receiving module 1401 is used to receive multiple messages sent by the communication device;

[0159] The detection module 1402 is used to parse the path information carried by each message and determine whether there is any transmission anomaly in multiple messages according to the path information.

[0160] In a possible implementation, the device further includes: a sending module, configured to send a message retransmission instruction to a sending device of the multiple messages when there is a transmission anomaly in the multiple messages, the message retransmission instruction instructing the sending device to retransmit at least one of the multiple messages.

[0161] In a possible implementation, the path information includes at least one of a path quantity and a path identifier, and the detection module 1402 is used to parse at least one of the path quantities and path identifiers carried by multiple messages to obtain a parsing result of the path quantity and / or the path identifier; when any one of the parsing results of the path quantity and the path identifier indicates an abnormality, it is determined that the multiple messages have a transmission abnormality.

[0162] In a possible implementation, the detection module 1402 is configured to compare the numbers of paths carried by the multiple messages; and when the numbers of paths carried by the multiple messages are different, determine that the parsing result of the number of paths indicates an abnormality.

[0163] In one possible implementation, the detection module 1402 is used to update the reception information of the transmission path of the message according to the message sequence number and path identifier of the received message, and the reception information is used to count the messages received on the transmission path; when the reception information of the transmission path indicates that there is packet loss, it is determined that the parsing result of the path identifier indicates an abnormality.

[0164] In a possible implementation, the detection module 1402 is further used to determine the first sequence number of the unreceived message in each transmission path according to the reception information of each transmission path; determine the maximum message sequence number among the messages received by each transmission path according to the reception information of each transmission path; and determine that the message corresponding to the first sequence number is lost when the first sequence number is smaller than the maximum message sequence number corresponding to each transmission path.

[0165] In a possible implementation manner, the message retransmission instruction includes the message sequence number of the message that has been lost.

[0166] After receiving the message, the above device can determine whether a transmission anomaly occurs according to the path information in the message. The detection process is simple and the detection is highly timely.

[0167] It should be understood that the above Fig.13 or Fig.14 When the device provided realizes its functions, only the division of the above-mentioned functional modules is used as an example for illustration. In practical applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the device and method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process is detailed in the method embodiment, which will not be repeated here.

[0168] See also Fig.15 , Fig.15 A schematic diagram of the structure of a network device 1500 provided by an exemplary embodiment of the present application is shown. Fig.15 The network device 1500 shown is used to perform the above Figure 3 The operations involved in the message transmission method shown. The network device 1500 is, for example, a switch, a router, etc. The network device 1500 can be implemented by a general bus architecture.

[0169] like Fig.15 As shown, the network device 1500 includes at least one processor 1501 , a memory 1503 , and at least one communication interface 1504 .

[0170] Processor 1501 is, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), a neural-network processing units (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits for implementing the solution of the present application. For example, processor 1501 includes an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. It can implement or execute various logic blocks, modules, and circuits described in conjunction with the disclosure of the embodiments of the present application. The processor can also be a combination that implements a computing function, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.

[0171] Optionally, the network device 1500 further includes a bus. The bus is used to transmit information between the components of the network device 1500. The bus may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.15 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.

[0172] The memory 1503 is, for example, a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, or a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 1503 is, for example, independent and connected to the processor 1501 via a bus. The memory 1503 can also be integrated with the processor 1501.

[0173] The communication interface 1504 uses any transceiver-like device for communicating with other devices or communication networks, and the communication network can be Ethernet, a radio access network (RAN) or a wireless local area network (WLAN), etc. The communication interface 1504 may include a wired communication interface and may also include a wireless communication interface. Specifically, the communication interface 1004 may be an Ethernet interface, a fast Ethernet (FE) interface, a gigabit Ethernet (GE) interface, an asynchronous transfer mode (ATM) interface, a wireless local area network (WLAN) interface, a cellular network communication interface or a combination thereof. The Ethernet interface may be an optical interface, an electrical interface or a combination thereof. In an embodiment of the present application, the communication interface 1504 may be used for the network device 1500 to communicate with other devices.

[0174] In a specific implementation, as an embodiment, the processor 1501 may include one or more CPUs, such as Fig.15 0 and CPU1 shown in FIG. Each of these processors may be a single-CPU processor or a multi-CPU processor. A processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).

[0175] In a specific implementation, as an embodiment, the network device 1500 may include multiple processors, such as Fig.15 1501 and 1505 are shown in FIG. Each of these processors may be a single-core processor (single-CPU) or a multi-core processor (multi-CPU). A processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).

[0176] In a specific implementation, as an embodiment, the network device 1500 may also include an output device and an input device. The output device communicates with the processor 1501 and can display information in a variety of ways. For example, the output device may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device communicates with the processor 1001 and can receive user input in a variety of ways. For example, the input device may be a mouse, a keyboard, a touch screen device, or a sensor device.

[0177] In some embodiments, the memory 1503 is used to store the program code 1510 for executing the solution of the present application, and the processor 1501 can execute the program code 1510 stored in the memory 1503. That is, the network device 1500 can implement the message transmission method provided by the method embodiment through the processor 1501 and the program code 1510 in the memory 1503. The program code 1510 may include one or more software modules. Optionally, the processor 1501 itself can also store the program code or instruction for executing the solution of the present application.

[0178] In a specific embodiment, the network device 1500 of the embodiment of the present application may correspond to the computing device in the above-mentioned various method embodiments.

[0179] in, Figure 3 Each step of the message transmission method shown is completed by an integrated logic circuit of hardware or software instructions in the processor of the network device 1500. The steps of the method disclosed in conjunction with the embodiment of the present application can be directly embodied as a hardware processor, or a combination of hardware and software modules in the processor. The software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory, and the processor reads the information in the memory, and completes the steps of the above method in conjunction with its hardware. To avoid repetition, it is not described in detail here.

[0180] See also Fig.16 , Fig.16 FIG. 1 shows a schematic diagram of the structure of a network device 1600 provided by another exemplary embodiment of the present application. Fig.16 The network device 1600 shown is used to perform the above Figure 3 All or part of the operations involved in the message transmission method shown. The network device 1600 is, for example, a switch, a router, etc. The network device 1600 can be implemented by a general bus architecture.

[0181] like Fig.16 As shown, the network device 1600 includes: a main control board 1610 and an interface board 1630 .

[0182] The main control board is also called a main processing unit (MPU) or a route processor card. The main control board 1610 is used to control and manage various components in the network device 1600, including routing calculation, device management, device maintenance, and protocol processing functions. The main control board 1610 includes: a central processing unit 1611 and a memory 1612.

[0183] The interface board 1630 is also called a line processing unit (LPU), a line card (linecard) or a service board. The interface board 1630 is used to provide various service interfaces and realize the forwarding of data packets. The service interface includes but is not limited to an Ethernet interface, a POS (Packet over SONET / SDH) interface, etc., and the Ethernet interface is, for example, a Flexible Ethernet Service Interface (Flexible Ethernet Clients, FlexE Clients). The interface board 1630 includes: a central processing unit 1631, a network processor 1632, a forwarding table entry memory 1634 and a physical interface card (physical interface card, PIC) 1633.

[0184] The central processor 1631 on the interface board 1630 is used to control and manage the interface board 1630 and communicate with the central processor 1611 on the main control board 1610 .

[0185] The network processor 1632 is used to implement the forwarding processing of the message. The network processor 1632 can be in the form of a forwarding chip. The forwarding chip can be a network processor (NP). In some embodiments, the forwarding chip can be implemented by an application-specific integrated circuit (ASIC) or a field programmable gate array (FPGA). Specifically, the network processor 1632 is used to forward the received message based on the forwarding table stored in the forwarding table entry memory 1634. If the destination address of the message is the address of the network device 1600, the message is sent to the CPU (such as the central processor 1631) for processing; if the destination address of the message is not the address of the network device 1600, the next hop and the output interface corresponding to the destination address are found from the forwarding table according to the destination address, and the message is forwarded to the output interface corresponding to the destination address. Among them, the processing of the uplink message may include: processing of the message input interface, forwarding table search; the processing of the downlink message may include: forwarding table search, etc. In some embodiments, the central processor can also perform the function of the forwarding chip, such as implementing software forwarding based on a general-purpose CPU, so that the forwarding chip is not required in the interface board.

[0186] The physical interface card 1633 is used to implement the physical layer docking function, whereby the original traffic enters the interface board 1630, and the processed message is sent out from the physical interface card 1633. The physical interface card 1633, also called a daughter card, can be installed on the interface board 1630, and is responsible for converting the optical signal into a message and forwarding the message to the network processor 1632 for processing after checking the legitimacy of the message. In some embodiments, the central processor 1631 can also perform the functions of the network processor 1632, such as implementing software forwarding based on a general-purpose CPU, so that the network processor 1632 is not required in the physical interface card 1633.

[0187] Optionally, the network device 1600 includes a plurality of interface boards, for example, the network device 1600 further includes an interface board 1640, and the interface board 1640 includes: a central processor 1641, a network processor 1642, a forwarding table entry memory 1644, and a physical interface card 1643. The functions and implementation methods of the components in the interface board 1640 are the same or similar to those of the interface board 1630, and are not described in detail herein.

[0188] Optionally, the network device 1600 further includes a switching fabric board 1620. The switching fabric board 1620 may also be referred to as a switch fabric unit (SFU). When the network device 1600 has multiple interface boards, the switching fabric board 1620 is used to complete data exchange between the interface boards. For example, the interface board 1630 and the interface board 1640 may communicate through the switching fabric board 1620.

[0189] The main control board 1610 is coupled to the interface board. For example, the main control board 1610, the interface board 1630, the interface board 1640, and the switching network board 1620 are connected to the system backplane through the system bus to achieve intercommunication. In a possible implementation, an inter-process communication (IPC) channel is established between the main control board 1610 and the interface board 1630 and the interface board 1640, and the main control board 1610 and the interface board 1630 and the interface board 1640 communicate through the IPC channel.

[0190] Logically, the network device 1600 includes a control plane and a forwarding plane. The control plane includes a main control board 1610 and a central processing unit 1611. The forwarding plane includes various components for performing forwarding, such as a forwarding table entry memory 1634, a physical interface card 1633, and a network processor 1632. The control plane performs functions such as a router, generating a forwarding table, processing signaling and protocol messages, and configuring and maintaining the status of the network device. The control plane sends the generated forwarding table to the forwarding plane. On the forwarding plane, the network processor 1632 forwards the message received by the physical interface card 1633 based on the forwarding table sent by the control plane. The forwarding table sent by the control plane can be stored in the forwarding table entry memory 1634. In some embodiments, the control plane and the forwarding plane can be completely separated and not on the same network device.

[0191] It is worth noting that there may be one or more main control boards, and when there are multiple boards, they may include a primary main control board and a backup main control board. There may be one or more interface boards. The stronger the data processing capability of the network device, the more interface boards are provided. There may also be one or more physical interface cards on the interface board. There may be no switching network board, or there may be one or more switching network boards. When there are multiple switching network boards, they can jointly realize load sharing and redundant backup. In a centralized forwarding architecture, network devices may not need switching network boards, and the interface board is responsible for processing the service data of the entire system. In a distributed forwarding architecture, network devices may have at least one switching network board, and data exchange between multiple interface boards is realized through the switching network board, providing large-capacity data exchange and processing capabilities. Therefore, the data access and processing capabilities of network devices with distributed architectures are greater than those of network devices with centralized architectures. Optionally, the network device may have only one board, that is, no switching board, and the functions of the interface board and the main control board are integrated on the board. In this case, the central processor on the interface board and the central processor on the main control board can be combined into one central processor on the board to perform the functions of the two. This type of network device has low data exchange and processing capabilities (for example, low-end switches or routers and other network devices). The specific architecture to be adopted depends on the specific networking deployment scenario, and no limitation is made here.

[0192] In a specific embodiment, the network device 1600 corresponds to the above Fig.13 or Fig.14 In some embodiments, Fig.13 The setting module 1302 in the message transmission device shown is equivalent to the central processor 1611 or the network processor 1632 in the network device 1600.

[0193] The embodiment of the present application also provides a communication device, which includes: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other through an internal connection path, the memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals, and when the processor executes the instructions stored in the memory, the processor executes the message transmission method.

[0194] It should be understood that the processor may be a CPU, or other general-purpose processors, DSPs, ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor supporting an advanced RISC machines (ARM) architecture.

[0195] Further, in an optional embodiment, the memory may include a read-only memory and a random access memory, and provide instructions and data to the processor. The memory may also include a non-volatile random access memory. For example, the memory may also store information about the device type.

[0196] The memory may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memory. Among them, the nonvolatile memory may be a ROM, a programmable read-only memory (programmable ROM, PROM), an erasable programmable read-only memory (erasable PROM, EPROM), an EEPROM or a flash memory. The volatile memory may be a RAM, which is used as an external cache. By way of example but not limitation, many forms of RAM are available. For example, static random access memory (static RAM, SRAM), dynamic random access memory (dynamic random access memory, DRAM), synchronous dynamic random access memory (synchronous DRAM, SDRAM), double data rate synchronous dynamic random access memory (doubledata rate SDRAM, DDR SDRAM), enhanced synchronous dynamic random access memory (enhanced SDRAM, ESDRAM), synchronous connection dynamic random access memory (synchlink DRAM, SLDRAM) and direct memory bus random access memory (direct rambus RAM, DR RAM).

[0197] The embodiment of the present application also provides a message transmission device, the device includes a processor, the processor is used to load and run at least one instruction, so that the message transmission device implements the message transmission method provided in the embodiment of the present application. Optionally, the device also includes a memory, the memory is coupled to the processor, and the memory is used to store at least one instruction.

[0198] An embodiment of the present application also provides a message transmission system, which includes a communication device and a receiving device, and the communication device and the receiving device are used to interactively execute the message transmission method provided in the embodiment of the present application.

[0199] An embodiment of the present application also provides a computer-readable storage medium, in which at least one instruction is stored. The instruction is loaded and executed by a processor so that a computer implements any of the message transmission methods described above.

[0200] The embodiments of the present application also provide a computer program (product), which, when executed by a computer, can enable a processor or a computer to execute the corresponding steps and / or processes in the above method embodiments.

[0201] An embodiment of the present application also provides a chip, which includes a processor for calling and executing instructions stored in a memory from the memory, so that a communication device equipped with the chip executes any of the message transmission methods described above.

[0202] An embodiment of the present application also provides another chip, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected via an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute any of the message transmission methods described above.

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

[0204] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.) and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions. For example, the first message involved in this application is obtained with full authorization.

[0205] Those of ordinary skill in the art will appreciate that, in conjunction with the various method steps and modules described in the embodiments disclosed herein, they can be implemented in software, hardware, firmware, or any combination thereof. In order to clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those of ordinary skill in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0206] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.

[0207] When software is used for implementation, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer program instructions. As an example, the method of the embodiment of the present application can be described in the context of a machine executable instruction, and the machine executable instruction is such as included in the program module executed in the device on the real or virtual processor of the target. Generally speaking, a program module includes a routine, a program, a library, an object, a class, a component, a data structure, etc., which performs a specific task or realizes a specific abstract data structure. In various embodiments, the function of the program module can be merged or divided between the described program modules. The machine executable instruction for the program module can be executed in a local or distributed device. In a distributed device, the program module can be located in both a local and a remote storage medium.

[0208] The computer program code for implementing the method of the embodiment of the present application can be written in one or more programming languages. These computer program codes can be provided to the processor of a general-purpose computer, a special-purpose computer or other programmable message transmission device, so that the program code, when executed by the computer or other programmable message transmission device, causes the function / operation specified in the flow chart and / or block diagram to be implemented. The program code can be executed completely on a computer, partially on a computer, as an independent software package, partially on a computer and partially on a remote computer or completely on a remote computer or server.

[0209] In the context of the embodiments of the present application, computer program codes or related data may be carried by any appropriate carrier to enable a device, apparatus or processor to perform the various processes and operations described above. Examples of carriers include signals, computer readable media, and the like.

[0210] Examples of signals may include electrical, optical, radio, acoustic or other forms of propagated signals, such as carrier waves, infrared signals, etc.

[0211] A machine-readable medium may be any tangible medium that contains or stores a program for or related to an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination thereof. More detailed examples of machine-readable storage media include an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical storage device, a magnetic storage device, or any suitable combination thereof.

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

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

[0214] The modules described as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical modules, that is, they may be located in one place or distributed on multiple network modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the embodiments of the present application.

[0215] In addition, each functional module in each embodiment of the present application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module. The above integrated modules can be implemented in the form of hardware or software functional modules.

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

[0217] In the present application, the terms "first", "second", etc. are used to distinguish between identical or similar items having substantially the same effects and functions. It should be understood that there is no logical or temporal dependency between "first", "second", and "nth", nor is there a limitation on quantity and execution order. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of the various described examples, a first image may be referred to as a second image, and similarly, a second image may be referred to as a first image. Both the first image and the second image may be images, and in some cases, may be separate and different images.

[0218] It should also be understood that in the various embodiments of the present application, the size of the serial number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0219] The term "at least one" in this application means one or more, and the term "multiple" in this application means two or more, for example, multiple second messages means two or more second messages. The terms "system" and "network" are often used interchangeably herein.

[0220] It should be understood that the terms used in the description of the various examples herein are only for describing specific examples and are not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.

[0221] It should also be understood that the term "and / or" used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. The term "and / or" is a description of the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this application generally indicates that the associated objects before and after are in an "or" relationship.

[0222] It should also be understood that the term “comprise” (also known as “includes,” “including,” “comprises” and / or “comprising”) when used in this specification specifies the presence of stated features, integers, steps, operations, elements, and / or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0223] It should also be understood that the terms "if" and "if" may be interpreted to mean "when" or "upon" or "in response to determining" or "in response to detecting." Similarly, the phrases "if it is determined that ..." or "if [a stated condition or event] is detected" may be interpreted to mean "upon determining that ..." or "in response to determining that ..." or "upon detecting [a stated condition or event]" or "in response to detecting [a stated condition or event]," depending on the context.

[0224] It should be understood that determining B based on A does not mean determining B only based on A. B can also be determined based on A and / or other information.

[0225] It should also be understood that the references to "one embodiment", "an embodiment", or "a possible implementation" throughout the specification mean that specific features, structures, or characteristics related to the embodiment or implementation are included in at least one embodiment of the present application. Therefore, the references to "in one embodiment" or "in an embodiment", or "a possible implementation" throughout the specification do not necessarily refer to the same embodiment. In addition, these specific features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

Claims

1. A message transmission method, characterized in that: The method is applied to a communication device, and the method comprises: Acquire multiple messages, where the multiple messages include a first message; Determine multiple transmission paths corresponding to the multiple messages, set path information in the multiple messages according to the multiple transmission paths, the path information in any message is used to indicate a change in a path for transmitting the multiple messages and / or a transmission path of any message, and the multiple transmission paths are used to load share the multiple messages; The multiple messages after the path information is set are sent.

2. The method according to claim 1, characterized in that The first message carries a first identifier, and the first identifier is used to determine a network location where path information needs to be set. After acquiring the multiple messages, the method further includes: In a case where the first identifier carried in the first message successfully matches the network location of the communication device, an operation of setting path information in the first message according to the multiple transmission paths is performed.

3. The method according to claim 1 or 2, characterized in that: The path information includes at least one of a path quantity and a path identifier, wherein the path quantity indicates the total number of paths of multiple transmission paths in the network where the communication device is located that support load sharing of the multiple messages, and the path identifier indicates the transmission path used to transmit the message carrying the path information.

4. The method according to claim 3, characterized in that The setting path information in the plurality of messages according to the plurality of transmission paths includes: In a case where the first message carries an initial value of the number of paths, updating the value of the number of paths according to the initial value of the number of paths and the number of the plurality of transmission paths; Alternatively, when the first message does not carry the initial value of the number of paths, the number of the plurality of transmission paths is added to the first message as the value of the number of paths.

5. The method according to claim 4, characterized in that The initial value of the number of paths is determined according to a transmission path connected between the communication device and an upstream device corresponding to the first message.

6. The method according to any one of claims 3 to 5, characterized in that: The setting path information in the plurality of messages according to the plurality of transmission paths includes: Determine a reference identifier of a transmission path used to transmit the first message, wherein the reference identifier is used to distinguish different transmission paths among a plurality of transmission paths connected to the communication device; The path identifier is set in the first message according to the reference identifier of the determined transmission path, and the path identifier is used to distinguish different transmission paths among multiple transmission paths used for load sharing the multiple messages in the network where the communication device is located.

7. The method according to claim 6, characterized in that The step of setting the path identifier in the first message according to the determined reference identifier of the transmission path includes: In a case where the first message carries an initial value of the path identifier, updating the value of the path identifier carried in the first message according to the initial value of the path identifier, the value of the reference identifier, and the number of the multiple transmission paths; Alternatively, when the first message does not carry the initial value of the path identifier, the value of the reference identifier is added to the first message as the value of the path identifier.

8. The method according to any one of claims 1 to 7, characterized in that: The determining of the multiple transmission paths corresponding to the multiple messages includes: detecting path operation conditions of a plurality of transmission paths connected to the communication device; When the path operation status of any transmission path indicates that the any transmission path is faulty, the multiple transmission paths are updated according to the faulty transmission path, and the multiple transmission paths corresponding to the multiple messages are determined according to the updated multiple transmission paths.

9. The method according to any one of claims 1 to 8, characterized in that: The first message further carries a second identifier, and the second identifier is used to determine a load sharing mode of the first message. Before sending the multiple messages after setting the path information, the method further includes: When the load sharing mode indicated by the second identifier is packet-by-packet sharing, selecting a transmission path for transmitting each message respectively from the multiple transmission paths; Alternatively, when the load sharing mode indicated by the second identifier is flow-by-flow sharing, a transmission path for transmitting the multiple messages is selected from the multiple transmission paths according to the flow information of the multiple messages.

10. The method according to claim 1 or 2, characterized in that: The first message also carries an initial value of the number of paths and an initial value of the path identifier. After determining the multiple transmission paths corresponding to the multiple messages, the method further includes: Determine a transmission path for transmitting the first message according to the initial value of the number of paths carried in the first message, the initial value of the path identifier, and a first number of transmission paths connected to the communication device; The second message obtained based on the first message is transmitted through the determined transmission path.

11. The method according to claim 10, characterized in that Before transmitting the second message obtained based on the first message through the determined transmission path, the method further includes: The initial value of the number of paths and the initial value of the path identifier carried in the first message are updated according to the first number to obtain the second message.

12. The method according to claim 10 or 11, characterized in that: The initial value of the number of paths and the initial value of the path identifier are determined according to the transmission path in the network where the communication device is located.

13. The method according to any one of claims 1 to 9, characterized in that: The path information in any one of the messages is used by the receiving device of the multiple messages to determine whether there is any transmission abnormality in the multiple messages.

14. A message transmission method, characterized in that: The method is applied to a receiving device, and the method includes: receiving a plurality of messages sent by a communication device; Analyze the path information carried by each message, and determine whether there is any transmission abnormality in the multiple messages according to the path information.

15. The method according to claim 14, characterized in that The method further comprises: In the case that there is a transmission anomaly in the multiple messages, a message retransmission instruction is sent to a sending device of the multiple messages, wherein the message retransmission instruction instructs the sending device to retransmit at least one message among the multiple messages.

16. The method according to claim 14 or 15, characterized in that The path information includes at least one of a path quantity and a path identifier, and the parsing of the path information carried by each message, and determining whether the plurality of messages have transmission abnormalities according to the path information, includes: Parsing at least one of the number of paths and the path identifiers carried by the multiple messages to obtain a parsing result of the number of paths and / or the path identifier; When any one of the analysis results of the number of paths and the path identifier indicates an abnormality, it is determined that transmission abnormality exists in the multiple messages.

17. The method according to claim 16, characterized in that The parsing at least one of the number of paths and the path identifiers carried by the multiple messages to obtain the parsing result of the number of paths and / or the path identifiers includes: Comparing the number of paths carried by the multiple messages; In a case where the number of paths carried by the multiple messages is different, it is determined that the parsing result of the number of paths indicates an abnormality.

18. The method according to claim 16 or 17, characterized in that The parsing at least one of the number of paths and the path identifiers carried by the multiple messages to obtain the parsing result of the number of paths and / or the path identifiers includes: According to the message sequence number and path identifier of the received message, updating the receiving information of the transmission path of the message, wherein the receiving information is used to count the messages received on the transmission path; When the reception information of the transmission path indicates that a packet loss has occurred, it is determined that the parsing result of the path identifier indicates an abnormality.

19. The method according to claim 18, characterized in that In the case where the received information of the transmission path indicates that packet loss has occurred, before determining that the parsing result of the path identifier indicates an abnormality, the method further includes: Determining the first sequence number of the message not received in each transmission path according to the reception information of each transmission path; Determine, according to the reception information of each transmission path, a maximum message sequence number among the messages received by each transmission path; When the first sequence number is smaller than the maximum message sequence number corresponding to each transmission path, it is determined that a message corresponding to the first sequence number is lost.

20. The method according to claim 18 or 19, characterized in that The message retransmission instruction includes the message sequence number of the message where the packet loss occurs.

21. A message transmission device, characterized in that: The device is applied to a communication device, and the device includes: A transceiver module, configured to perform the operations related to receiving and / or sending performed by the communication device in the method described in any one of claims 1 to 13; A processing module, used to perform other operations other than the reception and / or transmission related operations performed by the communication device in the method described in any one of claims 1-13.

22. A message transmission device, characterized in that: The device is applied to a receiving device, and the device includes: A transceiver module, used to perform the reception and / or transmission related operations performed by the receiving device in any of the methods of claims 14-20; A processing module, used to perform other operations besides the receiving and / or sending related operations performed by the receiving device in any one of the methods described in claims 14-20.

23. A message transmission device, characterized in that: The device includes a processor, which is used to load and execute at least one instruction so that the transmission detection device implements the message transmission method as described in any one of claims 1-13, or implements the message transmission method as described in any one of claims 14-20.

24. The device according to claim 23, characterized in that The device also includes a memory coupled to the processor, wherein the at least one instruction is stored in the memory.

25. A message transmission system, characterized in that: The system includes a communication device and a receiving device, wherein the communication device is used to implement the message transmission method as described in any one of claims 1-13, and the receiving device is used to implement the message transmission method as described in any one of claims 14-20.

26. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores at least one instruction, which is loaded and executed by the processor to implement the message transmission method as described in any one of claims 1-13, or to implement the message transmission method as described in any one of claims 14-20.

27. A chip, characterized in that: The chip includes a processor, which is used to run program instructions or codes, so that the device containing the chip executes the message transmission method described in any one of claims 1-13, or executes the message transmission method described in any one of claims 14-20.

28. The chip according to claim 27, characterized in that: The chip further includes: an input interface, an output interface and a memory. The input interface, the output interface, the processor and the memory are connected via an internal connection path. The memory contains the program instructions or codes.

Citation Information

Cited By

  • Message transmission method and apparatus, device and computer-readable storage medium

    EP4783540A1

  • Message transmission method and apparatus, device and computer-readable storage medium

    WO2025077578A1