Credit-based packet transmission method, apparatus and device
By setting the credit value accumulation upper limit threshold in the receiving device and adopting the AIMD strategy, the credit value waste problem of the CBRC algorithm in multi-receiver scenarios is solved, the network bandwidth utilization is improved and the latency is reduced.
Patent Information
- Application Number
- CN202411426193.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-12
- Publication Date
- 2025-10-10
- Estimated Expiration
- 2044-10-12
Smart Images

Figure CN119363666B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communication technology, and in particular to a credit-based packet transmission method, apparatus and device. Background Art
[0002] Artificial intelligence and high-performance computing (HPC) bring new challenges to networks, such as the need for greater scale, higher bandwidth density, multipathing, rapid response to congestion, and interdependence on the performance of individual data flows (where tail latency is a key consideration). Existing protocols may address some aspects of these issues, but because they are designed for general-purpose networks, they lack support for features critical to AI and HPC, such as multipathing and easy configuration.
[0003] The Ultra Ethernet Consortium (UEC) is a new organization sponsored by the Linux Foundation and its Joint Development Foundation Initiative. The goal of UEC is to go beyond existing Ethernet capabilities, such as Remote Direct Memory Access (RDMA) and RDMA over ConvergedEthernet (RoCE) technology to provide a high-performance, distributed and lossless transport layer optimized for high-performance computing and artificial intelligence. Compared to some of the problems with existing Ethernet functions mentioned above, the design of the UEC specification will fill these gaps and provide the larger-scale networking required for these workloads. The goal of UEC is to provide a complete communication stack that solves technical problems across multiple protocol layers and provides easy-to-configure and manage features to achieve higher network utilization and lower tail latency, both of which are critical to reducing the completion time of Artificial Intelligence (AI) and High Performance Computing (HPC) jobs. Specifically, the goals that UEC wants to achieve in the future are:
[0004] 1) Open protocol specifications based on existing IP and Ethernet protocols.
[0005] 2) Multi-path, packet-spraying transmission fully utilizes the AI network without causing congestion or head-of-line blocking, and eliminates the need for centralized load balancing algorithms and routing controllers.
[0006] 3) Incast management mechanism to control fan-in on the final link to the target host with minimal packet loss.
[0007] 4) An efficient rate control algorithm allows transmission to quickly increase to line speed without causing performance loss to competing flows.
[0008] 5) API for out-of-order packet delivery, supporting message completion in both out-of-order and in-order modes, maximizing network and application concurrency and minimizing message latency.
[0009] 6) Scalable future networks to support millions of endpoints.
[0010] 7) Performance and optimal network utilization without the need for network and workload specific congestion algorithm parameter tuning.
[0011] 8) Aims to achieve line-speed performance of 800G, 1.6T, and future faster Ethernet on commodity hardware.
[0012] The transmission protocols used in traditional high-performance computing / AI scenarios include TCP, Data Center TCP, and RDMA. However, the congestion control algorithms involved in these protocols can only guide the control loop at the receiving end based on the interactive information generated by the process of adjusting the data flows of different protocols through the switch queue. This may lead to problems such as flow conflicts (unreasonable load balancing), unreasonable bandwidth allocation, incast congestion, and high latency. Incast congestion is a specific type of network congestion phenomenon that usually occurs in data center networks or distributed computing environments. It is characterized by multiple senders (source nodes) sending large amounts of data to the same receiver (destination node) almost simultaneously, causing the network interface or switch buffer at the receiving end to fill up quickly, leading to serious network performance issues and packet loss.
[0013] To implement efficient incast management, the Ultra Ethernet Transport (UET) protocol supports the use of a credit-based rate control (CBRC) algorithm (also known as a credit-based congestion control algorithm). This algorithm draws heavily on the principles of the edge-queued datagram service (EQDS), shifting queue-related operations and adjustments from the data center network to the host side. The core idea of CBRC is to distribute credits on the UET host receiving end and establish a reasonable allocation strategy to ensure that bandwidth is fairly shared between different traffic flows while preventing local traffic from being overloaded. This method, which achieves end-to-end congestion control without requiring switch involvement, can effectively optimize bandwidth allocation, reduce latency, and achieve traffic load balancing.
[0014] Although the CBRC algorithm can effectively alleviate the incast congestion, it does not consider the sender congestion caused by the interaction between multiple senders and multiple receivers, and further causes the credit value waste problem. SUMMARY
[0015] Therefore, the application provides a credit-based packet transmission method, device and equipment to solve the technical problem of credit value waste caused by the original CBRC algorithm.
[0016] Based on one aspect of the application, the application provides a credit-based packet transmission method, which is applied to a receiver device in a network supporting a UET (Ultra-Ethernet Transport) protocol, and the method comprises the following steps:
[0017] The receiver receives a message sent by a sender, and determines whether the accumulated credit value of the sender exceeds an upper limit threshold of the accumulated credit value according to the information carried in the message header.
[0018] If the accumulated credit value does not exceed the upper limit threshold, the receiver releases the credit value to the sender according to the original credit-based rate control (CBRC) algorithm.
[0019] If the accumulated credit value exceeds the upper limit threshold, the receiver starts to reduce the credit value released to the sender according to a preset credit value adjustment strategy when a credit value sending timer is triggered, starting from the moment when the receiver receives a data message sent by the sender and carrying information indicating that the accumulated credit value exceeds the upper limit threshold, and restores the credit value release mode to the original CBRC algorithm starting from the moment when the receiver no longer receives the data message sent by the sender and carrying the information indicating that the accumulated credit value exceeds the upper limit threshold.
[0020] Further, the credit value adjustment strategy used by the receiver is an additive increase and multiplicative decrease (AIMD) credit value adjustment strategy, which adjusts the number of credit values released by adjusting the maximum transmission unit (MTU) coefficient in the formula for calculating the credit values to be released in the original CBRC algorithm.
[0021] Further, if the sender is in an active sender list (ASL) when the accumulated credit value exceeds the upper limit threshold, the receiver adjusts the credit value released to the sender according to the preset credit value adjustment strategy in the following manner:
[0022] Starting from the moment when the receiver receives the data message sent by the sender and carrying the information indicating that the accumulated credit value exceeds the upper limit threshold, the coefficient of the MTU in the formula for calculating the credit values to be released in the original CBRC congestion control algorithm is adjusted to wherein n is the number of continuously received data messages carrying the information indicating that the accumulated credit value exceeds the upper limit threshold.
[0023] From the moment the data message sent by the sender no longer carries the information indicating exceeding the upper limit threshold of the accumulated credit value, the coefficient of MTU in the original CBRC congestion control algorithm formula for calculating the credit value to be issued is restored to the original value.
[0024] Further, in the exceeding case, if the sender is in the idle sender queue ISL, the method for the receiver to adjust the credit value issued to the sender according to the preset credit value adjustment strategy is:
[0025] From the moment the data message sent by the sender carries the information indicating exceeding the upper limit threshold of the accumulated credit value, the coefficient of MTU in the original CBRC congestion control algorithm formula for calculating the credit value to be issued is adjusted to and rounded down, wherein n is the number of continuously received data messages carrying the information indicating exceeding the upper limit threshold of the accumulated credit value, and k is the credit value issuing coefficient;
[0026] From the moment the data message sent by the sender no longer carries the information indicating exceeding the upper limit threshold of the accumulated credit value, the coefficient of MTU in the original CBRC congestion control algorithm formula for calculating the credit value to be issued is adjusted to and rounded down, and the sum of the coefficient of MTU and the additive rising credit value reference coefficient m, and the coefficient of MTU cannot exceed k.
[0027] Further, the way for the sender to deliver the information indicating exceeding the upper limit threshold of the accumulated credit value to the receiver is to set the value of the credit value request field, i.e. the TARGET_PULL field, of the data message to all 0 or all 1.
[0028] Based on another aspect of the present application, the present application also provides a credit-based packet transmission device, which is applied to a receiver device in a network supporting the Ultra-Ethernet Transmission (UET) protocol, and the device comprises:
[0029] an upper limit judgment module, configured to judge whether the accumulated credit value of the sender exceeds the upper limit threshold of the accumulated credit value according to the information carried in the header of the message after receiving the message sent by the sender;
[0030] an issuing strategy adjustment module, configured to, in the non-exceeding case, issue the credit value to the sender according to the credit value issuing mode of the original CBRC algorithm; in the exceeding case, from the moment the data message sent by the sender carrying the information indicating exceeding the upper limit threshold of the accumulated credit value is received, the receiver reduces the credit value issued to the sender according to the preset credit value adjustment strategy when the credit value sending timer is triggered; and from the moment the data message sent by the sender no longer carries the information indicating exceeding the upper limit threshold of the accumulated credit value, the credit value issuing mode is restored to the original CBRC algorithm mode according to the preset credit value strategy.
[0031] Furthermore, the credit value adjustment strategy used by the publishing strategy adjustment module is an additive increase and multiplicative decrease (AIMD) credit value adjustment strategy, which adjusts the number of published credit values by adjusting the maximum transmission unit MTU coefficient in the formula for calculating the credit value to be published in the original CBRC algorithm.
[0032] Furthermore, the release strategy adjustment module includes:
[0033] The first adjustment unit is configured to adjust the credit value issued to the sender in the following manner when the credit value exceeds the limit and the sender is in the active sender queue ASL:
[0034] Starting from the receipt of the data message sent by the sender carrying the information indicating that the cumulative credit value exceeds the upper threshold, the MTU coefficient in the calculation formula of the credit value to be published in the original CBRC congestion control algorithm is adjusted to Where n is the number of consecutively received data packets carrying information indicating that the accumulated credit value exceeds the upper threshold;
[0035] After receiving a data message from the sender that no longer carries information indicating that the cumulative credit value upper threshold has been exceeded, the MTU coefficient in the formula for calculating the credit value to be published in the original CBRC congestion control algorithm is restored to the original value.
[0036] Furthermore, the release strategy adjustment module includes:
[0037] The second adjustment unit is configured to adjust the credit value issued to the sender in the following manner when the credit value exceeds the limit and the sender is in an idle sender queue ISL:
[0038] Starting from the receipt of the data message sent by the sender carrying the information indicating that the cumulative credit value exceeds the upper threshold, the MTU coefficient in the calculation formula of the credit value to be published in the original CBRC congestion control algorithm is adjusted to And round down, where n is the number of consecutively received data packets carrying information indicating that the cumulative credit value upper limit threshold has been exceeded, and k is the credit value issuance coefficient;
[0039] Since the data message received from the sender no longer carries the information indicating that the cumulative credit value upper threshold has been exceeded, the MTU coefficient in the calculation formula of the credit value to be published in the original CBRC congestion control algorithm is adjusted to The sum of the rounded-down value and the additively increasing credit value base coefficient m is calculated, and the MTU coefficient cannot exceed k.
[0040] The device provided by the present application can be realized in software, hardware or a combination of software and hardware. When realized in the form of a software module, the program code of the software module is loaded into a storage medium of a device, and the program code in the storage medium is read by a processor and executed. BRIEF DESCRIPTION OF DRAWINGS
[0041] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the drawings needed to be used in the description of the embodiments of the present application or the prior art will be briefly introduced. Obviously, the drawings in the following description are only some embodiments described in the present application, and other drawings can also be obtained by those skilled in the art according to these drawings of the embodiments of the present application.
[0042] Figure 1 It is a schematic diagram of the overall architecture of the UET protocol;
[0043] Figure 2 It is a schematic diagram of the UET component and data transmission process provided by an embodiment of the present application;
[0044] Figure 3 It is a schematic diagram of the message receiving and credit value issuing process of the receiver in the CBRC;
[0045] Figure 4 It is a schematic diagram of the process of the credit value-based packet transmission method provided by an embodiment of the present application;
[0046] Figure 5 It is a schematic diagram of the structure of an electronic device for realizing the credit value-based packet transmission method provided by the present application. DETAILED DESCRIPTION
[0047] The terms used in the embodiments of the present invention are intended solely to describe specific embodiments and are not intended to limit the embodiments. The singular forms "a," "the," and "the" used in the embodiments of the present invention are intended to include the plural forms, unless the context clearly indicates otherwise. Although the embodiments of the present invention may be described using terms such as first, second, and third, such terms are intended solely to distinguish similar information, entities, or steps, and are not intended to describe a specific order or precedence. For example, without departing from the scope of the embodiments of the present invention, first information may be referred to as second information, and similarly, second information may be referred to as first information. For another example, in some scenarios, first information may refer to a single piece of information or to multiple pieces of information of the same type. Furthermore, the term "if" may be interpreted as "when," "when," or "in response to a determination." "And / or" in the present invention is merely a term used to describe an association between related objects, indicating that three possible relationships exist. For example, "A and / or B" can mean: A exists alone, A and B exist simultaneously, or B exists alone. A and B may be singular or plural. Furthermore, in the description of the present invention, unless otherwise specified, "plurality" refers to two or more than two. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or plural.
[0048] Figure 1 This is a diagram of the overall architecture of the UET protocol. CBRC belongs to the Congestion Management module in the UET architecture, which is located in the Packet Delivery Sublayer (PDS). The application layer (Software APIs) first sends messages (msg) to the Semantics Sublayer (SES) through libfabrics (a common low-level network API). The SES splits the received complete message into packets and passes them to the PDS. The PDS sends and receives packets based on congestion management.
[0049] Figure 2A schematic diagram of the UET component and data transmission process provided for one embodiment of the present invention. When a message reaches the PDS and needs to be sent, the PDS message sending module will ask the congestion management module whether it can send the packet, and the CBRC will make a judgment based on the current credit value (number of bytes) of the sender on this end. If the credit value is sufficient to send the message of the current size, the congestion management module will reply with a signal that it can send to notify the PDS that it can send the packet; if the credit value is insufficient, the PDS is not allowed to send the packet, and at the same time, it notifies the PDS to send a smaller RTS (Request to Send) control message to request the receiver to publish a larger credit value to itself (the sender). From this perspective, the key to the design of CBRC lies in the credit value publishing process of the receiver. The ideal credit value publishing strategy should not only reduce the probability of incast congestion, but also reasonably allocate bandwidth to multiple senders.
[0050] The current UET protocol draft describes the following process for distributing credits by the CBRC receiver: The receiver maintains two queues: the Active Sender List (ASL) and the Idle Sender List (ISL). The ASL holds all senders whose requested credits have not yet been met, while the Idle Sender List holds all senders whose requested credits have been met. When a sender in the ASL has its requested credits met, it is transferred to the ISL. When a sender in the ISL sends new credits to the receiver, it is transferred to the ASL.
[0051] Figure 3 The following is a schematic diagram of the receiver message reception and credit value issuance process in CBRC. The PDS receiver message processing and credit value timer module based on CBRC is briefly described as follows:
[0052] a) Message receiving and processing module
[0053] 1) The receiver receives the message from the sender and determines whether the credit value timer module has timed out. If so, it calls the credit value timer module to issue a new credit value (the specific process will be mentioned later);
[0054] 2) If the credit timer module has not timed out, it determines whether the received message carries the new credit request calculated by the sender (i.e., the pull target value. Whenever the sender finds that it has used up the previous credit value, it will calculate a pull target value and send it to the receiver, indicating that it needs more credit value). If not, it enters the normal PDS message processing process;
[0055] 3) If the message carries a pull target value, the receiver will determine whether the pull target value is greater than the credit value last issued to the sender, and also determine whether the sender is in the ASL queue. If one or both of the two judgment conditions are negative, no processing is performed; if both judgment conditions are positive, the receiver inserts the sender at the end of the ASL queue and issues a new credit value to the sender when it is polled.
[0056] 4) If the sender is originally in the ISL queue (before being placed at the tail of the ASL queue), it is removed from the ISL queue.
[0057] b) Credit value timer module
[0058] 1) When the credit value timer module times out, first determine whether the ASL queue is empty;
[0059] 2) If the ASL queue is not empty, obtain the relevant information corresponding to the sender in the ASL queue header (sender task ID, sender IP port, and the credit value last published to the sender by the receiver), and calculate the credit value that should be published to the sender according to the following formula (expressed as sender.pull):
[0060] sender.pull=min(sender.pull_target,sender.pull+mtu)
[0061] The sender.pull on the right side of the equation represents the credit value that the receiver last issued to the sender, sender.pull_target represents the credit value requested by the sender this time, and mtu is the maximum transmission unit (usually 1500 bytes). min() is the minimum value function, which means taking the minimum value from two values. The receiver will then encapsulate the calculated credit value (i.e., sender.pull) into the PDS control message and reply to the sender. If the credit value has met the sender's requirements, the sender will be moved to the end of the ISL queue; otherwise, it will continue to stay in the ASL (inserted to the end of the ASL queue);
[0062] 3) If the ASL queue is empty and the ISL queue is not empty, the sender information stored in the ISL queue header is retrieved and credits equal to sender.pull + k * MTU size are issued to the sender. According to the protocol, the value of k is determined based on the actual receiving capacity of the receiver and may vary in different scenarios. After the receiver calculates the new credit value, it sends it to the sender using a similar sending process as described in 2). If this credit value is less than the sender's requested credit value (i.e., the pulltarget value) plus the maximum send window (max cwnd, which is 1.5 times the bandwidth and latency, depending on the specific bandwidth and latency), the receiver can continue to issue credits to the sender and puts it back at the end of the ISL queue. Otherwise, the credit value issued to the sender is sufficient and no further credits are required. At this point, no action is taken, and the sender is considered "free."
[0063] While the CBRC algorithm can effectively alleviate incast congestion (from the top-of-rack ToR switch to the receiving server), it doesn't account for the sender congestion caused by multiple senders interacting with multiple receivers, and the resulting credit waste. For example, if one of multiple senders exchanges data with two receivers, the two receivers will evenly distribute credits to the sender based on the bandwidth-delay product (BDP) on the receiving side. In this case, the total credits received by the sender may exceed the transmission capacity of the uplink (from the sending server to the ToR). Data exceeding the uplink capacity must accumulate on the server network interface card, causing sender congestion. Because the total credits that a receiver can issue are limited and it may also interact with other senders, the credits received by other senders may be insufficient. This results in one sender being unable to effectively utilize its credits, while the other senders are unable to fully utilize the uplink bandwidth.
[0064] To address the issue of wasted sender credits, this invention provides a credit-based packet transmission solution for senders and receivers in multi-receiver scenarios. Building on the existing CBRC algorithm, this solution sets an upper threshold for credit accumulation on the sender to prevent excessive credit accumulation and resulting credit waste. Once a sender's credits from a receiver exceed this threshold, the sender notifies the receiver to reduce the amount of credits it subsequently issues to avoid credit waste.
[0065] The specific implementation process of the present invention is described in detail below with reference to the accompanying drawings and specific embodiments. It should be noted that the step processes shown in the accompanying drawings and embodiments can be executed in a computer system such as a set of computer-executable instructions, and one or more of the exemplified method steps can be singularly or aggregated together and run in the form of a software module or a virtual device in the computer system. Moreover, although the exemplified step processes have time and sequential logic, the present invention is not limited to these steps. In certain cases, these steps can be executed in an order different from that here. Under the guidance of the purpose of the present invention, simple changes or combinations of the execution order of these steps should also fall within the scope of the disclosure of the embodiments of the present invention.
[0066] Figure 4 This is a flow chart of a credit-based packet transmission method provided in one embodiment of the present invention. The method is applied to a receiving device in a network supporting the UET protocol, and the method includes:
[0067] S401. The receiver receives the message sent by the sender and determines whether the sender's accumulated credit value exceeds its accumulated credit value upper limit threshold credit_thr(i) based on the information carried in the message header;
[0068] In the original CBRC algorithm, when a sender is in the ISL queue maintained by the receiver, the receiver's credit timer module polls and publishes credits of size k*MTU to all senders in the ISL. Once the published credits exceed the credits requested by a sender plus the maximum send window (MaxCwnd), the receiver stops publishing credits to the sender. In the UET protocol, to maximize bandwidth utilization, the maximum send window is set to 1.5 times the bandwidth-delay product (BDP). The BDP is calculated as follows:
[0069] BDP=min(sender.linkspeed,receiver.linkspeed)*fabric_unloaded_RTT (Formula 1)
[0070] sender.linkspeed and receiver.linkspeed are the uplink bandwidth of the sender and the downlink bandwidth of the receiver, respectively. fabric_unloaded_RTT refers to the round-trip delay from the sender to the receiver measured when there is no traffic load on the link between the sender and the receiver.
[0071] For the sender, this invention, based on the original CBRC algorithm, further considers the situation when the sender is interconnected with multiple receivers to dynamically adjust the credit value issued by the receiver. Specifically, if the number of receivers that have established a connection and exchanged data with the i-th sender is N, the i-th sender sets the cumulative credit value threshold credit_thr(i) to determine the upper limit of the credit value that can be accumulated by the sender. Let the credit value issued by the j-th receiver to the sender be credit(j). If:
[0072]
[0073] This means that the total credit value accumulated by the i-th sender has reached the upper limit of the credit value accumulation threshold.
[0074] In one embodiment of the present invention, the PDS packet transmission sublayer of the sender conveys to the receiver information that the accumulated credit value of the local end has exceeded the upper limit threshold of the accumulated credit value through the target pull, i.e., TARGET_PULL field, in the congestion control state CC_STATE field in the data message header. For example, by filling the TARGET_PULL field value (20 bits in the protocol) used to indicate the credit value currently requested by the sender with a preset identification value (for example, a value of all 0 or all 1), a certain receiver is notified that it should adjust (reduce) the number of credit values issued according to a certain strategy. In another embodiment of the present invention, a new field, other fields, or reserved fields in the message header can also be used to indicate that the sender's accumulated credit value has exceeded the upper limit threshold, and no specific limitation is made in the present invention.
[0075] The value of the cumulative credit value threshold credit_thr cannot be set too large or too small. If it is too large, the sender will accumulate too many credit values that cannot be used temporarily, resulting in a waste of credit values. If it is too small, the uplink bandwidth cannot be fully utilized, resulting in insufficient link utilization. Therefore, in one embodiment of the present invention, credit_thr is set to 1 times the BDP by default.
[0076] S402. If the limit is not exceeded, the receiver releases the credit value to the sender in accordance with the credit value release method of the original CBRC congestion control algorithm;
[0077] The credit value publishing method of the original CBRC congestion control algorithm is as follows: Figure 3 The credit value publishing method of the CBRC congestion control algorithm specified in the example UET protocol.
[0078] S403. In the event of exceeding the upper limit, starting from the moment the receiver receives a data packet from the sender that indicates that the cumulative credit value exceeds the upper limit threshold, the receiver reduces the credit value issued to the sender according to the preset credit value adjustment policy when the credit value sending timer is triggered; starting from the moment the receiver no longer receives a data packet from the sender that indicates that the cumulative credit value exceeds the upper limit threshold, the receiver restores the credit value issuance method to the original CBRC congestion control algorithm according to the preset credit value policy.
[0079] During UET transmission using the CBRC algorithm, the receiver frequently receives PDS data packets from the sender carrying credit requests (i.e., the TARGET_PULL field value is filled in). Based on the information carried in the packets, the receiver determines whether the sender's accumulated credit exceeds the upper threshold of the accumulated credit value, credit_thr(i). There are two possible scenarios: exceeded and not exceeded.
[0080] For the case where the accumulated credit value does not exceed the upper limit threshold, the receiver still publishes the credit value to the sender in accordance with the credit value publishing method of the original CBRC congestion control algorithm, that is, it still adopts the following method: Figure 3 The exemplary credit value publishing method updates the credit value to be published to the sender stored in the local ASL or ISL, and publishes the credit value to the sender after the credit value sending timer times out.
[0081] In the case of exceeding the upper limit threshold of the cumulative credit value, starting from the time the receiver receives the message carrying information indicating that the upper limit threshold of the cumulative credit value has been exceeded, the receiver will reduce the credit value issued to the sender according to the preset credit value adjustment strategy when the credit value sending timer is triggered, thereby avoiding credit value waste; when no more messages indicating that the upper limit threshold of the cumulative credit value has been exceeded are received, the receiver will increase the credit value issued to the sender according to the preset credit value strategy.
[0082] In one embodiment of the present invention, the receiver uses an additive-increase multiplicative-decrease (AIMD) credit value adjustment strategy. The credit value issuance method in the CBRC algorithm using this credit value adjustment strategy is changed to:
[0083] a) If the sender is in the ASL, when the receiver perceives that the cumulative credit value of the i-th sender has exceeded the cumulative credit value upper threshold, the credit value formula published to the sender is updated to:
[0084]
[0085] The min operator takes the smaller of two values. sender(i).pull_target is the valid credit value of the receiver's most recent request (excluding cases where the requested credit value is set to a preset identifier value). sender(i).pull on the right side of the equal sign is the credit value the receiver most recently sent to the sender. sender(i).pull on the left side of the equal sign is the credit value the receiver intends to send to the sender this time. MTU is the maximum transmission unit (typically set to 1500 bytes). n is the number of consecutive data packets received that carry information indicating that the cumulative credit value upper threshold has been exceeded.
[0086] When the data message received by the receiver changes from carrying the information indicating that the cumulative credit value exceeds the upper threshold value to not carrying this information, that is, when it perceives that the cumulative credit value of the i-th sender has dropped below the cumulative credit value upper threshold value, the credit value published to the sender returns to following the original CBRC publishing algorithm, that is:
[0087] sender(i).pull=min(sender(i).pull_target, sender(i).pull+MTU) (Formula 4)
[0088] Based on the above description, when the sender is in ASL, when the receiver perceives that the sender's cumulative credit value exceeds its cumulative credit value upper threshold, the credit value published to the sender is reduced by adjusting the MTU coefficient in the credit value formula to be published based on the original CBRC congestion control algorithm using the preset adjustment strategy (for example, it can be understood that the MTU coefficient in the original algorithm is 1, and the MTU coefficient here is adjusted to When it is detected that the sender's cumulative credit value exceeds the upper threshold of its cumulative credit value, the MTU coefficient is restored to the original value of the CBRC congestion control algorithm (for example, it can be understood as being restored to 1).
[0089] b) If the sender is in an ISL, when the receiver detects that the cumulative credit value of the i-th sender has exceeded the cumulative credit value upper threshold, the credit value formula issued to the sender is updated based on multiplicative decline to:
[0090]
[0091] Among them, k represents the credit value release coefficient in the original CBRC algorithm, That means The result is rounded down. The sender(i).pull on the right side of the equal sign is the credit value that the receiver most recently sent to the sender. The sender(i).pull on the left side of the equal sign is the credit value that the receiver wants to send to the sender this time.
[0092] When the receiver perceives that the cumulative credit value of the i-th sender has dropped below the upper threshold, the credit value issued to the sender will be updated based on additive growth to:
[0093]
[0094] Where n is the number of times the receiver has received information indicating that the sender's cumulative credit value has exceeded the upper threshold before the receiver first perceives that the sender's cumulative credit value has dropped below the threshold. m represents the additive credit value benchmark coefficient, which is usually 1. express The upper limit of this value does not exceed k. If it exceeds k, it will be taken.
[0095] For example, when k=4, when the receiver receives the message with the TARGET_PULL field set to all zeros for the first time, n=1, Therefore, the credit value it publishes should be updated from the fixed sender(i).pull+4×MTU to sender(i).pull+2×MTU.
[0096] When received for the second time, it is updated to sender(i).pull+MTU;
[0097] If a message with a non-zero TARGET_PULL field is received continuously for the third time, then n = 2, m = ?, then the credit value issued for the third time should be updated to sender(i).pull + 2 × MTU,
[0098] The fourth time is sender(i).pull+3×MTU,
[0099] The fifth time is sender(i).pull+4×MTU,
[0100] Starting from the sixth time, sender(i).pull+4×MTU is still used.
[0101] Figure 5 This is a schematic diagram of the structure of an electronic device for implementing the credit value packet transmission method provided by the present invention, provided in accordance with one embodiment of the present invention. The device 500 includes: a processor 510, such as a central processing unit (CPU), a communication bus 520, a communication interface 540, and a memory 530. The processor 510 and the memory 530 can communicate with each other via the communication bus 520. The memory 530 stores a computer program, which, when executed by the processor 510, implements the functions of one or more steps of the credit value packet transmission method provided by the present invention.
[0102] Memory refers to a device based on a storage medium used to store computer programs and / or data. It can be either volatile memory (VM, often referred to as RAM) or non-volatile memory (NVM). RAM refers to internal storage that exchanges data directly with the processor. It can read and write data quickly and at any time, serving as a temporary data storage medium for the operating system and other running programs. RAM can be synchronous dynamic random access memory (SDRAM) or dynamic random access memory (DRAM). Non-volatile memory refers to storage that uses persistent storage media, boasting large capacity and the ability to persist data. Examples include storage-class memory (SCM), solid-state drives (SSDs), NAND flash memory, and magnetic disks. SCM is the industry's general term for new storage media between RAM and flash memory. It is a hybrid storage technology that combines the characteristics of persistent storage and RAM, with access speeds slower than DRAM but faster than SSDs.
[0103] The processor can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic device, or discrete hardware component.
[0104] It should be appreciated that embodiments of the present invention can be implemented or implemented by computer hardware, a combination of hardware and software, or by computer instructions stored in non-transitory (or non-persistent) memory. The methods can be implemented in a computer program using standard programming techniques, including a non-transitory storage medium configured with a computer program, wherein the storage medium configured in this manner causes the computer to operate in a specific and predefined manner. Each program can be implemented in a high-level procedural or object-oriented programming language to communicate with the computer system. However, if desired, the program can be implemented in assembly or machine language. In any case, the language can be a compiled or interpreted language. In addition, the program can be run on a programmed application-specific integrated circuit for this purpose. In addition, the operations of the processes described in the present invention can be performed in any suitable order, unless otherwise indicated by the present invention or otherwise clearly contradicted by the context. The processes described in the present invention (or variations and / or combinations thereof) can be executed under the control of one or more computer systems configured with executable instructions and can be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) that is executed collectively on one or more processors, by hardware, or a combination thereof. The computer program includes multiple instructions that can be executed by one or more processors.
[0105] Furthermore, the methods can be implemented in any type of computing platform that is operably connected to a suitable computer, including but not limited to a personal computer, a minicomputer, a mainframe, a workstation, a network or distributed computing environment, a separate or integrated computer platform, or in communication with a charged particle tool or other imaging device, etc. Various aspects of the present invention can be implemented as machine-readable code stored on a non-transitory storage medium or device, whether removable or integrated into a computing platform, such as a hard disk, an optical read and / or write storage medium, RAM, ROM, etc., so that it can be read by a programmable computer, and when the storage medium or device is read by the computer, it can be used to configure and operate the computer to perform the processes described herein. In addition, the machine-readable code, or portions thereof, can be transmitted over a wired or wireless network. When such media includes instructions or programs that implement the steps described above in conjunction with a microprocessor or other data processor, the invention described herein includes these and other different types of non-transitory computer-readable storage media. When programmed according to the methods and techniques of the present invention, the present invention also includes the computer itself.
[0106] The foregoing is merely an embodiment of the present invention and is not intended to limit the present invention. It will be apparent to those skilled in the art that various modifications and variations of the present invention are possible. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present invention are intended to be included within the scope of protection of the present invention.
Claims
1. A credit-based packet transmission method, characterized in that: The method is applied to a receiving device in a network supporting the Ultra Ethernet Transmission (UET) protocol, and includes: The receiver receives the message sent by the sender and determines whether the sender's accumulated credit value exceeds its accumulated credit value upper threshold based on the information carried in the message header; If the limit is not exceeded, the receiver will issue credits to the sender in the same way as the original credit-based rate control (CBRC) algorithm. In the case of exceeding, starting from the time the receiver receives a data message from the sender carrying information indicating that the cumulative credit value upper limit threshold is exceeded, the receiver reduces the credit value issued to the sender according to the preset credit value adjustment strategy when the credit value sending timer is triggered; starting from the time the receiver no longer receives a data message from the sender carrying information indicating that the cumulative credit value upper limit threshold is exceeded, the credit value issuance method is restored to the original CBRC algorithm according to the preset credit value policy.
2. The method according to claim 1, characterized in that The credit value adjustment strategy used by the receiver is an additive increase and multiplicative decrease credit value adjustment strategy, which adjusts the number of credit values to be published by adjusting the maximum transmission unit MTU coefficient in the formula for calculating the credit value to be published in the original CBRC algorithm.
3. The method according to claim 1, characterized in that In the event of a credit limit being exceeded, if the sender is in the active sender queue (ASL), the receiver adjusts the credit value issued to the sender according to the preset credit value adjustment policy as follows: Starting from the receipt of the data message sent by the sender carrying the information indicating that the cumulative credit value exceeds the upper threshold, the MTU coefficient in the calculation formula of the credit value to be published in the original CBRC congestion control algorithm is adjusted to Where n is the number of consecutively received data packets carrying information indicating that the accumulated credit value exceeds the upper threshold; After receiving a data message from the sender that no longer carries information indicating that the cumulative credit value upper threshold has been exceeded, the MTU coefficient in the formula for calculating the credit value to be published in the original CBRC congestion control algorithm is restored to the original value.
4. The method according to claim 1, wherein In the event of a credit limit being exceeded, if the sender is in the idle sender queue (ISL), the receiver adjusts the credit value issued to the sender according to the preset credit value adjustment policy as follows: Starting from the receipt of the data message sent by the sender carrying the information indicating that the cumulative credit value exceeds the upper threshold, the MTU coefficient in the calculation formula of the credit value to be published in the original CBRC congestion control algorithm is adjusted to And round down, where n is the number of consecutively received data packets carrying information indicating that the cumulative credit value upper limit threshold has been exceeded, and k is the credit value issuance coefficient; Since the data message received from the sender no longer carries the information indicating that the cumulative credit value upper threshold has been exceeded, the MTU coefficient in the calculation formula of the credit value to be published in the original CBRC congestion control algorithm is adjusted to The sum of the rounded-down value and the additively increasing credit value base coefficient m is calculated, and the MTU coefficient cannot exceed k.
5. The method according to claim 1, wherein The method of transmitting the information indicating that the upper threshold of the cumulative credit value is exceeded to the receiver is: setting the credit value request field of the data message, that is, the TARGET_PULL field value, to all 0s or all 1s.
6. A packet transmission device based on credit value, characterized in that: The device is applied to a receiving device in a network supporting the Ultra Ethernet Transmission (UET) protocol, and includes: An over-limit judgment module is used to judge whether the sender's accumulated credit value exceeds its accumulated credit value upper limit threshold based on the information carried in the message header after receiving the message sent by the sender; The publishing policy adjustment module is used to, when the credit value is not exceeded, cause the receiver to publish the credit value to the sender according to the original credit value publishing method of the credit-based rate control CBRC algorithm; when the credit value is exceeded, starting from the time the receiver receives a data message from the sender carrying information indicating that the cumulative credit value upper limit threshold is exceeded, the receiver reduces the credit value published to the sender according to the preset credit value adjustment policy when the credit value sending timer is triggered; starting from the time the receiver no longer receives a data message from the sender carrying information indicating that the cumulative credit value upper limit threshold is exceeded, the credit value publishing method is restored to the original CBRC algorithm according to the preset credit value policy.
7. The device according to claim 6, characterized in that The credit value adjustment strategy used by the publishing strategy adjustment module is an additive increase and multiplicative decrease credit value adjustment strategy. This adjustment strategy adjusts the number of published credit values by adjusting the maximum transmission unit (MTU) coefficient in the formula for calculating the credit value to be published in the original CBRC algorithm.
8. The device according to claim 6, characterized in that The release strategy adjustment module includes: The first adjustment unit is configured to adjust the credit value issued to the sender in the following manner when the credit value exceeds the limit and the sender is in the active sender queue ASL: Starting from the receipt of the data message sent by the sender carrying the information indicating that the cumulative credit value exceeds the upper threshold, the MTU coefficient in the calculation formula of the credit value to be published in the original CBRC congestion control algorithm is adjusted to Where n is the number of consecutively received data packets carrying information indicating that the accumulated credit value exceeds the upper threshold; After receiving a data message from the sender that no longer carries information indicating that the cumulative credit value upper threshold has been exceeded, the MTU coefficient in the formula for calculating the credit value to be published in the original CBRC congestion control algorithm is restored to the original value.
9. The device according to claim 6, characterized in that The release strategy adjustment module includes: The second adjustment unit is configured to adjust the credit value issued to the sender in the following manner when the credit value exceeds the limit and the sender is in an idle sender queue ISL: Starting from the receipt of the data message sent by the sender carrying the information indicating that the cumulative credit value exceeds the upper threshold, the MTU coefficient in the calculation formula of the credit value to be published in the original CBRC congestion control algorithm is adjusted to And round down, where n is the number of consecutively received data packets carrying information indicating that the cumulative credit value upper limit threshold has been exceeded, and k is the credit value issuance coefficient; Since the data message received from the sender no longer carries the information indicating that the cumulative credit value upper threshold has been exceeded, the MTU coefficient in the calculation formula of the credit value to be published in the original CBRC congestion control algorithm is adjusted to The sum of the rounded-down value and the additively increasing credit value base coefficient m is calculated, and the MTU coefficient cannot exceed k.
10. An electronic device, characterized in that: It includes a processor, a communication interface, a storage medium and a communication bus, wherein the processor, the communication interface and the storage medium communicate with each other via the communication bus; Storage medium for storing computer programs; A processor, configured to implement the method according to any one of claims 1 to 5 when executing a computer program stored on a storage medium.
Citation Information
Patent Citations
Reputation-based link congestion control method
CN103647722A
Credit threshold training method, IP address detection method and related devices
CN112003846A