Data transmission method and device, electronic equipment, storage medium and program product

By submitting data quota applications to the receiving end and dynamically managing data quotas, the problem of underutilization of receiving end resources is solved, and efficient use of resources and reduced waste are achieved.

CN120710941APending Publication Date: 2025-09-26TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 3 Cited by

Patent Information

Application Number
CN202411396633.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-30
Publication Date
2025-09-26

AI Technical Summary

Technical Problem

In the prior art, due to data resource allocation delay at the receiving end or mismatch in the capabilities of the transmitting and receiving ends during the transmission process, data resources at the receiving end are not fully utilized, resulting in waste of data resources at the receiving end during the transmission process.

Method used

By submitting a data quota application to the receiving end, the receiving end dynamically allocates the data quota based on the application information and updates it to the data transmission queue, dynamically managing the use of the data quota to reduce resource waste.

Benefits of technology

Effectively manage and allocate data resources at the receiving end, reduce resource waste, and improve resource utilization during transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120710941A_ABST
    Figure CN120710941A_ABST
Patent Text Reader

Abstract

The invention discloses a data transmission method and device, electronic equipment, a storage medium and a program product. The method comprises the following steps: determining a to-be-sent data volume quota application; sending the to-be-sent data volume quota application to a receiving end, so that the receiving end determines a data volume quota and issues the data volume quota based on application information carried by the to-be-sent data volume quota application; distributing the data volume quota issued by the receiving end to a data transmission queue corresponding to the to-be-sent data volume quota application, so as to update the data volume quota balance of the data transmission queue corresponding to the to-be-sent data volume quota application, and obtaining the updated data volume quota balance; and through a data transmission queue corresponding to a to-be-sent data volume quota application, transmitting a data stream to a receiving end based on the updated data volume quota balance. According to the invention, the receiving end can dynamically allocate a proper amount of data volume quota according to actual needs, and the data resource waste of the receiving end in the transmission process is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a data transmission method, device, electronic device, storage medium, and program product. Background Art

[0002] Congestion control problems occur widely in different scenarios. For example, this problem occurs when multiple distributed nodes in a network try to use shared resources. In the existing technology, active congestion control methods such as pHost, ExpressPass, NDP, Homa, etc. are usually used to solve congestion problems. These methods distribute the data resources of the receiving end during the transmission process, such as signaling (credit), to the sending end. Only after the sending end has the signaling can it send a message of corresponding size to the receiving end according to the size of the signaling authorization. Among them, the way the receiving end triggers the signaling distribution in different methods is different. For example, there are generally two ways: the receiving end sends a signaling every time it receives a data packet, or the sending end sends an application first, and the receiving end distributes the signaling to the sending end after receiving the application.

[0003] However, in the prior art, due to reasons such as the delay in data resource allocation at the receiving end during transmission or the mismatch in the capabilities of the transmitting and receiving ends, the data resources at the receiving end are easily not fully utilized, resulting in waste of data resources at the receiving end during transmission. Summary of the Invention

[0004] Embodiments of the present application provide a data transmission method, apparatus, electronic device, storage medium, and program product, which can reduce the waste of data resources at the receiving end during the transmission process.

[0005] An embodiment of the present application provides a data transmission method, including: determining a data volume quota application to be sent, the data volume quota application to be sent is used by a corresponding data transmission queue to apply to a receiving end for a data volume quota for transmitting a data stream, and the data volume quota application to be sent carries application information related to the data volume quota; sending the data volume quota application to be sent to the receiving end, so that the receiving end determines the data volume quota and issues the data volume quota based on the application information carried by the data volume quota application to be sent; allocating the data volume quota issued by the receiving end to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent, and obtain an updated data volume quota balance; and transmitting the data stream to the receiving end based on the updated data volume quota balance through the data transmission queue corresponding to the data volume quota application to be sent.

[0006] An embodiment of the present application provides a data transmission method, including: receiving a data volume quota application to be sent by a sending end, the data volume quota application to be sent is used by a corresponding data transmission queue to apply to the receiving end for a data volume quota for transmitting a data stream, and the data volume quota application to be sent carries application information related to the data volume quota; determining the data volume quota based on the application information carried by the data volume quota application to be sent; issuing the data volume quota to the sending end so that the sending end allocates the issued data volume quota to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent and obtain an updated data volume quota balance; receiving the data stream transmitted by the sending end to the receiving end through the data transmission queue corresponding to the data volume quota application to be sent based on the updated data volume quota balance.

[0007] An embodiment of the present application also provides a data transmission device, including: an application determination unit, used to determine a data volume quota application to be sent, the data volume quota application to be sent is used by a corresponding data transmission queue to apply to a receiving end for a data volume quota for transmitting a data stream, and the data volume quota application to be sent carries application information related to the data volume quota; an application sending unit, used to send the data volume quota application to be sent to the receiving end, so that the receiving end determines the data volume quota and issues the data volume quota based on the application information carried by the data volume quota application to be sent; a quota allocation unit, used to allocate the data volume quota issued by the receiving end to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent and obtain an updated data volume quota balance; a data transmission unit, used to transmit the data stream to the receiving end based on the updated data volume quota balance through the data transmission queue corresponding to the data volume quota application to be sent.

[0008] In some embodiments, the application information includes an application status of the data quota application to be sent, and the data transmission device further includes an application status determination unit, wherein the application status determination unit is configured to: determine a current application status of the data quota application corresponding to the data transmission queue based on a queue length of the data transmission queue and the data quota balance of the data transmission queue;

[0009] The application determination unit is specifically used to: when the current application status is different from the application status carried by the data quota application, use the data quota application as the data quota application to be sent, and use the current application status as the application status carried by the data quota application to be sent.

[0010] In some embodiments, the current application status of the data volume quota application corresponding to the data transmission queue is determined based on the queue length of the data transmission queue and the data volume quota balance of the data transmission queue, including: when the difference between the queue length of the data transmission queue and the data volume quota balance of the data transmission queue is greater than or equal to a preset threshold, the first application status is used as the current application status; when the difference between the queue length of the data transmission queue and the data volume quota balance of the data transmission queue is less than the preset threshold, the second application status is used as the current application status, and the data volume quota corresponding to the first application status is greater than the data volume quota corresponding to the second application status.

[0011] In some embodiments, the application information includes information requesting a data quota, and the data transmission apparatus further includes a quota adding unit, configured to: add the information requesting a data quota to the data quota application corresponding to the data transmission queue;

[0012] The application determination unit is specifically configured to: based on a bandwidth-delay product, use the data quota application as the data quota application to be sent.

[0013] In some embodiments, the data transmission device also includes an application management unit, which is used to: send a transmission notification to the data volume quota management component based on a data transmission signal, wherein the data transmission signal includes at least one of an enqueue signal of any of the data transmission queues and a data transmission trigger signal; based on the transmission notification, the data volume quota management component stores the data volume quota application corresponding to any of the data transmission queues into a scheduling queue to schedule the data volume quota application from the scheduling queue as the data volume quota application to be sent.

[0014] An embodiment of the present application also provides a data transmission device, including: an application receiving unit, used to receive a data volume quota application to be sent by a sending end, the data volume quota application to be sent is used for the corresponding data transmission queue to apply to the receiving end for a data volume quota for transmitting a data stream, and the data volume quota application to be sent carries application information related to the data volume quota; a quota determining unit, used to determine the data volume quota based on the application information carried by the data volume quota application to be sent; a quota sending unit, used to issue the data volume quota to the sending end, so that the sending end allocates the issued data volume quota to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent, and obtain an updated data volume quota balance; a data receiving unit, used to receive the data stream transmitted by the sending end to the receiving end through the data transmission queue corresponding to the data volume quota application to be sent based on the updated data volume quota balance.

[0015] In some embodiments, the data transmission device further includes a total data quota determination unit, wherein the total data quota determination unit is configured to: determine the total data quota of the receiving end according to the congestion information and the receiving capability of the receiving end;

[0016] The quota determination unit is specifically configured to determine, from the total data quota, the data quota corresponding to the application information carried by the data quota application to be sent based on the queue priority of the data transmission queue corresponding to the data quota application to be sent.

[0017] An embodiment of the present application also provides an electronic device, including a processor and a memory, wherein the memory stores multiple instructions; the processor loads instructions from the memory to execute the steps in any one of the data transmission methods provided in the embodiments of the present application.

[0018] An embodiment of the present application also provides a computer-readable storage medium, which stores a plurality of instructions, and the instructions are suitable for loading by a processor to execute the steps in any one of the data transmission methods provided in the embodiments of the present application.

[0019] An embodiment of the present application further provides a computer program product, including a computer program or instructions, which, when executed by a processor, implements the steps of any one of the data transmission methods provided in the embodiments of the present application.

[0020] The present application can determine a data volume quota application to be sent, the data volume quota application to be sent is used by the corresponding data transmission queue to apply to the receiving end for a data volume quota for transmitting a data stream, and the data volume quota application to be sent carries application information related to the data volume quota; the data volume quota application to be sent is sent to the receiving end, so that the receiving end determines the data volume quota and issues the data volume quota based on the application information carried by the data volume quota application to be sent; the data volume quota issued by the receiving end is allocated to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent, and obtain an updated data volume quota balance; and the data stream is transmitted to the receiving end based on the updated data volume quota balance through the data transmission queue corresponding to the data volume quota application to be sent.

[0021] In this application, a data quota application is submitted to the receiving end to request the issuance of a data quota. The receiving end then determines the desired data quota based on the application information in the received application and issues the data quota. This allows the receiving end to dynamically allocate an appropriate amount of data quota based on actual needs, reducing the waste of data resources at the receiving end during transmission. Furthermore, by updating the data quota issued by the receiving end to the data transmission queue, the remaining data quota can be effectively managed and allocated, allowing for timely management of data quota usage, reducing unnecessary applications, and reducing the waste of data resources at the receiving end. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For those skilled in the art, other drawings can be obtained based on these drawings without creative work.

[0023] Figure 1a This is a schematic diagram of a scenario of a data transmission method provided in an embodiment of the present application;

[0024] Figure 1b Schematic diagram of the data transmission method according to the embodiment of the present invention;

[0025] Figure 1c This is a flowchart of applying for a data quota according to an embodiment of the present application;

[0026] Figure 1d This is a schematic diagram of an application scenario of multiple sending ends and receiving ends provided in an embodiment of the present application;

[0027] Figure 1eThis is another flowchart of applying for a data quota provided in an embodiment of the present application;

[0028] Figure 1f This is a schematic diagram of another process for applying for a data quota provided in an embodiment of the present application;

[0029] Figure 2 is a flowchart of a data transmission method provided by another embodiment of the present application;

[0030] Figure 3a is a schematic diagram of a data transmission system provided in an embodiment of the present application;

[0031] Figure 3b is a flowchart of a data transmission method provided by another embodiment of the present application;

[0032] Figure 3c Schematic diagram of the optimization effect of throughput performance and latency performance provided by the embodiment of the present application;

[0033] Figure 3d This is a schematic diagram of the optimization effect of fairness provided by the embodiment of the present application;

[0034] Figure 3e This is a schematic diagram of the optimization effect of the whole network communication performance provided by the embodiment of the present application;

[0035] Figure 4 is a structural diagram of a data transmission device provided in an embodiment of the present application;

[0036] Figure 5 is a structural diagram of a data transmission device provided by another embodiment of the present application;

[0037] Figure 6 It is a structural diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0038] The following will be combined with the drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without making creative efforts are within the scope of protection of this application.

[0039] Embodiments of the present application provide a data transmission method, apparatus, electronic device, storage medium, and program product.

[0040] The data transmission device may be integrated into an electronic device, such as a terminal or a server. The terminal may be a mobile phone, tablet computer, smart Bluetooth device, laptop computer, or personal computer (PC); the server may be a single server or a server cluster consisting of multiple servers.

[0041] In some embodiments, the data transmission device can also be integrated into multiple electronic devices. For example, the data transmission device can be integrated into multiple servers, and the data transmission method of the present application can be implemented by multiple servers.

[0042] In some embodiments, the terminal may also function as a server, implementing some or all of the server's functions.

[0043] For example, reference Figure 1a The data transmission method can be integrated in a server at the sending end, and the server can determine a data quota application to be sent, and the data quota application to be sent is used for a corresponding data transmission queue to apply to the receiving end for a data quota for transmitting a data stream, and the data quota application to be sent carries application information related to the data quota; the data quota application to be sent is sent to the receiving end, so that the receiving end determines the data quota and issues the data quota based on the application information carried by the data quota application to be sent; the data quota issued by the receiving end is allocated to the data transmission queue corresponding to the data quota application to be sent, so as to update the data quota balance of the data transmission queue corresponding to the data quota application to be sent, and obtain an updated data quota balance; the data stream is transmitted to the receiving end based on the updated data quota balance through the data transmission queue corresponding to the data quota application to be sent.

[0044] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program that has a predetermined function and works together with other related parts to achieve a predetermined goal, and can be implemented in whole or in part by using software, hardware (such as processing circuits or memories) or a combination thereof. Similarly, a processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be part of an overall module or unit that includes the function of the module or unit.

[0045] The following are detailed descriptions. It should be noted that the order of the following embodiments does not limit the preferred order of the embodiments. It is understood that in the specific implementation of this application, when it involves user-related data such as data streams, when the embodiments of this application are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of the relevant countries and regions.

[0046] In this embodiment, a data transmission method is provided, such as Figure 1b As shown, the specific process of the data transmission method can be as follows:

[0047] 110. Determine a data quota application to be sent. The data quota application to be sent is used by a corresponding data transmission queue to apply to a receiving end for a data quota for transmitting a data flow. The data quota application to be sent carries application information related to the data quota.

[0048] A data stream refers to a continuous sequence of data or data packets transmitted over a network. It can be audio, video, files, or other forms of data, which are transmitted from a source (i.e., a sender) to a receiver over a network. In embodiments of the present application, a data stream can be data transmitted within an application, service, or system, and the sender and receiver can be devices such as a terminal or server.

[0049] Data quotas are used to limit the amount of data transmitted to a receiving end, ensuring the proper use of data resources. In different scenarios, data quotas can be issued to the sending end in different forms, such as credits.

[0050] A data transmission queue refers to a data structure used to store information related to a data stream to be transmitted, and is responsible for sequentially managing the transmission of data in the data stream. For example, a data transmission queue can be used to store data source information of a data stream, such as a WQE (Work Queue Element). In some embodiments, a data transmission queue can be a queue pair. A QP (Queue Pair) refers to a pair of interconnected queues in data transmission that can be responsible for managing and sending data streams.

[0051] The embodiments of the present application can be applied to a variety of different application scenarios, such as cloud storage, big data computing, AI large model training and other data interaction scenarios based on the high-performance RDMA (remote direct memory access) network of the data center. For example, the embodiments of the present application can be applied to the sending end in the network. When the sending end transmits a data stream to the receiving end in the network, an application for a quota of the amount of data to be sent of the data stream can be generated or obtained locally, and the application for the quota of the amount of data to be sent can be sent to the receiving end to transmit the data of the data stream to the receiving end based on the data quota issued (i.e., granted) by the receiving end.

[0052] In some embodiments, a data stream may correspond to multiple data quota requests, so that the receiving end can initiate multiple data quota requests to the sending end during data stream transmission. For example, before the data stream transmission begins, the sending end initiates a data quota request to be sent to request an initial data quota from the receiving end. During the transmission process, the sending end continuously monitors the actual data flow and data quota usage of the data stream, and initiates one or more data quota requests to request more data quota from the receiving end. This allows for dynamic data quota requests, ensuring flexible flow control and reliable transmission.

[0053] In some implementations, a data quota management component and a scheduling queue can be used to manage the data quota application to be sent, so as to dynamically adjust the allocation of data resources at the receiving end and effectively utilize resources. Specifically, before determining the data quota application to be sent, the following is also included:

[0054] Sending a transmission notification to the data quota management component based on a data transmission signal, where the data transmission signal includes at least one of an enqueue signal of any data transmission queue and a data transmission trigger signal;

[0055] The data quota management component stores the data quota application corresponding to any data transmission queue into the scheduling queue based on the transmission notification, so as to schedule the data quota application from the scheduling queue as the data quota application to be sent.

[0056] Among them, the data transmission signal is used to indicate that any data transmission queue corresponds to a data stream to be transmitted. The enqueue signal refers to a signal that the relevant information of the data stream is stored in the data transmission queue. The enqueue signal can indicate that the data transmission queue is ready to process the data stream to be transmitted. The data transmission trigger signal is used to indicate the signal for starting the data transmission of the data stream. For example, the enqueue signal corresponding to the data stream can be a DB (doorbell) signal from the WQE (work queue element), and the data transmission trigger signal can be a DB (doorbell) signal from the Loopback of the RDMA (remote direct memory access) engine. Among them, the scheduling queue is used to store and schedule data quota applications.

[0057] For example, the sending end includes a sending scheduling component (such as QTS (Quality of Service Send Scheduler)) and a data quota management component (such as ICM (Ingress Signaling Manager)). When QTS (Quality of Service Send Scheduler) receives a DB (doorbell) from the software postWQE (Work Queue Element) and a DB (doorbell) from the RDMA (Remote Direct Memory Access) engine's loopback, it notifies the ICM (Ingress Signaling Manager) of an Enque Report (i.e., a transmission notification). This transmission notification indicates that the data transmission queue has data to send. The ICM (Ingress Signaling Manager) can determine whether the data transmission queue can be sent based on its internal logic. If the ICM (Ingress Signaling Manager) determines that it is permitted, it sends a Transmit Request (i.e., a data quota request).

[0058] In some embodiments, there are multiple data transmission queues, and the data quota application to be sent can be scheduled by the application sending scheduling component. For example, the data quota application sent by the ICM (Ingress Signaling Manager) can enter the scheduling queue of the QTS (Quality of Service Sending Scheduler). The QTS (Quality of Service Sending Scheduler) can schedule the data quota application from the scheduling queue as the data quota application to be sent.

[0059] In some embodiments, multiple data transmission queues have different priorities. Thus, different data transmission queues have different priorities. Based on these priorities, the Quality of Service (QTS) can dispatch the scheduled data quota requests for each data transmission queue sent by the Ingress Signaling Manager (ICM) from the scheduling queue as the data quota requests to be sent. For example, the priority of a data transmission queue can be related to the size of the data flow corresponding to the data transmission queue. For example, the smaller the corresponding data flow, the higher the priority of the data transmission queue, thereby achieving scheduling of large and small flows.

[0060] In some embodiments, if multiple data transmission queues have the same priority, QTS (Quality of Service Send Schedule) can poll the scheduling queue and schedule the scheduling data quota application of each data transmission queue sent by ICM (Ingress Signaling Manager) as the data quota application to be sent.

[0061] 120. Send the data quota application to be sent to the receiving end, so that the receiving end determines the data quota based on the application information carried in the data quota application to be sent and sends the data quota.

[0062] The data quota balance of the data transmission queue refers to the balance of the data quota allocated to the data transmission queue by the receiving end, and the data quota balance indicates the balance of the data volume that can be used to transmit the data stream to the receiving end.

[0063] For example, in an embodiment of the present application, a data quota application is submitted to the receiving end to request the receiving end to issue a data quota. The receiving end determines the data quota expected by the receiving end based on the application information in the received application and issues the data quota. As a result, the receiving end is dynamically allocated an appropriate amount of data quota based on actual needs, reducing the waste of data resources at the receiving end during the transmission process. In addition, by updating the data quota issued by the receiving end to the data transmission queue, the remaining data quota can be effectively managed and allocated, and the use of data quota can be managed in a timely manner, reducing unnecessary applications and reducing the waste of data resources at the receiving end.

[0064] In actual applications, when a data transmission queue has finished sending data, the receiving end should be notified to close the data quota application so that the receiving end will no longer allocate data quota to the data transmission queue. However, in this case, ending the data quota application when the data stream transmission is completed is likely to lead to a waste of data quota. For example, Figure 1c The data quota application process shown in the figure has a certain delay from the issuance of the CRM-Off notification (i.e., the end of the data quota application) to the end of the data quota allocation at the receiving end. This results in inflight credits (unconfirmed data quota) on the network, resulting in wasted data quota. Even if the CRM-Off is sent earlier than the time when the data quota balance is the same as the data transmission queue length, there will still be wasted inflight credits between the issuance of the CRM-Off and the end of the data quota allocation at the receiving end. For example, assuming a 400Gbps data rate, if only one data transmission queue requests data quota allocation, the amount of inflight credits wasted is RTT (round-trip time) * 400Gbps; if n data transmission queues request data quota allocation, the amount of inflight credits wasted for each data transmission queue is RTT (round-trip time) * 400Gbps / n.

[0065] In addition, mismatch between the sending and receiving ends can easily lead to waste of data quota. Figure 1d In the application scenario of multiple senders and receivers shown, A sends to B, C, and D, and E also sends to D. Then D will allocate 200Gbps of data quota to A and 200Gbps of data quota to E. However, due to polling, A can only send 133Gbps to D, and E only gets 200Gbps of data quota, so E can only send 200Gbps to D. Therefore, although the receiving end D sends the data quota at a total rate of 400Gbps, the actual capacity is only used at 333Gbps, which is insufficient. This is the waste of data quota caused by the mismatch between the sending and receiving ends.

[0066] To address the aforementioned issue of data quota waste, embodiments of the present application dynamically adjust the application status of data quota applications in different queue states based on the queue length and data quota balance of the data transmission queue, optimize the issuance process of data quotas in different queue states, and avoid data quota waste caused by reasons such as mismatched capabilities of the sending and receiving terminals and the existence of unconfirmed data quotas. For example, in some embodiments, the application information includes the application status of the data quota application to be sent, and before determining the data quota application to be sent, it also includes:

[0067] Determine the current application status of the data quota application corresponding to the data transmission queue according to the queue length of the data transmission queue and the data quota balance of the data transmission queue;

[0068] Determine the amount of data to be sent, including:

[0069] When the current application status is different from the application status carried in the data quota application, the data quota application is used as the data quota application to be sent, and the current application status is used as the application status carried in the data quota application to be sent.

[0070] The queue length of the data transmission queue refers to the length or size of the data transmission queue, that is, the amount of data in the data flow waiting to be processed corresponding to the queue.

[0071] For example, the application status of a data quota application can be determined by detecting the queue length of the data transmission queue, the data quota balance of the data transmission queue, and whether the remaining data quota satisfies the transmission of the remaining data volume. When the application status of a data quota application changes, a data quota application with the new application status is resent, so that the application status of subsequently sent data quota applications is dynamically adjusted in real time based on the queue length and data quota balance of the data transmission queue. This allows the receiving end to send different data quotas based on different application statuses, thereby optimizing the allocation and utilization of data quotas.

[0072] In some embodiments, when the queue length of a data transmission queue and / or the remaining amount of a data quota of the data transmission queue changes, the current application status of the data quota application corresponding to the data transmission queue is determined. Thus, the current application status of the data quota application is determined only when the queue length and / or the remaining amount of a data quota of the data transmission queue changes, thereby reducing unnecessary status calculations and reducing system overhead.

[0073] In some embodiments, the application status is related to a data quota issued by the receiving end within a set time interval, where the set time interval may be in seconds (s), milliseconds (ms), or microseconds (μs). Thus, the receiving end may issue a data quota to the sending end based on the data quota within the set time interval corresponding to the application status.

[0074] In some implementations, the difference between the queue length of the data transmission queue and the data quota balance of the data transmission queue may be compared with a preset threshold to determine the application status of the data quota application based on the comparison result.

[0075] For example, the CRS (signaling application status), i.e., the status of the data quota application, can be managed by a data quota management component such as ICM (ingress signaling manager). In an embodiment of the present application, three states (CRS (signaling application status)) can be set: OFF, SLOW, and NORMAL. The data quota application indicated by different application states has different data quotas. For example, OFF means that the data transmission queue does not need to apply for a data quota, that is, the data quota corresponding to the data quota application is 0; SLOW means that the speed is limited when the data quota is issued to the data transmission queue (that is, the issued data flow quota is limited). For example, in the NORMAL state, the sender grants a data flow quota of 1000 data at a time, which can be reduced to a data flow quota of 500 data in the SLOW state. SLOW can be divided into several levels, and different SLOW levels correspond to different issued data quotas; NORMAL means that the data quota is issued to the data transmission queue at a normal rate.

[0076] OFF and SLOW can avoid low bandwidth utilization caused by wasted data quota (that is, avoid wasted data quota caused by mismatch between the sending and receiving end capabilities). When a data transmission queue has a certain amount of unused data quota, the receiving end's data quota scheduler will not allocate data quota to the data transmission queue.

[0077] Therefore, when the queue length of the data transmission queue and / or the data quota balance of the data transmission queue changes, the ICM (ingress signaling manager) can compare the difference between the queue length of the data transmission queue and the data quota balance of the data transmission queue with a preset threshold, such as the NORMALTOSLOW threshold, to update the status of the subsequently sent data quota application based on the comparison result. When the status of the data quota application of the data transmission queue is updated, the ICM (ingress signaling manager) will send the data quota application to the receiving end data quota scheduler. In order for the receiving end data quota scheduler to allocate the data quota according to the scheduling situation, the ICM (ingress signaling manager) is responsible for receiving the data quota and updating the credit balance (data quota balance) of the data transmission queue. At the same time, it will also calculate the new CRS (application status).

[0078] In some implementations, different data quotas can be set for data quota applications in different queue states to limit the amount of data quota that is further issued when the data quota issued to the sending end is sufficient, thereby avoiding waste of data quota. Specifically, based on the queue length of the data transmission queue and the data quota balance of the data transmission queue, the current application status of the data quota application corresponding to the data transmission queue is determined, including:

[0079] When the difference between the queue length of the data transmission queue and the data quota balance of the data transmission queue is greater than or equal to a preset threshold, the first application state is used as the current application state;

[0080] When the difference between the queue length of the data transmission queue and the data quota balance of the data transmission queue is less than the preset threshold, the second application state is used as the current application state, and the data quota corresponding to the first application state is greater than the data quota corresponding to the second application state.

[0081] For example, the first application state and the second application state are the NORMAL state (normal state) and the SLOW state (slowed down state), respectively. When the queue length of the data transmission queue minus the data quota balance of the data transmission queue is greater than or equal to a preset threshold (such as when the data flow is about to end), it indicates that the data quota required by the sender is large. Therefore, the NORMAL state can be used as the state for subsequent data quota applications, that is, the data quota is issued to the data transmission queue according to the normal data quota.

[0082] like Figure 1eIn the process of applying for data quota shown in FIG, when the queue length of the data transmission queue minus the data quota balance of the data transmission queue is less than a preset threshold (such as the data flow is about to end), the state of the subsequent data quota application can be converted to SLOW state, so that the rate at which the receiving-end data quota scheduler issues the data quota for the data transmission queue is slowed down, that is, the data quota is issued to the data transmission queue according to a smaller data quota. In this way, even when the data quota application is ended, there is inflight credit (data quota that has not yet been confirmed). Due to the issued data quota, the waste of data quota can also be reduced.

[0083] Since in the SLOW state, a small amount of data quota applied for will delay the completion time of data stream transmission, the delayed time needs to be less than one RTT (round trip time) to achieve positive benefits. For example, in some embodiments, the ratio of the data quota corresponding to the SLOW state (i.e., the second application state) to the data quota corresponding to the NORMAL state (i.e., the first application state) can be limited to limit the time of delay in the SLOW state to less than one RTT (round trip time). For example, the ratio of the second transmission rate to the first transmission rate can be greater than or equal to (1-1 / mn), where m is a multiple of BDP (bandwidth delay product), and m can be set according to actual needs and application scenarios, and n is the number of data transmission queues corresponding to the receiving end.

[0084] For example, when qsize (data transmission queue length) - credit balance (data quota balance of the data transmission queue) = 1 x BDP (bandwidth-delay product), the data quota application state is switched to SLOW. If the receiving end has n data transmission queues simultaneously applying for data quota, the data quota in transit for that data transmission queue is 1 / n * BDP (bandwidth-delay product). After switching to SLOW state, a data quota of (1 - 1 / n) * BDP (bandwidth-delay product) is required. * represents a multiplication operation. The rate in the NORMAL state is 1 / n*R (R is the receiving network card rate, then BDP (bandwidth-delay product) = R*RTT (round-trip delay)). Therefore, if it has always been in the NORMAL state, (1-1 / n)*BDP (bandwidth-delay product) / (1 / n*R) = (n-1)*RTT (round-trip delay) is required to obtain the required data quota. If the time to obtain the data quota is limited to increasing by at most one RTT (round-trip delay), the rate in the SLOW state cannot be less than (1-1 / n)*BDP (bandwidth-delay product) / (n*RTT (round-trip delay)) = (1-1 / n)*(1 / n*R). That is, the ratio of the SLOW rate to the NORMAL rate must be greater than or equal to (1-1 / n). In this example, the SLOW state is transitioned when the qsize-credit balance = 1xBDP (Bandwidth-Delay Product). Extending this to the SLOW state, the ratio of the SLOW state rate to the NORMAL state rate must be greater than or equal to (1-1 / mn). Qualitatively speaking, the more data transmission queues simultaneously requesting data quota on the receiving end, the faster the SLOW rate.

[0085] In some embodiments, even if the data transmission queue is empty, there may be some initial data quota, i.e., the data quota balance is not zero, to facilitate immediate data transmission. However, the data quota balance may be limited to not exceed a preset upper limit (e.g., a preset balance threshold) to avoid wasting data quota.

[0086] For example, in some embodiments, to prevent a data transmission queue from having too much data quota, when the data transmission queue credit balance exceeds a preset balance threshold, the data quota application can be forced into a SLOW or OFF state. Furthermore, by limiting the data transmission queue's data quota balance using a preset balance threshold, the data flow is nearing completion when the difference between the queue length and the data transmission queue's data quota balance falls below the preset threshold. This allows the receiving end to reduce the data quota issued only when the data flow transmission is nearing completion, minimizing the impact on the data flow transmission completion time.

[0087] Regarding the above-mentioned problem of waste of data quota, in an embodiment of the present application, a method of declaring the data quota required for each data quota application can also be adopted, so that the receiving end grants the data quota of the data transmission queue based on the declared data quota, so that the data quota required by the sending end is consistent with the data quota issued by the receiving end, avoiding the waste of data quota caused by reasons such as mismatch between the sending and receiving end capabilities, and also ensuring that all data quotas issued by the receiving end can be used by the sending end, avoiding the waste of data quota caused by reasons such as data quota that has not yet been confirmed. For example, in some embodiments, before determining the data quota application to be sent, it also includes:

[0088] Add the requested data quota information to the data quota application corresponding to the data transmission queue;

[0089] Determine the amount of data to be sent, including:

[0090] Based on the bandwidth-delay product, the data quota application is used as the data quota application to be sent.

[0091] The requested data quota refers to the data quota of the data quota application request, i.e., the data quota that the sender expects the receiver to grant in this data quota application request. In this embodiment of the present application, the sender can set the requested data quota for each data quota application request based on specific requirements of the transmission process, such as real-time performance, bandwidth, and network flow control policies.

[0092] For example, since there is a RTT (round trip time) delay from applying to obtaining the data quota, in order to ensure that the data transmission queue can continuously send data of the data stream without interruption of transmission due to lack of data quota, it is not possible to apply after the data quota is used up. In the embodiment of the present application, the sending end can send an application for the data quota to be sent to the receiving end when it detects that the expected data quota balance is less than or equal to the bandwidth delay product, that is, credit guarantee <= 1xBDP (bandwidth delay product), that is, a data quota application can be sent to the receiving end once every bandwidth delay product. For example, in the case of Figure 1f In the data quota application process shown, the sender can send a data quota application to the receiver based on the bandwidth-delay product. This data quota application includes a field indicating the required data quota (i.e., the requested data quota information), such as N bytes. After receiving the application, the receiver can parse it and grant the data transmission queue the requested data quota. If the data quota reaches N bytes, no further data quota will be granted, and the receiver will issue the data quota corresponding to the requested data quota.

[0093] In some embodiments, the expected data quota balance of the data transmission queue can be determined based on the data quota balance of the data transmission queue and the data quota applications that have been sent, and the requested data quota corresponding to the data transmission queue can be determined based on the expected data quota balance of the data transmission queue. The expected data quota balance refers to the data quota that the data transmission queue expects to obtain. In this way, when the sending end makes multiple requests for data quota from the receiving end, the expected data quota that can be obtained is taken into account in each request, avoiding the omission of unconfirmed data quota, and ensuring that the capabilities of the sending and receiving ends are matched to avoid wasting data quota.

[0094] For example, a data quota management component such as an ICM (Ingress Signaling Manager) can maintain not only the credit balance of a data transmission queue but also the credit guarantee. The data quota balance indicates the remaining data quota of the data transmission queue and increases only when a data quota is received from the sender. The expected data quota balance also takes into account the in-transit data quota (i.e., the requested data quota requested by a previously sent data quota application). As long as a data quota application has been sent, the expected data quota balance is increased by the corresponding requested data quota. However, the expected data quota balance does not increase when a data quota is received from the sender. In other words, the expected data quota balance indicates the amount of data quota that will be available in the future. Each time a data transmission queue successfully dequeues, both the data quota balance and the expected data quota balance decrease by the corresponding amount.

[0095] In some embodiments, the requested data quota of the data transmission queue can be a preset value, such as N bytes, that is, each data quota application requests a data quota of N bytes. If the queue length of the data transmission queue minus the expected data quota balance is less than the value N bytes, the next application for the data quota with the remaining required bytes is made. That is, the requested data quota carried in the next data quota application is the difference between the queue length of the data transmission queue and the expected data quota balance, and this data quota application is the last one. A request to end the data quota application, such as CRM(-Off), can be sent to the receiving end. In this way, it is ensured that the data quota applied by the data transmission queue is the same as the amount of data transmitted to the receiving end, thereby avoiding waste of data quota.

[0096] In some implementations, because a data quota may be granted but the sender may not be able to use it, to avoid wasting data quota due to a mismatch in sender and receiver capabilities, the requested data quota for each request cannot be too large. However, the granted data quota cannot be too small, as this will lead to frequent credit requests and result in bandwidth overhead. Therefore, in this embodiment of the present application, the default value of the requested data quota for the data transmission queue can be set to 1xBDP (i.e., bandwidth-delay product).

[0097] 130. Allocate the data quota issued by the receiving end to the data transmission queue corresponding to the data quota application to be sent, so as to update the data quota balance of the data transmission queue corresponding to the data quota application to be sent, and obtain an updated data quota balance.

[0098] For example, the sending end can use a data quota management component such as ICM (Ingress Signaling Manager) to allocate the data quota issued by the receiving end to the data transmission queue that sends the data quota application to be sent, and add the original data quota balance of the data transmission queue to the data quota issued this time to obtain the updated data quota balance of the data transmission queue.

[0099] 140. Apply for a data transmission queue corresponding to the quota of data to be sent, and transmit the data stream to the receiving end based on the updated balance of the quota of data to be sent.

[0100] For example, the sender can send data to the receiver via an RDMA (Remote Direct Memory Access) engine. For example, the RDMA (Remote Direct Memory Access) engine can use the updated data quota balance to transmit data from the data stream in the data transmission queue that requested the pending data quota to the receiver until the data stream transmission is complete or the data quota balance in the data transmission queue reaches zero.

[0101] The data transmission solution provided by the embodiments of the present application can be applied in various application scenarios, such as cloud storage, big data computing, AI large model training and other application scenarios. Taking actual application scenarios as an example, there are frequent data interactions in cloud storage, big data computing, AI large model training, etc., which put forward extreme performance requirements for the network in different aspects. For example, storage requires the average network latency to be within 30us and the tail latency to be within 100 microseconds; AI large model training is a bandwidth-sensitive business. In order to improve the efficiency of cluster computing power, ultra-high network bandwidth utilization is required. However, it is often difficult for the network to balance low latency and high bandwidth utilization. Because high speed means that traffic quickly occupies the network bandwidth at the beginning of startup and actively seizes the remaining available capacity of the network. When each traffic has this behavior pattern, it is easy to cause serious congestion in the network.

[0102] An embodiment of the present application can determine a data volume quota application to be sent, where the data volume quota application to be sent is used by a corresponding data transmission queue to apply to a receiving end for a data volume quota for transmitting a data stream, and the data volume quota application to be sent carries application information related to the data volume quota; the data volume quota application to be sent is sent to the receiving end, so that the receiving end determines the data volume quota and issues the data volume quota based on the application information carried by the data volume quota application to be sent; the data volume quota issued by the receiving end is allocated to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent, and obtain an updated data volume quota balance; and the data stream is transmitted to the receiving end based on the updated data volume quota balance through the data transmission queue corresponding to the data volume quota application to be sent.

[0103] As can be seen from the above, the embodiments of the present application can submit a data quota application to the receiving end to request the receiving end to issue a data quota. The receiving end determines the data quota expected by the receiving end based on the application information in the received application and issues the data quota. As a result, the receiving end is dynamically allocated an appropriate amount of data quota based on actual needs, reducing the waste of data resources at the receiving end during the transmission process. In addition, by updating the data quota issued by the receiving end to the data transmission queue, the remaining data quota can be effectively managed and allocated, and the use of the data quota can be managed in a timely manner, reducing unnecessary applications and reducing the waste of data resources at the receiving end.

[0104] In this embodiment, a data transmission method is provided, such as Figure 2 As shown, the specific process of the data transmission method can be as follows:

[0105] 210. Receive a pending data quota application sent by a sending end. The pending data quota application is used by a corresponding data transmission queue to apply to a receiving end for a data quota for a transmitted data stream. The pending data quota application carries application information related to the data quota.

[0106] For example, embodiments of the present application can be applied to a receiving end in a network. When a transmitting end transmits a data stream to a receiving end in the network, a data quota request for the data stream to be sent can be generated or obtained locally. The data quota request to be sent can then be sent to the receiving end, so that the receiving end receives the data quota request.

[0107] 220. Determine a data quota based on the application information carried in the data quota application to be sent.

[0108] For example, the receiving end may calculate and determine the allocable data quota based on the received data quota application.

[0109] In some embodiments, a total data quota for the receiving end can be generated based on the receiving end's receiving capacity and determined congestion information, so as to dynamically adjust the data flow quota that can be granted to the receiving end based on the real-time status of the receiving end and the network, thereby ensuring the stability and reliability of data reception by the receiving end and improving the overall performance of data transmission. Furthermore, the data quota to be issued can be determined based on the queue priority of the data transmission queue to achieve receiving end data resource scheduling between different data stream transmissions, thereby optimizing overall data transmission performance. Specifically, before determining the data quota based on the application information carried by the data quota application to be sent, the following steps are also included:

[0110] Determine the total data quota of the receiving end based on the congestion information and the receiving capacity of the receiving end;

[0111] The data quota is determined based on the application information carried in the data quota application to be sent, including:

[0112] Based on the queue priority of the data transmission queue corresponding to the data quota application to be sent, the data quota corresponding to the application information carried in the data quota application to be sent is determined from the total data quota.

[0113] Receive capacity refers to the amount of data a receiving end can process and receive. Receive capacity is affected by factors such as network bandwidth, processing power, and current load. For example, receive capacity can include the receiving rate of the receiving end's network interface card (NIC), meaning the rate at which signaling (credits) are generated is determined by the NIC's speed.

[0114] Congestion information refers to status feedback information of congestion in the network. The congestion information may be an indication information such as a congestion signal issued by a network device (such as a router or switch) indicating that the current network load is too high and may cause data packet loss or delay.

[0115] Among them, the total data quota refers to the total data quota that can be allocated (granted) by the receiving end. In an embodiment of the present application, the receiving end can allocate a certain number of data quotas at a set time interval. For example, the receiving end includes a signaling scheduling component such as SCH (signaling scheduler). The SCH (signaling scheduler) generates a data quota at a certain interval. The size of the data quota authorization matches the rate and generation interval. For example, to generate a 400Gbps data quota, a data quota authorization of 8000B of data transmission is generated every 160ns.

[0116] For example, the SCH (Signaling Scheduler) can determine the amount of data that can be allocated within a specified time interval based on the receiving end's network interface card (NIC) reception rate and network congestion information. For example, the total data quota can be calculated based on the NIC's speed and the specified time interval, e.g., total data quota = NIC speed × specified time interval. For example, a 400Gbps NIC generates a data quota worth 400Gb per second. This total data quota is then adjusted based on network congestion information. When data transmission queues of different priorities from multiple different source ends (senders) request data quotas from the same receiving end, the data quotas can be allocated based on queue priority, giving priority to data transmission queues with higher priorities. When multiple data transmission queues of the same priority exist, data quotas can be allocated using an FQ (Fair Queuing) approach (with the addition of SP (Strict Priority) and WFQ (Weighted Fair Queuing)).

[0117] However, in real-world applications, some initial free data quotas may be pre-delivered to the sender, or a data quota storage mechanism may be implemented. This can lead to over-issuance of data quotas, potentially causing incast congestion, i.e., congestion at the TOR (Top of Rack) port. Furthermore, congestion may also exist within the network core layer. Therefore, the SCH (Signaling Scheduler) utilizes these network congestion signals (i.e., congestion information) to adjust the data quota generation rate (i.e., the total data quota within a specified time interval). For example, this adjustment utilizes a typical congestion signal, such as ECN (Explicit Congestion Notification), reducing the data quota generation rate upon receiving an ECN and increasing it upon receiving an ECN. Furthermore, the SCH (Signaling Scheduler) also considers host congestion during the data quota application process. If the network interface card (NIC) receive buffer is excessively full due to PCIE bottlenecks or other reasons, the SCH (Signaling Scheduler) will issue an FC (Flow Control) command to suspend data quota generation.

[0118] 230. Send the data quota to the sending end so that the sending end allocates the sent data quota to the data transmission queue corresponding to the data quota application to be sent, so as to update the data quota balance of the data transmission queue corresponding to the data quota application to be sent and obtain an updated data quota balance.

[0119] For example, the receiving end sends the data quota to the sending end. The sending end can allocate the data quota sent by the receiving end to the data transmission queue that sent the data quota request to be sent through a data quota management component such as ICM (Ingress Signaling Manager), and add the original data quota balance of the data transmission queue to the data quota sent this time to obtain an updated data quota balance of the data transmission queue.

[0120] 240. The receiving end applies for a data transmission queue corresponding to the quota of the data volume to be sent, and transmits a data stream to the receiving end based on the updated balance of the quota of the data volume to be sent.

[0121] For example, the sender can use the updated data quota balance to transmit data from the data stream in the data transmission queue that has requested the data quota to be sent to the receiver until the data stream transmission is completed or the data quota balance in the data transmission queue reaches zero. Each time a data transmission queue is successfully dequeued, the sender can reduce the data quota balance in the data transmission queue by the corresponding amount through a data quota management component such as the ICM (Ingress Signaling Manager).

[0122] The data transmission scheme provided by the embodiment of the present application can be applied in various application scenarios, such as cloud storage, big data computing, AI large model training and other application scenarios. The embodiment of the present application can receive a data volume quota application to be sent by the sending end, and the data volume quota application to be sent is used for the corresponding data transmission queue to apply for a data volume quota for transmitting a data stream from the receiving end, and the data volume quota application to be sent carries application information related to the data volume quota; the data volume quota is determined based on the application information carried by the data volume quota application to be sent; the data volume quota is issued to the sending end so that the sending end allocates the issued data volume quota to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent, and obtain the updated data volume quota balance; the receiving end transmits the data stream to the receiving end based on the updated data volume quota balance through the data transmission queue corresponding to the data volume quota application to be sent.

[0123] As can be seen from the above, in the embodiment of the present application, the sending end can submit a data quota application to the receiving end to request the receiving end to issue a data quota. The receiving end determines the data quota expected by the receiving end based on the application information in the received application and issues the data quota to the sending end. As a result, the receiving end can dynamically allocate an appropriate amount of data quota according to actual needs, reducing the waste of data resources at the receiving end during the transmission process. In addition, by updating the data quota issued by the receiving end to the data transmission queue, the remaining data quota can be effectively managed and allocated, and the use of the data quota can be managed in a timely manner, reducing unnecessary applications and reducing the waste of data resources at the receiving end.

[0124] The method described in the above embodiment will be further described below.

[0125] In this embodiment, the method of the embodiment of the present application will be described in detail by taking the interaction process between the receiving end and the sending end as an example.

[0126] The data transmission method provided in the embodiment of the present application can be implemented by a data transmission system. Figure 3a The schematic diagram of the data transmission system shown in FIG. 4 is a diagram of a data transmission system that can realize communication between devices (i.e., a sending end and a receiving end) through a custom protocol. The data transmission system can include, but is not limited to, multiple modules such as RDMAEngine (Remote Direct Memory Access Engine), QoS Transmit Scheduler (QTS (Quality of Service Transmit Scheduler)), Ingress Credit Manager (ICM (Ingress Signaling Manager)), Credit Scheduler (SCH (Signaling Scheduler)), and Rx Queue Manager (RQM (Receive Queue Manager)). In the embodiment of the present application, the data volume quota is in the form of credit (signaling) and the data transmission queue is QP (queue pair) as an example.

[0127] The Quality of Service (QoS) send scheduler receives calls from the software post-WQE (work queue element) DB (doorbell) and the RDMA (remote direct memory access) engine's loopback DB (doorbell), reports enqueue completion to the ICM (ingress signaling manager), issues data transfer commands to the RDMA (remote direct memory access) engine, and reports dequeue completion to the ICM (ingress signaling manager). Each QP (queue pair) with a positive credit balance is eligible to send data, and the Quality of Service (QTS) send scheduler determines which QP (queue pair) sends data.

[0128] The ingress signaling manager is used to: maintain the relevant status information of the credit (i.e., data quota) of the QP (queue pair), including qsize (queue length) and credit balance (data quota balance); update the Credit RequestState (CRS (signaling request state)), i.e., the application status of the data quota application); generate the Credit RequestMessage (CRM (signaling request message) (i.e., data quota application) and send it to the credit scheduler at the destination (i.e., the receiving end); receive credit and add it to the credit balance of the corresponding QP (queue pair).

[0129] The signaling scheduler is used to: generate credits based on the network card rate, adjust the credit rate based on congestion indications; and decide to which QP (queue pair) the credit is sent.

[0130] The remote direct memory access engine is used to: DMA (direct memory access) data to the Tx (send) queue according to the Tx (send) Cmd (command) information; send FC (Flow Control) to QTS (Quality of Service Send Scheduler) according to the set Tx (send) queue threshold to suspend dequeuing.

[0131] The Rx Queue Manager (RQM) is used to send FC (flow control) to the SCH (signaling scheduler) when the buffer usage of the receiving network card exceeds the threshold, suspending the sending of credits for the specified queue or traffic class.

[0132] Therefore, the data transmission system's congestion control and QoS (Quality of Service) scheduling interact with other main modules of the network card to implement congestion control and QoS scheduling, QoS scheduling, and traffic quota congestion control. Among them, traffic quota congestion control is achieved through the ingress signaling manager and signaling scheduler, QoS scheduling is achieved through QoS sending scheduling, and congestion control and QoS scheduling are jointly achieved through the ingress signaling manager, signaling scheduler, and QoS sending scheduling.

[0133] like Figure 3b As shown, a specific process of a data transmission method is as follows:

[0134] 310. The sending end determines a data quota application to be sent. The data quota application to be sent is used by the corresponding data transmission queue to apply to the receiving end for a data quota for transmitting a data flow. The data quota application to be sent carries application information related to the data quota.

[0135] For example, in order to obtain credit, the ICM (Ingress Signaling Manager) needs to notify the receiving end to apply for credit.

[0136] Specifically, when the Quality of Service (QTS) receives a doorbell from the software post-WQE (Work Queue Element) DB and the RDMA (Remote Direct Memory Access) Engine's loopback DB, it notifies the Ingress Signaling Manager (ICM) of an Enqueue Report, indicating that the QP (Queue Pair) has data to send. The ICM then logically determines whether the data for the QP (Queue Pair) can be sent. If the ICM determines that it is permitted, it sends a Transmit Request, which then enters the QTS's scheduling queue.

[0137] In the embodiment of the present application, when the sending end QP (queue pair) applies for credit, it can adopt solution one, that is, after carrying information indicating how many credits are required for this application, such as N bytes, the receiving end will no longer grant credits to the QP (queue pair) after the amount of credits granted to the QP (queue pair) reaches N bytes. Alternatively, solution two can be adopted, that is, when the queue length or data quota balance (data quota balance) value of the QP (queue pair) changes, the ICM (ingress signaling manager) will update the CRS (signaling application status). The CRS (signaling application status) has three states: OFF, SLOW, and NORMAL. Both solutions can solve the problem of credit waste. Solution one completely avoids the credit waste at the end of the flow, but it will bring more credit application messages. In actual applications, the specific solution to be used can be decided based on the difficulty of implementation and resource usage.

[0138] 320. The sending end sends a data quota application to be sent to the receiving end, so that the receiving end determines the data quota based on the application information carried in the data quota application to be sent and sends the data quota.

[0139] 330. The receiving end receives the pending data quota application sent by the sending end. The pending data quota application is used by the corresponding data transmission queue to apply to the receiving end for a data quota for the transmission data flow. The pending data quota application carries application information related to the data quota.

[0140] 340. The receiving end determines the data quota based on the application information carried in the data quota application to be sent.

[0141] 350. The receiving end sends a data quota to the sending end, so that the sending end allocates the sent data quota to the data transmission queue corresponding to the data quota application to be sent, so as to update the data quota balance of the data transmission queue corresponding to the data quota application to be sent, and obtain an updated data quota balance.

[0142] For example, different QPs (queue pairs) can have different priorities. Requests from each QP (queue pair) can be scheduled based on priority, prioritizing credits to higher-priority QPs (queue pairs). By default, all QPs (queue pairs) have the same priority, and round-robin scheduling is performed. This feature enables the module to schedule both large and small flows.

[0143] In this embodiment of the present application, the receiving end may grant credits to a QP (queue pair) based on the credit information carried in the QP (queue pair) application, such as N bytes, indicating the amount of credit required for this application. Once the credit amount reaches N bytes, no more credits will be granted. Alternatively, the receiving end may grant credits corresponding to the corresponding state of the QP (queue pair) based on the CRS (signaling request status) carried in the QP (queue pair) application, such as OFF, SLOW, or NORMAL.

[0144] 360. The sending end allocates the data quota issued by the receiving end to the data transmission queue corresponding to the data quota application to be sent, so as to update the data quota balance of the data transmission queue corresponding to the data quota application to be sent, and obtain an updated data quota balance.

[0145] For example, the ICM (Ingress Signaling Manager) is responsible for maintaining the credit-related status of the QP (Queue Pair), including the queue length and the data quota balance. When the ICM (Ingress Signaling Manager) receives an Enque Report (Enqueue Report), and the Report is triggered by the DB (Doorbell) of the software post WQE (Work Queue Element), the queue length will be increased. When the ICM (Ingress Signaling Manager) receives a Deque Report (Dequeue Report), the queue length will be reduced and the data quota balance will be reduced accordingly. When the ICM (Ingress Signaling Manager) receives a credit, the data quota balance will be increased.

[0146] 370. The sending end applies for a corresponding data transmission queue through the quota of the data volume to be sent, and transmits the data stream to the receiving end based on the updated balance of the data volume quota.

[0147] 380. The receiving end receives the data transmission queue corresponding to the data quota application by the sending end, and transmits the data stream to the receiving end based on the updated data quota balance.

[0148] For example, when the receiving end schedules a request for a specific QP (queue pair), it issues a data transfer command to the RDMA (remote direct memory access) engine. The engine then parses the WQE (work queue element) based on the corresponding information and sends the data via DMA (direct memory access). The QTS (Quality of Service Send Scheduler) issues the data transfer command and reports the dequeue completion to the ICM (Ingress Signaling Manager).

[0149] When the ICM (Ingress Signaling Manager) receives the Enque Report t, as long as the data quota balance is positive, the QP (Queue Pair) can send data and send a Transmit Request (Data Transfer Request) to the QTS (Quality of Service Send Scheduler) to transmit the data stream.

[0150] To verify the effectiveness of the data transmission method provided in the embodiments of the present application, the embodiments of the present application compared the transmission performance of a CNIC network card (a network card that implements the data transmission method provided in the embodiments of the present application) and a CX7 network card (an existing commercial network card), as follows:

[0151] like Figure 3c The throughput and latency performance optimization effects shown are as follows. For the H800 GPU server, in terms of throughput performance, as the number of flows increases, the bandwidth of the CNIC network card provided in the embodiment of the present application remains unchanged at 390G, while the bandwidth of the CX7 network card decreases by a maximum of 33% (from 392G to 263G). In terms of latency performance, the dynamic latency of the CNIC network card provided in the embodiment of the present application increases by only 2us compared to the static latency, while the CX7 network card increases by 10us.

[0152] like Figure 3d The fairness optimization effect shown is that the CNIC provided by the embodiment of the present application actively controls congestion and distributes bandwidth fairly on the receiving end. The CX7 network card will compete on the sending end, resulting in uneven bandwidth distribution.

[0153] like Figure 3e As shown in the optimization effect of Alltoall performance (whole network communication performance), the performance of the CNIC network card provided in the embodiment of the present application is improved by more than 15% compared with the CX7 network card.

[0154] From the above, it can be seen that the network card that implements the data transmission method provided in the embodiment of the present application has better performance in throughput performance, latency performance, fairness and Alltoall performance than the data transmission method of existing commercial network cards.

[0155] As can be seen from the above, in the embodiment of the present application, the sending end can submit a data quota application to the receiving end to request the receiving end to issue a data quota. The receiving end determines the data quota expected by the receiving end based on the application information in the received application and issues the data quota to the sending end. As a result, the receiving end can dynamically allocate an appropriate amount of data quota according to actual needs, reducing the waste of data resources at the receiving end during the transmission process. In addition, by updating the data quota issued by the receiving end to the data transmission queue, the remaining data quota can be effectively managed and allocated, and the use of the data quota can be managed in a timely manner, reducing unnecessary applications and reducing the waste of data resources at the receiving end.

[0156] To better implement the above method, the present application also provides a data transmission device. The data transmission device can be integrated into an electronic device, such as a terminal or a server. The terminal can be a mobile phone, tablet computer, smart Bluetooth device, laptop computer, personal computer, etc. The server can be a single server or a server cluster consisting of multiple servers.

[0157] For example, in this embodiment, the method of the embodiment of the present application will be described in detail by taking the data transmission device specifically integrated in the server as an example.

[0158] For example, Figure 4 As shown, the data transmission device may include an application determination unit 410, an application sending unit 420, a quota allocation unit 430, and a data transmission unit 440, as follows:

[0159] (1) Application confirmation unit 410

[0160] It is used to determine the data quota application to be sent. The data quota application to be sent is used by the corresponding data transmission queue to apply to the receiving end for the data quota of the transmitted data flow. The data quota application to be sent carries application information related to the data quota.

[0161] In some embodiments, the application information includes an application status of a data quota application to be sent, and the data transmission device further includes an application status determination unit, the application status determination unit being configured to: determine a current application status of the data quota application corresponding to the data transmission queue based on a queue length of the data transmission queue and a data quota balance of the data transmission queue;

[0162] The application determination unit is specifically configured to: when the current application status is different from the application status carried in the data quota application, use the data quota application as the data quota application to be sent, and use the current application status as the application status carried in the data quota application to be sent.

[0163] In some embodiments, the current application status of the data volume quota application corresponding to the data transmission queue is determined based on the queue length of the data transmission queue and the data volume quota balance of the data transmission queue, including: when the difference between the queue length of the data transmission queue and the data volume quota balance of the data transmission queue is greater than or equal to a preset threshold, the first application status is used as the current application status; when the difference between the queue length of the data transmission queue and the data volume quota balance of the data transmission queue is less than the preset threshold, the second application status is used as the current application status, and the data volume quota corresponding to the first application status is greater than the data volume quota corresponding to the second application status.

[0164] In some embodiments, the application information includes information requesting a data quota, and the data transmission apparatus further includes a quota adding unit configured to: add information requesting a data quota to a data quota application corresponding to the data transmission queue;

[0165] The application determination unit is specifically configured to: based on the bandwidth-delay product, use the data quota application as the data quota application to be sent.

[0166] In some embodiments, the data transmission device also includes an application management unit, which is used to: send a transmission notification to the data volume quota management component based on the data transmission signal, where the data transmission signal includes at least one of an enqueue signal of any data transmission queue and a trigger signal for data transmission; based on the transmission notification, the data volume quota management component stores the data volume quota application corresponding to any data transmission queue into the scheduling queue to schedule the data volume quota application from the scheduling queue as the data volume quota application to be sent.

[0167] (2) Application sending unit 420

[0168] It is used to send a data quota application to be sent to the receiving end, so that the receiving end determines the data quota based on the application information carried in the data quota application to be sent and sends the data quota.

[0169] (3) Quota Allocation Unit 430

[0170] It is used to allocate the data quota issued by the receiving end to the data transmission queue corresponding to the data quota application to be sent, so as to update the data quota balance of the data transmission queue corresponding to the data quota application to be sent and obtain the updated data quota balance.

[0171] (4) Data transmission unit 440

[0172] It is used to apply for the corresponding data transmission queue through the quota of data to be sent, and transmit the data stream to the receiving end based on the updated data quota balance.

[0173] In specific implementation, the above units can be implemented as independent entities, or can be arbitrarily combined to be implemented as the same or several entities. The specific implementation of the above units can be found in the previous method embodiments and will not be repeated here.

[0174] As can be seen from the above, the data transmission device of this embodiment includes an application determination unit, an application sending unit, a quota allocation unit and a data transmission unit. Among them, the application determination unit is used to determine the data volume quota application to be sent, and the data volume quota application to be sent is used for the corresponding data transmission queue to apply to the receiving end for the data volume quota of the transmitted data stream, and the data volume quota application to be sent carries application information related to the data volume quota; the application sending unit is used to send the data volume quota application to be sent to the receiving end, so that the receiving end determines the data volume quota and issues the data volume quota based on the application information carried by the data volume quota application to be sent; the quota allocation unit is used to allocate the data volume quota issued by the receiving end to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent and obtain the updated data volume quota balance; the data transmission unit is used to transmit the data stream to the receiving end based on the updated data volume quota balance through the data transmission queue corresponding to the data volume quota application to be sent.

[0175] Therefore, the embodiment of the present application can determine the data volume quota application to be sent, and the data volume quota application to be sent is used for the corresponding data transmission queue to apply to the receiving end for the data volume quota of the transmitted data stream, and the data volume quota application to be sent carries application information related to the data volume quota; the data volume quota application to be sent is sent to the receiving end, so that the receiving end determines the data volume quota and issues the data volume quota based on the application information carried by the data volume quota application to be sent; the data volume quota issued by the receiving end is allocated to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent, and obtain the updated data volume quota balance; through the data transmission queue corresponding to the data volume quota application to be sent, the data stream is transmitted to the receiving end based on the updated data volume quota balance.

[0176] To better implement the above method, the present application also provides a data transmission device. The data transmission device can be integrated into an electronic device, such as a terminal or a server. The terminal can be a mobile phone, tablet computer, smart Bluetooth device, laptop computer, personal computer, etc. The server can be a single server or a server cluster consisting of multiple servers.

[0177] For example, in this embodiment, the method of the embodiment of the present application will be described in detail by taking the data transmission device specifically integrated in the server as an example.

[0178] For example, Figure 5 As shown, the data transmission device may include an application receiving unit 510, a quota determining unit 520, a quota sending unit 530, and a data receiving unit 540, as follows:

[0179] (1) Application Receiving Unit 510

[0180] Used to receive the data quota application to be sent from the sender. The data quota application to be sent is used by the corresponding data transmission queue to apply to the receiving end for the data quota of the transmitted data flow. The data quota application to be sent carries application information related to the data quota.

[0181] (2) Quota Determination Unit 520

[0182] Used to determine the data quota based on the application information carried in the data quota application to be sent.

[0183] In some embodiments, the data transmission device further includes a total data quota determination unit, the total data quota determination unit being configured to: determine the total data quota of the receiving end according to the congestion information and the receiving capability of the receiving end;

[0184] The quota determination unit is specifically configured to determine the data quota corresponding to the application information carried in the data quota application to be sent from the total data quota based on the queue priority of the data transmission queue corresponding to the data quota application to be sent.

[0185] (3) Quota sending unit 530

[0186] It is used to send a data quota to the sending end so that the sending end allocates the data quota sent by the receiving end to the data transmission queue corresponding to the data quota application to be sent, so as to update the data quota balance of the data transmission queue corresponding to the data quota application to be sent and obtain the updated data quota balance.

[0187] (4) Data Receiving Unit 540

[0188] It is used to receive the data flow transmitted to the receiving end based on the updated data quota balance by the data transmission queue corresponding to the data quota to be sent by the sending end.

[0189] In specific implementation, the above units can be implemented as independent entities, or can be arbitrarily combined to be implemented as the same or several entities. The specific implementation of the above units can be found in the previous method embodiments and will not be repeated here.

[0190] As can be seen from the above, the data transmission device of this embodiment includes an application receiving unit, a quota determining unit, a quota sending unit and a data receiving unit. Among them, the application receiving unit is used to receive the data volume quota application to be sent by the sending end, the data volume quota application to be sent is used for the corresponding data transmission queue to apply for the data volume quota of the transmission data stream from the receiving end, and the data volume quota application to be sent carries application information related to the data volume quota; the quota determining unit is used to determine the data volume quota based on the application information carried by the data volume quota application to be sent; the quota sending unit is used to send the data volume quota to the sending end, so that the sending end allocates the sent data volume quota to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent, and obtain the updated data volume quota balance; the data receiving unit is used to receive the data stream transmitted by the sending end to the receiving end through the data transmission queue corresponding to the data volume quota application to be sent based on the updated data volume quota balance.

[0191] Therefore, in the embodiment of the present application, the sending end submits a data quota application to the receiving end to request the receiving end to issue a data quota. The receiving end determines the data quota expected by the receiving end based on the application information in the received application and issues the data quota to the sending end. As a result, the receiving end is dynamically allocated an appropriate amount of data quota according to actual needs, reducing the waste of data resources at the receiving end during the transmission process. In addition, by updating the data quota issued by the receiving end to the data transmission queue, the remaining data quota can be effectively managed and allocated, and the use of the data quota can be managed in a timely manner, reducing unnecessary applications and reducing the waste of data resources at the receiving end.

[0192] The present application also provides an electronic device, which may be a terminal, a server, or the like. The terminal may be a mobile phone, a tablet computer, a smart Bluetooth device, a laptop computer, a personal computer, or the like; the server may be a single server or a server cluster consisting of multiple servers, or the like.

[0193] In some embodiments, the data transmission device can also be integrated into multiple electronic devices. For example, the data transmission device can be integrated into multiple servers, and the data transmission method of the present application can be implemented by multiple servers.

[0194] In this embodiment, the electronic device of this embodiment is a server as an example for detailed description, for example, Figure 6 As shown, it shows a schematic diagram of the structure of the server involved in the embodiment of the present application, specifically:

[0195] The server may include one or more processing core processors 610, one or more computer-readable storage media memories 620, a power supply 630, an input module 640, and a communication module 650. Those skilled in the art will appreciate that Figure 4 The server structure shown in the figure does not constitute a limitation on the server, and may include more or fewer components than shown in the figure, or combine certain components, or arrange the components differently.

[0196] Processor 610 is the server's control center, connecting various components of the server using various interfaces and circuits. It executes software programs and / or modules stored in memory 620 and accesses data stored in memory 620 to perform various server functions and process data. In some embodiments, processor 610 may include one or more processing cores. In some embodiments, processor 610 may integrate an application processor and a modem processor. The application processor primarily handles the operating system, user interface, and application programs, while the modem processor primarily handles wireless communications. It is understood that the modem processor may not be integrated into processor 610.

[0197] The memory 620 can be used to store software programs and modules. The processor 610 executes various functional applications and data processing by running the software programs and modules stored in the memory 620. The memory 620 may mainly include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function (such as a sound playback function, an image playback function, etc.), etc.; the data storage area may store data created based on the use of the server, etc. In addition, the memory 620 may include a high-speed random access memory and may also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other volatile solid-state storage device. Accordingly, the memory 620 may also include a memory controller to provide the processor 610 with access to the memory 620.

[0198] The server also includes a power supply 630 that supplies power to various components. In some embodiments, the power supply 630 can be logically connected to the processor 610 via a power management system, thereby enabling the power management system to manage charging, discharging, and power consumption. The power supply 630 can also include one or more DC or AC power supplies, a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator, and other arbitrary components.

[0199] The server may further include an input module 640, which may be configured to receive input digital or character information and generate keyboard, mouse, joystick, optical or trackball signal inputs related to user settings and function controls.

[0200] The server may also include a communication module 650. In some embodiments, the communication module 650 may include a wireless module. The server may use the wireless module of the communication module 650 to perform short-range wireless transmission, thereby providing users with wireless broadband Internet access. For example, the communication module 650 may be used to help users send and receive emails, browse web pages, and access streaming media.

[0201] Although not shown, the server may further include a display unit, etc., which will not be described in detail here. Specifically, in this embodiment, the processor 610 in the server will load the executable files corresponding to one or more application processes into the memory 620 according to the following instructions, and the processor 610 will run the application stored in the memory 620 to implement various functions as follows:

[0202] Determine the data volume quota application to be sent, the data volume quota application to be sent is used by the corresponding data transmission queue to apply to the receiving end for the data volume quota of the transmitted data stream, and the data volume quota application to be sent carries application information related to the data volume quota; send the data volume quota application to be sent to the receiving end, so that the receiving end determines the data volume quota and issues the data volume quota based on the application information carried by the data volume quota application to be sent; allocate the data volume quota issued by the receiving end to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent, and obtain the updated data volume quota balance; transmit the data stream to the receiving end based on the updated data volume quota balance through the data transmission queue corresponding to the data volume quota application to be sent.

[0203] Or, receive the data volume quota application to be sent by the sending end, the data volume quota application to be sent is used for the corresponding data transmission queue to apply for the data volume quota of the transmitted data stream to the receiving end, and the data volume quota application to be sent carries application information related to the data volume quota; determine the data volume quota based on the application information carried by the data volume quota application to be sent; issue the data volume quota to the sending end, so that the sending end allocates the issued data volume quota to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent, and obtain the updated data volume quota balance; receive the data stream transmitted by the sending end to the receiving end based on the updated data volume quota balance through the data transmission queue corresponding to the data volume quota application to be sent.

[0204] The specific implementation of the above operations can be found in the previous embodiments and will not be repeated here.

[0205] As can be seen from the above, the embodiments of the present application can submit a data quota application to the receiving end to request the receiving end to issue a data quota. The receiving end determines the data quota expected by the receiving end based on the application information in the received application and issues the data quota. As a result, the receiving end is dynamically allocated an appropriate amount of data quota based on actual needs, reducing the waste of data resources at the receiving end during the transmission process. In addition, by updating the data quota issued by the receiving end to the data transmission queue, the remaining data quota can be effectively managed and allocated, and the use of the data quota can be managed in a timely manner, reducing unnecessary applications and reducing the waste of data resources at the receiving end.

[0206] Those skilled in the art will appreciate that all or part of the steps in the various methods of the above embodiments may be accomplished by instructions, or by controlling related hardware through instructions. The instructions may be stored in a computer-readable storage medium and loaded and executed by a processor.

[0207] To this end, an embodiment of the present application provides a computer-readable storage medium storing a plurality of instructions that can be loaded by a processor to execute the steps of any of the data transmission methods provided in the embodiments of the present application. For example, the instructions can execute the following steps:

[0208] Determine the data volume quota application to be sent, the data volume quota application to be sent is used by the corresponding data transmission queue to apply to the receiving end for the data volume quota of the transmitted data stream, and the data volume quota application to be sent carries application information related to the data volume quota; send the data volume quota application to be sent to the receiving end, so that the receiving end determines the data volume quota and issues the data volume quota based on the application information carried by the data volume quota application to be sent; allocate the data volume quota issued by the receiving end to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent, and obtain the updated data volume quota balance; transmit the data stream to the receiving end based on the updated data volume quota balance through the data transmission queue corresponding to the data volume quota application to be sent.

[0209] Or, receive the data volume quota application to be sent by the sending end, the data volume quota application to be sent is used for the corresponding data transmission queue to apply for the data volume quota of the transmitted data stream to the receiving end, and the data volume quota application to be sent carries application information related to the data volume quota; determine the data volume quota based on the application information carried by the data volume quota application to be sent; issue the data volume quota to the sending end, so that the sending end allocates the issued data volume quota to the data transmission queue corresponding to the data volume quota application to be sent, so as to update the data volume quota balance of the data transmission queue corresponding to the data volume quota application to be sent, and obtain the updated data volume quota balance; receive the data stream transmitted by the sending end to the receiving end based on the updated data volume quota balance through the data transmission queue corresponding to the data volume quota application to be sent.

[0210] The storage medium may include a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, etc.

[0211] According to one aspect of the present application, a computer program product or computer program is provided, including a computer program or instructions. When executed by a processor, the computer program or instructions implement the steps of the methods provided in the various optional implementations provided in the above embodiments. The computer program / instructions are stored in a computer-readable storage medium. A processor of an electronic device reads the computer program / instructions from the computer-readable storage medium and executes the computer program / instructions, causing the electronic device to perform the methods provided in the various optional implementations provided in the above embodiments.

[0212] Since the instructions stored in the storage medium can execute the steps in any data transmission method provided in the embodiments of the present application, the beneficial effects that can be achieved by any data transmission method provided in the embodiments of the present application can be achieved. Please refer to the previous embodiments for details and will not be repeated here.

[0213] The above is a detailed introduction to a data transmission method, device, electronic device, storage medium and program product provided in the embodiments of the present application. Specific examples are used herein to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method of the present application and its core idea; at the same time, for technical personnel in this field, based on the ideas of the present application, there will be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as a limitation on the present application.

Claims

1. A data transmission method, characterized in that: include: Determine a data quota application to be sent, where the data quota application to be sent is used by a corresponding data transmission queue to apply to a receiving end for a data quota for transmitting a data flow, and the data quota application to be sent carries application information related to the data quota; Sending the data quota application to be sent to the receiving end, so that the receiving end determines the data quota based on the application information carried by the data quota application to be sent and sends the data quota; Allocating the data quota issued by the receiving end to the data transmission queue corresponding to the data quota application to be sent, so as to update the data quota balance of the data transmission queue corresponding to the data quota application to be sent, and obtain an updated data quota balance; The data stream is transmitted to the receiving end based on the updated data quota balance through the data transmission queue corresponding to the data quota to be sent.

2. The data transmission method according to claim 1, wherein: The application information includes the application status of the data quota application to be sent. Before determining the data quota application to be sent, the method further includes: Determining a current application status of a data quota application corresponding to the data transmission queue according to a queue length of the data transmission queue and the data quota balance of the data transmission queue; The step of determining the quota application for the amount of data to be sent includes: When the current application status is different from the application status carried by the data quota application, the data quota application is used as the data quota application to be sent, and the current application status is used as the application status carried by the data quota application to be sent.

3. The data transmission method according to claim 2, wherein: The determining, based on the queue length of the data transmission queue and the data quota balance of the data transmission queue, a current application status of the data quota application corresponding to the data transmission queue includes: When the difference between the queue length of the data transmission queue and the data volume quota balance of the data transmission queue is greater than or equal to a preset threshold, the first application state is used as the current application state; When the difference between the queue length of the data transmission queue and the data volume quota balance of the data transmission queue is less than the preset threshold, the second application state is used as the current application state, and the data volume quota corresponding to the first application state is greater than the data volume quota corresponding to the second application state.

4. The data transmission method according to claim 1, wherein: The application information includes information requesting a data quota. Before determining the data quota application to be sent, the method further includes: Adding the requested data quota information to the data quota application corresponding to the data transmission queue; The step of determining the quota application for the amount of data to be sent includes: Based on the bandwidth-delay product, the data quota application is used as the data quota application to be sent.

5. The data transmission method according to any one of claims 1 to 4, characterized in that: Before determining the data quota application to be sent, the method further includes: Sending a transmission notification to the data quota management component based on a data transmission signal, wherein the data transmission signal includes at least one of an enqueue signal of any of the data transmission queues and a data transmission trigger signal; The data quota management component stores the data quota application corresponding to any of the data transmission queues into a scheduling queue based on the transmission notification, so as to schedule the data quota application from the scheduling queue as the data quota application to be sent.

6. A data transmission method, characterized in that: include: receiving a data quota application to be sent from a sending end, wherein the data quota application to be sent is used by a corresponding data transmission queue to apply to a receiving end for a data quota for a transmission data stream, and the data quota application to be sent carries application information related to the data quota; Determining the data quota based on the application information carried in the data quota application to be sent; issuing the data quota to the sending end, so that the sending end allocates the issued data quota to the data transmission queue corresponding to the data quota application to be sent, so as to update the data quota balance of the data transmission queue corresponding to the data quota application to be sent, and obtain an updated data quota balance; The data transmission queue corresponding to the data volume quota application to be sent is received by the sending end, and the data stream transmitted to the receiving end based on the updated data volume quota balance.

7. The data transmission method according to claim 6, wherein: Before determining the data quota based on the application information carried in the data quota application to be sent, the method further includes: Determining a total data volume quota of the receiving end according to the congestion information and the receiving capability of the receiving end; The determining the data quota based on the application information carried by the data quota application to be sent includes: Based on the queue priority of the data transmission queue corresponding to the data quota application to be sent, the data quota corresponding to the application information carried in the data quota application to be sent is determined from the total data quota.

8. A data transmission device, characterized in that: include: an application determining unit, configured to determine a data quota application to be sent, wherein the data quota application to be sent is used by a corresponding data transmission queue to apply to a receiving end for a data quota for transmitting a data stream, and the data quota application to be sent carries application information related to the data quota; an application sending unit, configured to send the data quota application to be sent to the receiving end, so that the receiving end determines the data quota based on the application information carried by the data quota application to be sent and sends the data quota; a quota allocation unit, configured to allocate the data quota issued by the receiving end to the data transmission queue corresponding to the data quota application to be sent, so as to update the data quota balance of the data transmission queue corresponding to the data quota application to be sent, and obtain an updated data quota balance; The data transmission unit is configured to transmit the data stream to the receiving end based on the updated data quota balance through the data transmission queue corresponding to the data quota to be sent.

9. A data transmission device, characterized in that: include: an application receiving unit, configured to receive an application for a data quota to be sent from a sending end, wherein the application for a data quota to be sent is used by a corresponding data transmission queue to apply to a receiving end for a data quota for a transmission data stream, and the application for a data quota to be sent carries application information related to the data quota; a quota determining unit, configured to determine the data quota based on the application information carried by the data quota application to be sent; A quota sending unit is used to send the data quota to the sending end, so that the sending end allocates the sent data quota to the data transmission queue corresponding to the data quota application to be sent, so as to update the data quota balance of the data transmission queue corresponding to the data quota application to be sent, and obtain an updated data quota balance; The data receiving unit is configured to receive the data stream transmitted by the sending end to the receiving end based on the updated data quota balance through the data transmission queue corresponding to the data quota application to be sent.

10. An electronic device, characterized in that: The method comprises a processor and a memory, wherein the memory stores a plurality of instructions; the processor loads instructions from the memory to execute the steps of the data transmission method according to any one of claims 1 to 7.

11. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a plurality of instructions, and the instructions are suitable for being loaded by a processor to execute the steps in the data transmission method according to any one of claims 1 to 7.

12. A computer program product comprising a computer program or instructions, characterized in that When the computer program or instruction is executed by a processor, the steps of the data transmission method according to any one of claims 1 to 7 are implemented.

Citation Information

Cited By

  • Flow control method, device and equipment

    CN121418360A

  • Data transmission method and device, chip and electronic equipment

    CN121547430A

  • Scheduling circuit, data stream scheduling method and electronic equipment

    CN121833570A