Active congestion control method based on credit mechanism, electronic equipment and storage medium
By adopting an active congestion control method based on a credit mechanism in the data center network, dynamically adjusting the credit allocation amount, the problem of failure to fully consider network bottlenecks and fine-grained allocation of credit values in the existing technology is solved, and more efficient network transmission and performance improvement is achieved.
Patent Information
- Application Number
- CN202510508295.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-22
- Publication Date
- 2025-05-30
- Estimated Expiration
- 2045-04-22
AI Technical Summary
The existing active congestion control algorithms fail to fully consider the internal bottlenecks of the network, and lack fine-grained allocation of credit values, and cannot dynamic adaptive adjustments based on the network cache resource status and congestion level, making it difficult to quickly respond to congestion changes in one more scenario, affecting the efficiency of the data center network.
The active congestion control method based on the credit mechanism is adopted. The sender sends the data flow based on the credit allocation amount, the switch marks explicit congestion notifications based on the cache utilization situation, and the receiver dynamically adjusts the credit allocation amount, and fine-grained allocation is performed based on the network status and bottleneck bandwidth to ensure that the data flow does not exceed the network carrying capacity.
By finely managing credit allocation and combining the actual congestion state of the network, dynamic adjustment of data flow is achieved, network transmission efficiency is optimized, delay is reduced, and the performance and efficiency of data center network are improved.
Smart Images

Figure CN120075136A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of computer networks, and in particular to an active congestion control method, an electronic device, and a storage medium based on a credit mechanism. Background Art
[0002] As a key infrastructure in a distributed computing architecture, the Data Center Network (DCN) undertakes the core functions of data transmission and processing. In this context, the Remote Direct Memory Access (RDMA) technology emerged. Its core advantage lies in being able to bypass traditional operating system intervention and achieve direct data transmission across computer memories, thereby significantly reducing latency and the occupation of Central Processing Unit (CPU) resources. This characteristic of the RDMA technology is crucial for the data center network as it directly relates to the efficiency and response speed of data processing.
[0003] With the rapid development of technologies such as cloud computing, big data, Internet of Things, and artificial intelligence, the data center network faces requirements for higher throughput and lower latency. The application of Software Defined Network (SDN) and Network Function Virtualization (NFV) technologies provides higher flexibility and programmability for the data center network, making the dynamic allocation and management of network resources more efficient. The research directions for data center network optimization include but are not limited to efficient network topology design, implementation of Quality of Service (QoS) mechanisms, and configuration optimization of network devices, all of which are aimed at reducing network latency and improving throughput. The development of the RDMA technology, especially the application of Infiniband (IB) and RDMA over Converged Ethernet (RoCE), provides high-performance and low-latency data transmission capabilities for the data center, further promoting the development of the data center network towards intelligence, automation, and integration to meet the growing data transmission requirements and improve network performance.
[0004] The traffic inside the data center network exhibits high density and complexity, which requires the network to have an effective congestion control mechanism to maintain transmission efficiency. The goal of congestion control is to prevent or alleviate network congestion by dynamically adjusting the sending rate of data packets, ensuring the stability and transmission efficiency of the data stream. In an environment with high link rates, the size of the data stream often approaches or equals the Bandwidth-Delay Product (BDP), which increases the complexity of congestion control decisions because the congestion control algorithm must be able to quickly respond to changes in the network state to avoid an increase in data transmission latency.
[0005] With the rapid development of network technology, especially the significant increase in the scale and link speed of data center networks, traditional window- and rate-based congestion control algorithms have gradually revealed their inherent limitations. These algorithms often struggle to quickly respond to congestion changes in the face of network traffic bursts and high-concurrency flows, leading to a decline in network performance. Therefore, it is necessary to seek more advanced congestion control strategies to meet the requirements of the current network environment.
[0006] The proactive congestion control method, whose core idea is to proactively regulate the data transmission volume of the sender by the receiver, thereby preventing network congestion. This method issues tokens or permissions from the receiver to the sender, and the sender controls the data transmission based on the allowed amount, so as to ensure that the data volume in the network does not exceed the network's carrying capacity. Compared with traditional feedback-based passive congestion control algorithms, proactive congestion control can reduce data loss, accelerate convergence, and reduce buffer occupancy.
[0007] Although proactive congestion control algorithms have obvious advantages in theory, they still face many challenges in actual deployment. Solving these problems is crucial for the widespread deployment of congestion control algorithms based on the credit mechanism.
[0008] In summary, although the passive congestion control algorithms proposed in the prior art have achieved certain performance improvements, they still face many challenges in specific scenarios. These algorithms mainly adjust the sending window or rate based on network feedback signals, so they often only take effect after congestion occurs. Especially in the multi-sender scenario (the scenario where multiple senders send data to a single receiver simultaneously), numerous data flows converge on a single receiving node, which easily leads to buffer overflow in the switch. At this time, passive congestion control can only perform heuristic adjustments after buffer overflow and requires multiple cycles to converge, seriously delaying the flow completion time and affecting the overall efficiency of the data center network. In contrast, proactive congestion control algorithms actively limit the data transmission volume of the sender based on the receiver's maximum reception capacity to reduce packet loss. However, existing proactive congestion control algorithms do not fully consider internal network bottlenecks and lack fine-grained allocation of credit values, and cannot perform dynamic adaptive adjustments according to the network buffer resource status and congestion degree. Summary of the Invention
[0009] To solve the above technical problems, the present invention provides a proactive congestion control method, an electronic device, and a storage medium based on the credit mechanism, which are applicable to high-bandwidth and low-latency data center networks. The method aims to achieve dynamic adjustment of data flows by finely managing the credit allocation amount and combining the actual network congestion status, so as to optimize network transmission efficiency, reduce latency, and improve the performance of the data center network.
[0010] To solve the above technical problems, the present invention adopts the following technical solutions: An active congestion control method based on a credit mechanism, comprising: The sender sends data streams according to the credit allocation amount; The switch marks explicit congestion notification for the packets of the received data stream according to its own buffer utilization situation; The receiver dynamically adjusts the credit allocation amount of the sender, specifically including: Network condition assessment: counting the proportion of explicit congestion notifications of the data stream in the current period, and calculating the current congestion degree of the data stream by combining the proportion of explicit congestion notifications and the congestion information of the historical period; Dynamic adjustment of credit allocation amount: Constraining the total credit amount of each data stream in combination with the bottleneck bandwidth of the receiver switch and the total credit amount of the core network; In each adjustment period, the total credit amount of the data stream is evenly distributed to each data stream as the basic average credit amount, and the basic average credit amount is adjusted according to the congestion degree of the data stream to obtain the actual credit allocation amount of the current data stream in the current adjustment period.
[0011] In one embodiment, it further includes the start of the data stream: If the traffic of the data stream is less than K times the bandwidth-delay product, an initial credit allocation amount of the size of the bandwidth-delay product is set for the data stream; If the traffic of the data stream is greater than or equal to K times the bandwidth-delay product, the data stream sends a request message to obtain the initial credit allocation amount; K is a set value.
[0012] In one embodiment, the sender sends data streams according to the credit allocation amount, specifically including: For the sending of each packet in the data stream, the credit allocation amount corresponding to the size of the packet needs to be consumed.
[0013] In one embodiment, the counting of the proportion of explicit congestion notifications of the data stream in the current period, and calculating the current congestion degree of the data stream by combining the proportion of explicit congestion notifications and the congestion information of the historical period, specifically includes: In one period, the receiver counts the number of packets with explicit congestion notification of a certain data stream and the number of normal packets , calculates the proportion of explicit congestion notifications ; Combining the historical congestion information and the proportion of explicit congestion notifications , calculates the current congestion degree of the data stream ; ; is a weighting factor.
[0014] In one embodiment, constraining the total credit of each data flow in combination with the bottleneck bandwidth of the receiving switch and the total credit of the core network specifically includes: The allocation of credit should satisfy: ; where is the basic average credit of the i-th data flow, is the total number of data flows, is the total credit corresponding to the bottleneck bandwidth of the receiving switch, is the total credit corresponding to the core network.
[0015] In one embodiment, in each adjustment period, evenly distributing the total credit of the data flow to each data flow as the basic average credit, and adjusting the basic average credit according to the congestion degree of the data flow to obtain the actual credit allocation amount of the current data flow in the current adjustment period, specifically including: Set a threshold , and judge the congestion degree of the data flow Is it greater than or equal to , if so, the current data flow is in a congested state, if not, the current data flow is in an uncongested state; In each adjustment period, first evenly distribute the total credit to all data flows to obtain the basic average credit of each data flow , and then, for the basic average credit of each data flow, make an adjustment in combination with the congestion degree : For the data flow in a congested state, multiplicatively reduce the credit allocation amount on the basis of the basic average credit to obtain the actual credit allocation amount of the data flow in a congested state ; For the data flow in an uncongested state, multiplicatively increase the credit allocation amount on the basis of the basic average credit according to the congestion degree and the traffic volume of the data flow to obtain the actual credit allocation amount of the data flow in an uncongested state .
[0016] In one embodiment, for the data flow in a congested state, multiplicatively reducing the credit allocation amount on the basis of the basic average credit to obtain the actual credit allocation amount of the data flow in a congested state , specifically including: ; is an adjustable factor for multiplicative reduction.
[0017] In one embodiment, for data flows in an uncongested state, the credit allocation amount is multiplicatively increased on the basis of the basic average credit amount according to the congestion degree and the traffic volume of the data flow, so as to obtain the actual credit allocation amount of the data flow in the uncongested state. , specifically including: ; ; Among them, are respectively the index of the k-th data flow in the congested state and the index of the j-th data flow in the uncongested state; is the increase factor of the data flow, which is jointly determined by the traffic volume and congestion degree of the data flow; is the total sum of the increased credit allocation amounts; is the total number of data flows in the uncongested state, is the number of times the data flow is multiplicatively increased; is the total number of data flows in the congested state, is the total number of data flows, is the total sum of the reduced credit allocation amounts.
[0018] A computer device includes a memory and a processor. The memory stores a computer program, and when the processor executes the computer program, the steps of the method in any one of the embodiments are implemented.
[0019] A computer-readable storage medium stores a computer program thereon, and when the computer program is executed by a processor, the steps of the method in any one of the embodiments are implemented.
[0020] Compared with the prior art, the beneficial technical effects of the present invention are: The core contribution of the present invention is to propose an active congestion control algorithm for the modern data center network environment with high bandwidth and low latency requirements. By evaluating the congestion status of the network and combining the bottleneck limitations at the receiving end, the control of data packets in the network is realized.
[0021] Different from passive congestion control algorithms that usually rely on feedback signals of network congestion, such as packet loss or increased latency, these signals are often only perceived by the sender after congestion has occurred, resulting in a lag in control response. The present invention adopts a "reservation-allocation" mode, which can control the total amount of packets in the network through preventive measures before congestion forms.
[0022] Compared with existing active congestion control algorithms, the method proposed in the present invention can dynamically adjust the credit allocation according to real-time network feedback, taking into account not only the receiving ability of the receiver but also incorporating the congestion status within the network into the decision-making process of credit value allocation. Through this mechanism, more refined credit value allocation decisions can be made based on the characteristics of different traffic flows and the actual congestion level of the network. Therefore, the method proposed in the present invention can adapt to the rapid changes in network conditions, respond promptly to potential congestion risks, and optimize the use of network resources by adjusting the credit allocation, demonstrating higher intelligence and reliability in actual operation, significantly improving the performance and efficiency of the data center network, and having important theoretical and practical significance. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] Figure 1 is a flowchart of the method in an embodiment of the present invention; Figure 2 is a schematic diagram of the method scenario in an embodiment of the present invention; Figure 3 is a schematic diagram of the receiver architecture in an embodiment of the present invention; Figure 4 is a schematic diagram of the adjustment of the credit allocation in an embodiment of the present invention; Figure 5 is a schematic diagram of the dumbbell topology network in an embodiment of the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0024] A preferred embodiment of the present invention will be described in detail below with reference to the accompanying drawings.
[0025] The present invention proposes an active congestion control method based on a credit mechanism to meet the requirements of high throughput and low latency transmission in data center networks.
[0026] As Figure 1 shown, the present invention discloses an active congestion control method based on a credit mechanism, including the following steps: S1, the sender sends data streams according to the credit allocation; S2, the switch marks the packets of the received data stream with explicit congestion notification according to its own cache utilization; S3, the receiver dynamically adjusts the credit allocation of the sender, specifically including the following steps: S31, Network condition assessment: Calculate the proportion of explicit congestion notifications of the data stream in the current cycle, and combine the proportion of explicit congestion notifications and the congestion information of the historical cycle to calculate the current congestion level of the data stream; S32, Dynamic adjustment of credit allocation: The total credit of each data stream is constrained by combining the bottleneck bandwidth of the receiving switch and the total credit of the core network; in each adjustment period, the total credit of the data stream is evenly distributed to each data stream as the basic average credit amount, and the basic average credit amount is adjusted according to the congestion degree of the data stream to obtain the actual credit allocation amount of the current data stream in the current adjustment period.
[0027] The present invention realizes the control of data packets in the network by evaluating the congestion status of the network and combining the bottleneck limitation of the receiving end.
[0028] The core part of the method is the dynamic adjustment of the credit allocation amount by the receiving party, which is mainly divided into two parts, as Figure 3 shown. The present invention proposes an end-to-end congestion control method that comprehensively considers the explicit congestion notification information of the core network, aiming to overcome the limitation of relying only on the bandwidth bottleneck of the last-hop switch. This method sets a credit limit by the receiving party based on its own bottleneck bandwidth to ensure that Incast traffic (multi-sender scenario) will not cause the last-hop switch to become a congestion node in the network. In addition, the receiving party evaluates the congestion status of each flow based on the explicit congestion notification (ECN) information in the received packets, and decides the credit allocation strategy accordingly, rather than simply evenly distributing. As Figure 3 shown, the receiving party includes a receiving module, a congestion control module, and a sending module. The receiving module receives the data packets of the data message and generates an acknowledgment signal (ACK) to the sending module; the congestion control module dynamically evaluates the network congestion degree and generates a credit allocation strategy, which is the core component of the receiving party architecture; the sending module feeds back the credit allocation result to the sending party and sends an acknowledgment signal to the sending party.
[0029] The overall scenario of the method is as Figure 2 shown, mainly including three core components: the sending party, the receiving party, and the switch.
[0030] Sending party: The sending party sends data according to the credit value allocated by the receiving party.
[0031] Switch: The switch implements an explicit congestion notification (Explicit Congestion Notification, ECN) marking strategy for the received packets according to the utilization of its buffer, so as to feedback the actual congestion status of the network to the receiving party.
[0032] The receiving party evaluates the network congestion status according to the explicit congestion notification marks in each received data stream, and combines the processing capacity of the switch to judge the network bottleneck position. Based on this information, the receiving party will dynamically adjust the credit allocation amount of each data stream to ensure that the number of data packets in the network does not exceed its carrying capacity, thereby reducing the packet loss phenomenon.
[0033] In one embodiment, it further includes the startup of the data stream: If the traffic of the data stream is less than K times the bandwidth-delay product, an initial credit allocation amount of the size of one bandwidth-delay product is allocated to the data stream; if the traffic of the data stream is greater than or equal to K times the bandwidth-delay product, the data stream sends a request message to obtain the initial credit allocation amount.
[0034] The execution process of the algorithm is divided into three stages: Data stream startup stage: In the initial stage of the data stream, since the receiver has not yet identified all senders, the credit mechanism cannot be immediately applied. To avoid the increased delay caused by slow start, for small traffic (less than K times the bandwidth-delay product, BDP), it is allowed to directly send a data volume equal to the size of one BDP at the beginning. This is because within one round-trip time (RTT), a data stream can send at most a data volume of BDP size, and then it will receive the credit allocation amount from the receiver. For large traffic (greater than K times BDP), since the waiting for one round-trip time has less impact on them, and uncontrolled sending may exacerbate network congestion, it is necessary to send a request message to obtain the credit allocation amount. The parameter K is a configurable variable that can be adjusted according to user needs. After receiving a new data packet or request packet, the receiver records the corresponding data stream and adds it to the queue to be allocated, preparing for credit value allocation.
[0035] Data stream sending stage: Once the sender receives the credit allocation amount, it sends data packets according to the credit allocation amount, and adds a field to the header of each data packet to notify the receiver of the remaining credit allocation amount to be allocated. This approach not only reduces the use of control packets but also avoids the loss of credit allocation requests due to the loss of control messages. The switch performs explicit congestion notification (ECN) marking on the message according to the actual usage of the buffer to notify the receiver of the network condition. The receiver then evaluates the congestion condition based on the number of explicit congestion notification (ECN) markings for each flow and adjusts the credit allocation amount in combination with its processing capacity.
[0036] Data stream end stage: When the data stream is about to end, the sender marks the last message header to notify the receiver that no more credit allocation amount is needed. After receiving the message with the end mark, the receiver removes the corresponding data stream from the queue to be allocated and stops allocating bandwidth resources for it.
[0037] In one embodiment, the sender in step S1 sends the data stream according to the credit allocation amount, specifically including: The sending of each data packet in the data stream requires consuming the credit allocation amount corresponding to the size of the data packet.
[0038] Specifically, the transmission of each data packet requires consuming a credit allocation corresponding to its size. If the current credit allocation is insufficient to support the transmission of the data packet, the data packet will be postponed for transmission.
[0039] In one embodiment, the method for statistically calculating the proportion of explicit congestion notifications of the data stream within the current period in step S31, and calculating the current congestion degree of the data stream by combining the proportion of explicit congestion notifications and the congestion information of the historical period specifically includes: Within one period, the receiver statistically calculates the number of packets of a certain data stream carrying explicit congestion notifications , the number of normal packets , and calculates the proportion of explicit congestion notifications : ; (1) Combined with the historical congestion information and the proportion of explicit congestion notifications , calculate the current congestion degree of the data stream ; ; (2) is the weighting factor.
[0040] The present invention proposes a method for evaluating the congestion degree based on explicit congestion notification. Since the multi-path load balancing technology is combined and used, different packets of the data stream will reach the receiver from different paths, so a method for evaluating the overall network congestion of a single data stream in the case of multi-paths is proposed.
[0041] Proportion of valid explicit congestion notifications within the statistical period: Within one period ( ), the receiver statistically calculates the number of packets with explicit congestion notifications received by a certain stream , the number of normal packets , and calculates the proportion of explicit congestion notification (ECN) .
[0042] Weighting of the congestion degree in the historical period: Since the congestion state is not an instantaneous state and the transmission of the data packets in the switch queue needs to be completed, the historical congestion information also needs to be taken into consideration, rather than only considering the congestion situation in the current period. Denote the weighting factor , and calculate the congestion degree in the current state .
[0043] The receiver maintains the congestion situation of all data streams sent to itself, which is recorded in a table. The congestion situation of each data stream in the network is recorded in the table, and dynamic adjustment of credit allocation is realized by combining the switch (TOR) and the last-hop bottleneck.
[0044] In one embodiment, constraining the total credit of each data stream by combining the bottleneck bandwidth of the receiving switch and the total credit of the core network in step S32 specifically includes: The credit allocation should satisfy: ; (3) where is the basic average credit amount of the i-th data stream, is the total credit amount corresponding to the bottleneck bandwidth of the receiving switch, is the total credit amount corresponding to the core network.
[0045] Based on the evaluated congestion degree, the present invention proposes a dynamic credit allocation mechanism. To meet the requirements of neither exceeding the bottleneck bandwidth of the receiver nor exceeding the bottleneck of the core network, the credit allocation should satisfy Equation (3).
[0046] Dynamically adjust within each period. If it can be ensured that the total credit amount does not exceed the network's carrying capacity, congestion can be avoided to the greatest extent.
[0047] In one embodiment, in each adjustment period, the total credit amount is evenly distributed to each data stream as the basic average credit amount, and the basic average credit amount is adjusted according to the congestion degree of the data stream. Specifically, it includes: Set a threshold , and judge the congestion degree of the data stream whether it is greater than or equal to . If so, the current data is in a congested state; if not, the current data stream is in an uncongested state; In each adjustment period, first evenly distribute the total credit amount to all data streams to obtain the basic average credit amount of each data stream, and then, for the basic average credit amount of each data stream, make adjustments in combination with the congestion degree : For the data stream in the congested state, multiply and reduce the credit allocation amount on the basis of the basic average credit amount to obtain the actual credit allocation amount of the data stream in the congested state; For the data stream in the uncongested state, multiply and increase the credit allocation amount on the basis of the basic average credit amount according to the congestion degree and the traffic volume of the data stream to obtain the actual credit allocation amount of the data stream in the uncongested state.
[0048] Specifically, when a data stream is not in a congested state and there is no explicit congestion notification mark within a period, it is considered that the data stream is in a smooth state; if there is an explicit congestion notification mark within the period, it is considered that although there is queuing in the path of the data stream, it has not reached the level of congestion. In each adjustment period, first evenly distribute the credits to all data streams as a basis, and then for each stream, make adjustments in combination with its congestion level, such as Figure 4 as shown
[0049] In one embodiment, for the data stream in a congested state, multiply and reduce the credit allocation amount on the basis of the basic average credit amount to obtain the actual credit allocation amount of the data stream in a congested state , specifically including: ; (4) is the adjustable factor for multiplicative reduction
[0050] As shown in Equation (4), first calculate the credit reduction amount of each congested stream, calculate the degree exceeding the threshold through , then multiply by the multiplicative reduction factor to obtain the amount that should be reduced, and finally calculate the credit allocation amount of the k-th data stream in a congested state
[0051] In one embodiment, for the data stream in an uncongested state, multiply and increase the credit allocation amount on the basis of the basic average credit amount according to the congestion level and the traffic size of the data stream to obtain the actual credit allocation amount of the data stream in an uncongested state , specifically including: ; (5) ; (6) Among them, are the indexes of the k-th data stream in a congested state and the j-th data stream in an uncongested state respectively; is the increase factor of the data stream, which is jointly determined by the traffic size and congestion level of the data stream; is the total sum of the increased credits; is the total number of data streams in an uncongested state, is the number of times of multiplicative increase of the data stream; is the total number of data streams in a congested state, is the total number of data streams, is the total sum of the reduced credit allocation amounts
[0052] Subtracting the allocated amount of congested data streams from the total amount gives the amount available for other data streams to increase, as shown in Equation (5). The excess bandwidth available for allocation is proportionally allocated to all other non-congested data streams. Moreover, the more times the credit allocation amount of a data stream increases, the more the amount increases each time, because if it remains non-congested after multiple increases, it is considered that there is still a large amount of available bandwidth; as shown in Equation (6), each data stream is adjusted. Finally, it is ensured that the additional credit amount does not exceed the reduced total amount, as shown in Equation (7).
[0053] .(7) When a data stream ends, before the next credit adjustment, the bandwidth it occupies should not be evenly distributed to other data streams: if there are non-congested data streams, this part of the free bandwidth is distributed to non-congested data streams, preferentially to those in a smooth state, and then those queuing but non-congested are considered; if all other data streams are congested, this part of the bandwidth is wasted to avoid exacerbating network congestion. If a new data stream arrives at a certain moment, before the next adjustment of the credit allocation ratio, enough credit is proportionally allocated from other data streams to allow the new data stream to reach the basic average credit amount.
[0054] Build a typical dumbbell topology in the computer room, as Figure 5 shown, consisting of three switches and four hosts, where the link between two switches is set as the bottleneck link (50 Gbps). Two hosts are used as senders, one host is used as the receiver, and each of the two senders establishes one connection with the receiver. It can be in the network structure shown in Figure 5 to control the transmission of flows using the improved active congestion control algorithm, and compare with the existing Data Center Quantized Congestion Notification (DCQCN) algorithm in various performances to verify the performance of the present invention.
[0055] In one embodiment, the present invention provides a computer device, which can be a server. The computer device includes a processor, a memory, and a network interface connected through a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store the data used in the above method. The network interface of the computer device is used to communicate with external terminals through a network connection. When the computer program is executed by the processor, the above method is implemented.
[0056] In an exemplary embodiment, a computer-readable storage medium including instructions, such as a memory including instructions, is also provided. The above instructions can be executed by a processor to complete the above method. The storage medium may be a computer-readable storage medium. For example, the computer-readable storage medium may be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device, etc.
[0057] For those skilled in the art, it is obvious that the present invention is not limited to the details of the above exemplary embodiments, and without departing from the spirit or basic characteristics of the present invention, the present invention can be implemented in other specific forms. Therefore, from any point of view, the embodiments should be regarded as exemplary and non-limiting. The scope of the present invention is defined by the appended claims rather than the above description. Therefore, all changes falling within the meaning and scope of the equivalent elements of the claims are intended to be included in the present invention, and any reference signs in the claims should not be regarded as limiting the claims involved.
[0058] In addition, it should be understood that although this specification is described according to embodiments, not every embodiment only contains an independent technical solution. This narrative way of the specification is only for clarity. Those skilled in the art should regard the specification as a whole, and the technical solutions in each embodiment can also be appropriately combined to form other embodiments that can be understood by those skilled in the art.
Claims
1. An active congestion control method based on a credit mechanism, characterized in that: include: The sender sends data streams according to the credit allocation; The switch marks the received data stream messages with explicit congestion notifications based on its own buffer utilization; The receiver dynamically adjusts the sender's credit allocation, including: Network status assessment: Count the percentage of explicit congestion notifications of data flows in the current cycle, and calculate the current congestion level of the data flow by combining the percentage of explicit congestion notifications and congestion information of historical cycles; Dynamic adjustment of credit allocation: The total credit amount of each data flow is constrained by combining the bottleneck bandwidth of the receiving switch and the total credit amount of the core network. In each adjustment cycle, the total credit amount of the data flow is evenly distributed to each data flow as the basic average credit amount, and the basic average credit amount is adjusted according to the congestion level of the data flow to obtain the actual credit allocation amount of the current data flow in the current adjustment cycle.
2. The active congestion control method based on the credit mechanism according to claim 1, characterized in that: It also includes the start-up of the data flow: if the flow of the data flow is less than K times the bandwidth-delay product, an initial credit allocation amount of the bandwidth-delay product size is set for the data flow; if the flow of the data flow is greater than or equal to K times the bandwidth-delay product, the data flow sends a request message to obtain the initial credit allocation amount; K is a set value.
3. The active congestion control method based on the credit mechanism according to claim 1, characterized in that: The sender sends the data stream according to the credit allocation, specifically including: The sending of each data packet in the data stream needs to consume the credit allocation amount corresponding to the size of the data packet.
4. The active congestion control method based on the credit mechanism according to claim 1, characterized in that: The process of counting the proportion of explicit congestion notifications of data flows in the current period, combining the proportion of explicit congestion notifications and congestion information of historical periods, and calculating the current congestion degree of the data flows specifically includes: In a cycle, the receiver counts the number of packets with explicit congestion notification for a certain data flow. , the number of normal messages , calculate the proportion of explicit congestion notifications ; Combined with historical congestion information and the percentage of explicit congestion notifications , calculate the current congestion level of the data flow ; ; is the weighting factor.
5. The active congestion control method based on the credit mechanism according to claim 1, characterized in that: The method of constraining the total credit amount of each data flow by combining the bottleneck bandwidth of the receiving switch and the total credit amount of the core network specifically includes: The allocation of credit should satisfy: ; in, is the basic average credit of the ith data stream, is the total number of data flows, is the total amount of credit corresponding to the bottleneck bandwidth of the receiving switch, It is the total amount of credit corresponding to the core network.
6. The active congestion control method based on the credit mechanism according to claim 1, characterized in that: In each adjustment period, the total credit amount of the data flow is evenly distributed to each data flow as the basic average credit amount, and the basic average credit amount is adjusted according to the congestion degree of the data flow to obtain the actual credit allocation amount of the current data flow in the current adjustment period, which specifically includes: Setting the Threshold , determine the congestion level of data flow Is it greater than or equal to If yes, the current data flow is in a congested state; if no, the current data flow is in a non-congested state; In each adjustment cycle, the total credit is evenly distributed to all data flows to obtain the basic average credit of each data flow. , and then for each data flow, the basic average credit amount, combined with the congestion level Make adjustments: For data flows in a congested state, the credit allocation is multiplicatively reduced on the basis of the basic average credit amount to obtain the actual credit allocation amount of the data flow in the congested state. ; For data flows in an uncongested state, the credit allocation is multiplied based on the basic average credit amount according to the congestion level and the traffic volume of the data flow, and the actual credit allocation amount of the data flow in an uncongested state is obtained. .
7. The active congestion control method based on the credit mechanism according to claim 6, characterized in that: For the data flow in the congested state, the credit allocation amount is multiplicatively reduced on the basis of the basic average credit amount to obtain the actual credit allocation amount of the data flow in the congested state. , specifically including: ; is an adjustable factor for multiplicative reduction.
8. The active congestion control method based on the credit mechanism according to claim 6, characterized in that: For the data flow in the non-congested state, the credit allocation amount is multiplied based on the basic average credit amount according to the congestion degree and the flow size of the data flow, so as to obtain the actual credit allocation amount of the data flow in the non-congested state. , specifically including: ; ; in, are the index of the kth data flow in a congested state and the index of the jth data flow in a non-congested state respectively; It is the increase factor of data flow, which is determined by the flow size and congestion degree of the data flow; is the sum of the credit allocations added; is the total number of data flows in the uncongested state, is the number of times the data stream increases multiplicatively; is the total number of data flows in congestion state, is the total number of data flows, is the sum of the credit allocations reduced.
9. A computer device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 8 are implemented.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 8 are implemented.
Citation Information
Patent Citations
Explicit congestion control method based on bandwidth estimation in high-bandwidth delay network
CN101964755A
Congestion control method for sensing bottleneck link position
CN118646709A
Flow-trimming based congestion management
US20240121189A1
Systems and methods for explicit congestion notification in a radio access network
US20250081033A1
Cited By
Data traffic control method and device
CN121262159A