Data transmission method and device
By adjusting the transmission bandwidth of multiple network devices by hop-by-hop during network congestion, the problem of RDMA protocol degradation in packet loss and low bandwidth utilization is solved, and efficient lossless network transmission and bandwidth utilization is achieved.
Patent Information
- Application Number
- CN202310827871.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-06
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2043-07-06
AI Technical Summary
Traditional TCP/IP networks cannot meet the needs in high-performance computing services. The RDMA protocol cannot realize the precise retransmission of the TCP protocol when packet loss, resulting in a sharp decline in transmission performance. The priority-based flow control technology leads to low bandwidth utilization. .
When network congestion is caused, the transmission bandwidth of multiple network devices will be reduced hop-by-hop from the source end of the data stream. By receiving congestion notifications and bandwidth reduction rules, the bandwidth will be adjusted hop-by-hop to reduce the amount of data, solve the network congestion problem, and if necessary Amplify bandwidth by hop to improve transmission rate.
It realizes the improvement of bandwidth utilization and the reduction of packet loss rate on the basis of lossless network transmission, avoiding the problems of low bandwidth utilization and PFC deadlock in traditional solutions.
Smart Images

Figure CN119276787A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a data transmission method and device. Background Art
[0002] Traditional data center networks usually use Ethernet technology to form a multi-hop symmetrical network architecture and use Transmission Control Protocol / Internet Protocol (TCP / IP) for data transmission. However, although the traditional TCP / IP network technology is mature, it cannot adapt to the needs of high-performance computing services. Therefore, Remote Direct Memory Access (RDMA) technology has gradually replaced TCP / IP technology and become the preferred protocol for high-performance computing networks. The RDMA protocol can transmit data at full rate in a lossless network state, but once packet loss occurs, the RDMA protocol cannot achieve the precise retransmission that the TCP protocol can achieve, causing the transmission performance to drop sharply.
[0003] Therefore, in order to reduce the packet loss rate of data transmitted by the RDMA protocol and achieve lossless network transmission, the Priority-based Flow Control (PFC) technology is proposed in the relevant technology. When network congestion occurs, the downstream network device sends a back pressure notification message to the upstream network device, instructing the upstream network device to suspend sending one or more data streams until the congestion is relieved, thereby avoiding the packet loss problem caused by congestion. However, since PFC blocks all traffic of a certain priority, traffic flowing to other ports may also be blocked, resulting in low bandwidth utilization of the device. Summary of the invention
[0004] The present application provides a data transmission method and device for solving the problem of low bandwidth utilization in the current lossless network solution.
[0005] In a first aspect, the present application provides a data transmission method, which is applied to a source network device, where the source network device is a network device connected to the source device among multiple network devices for transmitting a first data stream, the first data stream is sent from the source device to a destination device, and multiple network devices are connected to a control device, the method comprising:
[0006] Receiving a congestion notification from a destination network device; the destination network device is a network device connected to the destination device among the multiple network devices, and the congestion notification is sent by the destination network device when the amount of data belonging to the first data flow is greater than a preset threshold value;
[0007] reducing a bandwidth used to transmit the first data stream from a first bandwidth to a second bandwidth according to the congestion notification;
[0008] A bandwidth reduction notification is sent to the control device; the bandwidth reduction notification is used to instruct the control device to reduce the bandwidth for transmitting the first data stream by hop by hop in accordance with the transmission order of the first data stream from the source device to the destination device.
[0009] In some embodiments, before receiving the congestion notification from the destination network device, the method further includes:
[0010] A bandwidth reduction rule is received from the control device, wherein the bandwidth reduction rule includes a bandwidth reduction amount after receiving the congestion notification.
[0011] In a second aspect, the present application proposes another data transmission method, which is applied to a control device, wherein the control device is connected to multiple network devices for transmitting a first data stream, and the first data stream is sent from a source device to a destination device, and the method includes:
[0012] Acquire the traffic volume of the first data stream transmitted by the plurality of network devices;
[0013] When the egress flow of the first data stream transmitted by the destination network device is greater than a first threshold, and the flow of the first data stream transmitted by other network devices among the multiple network devices is greater than a second threshold, in the reverse order of the transmission order of the first data stream from the source device to the destination device, the multiple network devices are notified hop by hop to increase the bandwidth for transmitting the first data stream from the first bandwidth to a third bandwidth;
[0014] The destination network device is a network device connected to the destination device among the multiple network devices.
[0015] In some embodiments, notifying the plurality of network devices to increase the bandwidth for transmitting the first data stream from the first bandwidth to a third bandwidth includes:
[0016] In the reverse order of the transmission order of the first data stream from the source device to the destination device, a bandwidth enlargement notification is sent hop by hop starting from the destination network device; wherein the bandwidth enlargement notification is used to instruct the multiple network devices to enlarge the bandwidth for transmitting the first data stream from the first bandwidth to the third bandwidth.
[0017] In some embodiments, before acquiring the traffic of the first data stream transmitted by the plurality of network devices, the method further includes:
[0018] Sending flow reporting notifications to the multiple network devices respectively; wherein the flow reporting notification includes a reporting period, and the flow reporting notification is used to instruct the multiple network devices to report the flow of transmitting the first data flow to the control device according to the reporting period.
[0019] In a third aspect, the present application proposes a data transmission device, wherein 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 to the source device among multiple network devices for transmitting a first data stream, the first data stream is sent from the source device to a destination device, the multiple network devices are respectively connected to a control device, and the device includes:
[0020] a communication unit, configured to receive a congestion notification from a destination network device; the destination network device is a network device connected to the destination network device among the multiple network devices, and the congestion notification is sent by the destination network device when the amount of data belonging to the first data flow is greater than a preset threshold value;
[0021] a processing unit, configured to reduce a bandwidth used for transmitting the first data stream from a first bandwidth to a second bandwidth according to the congestion notification;
[0022] The communication unit is further used to send a bandwidth reduction notification to the control device; the bandwidth reduction notification is used to instruct the control device to reduce the bandwidth for transmitting the first data stream hop by hop 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] A bandwidth reduction rule is received from the control device, wherein the bandwidth reduction rule includes a bandwidth reduction amount after receiving the congestion notification.
[0025] In a fourth aspect, the present application proposes another data transmission device, the device is a control device, or the device is applied to the control device, the device is connected to multiple network devices for transmitting a first data stream, the first data stream is sent from a source device to a destination device, and the device includes:
[0026] An acquisition unit, configured to acquire traffic of the first data stream transmitted by the plurality of network devices;
[0027] The processing unit is further used to notify the multiple network devices hop by hop to increase the bandwidth for transmitting the first data stream from the first bandwidth to the third bandwidth in the reverse order of the transmission order of the first data stream from the source device to the destination device when the egress 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 multiple network devices is greater than a second threshold; wherein the destination network device is a network device among the multiple network devices connected to the destination device.
[0028] In some embodiments, the processing unit, when notifying the multiple network devices to increase the bandwidth for transmitting the first data stream from the first bandwidth to the third bandwidth, is specifically configured to:
[0029] In the reverse order of the transmission order of the first data stream from the source device to the destination device, a bandwidth enlargement notification is sent hop by hop starting from the destination network device; wherein the bandwidth enlargement notification is used to instruct the multiple network devices to enlarge the bandwidth for transmitting the first data stream from the first bandwidth to the third bandwidth.
[0030] In some embodiments, the processing unit is further configured to:
[0031] Sending flow reporting notifications to the multiple network devices respectively; wherein the flow reporting notification includes a reporting period, and the flow reporting notification is used to instruct the multiple network devices to report the flow of transmitting the first data flow to the control device according to the reporting period.
[0032] In a fifth aspect, an electronic device is provided, the electronic device comprising a controller and a memory. The memory is used to store computer-executable instructions, and the controller executes the computer-executable instructions in the memory to use hardware resources in the controller to perform the operation steps of any possible implementation method of the first aspect or the second aspect.
[0033] In a sixth aspect, a computer-readable storage medium is provided, in which instructions are stored, and when the computer-readable storage medium is run on a computer, the computer executes the methods in the above aspects.
[0034] This application proposes that when a network congestion problem occurs in the transmission channel of a certain data stream, the transmission bandwidth of each network device is reduced hop by hop starting from the source network device of the data stream transmission, so that the amount of data flowing into the data transmission channel is reduced, thereby alleviating the network congestion problem and achieving lossless network transmission. Compared with the problem of low bandwidth utilization in traditional solutions for achieving lossless networks, the solution of this application will flexibly adjust the transmission bandwidth of each network device in the transmission channel of each data stream according to the real-time transmission situation of each data stream, and ensure the bandwidth utilization of network devices on the basis of reducing the packet loss rate to achieve a lossless network. BRIEF DESCRIPTION OF THE DRAWINGS
[0035] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:
[0036] Figure 1 A schematic diagram showing the impact of packet loss rate on throughput in an RDMA network;
[0037] Figure 2 is a schematic diagram of a network architecture of a traditional lossless network;
[0038] Figure 3 A schematic diagram of a head-of-line blocking phenomenon;
[0039] Figure 4A A schematic diagram of the architecture of a network system provided in an embodiment of the present application;
[0040] Figure 4B A schematic diagram of the architecture of another network system provided in an embodiment of the present application;
[0041] Figure 5 A schematic diagram of a data transmission method flow chart provided in an embodiment of the present application;
[0042] Figure 6 A schematic diagram of another data transmission method flow chart provided in an embodiment of the present application;
[0043] Figure 7 A schematic diagram of another data transmission method flow chart provided in an embodiment of the present application;
[0044] Figure 8 A schematic diagram of the structure of a data transmission device provided in an embodiment of the present application;
[0045] Fig. 9 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0046] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the technical solution of the present application, rather than all of the embodiments. Based on the embodiments recorded in the application documents, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the technical solution of the present application.
[0047] The terms "first", "second", etc. in the specification and claims of the present invention and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present invention described herein can be implemented using sequences other than those illustrated or described herein. In addition, the term "and / or" herein is merely a description of the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B may represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " herein, unless otherwise specified, generally indicates that the previously associated objects are in an "or" relationship.
[0048] At present, data centers are evolving into computing power centers. The scale of computing clusters in data centers is constantly expanding, and the performance requirements for the Internet between computing nodes are getting higher and higher. High throughput and low latency have become two important requirements. In order to achieve these two requirements, data centers use the RDMA protocol instead of the TCP protocol to implement network transmission. The RDMA protocol can transmit data at full rate when the network is lossless, but once packet loss occurs, the transmission performance of the RDMA protocol will drop sharply. For example, you can refer to Figure 1 , showing the impact of packet loss on throughput in RDMA networks. It can be seen that a packet loss rate of 0.01 will cause the throughput of the RDMA network to drop to zero. Therefore, in order to reduce the packet loss rate of RDMA, PFC and other technologies are proposed in related technologies to reduce the packet loss rate by solving the network congestion problem and realize a lossless network.
[0049] For example, the network architecture diagram of a traditional lossless network can be found in 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 equipment, and operation and maintenance. Among them, the application acceleration layer is optional, and the appropriate application acceleration technology can be selected according to the corresponding application scenario to improve the overall performance. The traffic scheduling layer is used to solve the load balancing problem of business traffic and network links, so that business traffic of different priorities can obtain different levels of service quality assurance. The congestion control layer can use the explicit congestion notification (ECN) technology. When the network is congested, the message is not discarded, but the device that discovers the congestion notifies the source server to reduce the data transmission rate, thereby alleviating the congestion problem of subsequent transmission nodes. Optionally, the congestion control layer can also use artificial intelligence (AI) ECN technology to adjust the ECN threshold value in real time through the AI algorithm to further improve throughput and reduce latency. The traffic control layer can use PFC technology to solve the network congestion problem through the method of data traffic. The operation and maintenance part can use Telemetry technology to periodically and actively report the information of network devices to the control device, which is used for the control device to manage the network devices. It should be noted that the algorithms used by each module in the above-mentioned network architecture are only used as an example, and each module may also use other algorithms to implement corresponding functions, and this application does not limit this.
[0050] Although the above-mentioned traditional lossless network architecture can solve the problem of network congestion, it also has various problems. For example, taking PFC technology as an example, PFC technology is a priority-based flow control technology. When network congestion occurs, the downstream network device will send a back pressure notification message to the upstream network device, instructing the upstream device to suspend sending a certain priority data stream until the congestion is relieved. However, since there may be multiple data streams sharing the same priority, suspending all data streams of a certain priority may cause some flows to other ports to be suspended, resulting in head-of-line blocking (HOLB), resulting in low bandwidth utilization of the device. For example, see Figure 3 , which is a schematic diagram of a head-of-line blocking phenomenon. Figure 3 As shown in the figure, data stream A, data stream B and data stream C have the same priority and follow the same transmission queue. Data stream A and data stream C are the ones that cause network congestion, and there is no congestion during the transmission of data stream B. However, when the port cache of the downstream network device reaches the PFC threshold, it will send a back pressure notification message to the upstream network device, instructing the upstream device to suspend the transmission of data stream A, data stream B and data stream C, thus causing the HOLB phenomenon of data stream B. The HOLB phenomenon will lead to bandwidth waste problems of network devices.
[0051] In addition, in some special cases, such as when a device or link fails, a short loop will appear in the data transmission path. When a network device in the loop reaches the PFC threshold, it will send a back pressure notification message to the previous hop network device, causing all network devices in the loop to suspend sending data flows, forming a PFC deadlock. Although the loop will disappear after repair, the PFC deadlock caused will not disappear. Even if the server is restarted to interrupt the data flow, the deadlock cannot be automatically restored.
[0052] It can be seen that the traditional solution for realizing lossless network has problems such as low bandwidth utilization of network equipment and possible PFC deadlock. Based on this, the present application proposes a data transmission method for realizing lossless network transmission. When network congestion occurs, the transmission bandwidth of the network equipment is reduced hop by hop starting from the source end of the data stream transmission. Reducing the transmission bandwidth of the source end can reduce the amount of data flowing into the data transmission channel and reduce the transmission pressure of the data transmission channel, thereby solving the problem of congestion at the exit of the data transmission channel. In the solution proposed in the present application, it is possible to flexibly adjust the bandwidth of the transmission channel of the data stream according to the real-time transmission situation of the data stream, solve the problem of network congestion and reduce the packet loss rate, and ensure the bandwidth utilization of the network equipment while realizing a lossless network.
[0053] Before introducing the data transmission solution proposed in this application, the network system architecture applicable to this application is first introduced. Figure 4A , is a schematic diagram of the architecture of a network system provided in an embodiment of the present application. Figure 4A The network system shown includes a source device, a destination device, multiple leaf switches, multiple spine switches and a control device. Among them, the source device and the destination device can be electronic devices such as servers and user terminals, and the data flow is sent from the source device to the destination device. Multiple leaf switches and multiple spine switches are networked to form a variety of transmission paths for data flows. The control device is connected to multiple leaf switches and multiple spine switches respectively, and is used to uniformly manage and monitor the traffic of multiple leaf switches and multiple spine switches. Exemplarily, the function of the control device can be implemented by a server, a server cluster, a personal computer (Personal Computer, PC), a processor, a processing chip or a cloud computing platform. For example, the control device can be a software defined network (SDN) controller.
[0054] exist Figure 4A In the network system shown in FIG. 1 , the network is formed using a leaf-spine architecture. The present application does not limit the network architecture. The network may also be formed using other architectures, such as Figure 4B, is a schematic diagram of the architecture of another network system provided in an embodiment of the present application. Figure 4B The network system shown in the figure includes a source device, a destination device, multiple access switches, multiple aggregation switches, a core switch, and a control device. For more information about the source device, the destination device, and the control device, see Figure 4A Multiple access switches, multiple aggregation switches, and core switches together constitute multiple transmission paths for data streams.
[0055] It should be noted that Figure 4A and Figure 4B The network architectures shown are only two examples. This application does not specifically limit the implementation of the network system architecture to which the solution is applicable. Figure 4A and Figure 4B The number of various types of equipment included in the description is not specifically limited. Figure 4A The leaf switches and spine switches shown in FIG. Figure 4B The access switches, aggregation switches, and core switches shown in FIG. 1 are collectively referred to as network devices for transmitting data streams.
[0056] Next, combine Figure 4A and Figure 4B The network system shown in the figure specifically introduces the solution of this application. Figure 5 , is a flow chart of a data transmission method provided in an embodiment of the present application. Optionally, Figure 5 The method flow shown can be Figure 4A or Figure 4B The control device in the network system shown, the network device connected to the source device and the network device connected to the destination device are executed. It can be understood that the network device connected to the source device is the first hop in the network channel for transmitting the data stream, and the network device connected to the destination device is the last hop in the network channel. For the convenience of description, the network device connected to the source device is referred to as the source network device, and the network device connected to the destination device is referred to as the destination network device. Figure 5 The method flow shown specifically includes:
[0057] 501. The destination network device obtains the amount of data belonging to the first data flow in the cache.
[0058] Exemplarily, the destination network device can obtain the amount of data in its own cache for transmitting the first data stream in real time, periodically or non-periodically. It should be noted that the amount of data in the cache of the destination network device is sent by the previous-hop network device of the destination network device in the transmission channel of the first data stream. The destination network device receives part of the data of the first data stream from the previous-hop network device, stores it in the cache, and sends the data in the cache to the destination device in chronological order.
[0059] 502, when the amount of acquired data is greater than the threshold value, the destination network device sends a congestion notification to the source network device.
[0060] The congestion notification is used to instruct to reduce the bandwidth for transmitting the first data flow.
[0061] When the amount of data of the first data stream obtained is greater than the threshold value, it means that the destination device consumes the first data stream slowly, resulting in network congestion at the destination network device. At this time, 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 flow of the first data stream from the source end and alleviating network congestion.
[0062] 503 , the source network device receives the congestion notification, and reduces the bandwidth used to transmit the first data flow from the first bandwidth to the second bandwidth according to the congestion notification.
[0063] The bandwidth reduction amount is the difference between the first bandwidth and the second bandwidth, and the bandwidth reduction amount may be pre-indicated 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 for 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 reduces the transmission bandwidth of multiple network devices in the transmission channel of the first data flow hop by hop according to the bandwidth reduction notification.
[0067] Exemplarily, after receiving the bandwidth reduction notification, the control device may instruct multiple network devices in the transmission channel of the first data stream to reduce the bandwidth for transmitting 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 example, the control device may start from the next hop network device of the source network device and send the bandwidth reduction indication information hop by hop, so that each network device in the transmission channel of the first data stream reduces the bandwidth for transmitting the first data stream in turn.
[0068] Based on the above scheme, the present application proposes that when a network congestion problem occurs in the transmission channel of a certain data stream, the transmission bandwidth of the network device is reduced hop by hop starting from the source network device of the data stream transmission, so that the amount of data flowing into the data transmission channel is reduced, thereby alleviating the network congestion problem and achieving lossless network transmission. Compared with the problem of low bandwidth utilization in traditional solutions for achieving lossless networks, the solution of the present application will flexibly adjust the transmission bandwidth of each network device in the transmission channel of each data stream according to the real-time transmission situation of each data stream, thereby ensuring the bandwidth utilization of network devices on the basis of reducing the packet loss rate to achieve a lossless network.
[0069] In some embodiments, when reducing the bandwidth, each network device in the transmission channel of the first data stream can implement the bandwidth reduction rules issued by the control device. Exemplarily, before performing elastic bandwidth adjustment, the control device can issue bandwidth reduction rules to each network device to indicate the amount of bandwidth reduction of each network device after receiving the congestion notification. In one possible implementation, the bandwidth reduction amount can also be adjusted according to the number of congestion notifications that occur during the transmission of the first data stream. For example, if the number of congestion notifications that occur during the transmission of the first data stream is greater than a preset value within a certain period of time, the bandwidth reduction amount can be increased, so that the amount of data flowing into the transmission channel of the first data stream is further reduced, reducing the number of congestion occurrences.
[0070] In order to further understand the data transmission method provided by the embodiment of the present application, the following is an introduction in conjunction with a specific embodiment. Figure 6 , is a flow chart of another data transmission method provided in an embodiment of the present application, specifically including:
[0071] 601. A control device sends a bandwidth reduction rule to each network device in a transmission channel of a first data stream.
[0072] Exemplarily, each network device may store the received bandwidth reduction rule for subsequent use.
[0073] 602. The destination network device obtains the amount of data belonging to the first data flow in the cache, and determines that the amount of data is greater than a threshold value.
[0074] 603. The destination network device sends a congestion notification to the source network device.
[0075] Exemplarily, the congestion notification may be in the form of a congestion notification packet (CNP).
[0076] 604 , the source network device receives the congestion notification, and reduces the bandwidth for transmitting the first data flow from the first bandwidth to the second bandwidth according to the stored bandwidth reduction rule.
[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 sends bandwidth reduction instructions hop by hop starting from the next hop network device of the source network device according to the transmission order of the first data flow.
[0079] 607. Each network device receives a bandwidth reduction instruction and reduces the bandwidth for transmitting the first data stream according to the stored bandwidth reduction rule.
[0080] In one possible scenario, if the transmission bandwidth allocated to a data stream is small, it may cause the data stream to be transmitted slowly and may cause problems such as freezing at the destination device. In order to solve this problem and realize the elastic adjustment of the data transmission channel, the present application also proposes that the transmission bandwidth of the data stream can be enlarged according to the transmission situation of the data stream to improve the transmission rate of the data stream. The following is a specific introduction to the scheme of enlarging the transmission bandwidth of the data stream.
[0081] Exemplarily, the scheme for enlarging the transmission bandwidth of the data stream can be executed by a control device, or can also be implemented by a specific component such as a processor or processing chip in the control device. This application is not limited to this. For the sake of ease of description, the following description will take the control device as the executor of the scheme for enlarging the transmission bandwidth of the data stream as an example. Optionally, the control device can obtain the egress traffic and ingress 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 used based on the egress traffic and ingress traffic of each network device. If it is fully used, the control device can predict the data consumption rate based on the egress traffic of the destination network device. When the data consumption rate is large, the control device can instruct each network device to enlarge the bandwidth.
[0082] In some embodiments, before obtaining the egress flow and ingress flow of each network device in the transmission channel of the first data stream, the control device may also send a flow reporting notification to each network device, instructing each network device to report its own egress flow and ingress flow of the first data stream to the control device according to the reporting period in the flow reporting notification. Thus, the control device can obtain the egress flow and ingress flow 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 each network device to transmit the egress flow and ingress flow of the first data stream.
[0083] After obtaining the egress traffic and ingress traffic of each network device, the control device can determine the bandwidth utilization rate of each network device transmitting the first data stream, and the consumption rate of the first data stream consumed by the destination device, so as to determine whether it is necessary to enlarge the transmission bandwidth of the first data stream. If it is determined that the transmission bandwidth of the first data stream needs to be enlarged, the control device can send a bandwidth enlargement notification hop by hop from the destination device in the reverse order of the transmission order of the first data stream, instructing each network device to enlarge the bandwidth of the first data stream, thereby improving the transmission rate of the first data stream and avoiding problems such as freezing of the destination device. Of course, when instructing each network device to enlarge the transmission bandwidth of the first data stream, the control device needs to ensure that the enlarged bandwidth is less than the total bandwidth of each device. In one possible case, if the control device enlarges the transmission bandwidth of each network device transmitting the first data stream, and the enlarged bandwidth still cannot meet the transmission requirements of the first data stream, the control device can also instruct to switch the transmission path of the first data stream.
[0084] In order to further understand the bandwidth amplification solution proposed in this application, the data transmission process of the control device indicating the amplified bandwidth is introduced in conjunction with a specific embodiment. Figure 7 , is a flow chart of a data transmission method provided in an embodiment of the present application, including:
[0085] 701. A control device sends a traffic reporting notification to each network device in a transmission channel of a first data stream.
[0086] Among them, the traffic reporting notification includes a reporting period, which is used to instruct each network device to report the egress traffic and ingress traffic of each transmission of the first data stream to the control device according to the reporting period. Exemplarily, the control device can also adjust the reporting period, such as modifying the reporting period of each network device to amplify the bandwidth based on historical instructions. For example, if the bandwidth is amplified multiple times in a short period of time, that is, the frequency of indicating the amplified bandwidth is greater than a certain set threshold, it means that the bandwidth allocated to the first data stream does not match the transmission requirement of the first data stream, then the control device can shorten the reporting period, so as to timely discover the mismatch between the bandwidth and the requirement and make adjustments, so that the transmission bandwidth of each network device can be quickly adjusted to a bandwidth suitable for the transmission requirement of the first data stream.
[0087] 702. The control device calculates bandwidth utilization of each network device for transmitting the first data stream according to the acquired egress flow and ingress flow of each network device.
[0088] 703. When the bandwidth utilization is greater than a set threshold, the control device determines a consumption rate of the first data flow at the destination device according to the egress flow of the destination network device.
[0089] 704. The control device determines a bandwidth magnification factor according to the consumption rate.
[0090] Illustratively, the greater the data consumption rate, the greater the bandwidth amplification factor.
[0091] 705 , the control device sends the bandwidth enlargement notification hop by hop starting from the destination network device in the reverse order of the transmission order of the first data stream.
[0092] The bandwidth amplification notification includes the bandwidth amplification multiple.
[0093] 706. Each network device receives the bandwidth amplification notification and amplifies the bandwidth for transmitting the first data stream according to the bandwidth amplification factor.
[0094] Based on the same concept as the above method, see Figure 8 , is a data transmission device 800 provided in an embodiment of the present application, the device 800 is used to perform each step in the above method embodiment, and in order to avoid repetition, it will not be described again here. The device 800 includes: a communication unit 801, a processing unit 802 and an acquisition unit 803.
[0095] In one possible scenario:
[0096] The communication unit 801 is configured 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 multiple network devices, and the congestion notification is sent by the destination network device when the amount of data belonging to the first data flow is greater than a preset threshold value;
[0097] A processing unit 802 is configured to reduce a bandwidth used for transmitting a first data stream from a first bandwidth to a second bandwidth according to the congestion notification;
[0098] The communication unit 801 is further used to 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 transmitting the first data stream by hop in accordance with the transmission order of the first data stream from the source device to the destination device, and to instruct other network devices among the multiple network devices except the source device to reduce the bandwidth of transmitting the first data stream.
[0099] In some embodiments, the communication unit 801 is further configured to:
[0100] A bandwidth reduction rule is received from the control device, wherein the bandwidth reduction rule includes a bandwidth reduction amount after receiving the congestion notification.
[0101] In another possible scenario:
[0102] An acquisition unit 803 is used to acquire the traffic of the first data stream transmitted by the multiple network devices;
[0103] The processing unit 802 is further used to notify the multiple network devices hop by hop to increase the bandwidth for transmitting the first data stream from the first bandwidth to the third bandwidth in the reverse order of the transmission order of the first data stream from the source device to the destination device when the egress 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 multiple network devices is greater than a second threshold; wherein the destination network device is a network device among the multiple network devices connected to the destination device.
[0104] In some embodiments, the processing unit 802, when notifying the multiple network devices to increase the bandwidth for transmitting the first data stream from the first bandwidth to the third bandwidth, is specifically configured to:
[0105] In the reverse order of the transmission order of the first data stream from the source device to the destination device, a bandwidth enlargement notification is sent hop by hop starting from the destination network device; wherein the bandwidth enlargement notification is used to instruct the multiple network devices to enlarge the bandwidth for transmitting the first data stream from the first bandwidth to the third bandwidth.
[0106] In some embodiments, the processing unit 802 is further configured to:
[0107] Sending flow reporting notifications to the multiple network devices respectively; wherein the flow reporting notification includes a reporting period, and the flow reporting notification is used to instruct the multiple network devices to report the flow of transmitting the first data flow to the control device according to the reporting period.
[0108] Fig. 9 The electronic device 900 provided in the embodiment of the present application is shown in the structural diagram. The electronic device 900 in the embodiment of the present application may also include a communication interface 903, which is, for example, a network port, through which the electronic device can transmit data, for example, the communication interface 903 can implement the functions of the communication unit 801 introduced in the above embodiment.
[0109] In the embodiment of the present application, the memory 902 stores instructions that can be executed by at least one controller 901. The at least one controller 901 can be used to execute each step in the above method by executing the instructions stored in the memory 902. For example, the controller 901 can implement the above Figure 8 The functions of the processing unit 802 and the acquisition unit 803 in.
[0110] Among them, the controller 901 is the control center of the electronic device, which can use various interfaces and lines to connect various parts of the entire electronic device, by running or executing instructions stored in the memory 902 and calling data stored in the memory 902. Optionally, the controller 901 may include one or more processing units, and the controller 901 may integrate an application controller and a modem controller, wherein the application controller mainly processes the operating system and application programs, and the modem controller mainly processes wireless communications. It is understandable that the above-mentioned 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, and in some embodiments, they may also be implemented separately on independent chips.
[0111] The controller 901 may be a general controller, such as a central processing unit (CPU), a digital signal controller, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component, which may implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of the present application. The general controller may be a microcontroller or any conventional controller, etc. The step of adjusting the bandwidth of the data transmission channel during data transmission disclosed in the embodiments of the present application may be performed directly by a hardware controller, or may be performed by a combination of hardware and software modules in the controller.
[0112] The memory 902 is a non-volatile computer-readable storage medium that can be used to store non-volatile software programs, non-volatile computer executable programs and modules. The memory 902 may include at least one type of storage medium, such as a flash memory, a hard disk, a multimedia card, a card-type memory, a random access memory (English: Random Access Memory, referred to as: RAM), a static random access memory (English: Static Random Access Memory, referred to as: SRAM), a programmable read-only memory (English: Programmable Read Only Memory, referred to as: PROM), a read-only memory (English: Read Only Memory, referred to as: ROM), an electrically erasable programmable read-only memory (English: Electrically Erasable Programmable Read-Only Memory, referred to as: EEPROM), a magnetic memory, a disk, an optical disk, etc. The memory 902 is any other medium that can be used to carry or store a desired program code in the form of an instruction or data structure and can be accessed by a computer, but is not limited thereto. The memory 902 in the embodiment of the present application can also be a circuit or any other device that can realize a storage function, 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 introduced in the aforementioned embodiment can be solidified into the chip, so that the chip can execute the steps of the aforementioned data transmission method during operation. How to design and program the controller 901 is a technology well known to those skilled in the art and will not be repeated here.
[0114] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application may adopt the form of a computer program product implemented in one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that include computer-usable program code.
[0115] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a controller of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the controller of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0116] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0117] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 A step that specifies a function in one or more boxes.
[0118] Although the preferred embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications falling within the scope of the present application.
[0119] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
Claims
1. A data transmission method, characterized in that: The method is applied to a source-end network device, the source-end network device is a network device connected to the source-end device among multiple network devices for transmitting a first data stream, the first data stream is sent from the source-end device to a destination-end device, the multiple network devices are respectively connected to a control device, and the method includes: Receiving a congestion notification from a destination network device; the destination network device is a network device connected to the destination device among the multiple network devices, and the congestion notification is sent by the destination network device when the amount of data belonging to the first data flow is greater than a preset threshold value; reducing a bandwidth used to transmit the first data stream from a first bandwidth to a second bandwidth according to the congestion notification; A bandwidth reduction notification is sent to the control device; the bandwidth reduction notification is used to instruct the control device to reduce the bandwidth for transmitting the first data stream by hop by hop in accordance with the transmission order of the first data stream from the source device to the destination device.
2. The method according to claim 1, characterized in that Before receiving the congestion notification from the destination network device, the method further includes: A bandwidth reduction rule is received from the control device, wherein the bandwidth reduction rule includes a bandwidth reduction amount after receiving the congestion notification.
3. A data transmission method, characterized in that: The method is applied to a control device, the control device is connected to multiple network devices for transmitting a first data stream, the first data stream is sent from a source device to a destination device, and the method includes: Acquire the traffic volume of the first data stream transmitted by the plurality of network devices; When the egress flow of the first data stream transmitted by the destination network device is greater than a first threshold, and the flow of the first data stream transmitted by other network devices among the multiple network devices is greater than a second threshold, in the reverse order of the transmission order of the first data stream from the source device to the destination device, the multiple network devices are notified hop by hop to increase the bandwidth for transmitting the first data stream from the first bandwidth to a third bandwidth; The destination network device is a network device connected to the destination device among the multiple network devices.
4. The method according to claim 3, characterized in that The notifying the plurality of network devices to increase the bandwidth for transmitting the first data stream from the first bandwidth to a third bandwidth includes: In the reverse order of the transmission order of the first data stream from the source device to the destination device, a bandwidth enlargement notification is sent hop by hop starting from the destination network device; wherein the bandwidth enlargement notification is used to instruct the multiple 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 first data stream transmitted by the plurality of network devices, the method further includes: Sending flow reporting notifications to the multiple network devices respectively; wherein the flow reporting notification includes a reporting period, and the flow reporting notification is used to instruct the multiple network devices to report the flow of transmitting the first data flow to the control device according to the reporting period.
6. A data transmission device, characterized in that: The device is a source end network device, or the device is applied to the source end network device; the source end network device is a network device connected to the source end device among multiple network devices for transmitting a first data stream, the first data stream is sent from the source end device to a destination end device, the multiple network devices are respectively connected to a control device, and the device includes: a communication unit, configured to receive a congestion notification from a destination network device; the destination network device is a network device connected to the destination network device among the multiple network devices, and the congestion notification is sent by the destination network device when the amount of data belonging to the first data flow is greater than a preset threshold value; a processing unit, configured to reduce a bandwidth used for transmitting the first data stream from a first bandwidth to a second bandwidth according to the congestion notification; The communication unit is further used to send a bandwidth reduction notification to the control device; the bandwidth reduction notification is used to instruct the control device to reduce the bandwidth for transmitting the first data stream hop by hop in accordance with the transmission order of the first data stream from the source device to the destination device.
7. The device according to claim 6, characterized in that The communication unit is further used for: A bandwidth reduction rule is received from the control device, wherein the bandwidth reduction rule includes a bandwidth reduction amount after receiving the congestion notification.
8. A data transmission device, characterized in that: The device is a control device, or the device is applied to the control device, the device is connected to multiple network devices for transmitting a first data stream, the first data stream is sent from a source device to a destination device, and the device includes: An acquisition unit, configured to acquire traffic of the first data stream transmitted by the plurality of network devices; The processing unit is further used to notify the multiple network devices hop by hop to increase the bandwidth for transmitting the first data stream from the first bandwidth to the third bandwidth in the reverse order of the transmission order of the first data stream from the source device to the destination device when the egress 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 multiple network devices is greater than a second threshold; wherein the destination network device is a network device among the multiple network devices connected to the destination device.
9. The device according to claim 8, characterized in that The processing unit, when notifying the plurality of network devices to increase the bandwidth for transmitting the first data stream from the first bandwidth to the third bandwidth, is specifically configured to: In the reverse order of the transmission order of the first data stream from the source device to the destination device, a bandwidth enlargement notification is sent hop by hop starting from the destination network device; wherein the bandwidth enlargement notification is used to instruct the multiple network devices to enlarge the bandwidth for transmitting the first data stream from the first bandwidth to the third bandwidth.
10. The device according to claim 8 or 9, characterized in that The processing unit is further used for: Sending flow reporting notifications to the multiple network devices respectively; wherein the flow reporting notification includes a reporting period, and the flow reporting notification is used to instruct the multiple network devices to report the flow of transmitting the first data flow to the control device according to the reporting period.
11. An electronic device, characterized in that: The electronic device comprises a controller and a memory, The memory is used to store computer programs or instructions; The controller is used to execute the computer program or instructions in the memory so that the method described in any one of claims 1-2 or 3-5 is performed.
12. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer-executable instructions, and when the computer-executable instructions are called by a computer, the computer executes the method as described 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
Management of data transmission limits for congestion control
US20160359758A1
Network congestion detection method and apparatus
WO2022111724A1
Congestion control method and network device
WO2022127698A1