CN115514709B - Congestion control event queue scheduling method, device, equipment and storage medium - Google Patents

Congestion control event queue scheduling method, device, equipment and storage medium Download PDF

Info

Publication number
CN115514709B
CN115514709B CN202211469909.2A CN202211469909A CN115514709B CN 115514709 B CN115514709 B CN 115514709B CN 202211469909 A CN202211469909 A CN 202211469909A CN 115514709 B CN115514709 B CN 115514709B
Authority
CN
China
Prior art keywords
event
congestion control
congestion
queue
uploading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211469909.2A
Other languages
Chinese (zh)
Other versions
CN115514709A (en
Inventor
于乾坤
喻径舟
刘永锋
吴吉朋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Yunmai Xinlian Technology Co ltd
Shanghai Yunmai Xinlian Technology Co ltd
Beijing Yunmai Xinlian Technology Co ltd
Original Assignee
Nanjing Yunmai Xinlian Technology Co ltd
Shanghai Yunmai Xinlian Technology Co ltd
Beijing Yunmai Xinlian Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Yunmai Xinlian Technology Co ltd, Shanghai Yunmai Xinlian Technology Co ltd, Beijing Yunmai Xinlian Technology Co ltd filed Critical Nanjing Yunmai Xinlian Technology Co ltd
Priority to CN202211469909.2A priority Critical patent/CN115514709B/en
Publication of CN115514709A publication Critical patent/CN115514709A/en
Application granted granted Critical
Publication of CN115514709B publication Critical patent/CN115514709B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority

Abstract

The invention provides a method, a device, equipment and a storage medium for scheduling a congestion control event queue, belonging to the field of computer networks, wherein the method comprises the steps of receiving a sent congestion control instruction, wherein the congestion control instruction carries a congestion event and an event queue sequence number; when the event type of the congestion event is determined to be a congestion control uploading event or a congestion control sending event corresponding to the congestion control uploading event, acquiring an operation state identifier of the congestion control uploading event in a congestion event state module according to an event queue sequence number; based on the running state identifier, removing duplicate of the congestion control uploading event; adding the congestion control instruction into a corresponding event processing queue; and the control scheduler schedules the congestion control instruction according to the event processing queue. Through the processing scheme disclosed by the invention, the repeated ECN uploading events are effectively de-duplicated, and the possibility of overflowing of the CC uploading event queue is greatly reduced.

Description

Congestion control event queue scheduling method, device, equipment and storage medium
Technical Field
The invention relates to the field of computer networks, in particular to a congestion control event queue scheduling method and device, computer equipment and a storage medium.
Background
The existing industry intelligent network card generally needs to send ECN information to a congestion control algorithm of a software plane through an event for use, and a congestion control processing module generates a CNP message according to the congestion control algorithm and sends the CNP message to a hardware plane through a network interface. For high performance networks (RDMA networks) with bandwidths of 100Gbps and above, the congestion control event upstream channel between the software plane and the hardware plane will become the bandwidth bottleneck.
For example, a RoCEv 2-based RDMA network may employ UDP protocol to treat intermediate networks between nodes as an opaque "black box"; current TCP (transmission control protocol) can also treat intermediate networks between TCP end nodes as an opaque "black box". Taking TCP (transmission control protocol) as an example, TCP packets enter and exit the black box. When congestion occurs in a router or the like, and a buffer section for the router or the like accommodating an incoming packet is filled, the router or the like silently discards a next incoming packet. Although TCP can detect the loss of TCP packets and retransmit them, the retransmission process is costly in terms of TCP processing, retransmission and throughput degradation.
Moreover, the existing congestion control algorithm needs to process a large number of redundant ECN uploading events, and the large number of ECN uploading events occupy the bandwidth-consuming uploading resources of the congestion control event uploading queue, and when the router starts to discard the incoming data packets, it does not distinguish the difference of the data packets, even causes the congestion control uploading event with higher priority to be discarded due to the overflow of the uploading queue. When multiple TCP streams all generate packet loss, all the streams will reduce their own transmission rate. Until the plurality of TCP data flows gradually recover the sending rate thereof according to the degree of the congestion relief of the router. This reduces the usage of the router and associated links.
Disclosure of Invention
Therefore, in order to overcome the above drawbacks of the prior art, the present invention provides a method, an apparatus, a computer device, and a storage medium for scheduling a congestion control event queue, which are capable of effectively removing duplicate ECN upload events without affecting the effect of a congestion control algorithm, and greatly reducing the possibility of overflow of the CC upload event queue.
In order to achieve the above object, the present invention provides a method for scheduling a congestion control event queue, including: receiving a sent congestion control instruction, wherein the congestion control instruction carries a congestion event and an event queue serial number; when the event type of the congestion event is determined to be a congestion control uploading event or a congestion control sending event corresponding to the congestion control uploading event, acquiring an operation state identifier of the congestion control uploading event in a congestion event state module according to the event queue sequence number; based on the running state identification, carrying out duplicate removal on the congestion control uploading event; adding the congestion control instruction into a corresponding event processing queue; and the control scheduler schedules the congestion control instruction according to the event processing queue.
In one embodiment, the running state identifier is stored in a congestion event state module, and the congestion event state module correspondingly stores the running state identifier indicating that the congestion control upload event is running and a change time; determining whether the congestion control uploading event is executed overtime based on the change time and the current time; and when the time is judged to be out, changing the running state identifier which shows that the congestion control uploading event is running into a running state identifier which shows that the congestion control uploading event is not running, and re-receiving the sent congestion control instruction.
In one embodiment, the running state identification is stored in a congestion event status module, the congestion event status module having a timer; starting the timer based on the running state identification indicating that the congestion control upload event is running; judging whether the time of the timer reaches a zero clearing time period or not; when the determination is reached, changing the operation state flag indicating that the congestion control upload event is in operation to an operation state flag indicating that the congestion control upload event is not in operation, and restarting the timer based on the newly received congestion control instruction.
In one embodiment, the run state indicator is represented by a deduplication bitmap.
In one embodiment, the congestion control command is a congestion uplink command or a congestion downlink command.
In one embodiment, the congestion control instruction further carries an event priority, and the congestion control instruction is added to a corresponding event processing queue according to the event priority.
In one embodiment, the control scheduler schedules the congestion control instruction according to the event processing queue, including: judging whether an unexecuted congestion control instruction exists in an event processing queue corresponding to the high priority or not according to the event priority; and when the judgment result is no, the control scheduler uploads corresponding congestion control instructions piece by piece according to the event processing queue with low priority.
A congestion control event queue scheduling apparatus, comprising: the instruction receiving module is used for receiving a sent congestion control instruction, and the congestion control instruction carries a congestion event and an event queue sequence number; the identifier acquisition module is used for acquiring the running state identifier of the congestion control uploading event in the congestion control state module according to the event queue sequence number when the event type of the congestion event is determined to be a congestion control uploading event or a congestion control sending event corresponding to the congestion control uploading event; a duplicate removal execution module, configured to perform duplicate removal on the congestion control upload event based on the operation status identifier; the queuing module is used for adding the congestion control instruction into a corresponding event processing queue; and the scheduling module is used for controlling the scheduler to schedule the congestion control instruction according to the event processing queue.
A computer device comprising a memory and a processor, the memory storing a computer program, characterized in that the processor realizes the steps of the above method when executing the computer program.
A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, carries out the steps of the method as described above.
Compared with the prior art, the invention has the advantages that: according to the running state of the congestion event, the repeated ECN uploading events can be effectively deduplicated on the premise of not influencing the effect of the congestion control algorithm, and the possibility of overflowing of the CC uploading event queue is greatly reduced.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings required to be used in the embodiments will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present disclosure, and it is obvious for those skilled in the art that other drawings can be obtained according to the drawings without creative efforts.
Fig. 1 is a flowchart illustrating a congestion control event queue scheduling method according to an embodiment of the present invention;
fig. 2 is an application scenario diagram of a congestion control event queue scheduling method in an embodiment of the present invention;
FIG. 3 is a diagrammatic illustration of a deduplication bit map of a congestion control upload event in an embodiment of the present invention;
FIG. 4 is a schematic diagram of a flow of enqueue scheduling of a CC upload event according to an embodiment of the present invention;
fig. 5 is a schematic diagram of an enqueue scheduling process of a CC issued event in an embodiment of the present invention;
FIG. 6 is a schematic diagram of a flow of dequeue scheduling of a CC upload event in an embodiment of the present invention;
FIG. 7 is a flow chart illustrating dequeue scheduling of a CC issued event according to an embodiment of the present invention;
fig. 8 is a block diagram of a congestion control event queue scheduling apparatus according to an embodiment of the present invention;
fig. 9 is an internal configuration diagram of a computer device in an embodiment of the present invention.
Detailed Description
The embodiments of the present disclosure are described in detail below with reference to the accompanying drawings.
The embodiments of the present disclosure are described below with specific examples, and other advantages and effects of the present disclosure will be readily apparent to those skilled in the art from the disclosure of the present disclosure. It is to be understood that the described embodiments are merely illustrative of some, and not restrictive, of the embodiments of the disclosure. The disclosure may be embodied or carried out in various other specific embodiments, and various modifications and changes may be made in the details within the description without departing from the spirit of the disclosure. It is to be noted that the features in the following embodiments and examples may be combined with each other without conflict. All other embodiments, which can be derived by a person skilled in the art from the embodiments disclosed herein without making any creative effort, shall fall within the protection scope of the present disclosure.
It is noted that various aspects of the embodiments are described below within the scope of the appended claims. It should be apparent that the aspects described herein may be embodied in a wide variety of forms and that any specific structure and/or function described herein is merely illustrative. Based on the disclosure, one skilled in the art should appreciate that one aspect described herein may be implemented independently of any other aspects and that two or more of these aspects may be combined in various ways. For example, an apparatus may be implemented and/or a method practiced using any number of the aspects set forth herein. In addition, such an apparatus may be implemented and/or such a method may be practiced using other structure and/or functionality in addition to or other than one or more of the aspects set forth herein.
It should be further noted that the drawings provided in the following embodiments are only schematic illustrations of the basic concepts of the present disclosure, and the drawings only show the components related to the present disclosure rather than the numbers, shapes and dimensions of the components in actual implementation, and the types, the numbers and the proportions of the components in actual implementation may be arbitrarily changed, and the layout of the components may be more complicated.
In addition, in the following description, specific details are provided to facilitate a thorough understanding of the examples. However, it will be understood by those skilled in the art that the aspects may be practiced without these specific details.
As shown in fig. 1, the embodiment of the present disclosure provides a congestion control event queue scheduling method, which may be applied to a terminal or a server, where the terminal may be, but is not limited to, various personal computers, notebook computers, smart phones, tablet computers, and portable smart devices, and the server may be implemented by an independent server or a server cluster formed by multiple servers. The application can be applied to the communication such as the intelligent network card, the Data Processing card (DPU), the FPGA network interface card and the like supporting the RDMA function shown in fig. 2. The method can be applied to communication between a hardware plane and a software plane, wherein the hardware plane comprises a host interface (such as a PCIE interface, connected with a host server), a network interface (such as Ethernet connection of 25Gbps, 100Gbps, 200Gbps and other speed levels), a receiving engine, a sending engine, a congestion control event queue scheduling device and the like. The software plane may contain RDMA Firmware (FW for short). The RDMA firmware comprises a congestion control processing module used for processing CC uploading events and generating CC issuing events. The congestion control event queue scheduling device comprises an SP (Strong Priority) scheduler, a CC (communication component) uploading event preprocessing module, a CC uploading event Priority queue, a CC uploading event common queue, a CC event state module, a CC issuing event Priority queue, a CC issuing event common queue and a CC issuing event preprocessing module. The method comprises the following steps:
step 101, receiving a sent congestion control instruction, where the congestion control instruction carries a congestion event and an event queue number.
A Congestion Control (CC) command carries a Congestion event (CC event) and an event queue number. The congestion event may be represented by a string or other structure that classifies the type of information encapsulated by the notification. When a sending end packs a CC event into a data packet, the sending end can unpack the CC event into a plurality of data packets because the maximum length of the data packet is fixed, and each data packet carries an event queue serial number corresponding to the CC event. In one embodiment, the congestion control command is a congestion uplink command or a congestion downlink command. The congestion control instruction can be sent by a receiving engine on a hardware plane to RDMA firmware on a software plane and scheduled by a congestion control event queue scheduling device, and at this time, the congestion control instruction is a congestion uplink instruction; the congestion control command may be an RDMA firmware in a software plane to be sent to a sending engine in a hardware plane, and is scheduled by the congestion control event queue scheduling device, where the congestion control command is a congestion issuing command.
The congestion control instructions may be in the CC MSG format, etc. The CC _ MSG format may contain an Event _ Type field, a QP _ ID field, and a Payload field. The bit width of the Event _ Type field is 1 byte, and represents the Type of a CC up-sending or CC down-sending Event. The CC upload event may be any one of multiple types, such as an ECN upload event (abbreviated as ECN), a CNP upload event (abbreviated as CNP _ UP), a delay measurement result event, and a CC parameter upload event. The CC issuing event may be any one of multiple types, such as a CNP issuing event (abbreviated as CNP _ DOWN), a delay measurement request event, a CC parameter issuing event, and the like. In one embodiment, the congestion control instruction also carries an event priority. The CC uploading event can comprise 2 priorities, and each type of event is configured independently through firmware; if the priority is 0, indicating that the common CC is uploaded with the event, recording as Normal _ Prio, and entering a common queue of the CC uploading event; if the priority is 1, the important CC uploading event is represented and recorded as vita _ Prio, and the CC uploading event enters a CC uploading event priority queue. Similarly, the CC issued events may also include 2 priorities, and each type of event is configured separately through firmware; if the priority is 0, indicating that the common CC issues the event, marking as Normal _ Prio, and entering a common queue of the CC issues the event; if the priority is 1, the CC issuing event with the importance is represented and marked as Vital _ Prio, and the CC issuing event enters a priority queue of the CC issuing event. The QP _ ID field is an event queue serial number, the bit width is 3 bytes, and represents a QP number corresponding to an event sent on the CC or sent down by the CC, the event corresponding to the data packet can be rapidly determined according to the QP number, and the number of the data packet in the corresponding event can be determined according to the QP _ ID. The bit width of the Payload field is 12 bytes, which represents the specific event content of the event sent or issued on the CC, and the sub-field can be further flexibly defined according to the event type.
Step 102, when the event type of the congestion event is determined to be a congestion control uploading event or a congestion control downloading event corresponding to the congestion control uploading event, acquiring the running state identifier of the congestion control uploading event in the congestion control state module according to the event queue sequence number.
Active queue management algorithms implemented on IP routers and the like enable routers to monitor the status of forwarding queues to provide a mechanism for routers to report congestion to the sender, allowing the sender to reduce the sending rate before the router starts to drop packets, which is referred to as an Explicit Congestion Notification (ECN) event.
The server may determine that the Event Type is a congestion control uploading Event or a congestion control issuing Event corresponding to the congestion control uploading Event according to an Event _ Type field in the congestion control instruction, and obtain an operation state identifier of the congestion control uploading Event in the congestion control state module according to the Event queue number. The operating state identifier may be a number, a character, etc. In one embodiment, the congestion control upload event may be an ECN event. The congestion control issued event may be a CNP event.
And 103, based on the running state identification, carrying out duplicate removal on the congestion control uploading event.
When the congestion control instruction is a congestion uplink instruction, and the running state identifier indicates that a congestion control uploading event is running, discarding the congestion control instruction to realize duplication removal of the congestion control uploading event; and when the running state identification shows that the congestion control uploading event is not run, changing the running state identification corresponding to the congestion control uploading event. In one embodiment, as shown in fig. 3, the running state identifier is represented by a duplicate bitmap, where the 0, 1 numbers in the bitmap are the running state identifiers for the corresponding congestion control upload event runs. Fig. 3 shows multiple QP ID correspondence bitmaps. In this figure, 1 indicates that the congestion control upload event is being executed, and thus the congestion control upload event can be dropped, enabling congestion control upload event deduplication; 0 indicates that the congestion control upload event is not executed, so the congestion control upload event can be added into the event processing queue to facilitate the scheduler to schedule, and the operation status flag 0 corresponding to the congestion control upload event is changed to 1.
When the congestion control instruction is a congestion issuing instruction, if the event type is CNP _ DOWN, searching an ECN uploading event duplicate removal bitmap in a CC event state module according to QP _ ID, changing an operation state identifier indicating that the congestion control uploading event operates into an operation state identifier that the congestion control uploading event does not operate, for example, setting the bit of a bitmap corresponding to the QP _ ID to 0, so as to continuously receive the congestion uplink instruction of the congestion control uploading event for further processing; if the event type is not CNP _ DOWN, the process continues to step 104.
And 104, adding the congestion control instruction into the corresponding event processing queue.
The server may upload congestion control to the event-to-event processing queue. The ranking may be ordered according to the time of receipt of the event or the time of feedback required.
In one embodiment, the congestion control instruction may also carry an event priority, and the congestion control upload events are ordered according to the event priority. For example, the congestion control instruction is a congestion uplink instruction, and when the priority of a congestion control uplink event is 1, the uplink event enters a CC uplink event priority queue; and when the priority of the congestion control uploading event is not 1, the uploading event enters a CC uploading event common queue. Similarly, the congestion control instruction is a congestion issue instruction, and when the priority of the event sent by the congestion control is 1, the issue event enters a CC issue event priority queue; and when the priority of the event sent by the congestion control is not 1, the sent event enters a CC sent event common queue.
Step 105, the control scheduler schedules the congestion control instruction according to the event processing queue.
And the server control scheduler schedules the congestion control instruction according to the event processing queue. And the congestion control command is a congestion uplink command, and the SP scheduler executes a strict priority scheduling strategy and schedules the CC to send an event priority queue preferentially. The CC uploading event preprocessing module receives the CC uploading event from the receiving engine and completes the preprocessing of the CC uploading event, including the de-duplication of the ECN uploading event. The event-on-CC priority queue is a first-in-first-out queue (FIFO queue) for buffering important CC event-on-CCs. The common queue for sending events on the CC is also a first-in first-out queue (FIFO queue) for buffering common CC sending events. The SP scheduler adopts a strict priority scheduling strategy to preferentially schedule the CC to upload an event priority queue; and the SP scheduler sends the scheduling dequeued CC uploading event to a congestion control processing module of the software plane for further processing.
And the CC issued event preprocessing module receives the CC issued event from the congestion control processing module, completes the preprocessing of the CC issued event and updates an event de-duplication bitmap on an ECN in the CC event state module according to the CNP issued event. The CC issuing event priority queue is a first-in first-out queue (FIFO queue) for buffering important CC issuing events. The CC down-send event normal queue is also a first-in first-out queue (FIFO queue) for buffering normal CC down-send events. The SP scheduler adopts a strict priority scheduling strategy to preferentially schedule the CC to issue an event priority queue; and the SP scheduler sends the scheduled dequeued CC issuing event to a sending engine and finally sends the scheduled dequeued CC issuing event through a network interface.
The enqueue scheduling flow of CC uploading events in this embodiment is shown in fig. 4. First, a receiving engine generates a CC upload event and sends the CC upload event to a CC upload event preprocessing module. Secondly, the CC uploading event preprocessing module judges whether the event type is an ECN uploading event. If the event type is ECN, searching an ECN upper sending event duplicate bitmap in a CC event state module according to the QP ID, and acquiring a bitmap bit corresponding to the QP ID; if the bit of the corresponding bitmap is 1, discarding the ECN uploading event to complete the duplicate removal processing; and if the bit of the corresponding bitmap is not 1, setting the bit of the bitmap corresponding to the QP ID to be 1, and continuing to process the next step. And if the event type is not ECN, continuing to perform the next processing. Thirdly, judging the priority of the uploading event according to the priority configuration of the CC uploading event preprocessing module; if the priority is 1, the uploading event enters a CC uploading event priority queue; if the priority is not 1, the uploading event enters a CC uploading event common queue.
The enqueue scheduling process of the CC issuing events in this embodiment is shown in fig. 5. Firstly, a congestion control processing module generates a CC issuing event and sends the CC issuing event to a CC issuing event preprocessing module. Secondly, the CC issued event preprocessing module judges whether the event type is a CNP issued event. If the event type is CNP _ DOWN, an event de-duplication bitmap is sent on an ECN in the CC event state module according to the QP _ ID, and the bit of the bitmap corresponding to the QP _ ID is set to be 0; and if the event type is not CNP _ DOWN, continuing to perform the next processing. Thirdly, judging the priority of the issued event according to the priority configuration of the CC issued event preprocessing module; if the priority is 1, the issued event enters a CC issued event priority queue; if the priority is not 1, the issued event enters a CC issued event common queue.
According to the method, the repeated ECN uploading events can be effectively deduplicated without influencing the effect of the congestion control algorithm according to the running state of the congestion events, so that the possibility of overflowing of a CC uploading event queue is greatly reduced; and the CC events with different priorities can be distinguished and treated, and the transmission and the distribution of the CC events with high level are not influenced by the CC events with low level.
In one embodiment, the running state identifier is stored in a congestion event state module, and the congestion event state module correspondingly stores the running state identifier indicating that a congestion control uploading event is running and the change time; determining whether the congestion control uploading event is executed overtime or not based on the change time and the current time; and when the time is judged to be out, changing the running state identifier which shows that the congestion control uploading event is running into the running state identifier which shows that the congestion control uploading event is not running, and re-receiving the sent congestion control instruction.
The server can regularly carry out self-checking on the running program, so that the phenomenon that the congestion control uploading event is not executed for a long time or the execution period is too long is avoided, and the congestion time is further shortened.
In one embodiment, the running state identification is stored in a congestion event status module, the congestion event status module having a timer;
starting a timer based on an operational status flag indicating that a congestion control upload event is running;
judging whether the time of the timer reaches a zero clearing time period or not;
when the determination is reached, the operation state flag indicating that the congestion control upload event is running is changed to an operation state flag indicating that the congestion control upload event is not running, and the timer is restarted based on the newly received congestion control instruction.
The ECN event deduplication bitmap can be cleared by timing of a timer, so that the situation that the software plane does not return CNP (conditional access protocol) issued events when overtime occurs and cannot update the ECN event deduplication bitmap is prevented. When the system is initialized, firstly clearing an event duplicate removal bitmap sent by an ECN and resetting a timer; when the timer is overtime, the system judges that the zero clearing time period is reached, the flow jumps back to the previous step to finish the zero clearing of the ECN uploading event de-duplication bitmap, and a cycle is restarted. The clear time period may be configured by firmware.
In one embodiment, the control scheduler schedules congestion control instructions according to an event processing queue, comprising: judging whether an event processing queue corresponding to the high priority has an unexecuted congestion control instruction or not according to the event priority; and when the judgment result is no, the control scheduler uploads the corresponding congestion control instructions piece by piece according to the event processing queue with low priority.
Specifically, as shown in fig. 6, the congestion control instruction is a congestion uplink instruction, the SP scheduler executes a strict priority scheduling policy, and if it is determined that the priority queue of the event sent on the CC is empty, the scheduler schedules the event sent on the CC in the common queue to dequeue; and if the CC uploading event priority queue is judged to be not empty, the scheduler schedules the uploading event in the CC uploading event priority queue to be dequeued.
As shown in fig. 7, the congestion control command is a congestion issue command, and the SP scheduler executes a strict priority scheduling policy to preferentially schedule the CC issue event priority queue. If the CC issued event priority queue is judged to be empty, the scheduler schedules issued events in the CC issued event common queue to be dequeued; and if the CC issued event priority queue is judged to be not empty, the scheduler schedules the issued events in the CC issued event priority queue to be dequeued.
In one embodiment, as shown in fig. 8, a congestion control event queue scheduling apparatus is provided, and the apparatus includes an instruction receiving module 801, an identification obtaining module 802, a de-duplication executing module 803, a queuing module 804, and a scheduling module 805.
The instruction receiving module 801 is configured to receive a sent congestion control instruction, where the congestion control instruction carries a congestion event and an event queue number. When the congestion control instruction is a congestion uplink instruction, the congestion uplink instruction can be sent by the engine; when the congestion control instruction is a congestion issue instruction, the congestion issue instruction may be sent by the congestion control processing module.
The identifier obtaining module 802 is configured to, when it is determined that the event type of the congestion event is a congestion control upload event or a congestion control download event corresponding to the congestion control upload event, obtain an operation state identifier of the congestion control upload event in the congestion control state module according to the event queue number. When the congestion control instruction is a congestion uplink instruction, the identifier obtaining module 802 determines the event type and obtains the running state identifier by sending the event preprocessing module to the CC, where the event preprocessing module is a congestion control state module; when the congestion control instruction is a congestion issue instruction, the identifier obtaining module 802 determines the event type and obtains the running state identifier through a CC issue event preprocessing module, which is a congestion control state module at this time.
And a deduplication executing module 803, configured to perform deduplication on the congestion control upload event based on the running state identifier. The deduplication executing module 803 deduplicates the congestion control upload event or changes the running state identifier of the congestion control upload event based on the running state identifier through the CC event state module.
And the queuing module 804 is configured to add the congestion control instruction to the corresponding event processing queue.
And a scheduling module 805 configured to control the scheduler to schedule the congestion control instruction according to the event processing queue.
In one embodiment, a computer device is provided, which may be a server, and the internal structure thereof may be as shown in fig. 9. The computer device includes a processor, a memory, a network interface, and a database connected by a system bus. Wherein the processor of the computer device is configured to provide computing and control capabilities. The memory of the computer device comprises a nonvolatile 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 to run on the non-volatile storage medium. The database of the computer device is used for storing data such as congestion control instructions, running state identifiers, event processing queues and the like. The network interface of the computer device is used for communicating with an external terminal through a network connection. The computer program is executed by a processor to implement a method of congestion control event queue scheduling.
In one embodiment, there is provided a computer device comprising a memory storing a computer program and a processor implementing the following steps when the processor executes the computer program: receiving a sent congestion control instruction, wherein the congestion control instruction carries a congestion event and an event queue sequence number; when the event type of the congestion event is determined to be a congestion control uploading event or a congestion control issuing event corresponding to the congestion control uploading event, acquiring an operation state identifier of the congestion control uploading event in a congestion control state module according to an event queue sequence number; based on the running state identification, carrying out duplicate removal on the congestion control uploading event; adding the congestion control instruction into a corresponding event processing queue; and the control scheduler schedules the congestion control instruction according to the event processing queue.
In one embodiment, the running state identifier realized when the processor executes the computer program is stored in the congestion event state module, and the congestion event state module correspondingly stores the running state identifier which indicates that the congestion control uploading event is running and the change time; determining whether the congestion control uploading event is executed overtime or not based on the change time and the current time; and when the time is judged to be out, changing the running state identifier which shows that the congestion control uploading event is running into the running state identifier which shows that the congestion control uploading event is not running, and re-receiving the sent congestion control instruction.
In one embodiment, the running state identification implemented when the processor executes the computer program is stored in a congestion event status module, the congestion event status module having a timer; starting a timer based on an operational status flag indicating that a congestion control upload event is running; judging whether the time of the timer reaches a zero clearing time period or not; when the determination is reached, the operation state flag indicating that the congestion control upload event is in operation is changed to an operation state flag indicating that the congestion control upload event is not in operation, and the timer is restarted based on the newly received congestion control instruction.
In one embodiment, a control scheduler implemented when a processor executes a computer program schedules congestion control instructions according to an event processing queue, comprising: judging whether an unexecuted congestion control instruction exists in an event processing queue corresponding to the high priority or not according to the event priority; and when the judgment result is no, the control scheduler uploads the corresponding congestion control instructions piece by piece according to the event processing queue with low priority.
In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored which, when executed by a processor, performs the steps of: receiving a sent congestion control instruction, wherein the congestion control instruction carries a congestion event and an event queue serial number; when the event type of the congestion event is determined to be a congestion control uploading event or a congestion control sending event corresponding to the congestion control uploading event, acquiring an operation state identifier of the congestion control uploading event in a congestion control state module according to an event queue serial number; based on the running state identification, carrying out duplicate removal on the congestion control uploading event; adding the congestion control instruction into a corresponding event processing queue; and the control scheduler schedules the congestion control instruction according to the event processing queue.
In one embodiment, the running state identifier implemented when the computer program is executed by the processor is stored in the congestion event state module, and the congestion event state module correspondingly stores the running state identifier indicating that the congestion control uploading event is running and the change time; determining whether the congestion control uploading event is executed overtime or not based on the change time and the current time; and when the time is judged to be out, changing the running state identifier which shows that the congestion control uploading event is running into the running state identifier which shows that the congestion control uploading event is not running, and re-receiving the sent congestion control instruction.
In one embodiment, the running state identification implemented when the computer program is executed by the processor is stored in a congestion event status module, the congestion event status module having a timer; starting a timer based on an operational status flag indicating that a congestion control upload event is running; judging whether the time of the timer reaches a zero clearing time period or not; when the determination is reached, the operation state flag indicating that the congestion control upload event is running is changed to an operation state flag indicating that the congestion control upload event is not running, and the timer is restarted based on the newly received congestion control instruction.
In one embodiment, a control scheduler implemented by a computer program when executed by a processor schedules congestion control instructions according to an event processing queue, comprising: judging whether an event processing queue corresponding to the high priority has an unexecuted congestion control instruction or not according to the event priority; and when the judgment result is no, the control scheduler uploads the corresponding congestion control instructions piece by piece according to the event processing queue with low priority.
The above description is only for the specific embodiments of the present disclosure, but the scope of the present disclosure is not limited thereto, and any changes or substitutions that can be easily conceived by those skilled in the art within the technical scope of the present disclosure should be covered within the scope of the present disclosure. Therefore, the protection scope of the present disclosure shall be subject to the protection scope of the claims.

Claims (10)

1. A method for scheduling a congestion control event queue, comprising:
receiving a sent congestion control instruction, wherein the congestion control instruction carries a congestion event and an event queue serial number;
when the event type of the congestion event is determined to be a congestion control uploading event or a congestion control sending event corresponding to the congestion control uploading event, acquiring the running state identifier of the congestion control uploading event in a congestion control state module according to the event queue sequence number;
de-duplicating the congestion control upload event based on the operating state identifier;
adding the congestion control instruction into a corresponding event processing queue, wherein the event processing queue is a first-in first-out queue;
and the control scheduler schedules the congestion control instruction according to the event processing queue.
2. The method of claim 1, wherein the operating state identifier is stored in a congestion event state module, and wherein the congestion event state module stores the operating state identifier indicating that the congestion control upload event is running in association with a change time;
determining whether the congestion control uploading event is executed overtime based on the change time and the current time;
and when the time is judged to be out, changing the running state identifier which shows that the congestion control uploading event is running into a running state identifier which shows that the congestion control uploading event is not running, and re-receiving the sent congestion control instruction.
3. The method of claim 1, wherein the running state identification is stored in a congestion event status module, the congestion event status module having a timer;
starting the timer based on the operational status identification indicating that the congestion control upload event is running;
judging whether the time of the timer reaches a zero clearing time period or not;
when the determination is reached, the operation state flag indicating that the congestion control upload event is running is changed to an operation state flag indicating that the congestion control upload event is not running, and the timer is restarted based on the newly received congestion control instruction.
4. The method of claim 1, wherein the run state indicator is represented by a deduplication bitmap.
5. The method of claim 1, wherein the congestion control command is a congestion uplink command or a congestion downlink command.
6. The method according to claim 1, wherein the congestion control instruction further carries an event priority, and the congestion control instruction is added to a corresponding event processing queue according to the event priority.
7. The method of claim 6, wherein the control scheduler schedules the congestion control instructions according to the event processing queue, comprising:
judging whether an unexecuted congestion control instruction exists in an event processing queue corresponding to the high priority or not according to the event priority;
and when the judgment result is no, the control scheduler uploads the corresponding congestion control instructions piece by piece according to the event processing queue with low priority.
8. A congestion control event queue scheduling apparatus, comprising:
the instruction receiving module is used for receiving a sent congestion control instruction, and the congestion control instruction carries a congestion event and an event queue serial number;
the identifier acquisition module is used for acquiring the running state identifier of the congestion control uploading event in the congestion control state module according to the event queue sequence number when the event type of the congestion event is determined to be a congestion control uploading event or a congestion control sending event corresponding to the congestion control uploading event;
a duplicate removal execution module, configured to perform duplicate removal on the congestion control upload event based on the operation status identifier;
the queuing module is used for adding the congestion control instruction into a corresponding event processing queue, and the event processing queue is a first-in first-out queue;
and the scheduling module is used for controlling the scheduler to schedule the congestion control instruction according to the event processing queue.
9. A computer device comprising a memory and a processor, the memory storing a computer program, wherein the processor when executing the computer program performs the steps of the method according to any of claims 1 to 7.
10. A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, carries out the steps of the method of any one of claims 1 to 7.
CN202211469909.2A 2022-11-23 2022-11-23 Congestion control event queue scheduling method, device, equipment and storage medium Active CN115514709B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211469909.2A CN115514709B (en) 2022-11-23 2022-11-23 Congestion control event queue scheduling method, device, equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211469909.2A CN115514709B (en) 2022-11-23 2022-11-23 Congestion control event queue scheduling method, device, equipment and storage medium

Publications (2)

Publication Number Publication Date
CN115514709A CN115514709A (en) 2022-12-23
CN115514709B true CN115514709B (en) 2023-02-28

Family

ID=84513712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211469909.2A Active CN115514709B (en) 2022-11-23 2022-11-23 Congestion control event queue scheduling method, device, equipment and storage medium

Country Status (1)

Country Link
CN (1) CN115514709B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117376984B (en) * 2023-12-08 2024-03-08 华芯(武汉)智能装备有限公司 Crown block scheduling data transmission method and readable storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101056260A (en) * 2007-05-21 2007-10-17 中南大学 ECN mechanism-based congestion control method in the mixed network
CN102006230A (en) * 2010-11-26 2011-04-06 中南大学 Method for controlling congestion control method by fusing three kinds of information in wired/wireless hybrid network
CN103152279A (en) * 2007-03-12 2013-06-12 思杰系统有限公司 Systems and methods for providing quality of service precedence in tcp congestion control
CN112532530A (en) * 2019-09-18 2021-03-19 华为技术有限公司 Method and equipment for adjusting congestion notification information
CN114793214A (en) * 2021-01-26 2022-07-26 三星电子株式会社 Method and apparatus for congestion control

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9755973B2 (en) * 2013-08-07 2017-09-05 Citrix Systems, Inc. Performing QoS on unknown bandwidths through rate estimating TCP congestion handlers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152279A (en) * 2007-03-12 2013-06-12 思杰系统有限公司 Systems and methods for providing quality of service precedence in tcp congestion control
CN101056260A (en) * 2007-05-21 2007-10-17 中南大学 ECN mechanism-based congestion control method in the mixed network
CN102006230A (en) * 2010-11-26 2011-04-06 中南大学 Method for controlling congestion control method by fusing three kinds of information in wired/wireless hybrid network
CN112532530A (en) * 2019-09-18 2021-03-19 华为技术有限公司 Method and equipment for adjusting congestion notification information
CN114793214A (en) * 2021-01-26 2022-07-26 三星电子株式会社 Method and apparatus for congestion control

Also Published As

Publication number Publication date
CN115514709A (en) 2022-12-23

Similar Documents

Publication Publication Date Title
US11855901B1 (en) Visibility sampling
US10423358B1 (en) High-speed data packet capture and storage with playback capabilities
US8111707B2 (en) Compression mechanisms for control plane—data plane processing architectures
CN106062726B (en) Flow aware buffer management for data center switches
US11012367B2 (en) Technologies for managing TCP/IP packet delivery
US7664112B2 (en) Packet processing apparatus and method
US11665104B1 (en) Delay-based tagging in a network switch
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
US20140164640A1 (en) Small packet priority congestion control for data center traffic
EP4057579A1 (en) Data forwarding method, data buffering method, device, and related apparatus
US8935329B2 (en) Managing message transmission and reception
CN101547159A (en) Method and device for preventing network congestion
EP3395015A1 (en) Technologies for inline network traffic performance tracing
CN115514709B (en) Congestion control event queue scheduling method, device, equipment and storage medium
US9374325B2 (en) Hash perturbation with queue management in data communication
CN114079638A (en) Data transmission method, device and storage medium of multi-protocol hybrid network
CN116868553A (en) Dynamic network receiver driven data scheduling on a data center network for managing endpoint resources and congestion relief
Wu et al. Potential performance bottleneck in Linux TCP
CN113542148A (en) Message aggregation method and device, network card and readable storage medium
CN113765812A (en) Method and device for marking message
CN111756586A (en) Fair bandwidth allocation method based on priority queue in data center network, switch and readable storage medium
WO2008121690A2 (en) Data and control plane architecture for network application traffic management device
CN114615347B (en) UDP GSO-based data transmission method, device, computer equipment and storage medium
WO2021101640A1 (en) Method and apparatus of packet wash for in-time packet delivery
CN113595920A (en) Network congestion control method and equipment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant