Rdma in network transmission control method, device and medium
By monitoring packet arrival time and queue latency in the source switch, delaying packet transmission using priority queues, and generating and rerouting flowlets, the problems of insufficient transmission efficiency and adaptability in RDMA networks are solved, thereby improving the performance and flexibility of data center networks.
Patent Information
- Application Number
- CN202411916370.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-24
- Publication Date
- 2025-11-18
- Estimated Expiration
- 2044-12-24
AI Technical Summary
In existing RDMA networks, transmission efficiency and adaptability are poor. Traditional load balancing schemes cannot accurately perceive network status, causing flowlets to reroute to inefficient paths and affecting data flow completion time.
The source switch monitors the arrival time and queue delay of data packets, postpones the transmission of data packets through a priority queue, generates data packets that meet the flowlet gap, and reroutes them to other paths, thus proactively generating flowlets by utilizing the switch's awareness of network status.
It improves the data transmission performance and adaptability of RDMA networks, optimizes load balancing strategies, and avoids out-of-order packet delivery and inefficient path selection.
Smart Images

Figure CN119728602B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of data processing technology, and in particular to an RDMA on-network transmission control method, device and medium. Background Technology
[0002] Currently, traditional load balancing schemes can be categorized into flow-level, packet-level, and flowlet-level schemes based on scheduling granularity. Flow-based schemes perform load balancing on the entire data flow, which is easy to implement but lacks flexibility. Packet-based schemes perform load balancing on a per-packet basis, offering high flexibility but prone to packet out-of-order delivery, thus impacting the overall transmission performance of the RDMA network. Flowlet-based schemes, with a scheduling granularity between the two, utilize the time gaps created after packet bursts to avoid out-of-order delivery while providing high flexibility. However, in RDMA networks, the adjustment of packets by RNICs results in insufficiently large time gaps, leading to a limited number of flowlets and thus restricting the performance of flowlet-level load balancing schemes in lossless data center networks. To overcome this challenge, a method has recently been proposed that delays packet transmission on the host, proactively extending specific time intervals to increase the chance of flowlet generation, and can be used in conjunction with load balancing schemes based on link utilization or insensitive to congestion. However, this approach has several drawbacks: 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, which causes the generated flowlet to be rerouted to a path with low link utilization due to the triggering of PFC pause. These drawbacks can lead to an unnecessary extension of the completion time of some data flows.
[0003] It is evident that there is an urgent need for an RDMA-based transmission control method with high transmission efficiency and adaptability. Summary of the Invention
[0004] In view of this, the present disclosure provides an RDMA on-network transmission control method, device and medium, which at least partially solves the problems of poor transmission efficiency and adaptability in the prior art.
[0005] In a first aspect, embodiments of this disclosure provide an RDMA on-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 based on the data flow's five-tuple information and put all data packets in the data flow into the source switch's outlet port queue to wait for transmission.
[0007] Step 2: Determine whether any data packets belonging to the same data stream arrive within a preset time period after the arrival time of the first data packet. If so, proceed to Step 3.
[0008] Step 3: For each data packet in the same data stream, obtain the queue delay d of the corresponding outgoing port queue from the ingress port. When it is greater than the first threshold T... c At that time, within the source switch, the time interval T between the current data packet and the previous data packet leaving the shared buffer is monitored. measure When the time interval is greater than the second threshold, the current data packet and subsequent data packets are passed to the waiting queue of the outgoing port corresponding to the rerouting path selected by the source switch for it to pause and delay the transmission of data packets so that the time interval between them and the previous data packet meets the flowlet gap.
[0009] Step 4: After a preset waiting time, transmit all data packets in the waiting queue and pause the transmission of the general priority queue until the waiting queue is empty.
[0010] According to a specific implementation of this disclosure, the expression for the preset time period is:
[0011] t1+baseRTT
[0012] Where t1 is the arrival time of the first data packet, and baseRTT represents the round-trip time of the data packet from the sender to the receiver when there is no congestion.
[0013] According to one specific implementation of this disclosure, the first threshold is less than the receiveable threshold of the outgoing port queue.
[0014] According to a specific implementation of this disclosure, the expression for the second threshold is:
[0015]
[0016] Where Δt represents the flowlet gap, Q′ PFC λ represents the acceptable threshold, S represents the average data packet size, and λ represents the average data packet size. i This represents the arrival rate of data packets in the queue per unit of time.
[0017] According to a specific implementation of this disclosure, the transmission delay of the rerouting path satisfies the same condition as the transmission delay of the original path.
[0018]
[0019] Among them, D n D0 represents the transmission delay of the rerouting path, while D0 represents the transmission delay of the original path.
[0020] According to a specific implementation of this disclosure, the expression for the waiting time is:
[0021] T wait =Δt-T measure
[0022]
[0023] According to a specific implementation of this disclosure, before the step of pausing the process by passing the current data packet and subsequent data packets into the waiting queue of the outgoing port corresponding to the rerouting path selected by the source switch, the method further includes:
[0024] Define a length constraint for the general priority queue, wherein the expression for the length constraint is:
[0025]
[0026] Where Q represents the instantaneous queue length of the general priority queue at time t, and C... i This represents the forwarding rate of data packets in the queue per unit of time.
[0027] Secondly, embodiments of this disclosure also provide an electronic device, the electronic device comprising:
[0028] At least one processor; and,
[0029] The memory is communicatively connected to the at least one processor; wherein,
[0030] The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the RDMA on-network transmission control method in the first aspect or any implementation thereof.
[0031] Thirdly, embodiments of this disclosure also provide a non-transitory computer-readable storage medium storing computer instructions for causing the computer to execute the RDMA on-network transmission control method in the first aspect or any implementation thereof.
[0032] Fourthly, embodiments of this disclosure also provide a computer program product, which includes a computing program stored on a non-transitory computer-readable storage medium. The computer program includes program instructions that, when executed by a computer, cause the computer to perform the RDMA on-network transmission control method in the first aspect or any implementation thereof.
[0033] The RDMA on-network transmission control scheme in this embodiment includes: Step 1, guiding the data flow from the source switch ingress port into 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 based on the data flow's five-tuple information; and placing all data packets in the data flow into the source switch's egress port queue for transmission; Step 2, determining whether any data packets belonging to the same data flow arrive within a preset time period after the arrival time of the first data packet; if so, proceeding to Step 3; Step 3, for each data packet in the same data flow, obtaining the queue delay d of the current data flow's corresponding egress port queue from the ingress port; when it is greater than a first threshold T... c At that time, within the source switch, the time interval T between the current data packet and the previous data packet leaving the shared buffer is monitored. measure When the time interval is greater than the second threshold, the current data packet and subsequent data packets are passed to the waiting queue of the corresponding outgoing port of the rerouting path selected by the source switch and paused to delay the transmission of data packets so that the time interval between them and the previous data packet meets the flowlet gap; Step 4, after the preset waiting time has elapsed, all data packets in the waiting queue are transmitted and the transmission of the general priority queue is paused until the waiting queue is empty.
[0034] The beneficial effects of the embodiments of this disclosure are as follows: By utilizing the ability of the source switch to sense and monitor the network transmission status through the solution of this disclosure, the transmission of data packets that meet specific conditions and thresholds is postponed through priority queues, new flowlets are actively generated and rerouted to other paths, which effectively improves the performance, efficiency and adaptability of lossless data center network data transmission based on RDMA. Attached Figure Description
[0035] To more clearly illustrate the technical solutions of the embodiments of this disclosure, the drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this disclosure. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0036] Figure 1 A flowchart illustrating an RDMA on-network transmission control method provided in this embodiment of the present disclosure;
[0037] Figure 2 The present disclosure provides two schematic diagrams for actively generating flowlets, wherein (a) is a schematic diagram for generating flowlets on a host, and (b) is a schematic diagram for generating flowlets on a switch.
[0038] Figure 3A system schematic diagram of an RDMA on-network transmission control method provided in this disclosure embodiment;
[0039] Figure 4 A schematic diagram of an electronic device provided in an embodiment of this disclosure. Detailed Implementation
[0040] The embodiments of this disclosure will now be described in detail with reference to the accompanying drawings.
[0041] The following specific examples illustrate the implementation of this disclosure. Those skilled in the art can easily understand other advantages and effects of this disclosure from the content disclosed in this specification. Obviously, the described embodiments are only a part of the embodiments of this disclosure, and not all of them. This disclosure can also be implemented or applied through other different specific embodiments, and the details in this specification can also be modified or changed based on different viewpoints and applications without departing from the spirit of this disclosure. It should be noted that, in the absence of conflict, the following embodiments and features in the embodiments can be combined with each other. Based on the embodiments in this disclosure, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this disclosure.
[0042] It should be noted that various aspects of embodiments within the scope of the appended claims are described below. It will be apparent that the aspects described herein can be embodied in a wide variety of forms, and any particular structure and / or function described herein is merely illustrative. Based on this disclosure, those skilled in the art will understand that one aspect described herein can be implemented independently of any other aspect, and two or more of these aspects can be combined in various ways. For example, any number of aspects set forth herein can be used to implement the device and / or practice the method. Additionally, this device and / or method can be implemented using structures and / or functionalities other than one or more of the aspects set forth herein.
[0043] It should also be noted that the illustrations provided in the following embodiments are only schematic representations of the basic concept of this disclosure. The drawings only show the components related to this disclosure and are not drawn according to the number, shape and size of the components in actual implementation. In actual implementation, the form, quantity and proportion of each component can be arbitrarily changed, and the layout of the components may also be more complex.
[0044] Furthermore, specific details are provided in the following description to facilitate a thorough understanding of the examples. However, those skilled in the art will understand that the described aspects can be practiced without these specific details.
[0045] This disclosure provides an RDMA in-network transmission control method, which can be applied to network load balancing in Internet scenarios.
[0046] As data center applications increasingly demand higher performance, the traditional TCP protocol involves multiple memory copies during data transmission, resulting in significant latency and failing to meet the microsecond-level data transmission requirements of modern data center applications. Therefore, lossless data centers are increasingly adopting protocols such as RoCEv2 based on RDMA (Remote Direct Memory Access) technology. Lossless data center networks leverage the kernel bypass advantage of RDMA, using dedicated RNICs (RDMA-capable network interface cards) to achieve direct memory access between servers. Simultaneously, they employ hop-by-hop priority flow control (PFC), controlling data transmission on upstream ports by setting XON and XOFF thresholds, providing high-throughput, low-latency, and lossless network communication.
[0047] Data center networks often employ a Clos topology to support multipath communication between hosts, enhancing network robustness and performance. In this architecture, effective load balancing strategies are particularly crucial, especially on ToR (Top of Rack) switches, which can flexibly distribute traffic across different paths, fully utilizing available link resources.
[0048] Traditional load balancing schemes can be categorized into flow-level, packet-level, and flowlet-level schemes based on scheduling granularity. Flow-based schemes perform load balancing on the entire data flow, which is easy to implement but lacks flexibility. Packet-based schemes perform load balancing on a per-packet basis, offering high flexibility but prone to packet out-of-order delivery, thus impacting the overall transmission performance of the RDMA network. Flowlet-based schemes, with a scheduling granularity between the two, utilize the time gaps created after packet bursts to avoid out-of-order delivery while providing high flexibility. However, in RDMA networks, the adjustment of packets by RNICs results in insufficiently large time gaps, leading to a limited number of flowlets and thus restricting the performance of flowlet-level load balancing schemes in lossless data center networks. To overcome this challenge, a method has recently been proposed that delays packet transmission on the host, proactively extending specific time intervals to increase the chance of flowlet generation, and can be used in conjunction with load balancing schemes based on link utilization or insensitive to congestion. However, this approach has several drawbacks: 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, which causes the generated flowlet to be rerouted to a path with low link utilization due to the triggering of PFC pause. These drawbacks can lead to an unnecessary extension of the completion time of some data flows.
[0049] Therefore, an RDMA-based on-network transmission control method based on programmable switch priority queues is proposed. This method allows the switch to sense the network data transmission status and actively generate flowlets using the programmable switch's priority queues to optimize load balancing strategies.
[0050] See Figure 1 This is a flowchart illustrating an RDMA on-network transmission control method provided in an embodiment of this disclosure. Figure 1 As shown, the method mainly includes 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 based on the data flow's five-tuple information and put all data packets in the data flow into the source switch's outlet port queue to wait for transmission.
[0052] like Figure 2 The diagram illustrates the principles of two proactive flowlet generation methods provided in this embodiment of the invention. Based on the different locations where data packet transmission is delayed, the methods are categorized into two cases: generation on the host and generation on the switch. For example... Figure 1Figure (a) shows the principle diagram of the latest proposed method of delaying data packet transmission and actively generating flowlets on the host. In this scheme, as shown in Figure (a), the flowlet generation is actively generated. Figure 1 As shown in case 1 of (a), if the original path is still the optimal path, the actively generated flowlet may be rerouted to the original path, resulting in an invalid flowlet generation; for example... Figure 1 As shown in case 2 of (a), a path with low link utilization due to a PFC pause is incorrectly identified as a good path, and the actively generated flowlet is rerouted to that path. Therefore, both of these situations will lead to an increase in data flow completion time. Figure 1 Figure (b) shows the principle of delaying data packet transmission and actively generating flowlets on the switch provided by the present invention, which avoids invalid flowlet generation or flowlets being rerouted to the PFC pause path.
[0053] like Figure 3 The diagram illustrates the principle of an RDMA-based on-network transmission control method and system based on priority queues in a programmable switch, as provided in an embodiment of the present invention. This system is deployed on the latest programmable switches and is only effective 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 linear data packet processing for other queues; (3) tens of MBs of stateful memory (such as register sets) to track the usage of data 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 switches are divided into source switches and destination switches according to the transmission direction of the data flows (i.e., from left to right). Each RDMA data flow consists of one or more data packets, which enter the switch sequentially through the source switch's ingress port and are first directed to the shared buffer. Subsequently, based on the five-tuple information of the data packets (including source IP address, destination IP address, source port number, destination port number, and protocol type), the source switch's forwarding logic maps these data packets to the corresponding egress port queue, awaiting forwarding to the corresponding transmission path.
[0055] In practice, the RDMA data stream enters the shared buffer from the source switch's ingress port. Based on the five-tuple information of the data packets in the data stream, an initial forwarding path is selected for the data stream, and the data packets are placed into the corresponding egress port queue to wait for transmission.
[0056] For example, after a data flow enters the source switch, it can be transmitted to the destination switch via path i and path j (i≠j), where the outgoing port queue P i Corresponding path i, outgoing port queue P j The path j corresponds to P0. In this method, the outgoing port queue P... i and P j It is called the general priority queue with the lowest scheduling priority, and the outgoing port queue P0 is called the waiting queue.
[0057] Step 2: Determine whether any data packets belonging to the same data stream arrive within a preset time period after the arrival time of the first data packet. If so, proceed to Step 3.
[0058] Optionally, the expression for the preset time period is:
[0059] t1+baseRTT
[0060] Where t1 is the arrival time of the first data packet, and baseRTT represents the round-trip time of the data packet from the sender to the receiver when there is no congestion.
[0061] In practical implementation, in the source switch, for each newly arriving data flow, the flow ID and the arrival time t1 of its first data packet are recorded at the ingress port. It is then determined whether any other data packets belonging to the same flow arrive after t1 + baseRTT, where baseRTT represents the round-trip time from the sender to the receiver when there is no congestion. If no other data packets arrive, the following operation is not performed, because such data flows that can be transmitted within one baseRTT are generally considered short flows, and this invention does not process such short flows; otherwise, the following operation continues.
[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. Here, `flowID` is a unique identifier calculated from the packet's 5-tuple information to distinguish different data flows, `t1` is the time the first packet arrives at the ingress port, `t1+baseRTT` is the time point after adding `baseRTT` to `t1`, and `baseRTT` is the round-trip time from the sender to the receiver when there is no congestion. If no packet with the identifier `flowID` arrives at the ingress port after `t1+baseRTT`, no processing is performed on this flow, as such data flows that can be completed within one `baseRTT` are generally considered short flows. If a packet with the identifier `flowID` arrives at the ingress port after `t1+baseRTT`, the following processing is performed.
[0063] Step 3: For each data packet in the same data stream, obtain the queue delay d of the corresponding outgoing port queue from the ingress port. When it is greater than the first threshold T... c At that time, within the source switch, the time interval T between the current data packet and the previous data packet leaving the shared buffer is monitored. measure When the time interval is greater than the second threshold, the current data packet and subsequent data packets are passed to the waiting queue of the outgoing port corresponding to the rerouting path selected by the source switch for it to pause and delay the transmission of data packets so that the time interval between them and the previous data packet meets the flowlet gap.
[0064] Optionally, the first threshold is less than the receiveable threshold of the outgoing port queue.
[0065] Optionally, the expression for the second threshold is:
[0066]
[0067] Where Δt represents the flowlet gap, Q′ PFC λ represents the acceptable threshold, S represents the average data packet size, and λ represents the average data packet size. i This represents the arrival rate of data packets in the queue per unit of time.
[0068] Furthermore, the transmission delay of the rerouting path satisfies the same condition as the transmission delay of the original path.
[0069]
[0070] Among them, D n D0 represents the transmission delay of the rerouting path, while D0 represents the transmission delay of the original path.
[0071] Furthermore, before the step of pausing the process by passing the current data packet and subsequent data packets into the waiting queue of the outgoing port corresponding to the rerouting path selected by the source switch, the method further includes:
[0072] Define a length constraint for the general priority queue, wherein the expression for the length constraint is:
[0073]
[0074] Where Q represents the instantaneous queue length of the general priority queue at time t, and C... i This represents the forwarding rate of data packets in the queue per unit of time.
[0075] In practice, based on the above operations, for each data packet in a non-newly arriving data stream, the queue delay d of the corresponding outgoing port queue of the current data stream can be obtained from the ingress port and compared with a preset threshold T. c For comparison, the threshold T herec This is used to indicate that the number of packets queued in the outgoing port queue corresponding to the current data flow forwarding path is large, but has not yet exceeded its receiveable threshold. When d is greater than the threshold T... c At that time, the time interval T between the current data packet and the previous data packet leaving the shared buffer is monitored within the switch. measure At the same time, T measure Compare with a set threshold T. If T... measure If the value exceeds the set threshold T, the current data packet and subsequent data packets are passed to the empty waiting queue of the outgoing port corresponding to the rerouting path selected by the switch for them to pause and delay the transmission of data packets so that the time interval between them and the previous data packet meets the flowlet gap.
[0076] The threshold T can be determined using the waiting queue. Specifically, the waiting queue pause time T wait Within this range, the queue length must not exceed its acceptable threshold Q'. PFC To avoid pauses triggered by the waiting queue exceeding the acceptable threshold, which could disrupt normal transmission within the switch, the waiting time T of the waiting queue can be calculated. wait for:
[0077]
[0078] Where, λ i This represents the arrival rate of queued data packets per unit time, and S represents the average data packet size. However, it's important to note the rerouting path transmission delay D. n The following conditions must be met between the original path transmission delay D0 and the original path transmission delay:
[0079]
[0080] This condition indicates that proactively generating flowlets within the switch by delaying packet transmission through priority queuing can improve network transmission performance. If this condition is not met, flowlets will not be proactively generated within the switch.
[0081] To fully utilize the gaps between flowlets and prevent out-of-order data packets during transmission, the flowlet gap Δt is set to a sufficiently large and reasonable time threshold. To ensure that the delayed data packet interval meets the flowlet gap Δt, the threshold T is defined as follows:
[0082]
[0083] Based on the above monitoring time interval T measure The specific waiting time T can be obtained from the gap Δt between the flowlet and the flowlet. wait ,Right now:
[0084] T wait =Δt-T measure (4)
[0085] Meanwhile, assuming the network is stable for a short period, the queue length after a certain time can be predicted by the packet arrival rate and forwarding rate in the queue per unit time. To ensure that the general priority queue length for the port corresponding to the paused rerouting path does not reach its acceptable threshold during the waiting queue's resumption of transmission and emptying, thus avoiding triggering a pause and causing unfair transmission, the predicted general priority queue length should meet the following conditions before packets enter the waiting queue:
[0086]
[0087] Where Q represents the instantaneous queue length of the general priority queue at time t, and C... i This represents the forwarding rate of data packets in the queue per unit of time.
[0088] For example, suppose the data flow is defined as follows: after t1+baseRTT, the remaining part consists of packets 1, 2, 3, 4, 5, and 6. Packet p in the outgoing port queue belongs to another data flow. The data flow enters the switch and then enters the shared buffer from the ingoing port. Based on the five-tuple information in the header of packet 1, the switch's forwarding logic assigns path i to the data flow. Packet 1 is mapped to the general priority queue P through operation ①. i The packet is waiting to be forwarded. Packet 2 obtains 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, data packets from the outgoing port are periodically selected, and the sending time is recorded in the packet header using techniques such as INT. When the data packet passes through the destination switch, the sending time is also piggybacked by any data packet passing through the same port. When a returned data packet is received, the source switch obtains the round-trip transmission delay and path delay information by using the difference between the arrival time and the sending time of the data packet. Based on the internal data distribution and path transmission delay information perceived by the source switch, a rerouting path is selected. Using the data packet arrival rate, forwarding rate, average data packet size, and the receiveable 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 it does not satisfy the formula, 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 via path i. If formula (2) is satisfied, continue with the following operations to ensure that the present invention can improve network transmission performance.
[0090] The switch detected the time interval T between data packets 3 and 2 leaving the shared buffer. measure The set threshold T is obtained by using the flowlet gap value Δt from formula (3). In a switch, when the outgoing port queue is occupied beyond its receiveable threshold, the outgoing port queue will send a pause frame to the corresponding incoming port queue. When the outgoing port queue occupancy drops to a certain threshold, the data transmission of the corresponding incoming port queue will resume. One incoming port queue is exclusively used by one data stream, while another incoming port queue has multiple data streams. Both transmit data to the same outgoing port queue. Initially, the traffic in the two incoming port queues shares the same outgoing port. After the outgoing port triggers a pause and then the incoming port data transmission resumes, unfair transmission is likely to occur. That is, multiple data streams compete for the ingoing port queues. The data stream that exclusively uses the ingoing port has a higher data transmission speed than other data streams and ultimately has a higher throughput than the data streams in the other incoming port queue. Therefore, when T measure When the value is greater than T, the pause time of the waiting queue satisfies formula (1), thus ensuring that when delaying the transmission of data packets through the waiting queue, the length of the waiting queue will not exceed the queue's acceptable threshold, thereby 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 P0 and paused through operation ②, with a specific pause time T. wait It can be obtained from formula (4) that during the P0 pause, the general priority queue P j Continue transmitting data. It's important to note that if the packet interval meets the flowlet time interval Δt, it can be detected at the ingress port; therefore, this method will not have a T-value. measure The case where the time interval is greater than the flowlet time interval Δt.
[0091] Step 4: After a preset waiting time, transmit all data packets in the waiting queue and pause the transmission of the general priority queue until the waiting queue is empty.
[0092] Based on the above embodiments, the expression for the waiting time is:
[0093] T wait =Δt-T measure
[0094]
[0095] In practice, waiting queue P0 is paused for T. wait After a certain time, resume transmission in the waiting queue P0 and suspend the general priority queue P. j Its transmission status is as follows Figure 2 As shown in (b), the general priority queue P will not be restored until the waiting queue P0 is empty. j To avoid unfair transmission within the switch, a general priority queue P is used. j The instantaneous queue length of the general priority queue P when data packet 3 is received. j After waiting queue P0 is paused and then emptied, its queue occupancy cannot exceed the acceptable threshold, which is the general priority queue P0 after a predicted period of time. j The occupancy should also satisfy formula (5).
[0096] The RDMA-based on-network transmission control method provided in this embodiment utilizes the ability of the source switch to sense and monitor the network transmission status, postpones the transmission of data packets that meet specific conditions and thresholds through a priority queue, actively generates new flowlets, and reroutes them to other paths, effectively improving the performance, efficiency, and adaptability of lossless data center network data transmission based on RDMA.
[0097] See Figure 4 This disclosure also provides an electronic device 40, which includes at least one processor and a memory communicatively connected to the at least one processor. The memory stores instructions executable by the at least one processor, which, when executed, enables the at least one processor to perform the RDMA on-network transmission control method described in the foregoing method embodiments.
[0098] This disclosure also provides a non-transitory computer-readable storage medium storing computer instructions for causing the computer to execute the RDMA on-network transmission control method in the foregoing method embodiments.
[0099] This disclosure also provides a computer program product, which includes a computing program stored on a non-transitory computer-readable storage medium. The computer program includes program instructions that, when executed by a computer, cause the computer to perform the RDMA on-network transmission control method in the foregoing method embodiments.
[0100] The following is for reference. Figure 4 The diagram illustrates a structural schematic of an electronic device 40 suitable for implementing embodiments of the present disclosure. The electronic devices in the embodiments of the present disclosure may include, but are not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and fixed terminals such as digital TVs and desktop computers. Figure 4 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.
[0101] like Figure 4 As shown, electronic device 40 may include a processing unit (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 read-only memory (ROM) 402 or a program loaded from storage device 408 into random access memory (RAM) 403. The RAM 403 also stores various programs and data required for the operation of electronic device 40. The processing unit 401, ROM 402, and RAM 403 are interconnected via bus 404. Input / output (I / O) interface 405 is also connected to bus 404.
[0102] Typically, the following devices can be connected to I / O interface 405: input devices 406 including, for example, touchscreens, touchpads, keyboards, mice, image sensors, microphones, accelerometers, gyroscopes, etc.; output devices 407 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 408 including, for example, magnetic tapes, hard disks, etc.; and communication devices 409. Communication device 409 allows electronic device 40 to communicate wirelessly or wiredly with other devices to exchange data. Although electronic device 40 with various devices is shown in the figure, it should be understood that it is not required to implement or possess all the devices shown. More or fewer devices may be implemented or possessed alternatively.
[0103] In particular, according to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device 409, or installed from a storage device 408, or installed from a ROM 402. When the computer program is executed by the processing device 401, it performs the functions defined in the methods of embodiments of this disclosure.
[0104] It should be noted that the computer-readable medium described in this disclosure can be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this disclosure, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in connection with an instruction execution system, apparatus, or device. In this disclosure, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium can be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.
[0105] The aforementioned computer-readable medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device.
[0106] The aforementioned computer-readable medium carries one or more programs, which, when executed by the electronic device, enable the electronic device to perform the relevant steps of the above-described method embodiments.
[0107] Alternatively, the aforementioned computer-readable medium carries one or more programs, which, when executed by the electronic device, enable the electronic device to perform the relevant steps of the above method embodiments.
[0108] Computer program code for performing the operations of this disclosure can be written in one or more programming languages or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, and C++, and conventional procedural programming languages such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone 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 remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0109] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0110] The units described in the embodiments of this disclosure can be implemented in software or in hardware.
[0111] It should be understood that the various parts of this disclosure can be implemented in hardware, software, firmware, or a combination thereof.
[0112] The above description is merely a specific embodiment of this disclosure, but the scope of protection of this disclosure is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this disclosure should be included within the scope of protection of this disclosure. Therefore, the scope of protection of this disclosure should be determined by the scope of the claims.
Claims
1. A method for controlling on-network transmission of RDMA, 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 based on the data flow's five-tuple information and put all data packets in the data flow into the source switch's outlet port queue to wait for transmission. Step 2: Determine whether any data packets belonging to the same data stream arrive within a preset time period after the arrival time of the first data packet. If so, proceed to Step 3. Step 3: For each data packet in the same data stream, obtain the queue delay d of the corresponding outgoing port queue from the ingress port. When it is greater than the first threshold T... c At that time, within the source switch, the time interval T between the current data packet and the previous data packet leaving the shared buffer is monitored. measure When the time interval exceeds the second threshold, the current data packet and subsequent data packets are paused in the waiting queue of the outgoing port corresponding to the rerouting path selected by the source switch, delaying data packet transmission so that the time interval between them and the previous data packet satisfies the flowlet gap. The expression for the second threshold is: Where Δt represents the flowlet gap, Q' PFC λ represents the acceptable threshold, S represents the average data packet size, and λ represents the average data packet size. i This represents the arrival rate of data packets in the queue per unit of time. Before the step of pausing the process by passing the current data packet and subsequent data packets into the waiting queue of the outgoing port corresponding to the rerouting path selected by the source switch, the method further includes: Define a length constraint for the general priority queue, wherein the expression for the length constraint is: T wait =Δt-T measure Where Q represents the instantaneous queue length of the general priority queue at time t, and T wait Indicates the waiting time, C i This represents the forwarding rate of data packets in the queue per unit of time. Step 4: After a preset waiting time, transmit all data packets in the waiting queue and pause the transmission of the general priority queue until the waiting queue is empty.
2. The method according to claim 1, characterized in that, The expression for the preset time period is t1 + baseRTT. Where t1 is the arrival time of the first data packet, and baseRTT represents the round-trip time 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 less than the receive threshold of the outgoing port queue.
4. The method according to claim 1, characterized in that, The transmission delay of the rerouting path satisfies the same condition as the transmission delay of the original path. Among them, D n D0 represents the transmission delay of the rerouting path, while D0 represents the transmission delay of the original path.
5. An electronic device, characterized in that, The electronic device includes: 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, which, when executed by the at least one processor, enables the at least one processor to perform the RDMA on-network transmission control method according to any one of claims 1-4.
6. A non-transitory computer-readable storage medium storing computer instructions for causing the computer to perform the RDMA on-network transmission control method according to any one of claims 1-4.