Data transmission system and method
By using a network controller in the RoCE network to determine the available paths and their entropy values, and assigning packets and selecting paths based on the credit value and entropy values on the sender's device, the problem of cluster network congestion in the RoCE network is solved, and network performance improvement and precise traffic regulation are achieved.
Patent Information
- Application Number
- CN202510571782.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-30
- Publication Date
- 2025-06-24
- Estimated Expiration
- 2045-04-30
AI Technical Summary
Cluster network congestion often occurs in RoCE networks, affecting network performance.
The available paths and entropy values between the sender device and the receiver device are determined through the network controller, and packet allocation and path selection are performed on the sender device according to the credit value and entropy value to achieve load balancing and network optimization.
It effectively reduces network congestion and packet loss, improves network performance, and realizes precise traffic regulation and path quality optimization by dynamically adjusting the set of credit and entropy values.
Smart Images

Figure CN120200974A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a data transmission system and method applied in an Ethernet (RDMA over Converged Ethernet, RoCE) network using Remote Direct Memory Access (RDMA). Background Art
[0002] RoCE networks, such as RoCEv2 networks, are high-performance networks based on Ethernet. They implement remote direct memory access through RDMA frames encapsulated in IP / UDP packets. Data packets arriving at the GPU server RDMA network card can be directly transmitted to the GPU memory, bypassing the CPU to reduce latency. RoCEv2 networks can be widely used in high-computing scenarios such as AI model training. Among them, RoCEV2 is the abbreviation of RoCE Version 2; IP is the abbreviation of Internet Protocol; UDP is the abbreviation of User Datagram Protocol; GPU is the abbreviation of Graphic Processing Unit; CPU is the abbreviation of Central Processing Unit; AI is the abbreviation of Artificial Intelligence.
[0003] At present, in the actual application of RoCE network, cluster network congestion often occurs, which affects the network performance of RoCE network. Therefore, how to improve the network performance of RoCE network is a technical problem that needs to be solved urgently. Summary of the invention
[0004] The present application provides a data transmission system and method to avoid cluster network congestion and improve network performance.
[0005] An embodiment of the present application provides a data transmission system, the system comprising: a sending device, a receiving device, and a network controller;
[0006] The network controller is used to determine at least one available path between the sending device and the receiving device, obtain an entropy value corresponding to each available path, and send each available path and the entropy value of the available path to the sending device; different available paths have different entropy values;
[0007] The sending device is used to control the number of packets to be sent to the receiving device currently based on the current credit value; the current credit value is a parameter that the sending device currently has for communication between the sending device and the receiving device, and the current credit value indicates the number of packets to be sent to the receiving device currently; and for each packet to be sent currently, an entropy value corresponding to the packet is allocated from the current available entropy value set according to the balance principle, and the packet is forwarded through the available path corresponding to the entropy value; wherein, the packet carries the entropy value allocated to the packet; the available entropy value set is determined based on the entropy values corresponding to the available paths between the sending device and the receiving device;
[0008] The receiving device is used to receive the packets transmitted by the sending device through the available paths between the sending device and the receiving device;
[0009] The sending device is further used to adjust the credit value when the global path quality between the sending device and the receiving device does not match the credit value; and to adjust the available entropy value set when it is determined based on the local path quality of at least one available path that the available entropy value set needs to be adjusted; wherein, the global path quality is determined based on the packets transmitted through the available paths between the sending device and the receiving device, and is used to characterize the overall communication quality between the sending device and the receiving device; the local path quality of any available path is determined based on the packets transmitted through the available path, and is used to characterize the path quality of the available path.
[0010] A data transmission method, which is applied to a sending device and includes:
[0011] Based on the current credit value, control the number of packets to be sent to the receiving device currently; the current credit value is a parameter that the sending device currently has for communication between the sending device and the receiving device, and the current credit value indicates the number of packets to be sent to the receiving device currently; and for each packet to be sent currently, an entropy value corresponding to the packet is allocated from the current available entropy value set according to the balance principle, and the packet is forwarded through the available path corresponding to the entropy value; wherein, the packet carries the entropy value allocated to the packet; the available entropy value set is determined based on the entropy values corresponding to the available paths between the sending device and the receiving device;
[0012] Adjust the credit value when the global path quality between the sender device and the receiver device does not match the credit value; and adjust the set of available entropy values when it is determined based on the local path quality of at least one available path that the set of available entropy values needs to be adjusted; wherein, the global path quality is determined based on the packets transmitted on each available path between the sender device and the receiver device, and is used to characterize the overall communication quality between the sender device and the receiver device; the local path quality of any available path is determined based on the packets transmitted on the available path, and is used to characterize the path quality of the available path.
[0013] A data transmission method, which is applied to a receiver device and includes:
[0014] Receive the packets transmitted by the sender device through the available paths between the sender device and the receiver device; the packets carry the entropy values assigned to the packets; the entropy values are selected by the sender device from the set of available entropy values according to the balance principle, and the set of available entropy values is composed of the entropy values corresponding to the available paths between the sender device and the receiver device;
[0015] Determine the global path quality based on the packets transmitted on each available path between the sender device and the receiver device;
[0016] Trigger the sender device to adjust the current credit value of the sender device when the global path quality does not match the current credit value that the sender device already has and matches the communication between the sender device and the receiver device; and,
[0017] Trigger the sender device to adjust the set of available entropy values when it is determined based on the local path quality of at least one available path that the set of available entropy values needs to be adjusted.
[0018] A data transmission method, which is applied to a network controller and includes:
[0019] Determine at least one available path between the sender device and the receiver device;
[0020] Obtain the entropy value corresponding to each available path; the entropy values of different available paths are different;
[0021] Send each available path and the entropy value of the available path to the sender device.
[0022] As can be seen from the above technical solutions, in the embodiments of the present application, in the RoCE network, the network controller perceives the communication relationship in advance and arranges the path between the sender device and the receiver device to obtain the entropy value of the available path between the sender device and the receiver device. Then, the network controller cooperates with the sender device to send the available path and the entropy value between the sender device and the receiver device to the sender device, so that the sender device distributes the entropy value for the packets to be sent according to the balance principle. This balance principle ensures that the communication between the sender device and the receiver device can cover all available paths between the sender device and the receiver device, achieving the optimal utilization of the network, realizing the load balance of all available paths between the sender device and the receiver device, avoiding a large number of existing similar packets from being transmitted through the same path, effectively reducing problems such as network congestion and packet loss, and improving the network performance.
[0023] Further, in this embodiment, when the global path quality between the sender device and the receiver device does not match the current credit value of the sender device (the current credit value matching the communication between the sender device and the receiver device), the sender device will also timely adjust the current credit value of the sender device; this ensures the precise regulation of traffic.
[0024] Further, in this embodiment, when it is determined that the available entropy value set needs to be adjusted based on the local path quality of at least one available path, the sender device will also adjust the available entropy value set, which avoids paths with poor path quality, such as congested paths, from continuing to be used for packet transmission, reduces network congestion, and improves the network performance. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] The accompanying drawings here are incorporated into the specification and form a part of this application, showing embodiments consistent with this application and used together with the specification to explain the principles of this application.
[0026] Figure 1 It is a schematic diagram of the system structure provided by the embodiments of this application.
[0027] Figure 2 It is an application structure diagram provided by the embodiments of this application.
[0028] Figure 3 It is a schematic diagram of the method flow provided by the embodiments of this application.
[0029] Figure 4 It is another schematic diagram of the method flow provided by the embodiments of this application.
[0030] Figure 5 It is another method flow chart provided by the embodiments of this application.
[0031] Figure 6 It is a schematic diagram of the electronic device structure provided by the embodiments of this application. Detailed implementation manners
[0032] To enable those skilled in the art to better understand the technical solutions provided in the embodiments of the present application, the application scenarios of the embodiments of the present application will be described below:
[0033] In a scenario of communicating based on a RoCE network, there are many reasons for network congestion:
[0034] For example, in the process of a sender device in a RoCE network sending a message to a receiver device, if there are a large number of similar messages in the message to be sent, since the hash values of these large number of similar messages may be the same, it may cause these large number of similar messages to be transmitted through the same communication path, resulting in uneven load on the path and causing problems such as network congestion, thereby reducing the performance of the network.
[0035] Also, for example, network congestion is caused by incast. Among them, incast refers to the phenomenon of excessive concentration of network or system resources caused by multiple sender devices simultaneously sending data to the same receiver device, which will cause network congestion and reduce network performance. For example, in an AI training scenario, when using a parameter server model, multiple GPUs need to send data to 1 GPU for summarization, which will generate an incast problem.
[0036] To solve the above technical problems, the embodiments of the present application provide a data transmission system applied to a RoCE network to reduce the above network congestion problems and improve network performance.
[0037] To enable those skilled in the art to better understand the technical solutions provided in the embodiments of the present application, and to make the above objects, features, and advantages of the embodiments of the present application more obvious and understandable, the technical solutions in the embodiments of the present application will be further described in detail below with reference to the accompanying drawings.
[0038] In a RoCE network such as a RoCEv2 network, the switch collects data in real time based on in-band telemetry (INT), such as timestamps (ts), queue lengths (qLen), transmitted bytes (txBytes), link bandwidth capacity (B), etc., and carries the information to the sender device 101, such as the sender network card, through the ACK packet of the receiver device 102, such as the receiver network card. The sender device 101, such as the sender network card, manages and controls data transmission based on this information. For example, by combining end-side packet spraying and network-side congestion control, data is transmitted on a multi-hop spraying path, so that when a single path fails, it can be quickly switched to an available path, eliminating the impact on the service side and achieving the maximization of network sharing efficiency. This congestion control, when applied to a one-to-many scenario (multiple available paths of the sender device 101 to a single receiver device 102), can avoid network backpressure, congestion spread, and even packet loss, improving application performance.
[0039] However, in the one-to-many scenario (multiple available paths of the sender device 101 to a single receiver device 102), it is difficult to ensure full coverage of all available paths. For this reason, the embodiments of the present application provide the following Figure 1 architecture:
[0040] See Figure 1 , Figure 1 which is a schematic structural diagram of a data transmission system applied to a RoCE network provided by an embodiment of the present application. In this embodiment, as an example, the RoCE network can be, for example, a RoCEv2 network, etc., and this embodiment does not specifically limit it.
[0041] As Figure 1 shown, the data transmission system 100 at least includes: a sender device 101, a receiver device 102, and a network controller 103. Optionally, the sender device 101 and the receiver device 102 can be devices such as terminals and servers, or devices such as network cards and GPUs, and the number of the sender device 101 and the receiver device 102 can be one or more, and this embodiment does not specifically limit this.
[0042] In this embodiment, the network controller 103 is configured to determine at least one available path between the sender device 101 and the receiver device 102, obtain the entropy value corresponding to each available path, and send each available path and the entropy value of the available path to the sender device 101. Among them, the entropy value of any path can represent a path, and the entropy values of different available paths are different.
[0043] The sender device 101 controls the number of packets to be currently sent to the receiver device 102 based on the current credit value; the current credit value is a parameter that the sender device 101 currently has for communication between the sender device 101 and the receiver device 102, and the current credit value indicates the number of packets to be currently sent to the receiver device 102; and for each packet to be currently sent, a corresponding entropy value is allocated for the packet from the current set of available entropy values according to the balance principle, and the packet is forwarded through the available path corresponding to the entropy value; wherein, the packet carries the entropy value allocated to the packet; the set of available entropy values is determined based on the entropy values corresponding to the available paths between the sender device and the receiver device.
[0044] The receiver device 102 is configured to receive the packets transmitted by the sender device 101 through the available paths between the sender device 101 and the receiver device 102.
[0045] The sender device 101 is further configured to adjust the current credit value of the sender device 101 when the global path quality between the sender device 101 and the receiver device 102 does not match the current credit value of the sender device 101 (the credit value matching the communication between the sender device 101 and the receiver device 102); and, when it is determined based on the local path quality of at least one available path that the above set of available entropy values needs to be adjusted, adjust the set of available entropy values.
[0046] Here, the global path quality is determined based on the packets transmitted through the available paths between the sender device 101 and the receiver device 102, and represents the overall communication quality between the sender device 101 and the receiver device 102 from a global perspective, so it is simply referred to as the global path quality.
[0047] Here, the local path quality of any available path is determined based on the packets transmitted through the available path, and is used to characterize the path quality of the available path. The reason for calling it the local path quality is that it is relative to the above-mentioned global path quality, and is not used for limitation.
[0048] Thus far, the description of the Figure 1 described structure is completed. The following is a specific description:
[0049] First, the above network controller 103 is further described:
[0050] In this embodiment, as an example, a collective communication library is also configured in the RoCE network. The collective communication library may refer to a software architecture for achieving efficient data communication in a distributed computing environment. The collective communication library can create a communication group according to the current communication requirements. The communication group may include at least two communication members with communication requirements and at least one communication relationship; among them, the communication members can be understood as the sending device and the receiving device with communication requirements; any communication relationship indicates the information to be communicated, and the information to be communicated here can be understood as the sending device and the receiving device to be communicated. For example, taking the network card as a communication member as an example, assuming that the communication group includes four communication members (such as network card 1, network card 2, network card 3, and network card 4) and 2 communication relationships, one communication relationship indicates that network card 1 and network card 3 are to be communicated, and the other communication relationship indicates that network card 2 and network card 4 are to be communicated.
[0051] Based on this, after creating the communication group, the above-mentioned collective communication library will synchronize the communication group to the network controller in the RoCE network. The network controller receives the communication group and obtains the communication relationships in the communication group, so as to determine the sending device and the receiving device to be communicated indicated by each communication relationship based on the information to be communicated indicated by each communication relationship. After that, the network controller 103 will determine at least one available path between the sending device and the receiving device indicated by each communication relationship for data transmission between the sending device and the receiving device.
[0052] As an example, when the network controller 103 determines at least one available path between the sending device and the receiving device, the specific implementation can be, for example: according to the current network traffic situation, arrange the path between the sending device and the receiving device to determine at least one available path between the sending device and the receiving device.
[0053] Optionally, the above-mentioned current network traffic situation may include, for example, the distribution of the existing traffic on the communication path and the path quality situation of the communication path, etc. Among them, the distribution of the existing traffic on the communication path may include, but is not limited to, the number of data streams transmitted using the communication path and the traffic size, etc. The path quality situation of the communication path may include, but is not limited to, the congestion and fault situations of the communication path, etc.
[0054] In this embodiment, as an example, according to the current network traffic conditions, the path between the sender device and the receiver device is arranged to determine at least one available path between the sender device and the receiver device. In specific implementation, for example, it can be: first obtain at least one communication path between the sender device and the receiver device, and then, according to the current network traffic conditions of the obtained communication paths, select the communication paths that meet the set path requirements from the obtained communication paths as the available paths. Optionally, the set path requirements can be, for example, that the communication path is non-congested and non-faulty; or, it can also be that the communication path is non-congested, non-faulty, and the quantity of the existing traffic on the communication path is less than or equal to the set quantity threshold, etc. This embodiment does not specifically limit the set path requirements, and can be flexibly set based on actual application requirements. The ultimate goal is to filter out the paths that affect load balancing and network performance, such as overloaded, congested, and faulty paths, effectively ensuring the load balancing of the paths and improving the network performance.
[0055] In this embodiment, the network controller 103 obtains the entropy value of the available path between the sender device and the receiver device. There are many implementation methods in specific implementation. For example, as an example, for each available path between the sender device and the receiver device, the network controller sends the path information of the available path to the specified switch used to calculate the entropy value of the available path, so that the specified switch calculates the entropy value of the available path based on the received path information; receive the entropy value of the available path calculated by the specified switch. Optionally, the specified switches for calculating the entropy values of the available paths can be the same switch or different switches. Taking the specified switches for calculating the entropy values of the available paths as different switches as an example, here, for each available path between the source device and the destination device, the specified switch for calculating the entropy value of the available path can be the switch on the available path.
[0056] For another example, as another embodiment, the network controller can independently calculate the entropy value of each available path based on the path information of each available path between the sender device and the receiver device.
[0057] In this embodiment, the algorithm for calculating the entropy value is not specifically limited. For example, it can be: perform a hash operation on the available path information of the available path to obtain the entropy value corresponding to the available path.
[0058] Optionally, the available path information corresponding to any of the above available paths may include, but is not limited to: path information characterizing the available path, and information associated with the sender device and the receiver device, etc. Among them, the path information characterizing the available path can be understood as the communication connection relationship between the network devices constituting the available path, such as Network Device 1 - Network Device 2 - Network Device 3. The information associated with the sender device and the receiver device may include, but is not limited to: port information on the sender device for sending packets to the available path, port information on the receiver device for receiving packets transmitted by the available path, and IP addresses of the sender device and the receiver device, etc. IP is the abbreviation of Internet Protocol.
[0059] It should be noted that, in this embodiment, when the network controller further perceives a rerouting event between the sender device and the receiver device, it will re-determine at least one available path between the sender device and the receiver device, and return to execute the above step of obtaining the entropy value of the available path between the sender device and the receiver device.
[0060] As an embodiment, here, perceiving a rerouting event between the sender device and the receiver device includes: when it is detected that at least one available path between the sender device and the receiver device is unavailable, it is determined that a rerouting event is perceived; or, when the set rerouting time point arrives, it is determined that a rerouting event is perceived.
[0061] By the network controller perceiving rerouting events such as network congestion or faults, etc., when congestion or faults occur, the network controller can timely re-obtain the latest entropy values of each available path and notify the sender device, achieving the effect of fast path switching and minimizing the impact of network problems on the training task.
[0062] In this embodiment, there are many implementation manners for the network controller to learn that at least one available path is unavailable. For example, as an embodiment, the network controller can regularly detect in an active detection manner whether there are faults or congestion in each available path between the sender device and the receiver device. If it is found that at least one available path between the sender device and the receiver device has a fault or congestion, it is determined that at least one available path between the sender device and the receiver device is unavailable. As for the active detection manner, this embodiment does not specifically limit it.
[0063] For another example, as another embodiment, when the network controller receives abnormal information reported by at least one network device on an available path between the sender device and the receiver device, where the abnormal information indicates that the network device has an abnormality such as congestion or a fault, etc., it determines that at least one available path between the sender device and the receiver device is unavailable.
[0064] The sender device and the receiver device are described below:
[0065] In combination with Figure 2 The specific application structure diagram is described in detail. Figure 2 It includes a sender device, a switch, a receiver device, and a network controller. The network controller is described as above. Both the sender device and the receiver device include: a host, a network card, a sending congestion control (CC) module, and a transceiver module. The transceiver module includes a receive (RX) pipeline, a transmit (TX) pipeline, a TX buffer, and an RX buffer. The roles of the sender device and the receiver device can also be interchanged.
[0066] Among them, when sending a message, it passes through the TX pipeline and the TX buffer in sequence. When receiving a message, it passes through the RX buffer and the RX pipeline in sequence. The CC module is a functional module in the network device or the network card, used to monitor and manage network congestion to ensure the stability and efficiency of network traffic. The host and the network card are connected through Peripheral Component Interconnect Express (PCIe). The network card is connected to the GPU / CPU in the host through PCIe to perform RDMA operations. The sending CC module is embedded in the transceiver pipeline of the network card to perform the interaction and control of credit values. The switch can add a signal (such as a mark) indicating network congestion or a fault to the message. The sending CC module is used to apply for credit values and control the amount of data sent according to the credit values.
[0067] In this embodiment, for each message to be sent currently by the sender device, it allocates a corresponding entropy value for the message from the current available entropy value set according to the balance principle, for example: for each message to be sent currently, if it is the initial polling currently, it starts polling from the initial position of the current available entropy value set to allocate the polled entropy value to the message. If it is not the initial polling currently, it starts polling from the previous polling position to allocate the polled entropy value to the message.
[0068] For example, the entropy value set may include 64 / 128 entropy values. In practical applications, the number of entropy values in the entropy value set can be set according to the actual application scenario and is not limited here.
[0069] For example, the current available entropy value set may include 64 / 128 entropy values. In practical applications, the number of entropy values in the current available entropy value set can be set according to the actual application scenario and is not limited here. The current available entropy value set is arranged in a specified order, such as in descending order, etc. In practical applications, it can be set according to the actual application scenario and is not limited here. Suppose the current available entropy value set contains 128 entropy values and the number of packets to be sent currently is 64, then 64 entropy values are selected in order and assigned to the 64 packets respectively (that is, each packet has a corresponding entropy value). For example, the first entropy value is assigned to the first packet, and so on. After that, the packets corresponding to each entropy value can be sent through the available paths corresponding to the respective entropy values (the packet carries the corresponding entropy value, and the entropy value can be carried in the User Datagram Protocol (UDP) port field in the user data of the packet).
[0070] The above-mentioned method of allocating the corresponding entropy value for the packet from the current available entropy value set according to the balancing principle realizes the spraying of RDMA traffic.
[0071] In this embodiment, for each packet transmitted on an available path, when an intermediate device (a network device between the sender device and the receiver device) on the available path receives the packet, it can use the Equal-Cost Multi-Path (ECMP) method to perform a hash operation with the entropy value carried in the packet as the hash factor, and determine the corresponding path based on the hash result. In this way, different paths can be corresponding to different entropy values, and the packets carrying different entropy values can be sent through the paths with different outgoing interfaces, thereby realizing the balanced load of traffic.
[0072] It should be noted that the intermediate device enables the functions of enabling the Explicit Congestion Notification (ECN) marking function and the Packet Trim Notification (Trim) marking function. Before sending a packet, if the intermediate device finds that there is no congestion problem, it will not add an ECN mark to the packet. If there is a congestion problem, it will add an ECN mark to the packet. And when the current congestion degree meets the set severe congestion degree, it will also add a trim mark to the packet. Then the intermediate device will continue to send the packet to the receiver device.
[0073] It can be seen that in this embodiment, the ECN marking function and the trim marking function are independent of each other. Therefore, both the ECN mark and the trim mark can be carried in the same message. Optionally, other marks can also be added to the message according to actual requirements, such as adding a Congestion Signal (CSIG) when congestion occurs, etc., which is not limited here.
[0074] Optionally, the above intermediate device can determine the corresponding proportion of adding the ECN mark according to the congestion degree (also known as the congestion level). Then, according to this proportion, add the ECN mark to the corresponding message. This realizes that even if the above intermediate device detects congestion, it does not add the ECN mark to all the messages forwarded by this device, but adaptively adds the ECN mark to some of the forwarded messages according to the corresponding proportion of adding the ECN mark.
[0075] In practical applications, the above congestion degree can be determined according to the actual application scenario, which is not limited here.
[0076] In addition, if the intermediate device finds that the congestion degree is relatively serious, greater than the preset allowable congestion degree, and at this time the buffer of the intermediate device is not enough to support message forwarding, then the payload field of the message to be forwarded can be deleted. At this time, the message only retains the message header information, and then a Trim mark is added to the message and forwarded. The Trim mark refers to a network signal used to indicate that part of the message content (such as the payload) has been trimmed, and only the message header information is retained.
[0077] Finally, the receiving device will receive the message forwarded from the sending device.
[0078] When the receiving device receives the message, it will determine whether the message carries an ECN mark and whether it carries a trim mark. And based on the judgment result, feedback the response message corresponding to the message to the sending device. The response message here can be a Selective Acknowledgment (SACK) message.
[0079] When the sending device receives the response message, it determines whether it is necessary to adjust the current available entropy value set according to whether the response message carries an ECN mark and whether it carries a trim mark. It should be noted that the response message will carry the entropy value carried by the corresponding message. And for any message, when the message carries at least one ECN mark, the response message feedback for this message will carry the same number of ECN marks; when the message carries at least one trim mark, the response message feedback for this message carries the same number of trim marks.
[0080] As an example, if the sender device finds that the response message does not carry the ECN mark and the trim mark, indicating that the quality of the available path corresponding to the entropy value carried in the response message is good, it can maintain the current available entropy value set; subsequently, the sender device can directly use the entropy value carried in the response message for the next packet transmission. This simplifies the decision-making process, avoids unnecessary calculations, and improves the transmission efficiency.
[0081] As an example, if the sender device finds that the response message carries the ECN mark and does not carry the trim mark, and the number of ECN marks carried is lower than the set mark number, it indicates that there is slight congestion but no packet loss in the available path corresponding to the entropy value carried in the response message. And if the number of ECN marks in the response message is relatively small, lower than the set mark number (e.g., 3), at this time, the sender device can continue to maintain the current available entropy value set and directly use the entropy value carried in the response message for the next packet transmission. This simplifies the decision-making process, avoids unnecessary calculations, and improves the transmission efficiency.
[0082] As an example, if the sender device finds that the response message carries the ECN mark and does not carry the trim mark, and the number of ECN marks carried is greater than or equal to the set mark number, it means that the path corresponding to the entropy value carried in the response message at this time is not optimal. Then it is determined to adjust the current available entropy value set. For example, select the entropy value carried in the response message from the current available entropy value set and set this entropy value as unavailable. This can optimize the path selection during slight congestion and avoid further deteriorating the transmission quality.
[0083] As an example, if the sender device finds that the response message carries the ECN mark and the trim mark, it indicates that the quality of the path corresponding to the entropy value carried in the response message is poor, and there is severe congestion or packet loss. At this time, the sender device can directly determine to adjust the current available entropy value set without judging the specific number of times of the ECN mark. For example, select the entropy value carried in the response message from the current available entropy value set and set this entropy value as unavailable. This fast response mechanism can effectively avoid continuing to transmit on a poor path, reduce packet loss and delay, and improve the overall transmission performance.
[0084] It should be noted that in this embodiment, if the receiver device also carries the trim mark in any packet, it will further trigger the sender device to retransmit the packet. For example, if a packet carries the trim mark, obtain the sequence number (Sequence Number, SeqNum) corresponding to the packet, and trigger the sender device to retransmit the corresponding original complete packet according to this SeqNum.
[0085] It should be noted that when the sender device determines whether to adjust the current available entropy value set based on whether the response message carries an ECN mark and whether it carries a trim mark, it can further combine network performance parameters for determination. The network performance parameters are used to evaluate network performance. For example, the network performance parameters include but are not limited to at least one of the following: the number of abnormal devices in the path corresponding to the entropy value carried by the response message, the number of packets to be sent (Backlog) of the sender device currently, the number of retransmitted packets, the number of packets with retransmission timeout (Retransmission Timeout, RTO), the number of Negative Acknowledgment (NACK) packets, etc. Among them, an abnormal device refers to the number of network device packet accumulation devices where packet accumulation anomalies occur on the available path. Backlog quantity: refers to the number of packets waiting to be sent currently, usually used to measure the load of the network sending buffer. The number of retransmitted packets: refers to the number of packets that need to be retransmitted due to not receiving an acknowledgment or detecting packet loss. The number of RTO packets: refers to the number of packets that are triggered for retransmission due to exceeding the retransmission timeout time RTO. RTO is the time threshold in the network protocol for determining whether a packet needs to be retransmitted. The number of NACK packets: refers to the number of packets that the receiver device notifies the sender device to retransmit through NACK. NACK is usually used to indicate packet loss or damage. The size of the received packet: refers to the size of the received packet, usually in bytes, and is used to measure the amount of data transmitted by the network.
[0086] As for how to determine whether to adjust the current available entropy value set based on whether the response message carries an ECN mark, whether it carries a trim mark, and by combining network performance parameters, it can be set according to actual needs, and this embodiment does not specifically limit it.
[0087] It should be noted that in this embodiment, for some entropy values in the available entropy value set, the quality of the corresponding available path is not optimal. For example, the packets transmitted on the above available path carry an ECN mark, do not carry a trim mark, and the number of carried ECN marks is lower than the set mark number. At this time, the quality of the available path is not optimal. To ensure the transmission performance of the available path, a weight can be set for the available path. The weight is used to characterize the subsequent reduction of the amount of packets that can be sent on the available path. For example, at this time, the amount of packets that can be sent on the available path is the product of the maximum amount of packets allowed on the available path and the weight. By setting a weight for the available path, the amount of packets that can be sent on the available path can be controlled.
[0088] Of course, for some available paths, if the path quality is very good, for example, the packets transmitted on the available path do not carry ECN marks and trim marks, it is considered that the quality of this available path is very good at this time, and then the amount of packets that can be sent on this available path can be adjusted to the maximum amount of packets allowed by this available path.
[0089] In addition, in this embodiment, if it is found that the number of available entropy values in the available entropy value set is lower than a set number, such as 10, at least one entropy value can be selected from the entropy values set as unavailable, and the quality of the path corresponding to the selected entropy value is better than the quality of the paths corresponding to other unavailable entropy values, and the selected entropy value is set as available.
[0090] In addition, in this embodiment, for the entropy value set as unavailable, if a recovery notice for the path corresponding to this entropy value is received, the entropy value corresponding to this path is adjusted to an available entropy value in real time.
[0091] The following describes the global path quality:
[0092] As an embodiment, the global path quality is determined by the receiving device through the following steps: obtaining the network performance parameters of each available path between the sending device and the receiving device within a set time period; the network performance parameter of any available path is used to characterize the network performance of this path; according to the network performance parameters of each available path within the set time period, and whether the packets transmitted on each available path within the above set time period carry an explicit congestion notification ECN mark and whether they carry a packet trimming notification trim mark, the global path quality is determined.
[0093] As an embodiment, the network performance parameter of any available path within the set time period is as described above, for example, at least including the number of abnormal devices; an abnormal device refers to a network device that has a packet accumulation abnormality on this available path. Optionally, the network performance parameter can be obtained in any way, such as being extracted from the packets, or can be statistically counted manually, or can also be statistically counted by the network devices in the path and then sent to the receiving device, which is not limited here.
[0094] Based on the above description, the receiving device determines the global path quality according to the network performance parameters of each available path within the set time period, and whether the packets transmitted on each available path within the set time period carry an explicit congestion notification ECN mark and whether they carry a packet trimming notification trim mark, which may include:
[0095] If the number of abnormal devices of each available path within the set time period is lower than the first set threshold, and the packets transmitted on each available path within the set time period do not carry ECN marks and trim marks, then the global path quality is determined to be the first quality;
[0096] If the number of abnormal devices on each available path within a set time period is lower than a second set threshold, the second set threshold is higher than the first set threshold, and the packets transmitted on each available path within the set time period do not carry a trim mark but at least one available path transmits packets carrying an ECN mark, then determine that the global path quality is the second quality;
[0097] If the number of abnormal devices on each available path within a set time period is lower than a second set threshold, and at least one available path transmits packets carrying a trim mark and at least one available path transmits packets carrying an ECN mark within the set time period, then determine that the global path quality is the third quality;
[0098] If the number of abnormal devices on each available path within a set time period is higher than a second set threshold, and at least one available path transmits packets carrying a trim mark and at least one available path transmits packets carrying an ECN mark within the set time period, then determine that the global path quality is the fourth quality;
[0099] Among them, the first quality, the second quality, the third quality, and the fourth quality decrease in sequence.
[0100] Optionally, the first set threshold can be 1, and a number of abnormal devices lower than 1 indicates that there is no packet accumulation problem in all network devices. The second set threshold can be a fixed value, such as 3, or can be calculated based on the device quantity ratio. For example, if the total number of devices is 12 and the device quantity ratio can be 1 / 3, then the second set threshold can be set to 4.
[0101] In this embodiment, the receiving device further determines whether the global path quality between the sending device and the receiving device matches the current credit value of the sending device. The current credit value is the credit value that the sending device already has and matches the communication between the sending device and the receiving device; when they do not match, send an informing message to the sending device. The informing message is used to inform the non - match and the informing message carries a new credit value, so that the sending device adjusts the current credit value to the new credit value carried by the informing message.
[0102] As an embodiment, the above determination of whether the global path quality between the sending device and the receiving device matches the current credit value of the sending device includes:
[0103] Obtain the credit value corresponding to the global path quality between the sending device and the receiving device according to the correspondence between the global path quality and the credit value; if the obtained credit value is different from the current credit value of the sending device, determine that the global path quality between the sending device and the receiving device does not match the current credit value of the sending device, otherwise, determine that the global path quality between the sending device and the receiving device matches the current credit value of the sending device; the new credit value carried in the notification message is the obtained credit value corresponding to the global path quality between the sending device and the receiving device.
[0104] As an embodiment, for example, in this embodiment, for the above-mentioned first quality, it indicates that the path quality is good, and the corresponding credit value can also indicate k maximum transmission units (MTUs). For the corresponding second quality, it is inferior to the first quality, but the path quality is still relatively good. However, there is packet accumulation on individual network devices, but no packet loss has occurred yet. Therefore, the released credit value is slightly reduced. For example, its corresponding credit value can indicate k-1 MTUs. For the third quality, it indicates that the overall path quality is average, and there is packet accumulation on individual devices and packet loss occurs. Therefore, the released credit value can be reduced to relieve the congestion of the bottleneck path. For example, its corresponding credit value can indicate k-2 MTUs. For the fourth quality, it indicates that the overall path quality is poor. At this time, the receiving device should greatly reduce the released credit value to relieve the congestion of the bottleneck path. For example, its corresponding credit value indicates k / 2 MTUs.
[0105] In practical applications, the above correspondence can be set according to the actual application scenario and is not limited here.
[0106] As another embodiment, the determination of whether the global path quality between the sending device and the receiving device matches the current credit value of the sending device includes:
[0107] Obtain the historical global path quality from the sending device to the receiving device determined within the historical time period;
[0108] Determine a reference credit value according to the current credit value of the sending device and the quality difference between the historical global path quality and the global path quality;
[0109] If the reference credit value is different from the current credit value of the sender device, it is determined that the global path quality between the sender device and the receiver device does not match the current credit value of the sender device; otherwise, it is determined that the global path quality between the sender device and the receiver device matches the current credit value of the sender device; the new credit value carried in the notification message is the reference credit value.
[0110] As an embodiment, determining a reference credit value according to the current credit value of the sender device and the quality difference between the historical global path quality and the global path quality includes:
[0111] According to the principle that the adjustment range of the credit value is positively correlated with the quality difference, and in combination with the quality difference between the historical global path quality being higher than the global path quality, the reference credit value is determined.
[0112] For example, when the historical global path quality is higher than the global path quality, if the quality difference between the historical global path quality and the global path quality is lower than M, the difference between the current credit value and the first specified quantity is determined as the reference credit value; M is a positive number; if the quality difference is not lower than M, the difference or ratio between the current credit value and the second specified quantity is determined as the reference credit value.
[0113] For another example, when the historical global path quality is lower than the global path quality, if the quality difference between the historical global path quality and the global path quality is higher than -M, the sum of the current credit value and the first specified quantity is determined as the reference credit value; if the quality difference is not higher than -M, the sum or product of the current credit value and the second specified quantity is determined as the reference credit value. For example, M can be 1.
[0114] In practical applications, the first specified quantity and the second specified quantity can be set according to the actual application scenario. For example, they are 1 and 2 respectively, and there is no limitation here. The quality difference can be a level difference, and M can be set according to the actual application scenario. For example, it can be 1 or 2, etc., and there is no limitation here.
[0115] For example, M = 2, the first specified quantity is 1, the second specified quantity is 2. If the historical global path quality is higher than the global path quality and the quality difference is 1 which is less than 2, the above reference credit value can be: the current credit value - 1 (i.e., the second specified quantity). If the historical path quality is higher than the path quality and the quality difference is 2 = M, the above reference credit value can be: the current credit value / 2 (i.e., the second specified quantity).
[0116] In practical applications, corresponding credit change amplitudes can also be set for each quality difference respectively, so as to increase or decrease the current credit value by the corresponding credit change amplitude according to the calculated quality difference to obtain the reference credit value, and there is no limitation here.
[0117] Further, upper and lower thresholds of the credit value can also be set. If the calculated reference credit value is higher than the maximum credit value, the maximum credit value is directly used as the reference credit value. Conversely, if the calculated reference credit value is lower than the minimum credit value, the minimum credit value is used as the reference credit value.
[0118] Corresponding to Figure 2 For the structure shown, in this embodiment, initially, the sending CC module in the network card of the sending device sends a credit value application message to the network card of the receiving device via the TX pipeline and the TX buffer through the switch according to its own data sending requirements.
[0119] Based on the received credit value application message, the receiving device determines the allocated credit value. In one implementation, the credit value application message is sent to the RX pipeline via the RX buffer of the receiving device. The network card of the receiving device extracts the credit value application message from the RX pipeline and passes it to the receiving CC module of the receiving device. The credit value allocation module in the receiving CC module can calculate the allocated credit value according to the credit value allocation algorithm. The receiving CC module in the receiving device returns the allocated credit value to the network card of the sending device via the TX pipeline and the TX buffer through the switch.
[0120] Initially, the sending device will obtain the credit value allocated by the receiving device. Initially, the sending device controls the amount of messages sent to the receiving device according to this credit value.
[0121] Subsequently, the credit value at the sending device end will be determined based on the global path quality detected by the receiving device, as described above.
[0122] In the embodiment of the present application, the receiving device can sense whether network congestion and other faults occur, and adjust the credit value based on the sensed network transmission state (i.e., path quality) to solve network congestion and other fault problems. Specifically, the receiving device can evaluate the path quality of message transmission according to the ECN mark, trim mark, and network performance parameters, and adjust the credit value allocated to the sending device according to the path quality, thereby improving the accuracy of path quality evaluation, dynamically adjusting the credit value according to the path quality, and being able to perform network adjustment in a timely manner in the event of network congestion and other fault scenarios, achieving the effect of reducing network congestion, improving the timeliness and flexibility of credit value adjustment, and network performance.
[0123] The corresponding implementation methods will be described below from the perspectives of the above-mentioned sending device, receiving device, and network controller.
[0124] SeeFigure 3 , Figure 3 is the flowchart of the method provided by the embodiment of this application. The method is applied to the sender device. As Figure 3 shown, the process may include:
[0125] Step 301, control the number of packets to be sent to the receiver device currently based on the current credit value; the current credit value is a parameter existing in the sender device currently for communication between the sender device and the receiver device, and the current credit value indicates the number of packets to be sent to the receiver device currently.
[0126] Step 302, for each packet to be sent currently, allocate a corresponding entropy value for the packet from the current available entropy value set according to the balance principle, and forward the packet through the available path corresponding to the entropy value; wherein, the packet carries the entropy value allocated to the packet; the available entropy value set is determined according to the entropy values corresponding to the available paths between the sender device and the receiver device.
[0127] Step 303, when the global path quality between the sender device and the receiver device does not match the credit value, adjust the credit value; and, when it is determined that the available entropy value set needs to be adjusted based on the local path quality of at least one available path, adjust the available entropy value set; wherein, the global path quality is determined according to the packets transmitted by each available path between the sender device and the receiver device, and is used to characterize the overall communication quality between the sender device and the receiver device; the local path quality of any available path is determined according to the packets transmitted by the available path, and is used to characterize the path quality of the available path.
[0128] So far, the Figure 3 shown process is completed. Each operation performed by the above sender device Figure 3 shown in the process is also involved, and will not be repeated one by one here.
[0129] See Figure 4 , Figure 4 is another flowchart of the method provided by the embodiment of this application. The method is applied to the receiver device. As Figure 4 shown, the method includes:
[0130] Step 401, receive the packets transmitted by the sender device through the available paths between the sender device and the receiver device; the packet carries the entropy value allocated to the packet; the entropy value is selected by the sender device from the available entropy value set according to the balance principle, and the available entropy value set is composed of the entropy values corresponding to the available paths between the sender device and the receiver device.
[0131] Step 402: Determine the global path quality based on the packets transmitted over each available path between the sender device and the receiver device.
[0132] Step 403: Trigger the sender device to adjust its current credit value when the global path quality does not match the current credit value that the sender device already has and that matches the communication between the sender device and the receiver device; and, trigger the sender device to adjust the available entropy value set when it is determined based on the local path quality of at least one available path that the available entropy value set needs to be adjusted.
[0133] Thus, the Figure 4 shown process is completed. Each operation performed by the above receiver device Figure 4 will also be involved in the shown process, which will not be repeated here one by one.
[0134] Refer to Figure 5 , Figure 5 , which is another flowchart of the method provided by the embodiment of the present application. This method is applied to a network controller. As Figure 5 shown, this method includes:
[0135] Step 501: Determine at least one available path between the sender device and the receiver device.
[0136] Step 502: Obtain the entropy value corresponding to each available path; the entropy values of different available paths are different.
[0137] Step 503: Send each available path and the entropy value of this available path to the sender device.
[0138] Thus, the Figure 5 shown process is completed. Each operation performed by the above receiver device Figure 5 will also be involved in the shown process, which will not be repeated here one by one.
[0139] The embodiment of the present application also provides the hardware structures corresponding to the sender device, the receiver device, and the network controller. Refer to Figure 6 , this hardware structure may include: a processor and a machine-readable storage medium, and the machine-readable storage medium stores machine-executable instructions that can be executed by the processor; the processor is used to execute the machine-executable instructions to implement the methods disclosed in the above examples of the present application. Corresponding to the sender device, the processor is used to execute the machine-executable instructions to implement the steps performed by the sender device in the above examples of the present application. Corresponding to the receiver device, the processor is used to execute the machine-executable instructions to implement the steps performed by the receiver device in the above examples of the present application. Corresponding to the network controller, the processor is used to execute the machine-executable instructions to implement the steps performed by the network controller in the above examples of the present application.
[0140] It should be noted that the specific implementation processes of the above steps can be found in the relevant descriptions in the above system, and will not be elaborated here.
[0141] The above are only the preferred embodiments of the present application and are not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present application shall be included within the scope of protection of the present application.
Claims
1. A data transmission system, characterized in that: The system comprises: a sending device, a receiving device, and a network controller; The network controller is used to determine at least one available path between a sending device and a receiving device, obtain an entropy value corresponding to each available path, and send each available path and the entropy value of the available path to the sending device; different available paths have different entropy values; The sender device is used to control the number of messages to be sent to the receiver device based on the current credit value; the current credit value is a parameter currently available in the sender device for communication between the sender device and the receiver device, and the current credit value indicates the number of messages to be sent to the receiver device; and for each message to be sent, a corresponding entropy value is assigned to the message from the current available entropy value set according to the balance principle, and the message is forwarded through the available path corresponding to the entropy value; the message carries the entropy value assigned to the message, and the entropy value is used to indicate the corresponding message transmission path; the available entropy value set is determined based on the entropy value corresponding to the available path between the sender device and the receiver device; The receiving device is used to receive a message transmitted by the sending device through an available path between the sending device and the receiving device; The sending device is further used to adjust the credit value when the global path quality between the sending device and the receiving device does not match the credit value; and adjust the available entropy value set when it is determined that the available entropy value set needs to be adjusted based on the local path quality of at least one available path; the global path quality is determined based on the messages transmitted by each available path between the sending device and the receiving device, and is used to characterize the overall communication quality between the sending device and the receiving device; the local path quality of any available path is determined based on the messages transmitted by the available path, and is used to characterize the path quality of the available path.
2. The system according to claim 1, characterized in that Obtaining the entropy value corresponding to each available path includes: For each available path between the sender device and the receiver device, the path information of the available path is sent to a designated switch for calculating the entropy value for the available path, so that the designated switch calculates the entropy value of the available path based on the received path information; the designated path machine is independent of the sender device and the receiver device; The entropy value of the available path calculated by the designated switch is received.
3. The system according to claim 1, characterized in that The network controller is also used for: When a rerouting event between the sending device and the receiving device is sensed, at least one available path between the sending device and the receiving device is re-determined, and the step of obtaining an entropy value corresponding to each available path is returned to be executed.
4. The system according to claim 3, characterized in that The sensing of a rerouting event between the sending device and the receiving device includes: When it is detected that at least one available path between the sending device and the receiving device is unavailable, it is determined that a rerouting event is sensed; or, When the set rerouting time point arrives, it is determined that a rerouting event is sensed.
5. The system according to claim 1, characterized in that The allocating a corresponding entropy value for each message to be sent from a current available entropy value set according to a balance principle includes: For each message to be sent, if it is an initial polling, polling is started from the initial position of the available entropy value set to assign the polled entropy value to the message; if it is a non-initial polling, polling is started from the last polling position to assign the polled entropy value to the message.
6. The system according to claim 1, characterized in that The global path quality is determined by the receiving device through the following steps: Obtaining network performance parameters of each available path between the sender device and the receiver device within a set time period; the network performance parameters of any available path are used to characterize the network performance of the path; The global path quality is determined according to the network performance parameters of each available path within a set time period, and whether the messages transmitted by each available path within the set time period carry an explicit congestion notification ECN mark and whether they carry a packet trimming notification trim mark.
7. The system according to claim 6, characterized in that The network performance parameters of any available path within the set time period at least include the number of abnormal devices; an abnormal device refers to a network device with abnormal message accumulation on the available path; Determining the global path quality according to the network performance parameters of each available path within the set time period and whether the message transmitted by each available path within the set time period carries an explicit congestion notification ECN mark and whether it carries a packet trimming notification trim mark includes: If the number of abnormal devices on each available path within the set time period is lower than the first set threshold, and the messages transmitted by each available path within the set time period do not carry the ECN mark and the trim mark, then the global path quality is determined to be the first quality; If the number of abnormal devices on each available path within a set time period is lower than a second set threshold, the second set threshold is higher than the first set threshold, and the packets transmitted by each available path within the set time period do not carry a trim mark but the packets transmitted by at least one available path carry an ECN mark, then the global path quality is determined to be the second quality; If the number of abnormal devices on each available path within the set time period is lower than the second set threshold, and at least one available path within the set time period transmits a message carrying a trim mark and at least one available path transmits a message carrying an ECN mark, then the global path quality is determined to be the third quality; If the number of abnormal devices on each available path within the set time period is higher than the second set threshold, and the message transmitted by at least one available path within the set time period carries a trim mark and the message transmitted by at least one available path carries an ECN mark, then the global path quality is determined to be the fourth quality; The first mass, the second mass, the third mass and the fourth mass decrease in sequence.
8. The system according to claim 6 or 7, characterized in that: The receiving device is further configured to: Determining whether a global path quality between the sender device and the receiver device matches a current credit value of the sender device, where the current credit value is an existing credit value of the sender device that matches the communication between the sender device and the receiver device; When there is no match, a notification message is sent to the sending device, where the notification message is used to notify the mismatch and the notification message carries a new credit value, so that the sending device adjusts the current credit value to the new credit value carried by the notification message.
9. The system according to claim 8, characterized in that The determining whether the global path quality between the sender device and the receiver device matches the current credit value of the sender device comprises: According to the correspondence between the global path quality and the credit value, a credit value corresponding to the global path quality between the sender device and the receiver device is obtained; if the obtained credit value is different from the current credit value of the sender device, it is determined that the global path quality between the sender device and the receiver device and the current credit value of the sender device do not match; otherwise, it is determined that the global path quality between the sender device and the receiver device and the current credit value of the sender device match; The new credit value carried in the notification message is the obtained credit value corresponding to the global path quality between the sending device and the receiving device.
10. The system according to claim 8, characterized in that The determining whether the global path quality between the sender device and the receiver device matches the current credit value of the sender device comprises: Acquire a historical global path quality from the sending device to the receiving device determined within a historical time period; Determining a reference credit value according to the current credit value of the sending device and a quality difference between the historical global path quality and the global path quality; If the reference credit value is different from the current credit value of the sender device, determining that the global path quality between the sender device and the receiver device and the current credit value of the sender device do not match; otherwise, determining that the global path quality between the sender device and the receiver device and the current credit value of the sender device match; The new credit value carried in the notification message is the reference credit value.
11. The system according to claim 10, characterized in that The determining a reference credit value according to the current credit value of the sending device and the quality difference between the historical global path quality and the global path quality comprises: The reference credit value is determined according to the principle that the adjustment range of the credit value is positively correlated with the quality difference and in combination with the quality difference that the historical global path quality is higher than the global path quality.
12. The system according to claim 1, characterized in that The determination based on the local path quality of at least one available path that the available entropy value set needs to be adjusted is determined by the sending device through the following steps: For each available path, receiving a response message fed back by the receiving device for the message transmitted by the available path; determining whether the available entropy value set needs to be adjusted according to whether the response message carries an explicit congestion notification ECN mark and a packet trimming notification trim mark; Among them, when the message transmitted by the available path carries at least one ECN mark, the response message fed back for the message transmitted by the available path carries the same number of ECN marks; when the message transmitted by the available path carries at least one trim mark, the response message fed back for the message transmitted by the available path carries the same number of trim marks.
13. The system according to claim 12, characterized in that The determining whether the available entropy value set needs to be adjusted according to whether the response message carries an explicit congestion notification ECN mark and a packet trimming notification trim mark includes: If the response message does not carry the ECN mark and the trim mark; or, the response message carries the ECN mark and does not carry the trim mark, and the number of the carried ECN marks is less than the set number of marks, then determining to maintain and adjust the set of available entropy values; If the response message carries an ECN mark and does not carry a trim mark, and the number of ECN marks carried is greater than or equal to the set number of marks; or, if the response message carries an ECN mark and a trim mark, determining to adjust the set of available entropy values; The adjusting the available entropy value set includes: selecting the entropy value carried by the response message from the available entropy value set, and setting the entropy value to be unavailable.
14. A data transmission method, characterized in that: The method is applied to a sending device, comprising: Based on the current credit value, the number of messages to be sent to the receiving device is controlled; the current credit value is a parameter currently available in the sending device for communication between the sending device and the receiving device, and the current credit value indicates the number of messages to be sent to the receiving device; For each message to be sent, a corresponding entropy value is assigned to the message from a current available entropy value set according to a balance principle, and the message is forwarded through an available path corresponding to the entropy value; wherein the message carries the entropy value assigned to the message; the available entropy value set is determined according to the entropy value corresponding to the available path between the sender device and the receiver device; When the global path quality between the sending device and the receiving device and the credit value do not match, adjust the credit value; and when it is determined based on the local path quality of at least one available path that the set of available entropy values needs to be adjusted, adjust the set of available entropy values; wherein the global path quality is determined based on the messages transmitted by each available path between the sending device and the receiving device, and is used to characterize the overall communication quality between the sending device and the receiving device; the local path quality of any available path is determined based on the messages transmitted by the available path, and is used to characterize the path quality of the available path.
15. A data transmission method, characterized in that: The method is applied to a receiving device, comprising: A message transmitted by a sending device through an available path between the sending device and the receiving device is received; the message carries an entropy value assigned to the message; the entropy value is selected by the sending device from the available entropy value set according to a balance principle, and the available entropy value set is composed of entropy values corresponding to the available paths between the sending device and the receiving device; Determine a global path quality based on messages transmitted on each available path between the sender device and the receiver device; triggering the sender device to adjust a current credit value of the sender device when the global path quality does not match a current credit value of the sender device that matches the communication between the sender device and the receiver device; and, The sending device is triggered to adjust the set of available entropy values when it is determined based on the local path quality of at least one available path that the set of available entropy values needs to be adjusted.
16. A data transmission method, characterized in that: The method is applied to a network controller, comprising: Determining at least one available path between the sender device and the receiver device; Obtain the entropy value corresponding to each available path; different available paths have different entropy values; Each available path and the entropy value of the available path are sent to the sending device.
Citation Information
Patent Citations
Message forwarding method, device and system and computer readable storage medium
CN110636003A
Network congestion control method and related device
CN115733799A
Congestion control method and device, storage medium and electronic equipment
CN118524065A
Network congestion processing method and device and related equipment
CN118714084A
Centralized control RoCEv2 network congestion control method
CN119155248A