RDMA (Remote Direct Memory Access) on-network transmission control method, equipment and medium
By monitoring and managing packet queue delays and time intervals in the RDMA network in the source switch, and pausing and rerouting data packets to generate flowlets, the problems of insufficient number of flowlets and poor packet rerouting in the RDMA network in the prior art are solved, and the transmission performance and adaptability of the network are significantly improved.
Patent Information
- Application Number
- CN202411916370.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-24
- Publication Date
- 2025-03-28
- Estimated Expiration
- 2044-12-24
AI Technical Summary
In the existing RDMA network, the flowlet-based load balancing scheme lacks a sufficiently large time gap due to the adjustment of data packets by RNICs, and the number of flowlets generated is small, limiting the performance of the load balancing scheme. In addition, the host cannot accurately sense the data transmission status within the network, resulting in the generated flowlets that may choose the original path to transmit, and the impact of the PFC mechanism on the congested signal is not considered, resulting in paths with low link utilization being erroneously rerouted.
Boot the data stream into the shared buffer in the source switch, record the arrival time of the data packet, and select the initial forwarding path based on the five-tuple information. By monitoring the queue delay and time interval of the data packet, if it is greater than the set threshold, the packet transmission is paused, rerouted to other paths, delaying the packet transmission to meet the flowlet gap, and restoring the transmission of the general priority queue after waiting for the queue to be emptied.
The transmission status of the network is sensed through the source switch, and flowlets are actively generated and rerouted, effectively improving the transmission performance, efficiency and adaptability of the RDMA network, avoiding unnecessary extension of the data flow completion time.
Smart Images

Figure CN119728602A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present disclosure relate to the field of data processing technology, and in particular to a method, device and medium for controlling RDMA transmission over a network. Background Art
[0002] At present, traditional load balancing schemes can be divided into flow-level, packet-level and flowlet-level according to the scheduling granularity. The flow-based scheme performs load balancing on the basis of the entire data flow. Although it is easy to implement, it lacks flexibility. The packet-based scheme performs load balancing on the basis of a single packet. Although it has high flexibility, it is easy to cause packet disorder, thus affecting the transmission performance of the entire RDMA network. The flowlet-based scheme has a scheduling granularity between the first two schemes. It uses the time gap generated after the packet burst to avoid disorder while providing high flexibility. However, in RDMA networks, due to the adjustment of packets by RNICs, there is a lack of sufficiently large time gaps, and the number of flowlets generated is small, which limits the performance of flowlet-level load balancing schemes in lossless networks in data centers. To overcome this challenge, a method of postponing packet sending on the host has been recently proposed to actively extend some specific time intervals to increase the generation opportunities of flowlets, and work with load balancing schemes based on link utilization or insensitive to congestion. However, this solution has defects: 1) The host cannot accurately perceive the data transmission status within the network, and the actively generated flowlet may still choose the original path for transmission; 2) The impact of the PFC mechanism on congestion signals is not considered, resulting in the generated flowlet being rerouted to a path with low link utilization due to the triggering of PFC pause. The above defects will cause the completion time of some data flows to be unnecessarily extended.
[0003] It can be seen that there is an urgent need for an RDMA network transmission control method with high transmission efficiency and adaptability. Summary of the invention
[0004] In view of this, the embodiments of the present disclosure provide a method, device and medium for controlling RDMA transmission in a network, which at least partially solve the problems of poor transmission efficiency and adaptability in the prior art.
[0005] In a first aspect, an embodiment of the present disclosure provides an RDMA network transmission control method, including:
[0006] Step 1: guide the data flow from the source switch inlet port into the shared buffer and record its corresponding identifier and the arrival time of the first data packet in the data flow, select the initial forwarding path for the data flow according to the five-tuple information of the data flow, and put all the data packets in the data flow into the outlet port queue of the source switch to wait for transmission;
[0007] Step 2, determining whether a data packet belonging to the same data flow arrives within a preset period after the arrival time of the first data packet, and if so, executing step 3;
[0008] Step 3: For each data packet in the same data flow, obtain the queue delay d of the output port queue corresponding to the current data flow from the input port, and when it is greater than the first threshold T c When the source switch monitors the time interval T between the current data packet and the previous data packet leaving the shared buffer, measure , when the time interval is greater than the second threshold, the current data packet and subsequent data packets are transmitted to the waiting queue of the output port corresponding to the rerouting path selected by the source switch for it and are paused, and the data packet is delayed so that the time interval between it and the previous data packet meets the flowlet gap;
[0009] Step 4: After a preset waiting time, all data packets in the waiting queue are transmitted and the transmission of the general priority queue is suspended until the waiting queue is empty.
[0010] According to a specific implementation method of the embodiment of the present disclosure, the expression of the preset time period is:
[0011] t 1 +baseRTT
[0012] Among them, t 1 is the arrival time of the first data packet, and baseRTT represents the round-trip delay of the data packet from the sender to the receiver when there is no congestion.
[0013] According to a specific implementation manner of the embodiment of the present disclosure, the first threshold is smaller than the receivable threshold of the egress port queue.
[0014] According to a specific implementation of the embodiment of the present disclosure, the expression of the second threshold is:
[0015]
[0016] Where Δt represents the flowlet gap, Q′ PFC represents the acceptable threshold, S represents the average packet size, and λ i Indicates the arrival rate of queue packets per unit time.
[0017] According to a specific implementation of the embodiment of the present disclosure, the transmission delay of the re-routing path satisfies the transmission delay of the original path.
[0018]
[0019] Among them, D n represents the transmission delay of the rerouting path, D0 Indicates the transmission delay of the original path.
[0020] According to a specific implementation of the embodiment of the present disclosure, the expression of the waiting time is:
[0021] T wait =Δt-T measure
[0022]
[0023] According to a specific implementation of the embodiment of the present disclosure, before the step of transferring the current data packet and subsequent data packets to the waiting queue of the egress port corresponding to the rerouting path selected by the source switch for the current data packet and subsequent data packets and pausing, the method further includes:
[0024] Set the length constraint of the general priority queue, where the expression of the length constraint is
[0025]
[0026] Where Q represents the instantaneous queue length of the general priority queue at time t, C i Indicates the forwarding rate of queue packets per unit time.
[0027] In a second aspect, an embodiment of the present disclosure further provides an electronic device, the electronic device comprising:
[0028] at least one processor; and,
[0029] a memory communicatively connected to the at least one processor; wherein,
[0030] The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the RDMA network transmission control method in the aforementioned first aspect or any implementation of the first aspect.
[0031] In a third aspect, an embodiment of the present disclosure further provides a non-transitory computer-readable storage medium, which stores computer instructions, and the computer instructions are used to enable the computer to execute the RDMA network transmission control method in the aforementioned first aspect or any implementation of the first aspect.
[0032] In a fourth aspect, an embodiment of the present disclosure further provides a computer program product, which includes a computer program stored on a non-transitory computer-readable storage medium, and the computer program includes program instructions. When the program instructions are executed by a computer, the computer executes the RDMA network transmission control method in the aforementioned first aspect or any implementation of the first aspect.
[0033] The RDMA network transmission control scheme in the embodiment of the present disclosure includes: step 1, guiding the data flow from the source switch inlet port to enter the shared buffer and recording its corresponding identifier and the arrival time of the first data packet in the data flow, selecting an initial forwarding path for the data flow according to the five-tuple information of the data flow, and placing all the data packets in the data flow into the outbound port queue of the source switch for transmission; step 2, judging whether there is a data packet belonging to the same data flow arriving within a preset time period after the arrival time of the first data packet, and if so, executing step 3; step 3, for each data packet in the same data flow, obtaining the queue delay d of the outbound port queue corresponding to the current data flow from the inlet port, and when it is greater than the first threshold T c When the source switch monitors the time interval T between the current data packet and the previous data packet leaving the shared buffer, measure , when the time interval is greater than the second threshold, the current data packet and subsequent data packets are transmitted to the waiting queue of the output port corresponding to the rerouting path selected by the source switch for it and paused, delaying the sending of the data packet so that the time interval between it and the previous data packet meets the flowlet gap; step 4, after the preset waiting time, all data packets in the waiting queue are transmitted and the transmission of the general priority queue is suspended until the waiting queue is empty.
[0034] The beneficial effects of the embodiments of the present disclosure are as follows: through the scheme of the present disclosure, the ability of the source switch to perceive and monitor the network transmission status is utilized, the sending of data packets that meet specific conditions and thresholds is postponed through the priority queue, new flowlets are actively generated, and they are rerouted to other paths, thereby effectively improving the performance, efficiency and adaptability of RDMA-based lossless data center network data transmission. BRIEF DESCRIPTION OF THE DRAWINGS
[0035] In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings required for use in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0036] Figure 1 A flowchart of an RDMA network transmission control method provided by an embodiment of the present disclosure;
[0037] Figure 2 Two schematic diagrams of actively generating flowlets provided in the embodiments of the present disclosure, wherein (a) is a schematic diagram of generating flowlets on a host, and (b) is a schematic diagram of generating flowlets on a switch;
[0038] Figure 3A system schematic diagram of an RDMA network transmission control method provided by an embodiment of the present disclosure;
[0039] Figure 4 A schematic diagram of an electronic device provided in an embodiment of the present disclosure. DETAILED DESCRIPTION
[0040] The embodiments of the present disclosure are described in detail below with reference to the accompanying drawings.
[0041] The following describes the embodiments of the present disclosure through specific examples, and those skilled in the art can easily understand other advantages and effects of the present disclosure from the contents disclosed in this specification. Obviously, the described embodiments are only a part of the embodiments of the present disclosure, rather than all of the embodiments. The present disclosure can also be implemented or applied through other different specific embodiments, and the details in this specification can also be modified or changed in various ways based on different viewpoints and applications without departing from the spirit of the present disclosure. It should be noted that the following embodiments and features in the embodiments can be combined with each other without conflict. Based on the embodiments in the present disclosure, all other embodiments obtained by ordinary technicians in the field without making creative work are within the scope of protection of the present disclosure.
[0042] It should be noted that various aspects of the embodiments within the scope of the appended claims are described below. It should be apparent that the aspects described herein may be embodied in a wide variety of forms, and any specific structure and / or function described herein is merely illustrative. Based on the present disclosure, it should be understood by those skilled in the art that an aspect described herein may be implemented independently of any other aspect, and two or more of these aspects may be combined in various ways. For example, any number of aspects described herein may be used to implement the device and / or practice the method. In addition, other structures and / or functionalities other than one or more of the aspects described herein may be used to implement this device and / or practice this method.
[0043] It should also be noted that the illustrations provided in the following embodiments are only schematic illustrations of the basic concept of the present disclosure. The drawings only show components related to the present disclosure rather than being drawn according to the number, shape and size of components in actual implementation. In actual implementation, the type, quantity and proportion of each component may be changed arbitrarily, and the component layout may also be more complicated.
[0044] Additionally, in the following description, specific details are provided to facilitate a thorough understanding of the examples. However, it will be understood by those skilled in the art that the aspects described may be practiced without these specific details.
[0045] The embodiment of the present disclosure provides a method for controlling RDMA transmission in a network, which can be applied to a network load balancing process in an Internet scenario.
[0046] As data center applications continue to increase their performance requirements, the traditional TCP protocol involves multiple memory copies during data transmission, resulting in long delays, making it difficult to meet the requirements of modern data center applications for network microsecond data transmission. Therefore, today's lossless data centers have begun to adopt protocols such as RoCEv2 based on RDMA (Remote Direct Memory Access) technology. Data center lossless networks take advantage of RDMA kernel bypass and use dedicated RNICs (RDMA-capable network interface cards) to achieve direct access to memory between servers. At the same time, they use hop-by-hop priority flow control (PFC) to control the data transmission of upstream ports by setting XON and XOFF thresholds, providing high-throughput, low-latency, and packet loss-free network communications.
[0047] Data center networks often use Clos topology to support multi-path communication between hosts and enhance network robustness and performance. In this architecture, effective load balancing strategies are particularly critical, especially on ToR (Top of Rack) switches, which can flexibly distribute traffic between different paths and make full use of available link resources.
[0048] Traditional load balancing schemes can be divided into flow-level, packet-level, and flowlet-level according to the scheduling granularity. The flow-based scheme performs load balancing on the basis of the entire data flow. Although it is easy to implement, it lacks flexibility. The packet-based scheme performs load balancing on the basis of a single packet. Although it has high flexibility, it is easy to cause packet disorder, thus affecting the transmission performance of the entire RDMA network. The flowlet-based scheme has a scheduling granularity between the first two schemes. It uses the time gap generated after the packet burst to avoid disorder while providing high flexibility. However, in RDMA networks, due to the adjustment of packets by RNICs, there is a lack of sufficiently large time gaps, and the number of flowlets generated is small, which limits the performance of flowlet-level load balancing schemes in lossless networks in data centers. To overcome this challenge, a method of postponing packet sending on the host has been recently proposed to actively extend some specific time intervals to increase the generation opportunities of flowlets, and work with load balancing schemes based on link utilization or insensitive to congestion. However, this solution has defects: 1) The host cannot accurately perceive the data transmission status within the network, and the actively generated flowlet may still choose the original path for transmission; 2) The impact of the PFC mechanism on congestion signals is not considered, resulting in the generated flowlet being rerouted to a path with low link utilization due to the triggering of PFC pause. The above defects will cause the completion time of some data flows to be unnecessarily extended.
[0049] Therefore, a RDMA in-network transmission control method based on programmable switch priority queue is proposed. In this method, the switch perceives the network data transmission status and uses the priority queue of the programmable switch to actively generate flowlet to optimize the load balancing strategy.
[0050] See also Figure 1 , is a flow chart of a RDMA network transmission control method provided by an embodiment of the present disclosure. Figure 1 As shown, the method mainly comprises the following steps:
[0051] Step 1: guide the data flow from the source switch inlet port into the shared buffer and record its corresponding identifier and the arrival time of the first data packet in the data flow, select the initial forwarding path for the data flow according to the five-tuple information of the data flow, and put all the data packets in the data flow into the outlet port queue of the source switch to wait for transmission;
[0052] like Figure 2 FIG. 2 is a schematic diagram of two active flowlet generation methods provided by an embodiment of the present invention. According to the different locations where the delayed data packets are sent, the flowlet generation is divided into two types: generation on the host and generation on the switch. Figure 1(a) shows the latest proposed principle diagram of delaying the sending of data packets on the host and actively generating flowlets. In this scheme, as shown in Figure 1 As shown in case 1 in (a), if the original path is still the optimal path, the actively generated flowlet may be rerouted to the original path, resulting in invalid flowlet generation; Figure 1 As shown in case 2 in (a), the path with low link utilization due to the triggering of PFC pause is mistakenly considered as a good path, and the actively generated flowlet is rerouted to this path. Therefore, both cases will lead to a longer completion time of the data flow. Figure 1 (b) is a schematic diagram of the present invention for postponing data packet transmission on a switch and actively generating flowlets, thereby avoiding the situation where flowlets are invalidly generated or flowlets are rerouted to a PFC pause path.
[0053] like Figure 3 The figure shows an RDMA network transmission control method and system principle based on a programmable switch priority queue provided by an embodiment of the present invention. This system is deployed on the latest programmable switch and is effective only in the source switch. Taking Tofino2 as an example, it has the following functions: (1) Up to 128 first-in-first-out (FIFO) queues per egress port, using priority-based queue scheduling; (2) The ability to pause / resume a single queue while maintaining the linear rate of processing packets in other queues; (3) There are tens of MBs of stateful memory (such as register groups) to track the usage of packets and related queues, which can be updated by the ALU on the data plane.
[0054] In this system, for each RDMA data flow entering the network, the switch can be divided into source switches and destination switches according to the transmission direction of the data flow flows (i.e., from left to right). Each RDMA data flow consists of one or more data packets, which enter the switch through the source switch ingress port in sequence and are first directed to the shared buffer. Subsequently, according to the five-tuple information of the data packet (including source IP address, destination IP address, source port number, destination port number, and protocol type), the forwarding logic of the source switch maps these data packets to the corresponding egress port queue, waiting to be forwarded to the corresponding transmission path of the queue.
[0055] In specific implementation, the RDMA data flow enters the shared buffer from the source switch inlet port. Based on the five-tuple information of the data packet in the data flow, the initial forwarding path is selected for the data flow, and the data packet is placed in the corresponding outlet queue waiting for transmission.
[0056] For example, after data flow flows enters the source switch, it can be transmitted to the destination switch through path i and path j (i≠j), where the outbound port queue P i Corresponding to path i, outbound port queue P j and P 0 Corresponding to path j. In this method, the outbound port queue P i and P j It is called the general priority queue with the lowest scheduling priority. 0 It is called the waiting queue.
[0057] Step 2, determining whether a data packet belonging to the same data flow arrives within a preset period after the arrival time of the first data packet, and if so, executing step 3;
[0058] Optionally, the expression of the preset time period is
[0059] t 1 +baseRTT
[0060] Among them, t 1 is the arrival time of the first data packet, and baseRTT represents the round-trip delay of the data packet from the sender to the receiver when there is no congestion.
[0061] In the specific implementation, in the source switch, for each newly arrived data flow, the identifier of this data flow (flowID) and the arrival time of its first data packet t are recorded at the ingress port. 1 , and judge at t 1 +baseRTT, whether there are other data packets belonging to the same flow arriving, where baseRTT represents the round-trip delay of the data packet from the sender to the receiver when there is no congestion. If no other data packets arrive, the following operations are not performed, because such data flows that can be transmitted within 1 baseRTT are usually considered to be short flows, and the present invention will not process such short flows; otherwise, continue to perform the following operations.
[0062] For example, when a new data flow is detected at the ingress port of the source switch, a data flow table flow_table (flowID, t1, t1+baseRTT) is constructed, where flowID is a unique identifier calculated based on the five-tuple information of the data packet to distinguish different data flows, t1 is the time when the first data packet arrives at the ingress port, t1+baseRTT is the time point after t1 plus baseRTT, and baseRTT is the round-trip delay of the data packet from the sender to the receiver when there is no congestion. If after t1+baseRTT, no data packet with the identifier flowID arrives at the ingress port, no processing is performed on this flow, because this type of data flow that can be completed in 1 baseRTT is usually considered to be a short flow. If after t1+baseRTT, a data packet with the identifier flowID arrives at the ingress port, the following processing is performed.
[0063] Step 3: For each data packet in the same data flow, obtain the queue delay d of the output port queue corresponding to the current data flow from the input port, and when it is greater than the first threshold T c When the source switch monitors the time interval T between the current data packet and the previous data packet leaving the shared buffer, measure , when the time interval is greater than the second threshold, the current data packet and subsequent data packets are transmitted to the waiting queue of the output port corresponding to the rerouting path selected by the source switch for it and are paused, and the data packet is delayed so that the time interval between it and the previous data packet meets the flowlet gap;
[0064] Optionally, the first threshold is smaller than a receivable threshold of the egress port queue.
[0065] Optionally, the expression of the second threshold is:
[0066]
[0067] Where Δt represents the flowlet gap, Q′ PFC represents the acceptable threshold, S represents the average packet size, and λ i Indicates the arrival rate of queue packets per unit time.
[0068] Furthermore, the transmission delay of the re-routing path satisfies the transmission delay of the original path.
[0069]
[0070] Among them, D n represents the transmission delay of the rerouting path, D 0 Indicates the transmission delay of the original path.
[0071] Furthermore, before the step of transferring the current data packet and subsequent data packets to the waiting queue of the output port corresponding to the rerouting path selected by the source switch for the current data packet and pausing, the method further includes:
[0072] Set the length constraint of the general priority queue, where the expression of the length constraint is
[0073]
[0074] Where Q represents the instantaneous queue length of the general priority queue at time t, C i Indicates the forwarding rate of queue packets per unit time.
[0075] In specific implementation, based on the above operations, for each data packet in the non-newly arrived data flow, the queue delay d of the output port queue corresponding to the current data flow can be obtained from the input port, and compared with a preset threshold T c For comparison, the threshold T c It is used to indicate that there are many packets queued in the output port queue corresponding to the current data flow forwarding path, but it has not exceeded its receivable threshold. c When the switch monitors the time interval T between the current data packet and the previous data packet leaving the shared buffer, measure , and T measure Compare with the set threshold T. If T measure If it is greater than the set threshold T, the current data packet and subsequent data packets are transmitted to the empty waiting queue of the output port corresponding to the rerouting path selected by the switch for suspension, delaying the sending of the data packet so that the time interval between it and the previous data packet meets the flowlet gap.
[0076] The threshold T can be obtained by using the waiting queue. Specifically, the waiting queue pause time T wait The queue length shall not exceed its acceptable threshold Q' PFC , to avoid the pause triggered by the waiting queue exceeding the receivable threshold, affecting the normal transmission in the switch. Therefore, the waiting time T of the waiting queue can be obtained. wait for:
[0077]
[0078] Among them, λ i represents the arrival rate of queue packets per unit time, and S represents the average packet size. However, it should be noted that the transmission delay D n Transmission delay D with the original path 0 The following conditions should be met:
[0079]
[0080] This condition indicates that the behavior of actively generating flowlets in the switch by delaying the transmission of packets through the priority queue can improve network transmission performance. If this condition is not met, flowlets will not be actively generated in the switch.
[0081] In order to make full use of the gaps between flowlets and avoid data packets being out of order during transmission, the flowlet gap Δt is set to a sufficiently large and reasonable time threshold. In order to ensure that the interval between delayed data packets meets the flowlet gap Δt, the threshold T is set as follows:
[0082]
[0083] According to the above monitoring time interval T measure The specific waiting time T can be obtained by comparing the flowlet gap Δt wait ,Right now:
[0084] T wait =Δt-T measure (4)
[0085] At the same time, it is assumed that the network is stable for a short period of time, so that the queue length after a period of time can be predicted by the arrival rate and forwarding rate of packets in the queue per unit time. In order to ensure that the general priority queue length of the port corresponding to the suspended rerouting path cannot reach its acceptable threshold during the period when the waiting queue resumes transmission and is emptied, so as to avoid triggering a pause and causing unfair transmission. Therefore, before the packet enters the waiting queue, the predicted general priority queue length should meet the following conditions:
[0086]
[0087] Where Q represents the instantaneous queue length of the general priority queue at time t, C i Indicates the forwarding rate of queue packets per unit time.
[0088] For example, assume that after t1+baseRTT, the remaining part of data flow flows consists of packets 1, 2, 3, 4, 5, and 6, and packet p in the outbound port queue belongs to other data flows. Data flow flows enters the switch and then enters the shared buffer from the inbound port. According to the five-tuple information in the header of packet 1, the switch forwarding logic assigns data flow flows to path i. Packet 1 is mapped to the general priority queue P through operation ①. i Data packet 2 gets the current general priority queue P in the ingress port. i The queue delay d is less than the threshold T c, data packet 2 is mapped to the same general priority queue P as data packet 1 through operation ① i However, when packet 3 passes through the ingress port, the current general priority queue P is obtained. i The queue delay d is greater than the threshold T c .
[0089] In the source switch, by periodically selecting the data packets of the outgoing port, the sending time is recorded in the packet header using technologies such as INT. When the data packet passes through the destination switch, the sending time will also be piggybacked by any data packet passing through the same port. When receiving the returned data packet, the source switch obtains the round-trip transmission delay of the path and the delay information of the path through the difference between the arrival time and the sending time of the data packet. According to the internal data distribution and the path transmission delay information perceived by the source switch, the rerouting path is selected. Using the data packet arrival rate, forwarding rate, average data packet size and the receivable threshold information of the outgoing port queue maintained in the switch, it is determined whether the delay relationship between the current path (i.e., the original path) and the rerouting path satisfies formula (2). If not, the following operation is not performed, and data packet 3 and subsequent data packets will be mapped to the general priority queue P through operation ①. i , transmitted through path i. If formula (2) is satisfied, continue to perform the following operations to ensure that the present invention can improve network transmission performance.
[0090] The switch detects the time interval T between packet 3 and packet 2 leaving the shared buffer measure is greater than the set threshold T obtained by formula (3) using the flowlet gap value Δt. In a switch, when the occupancy of the egress port queue exceeds its receivable threshold, the egress port queue will send a pause frame to the corresponding ingress port queue for incoming data. When the occupancy of the egress port queue drops to a certain threshold, the data input to the corresponding ingress port queue is resumed. An ingress port queue is exclusively occupied by one data flow, while another ingress port queue has multiple data flows. Both transmit data to the same egress port queue. At the beginning, the traffic in the two ingress port queues shares the same egress port. After the egress port triggers a pause and then resumes the ingress port data input, unfair transmission is likely to occur, that is, the ingress port queues of multiple data flows compete, and the data input speed of the data flow that exclusively uses the ingress port is higher than that of other data flows, and ultimately has a higher throughput than each data flow of the other ingress port queue. Therefore, when T measure When it is greater than T, the pause time of the waiting queue satisfies formula (1), thus ensuring that when the waiting queue postpones the sending of data packets, the waiting queue length will not exceed the queue receivable threshold, thus avoiding triggering a pause. Here, the switch selects path j for rerouting, and then data packets 3, 4, 5, and 6 are mapped to the waiting queue P through operation ②. 0 Pause in the middle, specific pause time T waitIt can be obtained by formula (4), P 0 During the pause, the general priority queue P j Continue to transmit data. It should be noted that the packet interval that meets the flowlet time gap Δt can be detected at the ingress port. Therefore, this method will not have T measure Greater than the flowlet time gap Δt.
[0091] Step 4: After a preset waiting time, all data packets in the waiting queue are transmitted and the transmission of the general priority queue is suspended until the waiting queue is empty.
[0092] Based on the above embodiment, the expression of the waiting time is:
[0093] T wait =Δt-T measure
[0094]
[0095] In specific implementation, the waiting queue P 0 Pause T wait After time, resume waiting queue P 0 Transmit and pause the general priority queue P j , its transmission situation is as follows Figure 2 As shown in (b), until the waiting queue P 0 The general priority queue P will be restored only after it is emptied. j In order to avoid unfair transmission within the switch, a general priority queue P j When packet 3 is input, the instantaneous queue length of the general priority queue P j After experiencing the waiting queue P 0 Pause and wait queue P 0 After being emptied, its queue occupancy cannot exceed the acceptable threshold, that is, the general priority queue P after a period of time is predicted. j The occupancy should also satisfy formula (5).
[0096] The RDMA network transmission control method provided in this embodiment utilizes the ability of the source switch to perceive and monitor the network transmission status, postpones the sending of data packets that meet specific conditions and thresholds through priority queues, actively generates new flowlets, and reroutes them to other paths, thereby effectively improving the performance, efficiency and adaptability of lossless data center network data transmission based on RDMA.
[0097] See also Figure 4The embodiment of the present disclosure further provides an electronic device 40, which includes: at least one processor and a memory connected to the at least one processor. The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the RDMA network transmission control method in the aforementioned method embodiment.
[0098] The embodiment of the present disclosure further provides a non-transitory computer-readable storage medium, which stores computer instructions, and the computer instructions are used to enable the computer to execute the RDMA network transmission control method in the aforementioned method embodiment.
[0099] The embodiments of the present disclosure also provide a computer program product, which includes a computer program stored on a non-transitory computer-readable storage medium. The computer program includes program instructions. When the program instructions are executed by a computer, the computer executes the RDMA network transmission control method in the aforementioned method embodiment.
[0100] Reference below Figure 4 , which shows a schematic diagram of the structure of an electronic device 40 suitable for implementing the embodiment of the present disclosure. The electronic device in the embodiment of the present disclosure may include, but is not limited to, mobile terminals such as mobile phones, notebook computers, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), vehicle-mounted terminals (such as vehicle-mounted navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Figure 4 The electronic device shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.
[0101] like Figure 4 As shown, the electronic device 40 may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 401, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 402 or a program loaded from a storage device 408 to a random access memory (RAM) 403. In the RAM 403, various programs and data required for the operation of the electronic device 40 are also stored. The processing device 401, the ROM 402, and the RAM 403 are connected to each other via a bus 404. An input / output (I / O) interface 405 is also connected to the bus 404.
[0102] Typically, the following devices may be connected to the I / O interface 405: input devices 406 including, for example, a touch screen, a touchpad, a keyboard, a mouse, an image sensor, a microphone, an accelerometer, a gyroscope, etc.; output devices 407 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; storage devices 408 including, for example, a magnetic tape, a hard disk, etc.; and communication devices 409. The communication device 409 may allow the electronic device 40 to communicate wirelessly or wired with other devices to exchange data. Although the electronic device 40 with various devices is shown in the figure, it should be understood that it is not required to implement or have all the devices shown. More or fewer devices may be implemented or have instead.
[0103] In particular, according to an embodiment of the present disclosure, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present disclosure includes a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program contains program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from the network through the communication device 409, or installed from the storage device 408, or installed from the ROM 402. When the computer program is executed by the processing device 401, the above-mentioned functions defined in the method of the embodiment of the present disclosure are executed.
[0104] It should be noted that the computer-readable medium disclosed above may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that may be used by or in combination with an instruction execution system, device or device. In the present disclosure, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, in which a computer-readable program code is carried. This propagated data signal may take a variety of forms, including but not limited to an electromagnetic signal, an optical signal, or any suitable combination of the above. The computer readable signal medium may also be any computer readable medium other than a computer readable storage medium, which may send, propagate or transmit a program for use by or in conjunction with an instruction execution system, apparatus or device. The program code contained on the computer readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.
[0105] The computer-readable medium may be included in the electronic device, or may exist independently without being incorporated into the electronic device.
[0106] The computer-readable medium carries one or more programs. When the one or more programs are executed by the electronic device, the electronic device can execute the relevant steps of the method embodiment.
[0107] Alternatively, the computer-readable medium carries one or more programs, and when the one or more programs are executed by the electronic device, the electronic device can perform the relevant steps of the method embodiment.
[0108] Computer program code for performing the operations of the present disclosure may be written in one or more programming languages, or a combination thereof, including object-oriented programming languages, such as Java, Smalltalk, C++, and conventional procedural programming languages, such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet service provider).
[0109] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some implementations as replacements, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0110] The units involved in the embodiments described in the present disclosure may be implemented by software or by hardware.
[0111] It should be understood that various parts of the present disclosure may be implemented in hardware, software, firmware, or a combination thereof.
[0112] The above is only a specific implementation of the present disclosure, but the protection scope of the present disclosure is not limited thereto. Any changes or substitutions that can be easily thought of by a person skilled in the art within the technical scope disclosed in the present disclosure should be included in the protection scope of the present disclosure. Therefore, the protection scope of the present disclosure should be based on the protection scope of the claims.
Claims
1. A method for controlling RDMA transmission in a network, characterized in that: include: Step 1: guide the data flow from the source switch inlet port into the shared buffer and record its corresponding identifier and the arrival time of the first data packet in the data flow, select the initial forwarding path for the data flow according to the five-tuple information of the data flow, and put all the data packets in the data flow into the outlet queue of the source switch to wait for transmission; Step 2, determining whether a data packet belonging to the same data flow arrives within a preset period after the arrival time of the first data packet, and if so, executing step 3; Step 3: For each data packet in the same data flow, obtain the queue delay d of the output port queue corresponding to the current data flow from the input port, and when it is greater than the first threshold T c When the source switch monitors the time interval T between the current data packet and the previous data packet leaving the shared buffer, measure , when the time interval is greater than the second threshold, the current data packet and subsequent data packets are transmitted to the waiting queue of the output port corresponding to the rerouting path selected by the source switch for it and are paused, and the data packet is delayed so that the time interval between it and the previous data packet meets the flowlet gap; Step 4: After a preset waiting time, all data packets in the waiting queue are transmitted and the transmission of the general priority queue is suspended until the waiting queue is empty.
2. The method according to claim 1, characterized in that The expression of the preset time period is t1+baseRTT Among them, t1 is the arrival time of the first data packet, and baseRTT represents the round-trip delay of the data packet from the sender to the receiver when there is no congestion.
3. The method according to claim 1, characterized in that The first threshold is smaller than a receivable threshold of the egress port queue.
4. The method according to claim 3, characterized in that The expression of the second threshold is: Where Δt represents the flowlet gap, Q′ PFC represents the acceptable threshold, S represents the average packet size, and λ i Indicates the arrival rate of queue packets per unit time.
5. The method according to claim 4, characterized in that The transmission delay of the re-routing path satisfies the transmission delay of the original path Among them, D n represents the transmission delay of the re-routing path, and D0 represents the transmission delay of the original path.
6. The method according to claim 5, characterized in that The expression of the waiting time is: T wait =Δt-T measure 7. The method according to claim 6, characterized in that Before the step of transferring the current data packet and subsequent data packets to the waiting queue of the output port corresponding to the rerouting path selected by the source switch for the current data packet and subsequent data packets and pausing, the method further includes: Set the length constraint of the general priority queue, where the expression of the length constraint is Where Q represents the instantaneous queue length of the general priority queue at time t, C i Indicates the forwarding rate of queue packets per unit time.
8. An electronic device, characterized in that: The electronic device comprises: at least one processor; and, a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the RDMA network transmission control method described in any one of claims 1 to 7.
9. A non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are used to enable the computer to execute the RDMA network transmission control method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Flow isolation method for avoiding head-of-queue congestion and congestion diffusion in lossless network
CN115134302A
Dynamic clearance cache management method and device for PFC (Power Factor Correction) switch
CN116896534A
Flowlet load balancing method oriented to data center network receiving end drive transmission protocol
CN117176658A
Method and apparatus for proactively forming flowlets for a flow in communication network
US12010028B1
Data transmission method and apparatus
WO2022052882A1
Cited By
Congestion-aware load balancing method and related equipment
CN121173746A