Flow scheduling method and system, medium, program and electronic terminal

By setting the scheduling cycle length, the maximum number of packets sent in the data stream, and the average bandwidth ratio, and combining priority order polling, the resource competition problem between high and low priority streams in the existing traffic scheduling strategy is solved, achieving efficient and fair traffic scheduling, and ensuring low-latency transmission of high-priority streams and stable transmission opportunities for low-priority streams.

CN121619294APending Publication Date: 2026-03-06SHANGHAI CHENCHUANGXIN ELECTRONIC TECHNOLOGY CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202511582117.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-10-31
Publication Date
2026-03-06

AI Technical Summary

Technical Problem

Existing traffic scheduling strategies, while ensuring low-latency transmission of high-priority data streams, can easily lead to low-priority data streams being unable to obtain transmission opportunities for extended periods, or high-priority data streams being unable to respond in a timely manner due to bandwidth weight limitations, resulting in service delays and jitter.

Method used

By setting the scheduling cycle length, the maximum number of packets mi for each data stream, and the average bandwidth percentage ki, combined with a priority-based round-robin mechanism, it is ensured that high-priority streams get scheduling opportunities in each cycle. Hard constraints of mi and n2 are used to prevent excessive resource consumption, and the average bandwidth percentage ki is introduced to balance the bandwidth usage of each data stream.

Benefits of technology

It achieves the low-latency transmission requirement of high-priority streams while reserving transmission opportunities for low-priority streams, avoiding the impact of excessive bursts of a single data stream on system stability and improving the robustness and fairness of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121619294A_ABST
    Figure CN121619294A_ABST
Patent Text Reader

Abstract

The invention provides a traffic scheduling method, a traffic scheduling system, a medium, a program and an electronic terminal, and the method guarantees the low time delay of a high-priority data stream through setting the priority of the data stream. Meanwhile, the maximum packet sending number mi of the data flow in the single scheduling period and the residual packet sending number n2 of the network link in the current scheduling period are utilized to constrain bandwidth resource occupation of the data flow in the single scheduling period; therefore, the problem that low-priority data streams in a priority-based scheduling strategy are starved to death is solved to a certain extent, the situation that response of a bandwidth weight-based scheduling strategy to burst high-priority streams is delayed is improved, and optimal balance of performance and fairness is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of network communication technology, and in particular to a traffic scheduling method, system, medium, program and electronic terminal. Background Technology

[0002] In modern computer networks and communication systems, traffic scheduling is one of the core technologies for ensuring network service quality. With the increasing diversification of network applications, such as real-time video conferencing, online gaming, big data transmission, and web browsing, the data streams of different services have vastly different demands on network resources. Some data streams (such as video calls) are extremely sensitive to latency and jitter, requiring the network to provide immediate, prioritized transmission channels; while other data streams (such as background file downloads) are more concerned with long-term average bandwidth and are not sensitive to instantaneous latency.

[0003] Existing traffic scheduling strategies include priority-based scheduling strategies and bandwidth-weighted scheduling strategies.

[0004] In priority-based scheduling strategies, the scheduler strictly executes packet sending according to the priority of each data stream. While this can maximize the low-latency transmission of high-priority data streams, it may cause low-priority data streams to be unable to get a transmission opportunity, resulting in a "starvation" phenomenon.

[0005] In bandwidth-weighted scheduling strategies, the scheduler sends packets according to the bandwidth weight of each data stream. While this ensures that low-weight data streams can also get transmission opportunities within the scheduling period and avoid being "starved," when a high-priority data stream is received and needs to be transmitted quickly, it usually cannot be transmitted in time due to the limited bandwidth weight, resulting in increased latency and jitter for the corresponding service and affecting user experience. Summary of the Invention

[0006] In view of the shortcomings of the prior art described above, the purpose of this application is to provide a traffic scheduling method, system, medium, program and electronic terminal to solve the aforementioned problems.

[0007] To achieve the above and other related objectives, a first aspect of this application provides a traffic scheduling method, comprising: obtaining the scheduling period length t of the scheduler and the maximum number of packets n0 sent by a network link in a single scheduling period; setting the initial value of the number of packets n1 already sent by the network link in each scheduling period to 0, and correspondingly, setting the initial value of the remaining number of packets n2 sent by the network link in the current scheduling period to n0; and setting the priority of each data flow and the maximum number of packets m sent by that data flow in a single scheduling period. iWhere, the subscript i is the index identifier of each data stream; within each scheduling cycle, the scheduler polls each data stream in priority order, sequentially executes packet transmission for data streams that meet the transmission conditions, and updates the number of packets transmitted n1 on the network link in the current scheduling cycle accordingly, until n1 reaches its upper limit n0, at which point the current round of scheduling terminates; where, when executing packet transmission for a data stream that meets the transmission conditions, the actual number of packets transmitted p for that data stream is... i Should meet:

[0008] In one embodiment of the first aspect of this application, the method further includes: setting an average bandwidth percentage k for each data stream. i ; where k i The percentage of the total number of data packets sent by this data stream within a certain time span △T out of the total number of data packets sent by the network link, where △T is the total duration of this data stream in the network link from the start of packet transmission to the end of packet transmission; the transmission condition includes: the next packet transmission time H of this data stream. i_next Not earlier than the start time of the current scheduling period; wherein, the next packet transmission time H i_next This is calculated after the data stream has completed its previous packet transmission. The calculation method includes: in, This represents the actual number of packets sent during the last packet transmission of the data stream. This is the initial time of the scheduling cycle corresponding to the last packet transmission of this data stream.

[0009] In one embodiment of the first aspect of this application, the scheduling period length t is adjusted in real time according to the data flow characteristics of the current network link.

[0010] In one embodiment of the first aspect of this application, during a certain scheduling period, when sending packets to a data stream that meets the sending conditions, if: Then the number of remaining data packets g in the data stream i The number of packets sent by the network link during this scheduling period, n1, is replenished; among which,

[0011] In one embodiment of the first aspect of this application, when sending packets to a data stream that meets the sending conditions, if the length L1 of a certain data packet in the data stream is greater than the preset standard length L0, the number of data packets corresponding to that data packet is recalculated. ,in, The rounding up symbol.

[0012] In one embodiment of the first aspect of this application, if the data streams of the same priority have not been polled by the end of the current round of scheduling, the scheduler records the position of the data stream corresponding to the end of the current poll. When polling the data stream corresponding to the priority again, the scheduler starts polling from the next data stream at that position to determine whether the sending conditions are met.

[0013] To achieve the above and other related objectives, a second aspect of this application provides a traffic scheduling system, comprising: a data acquisition module for acquiring the scheduling period length t of the scheduler and the maximum number of packets n0 sent by a network link in a single scheduling period; setting the initial value of the number of packets n1 already sent by the network link in each scheduling period to 0, and correspondingly, setting the initial value of the remaining number of packets n2 sent by the network link in the current scheduling period to n0; and a parameter setting module for setting the priority of each data stream and the maximum number of packets m sent by the data stream in a single scheduling period. i Wherein, the subscript i is the index identifier of each data stream; the scheduling execution module is used to, within each scheduling cycle, poll each data stream in priority order, sequentially execute packet transmission for data streams that meet the transmission conditions, and update the number of packets transmitted n1 of the network link in the current scheduling cycle accordingly, until n1 reaches its upper limit n0 and the current round of scheduling is terminated; wherein, when executing packet transmission for a data stream that meets the transmission conditions, the actual number of packets p corresponding to that data stream is... i Should meet:

[0014] To achieve the above and other related objectives, a third aspect of this application provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the method described in any of the preceding claims.

[0015] To achieve the above and other related objectives, a fourth aspect of this application provides a computer program product comprising computer program code that, when executed on a computer, causes the computer to perform the method described in any of the preceding claims.

[0016] To achieve the above and other related objectives, a fifth aspect of this application provides an electronic terminal, including a memory, a processor, and a computer program stored in the memory, wherein the processor executes the computer program to implement the method described in any of the preceding claims.

[0017] As described above, this application has the following beneficial effects:

[0018] Compared with the prior art, the technical solution provided by steps S1-S4 of the present invention ensures that high-priority streams can obtain scheduling opportunities first, and retains the core advantage of priority-based scheduling in the prior art (priority-based scheduling strategy), that is, it can effectively guarantee the low-latency transmission requirements of high-priority data streams.

[0019] Furthermore, based on this, it creatively introduces a maximum number of packets m sent by each data stream within a single scheduling cycle. i These two parameters set a clear upper limit on the resource consumption of each data stream within a single scheduling cycle. This mechanism effectively curbs the behavior of high-priority data streams occupying link resources without restriction within the cycle, thereby reserving necessary transmission opportunities for lower-priority data streams within the same cycle and significantly alleviating the risk of low-priority streams being "starved" for a long time in traditional priority scheduling.

[0020] Compared to existing technologies (bandwidth-weighted scheduling strategies), where scheduling opportunities are strictly fixed by weight ratios, causing high-priority service flows arriving in bursts to fail to be responded to in a timely manner due to weight limitations, thus leading to service delays and jitter, the scheduling strategy in this invention, although subject to... While there are limitations, it still follows a priority order in essence. This means that a high-priority flow can still be polled at the beginning of each cycle and send as much data as possible when needed, thus ensuring its priority access to link resources and maintaining its low-latency characteristics.

[0021] Therefore, the technical advantage of the solution provided by this invention lies in its ingenious balance between the first two traditional strategies. It ensures the service quality and response speed of high-priority services through a priority mechanism, while also achieving a balance through m... i The hard constraints of n2 introduce necessary fairness guarantees and resource isolation, preventing excessive bursts of any single data stream (regardless of priority) from impacting the overall stability of the system. Without significantly sacrificing the performance of high-priority services, it systematically improves the survival space of low-priority services, while enhancing the robustness of the scheduling system in dealing with sudden traffic surges. Attached Figure Description

[0022] Figure 1 The diagram shown is a flowchart of a traffic scheduling method in one embodiment of this application.

[0023] Figure 2 The diagram shown is a flowchart of a traffic scheduling method (within a single scheduling cycle) in one embodiment of this application.

[0024] Figure 3 The diagram shown is a structural schematic of an electronic terminal according to an embodiment of this application. Detailed Implementation

[0025] The following specific examples illustrate the implementation of this application. Those skilled in the art can easily understand other advantages and effects of this application from the content disclosed in this specification. This application can also be implemented or applied through other different specific embodiments, and various details in this specification can also be modified or changed based on different viewpoints and applications without departing from the spirit of this application. It should be noted that, unless otherwise specified, the following embodiments and features in the embodiments can be combined with each other.

[0026] In the embodiments of this application, terms such as "first" and "second" are used to distinguish identical or similar items with essentially the same function and effect. For example, "first XX" and "second XX" are merely used to distinguish different XXs and do not limit their order. Those skilled in the art will understand that terms such as "first" and "second" do not limit the quantity or execution order, and that "first" and "second" do not necessarily imply that they are different.

[0027] It should be noted that, in the embodiments of this application, the words "exemplary" or "for example" indicate examples, illustrations, or descriptions. Any embodiment or design described as "exemplary" or "for example" in this application should not be construed as being more preferred or advantageous than other embodiments or design solutions. Specifically, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a specific manner.

[0028] In this application embodiment, "at least one" refers to one or more, and "more than one" refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0029] like Figure 1-2 As shown, the first aspect of this application provides a traffic scheduling method, comprising:

[0030] S1: Obtain the scheduler's scheduling period length t and the maximum number of packets n0 that a network link can send within a single scheduling period.

[0031] It should be understood that a scheduler is an entity deployed in the control node of a network link, responsible for managing data flow. It can manifest as a pure software module, dedicated hardware circuitry, or a combination of both. The core function of the scheduler is to sort, select, and allocate data packets that need to pass through its control node to the appropriate output network link according to a predetermined strategy. The scheduling cycle length t is the basic time unit defining the scheduler's operating rhythm. It should be understood that the scheduler does not make decisions continuously, but rather divides time into a series of cycles of length t, and at the beginning of each cycle, performs a centralized scheduling calculation based on the perceived current network state. Since scheduling requires computing resources, a shorter scheduling cycle allows the scheduler to respond more quickly to changes in network state, which helps reduce data forwarding latency, but frequent scheduling calculations significantly increase the processing load on the control plane. Conversely, while a longer scheduling cycle can reduce the scheduler's own computational burden, it may fail to meet the demands of high real-time services due to decision lag.

[0032] In one embodiment of the first aspect of this application, the scheduling period length t is adjusted in real time according to the data flow characteristics of the current network link. That is, the scheduling period length t is designed as an adaptive parameter that can be dynamically adjusted according to the data flow characteristics of the current network link.

[0033] The data flow characteristics are a multi-dimensional comprehensive indicator, including but not limited to: the arrival rate of data packets, the type of data flow (e.g., whether it is a steady continuous flow or a bursty intermittent flow), the distribution of data packet sizes, and the sensitivity of the service flow to transmission latency and latency jitter. In the scheduling method of this invention, the system continuously collects these parameters through a built-in monitoring module and optimizes the period t accordingly. Specifically, when a large number of latency-sensitive interactive service flows (such as video conferencing and cloud gaming) are detected in the network, the system will automatically shorten the scheduling period t. This makes scheduling decisions more frequent, thereby enabling a rapid response to newly arriving data packets, effectively reducing queuing and scheduling latency, and ensuring the service quality of critical services. Conversely, when the main network traffic shifts to background flows that are not latency-sensitive but have high throughput requirements (such as data backup and batch transmission), the system is more suitable to extend the scheduling period t. Since a longer period allows more data packets to be processed in a single scheduling calculation, the scheduling frequency per unit time is significantly reduced, thereby shifting valuable computing resources from control logic to data forwarding tasks and improving the overall processing efficiency of the system.

[0034] It should be understood that, in this invention, "network link" refers to the physical or logical communication channel downstream of the scheduler. The maximum number of packets n0 that a network link can send within a single scheduling period is a physical parameter characterizing the link's maximum data capacity within a scheduling period t. This parameter n0 is primarily determined by the link's physical bandwidth and the nominal size of the transmitted data packets. For example, for a network link with a physical bandwidth of 1Gbps, the theoretical maximum number of packets n0 that can send within a 1-millisecond scheduling period t for 1500-byte data packets can be calculated using the formula "n0 = (network link bandwidth × scheduling period t) / data packet size". At the start of each scheduling period, the scheduler ensures that the total number of data packets planned and allocated to the link for that period does not exceed n0. This constraint prevents the link from becoming overloaded due to excessive task allocation within a single period, thereby achieving more precise and controllable traffic scheduling.

[0035] S2: Set the initial value of the number of packets sent by the network link in each scheduling period n1 to 0, and the initial value of the remaining number of packets sent by the network link in the current scheduling period n2 to n0.

[0036] The number of packets sent by the network link in each scheduling period, n1, is a dynamically changing counter variable. Its function is to record in real time the total number of data packets actually sent by the network link within the current scheduling period t. Since historical data sent in previous periods is not included in the current period at the beginning of each scheduling period, the initial value of n1 is set to 0. This design ensures that the flow control in each scheduling period is independent and fair, avoiding interference from historical states on current decisions.

[0037] Corresponding to n1, the remaining packet transmission capacity n2 of the network link in the current scheduling period is also a dynamic variable, representing the remaining available packet transmission capacity of the network link in the current scheduling period. At the beginning of the scheduling period, no packets have been sent, and the entire transmission capacity n0 of the network link is unused, so the initial value of n2 is set to n0, i.e., the maximum number of packets to be sent. As scheduling progresses, whenever one or more packets are successfully scheduled and sent through the link, the value of n1 increases accordingly, while the value of n2 decreases synchronously, and their numerical relationship always satisfies "n2 = n0 - n1". This pair of variables constitutes a real-time updated capacity budget system, providing the scheduler with immediate and accurate quantitative basis for each subsequent packet forwarding decision.

[0038] S3: Set the priority of each data stream and the maximum number of packets m that the data stream can send in a single scheduling cycle. iWhere the subscript i is the index identifier for each data stream.

[0039] The priority value directly determines the order in which the data stream competes for link resources. Assigning a priority to each data stream aims to differentiate the service levels of different services. For example, real-time voice call data streams are given extremely high priority to ensure that their requirements for low latency and low jitter are met first; while background tasks such as file downloads are set to lower priority, and they must give way to high-priority services when the network is congested.

[0040] And parameter m i This defines an upper limit on the number of data packets allowed to be allocated to data stream i and sent via the network link within a scheduling period t. Let m be... i On the one hand, it prevents any data stream (even a high-priority stream) from occupying link resources without limit, thus ensuring the fairness of network resources and avoiding the "starvation" phenomenon to a greater extent compared to priority-based strategies in existing technologies. On the other hand, it enables the system to allocate bandwidth differently to different streams based on service characteristics and service level agreements, achieving more refined quality of service control. For example, a high-priority video stream is assigned a larger m i A value is assigned to ensure smoothness, while a low-priority log upload stream is assigned a smaller value. i Value. It should be understood that this scheme solves the "first come, first served" problem during resource contention by setting priorities, while the maximum number of packets m sent in a single data stream... i This solves the problem of "how much can be given". The two parameters work together to enable the scheduler to dynamically balance the complex relationship between service quality, fairness and total network link capacity when facing multiple data streams to be forwarded in each cycle. This provides a more efficient and intelligent traffic scheduling method compared to the single strategy in existing technologies.

[0041] S4: Within each scheduling cycle, the scheduler polls each data stream in priority order, sequentially sending packets to data streams that meet the sending conditions, and updates the number of packets sent by the network link in the current scheduling cycle, n1, until n1 reaches its upper limit n0, at which point the current round of scheduling terminates; whereby, when sending packets to a data stream that meets the sending conditions, the actual number of packets sent for that data stream is p. i Should meet:

[0042] Step S4 elaborates on the core execution logic of the scheduling method described in this invention within each scheduling cycle. That is, the scheduling process is a priority-based, multi-constrained cyclic scheduling mechanism, the purpose of which is to allocate limited routing resources in an orderly and efficient manner to competing data flows. Specifically, at the beginning of each scheduling cycle, the scheduler enters a cyclic process of polling each data flow in descending priority order: it first starts with the highest priority data flow and checks whether it meets the sending conditions. For data flows that meet the conditions, the scheduler does not schedule all data packets in its queue at once, but performs a controlled packet sending operation—controlled meaning that the actual number of packets pi sent by the data flow is subject to inequalities. The constraint means that every scheduling decision for a single data stream must simultaneously respect the packet quota within each data stream and the system's global remaining packet quota. This ensures that scheduling actions neither exceed the authorized range of a single stream nor cause over-packet transmission at the end of the cycle. Furthermore, based on... After allocating the corresponding number of data packets to be sent to the data stream that meets the sending conditions, the system will update the variables n1 and n2 accordingly, that is, increase the number of packets sent in the network link n1. Reduce the remaining number of packets n2. The scheduler then continues polling the next priority data stream and repeats the above process. This cycle continues until the number of packets sent on the link, n1, reaches its upper limit, n0. At this point, the link's packet sending quota for the current scheduling cycle has been exhausted, and the current round of scheduling terminates. Through this dynamic and incremental resource allocation method, this invention achieves refined and adaptive traffic scheduling of multiple data streams based on a preset priority strategy, while strictly ensuring that the link is not overloaded.

[0043] In one embodiment of the first aspect of this application, during a certain scheduling period, when sending packets to a data stream that meets the sending conditions, if: Then the number of remaining data packets g in the data stream i The number of packets sent by the network link during this scheduling period, n1, is replenished; among which,

[0044] In this embodiment, an optimization mechanism is introduced into the scheduling method of the present invention to address the problem that data streams fail to fully utilize their current available capacity during actual packet transmission, thereby further improving the utilization efficiency of link resources. The specific operating logic of this optimization mechanism is as follows: within a certain scheduling period, when the scheduler polls a data stream i that meets the transmission conditions and decides to perform a packet transmission operation for it, the actual number of packets p transmitted is determined. i It is possible that the value will be less than its theoretically available upper limit (i.e. This is because the data stream does not currently have enough data packets in its sending queue to fill its allowed quota, meaning its queue length is less than [a certain value]. This is the cause. If the standard procedure is followed, only polling and packet sending operations are performed without reclaiming this portion of the quota, then the remaining quota that could have been used for this data stream would be wasted. This will be idle and wasted. Therefore, in order to recover this portion of allocated but unused resources, this embodiment takes the following compensatory measures: the unused packet quota of the data stream within this period... Re-insert the number of packets sent by the network link within the current scheduling period, n1.

[0045] In one embodiment of the first aspect of this application, when sending packets to a data stream that meets the sending conditions, if the length L1 of a certain data packet in the data stream is greater than the preset standard length L0, the number of data packets corresponding to that data packet is recalculated. ,in, The rounding up symbol.

[0046] Specifically, when preparing to send a data stream that meets the sending conditions and processing a specific data packet in its queue, the scheduler first determines whether the packet length L1 is greater than a preset standard data packet length L0. If the packet length L1 is greater than the standard length L0, the scheduler will not simply count it as one data packet for scheduling. Instead, it will recalculate the equivalent "number of standard data packets" based on the actual length of the packet. The rounding rule here ensures that the remainder of L1 / L0 can also be considered as a single data packet. For example, suppose the preset standard length L0 is 1500 bytes. If the length L1 of a data packet to be sent is 3200 bytes, then the equivalent number of data packets after conversion is... =3. In other words, when the scheduler allocates resources, this single 3200-byte data packet will be considered as consuming the network link transmission resources of 3 standard data packets.

[0047] In one embodiment of the first aspect of this application, if the data stream of a certain priority has not been fully polled by the end of the current round of scheduling, the scheduler records the position where the current polling ends. When polling the data stream corresponding to that priority again, it starts polling from the next data stream at that position to determine whether the sending conditions are met.

[0048] Specifically, this embodiment refers to a situation where, when a scheduling cycle ends prematurely due to the exhaustion of link packet sending quota, a set of data streams of a certain priority may not have been fully polled. In this case, the scheduler records the position where the current polling ended, i.e., the position of the last data stream accessed in that priority sequence. In subsequent scheduling cycles, when the scheduler needs to poll the same priority data stream again, it will start the sequential access from the next data stream based on the position information recorded in the previous cycle. This mechanism allows the starting point of polling to shift dynamically, rather than starting fixedly from the head of the sequence in each cycle. This ensures that all data streams of the same priority have a statistically equal chance of being accessed within a continuous time window, effectively preventing data streams at the end of the sequence from being continuously delayed in multiple cycles due to a fixed polling order. This, to some extent, avoids the "starvation" phenomenon or additional latency jitter of data streams located at the tail of the priority queue. From the perspective of overall system performance, this also enhances the consistency guarantee of service quality for business flows of the same priority, thereby enabling more refined and fairer traffic scheduling.

[0049] In one embodiment of the first aspect of this application, for data streams of the same priority, polling is performed in the order in which the first data packet in each data stream is received.

[0050] Specifically, this embodiment refers to a scheduling mechanism where, for multiple data streams with the same priority, the scheduler determines the polling order based on the system time of the first data packet arriving at the scheduler in each scheduling cycle. That is, the data stream with the earliest arrival time of its first data packet receives the highest priority for polling, followed by polling in order of arrival time. This scheme embodies the basic fairness principle of "first-come, first-served." Its advantage lies in effectively reducing the waiting latency of data streams in the scheduler, especially for the first arriving data stream, ensuring its timely processing and thus reducing overall scheduling latency. From a system behavior perspective, this strategy tends to maintain consistency between the order in which data packets are processed and their arrival order, helping to reduce latency jitter in the business flow. Compared to the aforementioned scheme that continues polling from the end of the previous polling cycle, which aims to ensure that each data stream receives an equal opportunity across multiple scheduling cycles regardless of the specific arrival time of the data packets, this scheme focuses more on the arrival time of the data packets, aiming to optimize fairness and response speed in the time dimension. Both are effective means of solving the problem of fairness in scheduling within the same priority, and can be selected and used according to different application scenarios (such as pursuing extremely low latency or pursuing long-term absolute fairness).

[0051] It should be understood that, compared to existing technologies, the solution provided in steps S1-S4 ensures that high-priority flows have priority in obtaining scheduling opportunities, retaining the core advantage of priority-based scheduling in existing technologies (priority-based scheduling strategies), namely, effectively guaranteeing the low-latency transmission requirements of high-priority data flows. Furthermore, it creatively introduces a maximum number of packets m that each data flow can send within a single scheduling cycle. i These two parameters set a clear upper limit on the resource consumption of each data stream within a single scheduling cycle. This mechanism effectively curbs the behavior of high-priority data streams occupying link resources without restriction within the current cycle, thereby reserving necessary transmission opportunities for lower-priority data streams within the same cycle. This significantly alleviates the risk of low-priority streams being "starved" for a long time in traditional priority scheduling. Compared to existing technologies (bandwidth-weighted scheduling strategies), where scheduling opportunities are strictly fixed by weight ratios, causing high-priority service streams arriving suddenly to be unable to be responded to in a timely manner due to weight limitations, thus leading to service delays and jitter, the scheduling strategy in this invention, although subject to... While subject to restrictions, it still fundamentally follows a priority order. This means that a high-priority flow, when needed, can still be polled at the beginning of each cycle and send as much data as possible, thus guaranteeing its priority access to link resources and maintaining its low-latency characteristics. Therefore, the technical effect of the solution provided by this invention lies in its ingenious balance between the first two traditional strategies. It ensures the service quality and response speed of high-priority services through a priority mechanism, while also achieving a balance through m i The hard constraints of n2 introduce necessary fairness guarantees and resource isolation, preventing excessive bursts of any single data stream (regardless of priority) from impacting the overall stability of the system. Without significantly sacrificing the performance of high-priority services, it systematically improves the survival space of low-priority services, while enhancing the robustness of the scheduling system in dealing with sudden traffic surges.

[0052] In one embodiment of the first aspect of this application, it further includes:

[0053] S5: Set the average bandwidth percentage k for each data stream i ; where k i It is the percentage of the total number of data packets sent by the data stream within a certain time span △T, relative to the total number of data packets sent by the network link. △T is the total duration of the data stream in the network link from the start of packet transmission to the end of packet transmission.

[0054] The sending conditions include: the next packet transmission time H of the data stream. i_next Not earlier than the start time of the current scheduling period; wherein, the next packet transmission time H i_nextThis is calculated after the data stream has completed its previous packet transmission. The calculation method includes: in, This represents the actual number of packets sent during the last packet transmission of the data stream. This is the initial time of the scheduling cycle corresponding to the last packet transmission of this data stream.

[0055] For example, suppose the current network link's scheduling period length t is 1µs, the maximum number of packets n0 to be sent within a single scheduling period is 3, and there are three data streams to be sent in the current network link: data stream A, data stream B, and data stream C; among them, data stream A has 10 data packets with a priority of 1, and the maximum number of packets m to be sent within a single scheduling period is... A The priority is 1, with an average bandwidth share of 33%; data stream B has 10 data packets, with a priority of 2, and the maximum number of packets sent within a single scheduling cycle is m. B The priority is 2, with an average bandwidth share of 67%; data stream C has 10 data packets with a priority of 2, and the maximum number of packets sent in a single scheduling cycle is m. C The value is 3, and the average bandwidth share is 67%.

[0056] Within the first scheduling cycle, according to priority, data flow A is first sent packets, specifically min(1,3) = 1. After allocating the quota of 1 to data flow A, n1 in the network link is updated to 1, and correspondingly, n2 is updated to 3-1=2. Then, the next packet sending time for data flow A is calculated according to the formula. .

[0057] In the first scheduling cycle, since data flow A only sent 1 data packet, and the network link still has 2 data packets to send (n2=2), the next polling continues to data flow B (or data flow C, which is chosen as an example here) with priority 2. The specific number of packets sent by data flow B is min(2,2)=2. After allocating the quota of 2 to data flow B, n1 in the network link is updated to 3, and n2 is 3-3=0. At this time, since n1 has reached its upper limit n0(3), the scheduling work of the first scheduling cycle is terminated, and no more packets are sent to the subsequent data flow C. In addition, like data flow A, it is also necessary to calculate the next packet sending time of data flow B. .

[0058] In the second scheduling cycle, for data stream A with priority 1, because =1us, which is equal to the initial time of 1us in the second scheduling cycle of the scheduler (since the scheduling cycle length is 1us, the initial time of the first scheduling cycle is 0us, the initial time of the second scheduling cycle is 1us, the initial time of the third scheduling cycle is 2us, and so on). Since there is no time earlier than the start of the second scheduling cycle, data flow A can continue to send packets within the second scheduling cycle. Furthermore, the number of packets sent by data flow A remains min(1,3) = 1. After allocating the quota of 1 to data flow A, n1 in the network link is updated to 1, and correspondingly, n2 is updated to 3-1 = 2. Then, the next packet sending time for data flow A is calculated according to the formula. .

[0059] In the second scheduling cycle, for data streams B and C (assuming data stream B is received before data stream C), we need to discuss them separately:

[0060] If we follow the strategy of "round-robin scheduling based on the order in which the first data packet in each data stream is received for data streams of the same priority" (hereinafter referred to as Strategy A), then since data streams B and C belong to the same priority, and scheduling for the same priority is based on the order of reception time; plus the next packet transmission time of data stream B... Since the data stream B's packet transmission time is not earlier than the initial time of the second scheduling cycle, it meets the transmission condition. Therefore, the data stream B's packet transmission will continue during the second scheduling cycle. Furthermore, since min(2,2)=2, the number of packets sent by data stream B during the second scheduling cycle is also 2. After allocating the 2-point quota to data stream B, n1 in the network link is updated to 3, and n2 to 3-3=0. At this point, since n1 reaches its upper limit n0(3), the scheduling work of the second scheduling cycle is terminated, and packet transmission will no longer be performed on subsequent data stream C. The next packet transmission time for data stream B is then calculated. .

[0061] If we follow the strategy of "if all data streams of a certain priority have not been polled by the end of this round of scheduling, the scheduler records the end position of this polling. When polling the data stream corresponding to that priority again, it starts polling from the next data stream at that position to determine whether the sending condition is met" (hereinafter referred to as Strategy B), since the data stream with priority 2 has not been completely polled in the first scheduling cycle, data stream C has not been sent. Therefore, the scheduler will record the end position of this polling, that is, the position of data stream B. When polling the data stream with priority 2 again in the second scheduling cycle, it should start polling from the next data stream after data stream B, that is, data stream C, to determine whether it meets the sending condition. Therefore, since data stream C is sending for the first time and meets the sending condition (the first packet does not need to calculate the time of the next packet), it will send packets to data stream C. The specific number of packets sent is min(3,2) = 2. After allocating the quota of 2 to data flow C, update n1 in the network link to 3 and n2 to 3-3=0. At this point, since n1 has reached its upper limit n0 (3), the scheduling work of the second scheduling cycle is terminated. Furthermore, calculate the next packet transmission time of data flow C. .

[0062] During the third scheduling cycle, due to =2us, which is equal to the initial time of the second scheduling cycle, 2us. Therefore, data stream A meets the sending conditions and can be sent. Specifically, the number of packets sent is min(1,3)=1. At this time, the next packet sending time of data stream A is calculated as follows: .

[0063] In the third scheduling cycle, similar to the second scheduling cycle, a case-by-case discussion is required (still assuming that data stream B is received before data stream C):

[0064] If strategy A is followed, since data stream B is received earlier than data stream C, packets will still be sent to data stream B, specifically the number of packets sent being min(2,3) = 2. After allocating the 2-point limit to data stream B, n1 in the network link is updated to 3, and n2 to 3-3 = 0. Since n1 reaches its upper limit n0(3), the scheduling work for the third scheduling cycle is terminated. Furthermore, the next packet sending time for data stream B is calculated. .

[0065] If strategy B is followed, since data streams B and C, both with priority 2, were not fully polled during the second scheduling cycle, the scheduler records the end position of this polling, i.e., the position of data stream C. When the scheduler polls again on a data stream with priority 2 during the third scheduling cycle, it should start polling from the next data stream after data stream C, i.e., data stream B, to determine whether it meets the sending conditions. Since the next packet sending time calculated by data stream B during the previous packet sending (the first scheduling cycle) is... The packet transmission time is less than 2µs from the initial time of the third scheduling cycle, so it meets the packet transmission condition and can be executed. Specifically, the number of packets to be transmitted is min(2,2) = 2. At this point, the next packet transmission time for data stream B is calculated again. Furthermore, since n1 has reached its upper limit n0 (3), the scheduling work of the third scheduling cycle is terminated.

[0066] Table 1 shows the packet sending behavior of data flow AC in the first five scheduling cycles, based on different packet sending strategies for data flows of the same priority:

[0067]

[0068] It should be understood that, in the aforementioned case where the average bandwidth percentage k was not introduced... i In this scheme, only priority and the maximum number of packets m sent by the data stream within a single scheduling cycle are considered. i The data stream transmission is scheduled based on the remaining packet count n2 of the network link within the current scheduling period, through m. i The parameters `n1` and `n2` limit the number of packets each data flow sends in each scheduling cycle, preventing it from sending all received packets indefinitely and thus avoiding excessive network resource consumption, which could prevent low-priority data flows from getting transmission opportunities. However, this method lacks the ability to plan and constrain the bandwidth usage ratio of data flows on a macro-time scale, and cannot guarantee that each data flow can share the total link bandwidth in a predetermined proportion over multiple consecutive cycles. For example, a high-priority data flow may receive a larger `m` in each cycle due to its priority. i Prioritizing data streams and sending them at higher priority will result in them consistently occupying a higher proportion of bandwidth in long-term statistics. This means that even if low-priority data streams are protected within a single period, they may still not receive their due minimum bandwidth share in the long run, leading to a decline in service quality.

[0069] This embodiment aims to introduce an average bandwidth percentage k. i and the next packet sending time H i_next The condition of sending data no earlier than the start time of the current scheduling period effectively compensates for the aforementioned deficiencies. Specifically, the formula... The essence is that for every additional unit of instantaneous bandwidth consumed by a data stream, it must "pay back" the corresponding waiting time. In this way, the bursty behavior of the data stream is automatically adjusted, forcing the long-term average transmission rate of the data stream to converge to the theoretical value of (n0×ki) / t. That is, each data stream can self-regulate based on its own historical behavior, eliminating the need for the scheduler to perform complex real-time rate calculations globally. Besides reducing computational load, this mechanism also greatly enhances the predictability and stability of the system under complex loads—in a system without this scheme, a high-priority stream might be continuously scheduled for multiple cycles, its behavior drastically squeezing the available space of other streams, making the overall system behavior unpredictable; however, in this scheme, even if a stream is granted high priority and sends a large amount of data in a certain cycle, its subsequent H... i_next This will also be significantly delayed, creating a clear and predictable scheduling window for other flows of the same or even lower priority. This "send and pause" rule allows network link bandwidth resources to be pre-allocated and "reserved" on the timeline, resulting in a more even system load and fundamentally reducing the risk of congestion due to uncontrolled resource contention. Furthermore, by setting different k values ​​for different service types... i The system can flexibly implement differentiated bandwidth strategies. For example, a fixed k value can be set for bandwidth-guaranteed services (such as cloud desktops). i For best-effort tasks (such as file downloads), a dynamically adjusted k can be used. i In this way, data stream transmission is not based on simple priority preemption, but on precise measurement and control of long-term resource usage. This provides crucial, granular traffic management capabilities for complex network environments with multi-tenancy and mixed service types. Furthermore, this mechanism strengthens long-term fairness, reduces network traffic jitter, and improves overall link utilization efficiency and stability, extending from short-term fairness to long-term fairness, thus offering a more comprehensive and refined traffic scheduling solution.

[0070] A second aspect of this application provides a traffic scheduling system, comprising: a data acquisition module for acquiring the scheduling period length t of the scheduler and the maximum number of packets n0 sent by a network link in a single scheduling period; setting the initial value of the number of packets n1 already sent by the network link in each scheduling period to 0, and correspondingly, setting the initial value of the remaining number of packets n2 sent by the network link in the current scheduling period to n0; and a parameter setting module for setting the priority of each data stream and the maximum number of packets m sent by the data stream in a single scheduling period. iWherein, the subscript i is the index identifier of each data stream; the scheduling execution module is used to, within each scheduling cycle, poll each data stream in priority order, sequentially execute packet transmission for data streams that meet the transmission conditions, and update the number of packets transmitted n1 of the network link in the current scheduling cycle accordingly, until n1 reaches its upper limit n0 and the current round of scheduling is terminated; wherein, when executing packet transmission for a data stream that meets the transmission conditions, the actual number of packets p corresponding to that data stream is... i Should meet:

[0071] It should be understood that the specific process of each module performing the above-mentioned steps has been described in detail in the above method embodiments, and will not be repeated here for the sake of brevity.

[0072] It should also be understood that the module division in the embodiments of this application is illustrative and only represents a logical functional division; in actual implementation, there may be other division methods. Furthermore, the functional modules in the various embodiments of this application can be integrated into a single processor, exist as separate physical entities, or be integrated into a single module. The integrated modules described above can be implemented in hardware or as software functional modules.

[0073] A third aspect of this application provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the method described in any of the preceding claims.

[0074] A fourth aspect of this application provides a computer program product including computer program code that, when run on a computer, causes the computer to perform the method described in any of the preceding claims.

[0075] like Figure 3 As shown, a fifth aspect of this application provides an electronic terminal including a memory, a processor, and a computer program stored in the memory, wherein the processor executes the computer program to implement the method described in any of the preceding claims. The electronic terminal includes at least one processor 101, a memory 102, at least one network interface 103, and a user interface 105. The various components in the device are coupled together via a bus system 104. It is understood that the bus system 104 is used to enable communication between these components. In addition to a data bus, the bus system 104 also includes a power bus, a control bus, and a status signal bus.

[0076] The user interface 105 may include a monitor, keyboard, mouse, trackball, clicker, button, touchpad, or touch screen.

[0077] It is understood that memory 102 can be volatile memory or non-volatile memory, or both. Non-volatile memory can be read-only memory (ROM) or programmable read-only memory (PROM), used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM) and synchronous static random access memory (SSRAM). The memories described in the embodiments of this invention are intended to include, but are not limited to, these and any other suitable categories of memory.

[0078] In this embodiment of the invention, the memory 102 is used to store various types of data to support the operation of the electronic terminal 100. Examples of this data include: any executable program for operation on the electronic terminal 100, such as the operating system 1021 and application programs 1022; the operating system 1021 contains various system programs, such as the framework layer, core library layer, driver layer, etc., for implementing various basic services and handling hardware-based tasks. The application program 1022 may contain various applications, such as a media player, browser, etc., for implementing various application services. The methods provided in this embodiment of the invention may be included in the application program 1022.

[0079] The methods disclosed in the above embodiments of the present invention can be applied to processor 101, or implemented by processor 101. Processor 101 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the integrated logic circuit of the hardware in processor 101 or by instructions in the form of software. The processor 101 may be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. Processor 101 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of the present invention. General-purpose processor 101 may be a microprocessor or any conventional processor, etc. The steps of the accessory optimization method provided in the embodiments of the present invention can be directly reflected as being executed by a hardware decoding processor, or being executed by a combination of hardware and software modules in the decoding processor. The software module may be located in a storage medium, which is located in a memory. The processor reads the information in the memory and combines it with its hardware to complete the steps of the aforementioned method.

[0080] In an exemplary embodiment, the electronic terminal 100 may be used by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), or complex programmable logic devices (CPLDs) to execute the aforementioned method.

[0081] The terms “component,” “module,” “system,” etc., used in this specification are used to refer to computer-related entities, hardware, firmware, combinations of hardware and software, software, or software in execution. For example, a component can be, but is not limited to, a process running on a processor, a processor, an object, an executable file, an execution thread, a program, and / or a computer. As illustrated, applications running on computing devices and computing devices can both be components. One or more components may reside in a process and / or an execution thread, and components may be located on a single computer and / or distributed among two or more computers. Furthermore, these components can be executed from various computer-readable media on which various data structures are stored. Components can communicate, for example, via local and / or remote processes based on signals having one or more data packets (e.g., data from two components interacting with another component between a local system, a distributed system, and / or a network, such as the Internet interacting with other systems via signals).

[0082] Those skilled in the art will recognize that the various illustrative logical blocks and steps described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this application.

[0083] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0084] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0085] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0086] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0087] In the above embodiments, the functions of each functional unit can be implemented entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. A computer program product includes one or more computer instructions (programs). When the computer program instructions (programs) are loaded and executed on a computer, all or part of the flow or function according to the embodiments of this application is generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. Computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available media can be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., high-density digital video discs, DVDs), or semiconductor media (e.g., solid-state disks, SSDs, etc.).

[0088] If a function is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0089] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

[0090] In summary, this application effectively overcomes the various shortcomings of the prior art and has high industrial application value.

[0091] The above embodiments are merely illustrative of the principles and effects of this application and are not intended to limit this application. Any person skilled in the art can modify or alter the above embodiments without departing from the spirit and scope of this application. Therefore, all equivalent modifications or alterations made by those skilled in the art without departing from the spirit and technical concept disclosed in this application should still be covered by the claims of this application.

Claims

1. A method of flow scheduling, the method comprising: The method comprises: acquiring a scheduling period length t of a scheduler and a maximum number n0 of packets sent by a network link in a single scheduling period; setting an initial value of a number n1 of packets sent by the network link in each scheduling period as 0, and an initial value of a remaining number n2 of packets sent by the network link in a current scheduling period as n0; Set the priority of each data stream, and the maximum packet number m of the data stream in a single scheduling period i ; wherein subscript i is the index identification of each data stream; In each scheduling period, the scheduler polls each data flow in order of priority, executes packet sending for each data flow meeting the sending condition in turn, and updates the number of packets sent n1 of the network link in the current scheduling period in response, until the number of packets sent n1 reaches the upper limit n0, and the current round of scheduling is terminated; wherein when executing packet sending for each data flow meeting the sending condition, the actual number of packets sent p of the data flow is calculated according to the following formula: p = min (n1, n0 - n2) wherein n2 is the number of packets sent by the data flow in the previous scheduling period. i The following should be met:

2. The method of claim 1, wherein, The method further comprises: Setting the average bandwidth proportion k of each data stream i ; wherein k i is the percentage of the total amount of data packets sent by the data stream within a certain time span △T to the total amount of data packets sent by the network link, and △T is the total duration of the data stream from the beginning of packet sending to the end of packet sending in the network link. The sending condition comprises: a next packet sending time H of the data flow i_next The next packet sending time H is not earlier than a start time of a current scheduling period; wherein the start time of the current scheduling period is i_next The next packet sending time H is calculated after the data flow performs a last packet sending, and a calculation method comprises: wherein, is the actual number of packets of the data flow at the time of performing the last packet sending, is the initial time of the scheduling period corresponding to the data flow at the time of performing the last packet sending.

3. The method of claim 1, wherein, The scheduling period length t is adjusted in real time according to data flow characteristics of the current network link.

4. The method of claim 1, wherein, In a certain scheduling period, when a data flow satisfying a sending condition is executed to send a packet, if: then the number of data packets g remaining in the data stream is i replenished into the number of packets n1 sent in the network link in the scheduling period; wherein, 5. The method of claim 1, wherein, In the packet sending process of the data stream meeting the sending condition, when the length L1 of a data packet in the data stream is greater than the preset standard length L0, the data packet quantity corresponding to the data packet is recalculated as ; wherein, is a rounding up symbol.

6. The method of claim 1, wherein, If the data flows of the same priority have not been polled completely at the end of the current scheduling, the scheduler records a position of the data flow corresponding to the end of the polling, and when the data flows of the same priority are polled again, the polling is started from a next data flow at the position to judge whether the sending condition is satisfied.

7. A traffic scheduling system, characterized by The method comprises: A data acquisition module is configured to acquire a scheduling period length t of a scheduler and a maximum number n0 of packets sent by a network link in a single scheduling period; and set an initial value of a number n1 of packets sent by the network link in each scheduling period as 0, and an initial value of a remaining number n2 of packets sent by the network link in a current scheduling period as n0. The parameter setting module is used for setting the priority of each data stream and the maximum packet sending number m of the data stream in a single scheduling period i ; wherein, subscript i is an index identification of each data stream The scheduling execution module is configured to, in each scheduling period, poll each data flow in order of priority by the scheduler, perform packet sending for the data flow meeting the sending condition in turn, and update the number of sent packets n1 of the network link in the current scheduling period in correspondence, until the number of sent packets n1 reaches the upper limit n0, and the current round of scheduling is terminated; wherein, when performing packet sending for the data flow meeting the sending condition, the actual number of sent packets p of the data flow is updated in correspondence i The following should be met:

8. 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 method of any one of claims 1-6.

9. A computer program product, characterised in that, The computer program product comprises computer program code, and when the computer program code is executed on a computer, the computer is caused to implement the method of any one of claims 1-6.

10. An electronic terminal comprising a memory, a processor and a computer program stored on the memory, characterized in that, The processor executes the computer program to implement the method of any one of claims 1-6.

Citation Information

Patent Citations

  • Time-sensitive network flow scheduling method suitable for electric power communication network

    CN115333998A

  • Data packet distribution method and device, storage medium, equipment and program product

    CN117440443A

  • Device and method for carrying out hybrid scheduling by using strict priority and message urgency

    CN119586298A

  • Methods and apparatus for simultaneously scheduling multiple priorities of packets

    US7453898B1