Packet transmission method and apparatus, and chip, network interface card, device, storage medium and program product

By optimizing the congestion control of RDMA network cards through the signaling management module and the signaling overdraft and recovery mechanism at the channel granularity, the problem of insufficient bandwidth utilization and uncontrolled congestion caused by improper configuration of the unscheduled part was solved, and more efficient message transmission was achieved.

WO2026041153A1PCT designated stage Publication Date: 2026-02-26SHENZHEN JAGUAR MICROSYSTEMS CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/119192
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-08-19
Filing Date
2025-09-05
Publication Date
2026-02-26

AI Technical Summary

Technical Problem

In existing RDMA network card congestion control algorithms, improper settings of the unscheduled part can lead to insufficient bandwidth utilization or uncontrolled congestion. Furthermore, passive congestion control algorithms are lagging and cannot accurately adjust the transmission rate.

Method used

The signaling management module is used to perform signaling overdraft and channel-level signaling authorization. The source end determines the maximum message sending volume based on the currently available signaling quota and optimizes signaling usage through signaling recycling and update mechanisms. The destination end adjusts the authorized signaling quota based on the signaling overdraft quota to reduce signaling application loss and authorized message bandwidth occupation.

Benefits of technology

It improves bandwidth utilization, reduces signaling request losses, avoids instantaneous network congestion, and achieves more efficient message transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025119192_26022026_PF_FP_ABST
    Figure CN2025119192_26022026_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to a packet transmission method and apparatus, and a chip, a network interface card, a device, a storage medium and a program product. The method comprises: a packet sending module sending to a signaling management module a signaling application request for a target channel, wherein the target channel is a transmission channel formed by the aggregation of data streams between a source end and a destination end; in response to the signaling application request, the signaling management module determining the current maximum packet sending quantity of the target channel on the basis of the currently available signaling quota of the target channel; on the basis of the current maximum packet sending quantity of the target channel, the packet sending module sending data packets to the destination end; and on the basis of the data amount of the data packets, the signaling management module updating the currently available signaling quota.
Need to check novelty before this filing date? Find Prior Art

Description

Message transmission method and device, chip, network interface card, equipment, storage medium and program product

[0001] Related applications

[0002] The present application claims priority to the Chinese patent application No. 2024111420749, filed on August 19, 2024, and entitled "Message transmission method and device, chip, network interface card, equipment, storage medium and program product", the content of which is hereby incorporated by reference in its entirety. TECHNICAL FIELD

[0003] The present application relates to the chip technical field, and in particular to a message transmission method and device, chip, network interface card, equipment, storage medium and program product. BACKGROUND

[0004] Currently, network cards with Remote Direct Memory Access (RDMA) function need to use a Congestion Control (CC) algorithm to control the sending rate to avoid the situation that the number of messages in the network is greater than the maximum capacity that the switch can bear, resulting in queuing or even packet loss in the switch.

[0005] In related technologies, the message sending rate can be controlled by a Credit Base Congestion Control (Credit-Base-CC) algorithm (for example, Homa congestion algorithm). The Homa congestion algorithm can divide the messages to be sent by the source end into a scheduled portion and an unscheduled portion. When sending the messages, the source end blindly sends the unscheduled portion to the destination end and informs the destination end of the number of scheduled messages to be sent. After receiving the unscheduled message, the destination end sends a grant to the source end, informing the source end of the number of scheduled messages that can be continuously sent.

[0006] However, the congestion algorithm in the related art sets a fixed unscheduled portion and a scheduled portion for each message. If the unscheduled portion is set too large, the sum of the unscheduled traffic of all messages sent by multiple source ends to the same destination end may exceed the receiving capacity of the destination end, leading to uncontrolled congestion. If the unscheduled portion is set too small, the destination end needs to receive the unscheduled message before authorization, and the less data in the unscheduled message, the less signaling authorization, leading to insufficient bandwidth utilization. Therefore, the bandwidth utilization of the congestion algorithm in the related art is insufficient. SUMMARY

[0007] According to various embodiments of the present application, a message transmission method, device, chip, network interface card, equipment, storage medium and program product for improving bandwidth utilization are provided.

[0008] In a first aspect, the present application provides a message transmission method. Applied to a source end, the source end includes a signaling management module and a message sending module; the method comprises:

[0009] The message sending module sends a signaling application request of a target channel to the signaling management module, the target channel being a transmission channel aggregated by data streams between the source end and a destination end;

[0010] The signaling management module determines the current maximum message sending amount of the target channel according to the current available signaling quota of the target channel in response to the signaling application request;

[0011] The message sending module sends data messages to the destination end according to the current maximum message sending amount of the target channel;

[0012] The signaling management module updates the current available signaling quota according to the data amount of the data messages.

[0013] In one embodiment, the message sending module sends data messages to the destination end according to the current maximum message sending amount of the target channel, comprising:

[0014] If the current maximum message sending amount is greater than zero, the message sending module sends the data messages to the destination end;

[0015] If the current maximum message sending amount is equal to zero, the message sending module suspends sending the data messages to the destination end.

[0016] In one of the embodiments, the determining the current maximum message sending amount of the target channel according to the current available signaling amount of the target channel comprises:

[0017] In the condition that the current available signaling amount is greater than or equal to the signaling allocation limit, the signaling management module determines the signaling allocation limit as the current maximum message sending amount of the target channel.

[0018] In the condition that the current available signaling amount is less than the signaling allocation limit, the signaling management module determines the current available signaling amount as the current maximum message sending amount of the target channel.

[0019] In one of the embodiments, the method further comprises:

[0020] In the condition that the signaling application request is the first signaling application request of the target channel or the idle duration of the target channel exceeds the time threshold before the signaling application request is applied again, the message sending module sends a new channel event message to the signaling management module.

[0021] The signaling management module determines a preconfigured overdraft signaling value as the current available signaling amount.

[0022] In one of the embodiments, the source end further comprises a signaling receiving module, and the method further comprises:

[0023] The signaling receiving module receives an authorization message sent by the destination and sends an authorization event message to the signaling management module, and the authorization message and the authorization event message both comprise an authorization signaling amount.

[0024] In the condition that the sum of the authorization signaling amount and the current available signaling amount is greater than or equal to a maximum signaling update value, the signaling management module updates the current available signaling amount using the maximum signaling update value.

[0025] In the condition that the sum of the authorization signaling amount and the current available signaling amount is less than the maximum signaling update value, the signaling management module updates the current available signaling amount using the sum of the authorization signaling amount and the current available signaling amount.

[0026] In a second aspect, the application provides a message transmission method applied to a destination, wherein the destination comprises a message receiving module, a signaling authorization module and a signaling sending module.

[0027] The message receiving module receives a data message sent by a source end through a target channel.

[0028] The message receiving module generates a signaling recovery event message corresponding to the data message and sends the signaling recovery event message to the signaling authorization module, wherein the signaling recovery event message includes a consumed signaling quantity of the data message;

[0029] The signaling authorization module updates a signaling overdraft limit corresponding to the target channel according to the consumed signaling quantity of the data message, and determines an authorized signaling limit corresponding to the target channel according to the updated signaling overdraft limit, wherein the authorized signaling limit is used to adjust a current available signaling limit of the target channel.

[0030] The signaling sending module sends an authorization message to the source end, wherein the authorization message includes the authorized signaling limit.

[0031] In one embodiment, the signaling authorization module determines the authorized signaling limit corresponding to the target channel according to the updated signaling overdraft limit, including:

[0032] If the signaling quantity to be authorized is greater than zero when the target channel is polled in the channel list, the signaling authorization module determines the authorized signaling limit corresponding to the target channel according to the updated signaling overdraft limit.

[0033] In one embodiment, the signaling authorization module determines the authorized signaling limit corresponding to the target channel according to the updated signaling overdraft limit, including:

[0034] If the updated signaling overdraft limit is greater than zero, the signaling authorization module determines the minimum value between the updated signaling overdraft limit and a maximum signaling update value as the authorized signaling limit corresponding to the target channel.

[0035] If the updated signaling overdraft limit is equal to zero, the signaling authorization module determines an additional returned signaling limit as the authorized signaling limit corresponding to the target channel.

[0036] If the updated signaling overdraft limit is less than zero and greater than a negative value of the additional returned signaling limit, the signaling authorization module determines the sum of the additional returned signaling limit and the updated signaling overdraft limit as the authorized signaling limit corresponding to the target channel.

[0037] In one embodiment, after the signaling authorization module determines the authorized signaling limit corresponding to the target channel according to the updated signaling overdraft limit, the method further includes:

[0038] According to the authorized signaling limit corresponding to the target channel, the signaling quantity to be authorized and the updated signaling overdraft limit are adjusted.

[0039] In one of the embodiments, the destination further comprises a signaling production module; and the method further comprises:

[0040] When the data packet comprises the congestion identifier, the packet receiving module generates a congestion event message and sends the congestion event message to the signaling production module;

[0041] The signaling production module adjusts the maximum receiving rate of the destination in response to the congestion event message;

[0042] The signaling production module determines the number of produced signaling according to the maximum receiving rate and a signaling period;

[0043] The signaling production module sends a signaling generation event message to the signaling authorization module, wherein the signaling generation event message comprises the number of produced signaling;

[0044] The signaling authorization module adjusts the number of to-be-authorized signaling according to the number of produced signaling.

[0045] In a third aspect, the present application provides a packet transmission device, which is configured in a source end, and comprises a signaling management module and a packet sending module;

[0046] The packet sending module is configured to send a signaling application request of a target channel to the signaling management module, wherein the target channel is a transmission channel aggregated by data streams between the source end and a destination end;

[0047] The signaling management module is configured to determine a current maximum packet sending amount of the target channel according to a current available signaling quota of the target channel in response to the signaling application request;

[0048] The packet sending module is configured to send data packets to the destination end according to the current maximum packet sending amount of the target channel;

[0049] The signaling management module is configured to update the current available signaling quota according to a data amount of the data packets.

[0050] In one of the embodiments, the packet sending module is further configured to send the data packets to the destination end when the current maximum packet sending amount is greater than zero, and to suspend sending the data packets to the destination end when the current maximum packet sending amount is equal to zero.

[0051] In one of the embodiments, the signaling management module is further configured to determine the signaling allocation limit as the current maximum message sending amount of the target channel if the current available signaling amount is greater than or equal to the signaling allocation limit; and determine the current available signaling amount as the current maximum message sending amount of the target channel if the current available signaling amount is less than the signaling allocation limit.

[0052] In one of the embodiments, the message sending module is further configured to send a new channel event message to the signaling management module if the signaling application request is a first signaling application request of the target channel or a signaling application request for reapplying signaling after an idle duration of the target channel exceeds a time threshold.

[0053] The signaling management module is further configured to determine a preconfigured overdraft signaling value as the current available signaling amount.

[0054] In one of the embodiments, the message transmission device further comprises a signaling receiving module.

[0055] The signaling receiving module is further configured to receive an authorization message sent by the destination and send an authorization event message to the signaling management module, wherein the authorization message and the authorization event message both comprise an authorization signaling amount.

[0056] If the sum of the authorization signaling amount and the current available signaling amount is greater than or equal to a maximum signaling update value, the signaling management module updates the current available signaling amount using the maximum signaling update value.

[0057] If the sum of the authorization signaling amount and the current available signaling amount is less than the maximum signaling update value, the signaling management module updates the current available signaling amount using the sum of the authorization signaling amount and the current available signaling amount.

[0058] In one of the embodiments, the signaling management module is further configured to adjust the to-be-authorized signaling amount and the updated signaling overdraft amount according to the authorization signaling amount corresponding to the target channel.

[0059] In a fourth aspect, the present application provides a message transmission device, which is configured in a destination, and comprises a message receiving module, a signaling authorization module and a signaling sending module.

[0060] The message receiving module is configured to receive data messages sent by a source through a target channel.

[0061] The message receiving module is configured to generate a signaling recycling event message corresponding to the data message and send the signaling recycling event message to the signaling authorization module, wherein the signaling recycling event message comprises a consumed signaling quantity of the data message;

[0062] The signaling authorization module is configured to update a signaling overdraft limit corresponding to the target channel according to the consumed signaling quantity of the data message, and determine an authorized signaling quantity corresponding to the target channel according to the updated signaling overdraft limit, wherein the authorized signaling quantity is used to adjust a current available signaling quantity of the target channel.

[0063] The signaling sending module is configured to send an authorized message to the source end, wherein the authorized message comprises the authorized signaling quantity.

[0064] In one of the embodiments, the signaling authorization module is further configured to, when the signaling quantity to be authorized is greater than zero in the channel list, determine the authorized signaling quantity corresponding to the target channel according to the updated signaling overdraft limit.

[0065] In one of the embodiments, the signaling authorization module is further configured to, when the updated signaling overdraft limit is greater than zero, determine the minimum value between the updated signaling overdraft limit and a maximum signaling authorization value as the authorized signaling quantity corresponding to the target channel; when the updated signaling overdraft limit is equal to zero, determine an additional returned signaling quantity as the authorized signaling quantity corresponding to the target channel; and when the updated signaling overdraft limit is less than zero and greater than a negative value of the additional returned signaling quantity, determine the sum of the additional returned signaling quantity and the updated signaling overdraft limit as the authorized signaling quantity corresponding to the target channel.

[0066] In one of the embodiments, the destination end further comprises a signaling production module.

[0067] The message receiving module is further configured to, when the data message comprises a congestion identifier, generate a congestion event message and send the congestion event message to the signaling production module.

[0068] The signaling production module is configured to, in response to the congestion event message, adjust a maximum receiving rate of the destination end, determine a produced signaling quantity according to the maximum receiving rate and a signaling period, and send a signaling production event message to the signaling authorization module, wherein the signaling production event message comprises the produced signaling quantity.

[0069] The signaling authorization module is further configured to adjust the signaling quantity to be authorized according to the produced signaling quantity.

[0070] In a fifth aspect, the present application provides a chip. The chip comprises a memory and a processor, and the memory stores a computer program. The processor implements the packet transmission method in the first aspect or the second aspect when executing the computer program.

[0071] In a sixth aspect, the present application provides a network interface card. The network interface card comprises the chip in the fifth aspect and a plurality of interfaces, and the chip communicates with the outside through the interfaces.

[0072] In a seventh aspect, the present application provides a computer device. The computer device comprises a central processor and the chip in the fifth aspect. The chip is configured to schedule a packet to the central processor or to process the packet by itself. The central processor is configured to process the packet scheduled by the chip.

[0073] In an eighth aspect, the present application provides a computer readable storage medium. The computer readable storage medium stores a computer program. The computer program is executed by a processor to implement the packet transmission method in the first aspect or the second aspect.

[0074] In a ninth aspect, the present application provides a computer program product. The computer program product comprises a computer program. The computer program is executed by a processor to implement the packet transmission method in the first aspect or the second aspect.

[0075] The details of one or more embodiments of the present application are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the present application will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF DRAWINGS

[0076] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the accompanying drawings needed to be used in the embodiments or the prior art description will be briefly introduced. Obviously, the accompanying drawings in the following description are only some embodiments of the present application, and other accompanying drawings can be obtained by those skilled in the art without any creative effort based on the disclosed accompanying drawings.

[0077] FIG. 1 is a schematic diagram of the principle of Homa congestion algorithm in the related art;

[0078] FIG. 2 is an application scenario diagram of a packet transmission method provided by an embodiment of the present application;

[0079] FIG. 3 is a flowchart of a packet transmission method provided by an embodiment of the present application;

[0080] FIG. 4 is a flowchart of another packet transmission method provided by an embodiment of the present application;

[0081] FIG. 5 is a flow diagram of another packet transmission method according to an embodiment of the present application;

[0082] FIG. 6 is a flow diagram of another packet transmission method according to an embodiment of the present application;

[0083] FIG. 7 is a structural block diagram of a packet transmission apparatus according to an embodiment of the present application;

[0084] FIG. 8 is a structural block diagram of another packet transmission apparatus according to an embodiment of the present application;

[0085] FIG. 9 is an internal structure diagram of a computer device according to an embodiment of the present application. DETAILED DESCRIPTION

[0086] The technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the scope of protection of the present application.

[0087] Firstly, the related art will be described below.

[0088] Currently, a network card with a remote direct memory access (RDMA) function needs to use a congestion control (CC) algorithm to control the sending rate, so as to avoid the situation that the number of packets in the network is greater than the maximum capacity that a switch can bear, resulting in queuing or even packet loss in the switch.

[0089] The RDMA congestion algorithm can use a passive congestion control mechanism, i.e., starting to control only when congestion occurs. The source end starts to send packets at a specific rate, and then detects whether the network is congested. If the network is congested, the source end reduces the sending rate, otherwise, the source end increases the sending rate. Exemplarily, the passive congestion algorithm can include a data center quantized congestion notification (DCQCN) algorithm, a Timely congestion algorithm, and a Swift congestion algorithm, etc. However, the passive congestion algorithm usually has the disadvantages of hysteresis of control and unquantifiable degree of control.

[0090] Specifically, for the disadvantage of hysteresis of control, when network congestion occurs, the passive congestion algorithm needs at least one round-trip time (RTT) time, and then the source end can perceive the congestion and reduce the speed. Moreover, when congestion occurs, the RTT will become larger, and the larger RTT time will delay the source end to obtain congestion information, thereby further reducing the congestion control effect.

[0091] For the disadvantage that the control degree cannot be quantified, the source end only knows that the message overload causes congestion, but does not know how many messages overload, thereby causing the source end to be unable to accurately reduce and increase the speed. In the passive congestion algorithm, the rate update algorithm of additive increase multiply decrease (AIMD) is usually used to adjust the sending rate. That is, the sending rate is adjusted by using multiplication (multiplying a proportion coefficient greater than 0 and less than 1) for speed reduction, and using addition (adding a fixed rate increment) for speed increase. However, the efficiency of rate control in the passive congestion algorithm is difficult to meet the actual conditions and needs in the congestion scenario.

[0092] In order to solve the disadvantages of the passive congestion algorithm, a Homa congestion algorithm is proposed in the related technology, which is a credit base congestion control (Credit-Base-CC) algorithm. The Homa congestion algorithm can divide the message to be sent by the source end into a scheduled portion and an unscheduled portion. When sending the message, the source end blindly sends the unscheduled portion to the destination, and informs the destination of the number of scheduled messages to be sent. After receiving the unscheduled message, the destination sends a grant to the source end, and informs the source end of the number of scheduled messages that can be sent.

[0093] In addition, using the Homa congestion algorithm, the destination can also specify the priority of the message according to the size of the message. When multiple messages arrive at the same time, due to the limited bandwidth, the destination can only authorize one message, and until the authorization of the message is completed, the next message can be authorized. After receiving the grant message, the source end continues to send the scheduled message.

[0094] For example, FIG. 1 is a schematic diagram of a principle of a Homa congestion algorithm in the related art. As shown in FIG. 1, a source end sends data (data) messages of an unscheduled part to a destination end. Then, the destination end sends a grant message to the source end, informing the source end of messages that can be transmitted and a priority used for transmission. The source end sends data messages of a scheduled part to the destination end according to the grant message.

[0095] The data messages of the scheduled part and the unscheduled part can include data, an offset, a length of a message, and a length of a message.

[0096] It should be understood that, since the message is cut into multiple messages, the offset can represent a message number. Correspondingly, the data messages received by the destination end include the offset, and the grant message sent by the destination end to the source end can inform the source end of all messages before the offset.

[0097] For the Homa congestion algorithm in the related art, the following disadvantages exist:

[0098] Firstly, the destination end performs signaling authorization in a message granularity (i.e., unit), and signaling authorization of one message needs to be completed before signaling authorization of a next message. When there are many messages or when a single message is large, the following messages are blocked, resulting in unfairness between the messages.

[0099] Secondly, each message has a fixed unscheduled part and a scheduled part. If the unscheduled part is set too large, a sum of unscheduled traffic of all messages sent by multiple source ends to the same destination end can exceed a receiving capability of the destination end, resulting in uncontrolled congestion. If the unscheduled part is set too small, the destination end needs to receive the unscheduled message before authorization. When the unscheduled message has less data, the authorization signaling is also less, resulting in insufficient bandwidth utilization. Therefore, the bandwidth utilization of the congestion algorithm in the related art is insufficient.

[0100] Finally, in the Homa congestion algorithm, the destination end authorizes at a fixed rate without network congestion signal feedback. When the unscheduled message is uncontrolled or there is a local network failure, continuous congestion can be caused.

[0101] To solve the above problems, the embodiment of the present application provides a message transmission method, device, chip, network interface card, equipment, storage medium and program product, the source end does not need to actively apply for signaling to the destination end, can overspend signaling, reduces the bandwidth consumed by signaling application; and signaling authorization is carried out with channel as granularity, avoids that each flow needs to authorize message, reduces the occupation of authorized message to bandwidth, thereby improve the bandwidth utilization.

[0102] The application scenario of the message transmission method related to the present application is described below.

[0103] The message transmission method provided by the embodiment of the present application can be applied in the application environment as shown in FIG. 2. FIG. 2 is an application environment diagram of the message transmission method provided by the embodiment of the present application. As shown in FIG. 2, the source end 101 and the destination end 102 can be two different network devices. When there is a message transmission task, the message sending module of the source end 101 sends a signaling application request of a target channel to the signaling management module of the source end 101, and the target channel is a transmission channel aggregated by the data flow between the source end and the destination end. The signaling management module responds to the signaling application request, and determines the current maximum message sending amount of the target channel according to the current available signaling quota of the target channel. Subsequently, the message sending module sends data messages to the destination end 102 according to the current maximum message sending amount of the target channel, and the signaling management module updates the current available signaling quota according to the data amount of the sent data messages. Correspondingly, the message receiving module of the destination end 102 receives the data messages sent by the source end through the target channel. Secondly, the message receiving module generates a signaling recycling event message corresponding to the data messages and sends the signaling recycling event message to the signaling authorization module of the destination end 102, and the signaling recycling event message includes the signaling amount consumed by the sent data messages. Thirdly, the signaling authorization module updates the signaling overspending quota corresponding to the target channel according to the signaling amount consumed by the data messages, and determines the authorized signaling quota corresponding to the target channel according to the updated signaling overspending quota. Finally, the signaling sending module of the destination end 102 sends an authorized message to the source end, and the authorized message includes the authorized signaling quota.

[0104] It should be understood that the embodiment of the present application does not limit the source end 101 and the destination end 102, and in some embodiments, the above-mentioned source end 101 and the destination end 102 can be a data processor chip (Data Processing Unit), a network interface card (Network Interface Card), a server (Sever), a network adapter (Network Adapter), a switch (Switch) or a router (Router) and the like network equipment.

[0105] In one embodiment, as shown in FIG. 3, a packet transmission method is provided, which is applied to the source end in FIG. 2, and the source end includes a signaling management module and a packet sending module. The communication method includes:

[0106] S201. The packet sending module sends a signaling application request of a target channel to the signaling management module.

[0107] In the present application, when the packet sending module needs to process the sending behavior of a data packet, the packet sending module can first send a signaling application request to the signaling management module, so that the signaling management module performs signaling management based on a target channel corresponding to the data packet, and determines the current maximum packet sending quantity of the target channel.

[0108] The target channel is a transmission channel aggregated by data flows between the source end and the destination end.

[0109] It should be understood that the signaling management module performs signaling management in the granularity of a channel, and all data flows (flows) having the same destination end from the source end can be aggregated into one channel, and the flows of the same channel share a set of signaling authorization management mechanisms and algorithms. A flow includes at least one data packet.

[0110] It should be understood that the embodiments of the present application do not limit how to perform channel division. For example, the signaling management module can determine whether it is the same destination end by the IP address of the destination end or the port of the destination end, and then perform channel division.

[0111] It should be noted that in the congestion management control, signaling authorization and management can also be performed in the granularity of a flow or a message queue (QP).

[0112] S202. The signaling management module determines the current maximum packet sending quantity of the target channel according to the current available signaling quota of the target channel in response to the signaling application request.

[0113] In this step, when the signaling management module receives the signaling application request of the target channel sent by the packet sending module, the signaling management module can determine the current maximum packet sending quantity of the target channel according to the current available signaling quota of the target channel.

[0114] Next, the current available signaling quota in the present application is described.

[0115] In the embodiments of the present application, the current available signaling quota of the target channel can be the signaling quota of the target channel authorized by the destination device or the overdraft signaling value of the target channel. The current available signaling quota can be adjusted in real time with at least one of the authorized packets sent by the destination device and the data packets sent by the source device.

[0116] In some embodiments, the message sending module can further send a new channel event message to the signaling management module under the condition that the signaling application request is the first signaling application request of the target channel or the idle duration of the target channel exceeds a time threshold. The signaling management module determines the preconfigured credit overdraft value as the current available signaling quota.

[0117] The time threshold can be set according to actual conditions, and examples can be 5 minutes, 10 minutes, 30 minutes, etc.

[0118] The new channel event message is used to trigger the channel creation process. When the message sending module initiates the signaling application request for the first time for the target channel or initiates the signaling application request again after a long time without sending data messages, the message sending module can send a new channel event (new_channel_event) message to the signaling management module, and the signaling management module can initialize the current available signaling quota of the target channel to the preconfigured credit overdraft value.

[0119] The credit overdraft value is the signaling quota that the destination does not authorize to the source device. The greater the credit overdraft value, the greater the start rate of the source device sending data messages. The smaller the credit overdraft value, the smaller the start rate of the source device sending data messages.

[0120] In this application, the source device can directly transmit data messages based on the credit overdraft value after creating a channel, so that the destination recovers the overdraft signaling according to the length of the data message. In this way, on the one hand, the bandwidth loss of the signaling application can be reduced, and on the other hand, the source device does not need to wait for an RTT to send data messages, thereby improving the network utilization.

[0121] In some embodiments, the source device further includes a signaling receiving module. The signaling receiving module receives an authorization message sent by the destination and sends an authorization event message to the signaling management module. The authorization message and the authorization event message both include an authorized signaling quota. The signaling management module can adjust the current available signaling quota based on the authorized signaling quota.

[0122] Under the condition that the sum of the authorized signaling quota and the current available signaling quota is greater than or equal to the maximum signaling update value, the signaling management module uses the maximum signaling update value to update the current available signaling quota. Under the condition that the sum of the authorized signaling quota and the current available signaling quota is less than the maximum signaling update value, the signaling management module uses the sum of the authorized signaling quota and the current available signaling quota to update the current available signaling quota.

[0123] The maximum signaling update value (credit max) can be configured by a parameter, and embodiments of the present application do not limit this. For example, after the signaling receiving module receives the authorization message, an authorization event is generated, and the signaling management module does not simply add the authorization signaling credit to the current available signaling credit, but sets a maximum signaling update value (credit max) to prevent a large amount of signaling accumulation due to a long time without consumption. If the sum of the authorization signaling credit and the current available signaling credit is less than the maximum signaling update value (credit max), the current available signaling credit can be updated by adding the authorization signaling credit to the current available signaling credit. If the sum of the authorization signaling credit and the current available signaling credit is greater than or equal to the maximum signaling update value (credit max), the current available signaling credit can be directly updated to the maximum value of the signaling.

[0124] It should be understood that embodiments of the present application do not limit how to determine the current maximum message sending amount of the target channel according to the current available signaling credit of the target channel. In some embodiments, if the current available signaling credit is greater than or equal to the signaling allocation limit, the signaling management module determines the signaling allocation limit as the current maximum message sending amount of the target channel. If the current available signaling credit is less than the signaling allocation limit, the signaling management module determines the current available signaling credit as the current maximum message sending amount of the target channel.

[0125] The current maximum message sending amount can be indicated by a signaling value sent by the signaling management module to the message sending module. For example, the signaling can be a token.

[0126] For example, the signaling management module can send a 0 or N token value with byte granularity to the message sending module, and the token value can represent the current maximum message sending amount of the target channel. If the token value is 0, it means that no data message is allowed to be sent. If the token value is N (N is a positive number), it means that the current maximum message sending amount allowed cannot exceed N, that is, the total number of bytes of the sent data message cannot exceed N.

[0127] The signaling allocation limit (credit burst) can be specifically set based on actual conditions, and embodiments of the present application do not limit this.

[0128] It should be understood that, since different flows bind the same channel, the message sending module initiates a signaling application request in a flow granularity. By comparing the current available signaling quota and the signaling allocation limit, the signaling management module does not return all the signaling to the message sending module at one time, but allocates the signaling allocation limit at most each time, so as to ensure that the message sending module does not burst too much at one time and cause network congestion, and also to ensure fairness between different flows.

[0129] It should be noted that the message transmission method implemented by the signaling management module can be implemented by a central processing unit (CPU) small core or hardware (such as an application specific integrated circuit (ASIC)), and the signaling management module can ensure that the sending module reasonably uses the authorized signaling, so as to maximize the bandwidth utilization rate and not cause network congestion.

[0130] S203, the message sending module sends data messages to the destination according to the current maximum message sending amount of the target channel.

[0131] In this step, after the signaling management module responds to the signaling application request and determines the current maximum message sending amount of the target channel according to the current available signaling quota of the target channel, the message sending module can send data messages to the destination according to the current maximum message sending amount of the target channel.

[0132] In some embodiments, under the condition that the current maximum message sending amount is greater than zero, the message sending module sends data messages to the destination. Under the condition that the current maximum message sending amount is equal to zero, the message sending module suspends sending data messages to the destination.

[0133] For example, the current maximum message sending amount can be indicated by the token value allocated by the signaling management module. The message sending module consumes token values corresponding to the number of bytes of messages sent, until the token is 0 or there is no data message to send. If there are unused tokens, they can be used next time when data messages are sent.

[0134] S204, the signaling management module updates the current available signaling quota according to the data amount of the data message.

[0135] In this step, after the signaling value is allocated for the target channel to indicate the current maximum message sending amount, and the message sending module consumes the signaling to send data messages, the signaling management module can update the current available signaling quota according to the data amount of the data message.

[0136] For example, the packet sending module consumes as many signaling as the number of bytes of the packet sent, and correspondingly, the signaling management module can subtract as many signaling as the number of bytes of the packet sent from the current available signaling quota of the target channel to update the current available signaling quota.

[0137] The packet transmission method provided by the embodiments of the present application includes the following steps. First, the packet sending module of the source end sends a signaling application request of a target channel to the signaling management module of the source end. The target channel is a transmission channel formed by aggregation of data flows between the source end and the destination end. Second, the signaling management module determines the current maximum packet sending amount of the target channel according to the current available signaling quota of the target channel in response to the signaling application request. Third, the packet sending module sends a data packet to the destination end according to the current maximum packet sending amount of the target channel. Finally, the signaling management module updates the current available signaling quota according to the data amount of the data packet. Since the source end does not need to actively apply for signaling from the destination end, the source end can overdraft the signaling, and the bandwidth consumed by the signaling application is reduced. In addition, the signaling is authorized in the granularity of a channel, and each flow does not need to be authorized for a packet, so the bandwidth occupied by the authorized packet is reduced, thereby improving the bandwidth utilization.

[0138] In one embodiment, as shown in FIG. 4, a packet transmission method is provided, and the method is applied to the destination in FIG. 2. The destination includes a packet receiving module, a signaling authorization module, and a signaling sending module. The communication method includes the following steps.

[0139] S301, the packet receiving module receives a data packet sent by the source end through the target channel.

[0140] In the present application, after the data packet is sent from the packet sending module of the source end, the data packet can be sent to the packet receiving module of the destination end through the network for subsequent packet processing.

[0141] In some embodiments, the data packet can be forwarded between the source end and the destination end through a packet forwarding device. In the forwarding process, if congestion is detected, the packet forwarding device can add a congestion identifier to the data packet to remind the destination to adjust the production speed of the signaling.

[0142] The packet forwarding device can include a switch, a router device, or other network devices, and the congestion identifier can include an explicit congestion notification (ECN).

[0143] It should be understood that the embodiments of the present application do not limit how to detect congestion, in some embodiments, the packet forwarding device can achieve by detecting the queuing depth of the data packet. If the queuing depth of the data packet is greater than the minimum queuing depth (Kmin), the packet forwarding device can determine that congestion occurs, and accordingly can add congestion identification in the data packet. If the queuing depth of the data packet is less than or equal to the minimum queuing depth (Kmin), the packet forwarding device can determine that congestion occurs, and accordingly can add congestion identification in the data packet.

[0144] S302, the packet receiving module generates a signaling recovery event message corresponding to the data packet and sends the signaling recovery event message to the signaling authorization module.

[0145] In the signaling recovery event message, the number of consumed signaling for sending the data packet is included.

[0146] It should be understood that the embodiments of the present application do not limit how to determine the number of consumed signaling for sending the data packet, in some embodiments, the number of consumed signaling for sending the data packet can be equal to the packet length.

[0147] In other embodiments, the packet receiving module can maintain a channel list (channel_list), and if the target channel corresponding to the data packet is not in the channel list, the target channel can be added to the tail of the channel list, so that the signaling authorization module allocates the authorized signaling quota for the target channel subsequently. If the channel does not need authorized signaling, the channel can be removed from the channel list.

[0148] S303, the signaling authorization module updates the signaling overdraft quota corresponding to the target channel according to the number of consumed signaling for sending the data packet, and determines the authorized signaling quota corresponding to the target channel according to the updated signaling overdraft quota, the authorized signaling quota is used to adjust the current available signaling quota of the target channel.

[0149] In this step, when the signaling authorization module receives the signaling recovery event message, the signaling overdraft quota corresponding to the target channel can be updated according to the number of consumed signaling for sending the data packet, and the authorized signaling quota corresponding to the target channel can be determined according to the updated signaling overdraft quota.

[0150] In some embodiments, when the signaling authorization module receives the signaling recovery event message, the signaling overdraft quota corresponding to the target channel can be updated by accumulating the number of consumed signaling for sending the data packet on the signaling overdraft quota corresponding to the target channel.

[0151] It should be understood that the signaling authorization module receiving the signaling reclaim event message means that the source end has started to consume signaling and is waiting for the signaling authorization module to return the signaling. The source end consumes one signaling, and the signaling overdraft amount of the target channel is increased by one. If the target channel is not in the authorized queue, the signaling authorization module can insert the target channel into the tail of the channel list.

[0152] The following describes how the signaling authorization module allocates the authorized signaling amount for the target channel.

[0153] In some embodiments, the signaling authorization module can maintain a global variable (total_credit) representing the amount of signaling to be authorized. The destination end also includes a signaling production module. When the signaling production module sends a signaling generation event message to the signaling authorization module, the global variable is increased. When the signaling authorization module allocates the authorized signaling amount for any channel, the global variable is decreased. The signaling authorization module can poll the channel list and allocate the authorized signaling amount for each channel in turn based on the global variable.

[0154] For example, when the target channel is polled in the channel list, the amount of signaling to be authorized is greater than zero. Then, the signaling authorization module can determine the authorized signaling amount for the target channel according to the updated signaling overdraft amount. When the target channel is polled in the channel list, the amount of signaling to be authorized is equal to zero. Then, the target channel cannot be authorized, and needs to wait for the production module to produce new signaling.

[0155] The following describes how to determine the authorized signaling amount for the target channel.

[0156] In some embodiments, when the updated signaling overdraft amount is greater than zero, the signaling authorization module determines the minimum value between the updated signaling overdraft amount and the maximum signaling authorization value as the authorized signaling amount for the target channel.

[0157] For example, when the updated signaling overdraft amount (channel_overdraft) is greater than zero, it means that the source end overdrafts the corresponding amount of signaling. Therefore, the updated signaling overdraft amount and the maximum signaling authorization value can be compared, and the minimum value between the updated signaling overdraft amount and the maximum signaling authorization value is determined as the authorized signaling amount for the target channel, so as to ensure that the amount of signaling authorized by the signaling authorization module does not exceed the overdraft amount.

[0158] In some embodiments, when the updated signaling overdraft amount is equal to zero, the signaling authorization module can determine the additional returned signaling amount as the authorized signaling amount for the target channel.

[0159] For example, the updated signaling overdraft amount (channel_overdraft) is equal to zero, which means that all the overdraft signaling has been returned, and the rate of the destination-authorized signaling is greater than the rate of the source-signaling consumption. In order to increase the source transmission rate, the signaling authorization module can perform source-signaling deficiency processing, i.e., the extra returned signaling amount (temp_credit) is authorized to the source, and the channel_overdraft is set to negative (0-temp_credit).

[0160] It should be noted that the source has less data messages to be sent or no data messages to be sent, or the source has less signaling to be used, which causes the data messages to be unable to be sent to the destination in time, and the destination can perceive a decrease in the signaling consumption rate, thereby causing the rate of the destination-authorized signaling to be greater than the rate of the source-signaling consumption.

[0161] In some embodiments, the updated signaling overdraft amount is less than zero and greater than the negative value of the extra returned signaling amount, and the signaling authorization module determines the authorized signaling amount corresponding to the target channel as the sum of the extra returned signaling amount and the updated signaling overdraft amount.

[0162] For example, the updated signaling overdraft amount is less than zero and greater than the negative value of the extra returned signaling amount, which means that the source-signaling consumption rate is less than the destination-signaling return rate, and the signaling authorization module can maintain the signaling return rate, and the authorized signaling amount can be temp_credit+channel_overdraft.

[0163] In some embodiments, the updated signaling overdraft amount is equal to the negative value of the extra returned signaling amount, and the signaling authorization module can remove the target channel from the channel list and no longer perform signaling authorization.

[0164] In some embodiments, after the signaling authorization module determines the authorized signaling amount corresponding to the target channel and the signaling sending module sends the corresponding authorized message to the source, the signaling authorization module can adjust the number of the to-be-authorized signaling and the updated signaling overdraft amount according to the authorized signaling amount corresponding to the target channel.

[0165] For example, the signaling authorization module can subtract the authorized signaling amount corresponding to the target channel from the number of the to-be-authorized signaling and the updated signaling overdraft amount, respectively, so as to complete the adjustment of the number of the to-be-authorized signaling and the updated signaling overdraft amount.

[0166] In the present application, the signaling authorization module polls the channel list, which is not affected by the network topology, and the number of single authorization signaling of each channel cannot exceed the maximum signaling authorization value, ensuring that each channel can get the same signaling at the same time to achieve fairness between channels. Moreover, since the signaling overdraft is allowed, the signaling authorization module can adjust the authorization rate according to the source signaling consumption rate, thereby balancing the sending and receiving rates.

[0167] The following describes how the signaling production module of the destination produces signaling.

[0168] In some embodiments, under the condition that the congestion identifier is included in the data packet, the packet receiving module generates a congestion event message and sends the congestion event message to the signaling production module. Subsequently, the signaling production module adjusts the maximum receiving rate of the destination in response to the congestion event message, and determines the number of produced signaling according to the maximum receiving rate and the signaling period. Finally, the signaling production module sends a signaling generation event message to the signaling authorization module, and the signaling generation event message includes the number of produced signaling, so that the signaling authorization module adjusts the number of signaling to be authorized according to the number of produced signaling.

[0169] It should be understood that the rate of signaling production by the signaling production module is determined by the maximum receiving rate of the destination. The signaling production module produces a number of signaling units per signaling period, and the production quantity depends on the maximum receiving rate. The greater the receiving rate, the more signaling units are produced, and the smaller the receiving rate, the fewer signaling units are produced.

[0170] For example, the number of produced signaling can be calculated by formula (1). M = receive_rate_max * credit_cycle / credit_unit (1)

[0171] Wherein, M is the number of produced signaling, receive_rate_max is the maximum receiving rate, credit_cycle is the signaling period, and credit_unit is the signaling unit.

[0172] It should be understood that the maximum receiving rate is affected by the congestion event. When the network is congested, the receiving rate decreases, and when the network is not congested, the receiving rate increases, but cannot exceed the physical bandwidth limit. For example, the maximum receiving rate of the destination can be determined based on the congestion identifier by using a congestion control algorithm such as DCQCN or timely.

[0173] In the present application, the signaling production module adjusts the signaling production rate according to the network congestion condition, thereby better achieving congestion control.

[0174] S304, the signaling sending module sends an authorization packet to the source, and the authorization packet includes an authorized signaling quota.

[0175] In the present application, the signaling sending module of the destination can return the authorized signaling quota to the signaling management module of the source by sending an authorization message to the source, so that the signaling management module continues to allocate signaling for the target channel.

[0176] It should be noted that in the present application, the authorization message can be sent in channel granularity, so as to avoid the need for authorization message for each flow, reduce the bandwidth occupation of the authorization message, and avoid the waste of bandwidth caused by the fact that the flow cannot send packets when the size of the authorization signaling is less than one maximum transmission unit.

[0177] In the present application, the source can overdraft signaling in channel granularity, and the destination can return signaling. Moreover, the destination perceives the signaling consumption rate of the source through data messages, and performs signaling compensation when the signaling consumption rate of the source is less than the signaling authorized rate of the destination, so as to realize dynamic adjustment of the authorized signaling quota and improve the congestion control effect.

[0178] In the present application, the signaling management module and the signaling authorization module are both event triggered, and the number of triggered events is small, the interface is simple, and the implementation is convenient. The related algorithms in the signaling management module and the signaling authorization module only need a small number of judgment statements and addition and subtraction operations, do not need complex multiplication and division, do not depend on time stamp and complex task scheduling capability, so that they can be quickly realized by using a small CPU core or hardware, thereby reducing the cost.

[0179] The following describes how the signaling management module manages signaling. FIG. 5 is a flowchart of another message transmission method provided by an embodiment of the present application. As shown in FIG. 5, the message transmission method includes S401-S410.

[0180] S401, it is determined whether a new channel event message is received.

[0181] If yes, S402 is performed, and if no, S403 is performed.

[0182] S402, the preconfigured overdraftable signaling value is determined as the current available signaling quota.

[0183] S403, it is determined whether a signaling application request is received.

[0184] If yes, S404 is performed, and if no, S405 is performed.

[0185] S404, the current maximum message sending amount of the target channel is determined according to the current available signaling quota of the target channel.

[0186] S405, the signaling is returned to the message sending module.

[0187] S406, determining whether an authorized event message is received.

[0188] If yes, S407 is performed, and if no, S410 is performed.

[0189] S407, determining whether the sum of the authorized signaling quota and the current available signaling quota is greater than or equal to a maximum signaling update value.

[0190] If yes, S408 is performed, and if no, S409 is performed.

[0191] S408, updating the current available signaling quota using the maximum signaling update value.

[0192] S409, updating the current available signaling quota using the sum of the authorized signaling quota and the current available signaling quota.

[0193] S410, ending the signaling management.

[0194] The following describes how the signaling authorization module performs signaling authorization. FIG. 6 is a flowchart of another message transmission method provided by an embodiment of the present application. As shown in FIG. 6, the message transmission method includes S501-S518.

[0195] S501, determining whether a production event message is received.

[0196] If yes, S506 is performed, and if no, S502 is performed.

[0197] S502, determining whether a signaling recycling event message is received.

[0198] If yes, S503 is performed, and if no, S518 is performed.

[0199] S503, updating the signaling overdraft quota corresponding to the target channel according to the amount of signaling consumed by the data message.

[0200] S504, determining whether the target channel is in the channel list.

[0201] If yes, S518 is performed, and if no, S505 is performed.

[0202] S505, adding to the tail of the channel list.

[0203] After S505, S518 is performed.

[0204] S506, adjusting the amount of signaling to be authorized according to the amount of signaling produced.

[0205] S507, determining whether the signaling overdraft quota is greater than zero.

[0206] If yes, S508 is executed, and if no, S509 is executed.

[0207] S508, the minimum value between the signaling overdraft amount and the maximum signaling authorization value is determined as the authorization signaling amount corresponding to the target channel.

[0208] After S508, S513 is executed.

[0209] S509, it is determined whether the signaling overdraft amount is equal to zero.

[0210] If yes, S510 is executed, and if no, S511 is executed.

[0211] S510, the additional returned signaling amount is determined as the authorization signaling amount corresponding to the target channel.

[0212] After S510, S513 is executed.

[0213] S511, it is determined whether the signaling overdraft amount is a negative value less than zero and greater than the additional returned signaling amount.

[0214] If yes, S512 is executed, and if no, S517 is executed.

[0215] S512, the sum of the additional returned signaling amount and the signaling overdraft amount is determined as the authorization signaling amount corresponding to the target channel.

[0216] S513, the signaling amount to be authorized is subtracted by the authorization signaling amount, and the signaling overdraft amount corresponding to the target channel is subtracted by the authorization signaling amount.

[0217] S514, whether the signaling amount to be authorized is greater than 0.

[0218] If yes, S515 is executed, and if no, S518 is executed.

[0219] S515, the next channel in the queue is searched.

[0220] S516, whether the channel in the channel list is 0.

[0221] If yes, S518 is executed, and if no, S507 is executed.

[0222] S517, the target channel is removed in the channel list.

[0223] S518, the signaling authorization is ended.

[0224] The packet transmission method provided by the embodiments of the present application is as follows: the packet sending module of the source end first sends a signaling application request of a target channel to the signaling management module of the source end, the target channel being a transmission channel formed by aggregation of data flows between the source end and the destination end; secondly, the signaling management module determines the current maximum packet sending amount of the target channel according to the current available signaling amount of the target channel in response to the signaling application request; thirdly, the packet sending module sends data packets to the destination end according to the current maximum packet sending amount of the target channel; and finally, the signaling management module updates the current available signaling amount according to the data amount of the data packets. Since the signaling is authorized by channel granularity and the packet is sent based on the current available signaling amount of the target channel, the present application avoids the need for authorization of packets for each flow, reduces the bandwidth occupation of the authorized packets, avoids the bandwidth waste caused by insufficient authorized signaling size, and thus improves the bandwidth utilization rate.

[0225] It should be understood that, although each step in the flowchart involved in the above embodiments is shown in sequence according to the arrow, these steps are not necessarily executed in the order indicated by the arrow. Unless otherwise specified herein, the execution of these steps is not strictly limited in sequence, and these steps can be executed in other orders. Moreover, at least part of the steps in the flowchart involved in the above embodiments can include multiple steps or stages, which are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily sequential, but can be executed alternately or alternately with at least part of other steps or steps or stages in other steps.

[0226] Based on the same technical concept, the embodiments of the present application also provide a packet transmission device for implementing the above-mentioned packet transmission method. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme described in the above method, so the specific limitations in one or more packet transmission device embodiments provided below can refer to the limitations of the packet transmission method in the above text, and will not be repeated here.

[0227] In one embodiment, as shown in FIG. 7, a packet transmission device 600 is provided, which is configured in the source end and includes a signaling management module 601, a packet sending module 602 and a signaling receiving module 603.

[0228] The packet sending module 602 is configured to send a signaling application request of a target channel to the signaling management module 601, the target channel being a transmission channel formed by aggregation of data flows between the source end and the destination end.

[0229] The signaling management module 601 is configured to determine a current maximum message sending amount of the target channel according to a current available signaling amount of the target channel in response to the signaling application request.

[0230] The message sending module 602 is configured to send data messages to the destination according to the current maximum message sending amount of the target channel.

[0231] The signaling management module 601 is configured to update the current available signaling amount according to a data amount of the data messages.

[0232] In one of the embodiments, the message sending module 602 is further configured to send data messages to the destination when the previous maximum message sending amount is greater than zero, and to suspend sending data messages to the destination when the current maximum message sending amount is equal to zero.

[0233] In one of the embodiments, the signaling management module 601 is further configured to determine the signaling allocation limit as the current maximum message sending amount of the target channel when the current available signaling amount is greater than or equal to the signaling allocation limit, and to determine the current available signaling amount as the current maximum message sending amount of the target channel when the current available signaling amount is less than the signaling allocation limit.

[0234] In one of the embodiments, the message sending module 602 is further configured to send a new channel event message to the signaling management module 601 when the signaling application request is the first signaling application request of the target channel or the idle duration of the target channel exceeds a time threshold.

[0235] The signaling management module 601 is further configured to determine a preconfigured overdraft signaling value as the current available signaling amount.

[0236] In one of the embodiments, the message transmission device 600 further comprises a signaling receiving module 603.

[0237] The signaling receiving module 603 is further configured to receive an authorization message sent by the destination and send an authorization event message to the signaling management module 601, wherein the authorization message and the authorization event message both comprise an authorization signaling amount.

[0238] When the sum of the authorization signaling amount and the current available signaling amount is greater than or equal to a maximum signaling update value, the signaling management module 601 updates the current available signaling amount using the maximum signaling update value.

[0239] When the sum of the authorization signaling amount and the current available signaling amount is less than the maximum signaling update value, the signaling management module 601 updates the current available signaling amount using the sum of the authorization signaling amount and the current available signaling amount.

[0240] In one embodiment, as shown in FIG. 8, a message transmission device 700 is provided, the message transmission device 700 is configured at a destination, and the message transmission device 700 comprises a message receiving module 701, a signaling authorization module 702, a signaling sending module 703, and a signaling production module 704.

[0241] The message receiving module 701 is configured to receive a data message sent by a source through a target channel.

[0242] The message receiving module 701 is configured to generate a signaling recycling event message corresponding to the data message and send the signaling recycling event message to the signaling authorization module 702, wherein the signaling recycling event message comprises a consumed signaling quantity of the data message.

[0243] The signaling authorization module 702 is configured to update a signaling overdraft limit corresponding to the target channel according to the consumed signaling quantity of the data message, and determine an authorized signaling limit corresponding to the target channel according to the updated signaling overdraft limit, wherein the authorized signaling limit is used to adjust a current available signaling limit of the target channel.

[0244] The signaling sending module 703 is configured to send an authorization message to the source, wherein the authorization message comprises the authorized signaling limit.

[0245] In one embodiment, the signaling authorization module 702 is further configured to, when the signaling quantity to be authorized of the target channel in the channel list is greater than zero, determine the authorized signaling limit corresponding to the target channel according to the updated signaling overdraft limit.

[0246] In one embodiment, the signaling authorization module 702 is further configured to, when the updated signaling overdraft limit is greater than zero, determine the minimum value between the updated signaling overdraft limit and a maximum signaling authorization value as the authorized signaling limit corresponding to the target channel; when the updated signaling overdraft limit is equal to zero, determine an additional returned signaling limit as the authorized signaling limit corresponding to the target channel; and when the updated signaling overdraft limit is less than zero and greater than a negative value of the additional returned signaling limit, determine the sum of the additional returned signaling limit and the updated signaling overdraft limit as the authorized signaling limit corresponding to the target channel.

[0247] In one embodiment, the destination further comprises the signaling production module 704.

[0248] The message receiving module 701 is further configured to, when the data message comprises a congestion identifier, generate a congestion event message and send the congestion event message to the signaling production module 704.

[0249] The signaling production module 704 is configured to adjust the maximum receiving rate of the destination in response to the congestion event message; determine the number of produced signaling according to the maximum receiving rate and the signaling period; and send a signaling production event message to the signaling authorization module 702, wherein the signaling production event message comprises the number of produced signaling.

[0250] The signaling authorization module 702 is further configured to adjust the number of to-be-authorized signaling according to the number of produced signaling.

[0251] The above modules in the packet transmission device can be implemented by software, hardware, or a combination thereof. The above modules can be embedded in or independent of a processor in a computer device in hardware form, or stored in a memory in the computer device in software form, so as to be called and executed by the processor to perform the operations corresponding to the above modules.

[0252] In an embodiment, a computer device is provided, which can be a server. The server is plugged with a network interface card, and the network interface card comprises a chip. The computer device can implement the packet transmission method on the source side or the packet transmission method on the destination side. An internal structure diagram of the server can be shown in FIG. 9. The computer device comprises a processor, a memory, an input / output interface (I / O) and a communication interface. The processor, the memory and the input / output interface are connected through a system bus, and the communication interface is connected to the system bus through the input / output interface. The processor of the computer device is configured to provide computing and control capabilities. The memory of the computer device comprises a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operating system and the computer program in the non-volatile storage medium. The database of the computer device is configured to store data. The input / output interface of the computer device is configured to exchange information between the processor and external devices. The communication interface of the computer device is configured to communicate with external terminals through a network connection. The computer program is executed by the processor to implement a packet rearrangement method. Those skilled in the art can understand that the structure shown in FIG. 9 is only a block diagram of part of the structure related to the scheme of the present application, and does not limit the computer device to which the scheme of the present application is applied. Specifically, the computer device can comprise more or fewer components than those shown in the figure, or combine certain components, or have a different component arrangement.

[0253] In an embodiment, a chip is provided. The chip includes a memory and a processor, and the memory stores a computer program. The processor implements the source-side packet transmission method or the destination-side packet transmission method when executing the computer program. The chip can be a data processing unit (DPU) chip. The processor can be a congestion control processor, including a CPU core of a micro engine pool (MEP) that executes firmware or microcode.

[0254] In an embodiment, a computer device is provided, including a central processor and the chip described above, the chip being configured to schedule packets to the central processor or the chip itself for processing, and the central processor being configured to process the packets scheduled by the chip. The computer device can be a server or a server cluster.

[0255] In an embodiment, a network interface card is provided, including the chip described above and a plurality of interfaces, and the chip communicates with the outside through the interfaces. The interfaces include a PCI / PCIE interface and a network interface.

[0256] In an embodiment, a computer device is provided, including a central processor and the network interface card described above, the network interface card being configured to schedule packets to the central processor or the network interface card itself for processing, and the central processor being configured to process the packets scheduled by the network interface card. The computer device can be a server or a server cluster.

[0257] In an embodiment, a computer-readable storage medium is provided, and the computer-readable storage medium stores a computer program. The computer program is executed by a processor to implement the source-side packet transmission method or the destination-side packet transmission method.

[0258] In an embodiment, a computer program product is provided, including a computer program. The computer program is executed by a processor to implement the source-side packet transmission method or the destination-side packet transmission method.

[0259] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program. The computer program can be stored in a non-volatile computer readable storage medium, and when the computer program is executed, the processes of the above-mentioned embodiments of the methods can be included. Any reference to memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical storage, high-density embedded non-volatile memory, resistive memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration but not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc. The database involved in the embodiments provided in the present application can include at least one of a relational database and a non-relational database. The non-relational database can include a distributed database based on a block chain, etc., without being limited thereto. The processor involved in the embodiments provided in the present application can be a general-purpose processor, a central processing unit, a graphics processing unit, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., without being limited thereto.

[0260] Any combination of the technical features of the above embodiments can be made. In order to make the description simple, all possible combinations of the technical features in the above embodiments are not described, however, as long as the combination of the technical features does not exist, it should be considered as the scope of the present application.

[0261] The above embodiments only express several implementation manners of the present application, and the description is more specific and detailed, but it should not be understood as a limitation on the scope of the patent of the present application. It should be pointed out that for ordinary skilled in the art, without departing from the concept of the present application, a number of modifications and improvements can be made, which are within the scope of protection of the present application. Therefore, the protection scope of the present application should be subject to the appended claims.

Claims

1. A method of transmitting a packet, characterized by, The method is applied to a source end, and the source end comprises a signaling management module and a packet sending module. The packet sending module sends a signaling application request of a target channel to the signaling management module, the target channel being a transmission channel aggregated by data streams between the source end and a destination end; The signaling management module determines a current maximum packet sending amount of the target channel according to a current available signaling amount of the target channel in response to the signaling application request; The packet sending module sends data packets to the destination end according to the current maximum packet sending amount of the target channel; The signaling management module updates the current available signaling amount according to a data amount of the data packets.

2. The method of claim 1, wherein, The packet sending module sends data packets to the destination end according to the current maximum packet sending amount of the target channel, comprising: If the current maximum packet sending amount is greater than zero, the packet sending module sends the data packets to the destination end; If the current maximum packet sending amount is equal to zero, the packet sending module suspends sending the data packets to the destination end.

3. The method of claim 1, wherein, The signaling management module determines the current maximum packet sending amount of the target channel according to the current available signaling amount of the target channel, comprising: If the current available signaling amount is greater than or equal to a signaling allocation limit, the signaling management module determines the signaling allocation limit as the current maximum packet sending amount of the target channel; If the current available signaling amount is less than the signaling allocation limit, the signaling management module determines the current available signaling amount as the current maximum packet sending amount of the target channel.

4. The method of claim 1, wherein, The method further comprises: If the signaling application request is a first signaling application request of the target channel or a signaling application request re-applied after an idle duration of the target channel exceeds a time threshold, the packet sending module sends a new channel event message to the signaling management module; The signaling management module determines a preconfigured overdraft signaling value as the current available signaling amount.

5. The method according to any one of claims 1 to 4, characterized in that, The source end further comprises a signaling receiving module, and the method further comprises: The signaling receiving module receives an authorization packet sent by the destination end and sends an authorization event message to the signaling management module, the authorization packet and the authorization event message both comprising an authorization signaling amount; If a sum of the authorization signaling amount and the current available signaling amount is greater than or equal to a maximum signaling update value, the signaling management module updates the current available signaling amount using the maximum signaling update value; If the sum of the authorization signaling amount and the current available signaling amount is less than the maximum signaling update value, the signaling management module updates the current available signaling amount using the sum of the authorization signaling amount and the current available signaling amount.

6. A message transmission method characterized by comprising: The method is applied to a destination end, and the destination end comprises a packet receiving module, a signaling authorization module and a signaling sending module; The packet receiving module receives data packets sent by a source end through a target channel; The signaling sending module sends a signaling application request of the target channel to the signaling authorization module; The message receiving module generates a signaling recovery event message corresponding to the data message and sends the signaling recovery event message to the signaling authorization module, wherein the signaling recovery event message includes a consumed signaling quantity of the data message; The signaling authorization module updates the signaling overdraft limit of the target channel according to the consumed signaling quantity of the data message, and determines the authorized signaling quantity of the target channel according to the updated signaling overdraft limit, wherein the authorized signaling quantity is used to adjust the current available signaling quantity of the target channel; The signaling sending module sends an authorization message to the source end, wherein the authorization message includes the authorized signaling quantity.

7. The method of claim 6, wherein, The signaling authorization module determines the authorized signaling quantity of the target channel according to the updated signaling overdraft limit, including: When the signaling quantity to be authorized is greater than zero when the target channel is polled in the channel list, the signaling authorization module determines the authorized signaling quantity of the target channel according to the updated signaling overdraft limit.

8. The method of claim 7, wherein, The signaling authorization module determines the authorized signaling quantity of the target channel according to the updated signaling overdraft limit, including: When the updated signaling overdraft limit is greater than zero, the signaling authorization module determines the minimum value between the updated signaling overdraft limit and the maximum signaling authorization value as the authorized signaling quantity of the target channel; When the updated signaling overdraft limit is equal to zero, the signaling authorization module determines the additional returned signaling quantity as the authorized signaling quantity of the target channel; When the updated signaling overdraft limit is less than zero and greater than the negative value of the additional returned signaling quantity, the signaling authorization module determines the sum of the additional returned signaling quantity and the updated signaling overdraft limit as the authorized signaling quantity of the target channel.

9. The method of claim 7, wherein, After the signaling authorization module determines the authorized signaling quantity of the target channel according to the updated signaling overdraft limit, the method further includes: According to the authorized signaling quantity of the target channel, the signaling quantity to be authorized and the updated signaling overdraft limit are adjusted.

10. The method according to any one of claims 7-9, characterized in that, The destination end further includes a signaling production module; the method further includes: When the data message includes a congestion identifier, the message receiving module generates a congestion event message and sends the congestion event message to the signaling production module; The signaling production module adjusts the maximum receiving rate of the destination end in response to the congestion event message; The signaling production module determines the quantity of produced signaling according to the maximum receiving rate and a signaling period; The signaling production module sends a signaling generation event message to the signaling authorization module, wherein the signaling generation event message includes the quantity of produced signaling; The signaling authorization module adjusts the signaling quantity to be authorized according to the quantity of produced signaling.

11. A packet transmission apparatus characterized by comprising: The message transmission device is configured in a source end, and the message transmission device includes a signaling management module and a message sending module; The message sending module is configured to send a signaling application request of a target channel to the signaling management module, the target channel being a transmission channel formed by aggregation of data streams between the source end and the destination end. The signaling management module is configured to, in response to the signaling application request, determine a current maximum message sending amount of the target channel according to a current available signaling amount of the target channel. The message sending module is configured to send data messages to the destination end according to the current maximum message sending amount of the target channel. The signaling management module is configured to update the current available signaling amount according to a data amount of the data messages.

12. A packet transmission apparatus characterized by comprising: The message transmission device is applied to a destination end and includes a message receiving module, a signaling authorization module, and a signaling sending module. The message receiving module is configured to receive data messages sent by a source end through a target channel. The message receiving module is configured to generate a signaling recovery event message corresponding to the data messages and send the signaling recovery event message to the signaling authorization module, the signaling recovery event message including a signaling amount consumed by sending the data messages. The signaling authorization module is configured to update a signaling overdraft amount corresponding to the target channel according to the signaling amount consumed by the data messages, and determine an authorized signaling amount corresponding to the target channel according to the updated signaling overdraft amount, the authorized signaling amount being used to adjust a current available signaling amount of the target channel. The signaling sending module is configured to send an authorization message to the source end, the authorization message including the authorized signaling amount.

13. A chip comprising a memory and a processor, the memory storing a computer program, characterized in that, The processor executes the computer program to implement the steps of the method in any one of claims 1 to 10.

14. A network interface card, comprising: The chip is connected with multiple interfaces, and communicates with external devices through the interfaces.

15. A computer device, comprising: The chip is connected with a central processing unit, and is configured to schedule messages to the central processing unit or itself for processing, and the central processing unit is configured to process the messages scheduled by the chip.

16. A computer readable storage medium having stored thereon a computer program, characterized in that, The computer program is executed by the processor to implement the steps of the method in any one of claims 1 to 10.

17. A computer program product comprising a computer program, characterized in that, The computer program is executed by the processor to implement the steps of the method in any one of claims 1 to 10.

Citation Information

Patent Citations

  • Data transmission method and network equipment

    CN111416776A

  • Credit-based flow control system and flow control method

    CN113438182A

  • Congestion control method and device

    CN114285803A

  • Data transmission method and system based on two-layer multi-path flow control and medium

    CN114598657A

  • Message sending method, data processor, computer equipment and storage medium

    CN117857472A