A data transmission method and apparatus
By adjusting the bandwidth hop-by-hop during data stream transmission, the problems of high packet loss rate and PFC deadlock in the RDMA protocol are solved, achieving efficient lossless network transmission and improved bandwidth utilization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-06
- Publication Date
- 2026-03-06
AI Technical Summary
Traditional RDMA protocols experience a sharp performance drop when network packets are lost, and existing lossless network solutions such as PFC result in low bandwidth utilization and PFC deadlock issues.
By progressively reducing or increasing the transmission bandwidth of the source network devices in the data stream transmission, and flexibly adjusting the transmission channel bandwidth of each data stream according to the real-time transmission situation, network congestion can be alleviated and packet loss rate reduced.
While achieving lossless network transmission, it improves the bandwidth utilization of network devices and avoids the problems of low bandwidth utilization and PFC deadlock in traditional solutions.
Smart Images

Figure CN119276787B_ABST
Abstract
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] Traditional data center networks typically employ Ethernet technology to form a multi-hop symmetrical network architecture, using Transmission Control Protocol / Internet Protocol (TCP / IP) for data transmission. However, while traditional TCP / IP technology is mature, it cannot meet the demands of high-performance computing services. Therefore, Remote Direct Memory Access (RDMA) technology has gradually replaced TCP / IP as the preferred protocol for high-performance computing networks. RDMA can transmit data at full speed under lossless network conditions, but once packet loss occurs, RDMA cannot achieve the precise retransmission capabilities of TCP, resulting in a sharp decline in transmission performance.
[0003] Therefore, to reduce packet loss during RDMA protocol data transmission and achieve lossless network transmission, priority-based flow control (PFC) technology has been proposed. When network congestion occurs, downstream network devices send backpressure notification messages to upstream network devices, instructing the upstream devices to suspend the transmission of one or more data streams until the congestion is resolved, thereby avoiding packet loss caused by congestion. However, since PFC blocks all traffic of a certain priority level, traffic flowing to other ports may also be blocked, resulting in low bandwidth utilization of the devices. Summary of the Invention
[0004] This application provides a data transmission method and apparatus to solve the problem of low bandwidth utilization in current lossless network implementation schemes.
[0005] In a first aspect, this application provides a data transmission method. The method is applied to a source network device, which is one of a plurality of network devices connected to the source device for transmitting a first data stream. The first data stream is sent from the source device to a destination device. The plurality of network devices are connected to a control device. The method includes:
[0006] Receive congestion notification from a destination network device; the destination network device is one of the plurality of network devices connected to the destination device, and the congestion notification is sent by the destination network device when the amount of data belonging to the first data stream exceeds a preset threshold.
[0007] According to the congestion notification, the bandwidth used to transmit the first data stream is reduced from the first bandwidth to the second bandwidth;
[0008] Send a bandwidth reduction notification to the control device; the bandwidth reduction notification is used to instruct the control device to reduce the bandwidth of the first data stream transmitted hop by hop among the plurality of network devices, excluding the source device, according to the transmission order of the first data stream from the source device to the destination device.
[0009] In some embodiments, before receiving a congestion notification from the destination network device, the method further includes:
[0010] Receive bandwidth reduction rules from the control device; wherein the bandwidth reduction rules include the amount of bandwidth reduction after receiving the congestion notification.
[0011] Secondly, this application proposes another data transmission method, which is applied to a control device connected to multiple network devices for transmitting a first data stream, the first data stream being sent from a source device to a destination device, the method comprising:
[0012] Obtain the traffic of the first data stream transmitted by the plurality of network devices;
[0013] When the outbound traffic of the first data stream transmitted by the destination network device is greater than the first threshold, and the traffic of the first data stream transmitted by other network devices among the plurality of network devices is greater than the second threshold, the plurality of network devices are notified hop by hop to increase the bandwidth of the first data stream transmitted from the source device to the destination device in reverse order.
[0014] The destination network device is the network device connected to the destination device among the plurality of network devices.
[0015] In some embodiments, notifying the plurality of network devices to increase the bandwidth for transmitting the first data stream from a first bandwidth to a third bandwidth includes:
[0016] Following the reverse order of the transmission sequence of the first data stream from the source device to the destination device, bandwidth amplification notifications are sent hop-by-hop starting from the destination network device; wherein, the bandwidth amplification notification is used to instruct the plurality of network devices to amplify the bandwidth for transmitting the first data stream from a first bandwidth to a third bandwidth.
[0017] In some embodiments, before acquiring the traffic of the plurality of network devices transmitting the first data stream, the method further includes:
[0018] Traffic reporting notifications are sent to the plurality of network devices respectively; wherein, the traffic reporting notification includes a reporting period, and the traffic reporting notification is used to instruct the plurality of network devices to report the traffic of transmitting the first data stream to the control device according to the reporting period.
[0019] Thirdly, this application proposes a data transmission apparatus, wherein the apparatus is a source network device, or the apparatus is applied to the source network device; the source network device is a network device connected to the source device among a plurality of network devices used for transmitting a first data stream, the first data stream being sent from the source device to a destination device, and the plurality of network devices being respectively connected to a control device; the apparatus includes:
[0020] A communication unit is used to receive a congestion notification from a destination network device; the destination network device is one of the plurality of network devices connected to the destination device, and the congestion notification is sent by the destination network device when the amount of data belonging to the first data stream is greater than a preset threshold value;
[0021] The processing unit is configured to reduce the bandwidth used for transmitting the first data stream from the first bandwidth to the second bandwidth based on the congestion notification.
[0022] The communication unit is further configured to send a bandwidth reduction notification to the control device; the bandwidth reduction notification is configured to instruct the control device to reduce the bandwidth of the first data stream transmitted hop by hop among the plurality of network devices, excluding the source device, in accordance with the transmission order of the first data stream from the source device to the destination device.
[0023] In some embodiments, the communication unit is further configured to:
[0024] Receive bandwidth reduction rules from the control device; wherein the bandwidth reduction rules include the amount of bandwidth reduction after receiving the congestion notification.
[0025] Fourthly, this application proposes another data transmission apparatus, which is a control device, or the apparatus is applied to the control device, wherein the apparatus is connected to multiple network devices for transmitting a first data stream, the first data stream being sent from a source device to a destination device, and the apparatus includes:
[0026] An acquisition unit is used to acquire the traffic of the first data stream transmitted by the plurality of network devices;
[0027] The processing unit is further configured to, when the outgoing traffic of the first data stream transmitted by the destination network device is greater than a first threshold, and the traffic of the first data stream transmitted by other network devices among the plurality of network devices is greater than a second threshold, notify the plurality of network devices hop by hop to increase the bandwidth of the first data stream transmitted from the source device to the destination device in reverse order; wherein the destination network device is the network device connected to the destination device among the plurality of network devices.
[0028] In some embodiments, when the processing unit notifies the plurality of network devices to increase the bandwidth for transmitting the first data stream from a first bandwidth to a third bandwidth, it is specifically configured to:
[0029] Following the reverse order of the transmission sequence of the first data stream from the source device to the destination device, bandwidth amplification notifications are sent hop-by-hop starting from the destination network device; wherein, the bandwidth amplification notification is used to instruct the plurality of network devices to amplify the bandwidth for transmitting the first data stream from a first bandwidth to a third bandwidth.
[0030] In some embodiments, the processing unit is further configured to:
[0031] Traffic reporting notifications are sent to the plurality of network devices respectively; wherein, the traffic reporting notification includes a reporting period, and the traffic reporting notification is used to instruct the plurality of network devices to report the traffic of transmitting the first data stream to the control device according to the reporting period.
[0032] Fifthly, an electronic device is provided, comprising a controller and a memory. The memory stores computer-executable instructions, and the controller executes the computer-executable instructions in the memory to perform operational steps of the method of either the first or second aspect using hardware resources in the controller.
[0033] Sixthly, a computer-readable storage medium is provided, which stores instructions that, when executed on a computer, cause the computer to perform the methods described above.
[0034] This application proposes a method to reduce the transmission bandwidth of each network device hop-by-hop when network congestion occurs in the transmission channel of a data stream, starting from the source network device. This reduces the amount of data flowing into the data transmission channel, thereby alleviating network congestion and achieving lossless network transmission. Compared to traditional lossless network solutions that suffer from low bandwidth utilization, this application's solution flexibly adjusts the transmission bandwidth of each network device in the transmission channel of each data stream based on the real-time transmission status of each data stream. This ensures high bandwidth utilization of network devices while reducing packet loss and achieving lossless network transmission. Attached Figure Description
[0035] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:
[0036] Figure 1 This is a schematic diagram illustrating the impact of packet loss rate on throughput in an RDMA network.
[0037] Figure 2 This is a schematic diagram of a traditional lossless network architecture.
[0038] Figure 3 This is a schematic diagram of a wire end blockage phenomenon;
[0039] Figure 4A A schematic diagram of the architecture of a network system provided in an embodiment of this application;
[0040] Figure 4B This is a schematic diagram of another network system architecture provided in an embodiment of this application;
[0041] Figure 5 This is a schematic flowchart of a data transmission method provided in an embodiment of this application;
[0042] Figure 6 This is a schematic diagram of another data transmission method provided in an embodiment of this application;
[0043] Figure 7 This is a schematic diagram of another data transmission method provided in an embodiment of this application;
[0044] Figure 8 This is a schematic diagram of the structure of a data transmission device provided in an embodiment of this application;
[0045] Figure 9 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation
[0046] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of this application will be clearly and completely described below with reference to the accompanying drawings of the embodiments of this application. Obviously, the described embodiments are only some embodiments of the technical solutions of this application, and not all embodiments. Based on the embodiments recorded in this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the technical solutions of this application.
[0047] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this invention are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that embodiments of the invention described herein can be implemented in sequences other than those illustrated or described herein. Furthermore, the term "and / or" herein is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, and B alone. Additionally, the character " / " herein, unless otherwise specified, generally indicates that the preceding and following related objects have an "or" relationship.
[0048] Currently, data centers are evolving into computing power centers. The scale of computing clusters within data centers is constantly expanding, placing increasingly higher demands on the performance of the interconnect networks between computing nodes. High throughput and low latency have become two crucial requirements. To meet these requirements, data centers have adopted the RDMA protocol to replace the TCP protocol for network transmission. While RDMA can transmit data at full speed without network loss, its transmission performance degrades drastically in the event of packet loss. For example, see [link to relevant documentation]. Figure 1 This demonstrates the impact of packet loss on throughput in RDMA networks. It shows that a packet loss rate of 0.01% will cause the throughput of the RDMA network to drop to zero. Therefore, to reduce the packet loss rate in RDMA, technologies such as PFC have been proposed to address network congestion and reduce packet loss, thus achieving lossless networks.
[0049] For example, a schematic diagram of the network architecture of a traditional lossless network can be found here. Figure 2 .like Figure 2As shown, the network architecture includes an application acceleration layer, a traffic scheduling layer, a congestion control layer, a traffic control layer, hardware devices, and operations and maintenance (O&M). The application acceleration layer is optional; appropriate application acceleration technologies can be selected based on the specific application scenario to improve overall performance. The traffic scheduling layer addresses load balancing between service traffic and network links, ensuring different levels of quality of service (QoS) are provided for service traffic of varying priorities. The congestion control layer can employ Explicit Congestion Notification (ECN) technology, which, instead of dropping packets when network congestion occurs, notifies the source server to reduce the data transmission rate, thereby alleviating congestion at subsequent transmission nodes. Optionally, the congestion control layer can also employ Artificial Intelligence (AI) ECN technology, using AI algorithms to adjust ECN thresholds in real time, further improving throughput and reducing latency. The traffic control layer can use PFC technology to address network congestion through data traffic management. The O&M component can utilize telemetry technology to periodically and proactively report network device information to the control device for management. It should be noted that the algorithms used in each module of the network architecture described above are only examples, and other algorithms can also be used to implement the corresponding functions in each module. This application does not limit this.
[0050] While the traditional lossless network architecture described above can solve network congestion problems, it also has various issues. For example, consider Priority-Based Flow Control (PFC). When network congestion occurs, downstream network devices send backpressure notification messages to upstream devices, instructing them to suspend data streams of a specific priority until the congestion is resolved. However, since multiple data streams may share the same priority, suspending all data streams of a particular priority may also suspend traffic destined for other ports, causing Head-of-Line Blocking (HOLB) and resulting in low bandwidth utilization. See [link to relevant documentation]. Figure 3 This is a schematic diagram illustrating a wire end blockage phenomenon. (Example) Figure 3 As shown, data streams A, B, and C have the same priority and use the same transmission queue. Data streams A and C are causing network congestion, while data stream B does not experience congestion during its transmission. However, when the port buffer of a downstream network device reaches the PFC threshold, it sends a backpressure notification message to the upstream network device, instructing the upstream device to suspend transmission of all three data streams. This results in the HOLB (Holiday-Over-Limit) phenomenon for data stream B. The HOLB phenomenon leads to bandwidth waste in network devices.
[0051] Additionally, in certain special circumstances, such as equipment or link failures, a brief loop may appear in the data transmission path. When one network device in the loop reaches the PFC threshold, it sends a backpressure notification message to its upstream network device, causing all network devices in the loop to suspend data transmission, resulting in a PFC deadlock. Although the loop will disappear after repair, the PFC deadlock will not disappear. Even if the server is restarted and the data flow is interrupted, the deadlock cannot be automatically recovered.
[0052] It can be seen that traditional methods for achieving lossless networks suffer from low bandwidth utilization of network devices and potential PFC deadlock. Based on this, this application proposes a data transmission method for achieving lossless network transmission. When network congestion occurs, the transmission bandwidth of the network devices is gradually reduced hop-by-hop from the source of the data stream. Reducing the transmission bandwidth at the source reduces the amount of data flowing into the data transmission channel, lowering the transmission pressure on the data transmission channel and thus resolving the congestion problem at the data transmission channel exit. In the proposed scheme, the bandwidth of the data stream transmission channel can be flexibly adjusted according to the real-time transmission status of the data stream, resolving network congestion, reducing packet loss rate, and ensuring bandwidth utilization of network devices while achieving a lossless network.
[0053] Before introducing the data transmission scheme proposed in this application, the network system architecture to which this application applies will first be described. For example, see [link to relevant documentation]. Figure 4A This is a schematic diagram of the architecture of a network system provided in an embodiment of this application. Figure 4A The network system shown includes source devices, destination devices, multiple leaf switches, multiple spine switches, and a control device. The source and destination devices can be electronic devices such as servers and user terminals, with data flowing from the source devices to the destination devices. The multiple leaf switches and spine switches form multiple transmission paths for the data flow. The control device is connected to the multiple leaf switches and spine switches respectively, and is used for unified management and traffic monitoring of the multiple leaf switches and spine switches. For example, the function of the control device can be implemented by a server, server cluster, personal computer (PC), processor, processing chip, or cloud computing platform. For instance, the control device can be a Software Defined Network (SDN) controller.
[0054] exist Figure 4A The network system shown adopts a leaf-spine architecture. This application does not limit the network architecture; other architectures can also be used, such as those described in [reference needed]. Figure 4BThis is a schematic diagram of another network system architecture provided in an embodiment of this application. Figure 4B The network system shown includes source devices, destination devices, multiple access switches, multiple aggregation switches, a core switch, and control devices. For details on the source devices, destination devices, and control devices, please refer to [link to relevant documentation / reference]. Figure 4A This will not be elaborated further. Multiple access switches, multiple aggregation switches, and core switches together constitute multiple transmission paths for data flow.
[0055] It should be noted that, Figure 4A and Figure 4B The network architectures shown are merely two examples. This application does not specifically limit the implementation method of the network system architecture to which the solution applies, and furthermore... Figure 4A and Figure 4B The number of various types of equipment included is not specifically limited. For ease of description, it will be referred to below. Figure 4A The leaf switch and spine switch shown in the figure, as well as Figure 4B The access switches, aggregation switches, and core switches shown are collectively referred to as network devices used to transmit data streams.
[0056] Below, in conjunction with Figure 4A and Figure 4B The network system shown provides a detailed description of the solution in this application. See also... Figure 5 This is a schematic flowchart of a data transmission method provided in an embodiment of this application. Optionally, Figure 5 The method flow shown can be derived from Figure 4A or Figure 4B The network system shown is executed by a control device, a network device connected to the source device, and a network device connected to the destination device. It can be understood that the network device connected to the source device is the first hop in the network channel transmitting the data stream, and the network device connected to the destination device is the last hop in the network channel. For ease of description, the network device connected to the source device will be referred to as the source network device, and the network device connected to the destination device will be referred to as the destination network device. Figure 5 The method flow shown specifically includes:
[0057] 501, The destination network device retrieves the amount of data belonging to the first data stream from its cache.
[0058] For example, the destination network device can retrieve the amount of data in its own buffer used for transmitting the first data stream in real time, periodically, or non-periodically. It should be understood that the amount of data in the destination network device's buffer is sent by the upstream network device in the transmission channel of the first data stream. The destination network device receives a portion of the first data stream from the upstream network device, stores it in its buffer, and sends the buffered data to the destination device in chronological order.
[0059] 502. When the amount of data acquired exceeds a threshold, the destination network device sends a congestion notification to the source network device.
[0060] The congestion notification is used to instruct the bandwidth for transmitting the first data stream to be reduced.
[0061] When the amount of data in the first data stream exceeds a threshold, it indicates that the destination device is consuming the first data stream too slowly, causing network congestion at the destination network device. In this case, the destination network device can send a congestion notification to the source network device, instructing the source network device to reduce the transmission bandwidth of the first data stream, thereby limiting the first data stream from the source and alleviating network congestion.
[0062] 503, The source network device receives the congestion notification and reduces the bandwidth used to transmit the first data stream from the first bandwidth to the second bandwidth according to the congestion notification.
[0063] The bandwidth reduction is the difference between the first bandwidth and the second bandwidth, and the bandwidth reduction can be predetermined by the control device.
[0064] 504, the source network device sends a bandwidth reduction notification to the control device.
[0065] The bandwidth reduction notification is used to indicate that the bandwidth of the source device transmitting the first data stream is reduced from the first bandwidth to the second bandwidth.
[0066] 505, The control device receives a bandwidth reduction notification and, based on the bandwidth reduction notification, reduces the transmission bandwidth of multiple network devices in the transmission channel of the first data stream hop by hop.
[0067] For example, after receiving a bandwidth reduction notification, the control device can instruct multiple network devices in the transmission channel of the first data stream to reduce the bandwidth of the first data stream hop-by-hop, according to the transmission order of the first data stream from the source device to the destination device. For instance, the control device can send bandwidth reduction instruction information hop-by-hop, starting from the next-hop network device of the source network device, so that each network device in the transmission channel of the first data stream sequentially reduces the bandwidth of the first data stream.
[0068] Based on the above scheme, this application proposes that when network congestion occurs in the transmission channel of a data stream, the transmission bandwidth of network devices is gradually reduced hop by hop, starting from the source network device of the data stream transmission. This reduces the amount of data flowing into the data transmission channel, thereby alleviating network congestion and achieving lossless network transmission. Compared to the low bandwidth utilization problem in traditional lossless network implementation schemes, this application's scheme flexibly adjusts the transmission bandwidth of each network device in the transmission channel of each data stream based on the real-time transmission status of each data stream, ensuring bandwidth utilization of network devices while reducing packet loss rate to achieve lossless network transmission.
[0069] In some embodiments, when reducing bandwidth in the transmission channel of the first data stream, each network device can do so according to bandwidth reduction rules issued by the control device. For example, before performing elastic bandwidth adjustment, the control device can issue bandwidth reduction rules to each network device, instructing the amount of bandwidth reduction each network device will receive after receiving a congestion notification. In one possible implementation, the bandwidth reduction amount can also be adjusted based on the number of congestion notifications occurring during the transmission of the first data stream. For instance, if the number of congestion notifications occurring during the transmission of the first data stream exceeds a certain preset value within a certain period, the bandwidth reduction amount can be increased, further reducing the amount of data flowing into the transmission channel of the first data stream and decreasing the number of times congestion occurs.
[0070] To further understand the data transmission method provided in the embodiments of this application, specific embodiments are described below. See also Figure 6 This is a schematic diagram of another data transmission method provided in an embodiment of this application, specifically including:
[0071] 601, The control device sends bandwidth reduction rules to each network device in the transmission channel of the first data stream.
[0072] For example, each network device can store the received bandwidth reduction rules for later use.
[0073] 602, The destination network device obtains the amount of data belonging to the first data stream in the cache and determines that the amount of data is greater than the threshold value.
[0074] 603, the destination network device sends a congestion notification to the source network device.
[0075] For example, congestion notification can take the form of a Congestion Notification Packet (CNP).
[0076] 604. The source network device receives a congestion notification and reduces the bandwidth of the first data stream from the first bandwidth to the second bandwidth according to the stored bandwidth reduction rules.
[0077] 605, The source network device sends a bandwidth reduction notification to the control device.
[0078] 606. The control device receives the bandwidth reduction notification and, in accordance with the transmission order of the first data stream, sends the bandwidth reduction instruction hop-by-hop, starting from the next-hop network device of the source network device.
[0079] 607. Each network device receives a bandwidth reduction instruction and reduces the bandwidth of the first data stream according to the stored bandwidth reduction rules.
[0080] In one possible scenario, allocating insufficient transmission bandwidth to a data stream may result in slow data transmission and stuttering at the destination device. To address this issue and achieve flexible adjustment of the data transmission channel, this application proposes a method to increase the transmission bandwidth of the data stream based on its transmission status, thereby improving the data stream's transmission rate. The scheme for increasing the transmission bandwidth of the data stream is described in detail below.
[0081] For example, the scheme to amplify the transmission bandwidth of the data stream can be executed by a control device, or it can be implemented by a specific component such as a processor or processing chip in the control device. This application does not limit this; for ease of description, the following description uses the control device as the executing entity of the scheme to amplify the transmission bandwidth of the data stream. Optionally, the control device can obtain the outgoing and incoming traffic of each network device in the transmission channel of the first data stream, and determine whether the transmission bandwidth allocated to the first data stream is fully utilized based on the outgoing and incoming traffic of each network device. If it is fully utilized, the control device can predict the data consumption rate based on the outgoing traffic of the destination network device. When the data consumption rate is high, the control device can instruct each network device to amplify the bandwidth.
[0082] In some embodiments, before acquiring the egress and ingress traffic of each network device in the transmission channel of the first data stream, the control device may also send a traffic reporting notification to each network device, instructing each network device to report its own egress and ingress traffic for transmitting the first data stream to the control device according to the reporting period in the traffic reporting notification. Thus, the control device can acquire the egress and ingress traffic of each network device based on the data periodically reported by each network device. Alternatively, in other embodiments, the control device may also periodically request the egress and ingress traffic of transmitting the first data stream from each network device.
[0083] After acquiring the outbound and inbound traffic of each network device, the control device can determine the bandwidth utilization rate of the first data stream transmitted by each network device and the consumption rate of the first data stream by the destination device, thereby determining whether it is necessary to increase the transmission bandwidth of the first data stream. If it is determined that the transmission bandwidth of the first data stream needs to be increased, the control device can send bandwidth amplification notifications hop-by-hop, starting from the destination device, in reverse order of the transmission sequence of the first data stream, instructing each network device to increase the bandwidth of the first data stream, thereby improving the transmission rate of the first data stream and avoiding problems such as lag at the destination device. Of course, when instructing each network device to increase the transmission bandwidth of the first data stream, the control device needs to ensure that the amplified bandwidth is less than the total bandwidth of each device. In one possible scenario, if the amplified bandwidth of the first data stream still cannot meet the transmission requirements of the first data stream after the control device increases the transmission bandwidth of each network device, the control device can also instruct the switching of the transmission path of the first data stream.
[0084] To further understand the bandwidth amplification scheme proposed in this application, the data transmission process of the control device indicating the amplified bandwidth is described below with reference to specific embodiments. See also Figure 7 The flowchart of a data transmission method provided in this application embodiment includes:
[0085] 701, The control device sends a traffic reporting notification to each network device in the transmission channel of the first data stream.
[0086] The traffic reporting notification includes a reporting period, which instructs each network device to report its outbound and inbound traffic for transmitting the first data stream to the control device according to the reporting period. For example, the control device can also adjust the reporting period, such as by modifying the reporting period based on historical data indicating increased bandwidth for each network device. For instance, if increased bandwidth is indicated multiple times within a short period (i.e., the frequency of increased bandwidth indication exceeds a certain set threshold), it indicates that the bandwidth allocated to the first data stream does not match its transmission requirements. In this case, the control device can shorten the reporting period to promptly detect the bandwidth mismatch and make adjustments, allowing the transmission bandwidth of each network device to be quickly adjusted to suit the transmission requirements of the first data stream.
[0087] 702. The control device calculates the bandwidth utilization rate of each network device for transmitting the first data stream based on the obtained outbound and inbound traffic of each network device.
[0088] 703. When the bandwidth utilization rate is greater than the set threshold, the control device determines the consumption rate of the first data stream at the destination device based on the outbound traffic of the destination network device.
[0089] 704, The control equipment determines the bandwidth amplification factor based on the consumption rate.
[0090] For example, the higher the data consumption rate, the greater the bandwidth amplification factor.
[0091] 705, The control device sends bandwidth amplification notifications hop-by-hop from the destination network device in the reverse order of the first data stream transmission sequence.
[0092] The bandwidth amplification notification includes the bandwidth amplification factor.
[0093] 706. Each network device receives a bandwidth amplification notification and amplifies the bandwidth of the first data stream according to the bandwidth amplification factor.
[0094] Based on the same concept as the method described above, see [link to relevant documentation]. Figure 8 This application provides a data transmission apparatus 800 for performing the steps described in the above method embodiments. To avoid repetition, these steps will not be repeated here. The apparatus 800 includes a communication unit 801, a processing unit 802, and an acquisition unit 803.
[0095] In one possible scenario:
[0096] Communication unit 801 is used to receive a congestion notification from a destination network device; the destination network device is a network device connected to the destination device among the plurality of network devices, and the congestion notification is sent by the destination network device when the amount of data belonging to the first data stream is greater than a preset threshold value;
[0097] Processing unit 802 is configured to reduce the bandwidth used for transmitting the first data stream from the first bandwidth to the second bandwidth according to the congestion notification;
[0098] The communication unit 801 is further configured to send a bandwidth reduction notification to the control device; the bandwidth reduction notification is configured to instruct the control device to reduce the bandwidth of the first data stream transmitted hop by hop among the plurality of network devices, excluding the source device, in accordance with the transmission order of the first data stream from the source device to the destination device.
[0099] In some embodiments, the communication unit 801 is further configured to:
[0100] Receive bandwidth reduction rules from the control device; wherein the bandwidth reduction rules include the amount of bandwidth reduction after receiving the congestion notification.
[0101] In another possible scenario:
[0102] The acquisition unit 803 is used to acquire the traffic of the first data stream transmitted by the plurality of network devices;
[0103] The processing unit 802 is further configured to, when the outgoing traffic of the first data stream transmitted by the destination network device is greater than a first threshold, and the traffic of the first data stream transmitted by other network devices among the plurality of network devices is greater than a second threshold, notify the plurality of network devices hop by hop to increase the bandwidth of the first data stream transmitted from the source device to the destination device in reverse order; wherein the destination network device is the network device connected to the destination device among the plurality of network devices.
[0104] In some embodiments, when the processing unit 802 notifies the plurality of network devices to increase the bandwidth for transmitting the first data stream from a first bandwidth to a third bandwidth, it is specifically configured to:
[0105] Following the reverse order of the transmission sequence of the first data stream from the source device to the destination device, bandwidth amplification notifications are sent hop-by-hop starting from the destination network device; wherein, the bandwidth amplification notification is used to instruct the plurality of network devices to amplify the bandwidth for transmitting the first data stream from a first bandwidth to a third bandwidth.
[0106] In some embodiments, the processing unit 802 is further configured to:
[0107] Traffic reporting notifications are sent to the plurality of network devices respectively; wherein, the traffic reporting notification includes a reporting period, and the traffic reporting notification is used to instruct the plurality of network devices to report the traffic of transmitting the first data stream to the control device according to the reporting period.
[0108] Figure 9 A schematic diagram of the structure of an electronic device 900 provided in an embodiment of this application is shown. The electronic device 900 in this embodiment may further include a communication interface 903, such as a network port. The electronic device can transmit data through the communication interface 903. For example, the communication interface 903 can realize the function of the communication unit 801 described in the above embodiment.
[0109] In this embodiment, the memory 902 stores instructions that can be executed by at least one controller 901. By executing the instructions stored in the memory 902, the at least one controller 901 can perform various steps in the above-described method. For example, the controller 901 can implement the above-described... Figure 8 The functions of the processing unit 802 and the acquisition unit 803 in the process.
[0110] The controller 901 is the control center of the electronic device, capable of connecting various parts of the device via various interfaces and lines. It executes instructions stored in the memory 902 and retrieves data stored in the memory 902. Optionally, the controller 901 may include one or more processing units. The controller 901 may integrate an application controller and a modem controller. The application controller primarily handles the operating system and applications, while the modem controller primarily handles wireless communication. It is understood that the modem controller may not be integrated into the controller 901. In some embodiments, the controller 901 and the memory 902 may be implemented on the same chip; in other embodiments, they may be implemented on separate chips.
[0111] The controller 901 can be a general-purpose controller, such as a central processing unit (CPU), digital signal controller, application-specific integrated circuit, field-programmable gate array (FPGA), or other programmable logic device, discrete gate or transistor logic device, or discrete hardware component, capable of implementing or executing the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose controller can be a microcontroller or any conventional controller. The step of adjusting the bandwidth of the data transmission channel during data transmission, as disclosed in the embodiments of this application, can be directly executed by the hardware controller, or executed by a combination of hardware and software modules within the controller.
[0112] Memory 902, as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs, non-volatile computer-executable programs, and modules. Memory 902 may include at least one type of storage medium, such as flash memory, hard disk, multimedia card, card-type memory, random access memory (RAM), static random access memory (SRAM), programmable read-only memory (PROM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), magnetic memory, magnetic disk, optical disk, etc. Memory 902 can be any other medium capable of carrying or storing desired program code in the form of instructions or data structures that can be accessed by a computer, but is not limited thereto. In the embodiments of this application, memory 902 can also be a circuit or any other device capable of implementing storage functions for storing program instructions and / or data.
[0113] By designing and programming the controller 901, for example, the code corresponding to the data transmission method described in the foregoing embodiments can be embedded into the chip, so that the chip can execute the steps of the aforementioned data transmission method when running. How to design and program the controller 901 is a well-known technique to those skilled in the art, and will not be described in detail here.
[0114] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0115] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to this application. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a controller of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing device to produce a machine, such that the instructions, which execute via the controller of the computer or other programmable data processing device, generate instructions for implementing the flowchart illustrations. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0116] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0117] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0118] Although preferred embodiments of this application have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of this application.
[0119] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the spirit and scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.
Claims
1. A data transmission method, characterized by, The method is applied to a source network device, the source network device being a network device connected to a source device among a plurality of network devices for transmitting a first data stream, the first data stream being sent from the source device to a destination device, the plurality of network devices being respectively connected to a control device, and the method comprising: receiving a congestion notification from a destination network device, the destination network device being a network device connected to the destination device among the plurality of network devices, the congestion notification being sent by the destination network device when a data volume belonging to the first data stream is greater than a preset threshold value; reducing a bandwidth for transmitting the first data stream from a first bandwidth to a second bandwidth according to the congestion notification; sending a bandwidth reduction notification to the control device, the bandwidth reduction notification being used to instruct the control device to instruct, in a transmission order of the first data stream from the source device to the destination device, the plurality of network devices other than the source device to reduce the bandwidth for transmitting the first data stream.
2. The method of claim 1, wherein, Before receiving the congestion notification from the destination network device, the method further comprises: receiving a bandwidth reduction rule from the control device, wherein the bandwidth reduction rule comprises a bandwidth reduction amount after receiving the congestion notification.
3. A data transmission method, characterized by, The method is applied to a control device connected to a plurality of network devices for transmitting a first data stream, the first data stream being sent from a source device to a destination device, and the method comprising: obtaining a traffic of the plurality of network devices for transmitting the first data stream; when an egress traffic of the destination network device for transmitting the first data stream is greater than a first threshold value and a traffic of other network devices among the plurality of network devices for transmitting the first data stream is greater than a second threshold value, instructing, in a reverse order of a transmission order of the first data stream from the source device to the destination device, the plurality of network devices to enlarge a bandwidth for transmitting the first data stream from a first bandwidth to a third bandwidth hop by hop; wherein the destination network device is a network device connected to the destination device among the plurality of network devices.
4. The method of claim 3, wherein, The method further comprises: sending a bandwidth enlargement notification from the destination network device hop by hop in the reverse order of the transmission order of the first data stream from the source device to the destination device, wherein the bandwidth enlargement notification is used to instruct the plurality of network devices to enlarge the bandwidth for transmitting the first data stream from the first bandwidth to the third bandwidth.
5. The method according to claim 3 or 4, characterized in that, Before obtaining the traffic of the plurality of network devices for transmitting the first data stream, the method further comprises: sending a traffic reporting notification to the plurality of network devices respectively, wherein the traffic reporting notification comprises a reporting period, and the traffic reporting notification is used to instruct the plurality of network devices to report the traffic for transmitting the first data stream to the control device according to the reporting period.
6. A data transmission apparatus characterized by comprising: The device is a source network device, or the device is applied to the source network device; the source network device is a network device connected with a source device in a plurality of network devices for transmitting a first data stream, the first data stream is sent by the source device to a destination device, the plurality of network devices are respectively connected with a control device, and the device comprises: A communication unit is configured to receive a congestion notification from a destination network device; the destination network device is a network device connected with the destination device in the plurality of network devices, and the congestion notification is sent by the destination network device when the data amount belonging to the first data stream is greater than a preset threshold value; A processing unit is configured to reduce the bandwidth for transmitting the first data stream from a first bandwidth to a second bandwidth according to the congestion notification; The communication unit is further configured to send a bandwidth reduction notification to the control device; the bandwidth reduction notification is used to instruct the control device to indicate the plurality of network devices other than the source device to reduce the bandwidth for transmitting the first data stream in the transmission order of the first data stream from the source device to the destination device.
7. The apparatus of claim 6, wherein, The communication unit is further configured to: Receive a bandwidth reduction rule from the control device; wherein the bandwidth reduction rule includes the bandwidth reduction amount after receiving the congestion notification.
8. A data transmission apparatus, characterized by comprising: The device is a control device, or the device is applied to the control device, the device is connected with a plurality of network devices for transmitting a first data stream, the first data stream is sent by a source device to a destination device, and the device comprises: An acquisition unit is configured to acquire the traffic of the plurality of network devices for transmitting the first data stream; A processing unit is further configured to, when the egress traffic of the destination network device for transmitting the first data stream is greater than a first threshold value, and the traffic of other network devices in the plurality of network devices for transmitting the first data stream is greater than a second threshold value, instruct the plurality of network devices to enlarge the bandwidth for transmitting the first data stream from a first bandwidth to a third bandwidth in the reverse order of the transmission order of the first data stream from the source device to the destination device; wherein the destination network device is a network device connected with the destination device in the plurality of network devices.
9. The apparatus of claim 8, wherein, When the processing unit instructs the plurality of network devices to enlarge the bandwidth for transmitting the first data stream from the first bandwidth to the third bandwidth, it is specifically configured to: Send a bandwidth enlargement notification from the destination network device in the reverse order of the transmission order of the first data stream from the source device to the destination device; wherein the bandwidth enlargement notification is used to instruct the plurality of network devices to enlarge the bandwidth for transmitting the first data stream from the first bandwidth to the third bandwidth.
10. The apparatus of claim 8 or 9, wherein, The processing unit is further configured to: Send a traffic reporting notification to the plurality of network devices respectively; wherein the traffic reporting notification includes a reporting period, and the traffic reporting notification is used to instruct the plurality of network devices to report the traffic for transmitting the first data stream to the control device according to the reporting period.
11. An electronic device, comprising: The electronic device comprises a controller and a memory, The memory is configured to store computer programs or instructions. The controller is configured to execute the computer programs or instructions in the memory, so that the method in any one of claims 1-2 or 3-5 is executed.
12. A computer-readable storage medium, characterized in that, The computer readable storage medium stores computer executable instructions, which, when invoked by a computer, cause the computer to execute the method in any one of claims 1-2 or 3-5.
Citation Information
Patent Citations
Congestion control method in lossless network
CN108512774A
Method and device for processing RDMA network congestion, equipment and medium
CN112953842A