A data transmission method and apparatus

By generating and utilizing message and port identification information, backpressure messages are accurately sent, solving the problems of erroneous backpressure during virtual channel congestion and backpressure message transmission in scenarios without a network controller, thus improving transmission efficiency and accuracy.

CN122120215APending Publication Date: 2026-05-29BEIJING HUAWEI DIGITAL TECH

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
BEIJING HUAWEI DIGITAL TECH
Filing Date
2024-11-28
Publication Date
2026-05-29

AI Technical Summary

Technical Problem

The existing PFC mechanism has the problem that when the virtual channel is congested, erroneous backpressure causes service traffic on non-congested ports to be unable to be forwarded normally, and backpressure messages cannot be sent when there is no network controller or connected storage/server.

Method used

By generating and utilizing relevant information, including message identifiers, virtual channel identifiers, and port identifiers, backpressure messages are accurately sent, ensuring the normal forwarding of service traffic on non-congested ports, and enabling the sending of backpressure messages even when there is no network controller or storage/server connection.

Benefits of technology

It improves the accuracy and transmission efficiency of backpressure messages, expands the application scope, and solves the problems of erroneous backpressure and backpressure message transmission in scenarios without a network controller.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122120215A_ABST
    Figure CN122120215A_ABST
Patent Text Reader

Abstract

The embodiment of the present application provides a data transmission method and device, which are used for improving the accuracy of sending backpressure messages. The method comprises the following steps: receiving a first message from a second node through a first port in a first group of ports by using a first virtual channel. Generating relevant information based on the first message, the relevant information comprising: the identification of the first message, the identification of the first virtual channel, the identification of the first port and the identification of a third port, the third port being a port in the first node used for forwarding the first message, that is, establishing the correspondence between the first port in the first node receiving the first message and the third port sending the first message. When the third port in the second group of ports is congested, determining the first port sending the backpressure message according to the identification information, and sending the backpressure message to the first port through the first port in the first group of ports by using the first virtual channel. The fourth port in the second group of ports normally sends a second message, thereby improving the accuracy of sending the backpressure message.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a data transmission method and apparatus. Background Technology

[0002] The network controller uses priority-based flow control (PFC) to transmit service traffic, which can also be referred to as service data. The principle of PFC is to create multiple virtual channels on the transmission link between devices and configure a priority level for each virtual channel. Different virtual channels have different priority levels, and service traffic of different priority levels is transmitted through virtual channels of different priority levels, thereby achieving independent control of service traffic of different priority levels. Virtual channels can also be called sliced ​​channels. For example, service traffic transmitted in the form of packets can also be called service packets. The following explanation uses service packets as an example. When the number of service packets to be transmitted exceeds the actual capacity of the virtual channel, congestion will occur, leading to packet loss.

[0003] Currently, packet loss is addressed using the PFC backpressure mechanism. Assume multiple virtual channels, including virtual channel a, and node Nc, which includes group port A, comprising port a and port b. Node Na forwards service packet 1 to node Nc using virtual channel a. Node Nb forwards service packet 2 to node Nc using virtual channel a. Node Nc forwards service packet 1 to node Nd via port a in group port A using virtual channel a, and forwards service packet 2 to node Nd via port b in group port A using virtual channel a. When congestion occurs in one port of group port A (i.e., when congestion occurs in one of ports a and b), meaning the number of service packets 1 or 2 that node Nc needs to transmit exceeds the transmission threshold of virtual channel a, node Nc sends backpressure messages to upstream nodes Na and Nb respectively; these backpressure messages carry a pause time. Upstream nodes Na and Nb receive and parse PFC backpressure messages. During the pause time, upstream node Na does not send service message 1 to node Nc, and upstream node Nb does not send service message 2 to node Nc, thereby resolving the service message congestion problem in node Nc.

[0004] However, when the service traffic on one of the ports in group port A becomes congested, node Nc sends backpressure messages to each upstream node, causing the service traffic on the remaining ports in group port A to be unable to be forwarded normally, resulting in false backpressure. Summary of the Invention

[0005] This application provides a data transmission method and apparatus to improve the accuracy of sending backpressure messages and improve the transmission efficiency of messages.

[0006] To achieve the above objectives, the embodiments of this application adopt the following technical solutions:

[0007] In a first aspect, a data transmission method is provided, applied to a first node. The first node communicates with different nodes through different ports using different virtual channels. The first node includes a first group of ports and a second group of ports. The first group of ports includes a first port and a second port, and the second group of ports includes a third port and a fourth port. The method includes: receiving a first message from a second node through the first port of the first group of ports using the first virtual channel; generating relevant information based on the first message, including: an identifier of the first message, an identifier of the first virtual channel, an identifier of the first port, and an identifier of the third port, where the third port is the port in the first node used to forward the first message; when the number of first messages exceeds the transmission threshold of the third port of the second group of ports, sending a backpressure message to the second node through the first port of the first group of ports using the first virtual channel according to the identifier of the first message; and sending a second message through the fourth port of the second group of ports using the second virtual channel, where the second message is received through the second port of the first group of ports.

[0008] In the above technical solution, after receiving the first message from the second node, the first node generates relevant information about the first message based on it. This relevant information includes the identifier of the first message, the identifier of the first virtual channel, the identifier of the first port, and the identifier of the third port in the first node used to forward the first message. That is, after receiving the first message, the first node establishes a correspondence between the first port receiving the first message and the third port sending the first message. When the number of first messages exceeds the transmission threshold of the third port in the second group of ports (i.e., when the third port in the second group of ports becomes congested), the first node, based on the identifier of the first message, uses the first virtual channel to send a backpressure message to the second node through the first port in the first group of ports. In other words, the first node determines the port corresponding to the third port as the first port based on the relevant information, thus determining the first port in the first node to receive the first message, and sends the backpressure message to the second node through the first port in the first group of ports. Simultaneously, the first node uses the second virtual channel to send a second message through the fourth port in the second group of ports. The second message is received by the first node through the second port in the first group of ports. In other words, the first node sends a backpressure message to the first port corresponding to the congested third port in the second group of ports, while the fourth port in the second group forwards the second message normally. This improves the accuracy of sending the backpressure message and also increases the transmission efficiency of the second message. Furthermore, the relevant information is generated by the first node after receiving the first message. Backpressure message sending can also be achieved when the first node is connected to a storage device or server, or when there is no network controller in the network. This solves the problem of not being able to send backpressure messages in the above two scenarios, expanding the application scope.

[0009] In any possible implementation of the first aspect, when the first message conforms to Internet Protocol version 4 (IPv4), the first message includes a Destination Options (DOH) header field; or, when the first message conforms to Internet Protocol version 6 (IPv6), the first message includes a Flow Flag field. In these possible implementations, the fields used to identify the first message differ depending on the Internet protocol it conforms to, allowing the first message to meet different scenario requirements and expanding its application scope.

[0010] In any possible implementation of the first aspect, the relevant information further includes: the priority level of the first virtual channel, the address of the first node, and the address of the second node, i.e., the local address of the first node and the local address of the second node. The above possible implementations, based on the relevant information, shorten the time for determining the backpressure message and improve the efficiency of sending the backpressure message.

[0011] In any possible implementation of the first aspect, after generating the relevant information, the method further includes storing the relevant information. In the above possible implementations, storing the relevant information allows for accurate determination of the port used to send the backpressure message when congestion occurs in one of the second group of ports of the first node, thus improving the accuracy of sending the backpressure message.

[0012] In any possible implementation of the first aspect, the method further includes: deleting relevant information after sending the backpressure message. The above possible implementations avoid wasting storage resources in the first node and improve the utilization rate of storage resources in the first node.

[0013] In any possible implementation of the first aspect, the backpressure message is used to instruct the second node not to send or to reduce the sending of the first message during a first time period after receiving the backpressure message. The above possible implementations alleviate the congestion problem on the third port of the first node, prevent packet loss, and improve the accuracy of the first message.

[0014] Secondly, a data transmission device is provided. This device communicates with different nodes via different virtual channels and different ports. The data transmission device includes a first group of ports and a second group of ports. The first group of ports includes a first port and a second port, and the second group of ports includes a third port and a fourth port. The device includes: a first input / output unit for receiving a first message from a second node via the first port of the first group of ports using the first virtual channel; a processing unit for generating first related information based on the first message, the related information including: an identifier of the first message, an identifier of the first virtual channel, an identifier of the first port, and an identifier of the third port, wherein the third port is a port in the first node used to forward the first message; the first input / output unit is further configured to, when the number of first messages exceeds the transmission threshold of the third port of the second group of ports, send a backpressure message to the second node via the first port of the first group of ports based on the identifier of the first message using the first virtual channel; and a second input / output unit for sending a second message via the fourth port of the second group of ports using the second virtual channel, the second message being received via the second port of the first group of ports.

[0015] In any possible implementation of the second aspect, when the first message conforms to Internet Protocol version 4 (IPv4), the first message includes a Destination Options (DOH) header field; or, when the first message conforms to Internet Protocol version 6 (IPv6), the first message includes a Flow Flags field.

[0016] In any possible implementation of the second aspect, the relevant information also includes: the address of the first node and the address of the second node.

[0017] In any possible implementation of the second aspect, the apparatus further includes a storage unit for storing relevant information.

[0018] In any possible implementation of the second aspect, the processing unit is further configured to: delete relevant information after sending the backpressure message.

[0019] In any possible implementation of the second aspect, the backpressure message is used to instruct the second node not to send or to reduce the sending of the first message during a first time period after receiving the backpressure message.

[0020] Thirdly, a network system is provided, comprising a data transmission device and a network controller. The network controller controls the data transmission device to send service messages, namely, a first service message and a second service message. The data transmission device forwards the service messages. The data transmission device is as provided in the second aspect or any possible implementation thereof.

[0021] Fourthly, a computer-readable storage medium is provided, wherein a computer program or instructions are stored therein, which, when executed, implement the data transmission method provided by the first aspect or any possible implementation thereof.

[0022] Fifthly, a computer program product is provided, comprising: a computer program, also known as code or instructions, which, when executed, causes a computer to perform a data transmission method provided by the first aspect or any possible implementation thereof.

[0023] Understandably, the beneficial effects that can be achieved by the second to fifth aspects mentioned above can be referred to in the beneficial effects of the data transmission method provided by the first aspect or any possible implementation of the first aspect, and will not be repeated here. Attached Figure Description

[0024] Figure 1 A schematic diagram of a network provided for an embodiment of this application;

[0025] Figure 2 A schematic diagram illustrating a data transmission method provided in an embodiment of this application;

[0026] Figure 3 This application provides a schematic diagram of the structure of a computer network system according to an embodiment of the present application.

[0027] Figure 4 A flowchart illustrating a data transmission method provided in an embodiment of this application;

[0028] Figure 5A schematic diagram of a metropolitan area network architecture is provided for an embodiment of this application;

[0029] Figure 6 A flowchart illustrating another data transmission method provided in this application embodiment;

[0030] Figure 7 A schematic diagram illustrating a data transmission method provided in an embodiment of this application;

[0031] Figure 8 A schematic diagram illustrating another data transmission method provided in an embodiment of this application;

[0032] Figure 9 This is a schematic diagram of the structure of a data transmission device provided in an embodiment of this application;

[0033] Figure 10 This is a schematic diagram of another data transmission device provided in an embodiment of this application. Detailed Implementation

[0034] The following sections will discuss the fabrication and use of various embodiments in detail. However, it should be understood that many applicable inventive concepts provided in this application can be implemented in a variety of specific environments. The specific embodiments discussed are merely illustrative of specific ways of implementing and using this application and technology, and do not limit the scope of this application.

[0035] Unless otherwise defined, all technical terms used herein have the same meaning as commonly known to one of ordinary skill in the art.

[0036] Each circuit or other component may be described or referred to as "for" performing one or more tasks. In this context, "for" is used to imply a structure by indicating that the circuit / component includes a structure (e.g., a circuit system) that performs one or more tasks during operation. Therefore, even when the specified circuit / component is currently inoperable (e.g., not turned on), it can still be referred to as "for performing that task." Circuits / components used with the term "for" include hardware, such as circuits that perform operations.

[0037] The technical solutions in the embodiments of this application will be described below with reference to the accompanying drawings. In this application, "at least one" means one or more, and "more than one" means two or more. "And / or" describes the relationship between related objects, indicating that there can be three relationships. For example, A and / or B can mean: A exists alone, A and B exist simultaneously, or B exists alone, where A and B can be singular or plural. The character " / " generally indicates that the related objects before and after are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can mean: a, b, c, a and b, a and c, b and c, a, b, and c; where a, b, and c can be single or multiple.

[0038] The embodiments of this application use terms such as "first" and "second" to distinguish objects with similar names, functions, or effects. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or order of execution. The term "coupling" is used to indicate an electrical connection, including direct connection via wires or terminals or indirect connection via other devices. Therefore, "coupling" should be considered as a broad type of electronic communication connection.

[0039] It should be noted that, in this application, the terms "exemplary" or "for example" are used to indicate that something is being described as an example, illustration, or illustration. Any embodiment or design described as "exemplary" or "for example" in this application should not be construed as being more preferred or advantageous than other embodiments or design solutions. Specifically, the use of terms such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner.

[0040] Before introducing the embodiments of this application, we will first explain the relevant knowledge of priority-based flow control (PFC).

[0041] The network controller transmits service traffic based on the PFC (Predicted Frequency Control) mechanism, which can also be called service data. The principle of PFC is to create multiple virtual channels on the transmission link between devices and configure a priority level for each virtual channel. Different virtual channels have different priority levels, and service traffic of different priority levels is transmitted through virtual channels of different priority levels, thereby achieving independent control of service traffic of different priority levels. Virtual channels can also be called sliced ​​channels. For example, service traffic transmitted in the form of packets can also be called service packets, which can also be called PFC packets. The following explanation uses service packets as an example. The network controller can also be called a network orchestration controller.

[0042] In practical applications, when service traffic needs to be transmitted, the network controller determines the transmission path of the service traffic in the network and identifies the corresponding virtual channel based on the priority level of the service traffic. The controller uses this virtual channel to send the service traffic to the first node in the transmission path. The first node encapsulates the service traffic to obtain a service packet, and each node in the transmission path forwards the service packet to downstream nodes using the virtual channel. Here, the nodes in the transmission path refer to the devices in the network used to forward service packets; for example, these nodes may include switches and routers.

[0043] The network controller is also used to send backpressure configuration information corresponding to each node in the transmission path. The backpressure configuration information includes the backpressure path, which refers to the path through which backpressure messages are sent. These backpressure messages can also be called PFC backpressure messages. When the number of service messages that need to be forwarded in a node exceeds the number of service messages that the virtual channel can actually transmit (i.e., forward), that is, when a node experiences congestion, the PFC backpressure mechanism is used to resolve the congestion problem.

[0044] Optionally, PFC can also be called subscriber priority-based flow control (SPFC), PFC messages can also be called SPFC messages, and PFC backpressure messages can also be called SPFC backpressure messages.

[0045] The following is combined with Figure 1 The PFC mechanism and the PFC backpressure mechanism will be explained.

[0046] For example, Figure 1 This is a schematic diagram of a network provided in an embodiment of this application. The network includes multiple nodes, and any two nodes can use different virtual channels to forward different service messages. Figure 1 The following example uses a network comprising nodes Na, Nb, and Nc. Assume that for any service message A, its transmission path in the network is sequentially through nodes Na, Nb, and Nc. Service message A is forwarded between nodes Na, Nb, and Nc via virtual channel a. Service message A includes the identifier S0 of virtual channel a and its priority level af0. Service message A is transmitted in the network based on the PFC mechanism. For example, node Na forwards service message A to node Nb using virtual channel a, and node Nb forwards service message A to node Nc using virtual channel a.

[0047] When the number of service packets A that need to be forwarded in node Nb exceeds the number of service packets that virtual channel a can transmit (i.e., forward), i.e., node Nb experiences congestion, node Nb resolves the congestion problem through the PFC backpressure mechanism. Specifically, node Nb sends a backpressure message to upstream node Na using virtual channel a based on the backpressure configuration information. The backpressure message includes the identifier S0 of virtual channel a, the priority level af0 of virtual channel a, and the pause time T0. The destination address of the backpressure message is the local address of upstream node Na, and the source address of the backpressure message is the local address of node Nb, which includes the Internet Protocol version 6 (IPv6) address. After receiving the backpressure message, node Na parses the backpressure message and caches the service message A forwarded in virtual channel a with priority level af0, which is identified as S0, within the pause time T0 after receiving the backpressure message. That is, node Na stops forwarding service message A to node Nb within the pause time T0 after receiving the backpressure message, thereby solving the congestion problem of node Nb.

[0048] In one possible embodiment, a node includes multiple groups of ports, each group containing multiple ports. The backpressure configuration information for a node is granular at the group port level; that is, the backpressure path corresponding to one group of ports in a node is another group of ports, and the backpressure configuration information shows the correspondence between group ports. When one port in a group is congested, resolving the congestion issue through the PFC backpressure mechanism may result in false backpressure.

[0049] For example, Figure 2 This is a schematic diagram of a data transmission method provided in an embodiment of this application. It is assumed that multiple virtual channels include a virtual channel a identified as S0, with a priority level of af0. Node Nc includes group port A and group port B, where group port A includes port a and port b, and group port B includes port c and port d. Figure 2 As shown, node Na forwards service packet 1 to node Nc using virtual channel a. Service packet 1 includes the identifier S0 of virtual channel a and the priority level af0 of virtual channel a. Node Nb forwards service packet 2 to node Nc using virtual channel a. Service packet 2 includes the identifier S0 of virtual channel a and the priority level af0 of virtual channel a. Node Nc receives service packet 1 through port c in group port B and service packet 2 through port d in group port B. Node Nc forwards service packet 1 to node Nd using virtual channel a through port a in group port A and forwards service packet 2 to node Nd using virtual channel a through port b in group port A.

[0050] Since the backpressure configuration information for each node is at the group port level, meaning the backpressure path corresponding to group port A in node Nc's backpressure configuration information is group port B, when service packets on one port in group port A become congested (i.e., when service packets on one of ports a and b become congested), or when the number of service packets 1 or 2 that node Nc needs to transmit exceeds the transmission threshold of virtual channel a, node Nc sends backpressure packets through each port in group port B based on the backpressure configuration information. Specifically, node Nc uses virtual channel a to send backpressure packet 1 to node Na through port c in group port B, and uses virtual channel a to send backpressure packet 2 to node Nb through port d in group port B. Backpressure packets 1 and 2 include the identifier S0 of virtual channel a, the priority level af0 of virtual channel a, and the pause time T0. The destination address of backpressure packet 1 is the local address of upstream node Na, and the source address of backpressure packet 1 is the local address of node Nc. The destination address of backpressure message 2 is the local address of upstream node Nb, and the source address is the local address of node Nc. Upstream node Na receives and parses backpressure message 1, and within the pause time T0 after receiving it, caches service message 1 (identified as S0 and with priority level af0) forwarded in virtual channel a in node Na. That is, node Na stops forwarding service message 1 to node Nc within the pause time T0 after receiving backpressure message 1. Upstream node Nb receives and parses backpressure message 2, and within the pause time T0 after receiving it, caches service message 2 (identified as S0 and with priority level af0) forwarded in virtual channel a in node Nb. That is, node Nb stops forwarding service message 2 to node Nc within the pause time T0 after receiving backpressure message 2. This resolves the service message congestion problem in node Nc.

[0051] However, when traffic on one port in group port A becomes congested, node Nc sends backpressure messages through each port in group port B, i.e., to each upstream node. This causes traffic on the remaining ports in group port A to be unable to be forwarded normally, resulting in false backpressure. Furthermore, when node Nc is connected to a storage device or server, node Nc lacks backpressure configuration information and cannot send backpressure messages. Moreover, the backpressure configuration information in each node is based on the network controller; without a network controller, backpressure messages cannot be sent.

[0052] Based on this, this application provides a data transmission method. After receiving a first message from a second node, a first node generates relevant information about the first message. This relevant information includes the identifier of the first message, the identifier of a first virtual channel, the identifier of a first port, and the identifier of a third port in the first node used to forward the first message. That is, after receiving the first message, the first node establishes a correspondence between the first port receiving the first message and the third port sending the first message. When the number of first messages exceeds the transmission threshold of the third port in the second group of ports, i.e., when the third port in the second group of ports is congested, the first node, based on the identifier of the first message, uses the first virtual channel to send a backpressure message to the second node through the first port in the first group of ports. In other words, the first node determines the port corresponding to the third port as the first port based on the relevant information, i.e., determines the first port in the first node that receives the first message, and sends the backpressure message to the second node through the first port in the first group of ports. Simultaneously, the first node uses the second virtual channel to send a second message through the fourth port in the second group of ports. The second message is received by the first node through the second port in the first group of ports. In other words, the first node sends a backpressure message to the first port corresponding to the congested third port in the second group of ports, while the fourth port in the second group forwards the second message normally, improving the accuracy of sending the backpressure message and increasing the transmission efficiency of the second message. Furthermore, the relevant information is generated by the first node after receiving the first message. Backpressure message sending can also be achieved when the first node is connected to a storage device or server, or when there is no network controller in the network, solving the problem of not being able to send backpressure messages in the above two scenarios and expanding the application scope.

[0053] The technical solutions provided in this application can be applied to computer network systems. The following describes... Figure 1 The structure of the computer network system will be explained. Figure 3 This is a schematic diagram of a computer network system provided in an embodiment of this application. The computer network system includes a metropolitan area network (MAN) 110, a backbone network 120, and an access network 130. The MAN 110 refers to a computer communication network that geographically covers a city and its suburbs, providing a comprehensive transmission platform for multiple metropolitan area services; it is a broadband local area network (LAN). The MAN 110 connects upwards to the backbone network 120, connecting multiple regional or regional MANs 110 through the backbone network 120. The MAN 110 also connects downwards to the access network 130, providing terminal and service access for various users through the access network 130.

[0054] The following is combined with Figure 4 and Figure 7 The data transmission method provided in the embodiments of this application will be described.

[0055] Figure 4This is a flowchart illustrating a data transmission method provided in an embodiment of this application. The method can be applied to a first node, which communicates with different nodes through different virtual channels and ports. The first node includes a first group of ports G1 and a second group of ports G2. The first group of ports G1 includes a first port G11 and a second port G12, and the second group of ports G2 includes a third port G21 and a fourth port G22. The data transmission method may include the following steps. The structure of the first node is as follows: Figure 7 As shown.

[0056] S401a, The first node uses the first virtual channel to receive the first message from the second node through the first port G11 in the first group of ports G1.

[0057] The first node can be one of the above. Figure 3 In any of the networks shown, the first node can be a switch or router, etc. In one possible embodiment, the first node is a node in the metropolitan area network 110, i.e., a switch or router in the metropolitan area network 110. In a second possible embodiment, the first node is a node in the backbone network 120, i.e., a switch or router in the backbone network 120. In a third possible embodiment, the first node is a node in the access network 130, i.e., a switch or router in the access network 130.

[0058] Furthermore, the first node communicates with different nodes through different ports using different virtual channels. These different nodes include upstream and downstream nodes of the first node. For example, the first node communicates with different upstream nodes through different virtual channels and ports; and it also communicates with different downstream nodes through different virtual channels and ports. The upstream node of the first node can be a node in the same network as the first node, or it can be a node in a different network. For example, both the first node and its upstream node are nodes in metropolitan area network 110; or, the first node is a node in metropolitan area network 110, and its upstream node is a node in backbone network 120; or, the first node is a node in access network 130, and its upstream node is a node in metropolitan area network 110. Similarly, the first node and its downstream nodes can be nodes in the same network or nodes in different networks. For example, the first node and its downstream nodes are both nodes in metropolitan area network 110; or, the first node is a node in metropolitan area network 110 and its upstream node is a node in access network 130; or, the first node is a node in backbone network 120 and its upstream node is a node in metropolitan area network 110.

[0059] In the following embodiments, the first node is taken as a node in the metropolitan area network 110 as an example, and the upstream and downstream nodes of the first node are described.

[0060] For example, Figure 5 This is a schematic diagram of a metropolitan area network (MAN), which can be described as described above. Figure 3 The metropolitan area network 110 is shown in the image. (As shown...) Figure 5 As shown, the metropolitan area network 110 includes routers at several network layers, including the core layer 110-1, the aggregation layer 110-2, and the service control layer 110-3. The core layer 110-1 connects upwards to the backbone network 120, and the service control layer 110-3 connects downwards to the access network 130. Routers in each network layer are connected from top to bottom via transmission links, which can also be called links. In practical applications, the network controller can be used to create multiple virtual channels on the transmission links, allowing adjacent network layers to forward packets through different virtual channels. For example, core layer 110-1 forwards packets to aggregation layer 110-2 using different virtual channels. That is, routers in core layer 110-1 forward packets to routers in aggregation layer 110-2 using different virtual channels. Routers in core layer 110-1 are upstream devices of routers in aggregation layer 110-2, and routers in aggregation layer 110-2 are downstream devices of routers in core layer 110-1. Alternatively, aggregation layer 110-2 forwards packets to service control layer 110-3 using different virtual channels. Routers in aggregation layer 110-2 forward packets to routers in service control layer 110-3 using different virtual channels. Routers in aggregation layer 110-2 are upstream devices of routers in service control layer 110-3, and routers in service control layer 110-3 are downstream devices of routers in aggregation layer 110-2. Routers in each network layer can also be called nodes or node devices. Each router includes multiple sets of ports, and each set of ports can include multiple ports. Figure 5 The image only shows the routers in metropolitan area network 110.

[0061] Optionally, the first node can be a node in any of the three network layers of the metropolitan area network 110, and the second node is the upstream node of the first node. The following section combines... Figure 5 The three possible scenarios for the first node, as well as the upstream and downstream nodes of the first node, will be explained separately.

[0062] In a first possible embodiment, the first node is any node in the core layer 110-1 of the metropolitan area network 110, that is, the first node is any router in the core layer 110-1 of the metropolitan area network 110. The second node (the upstream node of the first node) is a node in the backbone network 120 that directly communicates with the core layer 110-1 of the metropolitan area network 110, that is, the second node is a router or switch in the backbone network 120 that directly communicates with the core layer 110-1 of the metropolitan area network 110. The downstream node of the first node is a node in the aggregation layer 110-2 of the metropolitan area network 110, that is, the downstream node of the first node is a router in the aggregation layer 110-2 of the metropolitan area network 110.

[0063] In a second possible embodiment, the first node is any node in the aggregation layer 110-2 of the metropolitan area network 110, that is, the first node is any router in the aggregation layer 110-2 of the metropolitan area network 110. The second node (the upstream node of the first node) is any node in the core layer 110-1 of the metropolitan area network 110, that is, the second node is any router in the core layer 110-1 of the metropolitan area network 110. The downstream node of the first node is a node in the service control layer 110-3 of the metropolitan area network 110, that is, the downstream node of the first node is a router in the aggregation layer 110-2 of the metropolitan area network 110.

[0064] In a third possible embodiment, the first node can be any node in the service control layer 110-3 of the metropolitan area network 110, that is, the first node can be any router in the service control layer 110-3 of the metropolitan area network 110. The second node (the upstream node of the first node) is any node in the aggregation layer 110-2 of the metropolitan area network 110, that is, the second node is any router in the aggregation layer 110-2 of the metropolitan area network 110. The downstream node of the first node is a node in the access network 130 that directly communicates with the service control layer 110-3 of the metropolitan area network 110, that is, the downstream node of the first node is a router or switch in the access network 130 that directly communicates with the service control layer 110-3 of the metropolitan area network 110.

[0065] Secondly, the first node may include multiple sets of ports, including multiple sets of uplink ports and multiple sets of downlink ports. Each set of uplink ports includes multiple uplink ports, and each set of downlink ports includes multiple downlink ports. The first node communicates with upstream devices through multiple uplink ports using different virtual channels, and communicates with downstream devices through multiple downlink ports using different virtual channels. For ease of understanding, the following embodiments use an example where each set of uplink ports includes two uplink ports, and each set of downlink ports includes two downlink ports. A set of ports can also be called a trunk port. A set of ports including multiple ports (e.g., uplink ports or downlink ports) can also be called a multi-member port.

[0066] The following explanation uses the first group of ports G1 and the second group of ports G2 in the first node as examples.

[0067] The first group of ports G1 can also be called the first group of uplink ports. The first group of ports G1 is any one of the multiple groups of uplink ports included in the first node. The first group of ports G1 includes the first port G11 and the second port G12. The first port G11 can also be called the first uplink port, and the second port G12 can also be called the second uplink port. The first node communicates with upstream nodes through the first group of ports G1; for example, it communicates with the second node through the first port G11 within the first group of ports G1.

[0068] The second set of ports G2 can also be referred to as the first set of downlink ports. The second set of ports G2 is any one of the multiple sets of downlink ports included in the first node. The second set of ports G2 includes the third port G21 and the fourth port G22. The third port G21 can also be referred to as the first downlink port, and the fourth port G22 can also be referred to as the second downlink port. The first node communicates with downstream nodes through the second set of ports G2.

[0069] Furthermore, the first virtual channel is one of the multiple virtual channels between the first node and the second node used for transmitting the first message. The priority level of the first virtual channel is similar to or the same as the priority level of the first message. In practical applications, the network controller determines the first virtual channel for transmitting the first message based on its priority level.

[0070] Furthermore, the first message is the message corresponding to the first service traffic. The first service traffic is the service traffic determined based on user needs; it can also be called the first service data. In practical applications, after the network controller determines the transmission path of the first service traffic, it sends the first service traffic to the first node in the transmission path corresponding to the first service traffic using the first virtual channel. This first node encapsulates the first service traffic using the PFC mechanism to obtain the first message. The first node then uses the first virtual channel to send (forward) the first message to downstream nodes. The first message includes the identifier of the first message, the identifier of the first virtual channel, and the priority level of the first virtual channel.

[0071] Optionally, when the first message conforms to Internet Protocol version 4 (IPv4), the first message includes a Destination Options (DOH) header field. This DOH header field is added by the first node when encapsulating the first service traffic. The DOH header field serves as an identifier for the first message, uniquely identifying it; that is, the DOH header field is used to mark the uniqueness of the first message. When the first message conforms to Internet Protocol version 6 (IPv6), the first message includes a Flow Label field. This Flow Label field is added by the first node when encapsulating the first service traffic. The Flow Label field serves as an identifier for the first message, uniquely identifying it; that is, the Flow Label field is used to mark the uniqueness of the first message.

[0072] Furthermore, such as Figure 6 As shown, the method provided in this application embodiment further includes:

[0073] S401b: The first node uses the second virtual channel to receive the second message from the third node through the second port G12 in the first group of ports G1.

[0074] The third node is the upstream node of the first node. When the first node is a node in any of the three network layers of the metropolitan area network 110, the position and function of the third node in the computer network system are similar to those of the second node in the computer network system, and will not be repeated here.

[0075] Furthermore, the second virtual channel is one of the multiple virtual channels between the first and third nodes used for transmitting the second message. The priority level of the second virtual channel is similar to or equal to the priority level of the second message. In practical applications, the network controller determines the second virtual channel for transmitting the second message based on its priority level.

[0076] Furthermore, the second message is the message corresponding to the second service traffic. The second service traffic is the traffic determined based on user needs; it can also be called second service data. In practical applications, after the network controller determines the transmission path of the second service traffic, it sends the second service traffic to the first node in the transmission path using the first virtual channel. The first node in the transmission path encapsulates the second service traffic using the PFC mechanism to obtain the second message. The first node then uses the second virtual channel to send (forward) the second message to downstream nodes. The second message includes the identifier of the second message, the identifier of the second virtual channel, and the priority level of the second virtual channel.

[0077] Optionally, when the second message conforms to Internet Protocol version 4 (IPv4), the second message includes a Destination Options (DOH) header field. This DOH header field is added by the first node when encapsulating the second service traffic. The DOH header field serves as an identifier for the second message, uniquely identifying it; that is, it marks the uniqueness of the second message. When the second message conforms to Internet Protocol version 6 (IPv6), the second message includes a Flow Label field. This Flow Label field is added by the first node when encapsulating the second service traffic. The Flow Label field serves as an identifier for the second message, uniquely identifying it; that is, it marks the uniqueness of the second message.

[0078] In one possible embodiment, when the priority level of the first service traffic and the priority level of the second service traffic are the same, the first virtual channel and the second virtual channel are the same virtual channel.

[0079] Please continue reading Figure 4 The method provided in this application embodiment further includes:

[0080] S402a, The first node generates relevant information based on the first message. The relevant information includes: the identifier of the first message, the identifier of the first virtual channel, the identifier of the first port G11 and the identifier of the third port G21. The third port G21 is the port in the first node used to forward the first message.

[0081] For ease of understanding, the following embodiments will use the first related information generated by the first node based on the first message as an example.

[0082] The identifier of the first message is determined based on the DOH header field or the flow flag field of the first message. After receiving the first message, the first node parses the first message to obtain the identifier of the first message, the identifier of the first virtual channel, and the priority level of the first virtual channel. Based on the identifier of the first message, the identifier of the first virtual channel, the identifier G11 of the first port in the first node that receives the first message, and the identifier G21 of the third port in the first node that is used to forward the first message, the first related information is generated.

[0083] Optionally, the first relevant information also includes the priority level, source address, and destination address of the first virtual channel. The source address is the local address of the second node that sent the first message. The destination address is the local address of the first node that received the first message. The local address may include an Internet Protocol version 6 (IPv6) address and an Internet Protocol version 4 (IPv4) address. The first relevant information is shown in Table 1:

[0084] Table 1

[0085] Header Index 1 Identifier of the first virtual channel S1 Priority level of the first virtual channel af1 Identifier of the first message 10000 Source address (the local address of the second node) 1::1 Destination address (the local address of the first node) 1::2 Identifier of the first port that received the first message G11 Identifier of the third port for forwarding the first message G21

[0086] For further information, please refer to [link / reference]. Figure 6 The method provided in this application embodiment further includes:

[0087] S402b, The first node generates second related information based on the second message. The second related information includes: the identifier of the second message, the identifier of the second virtual channel, the identifier of the second port G12 and the identifier of the fourth port G22. The fourth port G22 is the port in the first node used to forward the second message.

[0088] The identifier of the second message is determined based on the DOH header field or the flow flag field of the second message. After receiving the second message, the first node parses it to obtain the identifier of the second message, the identifier of the second virtual channel, and the priority level of the second virtual channel. Based on the identifier of the second message, the identifier of the second virtual channel, the identifier G12 of the second port in the first node that receives the second message, and the identifier G22 of the fourth port in the first node that is used to forward the second message, second related information is generated.

[0089] Optionally, the second set of related information also includes the priority level, source address, and destination address of the second virtual channel. The source address is the local address of the third node sending the second message, and the destination address is the local address of the first node receiving the second message. The local address may include Internet Protocol version 6 (IPv6) addresses and Internet Protocol version 4 (IPv4) addresses. The second set of related information is shown in Table 2.

[0090] Table 2

[0091] Header Index 2 Identifier of the second virtual channel S2 Priority levels of the second virtual channel af2 The identifier of the second message 10001 Source address (the local address of the third node) 2::1 Destination address (the local address of the first node) 2::2 Identifier of the second port for receiving the second message G12 Identifier of the fourth port for sending the second message G22

[0092] Furthermore, the method provided in this application embodiment also includes: storing first related information and second related information. For example, the first related information and second related information can be stored in the memory of the first node in the form of association entries. When the first related information and second related information are stored in the form of association entries, the first related information can also be called the first association entry, or the second related information can also be called an association entry.

[0093] Please continue reading Figure 4 The method provided in this application embodiment further includes:

[0094] S403a. When the number of first messages in the first node is greater than the transmission threshold of the third port G21 in the second group of ports G2, the first node sends the backpressure message corresponding to the first message to the second node through the first virtual channel via the first port G11 in the first group of ports G1, based on the identifier of the first message.

[0095] The first backpressure message is used to instruct the second node not to send (forward) or to reduce the sending (forwarding) of the first message during the first time period after receiving the first backpressure message.

[0096] For ease of understanding, in the following embodiments, the backpressure message corresponding to the first message is referred to as the first backpressure message, and the backpressure message corresponding to the second message is referred to as the second backpressure message.

[0097] For example, when the number of first packets in the first node exceeds the transmission threshold of the third port G21 used for forwarding the first packets in the first node, that is, when the third port G21 in the second group of ports G2 of the first node is congested, the first node queries the first related information according to the identifier of the first packet to determine that the port corresponding to the third port G21 used for forwarding the first packet in the first node is the first port G11, that is, to determine the first port G11 in the first node for receiving the first packet, as well as the identifier S1 of the first virtual channel and the priority level af1 of the first virtual channel, etc. The first node uses the first virtual channel to send the first backpressure packet to the second node through the first port G11 in the first group of ports G1. The first backpressure includes the identifier S1 of the first virtual channel, the priority level af1 of the first virtual channel and the first time period T1. The source address of the first backpressure packet is the local address of the first node that sends the first backpressure packet, and the destination address of the first backpressure packet is the local address of the second node that receives the first backpressure packet.

[0098] The second node receives the first backpressure message and, after determining that the destination address of the first backpressure message is its own local address, parses the message to obtain the identifier S1 of the first virtual channel, the priority level af1 of the first virtual channel, and the first time period T1. During the first time period T1 after receiving the first backpressure message, the second node either does not send or reduces the number of first messages sent. Specifically, during the first time period T1 after receiving the first backpressure message, the second node buffers all or part of the first messages in the first virtual channel identified as S1 and with a priority level af1, thereby preventing or reducing the sending of first messages during the first time period T1.

[0099] In one possible embodiment, when the number of first packets in the second node is greater than the transmission threshold of the port of the second node, the second node sends a third backpressure packet to the upstream node of the second node, so that the upstream node of the second node buffers the first packets.

[0100] In one possible embodiment, such as Figure 6 As shown, the method provided in this application embodiment further includes:

[0101] S403b: When the number of second messages in the first node is greater than the transmission threshold of the fourth port G22 in the second group of ports G2, the second backpressure message is sent to the third node through the second virtual channel via the second port G12 in the first group of ports G1, according to the identifier of the second message.

[0102] The second backpressure message is used to instruct the third node not to send or to reduce the sending of the second message during the first time period after receiving the second backpressure message.

[0103] In this embodiment, when the number of second packets in the first node exceeds the transmission threshold of the fourth port G22 used for forwarding the second packets in the first node, i.e., when the fourth port G22 in the second group of ports G2 of the first node is congested, the first node queries the second related information according to the identifier of the second packet to determine that the port corresponding to the fourth port G22 used for forwarding the second packet in the first node is the second port G12, i.e., to determine the second port G12 in the first node for receiving the second packet, as well as the identifier S2 of the second virtual channel and the priority level af2 of the second virtual channel, etc. The first node uses the second virtual channel to send the second backpressure packet to the third node through the second port G12 in the first group of ports G1. The second backpressure includes the identifier S2 of the second virtual channel, the priority level af2 of the second virtual channel, and the second time period T2. The source address of the second backpressure packet is the local address of the first node that sent the first backpressure packet, and the destination address of the second backpressure packet is the local address of the third node that received the second backpressure packet.

[0104] The third node receives the second backpressure message and, after determining that the destination address of the second backpressure message is its own local address, parses the message to obtain the identifier S2 of the second virtual channel, the priority level af2 of the second virtual channel, and the second time period T2. During the second time period T2 following the receipt of the second backpressure message, the third node either does not send or reduces the number of second messages it sends. Specifically, during the second time period T2, the third node buffers all or part of the second messages in the second virtual channel identified as S2 with a priority level of af2, thereby preventing or reducing the sending of second messages during the second time period T2.

[0105] In one possible embodiment, when the number of second messages in the third node exceeds the transmission threshold of the port of the third node, the third node sends a fourth backpressure message to the upstream node of the third node, so that the upstream node of the third node buffers the second messages.

[0106] In one possible embodiment, please continue reading Figure 4 The method provided in this application embodiment further includes:

[0107] S404a, The first node uses the second virtual channel to send the second message through the fourth port G22 in the second group of ports G2.

[0108] For example, the first node uses the second virtual channel to forward the second message to the downstream node through the fourth port G22 in the second group of ports G2.

[0109] In this embodiment, when the third port G21 in the second group of ports G2 becomes congested, the fourth port G22 in the second group of ports G2 can still forward the second message normally, thus improving the forwarding efficiency of the second message.

[0110] In one possible embodiment, please continue reading Figure 6 The method provided in this application embodiment further includes:

[0111] S404b: The first node uses the first virtual channel to send the first message through the third port G21 in the second group of ports G2.

[0112] For example, the first node uses the first virtual channel to forward the first message to the downstream node through the third port G21 in the second group of ports G2.

[0113] In this embodiment, when the fourth port G22 in the second group of ports G2 becomes congested, the third port G21 in the second group of ports G2 can still forward the first packet normally, thus improving the forwarding efficiency of the first packet.

[0114] In one possible embodiment, after step S404a or S404b, the method provided in this application further includes deleting the first related information and the second related information. In this embodiment, since the related information corresponding to each message is dynamically established for each message, after the complete message or the backpressure message corresponding to the message is forwarded, the related information corresponding to that message is deleted, avoiding wasting the storage space of the memory in the first node and improving the utilization rate of the memory.

[0115] To facilitate understanding, the following will be combined with... Figure 7 and Figure 8 The data transmission method provided in the embodiments of this application will be described.

[0116] Figure 7 This is a schematic diagram of a data transmission method provided in an embodiment of this application. A first node receives a first message D1 from a second node through a first virtual channel S1 via a first port G11 in a first group of ports G1, and receives a second message D2 from a third node through a second virtual channel S2 via a second port G12 in the first group of ports G1. The first node generates first related information based on the first message D1 and second related information based on the second message D2. When the number of first messages D1 in the first node exceeds the transmission threshold of the third port G21 in the second group of ports G2, i.e., when the third port G21 in the second group of ports G2 in the first node is congested, the first node sends a backpressure message D11 corresponding to the first message D1 to the second node through the first virtual channel S1 via a first port G11 in the first group of ports G1 according to the identifier D1 of the first message D1. The first node forwards the second message D2 to the fourth node through the second virtual channel S2 via a fourth port G22 in the second group of ports G2.

[0117] In one possible embodiment, combined with Figure 7 like Figure 8 As shown, the fourth node can be a storage device or a server. Figure 8 The data transmission method shown is similar to Figure 7 The data transmission method shown is similar and will not be described again here. In this embodiment, since the first relevant information is generated after the first node receives the first message, and the second relevant information is generated after the first node receives the second message, when the first node connects to the memory or server, the first node can also accurately determine the port used to send the backpressure message based on the first or second relevant information. This solves the problem that the first node cannot send the backpressure message when connected to the memory or server, and expands the application scope.

[0118] This application provides a data transmission method in which a first node receives a first message from a second node via a first virtual channel through a first port G11 in a first group of ports G1, and receives the first message from the second node via a second virtual channel through a second port G12 in the first group of ports G1. The first node generates first related information based on the first message and second related information based on the second message. The first related information includes the identifier of the first message, the identifier of the first virtual channel, the identifier of the first port G11, and the identifier of the third port in the first node used for forwarding the first message G21. The second related information includes the identifier of the second message, the identifier of the second virtual channel, the identifier of the second port G12, and the identifier of the fourth port in the first node used for forwarding the second message G22. That is, after receiving the first message, the first node establishes a correspondence between the first port G11 for receiving the first message and the third port G21 for sending the first message; and after receiving the second message, it establishes a correspondence between the second port G12 for receiving the second message and the fourth port G22 for forwarding the second message. When congestion occurs at the third port G21 in the second group of ports G2, the first node uses the first relevant information to determine that the port corresponding to the third port is the first port, that is, to determine the first port in the first node that receives the first message, and uses the first virtual channel to send the first backpressure message to the second node through the first port G11 in the first group of ports G1; and uses the second virtual channel to send the second message through the fourth port G22 in the second group of ports G2. That is, when the third port G21 in the first node is congested, the first node can accurately determine the first port G11 corresponding to the third port G21 that sends the first message, based on the first relevant information, so that it can accurately send the first backpressure message to the first port G11, improving the accuracy of the transmission of the first backpressure message; at the same time, the fourth port G22 in the second group of ports G2 can forward the second message normally, improving the transmission efficiency of the second message. Furthermore, the first relevant information is generated after the first node receives the first message. When the first node is connected to a storage device or server, or when there is no network controller in the network, the first backpressure message can also be sent, which solves the problem of not being able to send backpressure messages in the above two scenarios and expands the application scope.

[0119] The above mainly describes the solution provided by the embodiments of this application from the perspective of the first node. It is understood that, in order to achieve the above functions, the first node includes the corresponding hardware structure and / or software module for executing each function. Those skilled in the art should readily recognize that, in conjunction with the units and algorithm steps of the various examples described in the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed by hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0120] This application embodiment can divide the first node into functional modules according to the above method example. For example, each function can be divided into its own functional modules, or two or more functions can be integrated into one module. The integrated module can be implemented in hardware or as a software functional module. It should be noted that the module division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods. The following description uses the division of functional modules according to each function as an example.

[0121] When using integrated units, Figure 9 A schematic diagram of the data transmission device involved in the above embodiments is shown. When the data transmission device can be a first node, it can communicate with different nodes through different ports using different virtual channels. The data transmission device includes a first group of ports and a second group of ports. The first group of ports includes a first port and a second port, and the second group of ports includes a third port and a fourth port. The data transmission device includes: a first input / output unit 901, a processing unit 902, and a second input / output unit 903. The first input / output unit 901 is used to support the data transmission device in executing one or more steps S401a and S403a in the above method embodiments. The processing unit 902 is used to support the data transmission device in executing one or more steps S402a and S402b in the above method embodiments. The second input / output unit 903 is used to support the data transmission device in executing one or more steps S404b in the above method embodiments.

[0122] Optional, such as Figure 10As shown, the data transmission device further includes a third input / output unit 904, a fourth input / output unit 905, and a storage unit 906. The third input / output unit 904 is used to support the data transmission device in performing one or more steps S401b and S403b in the above method embodiments. The fourth input / output unit 905 is used to support the data transmission device in performing step S404a in the above method embodiments. The storage unit 906 is used to store first related information and second related information.

[0123] All relevant content of each step involved in the above method embodiments can be referenced from the functional description of the corresponding functional module, and will not be repeated here in the embodiments of this application.

[0124] In another embodiment of this application, a network system is provided, which may also be referred to as a computer network system. The network system includes a data transmission device and a network controller. The network controller controls the data transmission device to send service messages, including the first message and the second message mentioned above. The data transmission device forwards the service messages. The network system is as described above. Figure 3 The computer network system shown.

[0125] It is understood that all relevant content of each step involved in the above method embodiments can be referenced in the embodiments of computer network systems, and the embodiments of this application will not be repeated here.

[0126] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For instance, the division of modules or units is merely a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another apparatus, or some features may be ignored or not executed.

[0127] The units described as separate components may or may not be physically separate. A component shown as a unit can be one or more physical units; that is, it can be located in one place or distributed in multiple different locations. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0128] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. This readable storage medium may include various media capable of storing program code, such as a USB flash drive, external hard drive, read-only memory, random access memory, magnetic disk, or optical disk. Based on this understanding, the technical solution of the embodiments of this application, in essence, 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.

[0129] In another embodiment of this application, a readable storage medium is also provided, which stores a computer program or instructions that, when a device or processor runs the computer program or instructions, execute the steps of the first node in the above method embodiment.

[0130] In another embodiment of this application, a computer program product is also provided, which includes a computer program or instructions stored in a readable storage medium; at least one processor of the device can read the computer program or instructions from the readable storage medium, and when the at least one processor executes the computer program or instructions, it performs the steps of the first node in the above method embodiment.

[0131] Finally, it should be noted that the above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A data transmission method, characterized in that, Applied to a first node, the first node communicates with different nodes through different ports using different virtual channels. The first node includes a first group of ports and a second group of ports. The first group of ports includes a first port and a second port, and the second group of ports includes a third port and a fourth port. The method includes: Receive the first message from the second node through the first port in the first group of ports using the first virtual channel; Based on the first message, relevant information is generated, including: the identifier of the first message, the identifier of the first virtual channel, the identifier of the first port, and the identifier of the third port, wherein the third port is the port in the first node used to forward the first message; When the number of the first message is greater than the transmission threshold of the third port in the second group of ports, a backpressure message is sent to the second node through the first port in the first group of ports using the first virtual channel according to the identifier of the first message. A second message is sent through the fourth port in the second group of ports using a second virtual channel, and the second message is received through the second port in the first group of ports.

2. The method according to claim 1, characterized in that, When the first message conforms to Internet Protocol version 4 (IPv4), the first message includes the Destination Options (DOH) header field; Alternatively, when the first message conforms to Internet Protocol version 6 (IPv6), the first message includes a flow flag field.

3. The method according to claim 1 or 2, characterized in that, The relevant information also includes: the address of the first node and the address of the second node.

4. The method according to any one of claims 1-3, characterized in that, After generating the relevant information, the method further includes: Store the relevant information.

5. The method according to any one of claims 1-4, characterized in that, The method further includes: After sending the backpressure message, delete the relevant information.

6. The method according to any one of claims 1-5, characterized in that, The backpressure message is used to instruct the second node not to send or to reduce the sending of the first message during a first time period after receiving the backpressure message.

7. A data transmission device, characterized in that, The data transmission device communicates with different nodes through different virtual channels and different ports. The data transmission device includes a first group of ports and a second group of ports. The first group of ports includes a first port and a second port, and the second group of ports includes a third port and a fourth port. The data transmission device includes: The first input / output unit is used to receive a first message from the second node through the first port in the first group of ports using a first virtual channel. The processing unit is configured to generate relevant information based on the first message, the relevant information including: the identifier of the first message, the identifier of the first virtual channel, the identifier of the first port, and the identifier of the third port, wherein the third port is the port in the data transmission device used to forward the first message; The first input / output unit is further configured to send a backpressure message to the second node through the first port in the first group of ports according to the identifier of the first message when the number of the first message is greater than the transmission threshold of the third port in the second group of ports; The second input / output unit is used to send a second message through the fourth port in the second group of ports using the second virtual channel, wherein the second message is received through the second port in the first group of ports.

8. The data transmission device according to claim 7, characterized in that, When the first message conforms to Internet Protocol version 4 (IPv4), the first message includes the Destination Options (DOH) header field; Alternatively, when the first message conforms to Internet Protocol version 6 (IPv6), the first message includes a flow flag field.

9. The data transmission apparatus according to claim 7 or 8, characterized in that, The relevant information also includes: the address of the data transmission device and the address of the second node.

10. The data transmission apparatus according to any one of claims 7-9, characterized in that, The device further includes a storage unit, the storage unit being used for: Store the relevant information.

11. The data transmission apparatus according to any one of claims 7-10, characterized in that, The processing unit is also used for: After sending the backpressure message, delete the relevant information.

12. The data transmission apparatus according to any one of claims 7-11, characterized in that, The backpressure message is used to instruct the second node not to send or to reduce the sending of the first message during a first time period after receiving the backpressure message.

13. A network system, characterized in that, The network system includes a data transmission device and a network controller. The data transmission device is the data transmission device as described in any one of claims 7-12. The network controller is used to control the data transmission device to send service messages, namely, a first service message and a second service message.

14. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores instructions that, when executed on the device, cause the device to perform the data transmission method as described in any one of claims 1-6.

15. A computer program product, characterized in that, The computer program product includes a computer program that, when run on a device, causes the device to perform the data transmission method as described in any one of claims 1-6.