Packet transmission method, device and equipment based on credit value
By setting up the cumulative upper limit threshold in the receiver's device and using AIMD strategy to adjust the credit value, the CBRC algorithm was solved by the problem of wasting credit value in the multi -receiving party scenario, and achieved more efficient bandwidth utilization and network performance optimization.
Patent Information
- Application Number
- CN202411426193.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-12
- Publication Date
- 2025-01-24
- Estimated Expiration
- 2044-10-12
AI Technical Summary
The existing credit value-based rate control algorithm (CBRC) cannot effectively avoid the problem of credit value waste when multiple senders interact with multiple receivers.
In the receiver's device, by setting up the cumulative upper limit threshold of the credit value, determine whether the sender's credit value exceeds the threshold, and when the threshold is exceeded, the credit value of the sender is reduced according to the preset credit value adjustment strategy. Specific strategies adopt an additional increased multiplication (AIMD) method to adjust the maximum transmission unit (MTU) coefficient to adjust the number of credit values.
Effectively avoid the waste of credit value, optimize the bandwidth distribution, reduce the delay, and improve the load balance of the network.
Smart Images

Figure CN119363666A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communication technology, and in particular to a credit value-based packet transmission method, device and equipment. Background Art
[0002] Artificial intelligence and high-performance computing bring new challenges to networks, such as the need for greater scale, higher bandwidth density, multipathing, rapid response to congestion, and interdependence of individual data flow execution (where tail latency is a key consideration). Existing protocols may address some aspects of the above issues, but because they are designed for general-purpose networks, they lack support for features that are critical to artificial intelligence and high-performance computing, such as multipathing and easy configuration.
[0003] The Ultra Ethernet Consortium (UEC) is a new organization hosted by the Linux Foundation and its Joint Development Foundation Initiative. The goal of UEC is to go beyond existing Ethernet features, 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 with some of the problems with existing Ethernet features 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 does not require a centralized load balancing algorithm and routing controller.
[0006] 3) Incast management mechanism to control the 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 rate 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, RDMA, etc., but the congestion control algorithms involved in these protocols can only guide the control loop of the receiving end based on the interactive information generated by the process of adjusting the data flows of different protocols by the switch queue, which may cause flow conflicts (unreasonable load balancing), unreasonable bandwidth allocation, incast congestion, high latency and other problems. 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 a large amount of data to the same receiver (destination node) almost at the same time, causing the network interface or switch buffer of the receiver to be quickly filled up, and causing serious network performance problems and data packet loss.
[0013] In order to achieve an efficient incast management mechanism, 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). The principle of this algorithm is mainly based on the edge-queued datagram service (EQDS), that is, by transferring queue-related operations and adjustment processes from the data center network to the host side. The core idea of CBRC is to set a reasonable allocation strategy by distributing credits through the UET host receiving end to ensure that different traffic can share bandwidth fairly when the traffic on this side is not overloaded. This method of achieving end-to-end congestion control without the participation of switches can effectively optimize bandwidth allocation, reduce latency, and effectively achieve the purpose of traffic load balancing.
[0014] Although the CBRC algorithm can effectively alleviate incast congestion, it does not consider the sender congestion caused by the interaction between multiple senders and multiple receivers, and the resulting credit value waste problem. Summary of the invention
[0015] In view of this, the present invention provides a credit value-based packet transmission method, device and equipment, which are used to solve the technical problem of credit value waste caused by the original CBRC algorithm.
[0016] According to one aspect of the present invention, the present invention provides a packet transmission method based on a credit value, the method is applied to a receiving device in a network supporting a UET protocol for ultra-Ethernet transmission, the method comprising:
[0017] 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 according to the information carried in the message header;
[0018] If the limit is not exceeded, the receiver shall issue the credit value to the sender in accordance with the original credit value issuance method of the credit-based rate control CBRC algorithm;
[0019] In the case of exceeding, starting from the time when the receiver receives the data message sent by the sender that indicates 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 strategy when the credit value sending timer is triggered; starting from the time when the receiver no longer receives the data message sent by the sender that indicates 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.
[0020] Furthermore, 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 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.
[0021] Furthermore, in the case of exceeding, 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 strategy as follows:
[0022] 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 coefficient of the MTU in the formula for calculating the credit value to be published in the original CBRC congestion control algorithm is adjusted to Where n is the number of data messages received continuously and carrying information indicating that the accumulated credit value upper limit threshold is exceeded;
[0023] Since the data message received from the sender no longer carries the information indicating that the upper threshold of the cumulative credit value is exceeded, the coefficient of the MTU in the formula for calculating the credit value to be published in the original CBRC congestion control algorithm is restored to the original value.
[0024] Furthermore, in the case of exceeding, 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 in the following manner:
[0025] 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 coefficient of the MTU in the formula for calculating 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 data messages received continuously that carry information indicating that the cumulative credit value upper limit threshold is exceeded, and k is the credit value issuance coefficient;
[0026] Since the data message received from the sender no longer carries the information indicating that the cumulative credit value upper limit threshold is exceeded, the coefficient of MTU in the formula for calculating 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, and the MTU coefficient cannot exceed k.
[0027] Furthermore, the method of transmitting the information indicating that the accumulated credit value upper limit threshold is exceeded to the receiving party is: setting the credit value request field of the data message, that is, the TARGET_PULL field value to all 0s or all 1s.
[0028] Based on another aspect of the present invention, the present invention further provides a packet transmission device based on credit value, the device is applied to a receiving device in a network supporting ultra-Ethernet transmission UET protocol, the device comprising:
[0029] An over-limit judgment module is used to judge whether the accumulated credit value of the sender exceeds the upper limit threshold of its accumulated credit value according to the information carried in the message header after receiving the message sent by the sender;
[0030] The publishing strategy adjustment module is used for, when the amount is not exceeded, the receiver publishes the credit value to the sender in accordance with the original credit value publishing method of the credit-based rate control CBRC algorithm; when the amount is exceeded, starting from the time when the receiver receives the data message sent by the sender that carries the information indicating that the accumulated credit value upper limit threshold is exceeded, the receiver reduces the credit value published to the sender in accordance with the preset credit value adjustment strategy when the credit value sending timer is triggered; starting from the time when the receiver no longer receives the data message sent by the sender that carries the information indicating that the accumulated credit value upper limit threshold is exceeded, the credit value publishing method is restored to the original CBRC algorithm in accordance with 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 sender is in the active sender queue ASL in the case of exceeding:
[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 coefficient of the MTU in the formula for calculating the credit value to be published in the original CBRC congestion control algorithm is adjusted to Where n is the number of data messages received continuously and carrying information indicating that the accumulated credit value upper limit threshold is exceeded;
[0035] Since the data message received from the sender no longer carries the information indicating that the upper threshold of the cumulative credit value is exceeded, the coefficient of the MTU 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 used for, in the case of exceeding, when the sender is in an idle sender queue ISL, adjusting the credit value issued to the sender in the following manner:
[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 coefficient of the MTU in the formula for calculating 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 data messages received continuously that carry information indicating that the cumulative credit value upper limit threshold is 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 limit threshold is exceeded, the coefficient of MTU in the formula for calculating 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, and the MTU coefficient cannot exceed k.
[0040] The device provided by the present invention can be implemented in software, hardware or a combination of software and hardware. When implemented in a software module, the program code of the software module is loaded into the storage medium of the device, and the processor reads the program code in the storage medium and executes it. BRIEF DESCRIPTION OF THE DRAWINGS
[0041] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments of the present invention or the description of the prior art will be briefly introduced below. Obviously, the drawings in the following description are only some embodiments recorded in the present invention. For ordinary technicians in this field, other drawings can also be obtained based on these drawings of the embodiments of the present invention.
[0042] Figure 1 This is a schematic diagram of the overall architecture of the UET protocol;
[0043] Figure 2 A schematic diagram of a UET component and a data transmission process provided by an embodiment of the present invention;
[0044] Figure 3 It is a schematic diagram of the process of receiving messages and issuing credit values by the receiver in CBRC;
[0045] Figure 4 A schematic diagram of a flow chart of a credit value-based packet transmission method provided by an embodiment of the present invention;
[0046] Figure 5 A schematic diagram of the structure of an electronic device for implementing the credit value packet transmission method provided by the present invention is provided in one embodiment of the present invention. DETAILED DESCRIPTION
[0047] The terms used in the embodiments of the present invention are only for the purpose of describing specific embodiments, rather than limiting the embodiments of the present invention. The singular forms of "a", "said" and "the" used in the embodiments of the present invention are also intended to include plural forms, unless the context clearly indicates other meanings. Although the embodiments of the present invention may be described in a first, second, or third manner, this description is only used to distinguish similar information, entities, or steps, rather than to describe a specific order or sequence. For example, without departing from the scope of the embodiments of the present invention, the first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information. For another example, in some scenarios, the first information may refer to one information or to multiple information of the same type. In addition, the word "if" used may be interpreted as "at..." or "when..." or "in response to determination". The "and / or" in the present invention is only a kind of association relationship describing the associated objects, indicating that there may be three relationships, for example, A and / or B, which may represent: A exists alone, A and B exist at the same time, and B exists alone, wherein A and B may be singular or plural. In addition, in the description of the present invention, unless otherwise specified, "multiple" 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 items 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 The figure is a schematic diagram of the overall architecture of the UET protocol. CBRC belongs to the congestion management module in the overall architecture of the UET, and the congestion management module is located in the packet delivery sublayer (PDS). The application layer (Software APIs) will first send the message (msg) to the semantics sublayer (Semantics Sublayer, SES) through libfabrics (a common low-level network API). SES will split the received complete message msg into packets (packets for short) and hand them over to PDS. PDS sends and receives messages based on congestion management.
[0049] Figure 2A schematic diagram of the UET component and data transmission process provided for an 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 a 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 a message of the current size, the congestion management module will reply with a signal that can be sent to notify the PDS that it can send a packet; if the credit value is insufficient, the PDS is not allowed to send a packet, and at the same time, the PDS is notified 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 process of publishing the receiver's credit value. 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 distribution process of credit value by the CBRC receiver in the current UET protocol draft is as follows: the receiver will maintain two sets of queues, namely the Active Sender List (ASL) and the Idle Sender List (ISL). The former stores all senders whose requested credit value has not been met, and the latter stores all senders whose requested credit value has been met. When the credit value requested by the sender in the ASL is met, it will be transferred to the ISL; when the sender in the ISL sends a new credit value to the receiver, it will be transferred to the ASL.
[0051] Figure 3 The figure is a schematic diagram of the process of receiving the message and issuing the credit value in the 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, the credit value timer module is called to publish a new credit value (the specific process will be mentioned later);
[0054] 2) If the credit value timer module has not timed out, determine whether the received message carries the new credit value 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 for the receiver, indicating that it needs more credit value). If not, enter 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 issued to the sender last time, and whether the sender is in the ASL queue. If one of the two judgment conditions is no, or both are no, no processing is performed; if both judgment conditions are yes, the receiver inserts the sender at the end of the ASL queue, and when it is polled, it will issue a new credit value to the sender;
[0056] 4) If the sender was 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 by 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 issued to the sender last time, 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 saved in the ISL queue header is obtained, and the credit value of sender.pull+k*MTU size is released to the sender. According to the protocol, the k value needs to be determined according to the actual receiving capacity of the receiver, so the value may not be the same in different scenarios. After the receiver calculates the new credit value, it uses a similar sending process as described in 2) to send it to the sender. If the credit value is less than the credit value requested by the sender (i.e., the pulltarget value) plus a maximum sending window (max cwnd, which is the product of 1.5 times the bandwidth and delay, and depends on the bandwidth and delay values of the specific scenario), it means that the receiver can continue to release credit values to the sender in the future, so it is put back to the tail of the ISL queue; otherwise, it means that the credit value released to the sender is large enough and does not need to be released to it in the future. At this time, no processing is performed, which is equivalent to the sender being in a "free state".
[0063] Although the CBRC algorithm can effectively alleviate incast congestion (from the top-of-rack ToR switching device to the receiving server), it does not consider the sender congestion caused by the interaction between multiple senders and multiple receivers, and the resulting credit value waste problem. Assuming that one of the multiple senders interacts with two receivers, the two receivers will evenly publish credit values to the sender based on the bandwidth-delay product (Bandwidth-Delay Product, BDP) on the receiving side. In this case, the total credit value that the sender may receive has exceeded the uplink (sender server to ToR) transmission capacity. At this time, the data that exceeds the uplink capacity can only be accumulated on the server network card side, causing sender congestion; since the total credit value that the receiver can publish is limited, and it may also interact with other senders, the credit value received by other senders may not be enough, which causes the problem that one sender cannot effectively use the credit value, and the other senders cannot fully use the uplink bandwidth.
[0064] In order to solve the problem of credit waste of the sender, the present invention provides a scheme for packet transmission between the sender and the receiver based on credit value in a multi-receiver scenario. The scheme, based on the original CBRC algorithm, sets an upper threshold of credit value accumulation at the sender to avoid the problem of credit value waste caused by excessive credit value accumulation. Once the credit value received by a sender from a receiver exceeds the threshold, the sender will notify the receiver that the credit value issued to it should be reduced in the future to avoid credit value waste.
[0065] The specific implementation process of the present invention is described in detail below in conjunction with 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 single or multiple or aggregated together and run in the computer system in the form of a software module or a virtual device. Moreover, although the exemplified step processes have time and sequential logic, the present invention is not limited to these steps in certain cases. They 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 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) according to 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 will poll all senders in the ISL to publish a credit value of k*MTU. Once the published credit value exceeds the credit value requested by a sender plus the maximum send window (MaxCwnd), the receiver will stop publishing credit values to the sender. In the UET protocol, considering the maximum utilization of bandwidth, 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] Among them, sender.linkspeed and receiver.linkspeed are the uplink bandwidth of the sender and the downlink bandwidth of the receiver respectively, and fabric_unloaded_RTT refers to the round-trip delay from the sender to the receiver measured when there is no traffic load in the link from the sender to the receiver.
[0071] For the sender, the present invention further considers the situation when the sender is interconnected with multiple receivers on the basis of the original CBRC algorithm to dynamically adjust the credit value issued by the receiver. Specifically, if the number of receivers that have established a connection with the i-th sender and exchanged data is N, the i-th sender sets the cumulative credit value threshold credit_thr(i) to specify the upper limit of the credit value that can be accumulated by the sender, and the credit value issued by the j-th receiver to the sender is credit(j), if the following conditions are met:
[0072]
[0073] This means that the total amount of credit accumulated by the i-th sender has reached the upper limit of the credit accumulation threshold.
[0074] In one embodiment of the present invention, the PDS packet transmission sublayer of the sender transmits information to the receiver 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 published according to a certain strategy. In another embodiment of the present invention, a newly added field, other fields, or reserved fields in the message header may also be used to indicate that the sender's accumulated credit value has exceeded the upper limit threshold, which is not specifically limited 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 BDP by default.
[0076] S402. If the number of packets exceeds the limit, 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 has been specified in the example UET protocol.
[0078] S403. In the case of exceeding, starting from the time when the receiver receives the data message sent by the sender that indicates 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 strategy when the credit value sending timer is triggered; starting from the time when the receiver no longer receives the data message sent by the sender that indicates that the cumulative credit value upper limit threshold is exceeded, the credit value publishing method is restored to the original CBRC congestion control algorithm according to the preset credit value strategy.
[0079] For the receiver, during the UET transmission process using the CBRC algorithm, the receiver will frequently receive PDS data messages carrying credit value requests (i.e., filling in the TARGET_PULL field value) from the sender. The receiver determines whether the sender's accumulated credit value exceeds the accumulated credit value upper limit threshold credit_thr(i) based on the information carried in the message. There are two situations: exceeded and not exceeded.
[0080] For the case where the cumulative credit value upper limit threshold is not exceeded, 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 the information indicating that the upper limit threshold of the cumulative credit value is exceeded, the receiver reduces the credit value published to the sender according to the preset credit value adjustment strategy when the credit value sending timer is triggered, thereby avoiding waste of credit value; when no more messages indicating that the upper limit threshold of the cumulative credit value is exceeded are received, the receiver increases the credit value published 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, and the credit value issuance method in the CBRC algorithm using the credit value adjustment strategy is changed to:
[0083] a) If the sender is in 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] Among them, the min operator refers to taking the smaller value between two values, and sender(i).pull_target is the effective credit value of the receiver's most recent request (excluding the case where the request credit value is set to the preset identification value). sender(i).pull on the right side of the equal sign is the credit value that the receiver sent to the sender most recently. 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. MTU is the maximum transmission unit (usually set to 1500 bytes). n is the number of consecutively received data packets carrying information indicating that the cumulative credit value upper limit 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 the receiver perceives that the cumulative credit value of the i-th sender has dropped below the upper threshold value of the cumulative credit value, the credit value published to the sender returns to follow 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 coefficient of the MTU in the credit value formula to be published based on the original CBRC congestion control algorithm by using the preset adjustment strategy (for example, it can be understood that the coefficient of MTU in the original algorithm is 1, and the coefficient of MTU is adjusted to ). When it is perceived that the cumulative credit value of the sender exceeds the upper threshold of its cumulative credit value, the MTU coefficient is restored to the value of the original CBRC congestion control algorithm (for example, it can be understood as being restored to 1).
[0089] b) If the sender is in the ISL, when the receiver perceives that the cumulative credit value of the i-th sender has exceeded the cumulative credit value upper limit threshold, the credit value formula published to the sender is updated based on the multiplicative decline to:
[0090]
[0091] Among them, k represents the credit value release coefficient in the original CBRC algorithm, That is to say The result is rounded down. sender(i).pull on the right side of the equal sign is the credit value that the receiver sent to the sender the most recently. 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 published to the sender will be updated based on additive increase to:
[0093]
[0094] Where n is the number of times the receiver has received information indicating that the sender's cumulative credit value exceeds the upper threshold of the cumulative credit value 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, after 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 it is received for the second time, it is updated to sender(i).pull+MTU;
[0097] If the third consecutive message with a non-zero TARGET_PULL field is received, at this time, n = 2, m = ?, then the credit value published 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] From the sixth time onwards, sender(i).pull+4×MTU is still used.
[0101] Figure 5 A schematic diagram of the structure of an electronic device for implementing the credit value packet transmission method provided by the present invention is provided in 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 through the communication bus 520. The memory 530 stores a computer program, and when the computer program is executed by the processor 510, the function of one or more steps in the credit value packet transmission method provided by the present invention can be implemented.
[0102] Memory refers to a device based on a certain storage medium for storing computer programs and / or data. It can be a volatile memory (VM, often called memory) or a non-volatile memory (NVM). Memory refers to an internal memory that directly exchanges data with the processor. It can read and write data at any time and at a very fast speed. It is used as a storage medium for temporary data of the operating system and other running programs. Memory can be synchronous dynamic random access memory (SDRAM), dynamic random access memory (DRAM), etc. Non-volatile memory refers to a memory that uses a persistent storage medium. It has the characteristics of large capacity and persistent data storage. It can be a storage class memory (SCM), a solid state disk (SSD), a NAND flash memory, a disk, etc. SCM is the industry's general term for new storage media between memory and flash memory. It is a composite storage technology that combines persistent storage characteristics and memory characteristics. Its access speed is slower than DRAM and faster than SSD hard disks.
[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 devices, discrete gate or transistor logic devices, discrete hardware components.
[0104] It should be appreciated that embodiments of the present invention may be implemented or implemented by computer hardware, a combination of hardware and software, or by computer instructions stored in a non-transitory (or non-persistent) memory. The method may 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 way causes the computer to operate in a specific and predefined manner. Each program may be implemented in a high-level procedural or object-oriented programming language to communicate with a computer system. However, if necessary, the program may be implemented in an assembly or machine language. In any case, the language may be a compiled or interpreted language. In addition, the program may be run on a programmed ASIC for this purpose. In addition, the operation of the process described in the present invention may be performed in any suitable order, unless the present invention otherwise indicates or otherwise clearly contradicts the context. The process described in the present invention (or variations and / or combinations thereof) may be performed under the control of one or more computer systems configured with executable instructions, and may be implemented as a code (e.g., executable instructions, one or more computer programs, or one or more applications) executed on one or more processors in common, by hardware or a combination thereof. The computer program includes a plurality of instructions that may be executed by one or more processors.
[0105] Further, the method 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 in 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, a RAM, a 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 process described herein. In addition, the machine-readable code, or portions thereof, can be transmitted via 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 in the present invention 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 above description is only an embodiment of the present invention and is not intended to limit the present invention. For those skilled in the art, the present invention may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention should be included in the protection scope of the present invention.
Claims
1. A packet transmission method based on credit value, characterized in that: The method is applied to a receiving device in a network supporting ultra-Ethernet transmission UET protocol, and the method comprises: 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 according to the information carried in the message header; If the limit is not exceeded, the receiver shall issue the credit value to the sender in accordance with the original credit value issuance method of the credit-based rate control CBRC algorithm; In the case of exceeding, starting from the time when the receiver receives the data message sent by the sender that indicates 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 strategy when the credit value sending timer is triggered; starting from the time when the receiver no longer receives the data message sent by the sender that indicates 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.
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 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 case of exceeding, 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 strategy 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 coefficient of the MTU in the formula for calculating the credit value to be published in the original CBRC congestion control algorithm is adjusted to Where n is the number of data messages received continuously and carrying information indicating that the accumulated credit value upper limit threshold is exceeded; Since the data message received from the sender no longer carries the information indicating that the upper threshold of the cumulative credit value is exceeded, the coefficient of the MTU 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, characterized in that In the case of exceeding, 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 coefficient of the MTU in the formula for calculating 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 data messages received continuously that carry information indicating that the cumulative credit value upper limit threshold is exceeded, and k is the credit value release coefficient; Since the data message received from the sender no longer carries the information indicating that the cumulative credit value upper limit threshold is exceeded, the coefficient of MTU in the formula for calculating 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, and the MTU coefficient cannot exceed k.
5. The method according to claim 1, characterized in that 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 ultra-Ethernet transmission UET protocol, and the device comprises: An over-limit judgment module is used to judge whether the accumulated credit value of the sender exceeds the upper limit threshold of its accumulated credit value according to the information carried in the message header after receiving the message sent by the sender; The publishing strategy adjustment module is used for, when the amount is not exceeded, the receiver publishes the credit value to the sender in accordance with the original credit value publishing method of the credit-based rate control CBRC algorithm; when the amount is exceeded, starting from the time when the receiver receives the data message sent by the sender that carries the information indicating that the accumulated credit value upper limit threshold is exceeded, the receiver reduces the credit value published to the sender in accordance with the preset credit value adjustment strategy when the credit value sending timer is triggered; starting from the time when the receiver no longer receives the data message sent by the sender that carries the information indicating that the accumulated credit value upper limit threshold is exceeded, the credit value publishing method is restored to the original CBRC algorithm in accordance with the preset credit value strategy.
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, 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.
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 sender is in the active sender queue ASL in the case of exceeding: 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 coefficient of the MTU in the formula for calculating the credit value to be published in the original CBRC congestion control algorithm is adjusted to Where n is the number of data messages received continuously and carrying information indicating that the accumulated credit value upper limit threshold is exceeded; Since the data message received from the sender no longer carries the information indicating that the upper threshold of the cumulative credit value is exceeded, the coefficient of the MTU 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 used for, in the case of exceeding, when the sender is in an idle sender queue ISL, adjusting the credit value issued to the sender in the following manner: 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 coefficient of the MTU in the formula for calculating 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 data messages received continuously that carry information indicating that the cumulative credit value upper limit threshold is exceeded, and k is the credit value release coefficient; Since the data message received from the sender no longer carries the information indicating that the cumulative credit value upper limit threshold is exceeded, the coefficient of MTU in the formula for calculating 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, 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, for implementing 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
Network congestion control method
CN110808884A
Data receiving and sending method, device and system
CN111416775A
Credit threshold training method, IP address detection method and related devices
CN112003846A
Credit-based flow control in lossless ethernet networks
US20140269274A1
Cited By
PCIe data packet sending method, electronic equipment and medium
CN119996314A
Congestion control method and apparatus, and electronic device
CN120200973A
Data transmission system and method
CN120200974A