Flow control method and device, chip, network interface card, computer equipment, storage medium and computer program product
By generating and sending traffic status information on the sending end, and allocating authorized traffic at the receiving end, the problem of coupling between network nodes and switches in the prior art is solved, decoupling and independence of traffic control is achieved, and data transmission efficiency is improved.
Patent Information
- Application Number
- CN202411140619.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-19
- Publication Date
- 2024-12-10
AI Technical Summary
The existing DCQCN technology requires switches of each node in the network to check the ECN marks of the message header, which leads to a large coupling with the switch and requires good ECN algorithm support from the switch, which limits the flexibility and independence of flow control.
Provide a flow control method. The sending end generates traffic status information and sends it to the receiving end. The receiving end allocates authorized traffic based on the traffic status information. The sending end sends task data based on the allocated authorized traffic, completely decouples from the intermediate network to avoid intermediate switches. Participate in the generation of congestion information.
The decoupling of traffic control is achieved, the dependence on the intermediate network is reduced, the flexibility and independence of traffic control is improved, the configuration and parameter adjustment of intermediate switches are avoided, and the efficiency of data transmission is improved.
Smart Images

Figure CN119109868A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a flow control method, chip, network interface card, device, computer equipment, storage medium and computer program product. Background Art
[0002] The standard RDMA (Remote Direct Memory Access) RoCEv2 (RDMA over Converged Ethernet version 2) protocol uses DCQCN (Data Center Quantized Congestion Notification) technology to solve network congestion control. DCQCN technology is based on the QP (Queue Pair) dimension. It detects congestion at intermediate nodes such as switch nodes at all levels in the network and marks congestion through the ECN (Explicit Congestion Notification) field in the message header, so that the receiving end generates CNP (Congestion Notification packets) messages based on the received ECN, and then returns to the sending end through the intermediate node. The sending end responds to the CNP message and reduces the rate of sending messages in the QP dimension according to the algorithm.
[0003] However, DCQCN technology requires the switches at each node in the network to check the ECN mark in the packet header and generate ECN marks based on the congestion situation of the switch. This solution is highly coupled with network switches and other devices, and requires the switches to better support the ECN algorithm. Summary of the invention
[0004] Based on this, it is necessary to provide a flow control method, device, chip, network interface card, computer equipment, computer-readable storage medium and computer program product that can be decoupled from various intermediate networks and does not require various intermediate networks to participate in providing various congestion information in response to the above-mentioned technical problems.
[0005] In a first aspect, the present application provides a flow control method, applied to a sending end, the method comprising:
[0006] generating flow status information;
[0007] Sending the flow status information to a receiving end, wherein the flow status information is used to instruct the receiving end to allocate authorized flow to the sending end;
[0008] The authorized flow allocated by the receiving end is received, and task data is sent based on the authorized flow in the sending end.
[0009] In one embodiment, generating traffic status information includes:
[0010] When the first trigger condition is met, the to-be-sent traffic and the existing authorized traffic in the current sending queue are obtained;
[0011] The flow status information is generated based on the flow to be sent and the existing authorized flow.
[0012] In one embodiment, the generating the flow state information based on the flow to be sent and the existing authorized flow includes:
[0013] When the traffic to be sent is not a preset value, obtaining a current state threshold value according to a preset comparison order;
[0014] A comparison result is obtained based on the current state threshold and a target indicator, wherein the target indicator is an allocation speed of the existing authorized traffic, the unauthorized traffic, or the current sending queue to allocate new authorized traffic, and the unauthorized traffic is a difference between the traffic to be sent and the existing authorized traffic;
[0015] When the comparison result meets a preset condition, generating flow status information based on the comparison result;
[0016] When the comparison result does not meet the preset conditions, the next state threshold is obtained as the current state threshold according to the preset comparison order, and the step of obtaining the comparison result based on the current state threshold and the target indicator is continued until the traffic state information is generated.
[0017] In one embodiment, the generating the flow state information based on the flow to be sent and the existing authorized flow includes:
[0018] When the to-be-sent traffic is not a preset value, detecting whether the existing authorized traffic is greater than a closed state threshold;
[0019] When the existing authorized traffic is greater than the closed state threshold, generating traffic state information for stopping allocating new authorized traffic to the current sending queue;
[0020] When the existing authorized flow rate is less than or equal to the closed state threshold, detecting whether the existing authorized flow rate is greater than a first deceleration state threshold;
[0021] When the existing authorized traffic is greater than the first deceleration state threshold, generating traffic state information for reducing the speed of allocating new authorized traffic to the current sending queue;
[0022] When the existing authorized traffic is less than or equal to the normal state threshold, obtaining unauthorized traffic based on the difference between the traffic to be sent and the existing authorized traffic, and detecting whether the unauthorized traffic is greater than the normal state threshold;
[0023] When the unauthorized traffic is greater than the normal state threshold, generating traffic state information for setting the allocation speed of the new authorized traffic of the current sending queue to the target speed;
[0024] When the unauthorized traffic is less than or equal to the normal state threshold, detecting whether the unauthorized traffic is less than a second deceleration state threshold;
[0025] When the unauthorized traffic is less than the second deceleration state threshold, generating traffic state information for reducing the speed of allocating new authorized traffic to the current sending queue;
[0026] When the unauthorized traffic is not less than the second deceleration state threshold, detecting whether the allocation speed of the new authorized traffic allocated by the current sending queue is equal to the target speed;
[0027] The allocation speed of the new authorized traffic in the current sending queue is equal to the target speed, and the traffic state information for setting the allocation speed of the new authorized traffic in the current sending queue to the target speed is generated;
[0028] The allocation speed of the new authorized traffic allocated to the current sending queue is not equal to the target speed, and traffic state information for reducing the allocation speed of the new authorized traffic allocated to the current sending queue is generated.
[0029] In one embodiment, the generating the flow state information based on the flow to be sent and the existing authorized flow includes:
[0030] When the traffic to be sent is a preset value, detecting whether the existing authorized traffic is greater than an empty traffic threshold;
[0031] When the existing authorized traffic is greater than the empty traffic threshold, generating traffic state information for stopping allocating new authorized traffic to the current sending queue;
[0032] When the existing authorized traffic is not greater than the empty traffic threshold, traffic state information for reducing the speed of allocating new authorized traffic to the current sending queue is generated.
[0033] In one of the embodiments, the first trigger condition includes at least one of scheduling a new sending queue, hanging back the sending queue, and applying for authorized traffic from the receiving end.
[0034] In one of the optional embodiments, generating the traffic status information includes:
[0035] Generate traffic status information by hardware traffic status information generation method; or
[0036] Determine a method for generating flow status information, and generate flow status information based on the generation method. The generation method is through a hardware flow status information generation method or a software method. The hardware flow status information generation method is to generate flow status information through a hardware flow status generation module; the software method is to send a flow status information generation event to a microengine pool, and generate flow status information through a microengine in the microengine pool.
[0037] In one of the optional embodiments, after receiving the authorized traffic allocated by the receiving end, the method further includes:
[0038] Updating the local authorized traffic based on the authorized traffic allocated by the receiving end by means of hardware update; or
[0039] Based on the message corresponding to the authorized traffic allocated by the receiving end, a first processing method is determined, and the local authorized traffic is updated based on the authorized traffic allocated by the receiving end through the determined first processing method, wherein the first processing method includes a hardware update method or a software update method, wherein the hardware update method is to obtain and parse the authorized traffic allocated by the receiving end in the current receiving queue through a hardware processing module, and update the authorized traffic to the context of the current sending queue; the software update method is to obtain and parse the authorized traffic allocated by the receiving end in the current receiving queue through a micro-engine in a micro-engine pool, and update the parsed authorized traffic to the context of the current sending queue.
[0040] In one of the optional embodiments, the method further includes:
[0041] Receive a data sending task, and determine a sending queue corresponding to the data sending task;
[0042] In a case where the sending queue has corresponding authorized traffic, sending the task data corresponding to the data sending task through the sending queue based on the authorized traffic;
[0043] In the case that the sending queue does not have corresponding authorized traffic, the sending queue is returned to the scheduling queue to wait for the next scheduling.
[0044] In a second aspect, the present application further provides a flow control method, applied to a receiving end, the method comprising:
[0045] Receive traffic status information sent by the sender;
[0046] Get traffic configuration information;
[0047] Based on the flow state information and the flow configuration information, obtaining the authorized flow corresponding to the sending end;
[0048] The authorized traffic is returned to the sending end.
[0049] In one embodiment, obtaining the authorized flow corresponding to the sending end based on the flow state information and the flow configuration information includes:
[0050] When the flow status information is in a normal state, obtaining the first authorized flow in the flow configuration information as the authorized flow corresponding to the sending end;
[0051] When the traffic state information is in the first closed state, obtaining a first authorized traffic in the traffic configuration information, obtaining a second authorized traffic based on the first authorized traffic, and using the second authorized traffic as the authorized traffic corresponding to the sending end, and the second authorized traffic is less than the first authorized traffic;
[0052] In the case where the traffic state information is in a speed reduction state, determining an existing authorized traffic corresponding to the sending end based on the traffic state information, determining a target interval based on a relationship between the existing authorized traffic and each threshold value in the traffic configuration information, and determining a new authorized traffic corresponding to the sending end based on the authorized traffic configuration value corresponding to the target interval;
[0053] When the traffic state information is not in a normal state, a first shutdown state, or a speed reduction state, the first authorized traffic in the traffic configuration information is obtained as the authorized traffic corresponding to the sending end.
[0054] In one embodiment, the receiving of the traffic status information sent by the transmitting end includes:
[0055] Receive a flow status message sent by a sending end, and identify the flow status message through a hardware message processing method to obtain flow status information; or
[0056] Receive a traffic status message sent by a sending end, determine a second processing method based on the type of the traffic status message, identify the traffic status message through the second processing method to obtain traffic status information, the second processing method includes a hardware message processing method or a software message processing method, wherein the hardware message processing method is to parse the traffic status message through a scheduler to obtain the traffic status information; the software message processing method is to parse the traffic status message through a micro-engine in a micro-engine pool to obtain the traffic status information, and send the traffic status information to the scheduler.
[0057] In one embodiment, obtaining the authorized flow corresponding to the sending end based on the flow state information and the flow configuration information includes:
[0058] Obtaining, by a scheduler, the authorized flow corresponding to the sending end based on the flow state information and the flow configuration information; or
[0059] Obtaining, by a scheduler, a first authorized flow to be corrected based on the flow state information and the flow configuration information; sending the first authorized flow to be corrected to a microengine pool, and correcting the first authorized flow to be corrected by a microengine in the microengine pool to obtain an authorized flow corresponding to the sending end; or
[0060] Generate an authorized traffic processing event based on the traffic state information and the traffic configuration information by a microengine in a microengine pool, send the authorized traffic processing event to a scheduler, and generate authorized traffic corresponding to the sending end based on the authorized traffic processing event by the scheduler; or
[0061] An authorized traffic processing event is generated by a microengine in a microengine pool based on the traffic status information and the traffic configuration information, and the authorized traffic processing event is sent to a scheduler. A second authorized traffic to be corrected corresponding to the sending end is generated by the scheduler based on the authorized traffic processing event, and the second authorized traffic to be corrected is sent to the microengine pool. The second authorized traffic to be corrected is corrected by the microengine in the microengine pool to obtain the authorized traffic corresponding to the sending end.
[0062] In a third aspect, the present application further provides a flow control device, the device comprising:
[0063] A flow status information generating module, used for generating flow status information;
[0064] A first traffic allocation module, used for sending the traffic status information to a receiving end, wherein the traffic status information is used for instructing the receiving end to allocate authorized traffic to the sending end;
[0065] The data sending module is used to receive the authorized flow allocated by the receiving end, and send task data based on the authorized flow in the sending end.
[0066] In a fourth aspect, the present application further provides a flow control device, the device comprising:
[0067] A receiving module, used for receiving the flow status information sent by the sending end;
[0068] A flow configuration information acquisition module is used to acquire flow configuration information;
[0069] A second traffic allocation module, configured to obtain the authorized traffic corresponding to the sending end based on the traffic state information and the traffic configuration information;
[0070] The traffic sending module is used to return the authorized traffic to the sending end.
[0071] In a fifth aspect, the present application further provides a chip, including a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the steps of any one of the above methods are implemented.
[0072] In a sixth aspect, the present application also provides a network interface card, comprising a chip as described in any one of the above items and a plurality of interfaces, wherein the chip communicates externally through the interfaces.
[0073] In a seventh aspect, the present application further provides a computer device, comprising a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps of the method described in any one of the above embodiments when executing the computer program.
[0074] In an eighth aspect, the present application further provides a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed by a processor, the steps of the method described in any one of the above embodiments are implemented.
[0075] In a ninth aspect, the present application also provides a computer program product, including a computer program, which, when executed by a processor, implements the steps of the method described in any one of the above embodiments.
[0076] In the above-mentioned flow control method, device, chip, network interface card, computer equipment, storage medium and computer program product, the sending end generates flow status information and sends the flow status information to the receiving end, so that the receiving end can allocate corresponding authorized flow to the sending end, and then the sending end receives the authorized flow to send task data. In this way, the sending end sends data based on the authorized flow allocated by the receiving end, and does not require the intermediate switch to participate in the generation of congestion information. It is completely decoupled from various intermediate networks and does not rely on the configuration and parameter adjustment of the intermediate switch. BRIEF DESCRIPTION OF THE DRAWINGS
[0077] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the related technologies, the drawings required for use in the embodiments or the related technical descriptions are briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0078] Figure 1An application environment diagram of a flow control method in an embodiment;
[0079] Figure 2 A schematic diagram of a flow chart of a flow control method in an embodiment;
[0080] Figure 3 A flow chart of a flow status information generation step in one embodiment;
[0081] Figure 4 is a flow chart of a flow control method in another embodiment;
[0082] Figure 5 A flowchart of a receiving end traffic allocation step in one embodiment;
[0083] Figure 6 is a flowchart of a flow distribution method in an embodiment;
[0084] Figure 7 is a structural block diagram of a flow control device in one embodiment;
[0085] Figure 8 is a structural block diagram of a flow control device in another embodiment;
[0086] Fig. 9 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION
[0087] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0088] The flow control method provided in the embodiment of the present application can be applied to Figure 1 In the application environment shown in the figure, the sending end 102 communicates with the receiving end 104 through the network, wherein the sending end 102 and the receiving end 104 can be terminals or servers, for example, the sending end 102 is a terminal and the receiving end 104 is a terminal; the sending end 102 is a terminal and the receiving end 104 is a server; the sending end 102 is a server and the receiving end 104 is a server; the sending end 102 is a server and the receiving end 104 is a terminal, and no specific limitation is made here.
[0089] The terminal may be, but is not limited to, various personal computers, laptops, smart phones, tablet computers, IoT devices and portable wearable devices. The IoT devices may be smart speakers, smart TVs, smart air conditioners, smart car-mounted devices, etc. The portable wearable devices may be smart watches, smart bracelets, head-mounted devices, etc. The server may be implemented as an independent server or a server cluster consisting of multiple servers. The communication between the sending end 102 and the receiving end 104 may be based on RDMA RoCEv2.
[0090] The sending end 102 can generate traffic status information and send the traffic status information to the receiving end 104, so that the receiving end 104 can allocate authorized traffic to the sending end 102 based on the traffic status information, and then the sending end 102 can transmit task data to the receiving end 104 based on the authorized traffic.
[0091] In the above-mentioned flow control method, the sending end generates flow status information and sends the flow status information to the receiving end, so that the receiving end can allocate corresponding authorized flow to the sending end, and then the sending end receives the authorized flow to send task data. In this way, the sending end sends data based on the authorized flow allocated by the receiving end, and does not require the intermediate switch to participate in the generation of congestion information, does not rely on the configuration and parameter adjustment of the intermediate switch, and is completely decoupled from various intermediate networks.
[0092] In an exemplary embodiment, Figure 2 As shown, a flow control method is provided, which is applied to Figure 1 Taking the sending end in FIG. 1 as an example, the method includes the following steps 202 to 206. Among them:
[0093] S202: Generate traffic status information.
[0094] The flow status information is the sending status information of the to-be-sent traffic of the current sending queue of the sending end, and the flow status information may include at least one of normal, reduced speed and closed. In some optional embodiments, the flow status information is transmitted via an FSM (flow status message) message, and the message may include 2 bits for representing 3 states, such as normal, reduced speed and closed. In other embodiments, the number of flow states may be other numbers, and only the message of the corresponding bit needs to be configured, and no specific restriction is made on the number of states here. The current sending queue of the sending end is the sending queue scheduled by the sending end to send the current data. The to-be-sent traffic of the current sending queue is the data that needs to be sent in the current sending queue.
[0095] In some optional embodiments, after the sending end generates traffic status information, it generates a corresponding traffic status information message based on the traffic status information, and sends the traffic status information message to the receiving end. The traffic status information message can be an RDMA (Remote Direct Memory Access) message, and the traffic status information message is sent to the receiving end through the network.
[0096] Optionally, the traffic status information may be generated based on the traffic to be sent and / or the existing authorized traffic in the sender, wherein the traffic to be sent refers to the data to be sent in the current sending queue of the sender, and the existing authorized traffic refers to the unused credits for sending data remaining in the current sending queue of the sender. For example, the traffic status information may be generated based only on the traffic to be sent, or based only on the existing authorized traffic, or based on the traffic to be sent and the existing authorized traffic.
[0097] In one of the optional embodiments, generating traffic status information includes: when a first trigger condition is met, obtaining the to-be-sent traffic and the existing authorized traffic of the current sending queue; and generating traffic status information based on the to-be-sent traffic and the existing authorized traffic.
[0098] The sending end can transmit data with multiple receiving ends. The sending end transmits data with the receiving end through a queue pair QP (Queue Pair), where the queue pair QP includes a sending queue and a receiving queue. In this way, at the sending end, each sending queue corresponds to the traffic to be sent and the existing authorized traffic, so that the traffic status information of the sending queue can be determined based on the traffic to be sent and the existing authorized traffic of each sending queue.
[0099] The first trigger condition is a trigger condition for generating traffic status information. In one optional embodiment, the first trigger condition includes generating at least one of scheduling a new sending queue, hanging back the sending queue, and applying for authorized traffic from the receiving end.
[0100] Scheduling a new send queue means that the sender schedules a new queue pair QP to send data when receiving a data send request from the system software. Since it is a newly established send queue, it is necessary to trigger the sender to generate traffic state information corresponding to the newly established send queue and send it to the receiver so that the receiver knows the traffic state of the newly established send queue and allocates authorized traffic to the newly established send queue based on the traffic state information.
[0101] Hanging back to the sending queue is a step that is only executed when the authorized flow of the current sending queue of the sending end is insufficient. Therefore, when the authorized flow is insufficient, it is necessary to apply for authorized flow from the receiving end, triggering the sending end to generate flow status information and apply for authorized flow from the receiving end.
[0102] S204: Send the flow status information to the receiving end, where the flow status information is used to instruct the receiving end to allocate authorized flow to the sending end.
[0103] The authorized traffic may be a credit allocated by the receiving end to the sending end, and the credit may allow the sending end to send data to the receiving end. For the convenience of description, the credit is referred to as the authorized traffic in this article.
[0104] The sender sends the traffic status information to the receiver, and the receiver allocates authorized traffic to the sender based on the traffic status information. For example, when the traffic status information is normal, the receiver allocates authorized traffic to the sender at the normal speed. When the traffic status information is reduced speed, the receiver reduces the speed of allocating authorized traffic to the sender. When the traffic status information is closed, the receiver stops allocating authorized traffic to the sender.
[0105] In some optional embodiments, when the traffic status information is a speed reduction, the target interval can also be determined based on the relationship between the existing authorized traffic and the pre-configured threshold values, and the new authorized traffic corresponding to the sending queue of the sending end can be determined based on the authorized traffic configuration value corresponding to the target interval. In this way, the speed of allocating authorized traffic to the sending queue of the sending end can be reduced in stages.
[0106] After the receiving end confirms the authorized traffic allocated to the sending queue of the sending end, the receiving end generates a corresponding authorized traffic message and sends the authorized traffic message to the sending end.
[0107] S206: Receive the authorized traffic allocated by the receiving end, and send the task data based on the authorized traffic in the sending end.
[0108] After the sender receives the authorized traffic allocated by the receiver, it can send the task data based on the authorized traffic.
[0109] Optionally, the sending end receives the authorized flow message sent by the receiving end, and parses the authorized flow message to obtain the authorized flow, so that the sending end can send the task data based on the authorized flow.
[0110] In the above-mentioned flow control method, the sending end generates flow status information and sends the flow status information to the receiving end, so that the receiving end can allocate corresponding authorized flow to the sending end, and then the sending end receives the authorized flow to send task data. In this way, the sending end sends data based on the authorized flow allocated by the receiving end, and does not require the intermediate switch to participate in the generation of congestion information, does not rely on the configuration and parameter adjustment of the intermediate switch, and is completely decoupled from various intermediate networks.
[0111] In one of the optional embodiments, in combination Figure 3 As shown, Figure 3 A flowchart of the flow status information generation step in an embodiment, in which the flow status information is generated based on the flow to be sent and the existing authorized flow, including: when the flow to be sent is not a preset value, obtaining a current state threshold according to a preset comparison order; obtaining a comparison result based on the current state threshold and a target indicator, the target indicator being an allocation speed of existing authorized flow, unauthorized flow or a new authorized flow allocated to a current sending queue, and the unauthorized flow is the difference between the flow to be sent and the existing authorized flow; when the comparison result meets the preset conditions, generating the flow status information based on the comparison result; when the comparison result does not meet the preset conditions, obtaining the next state threshold as the current state threshold according to a preset comparison order, and continuing to perform the step of obtaining a comparison result based on the current state threshold and the target indicator until the flow status information is generated.
[0112] The flow status information is generated based on the existing authorized flow and / or the flow to be sent. The flow status information in this embodiment is generated based on the existing authorized flow and the flow to be sent. In other embodiments, the flow status information may also be generated based only on the flow to be sent, or only on the existing authorized flow, and no specific limitation is made here.
[0113] Another point that needs to be explained is that the traffic status information corresponds to the current sending queue. Each current sending queue corresponds to a traffic status information. Therefore, the comparison below is the processing of the to-be-sent traffic corresponding to a current sending queue and the existing authorized traffic.
[0114] Among them, the state threshold may include at least one. When the state threshold includes at least two, each state threshold has a sequence. In this embodiment, the target indicator is compared with each state threshold in turn. When the comparison result meets the preset condition, the flow state information is generated based on the comparison result, otherwise the target indicator is continued to be compared with the next state threshold. Among them, the target indicator is the allocation speed of the existing authorized flow, unauthorized flow or the current sending queue to allocate new authorized flow. The unauthorized flow is the difference between the flow to be sent and the existing authorized flow. The target indicator, the preset condition and the state threshold are corresponding.
[0115] Optionally, the state threshold may include a closed state threshold, a first deceleration state threshold, a normal state threshold, a second deceleration state threshold, and a target speed for the allocation of the authorized flow. The corresponding preset conditions may be greater than the closed state threshold, greater than the first deceleration state threshold, greater than the normal state threshold, less than the normal state threshold, less than the second deceleration state threshold, and the allocation speed of the new authorized flow is equal to the target speed.
[0116] In one of the optional embodiments, traffic status information is generated based on the traffic to be sent and the existing authorized traffic, including: when the traffic to be sent is not a preset value, detecting whether the existing authorized traffic is greater than a closed state threshold; when the existing authorized traffic is greater than the closed state threshold, generating traffic status information to stop allocating new authorized traffic to the current sending queue; when the existing authorized traffic is less than or equal to the closed state threshold, detecting whether the existing authorized traffic is greater than a first deceleration state threshold; when the existing authorized traffic is greater than the first deceleration state threshold, generating traffic status information to reduce the allocation speed of new authorized traffic to the current sending queue; when the existing authorized traffic is less than or equal to the first deceleration state threshold, obtaining unauthorized traffic based on the difference between the traffic to be sent and the existing authorized traffic, detecting whether the unauthorized traffic is greater than a normal state threshold; when the unauthorized traffic is greater than the normal state threshold , generate flow status information for setting the allocation speed of new authorized traffic of the current sending queue to the target speed; when the unauthorized traffic is less than or equal to the normal state threshold, detect whether the unauthorized traffic is less than the second deceleration state threshold; when the unauthorized traffic is less than the second deceleration state threshold, generate flow status information for reducing the allocation speed of new authorized traffic allocated to the current sending queue; when the unauthorized traffic is not less than the second deceleration state threshold, detect whether the allocation speed of new authorized traffic allocated to the current sending queue is equal to the target speed; when the allocation speed of new authorized traffic allocated to the current sending queue is equal to the target speed, generate flow status information for setting the allocation speed of new authorized traffic of the current sending queue to the target speed; when the allocation speed of new authorized traffic allocated to the current sending queue is not equal to the target speed, generate flow status information for reducing the allocation speed of new authorized traffic allocated to the current sending queue.
[0117] Combination Figure 3 As shown, after the first trigger condition is met, it is detected whether the traffic to be sent is a preset value, for example, it is detected whether the traffic to be sent is 0, that is, whether there is still traffic to be sent; if so, the traffic status information continues to be generated based on the existing authorized traffic and the traffic to be sent.
[0118] Specifically, the sending end first detects whether the existing authorized traffic (i.e., local authorized traffic) is greater than the closed state threshold. When the existing authorized traffic is greater than the closed state threshold, that is, when the current authorized traffic is large and exceeds a lot, the allocation of new authorized traffic to the current sending queue is temporarily closed, and thus the traffic state information for stopping the allocation of new authorized traffic to the current sending queue is generated, that is, the traffic state information is in the closed state. When the existing authorized traffic is not greater than the closed state threshold, it is detected whether the existing authorized traffic is greater than the first deceleration state threshold. When the existing authorized traffic is greater than the first deceleration state threshold, that is, at this time, the existing authorized traffic is large, and thus the allocation of the authorized traffic of the sending queue is temporarily slowed down, and for this purpose, the traffic state information for reducing the allocation speed of new authorized traffic to the current sending queue is generated, that is, the traffic state information is in the deceleration state.
[0119] When the existing authorized traffic is not greater than the first deceleration state threshold, the unauthorized traffic is obtained based on the difference between the traffic to be sent and the existing authorized traffic, and it is detected whether the unauthorized traffic is greater than the normal state threshold, that is, whether the current sending queue has reasonable traffic to be sent. When the unauthorized traffic is greater than the normal state threshold, the traffic state information is set to the normal state (also called the open state), that is, the traffic state information is generated to set the allocation speed of the new authorized traffic of the current sending queue to the target speed. The target speed here is the normal speed. The speed reduction in this application may refer to being lower than the target speed. When the unauthorized traffic is less than or equal to the normal state threshold, it is continued to detect whether the unauthorized traffic is less than the second deceleration state threshold. When the unauthorized traffic is less than the second deceleration state threshold, that is, the traffic to be sent corresponding to the sending queue is not much, so the allocation amount of the authorized traffic corresponding to the sending queue is reduced, thereby generating traffic state information that reduces the allocation speed of the new authorized traffic to the current sending queue, that is, the traffic state information is in the deceleration state. When the unauthorized traffic is not less than the second deceleration state threshold, it is detected whether the allocation speed of the new authorized traffic allocated to the current sending queue is equal to the target speed; when the allocation speed of the new authorized traffic allocated to the current sending queue is equal to the target speed, traffic state information is generated to set the allocation speed of the new authorized traffic of the current sending queue to the target speed, that is, the traffic state information is in a normal state; when the allocation speed of the new authorized traffic allocated to the current sending queue is not equal to the target speed, traffic state information is generated to reduce the allocation speed of the new authorized traffic allocated to the current sending queue, that is, the traffic state information is in a deceleration state.
[0120] In one of the optional embodiments, traffic status information is generated based on the traffic to be sent and the existing authorized traffic, including: when the traffic to be sent is a preset value, detecting whether the existing authorized traffic is greater than an empty traffic threshold; when the existing authorized traffic is greater than the empty traffic threshold, generating traffic status information to stop allocating new authorized traffic to the current sending queue; when the existing authorized traffic is not greater than the empty traffic threshold, generating traffic status information to reduce the allocation speed of allocating new authorized traffic to the current sending queue.
[0121] If there is no traffic to be sent, for example, when the traffic to be sent is 0, traffic status information is generated based on the existing authorized traffic. Specifically, it is determined whether the existing authorized traffic is greater than the empty traffic threshold, that is, whether the existing authorized traffic corresponding to the current sending queue is greater than the empty traffic threshold, that is, whether there is a deficit. If there is no deficit, there is no need to resend to compensate for the previous over-sending, thereby generating traffic status information to stop allocating new authorized traffic to the current sending queue. If there is a deficit, resend is performed through the speed reduction state, that is, generating traffic status information to reduce the allocation speed of allocating new authorized traffic to the current sending queue.
[0122] In one of the optional embodiments, generating flow status information includes: generating flow status information through a hardware flow status information generating method; or determining a flow status information generating method, and generating flow status information based on the generating method, wherein the generating method is through a hardware flow status information generating method or a software method, and the hardware flow status information generating method is generating flow status information through a hardware flow status generating module; the software method is sending a flow status information generating event to a microengine pool, and generating flow status information through a microengine in the microengine pool.
[0123] Specifically, in the present application, the flow status information may be generated by using a hardware flow status information generation method or by using a software method.
[0124] The sender is responsible for generating flow status information, namely, FSM (flow status message) messages, for the receiver. The sender uses FSM messages to control the receiver to generate credit, i.e., the amount of authorized traffic, based on different algorithms and information.
[0125] A specific hardware traffic state generation module may be provided in the sending end. For example, traffic state information is generated by the hardware traffic state generation module. The hardware traffic state generation module may be ASIC (Application Specific Integrated Circuit) hardware. Specifically, the hardware traffic state generation module generates a traffic state information message in a fixed message organization form based on the to-be-sent traffic in the current sending queue and the existing authorized traffic, and then places the traffic state information message in the current sending queue to send to the receiving end.
[0126] In other embodiments, a microcode MEP (Micro Engine Pool) processing module may be further extended in the transmitting end. When generating flow status information, a generation method of the flow status information is first determined, and then a corresponding method is selected to generate the flow status information. For example, the microcode MEP processing module may be selected to generate a flow status information message FSM (flow status message) for the receiving end, and the microcode MEP processing module puts the generated flow status information message into the current sending queue to send it to the receiving end.
[0127] Optionally, the microcode MEP processing module may be a microengine pool, which includes a plurality of microengines (such as data processing algorithms), and the plurality of microengines may be used to generate traffic status information messages.
[0128] In some optional embodiments, a corresponding switch may be provided for the microcode MEP processing module, and the microcode MEP processing module may be enabled by the switch, that is, when the microcode MEP processing module is not enabled, the flow state information can only be generated by the hardware flow state generation module. When the microcode MEP processing module is enabled, the generation method of the flow state information is first determined, and then based on the generation method, it is determined whether the hardware flow state generation module or the microcode MEP processing module generates the flow state information.
[0129] In the above embodiment, a hardware and microcode control mechanism is adopted to reduce the timely demand and total demand for CPU computing power (microcode algorithm), and the required number of CPU cores can be tailored according to the situation, reducing the overall cost of the overall solution.
[0130] In some optional embodiments, after receiving the authorized traffic allocated by the receiving end, it also includes: updating the local authorized traffic based on the authorized traffic allocated by the receiving end through a hardware update method; or determining a first processing method based on the message corresponding to the authorized traffic allocated by the receiving end, and updating the local authorized traffic based on the authorized traffic allocated by the receiving end through the determined first processing method, wherein the first processing method includes a hardware update method or a software update method, wherein the hardware update method is to obtain and parse the authorized traffic allocated by the receiving end in the current receiving queue through a hardware processing module, and update the authorized traffic to the context of the current sending queue; the software update method is to obtain and parse the authorized traffic allocated by the receiving end in the current receiving queue through a micro-engine in a micro-engine pool, and update the parsed authorized traffic to the context of the current sending queue.
[0131] Among them, after the sender receives the authorized traffic, it also supports multiple processing methods, including hardware update method and software update method.
[0132] Optionally, the sending end obtains the authorized traffic information message sent by the receiving end through the hardware processing module, and then the hardware processing module refreshes the authorized traffic, i.e., the credit, into the context of the current sending queue, for example, into the queue context corresponding to the current sending queue VOQ (Virtual output Queue, virtual output queue structure), so that when the current sending queue needs to send task data, it can determine whether the task data can be sent based on the authorized traffic in the queue context. However, it should be noted that the hardware processing module can only recognize the authorized traffic information message header in a fixed format.
[0133] Optionally, in order to implement the parsing of the customized authorized flow information message header, the present embodiment introduces a software update method, that is, the authorized flow information message header is parsed by the software update method, and then the parsed authorized flow, that is, the credit, is refreshed to the queue context of the current sending queue VOQ (Virtual output Queue, virtual output queue structure). The software processing method is still implemented by microcode, for example, the microengine in the microengine pool obtains and parses the authorized flow allocated by the receiving end in the current receiving queue, and updates the parsed authorized flow to the context of the current sending queue.
[0134] One point that needs to be explained is that what is currently stored in the receiving queue is the authorized traffic message. Both the hardware processing module and the micro-engine are used to parse the authorized traffic message. The hardware processing module can only parse the authorized traffic message in a fixed format, while the micro-engine can parse the authorized traffic message in a custom format.
[0135] A corresponding switch may be provided for the microcode update module, through which the microcode update module can be activated. That is, when the microcode update module is not effective, the authorized traffic information message can only be processed by the hardware update module. When the microcode update module is effective, the update method is first determined based on the authorized traffic information message, and then based on the update method, it is determined whether the hardware processing module or the microcode update module is used for the update.
[0136] In the above embodiment, a hardware and microcode control mechanism is adopted to reduce the timely demand and total demand for CPU computing power (microcode algorithm), and the required number of CPU cores can be tailored according to the situation, reducing the overall cost of the overall solution.
[0137] In some of the optional embodiments, the method also includes a method for sending task data, wherein the method for sending task data includes: receiving a data sending task, and determining a sending queue corresponding to the data sending task; when there is corresponding authorized traffic in the sending queue, sending the task data corresponding to the data sending task through the authorized traffic; when there is no corresponding authorized traffic in the sending queue, hanging the sending queue back to the scheduling queue and waiting for the next scheduling.
[0138] The authorized traffic corresponding to each sending queue can include two sources: the first source is the authorized traffic based on the sending queue VOQ (Virtual Output Queue) configuration, such as the traffic of pushed messages, which can avoid the need to wait when sending for the first time. The second source is the authorized traffic of the sending queue requested by the sender to the receiver, that is, the traffic that needs to be authorized before it can be sent.
[0139] The sending end can receive the data sending task sent by the system software, so that a sending queue can be scheduled through the scheduling system. First, check whether the sending queue can send the task data, that is, check whether the sending queue has corresponding authorized traffic. If there is corresponding authorized traffic, the task data corresponding to the data sending task is sent through the authorized traffic; if there is no corresponding authorized traffic, the sending queue is returned to the scheduling queue of the scheduling system and waits for the next scheduling.
[0140] In an exemplary embodiment, Figure 4 As shown, a flow control method is provided, which is applied to Figure 1 The receiving end in FIG. 1 is taken as an example to illustrate, and the following steps 402 to 408 are included. Among them:
[0141] S402: Receive traffic status information sent by the sending end.
[0142] Among them, the limitations on traffic status information can be found above and will not be repeated here.
[0143] In one of the optional embodiments, receiving the flow status information sent by the sending end includes: receiving the flow status message sent by the sending end, and identifying the flow status message through a hardware message processing method to obtain the flow status information; or receiving the flow status message sent by the sending end, determining a second processing method based on the type of the flow status message, identifying the flow status message through the second processing method to obtain the flow status information, the second processing method including a hardware message processing method or a software message processing method, wherein the hardware message processing method is to parse the flow status message through a scheduler to obtain the flow status information; the software message processing method is to parse the flow status message through a micro-engine in a micro-engine pool to obtain the flow status information, and send the flow status information to the scheduler.
[0144] After receiving the flow status message, the receiving end may process the flow status message by a hardware message processing method or a software message processing method.
[0145] The hardware message processing method is to parse the traffic status message through the scheduler to obtain the traffic status information, and then transmit the traffic status information to the scheduler, that is, the VSCH (Voq scheduler) logic module for processing; the VSCH logic module schedules the corresponding new authorized traffic based on the traffic status information.
[0146] If the FSM message header is customized by the software, it needs to be parsed and processed by the MEP microcode software message processing method to obtain the traffic status information. The MEP microcode software message processing method can include a variety of customized message parsing methods, so that the FSM message header can be parsed based on these parsing methods to obtain the traffic status information.
[0147] The subsequent MEP microcode software message processing method generates startup, shutdown or speed reduction events according to the obtained traffic status information, and sends the events to the VSCH logic module. The VSCH logic module schedules the corresponding new authorized traffic based on these events.
[0148] The software message processing method is a supplement to the hardware message processing method. Whether to enable the software message processing method is determined by global configuration. When the software message processing method is not enabled, the traffic status message is processed only by the hardware message processing method. After the software message processing method is enabled, the second processing method is determined based on the traffic status message, and then based on the second processing method, it is determined whether to process the traffic status message based on the hardware message processing method or the software message processing method.
[0149] In the above embodiment, a combination of software and hardware is adopted to provide both a VOQ-based credit allocation and usage mechanism and a flexible expansion capability based on MEP microcode, and the subsequent adjustment of FSM message after the upgrade is completed by software.
[0150] S404: Obtain traffic configuration information.
[0151] The traffic configuration information is used to characterize the total available traffic at the receiving end, where the receiving end can communicate with multiple sending ends, so the receiving end needs to allocate authorized traffic to multiple sending ends. If it is determined based on the traffic configuration information that there is no available traffic at the receiving end, the authorized traffic will not be allocated to the sending end, which effectively avoids congestion caused by insufficient processing capacity at the receiving end.
[0152] S406: Based on the traffic state information and the traffic configuration information, obtain the authorized traffic corresponding to the sending end.
[0153] Among them, the receiving end can obtain the authorized traffic corresponding to the sending end based on the traffic status information and traffic configuration information. For example, the receiving end allocates authorized traffic to the sending end based on its own bandwidth and processing capacity. It can only allocate traffic if it has the ability to process it, and will not allocate it if it does not have the ability. This effectively avoids congestion caused by insufficient processing capacity at the receiving end. In addition, the sending end sends task data based on the authorized traffic allocated by the receiving end. It will not send it if there is no authorized traffic, and will only send it when there is authorized traffic.
[0154] In one of the optional embodiments, based on the traffic status information and the traffic configuration information, the authorized traffic corresponding to the sending end is obtained, including: when the traffic status information is in a normal state, obtaining the first authorized traffic in the traffic configuration information as the authorized traffic corresponding to the sending end; when the traffic status information is in a first closed state, obtaining the first authorized traffic in the traffic configuration information, obtaining the second authorized traffic based on the first authorized traffic, and using the second authorized traffic as the authorized traffic corresponding to the sending end, and the second authorized traffic is less than the first authorized traffic; when the traffic status information is in a speed reduction state, determining the existing authorized traffic corresponding to the sending end based on the traffic status information, determining the target interval based on the relationship between the existing authorized traffic and the pre-configured threshold values, and determining the new authorized traffic corresponding to the sending end based on the authorized traffic configuration value corresponding to the target interval; when the traffic status information is not in a normal state, a first closed state, or a speed reduction state, obtaining the first authorized traffic in the traffic configuration information as the authorized traffic corresponding to the sending end.
[0155] Specifically, combined Figure 5 As shown, Figure 5The present invention is a flowchart of the receiving end traffic allocation steps in an embodiment. In this embodiment, when the receiving end is scheduled to a certain receiving queue, the receiving end allocates authorized traffic. Specifically, the receiving end allocates authorized traffic based on traffic status information and traffic configuration information, wherein the authorized traffic is obtained based on the traffic status information, and the traffic status information may include the existing authorized traffic corresponding to the current sending queue.
[0156] Specifically, when the receiving end determines that the traffic status information is in a normal state, the receiving end obtains the first authorized traffic in the traffic configuration information as the authorized traffic corresponding to the sending end, that is, the allocation speed of the authorized traffic is not changed; when the traffic status information is in the first closed state, the first authorized traffic in the traffic configuration information is obtained, and the second authorized traffic is obtained based on the first authorized traffic. The second authorized traffic is used as the authorized traffic corresponding to the sending end, and the second authorized traffic is smaller than the first authorized traffic. For example, the second authorized traffic can be one sixteenth of the first authorized traffic. In other embodiments, the relationship between the first authorized traffic and the second authorized traffic can also be other relationships, which are not specifically limited here.
[0157] When the traffic status information is in a speed reduction state, the existing authorized traffic corresponding to the sending end is determined based on the traffic configuration information, the target interval is determined based on the relationship between the existing authorized traffic and the threshold values in the traffic configuration information, and the new authorized traffic corresponding to the sending end is determined based on the authorized traffic configuration value corresponding to the target interval, wherein the threshold value may include multiple levels, for example, arranged from large to small, and if the existing authorized traffic is greater than the corresponding threshold value, then the new authorized traffic corresponding to the sending end is the original authorized traffic multiplied by the level weight value of the corresponding level, wherein the level weight value is inversely proportional to the threshold value.
[0158] When the traffic status information is not in the normal state, the first shutdown state, and the speed reduction state, the first authorized traffic in the traffic configuration information is obtained as the authorized traffic corresponding to the sender, that is, the generation speed of the authorized traffic corresponding to the sender is kept unchanged.
[0159] S408: Return the authorized traffic to the sender.
[0160] In one optional embodiment, obtaining the authorized flow corresponding to the sender based on the first flow state information and the flow configuration information includes: obtaining the authorized flow corresponding to the sender based on the flow state information and the flow configuration information by the scheduler; or obtaining the first authorized flow to be corrected by the scheduler based on the flow state information and the flow configuration information; sending the first authorized flow to be corrected to the microengine pool, and correcting the first authorized flow to be corrected by the microengines in the microengine pool to obtain the authorized flow corresponding to the sender. Or generating an authorized flow processing event based on the flow state information and the flow configuration information by the microengines in the microengine pool, and sending the authorized flow processing event to the scheduler, and generating the authorized flow corresponding to the sender based on the authorized flow processing event by the scheduler; or generating an authorized flow processing event based on the flow state information and the flow configuration information by the microengines in the microengine pool, and sending the authorized flow processing event to the scheduler, and generating the second authorized flow to be corrected corresponding to the sender based on the authorized flow processing event by the scheduler, sending the second authorized flow to be corrected to the microengine pool, and correcting the second authorized flow to be corrected by the microengines in the microengine pool to obtain the authorized flow corresponding to the sender.
[0161] In this embodiment, when the authorized traffic is distributed, it can be done through a hardware traffic distribution method or a software traffic distribution method.
[0162] For example, through the hardware traffic distribution method, the scheduler obtains the authorized traffic corresponding to the sending end based on the traffic status information and the traffic configuration information. For example, the VSCH (Voq scheduler) module maintains the information based on the receiving queue VOQ (virtual output queue structure) according to the configuration information and the FSM information, and schedules the authorized traffic according to the configuration.
[0163] Alternatively, it can be obtained through a combination of software and hardware, for example, a scheduler obtains a first authorized flow to be corrected based on the flow status information and the flow configuration information; the first authorized flow to be corrected is sent to a micro-engine pool, and the first authorized flow to be corrected is corrected by a micro-engine in the micro-engine pool to obtain an authorized flow corresponding to the sending end, wherein the correction method of the micro-engine can be to correct the first flow to be corrected based on the flow status information and the flow configuration information.
[0164] Or it can also be obtained through other software and hardware combined methods, for example, a micro-engine in a micro-engine pool generates an authorized traffic processing event based on traffic status information and traffic configuration information, and sends the authorized traffic processing event to a scheduler, and the scheduler generates a second authorized traffic to be corrected corresponding to the sending end based on the authorized traffic processing event, sends the second authorized traffic to be corrected to the micro-engine pool, and the micro-engine in the micro-engine pool corrects the second authorized traffic to be corrected to obtain the authorized traffic corresponding to the sending end.
[0165] In other embodiments, the processing can also be performed by a pure software traffic distribution method. Specifically, the micro-engine in the micro-engine pool generates an authorized traffic processing event based on the traffic status information and the traffic configuration information, and sends the authorized traffic processing event to the scheduler, and the scheduler generates the authorized traffic corresponding to the sending end based on the authorized traffic processing event.
[0166] In the above embodiment, the authorized traffic is allocated by the receiving end, and the receiving end allocates it to the sending end based on its own bandwidth and processing capacity. It can only allocate traffic if it has the capacity to process it, and will not allocate traffic if it does not have the capacity. This effectively avoids congestion caused by insufficient processing capacity at the receiving end. In addition, the network does not need to provide various types of congestion information: compared with the current congestion handling solutions such as DCQCN (Data Center Quantized Congestion Notification), the allocation of credits and the use of credits are completed at both ends, and the intermediate switch does not need to participate in the generation and forwarding of congestion information (such as the generation of ECN). It is completely decoupled from various intermediate networks and does not rely on the configuration and parameter adjustment of the intermediate switch. In addition, the software-hard combination flow control solution, compared with the current existing solutions, adopts a combination of software and hardware, which not only provides a credit allocation and use mechanism based on VOQ, but also provides a flexible expansion capability based on MEP microcode. The software completes the subsequent adjustment of FSM message upgrades.
[0167] For ease of understanding, combined Figure 6 As shown, Figure 6 This is a flowchart of a flow distribution method in an embodiment. In this embodiment, the sending end may include two tasks: the first is a data sending task, and the second is an authorized flow application task. The first data sending task is based on the authorized flow, that is, in the case of authorized flow, the task data is sent, and the corresponding authorized flow is deducted after the sending is completed. The second is an authorized flow application task, which is executed based on the first trigger condition. The first trigger condition can be specifically referred to above.
[0168] The sending end receives the data sending task sent by the system software, and then schedules a sending queue through the scheduling system, checks whether the sending queue can send the task data, and if it can be sent, that is, there is corresponding authorized traffic, then the task data is sent, and the corresponding authorized traffic is deducted after the sending is completed, otherwise the sending queue is returned to the scheduling queue and waits for the next scheduling.
[0169] In order to ensure that the sending queue can send messages when sending for the first time, the corresponding initial authorized flow is configured in the context of the sending queue corresponding to the sending queue, and the context of the subsequent sending queue also stores the authorized flow allocated by the receiving end.
[0170] The sender is responsible for generating traffic status information for the receiver, which can be represented by the traffic status message FSM. The sender controls the amount of authorized traffic generated by the receiver through the FSM message according to different algorithms and information. The sender determines the content of the FSM message based on QSIZE (traffic to be sent) and CREDIT_CNT (existing authorized traffic).
[0171] It should be noted that the flow status information may be generated in a variety of ways, such as Figure 6 In the embodiment, the hardware flow status information generation method 3 or the software flow status information generation method 3b is used, wherein the software flow status information generation method 3b is a backup of the hardware flow status information generation method 3, and whether to enable the software flow status information generation method 3b is determined by the global configuration.
[0172] Among them, the condition that triggers the sending end to generate traffic status information can be combined with the first trigger condition mentioned above. When it is detected that the first trigger condition is met, the sending end generates a traffic status message Credit req PKT (packt message) (RDMA message) based on the attributes of QP and sends it to the receiving end through the network.
[0173] After receiving the traffic status message, the receiving end supports two processing methods, namely hardware processing and software processing. For details, please refer to the above.
[0174] in, Figure 6 The software processing mode 5b is a backup of the hardware processing mode 5. Whether to enable the software processing mode 5b is determined by the global configuration.
[0175] It should be noted that the receiving end may also be triggered based on a trigger condition when allocating authorized traffic. For example, when the receiving end is scheduled to the receiving queue corresponding to the corresponding sending queue, the authorized traffic allocation to the sending queue is triggered accordingly.
[0176] The VSCH logic module at the receiving end supports two ways of generating authorized traffic, namely, credit processing methods, including hardware processing methods and software processing methods. For details, please refer to the above.
[0177] in, Figure 6 The software processing mode 6b is a backup of the hardware processing mode 6. Whether to enable the software processing mode 6b is determined by the global configuration.
[0178] After generating the authorized traffic, the receiving end generates an authorized traffic message Credit grant PKT (RDMA message) and sends it to the sending end through the network.
[0179] After the sender receives the authorized traffic message, it supports two processing methods, namely hardware processing and software processing. For details, please refer to the above.
[0180] in Figure 6 The software processing mode 8b is a backup of the hardware processing mode 8, and whether to enable the software processing mode 8b is determined by the global configuration.
[0181] In the above embodiment, the hardware generates and maintains the sender credit (CREDIT) based on the destination bandwidth situation, and allocates credit (Credit) to the sender based on the receiving end. The sender sends the message according to the allocated credit. It can only send if there is credit, and it cannot send if there is no credit. Bandwidth is allocated based on the end-side export processing capacity. Credit (Credit) is allocated by the receiving end. The receiving end allocates to the sending port based on its own bandwidth and processing capacity. It can only allocate if it has the ability to process. If it does not have the ability, it will not allocate. This effectively avoids the congestion caused by insufficient processing capacity at the receiving end. There is no need for the network to provide various congestion information. Compared with the current congestion processing solutions such as DCQCN, the allocation of credit and the use of credit are completed at both ends. There is no need for the intermediate switch to participate in the generation and forwarding of congestion information (such as the generation of ECN). It is completely decoupled from various intermediate networks and does not rely on the configuration and parameter adjustment of the intermediate switch. The combination of soft and hard flow control solutions not only provides a line-speed VOQ-based credit allocation and use mechanism, but also provides a flexible expansion capability based on MEP microcode. The software completes the subsequent adjustment of FSM message upgrades.
[0182] It should be understood that, although the steps in the flowcharts involved in the above embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps is not strictly limited in order, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above embodiments may include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.
[0183] Based on the same inventive concept, the embodiment of the present application also provides a flow control device for implementing the flow control method involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in one or more flow control device embodiments provided below can refer to the limitations of the flow control method above, and will not be repeated here.
[0184] In an exemplary embodiment, Figure 7 As shown, a flow control device is provided, including: a flow state information generating module 701, a first flow distribution module 702 and a data sending module 703, wherein:
[0185] The flow state information generating module 701 is used to generate flow state information;
[0186] A first traffic allocation module 702, configured to send traffic status information to a receiving end, wherein the traffic status information is used to instruct the receiving end to allocate authorized traffic to the sending end;
[0187] The data sending module 703 is used to receive the authorized flow allocated by the receiving end, and send the task data based on the authorized flow in the sending end.
[0188] In one of the optional embodiments, the above-mentioned traffic status information generation module 701 is specifically used to obtain the to-be-sent traffic and the existing authorized traffic of the current sending queue when the first trigger condition is met; and generate traffic status information based on the to-be-sent traffic and the existing authorized traffic.
[0189] In one of the optional embodiments, the above-mentioned traffic status information generation module 701 is specifically used to obtain the current status threshold according to a preset comparison order when the traffic to be sent is not a preset value; obtain a comparison result based on the current status threshold and the target indicator, the target indicator is the allocation speed of existing authorized traffic, unauthorized traffic or new authorized traffic allocated to the current sending queue, and the unauthorized traffic is the difference between the traffic to be sent and the existing authorized traffic; when the comparison result meets the preset conditions, generate traffic status information based on the comparison result; when the comparison result does not meet the preset conditions, obtain the next status threshold as the current status threshold according to the preset comparison order, and continue to execute the steps of obtaining the comparison result based on the current status threshold and the target indicator until the traffic status information is generated.
[0190] In one of the optional embodiments, the above-mentioned traffic status information generation module 701 is specifically used to detect whether the existing authorized traffic is greater than the closed state threshold when the traffic to be sent is not a preset value; when the existing authorized traffic is greater than the closed state threshold, generate traffic status information for stopping the allocation of new authorized traffic to the current sending queue; when the existing authorized traffic is less than or equal to the closed state threshold, detect whether the existing authorized traffic is greater than the first deceleration state threshold; when the existing authorized traffic is greater than the first deceleration state threshold, generate traffic status information for reducing the allocation speed of new authorized traffic to the current sending queue; when the existing authorized traffic is less than or equal to the normal state threshold, obtain unauthorized traffic based on the difference between the traffic to be sent and the existing authorized traffic, and detect whether the unauthorized traffic is greater than the normal state threshold; when the unauthorized traffic is greater than the normal state threshold, generate the setting The flow state information that the allocation speed of the new authorized traffic of the current sending queue is the target speed; when the unauthorized traffic is less than or equal to the normal state threshold, detecting whether the unauthorized traffic is less than the second deceleration state threshold; when the unauthorized traffic is less than the second deceleration state threshold, generating flow state information for reducing the allocation speed of the new authorized traffic allocated to the current sending queue; when the unauthorized traffic is not less than the second deceleration state threshold, detecting whether the allocation speed of the new authorized traffic allocated to the current sending queue is equal to the target speed; when the allocation speed of the new authorized traffic allocated to the current sending queue is equal to the target speed, generating flow state information for setting the allocation speed of the new authorized traffic of the current sending queue to the target speed; when the allocation speed of the new authorized traffic allocated to the current sending queue is not equal to the target speed, generating flow state information for reducing the allocation speed of the new authorized traffic allocated to the current sending queue.
[0191] In one of the optional embodiments, the above-mentioned traffic status information generation module 701 is specifically used to detect whether the existing authorized traffic is greater than the empty traffic threshold when the traffic to be sent is a preset value; when the existing authorized traffic is greater than the empty traffic threshold, generate traffic status information to stop allocating new authorized traffic to the current sending queue; when the existing authorized traffic is not greater than the empty traffic threshold, generate traffic status information to reduce the allocation speed of new authorized traffic to the current sending queue.
[0192] In one of the optional embodiments, the first trigger condition includes at least one of scheduling a new sending queue, hanging back the sending queue, and applying for authorized traffic from the receiving end.
[0193] In one of the optional embodiments, the above-mentioned traffic state information generation module 701 is specifically used to generate traffic state information through any of the following methods: generating traffic state information through a hardware traffic state generation method; or determining the generation method of the traffic state information, and generating the traffic state information based on the generation method, the generation method is a generation method through a hardware traffic state information generation module or a software method, the hardware traffic state information generation method is to generate traffic state information through a hardware traffic state generation module; the software method is to send a traffic state information generation event to the micro-engine pool, and generate traffic state information through the micro-engines in the micro-engine pool.
[0194] In one of the optional embodiments, the above-mentioned device also includes: an update module, which is used to update the local authorized traffic in any of the following ways: updating the local authorized traffic based on the authorized traffic allocated by the receiving end through a hardware update method; or determining a first processing method based on the message corresponding to the authorized traffic allocated by the receiving end, and updating the local authorized traffic based on the authorized traffic allocated by the receiving end through the determined first processing method, wherein the first processing method includes a hardware update method or a software update method, wherein the hardware update method is to obtain and parse the authorized traffic allocated by the receiving end in the current receiving queue through a hardware processing module, and update the authorized traffic to the context of the current sending queue; the software update method is to obtain and parse the authorized traffic allocated by the receiving end in the current receiving queue through a micro-engine in a micro-engine pool, and update the parsed authorized traffic to the context of the current sending queue.
[0195] In one of the optional embodiments, the above-mentioned device also includes: a task processing module, used to receive a data sending task and determine a sending queue corresponding to the data sending task; when there is corresponding authorized traffic in the sending queue, sending task data corresponding to the data sending task through the authorized traffic; when there is no corresponding authorized traffic in the sending queue, hanging back the sending queue to the scheduling queue and waiting for the next scheduling.
[0196] In an exemplary embodiment, Figure 8 As shown, a flow control device is provided, including: a receiving module 801, a flow configuration information acquisition module 802, a second flow distribution module 803 and a flow sending module 804, wherein:
[0197] The receiving module 801 is used to receive the flow status information sent by the sending end;
[0198] The flow configuration information acquisition module 802 is used to acquire flow configuration information;
[0199] The second traffic allocation module 803 is used to obtain the authorized traffic corresponding to the sending end based on the traffic state information and the traffic configuration information;
[0200] The traffic sending module 804 is used to return the authorized traffic to the sending end.
[0201] In one of the optional embodiments, the above-mentioned second traffic allocation module 803 is specifically used to, when the traffic status information is in a normal state, obtain the first authorized traffic in the traffic configuration information as the authorized traffic corresponding to the sending end; when the traffic status information is in a first closed state, obtain the first authorized traffic in the traffic configuration information, obtain the second authorized traffic based on the first authorized traffic, and use the second authorized traffic as the authorized traffic corresponding to the sending end, and the second authorized traffic is less than the first authorized traffic; when the traffic status information is a speed reduction state, determine the existing authorized traffic corresponding to the sending end based on the traffic status information, determine the target interval based on the relationship between the existing authorized traffic and the threshold values in the traffic configuration information, and determine the new authorized traffic corresponding to the sending end based on the authorized traffic configuration value corresponding to the target interval; when the traffic status information is not in a normal state, a first closed state, and a speed reduction state, obtain the first authorized traffic in the traffic configuration information as the authorized traffic corresponding to the sending end.
[0202] In one of the optional embodiments, the above-mentioned receiving module 801 is specifically used to receive the traffic status message in any one of the following ways: receiving the traffic status message sent by the sending end, and identifying the traffic status message through the hardware message processing method to obtain the traffic status information; or receiving the traffic status message sent by the sending end, determining the second processing method based on the type of the traffic status message, identifying the traffic status message through the second processing method to obtain the traffic status information, the second processing method including the hardware message processing method or the software message processing method, wherein the hardware message processing method is to parse the traffic status message through the scheduler to obtain the traffic status information; the software message processing method is to parse the traffic status message through the micro-engine in the micro-engine pool to obtain the traffic status information, and send the traffic status information to the scheduler.
[0203] In one of the optional embodiments, the second traffic distribution module 803 is specifically used to obtain the authorized traffic corresponding to the sending end in any of the following ways, including: obtaining the authorized traffic corresponding to the sending end based on the traffic status information and the traffic configuration information by the scheduler; or obtaining the first authorized traffic to be corrected based on the traffic status information and the traffic configuration information by the scheduler; sending the first authorized traffic to be corrected to the microengine pool, and correcting the first authorized traffic to be corrected by the microengines in the microengine pool to obtain the authorized traffic corresponding to the sending end; or generating the authorized traffic corresponding to the sending end by the microengines in the microengine pool based on the traffic status information and the traffic configuration information. An authorized flow processing event is generated by a microengine in a microengine pool based on the flow status information and the flow configuration information, and the authorized flow processing event is sent to a scheduler, and a second authorized flow to be corrected corresponding to the sender is generated by the scheduler based on the authorized flow processing event, and the second authorized flow to be corrected is sent to the microengine pool, and the microengine in the microengine pool corrects the second authorized flow to be corrected to obtain the authorized flow corresponding to the sender.
[0204] Each module in the above-mentioned flow control device can be implemented in whole or in part by software, hardware or a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute the operations corresponding to each module above.
[0205] In an exemplary embodiment, a computer device is provided. The computer device may be a terminal, and its internal structure diagram may be as shown in FIG. Fig. 9As shown. The computer device includes a processor, a memory, an input / output interface, a communication interface, a display unit and an input device. Among them, the processor, the memory and the input / output interface are connected through a system bus, and the communication interface, the display unit and the input device are connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The input / output interface of the computer device is used to exchange information between the processor and the external device. The communication interface of the computer device is used to communicate with an external terminal in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, NFC (near field communication) or other technologies. When the computer program is executed by the processor, a flow control method is implemented. The display unit of the computer device is used to form a visually visible picture, which can be a display screen, a projection device or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen, and the input device of the computer device can be a touch layer covering the display screen, or a button, trackball or touchpad set on the computer device shell, or an external keyboard, touchpad or mouse.
[0206] Those skilled in the art will understand that Fig. 9 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.
[0207] In one embodiment, a chip is also provided, such as a data processor (DPU) chip, which includes a memory and a processor. The memory stores a computer program, and the processor implements the steps in the above method embodiments when executing the computer program.
[0208] In one embodiment, a network interface card (NIC) is also provided, which includes the chip as described in the above embodiment and multiple interfaces, such as PCI / PCIE interface, network interface, etc., and the chip communicates externally through the interface.
[0209] In one embodiment, a computer device is also provided, which includes a central processing unit and a chip as described in the above embodiment, wherein the chip is used to dispatch messages to the central processing unit or the chip itself for processing, and the central processing unit is used to process the messages dispatched by the chip.
[0210] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps in the above-mentioned method embodiments are implemented.
[0211] In one embodiment, a computer program product is provided, including a computer program, which implements the steps in the above method embodiments when executed by a processor.
[0212] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but are not limited to this.
[0213] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0214] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.
Claims
1. A flow control method, characterized in that: Applied to the sending end, the method includes: generating flow status information; Sending the flow status information to a receiving end, wherein the flow status information is used to instruct the receiving end to allocate authorized flow to the sending end; The authorized flow allocated by the receiving end is received, and task data is sent based on the authorized flow in the sending end.
2. The method according to claim 1, characterized in that The generating of the flow status information comprises: When the first trigger condition is met, the to-be-sent traffic and the existing authorized traffic in the current sending queue are obtained; The flow status information is generated based on the flow to be sent and the existing authorized flow.
3. The method according to claim 2, characterized in that The generating flow state information based on the flow to be sent and the existing authorized flow includes: When the traffic to be sent is not a preset value, obtaining a current state threshold value according to a preset comparison order; A comparison result is obtained based on the current state threshold and a target indicator, wherein the target indicator is an allocation speed of the existing authorized traffic, the unauthorized traffic, or the current sending queue to allocate new authorized traffic, and the unauthorized traffic is a difference between the traffic to be sent and the existing authorized traffic; When the comparison result meets a preset condition, generating flow status information based on the comparison result; When the comparison result does not meet the preset conditions, the next state threshold is obtained as the current state threshold according to the preset comparison order, and the step of obtaining the comparison result based on the current state threshold and the target indicator is continued until the traffic state information is generated.
4. The method according to claim 2, characterized in that: The generating flow state information based on the flow to be sent and the existing authorized flow includes: When the to-be-sent traffic is not a preset value, detecting whether the existing authorized traffic is greater than a closed state threshold; When the existing authorized traffic is greater than the closed state threshold, generating traffic state information for stopping allocating new authorized traffic to the current sending queue; When the existing authorized flow rate is less than or equal to the closed state threshold, detecting whether the existing authorized flow rate is greater than a first deceleration state threshold; When the existing authorized traffic is greater than the first deceleration state threshold, generating traffic state information for reducing the speed of allocating new authorized traffic to the current sending queue; When the existing authorized traffic is less than or equal to the first deceleration state threshold, obtaining unauthorized traffic based on the difference between the to-be-sent traffic and the existing authorized traffic, and detecting whether the unauthorized traffic is greater than a normal state threshold; When the unauthorized traffic is greater than the normal state threshold, generating traffic state information for setting the allocation speed of the new authorized traffic of the current sending queue to the target speed; When the unauthorized traffic is less than or equal to the normal state threshold, detecting whether the unauthorized traffic is less than a second deceleration state threshold; When the unauthorized traffic is less than the second deceleration state threshold, generating traffic state information for reducing the speed of allocating new authorized traffic to the current sending queue; When the unauthorized traffic is not less than the second deceleration state threshold, detecting whether the allocation speed of the new authorized traffic allocated by the current sending queue is equal to the target speed; The allocation speed of the new authorized traffic in the current sending queue is equal to the target speed, and the traffic state information for setting the allocation speed of the new authorized traffic in the current sending queue to the target speed is generated; The allocation speed of the new authorized traffic allocated to the current sending queue is not equal to the target speed, and traffic state information for reducing the allocation speed of the new authorized traffic allocated to the current sending queue is generated.
5. The method according to claim 3, characterized in that: The generating flow state information based on the flow to be sent and the existing authorized flow includes: When the traffic to be sent is a preset value, detecting whether the existing authorized traffic is greater than an empty traffic threshold; When the existing authorized traffic is greater than the empty traffic threshold, generating traffic state information for stopping allocating new authorized traffic to the current sending queue; When the existing authorized traffic is not greater than the empty traffic threshold, traffic state information for reducing the speed of allocating new authorized traffic to the current sending queue is generated.
6. The method according to any one of claims 2 to 5, characterized in that: The first trigger condition includes at least one of scheduling a new sending queue, hanging back the sending queue, and applying for authorized traffic from the receiving end.
7. The method according to any one of claims 1 to 5, characterized in that: The generating of the flow status information comprises: Generate traffic status information by hardware traffic status information generation method; or Determine a method for generating flow status information, and generate flow status information based on the generation method. The generation method is through a hardware flow status information generation method or a software method. The hardware flow status information generation method is to generate flow status information through a hardware flow status generation module; the software method is to send a flow status information generation event to a microengine pool, and generate flow status information through a microengine in the microengine pool.
8. The method according to any one of claims 1 to 5, characterized in that: After receiving the authorized traffic allocated by the receiving end, the method further includes: Updating the local authorized traffic based on the authorized traffic allocated by the receiving end by means of hardware update; or Based on the message corresponding to the authorized traffic allocated by the receiving end, a first processing method is determined, and the local authorized traffic is updated based on the authorized traffic allocated by the receiving end through the determined first processing method, wherein the first processing method includes a hardware update method or a software update method, wherein the hardware update method is to obtain and parse the authorized traffic allocated by the receiving end in the current receiving queue through a hardware processing module, and update the authorized traffic to the context of the current sending queue; the software update method is to obtain and parse the authorized traffic allocated by the receiving end in the current receiving queue through a micro-engine in a micro-engine pool, and update the parsed authorized traffic to the context of the current sending queue.
9. The method according to any one of claims 1 to 5, characterized in that: The method further comprises: Receive a data sending task, and determine a sending queue corresponding to the data sending task; In a case where the sending queue has corresponding authorized traffic, sending the task data corresponding to the data sending task through the sending queue based on the authorized traffic; In the case that the sending queue does not have corresponding authorized traffic, the sending queue is returned to the scheduling queue to wait for the next scheduling.
10. A flow control method, characterized in that: Applied to the receiving end, the method comprises: Receive traffic status information sent by the sender; Get traffic configuration information; Based on the flow state information and the flow configuration information, obtaining the authorized flow corresponding to the sending end; The authorized traffic is returned to the sending end.
11. The method according to claim 10, characterized in that The obtaining, based on the flow state information and the flow configuration information, the authorized flow corresponding to the sending end, includes: When the flow status information is in a normal state, obtaining the first authorized flow in the flow configuration information as the authorized flow corresponding to the sending end; When the traffic state information is in the first closed state, obtaining a first authorized traffic in the traffic configuration information, obtaining a second authorized traffic based on the first authorized traffic, and using the second authorized traffic as the authorized traffic corresponding to the sending end, and the second authorized traffic is less than the first authorized traffic; In the case where the traffic state information is in a speed reduction state, determining an existing authorized traffic corresponding to the sending end based on the traffic state information, determining a target interval based on a relationship between the existing authorized traffic and each threshold value in the traffic configuration information, and determining a new authorized traffic corresponding to the sending end based on the authorized traffic configuration value corresponding to the target interval; When the traffic state information is not in a normal state, a first shutdown state, or a speed reduction state, the first authorized traffic in the traffic configuration information is obtained as the authorized traffic corresponding to the sending end.
12. The method according to claim 10, characterized in that The receiving end sends the traffic status information, including: Receive a flow status message sent by a sending end, and identify the flow status message through a hardware message processing method to obtain flow status information; or Receive a traffic status message sent by a sending end, determine a second processing method based on the type of the traffic status message, identify the traffic status message through the second processing method to obtain traffic status information, the second processing method includes a hardware message processing method or a software message processing method, wherein the hardware message processing method is to parse the traffic status message through a scheduler to obtain the traffic status information; the software message processing method is to parse the traffic status message through a micro-engine in a micro-engine pool to obtain the traffic status information, and send the traffic status information to the scheduler.
13. The method according to claim 10, characterized in that The obtaining, based on the flow state information and the flow configuration information, the authorized flow corresponding to the sending end, includes: Obtaining, by a scheduler, the authorized flow corresponding to the sending end based on the flow state information and the flow configuration information; or Obtaining, by a scheduler, a first authorized flow to be corrected based on the flow state information and the flow configuration information; sending the first authorized flow to be corrected to a microengine pool, and correcting the first authorized flow to be corrected by a microengine in the microengine pool to obtain an authorized flow corresponding to the sending end; or Generate an authorized traffic processing event based on the traffic state information and the traffic configuration information by a microengine in a microengine pool, send the authorized traffic processing event to a scheduler, and generate authorized traffic corresponding to the sending end based on the authorized traffic processing event by the scheduler; or An authorized traffic processing event is generated by a microengine in a microengine pool based on the traffic status information and the traffic configuration information, and the authorized traffic processing event is sent to a scheduler. A second authorized traffic to be corrected corresponding to the sending end is generated by the scheduler based on the authorized traffic processing event, and the second authorized traffic to be corrected is sent to the microengine pool. The second authorized traffic to be corrected is corrected by the microengine in the microengine pool to obtain the authorized traffic corresponding to the sending end.
14. A flow control device, characterized in that: The device comprises: A flow status information generating module, used for generating flow status information; A first traffic allocation module, used for sending the traffic status information to a receiving end, wherein the traffic status information is used for instructing the receiving end to allocate authorized traffic to the sending end; The data sending module is used to receive the authorized flow allocated by the receiving end, and send task data based on the authorized flow in the sending end.
15. A flow control device, characterized in that: The device comprises: A receiving module, used for receiving the flow status information sent by the sending end; A flow configuration information acquisition module is used to acquire flow configuration information; A second traffic allocation module, configured to obtain the authorized traffic corresponding to the sending end based on the traffic state information and the traffic configuration information; The traffic sending module is used to return the authorized traffic to the sending end.
16. A chip comprising a memory and a processor, wherein the memory stores a computer program, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 9 or 10 to 13 are implemented.
17. A network interface card, characterized in that: It comprises the chip as claimed in claim 16 and a plurality of interfaces, and the chip communicates externally through the interfaces.
18. A computer device, characterized in that: It comprises a central processing unit and a chip as claimed in claim 16, wherein the chip is used to dispatch messages to the central processing unit or the chip itself for processing, and the central processing unit is used to process the messages dispatched by the chip.
19. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 9 or 10 to 13 are implemented.
20. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 9 or 10 to 13 are implemented.
Citation Information
Cited By
Flow control method, device and equipment
CN121418360A
Flow control method, apparatus and device
CN121418360B
Flow control method and apparatus, chip, network interface card, computer device, storage medium, and computer program product
WO2026040804A1
