Service message scheduling method and device, electronic equipment and storage medium
By determining the target cache queue based on the cache queue number and scheduling deviation value of the service message, the jitter and resource waste caused by cross-slot scheduling are solved, and efficient resource utilization and jitter performance are achieved.
Patent Information
- Application Number
- CN202410107631.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-01-25
- Publication Date
- 2025-07-25
AI Technical Summary
During the service message scheduling process, the squeezing of service messages caused by cross-slot scheduling causes problems of jitter and resource waste.
By determining the target cache queue in the sink node based on the cache queue number and scheduling deviation value carried by the service message, and incoming and dequeuing in the target scheduling time slot, and allocating the scheduling time slot resources of the target template, the offset across time slot scheduling is restored and resource waste is avoided.
It improves resource utilization, while ensuring the jitter performance of different template services, avoiding jitter and resource waste.
Smart Images

Figure CN120378381A_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the field of network communication technologies, and particularly relates to a method, device, electronic device, and storage medium for scheduling service packets. Background Art
[0002] The IETF proposed a deterministic network periodic scheduling method based on multiple templates, where different templates are set for different types of services. Each template corresponds to a slot length L, which can also be referred to as the template length. The different template lengths have a greatest common divisor T, which is usually set as the basic scheduling slot length. Priorities are set for different template lengths, where the service with a shorter template length has a higher priority. Associated queues are set for services with different priorities, and different services are scheduled according to their priorities through polling of the basic scheduling slots. Through this technology, differentiated services can be provided for different types of services.
[0003] For each basic scheduling slot, the amount of bits that can be forwarded is determined by the port rate, which is a fixed value for the device. During the scheduling slot, assume that when the last packet is sent, the remaining bit amount is m, and the length of the next packet is n bits. When m >= n, the packet can be sent normally, but when m < n, the resources within the current scheduling slot are insufficient to support the complete transmission of the packet. If it continues to be sent within this slot, that is, cross-slot scheduling of service packets, it may occupy the transmission resources of the packets in the next scheduling slot, resulting in the packets in the next scheduling slot being unable to be scheduled within the current scheduling slot. Therefore, whether the cross-slot service packets are postponed to the next scheduling slot or to the scheduling slot in the next cycle for transmission, jitter will be generated, and the metric requirements of deterministic services cannot be met. If it is not allowed to continue scheduling within the current slot, there will be a waste of resources, and when there are extra-long packets in the template packets, this waste of resources is unacceptable.
[0004] In summary, during the scheduling of service packets, due to the existence of cross-slot scheduled service packets, extrusion of service packets will occur, which will trigger the generation of jitter and lead to a large amount of waste of resources. Summary of the Invention
[0005] Embodiments of this application provide a method, device, electronic device, and storage medium for scheduling service packets, which can solve the problem of extrusion of service packets, thus triggering the generation of jitter and causing a large amount of waste of resources.
[0006] In a first aspect, an embodiment of the present application provides a method for scheduling service packets, the method including: when the node for scheduling the target service packet is a destination node, determining a first target cache queue corresponding to the target service packet according to the cache queue number carried by the target service packet and the scheduling deviation value; enqueuing the target service packet into the first target cache queue; allocating the first target cache queue to a target scheduling time slot according to the scheduling time slot resources corresponding to each cache queue of a target template, where the target template includes the first target cache queue; and dequeuing the target service packet from the first target cache queue during the target scheduling time slot.
[0007] In a second aspect, an embodiment of the present application provides a device for scheduling service packets, the device including: a first determination module, configured to determine a first target cache queue corresponding to the target service packet according to the cache queue number carried by the target service packet and the scheduling deviation value when the node for scheduling the target service packet is a destination node; a first scheduling module, configured to enqueue the target service packet into the first target cache queue; a second determination module, configured to allocate the first target cache queue to a target scheduling time slot according to the scheduling time slot resources corresponding to each cache queue of a target template, where the target template includes the first target cache queue; and a second scheduling module, configured to dequeue the target service packet from the first target cache queue during the target scheduling time slot.
[0008] In a third aspect, an embodiment of the present application provides an electronic device, the electronic device including a processor, a memory, and a program or instruction stored on the memory and executable on the processor, where when the program or instruction is executed by the processor, the steps of the method as described in the first aspect are implemented.
[0009] In a fourth aspect, an embodiment of the present application provides a readable storage medium, where a program or instruction is stored on the readable storage medium, and when the program or instruction is executed by a processor, the steps of the method as described in the first aspect are implemented.
[0010] In an embodiment of the present application, when the node for scheduling the target service message is the destination node, the first target cache queue corresponding to the target service message is determined according to the cache queue number carried in the target service message and the scheduling deviation value; the target service message is enqueued into the first target cache queue; according to the scheduling time slot resources corresponding to each cache queue of the target template, the first target cache queue is allocated to the target scheduling time slot, where the target template includes the first target cache queue; the target service message is dequeued from the first target cache queue in the target scheduling time slot, so that the target service message can be restored according to the cache queue number and the scheduling deviation value carried in the target service message, improving the resource utilization rate while ensuring the jitter performance of services of different templates. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1 is a schematic flowchart of a method for scheduling service messages provided by an embodiment of the present application;
[0012] Figure 2 is a schematic diagram of scheduling service messages provided by an embodiment of the present application;
[0013] Figure 3 is another schematic diagram of scheduling service messages provided by an embodiment of the present application;
[0014] Figure 4 is another schematic flowchart of a method for scheduling service messages provided by an embodiment of the present application;
[0015] Figure 5 is a schematic diagram of the relationship between cache queue numbers and scheduling time slots provided by an embodiment of the present application;
[0016] Figure 6 is a schematic diagram of a networking structure provided by an embodiment of the present application;
[0017] Figure 7 is another schematic diagram of scheduling service messages provided by an embodiment of the present application;
[0018] Figure 8 is another schematic diagram of scheduling service messages provided by an embodiment of the present application;
[0019] Figure 9 is a schematic flowchart of a pre-computation process provided by an embodiment of the present application;
[0020] Figure 10 is another schematic diagram of scheduling service messages provided by an embodiment of the present application;
[0021] Figure 11 is a schematic diagram of a networking structure provided by an embodiment of the present application;
[0022] Figure 12 It is another schematic diagram of the scheduling of service messages provided by the embodiments of the present application;
[0023] Figure 13 It is a schematic diagram of the encapsulation of a slot deviation value provided by the embodiments of the present application;
[0024] Figure 14 It is a schematic structural diagram of a service message scheduling device provided by the present application;
[0025] Figure 15 It is a schematic structural diagram of an electronic device provided by the present application. Detailed implementation manners
[0026] Next, the technical solutions in the embodiments of the present application will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present application.
[0027] The terms "first", "second", etc. in the specification and claims of the present application are used to distinguish similar objects, rather than to describe a specific order or sequence. It should be understood that such data can be interchanged under appropriate circumstances so that the embodiments of the present application can be implemented in an order other than those illustrated or described herein, and the objects distinguished by "first", "second", etc. generally belong to the same category, and the number of objects is not limited. For example, the first object can be one or multiple. In addition, "and / or" in the specification and claims means at least one of the connected objects, and the character " / " generally means an "or" relationship between the associated objects before and after.
[0028] Next, in conjunction with the accompanying drawings, the service message scheduling method, device, electronic device, and storage medium provided by the embodiments of the present application will be described in detail through specific embodiments and their application scenarios.
[0029] Figure 1 A service message scheduling method provided by an embodiment of the present application is shown. This method can be executed by an electronic device, which can include: a server and / or a terminal device, and the electronic device can be a node in a networking structure. In other words, this method can be executed by software or hardware installed in the electronic device, and this method includes the following steps:
[0030] Step 102: When the node for scheduling the target service message is the destination node, determine the first target cache queue corresponding to the target service message according to the cache queue number and the scheduling deviation value carried by the target service message.
[0031] In the embodiments of the present application, in the scheduling process of packets of different templates, in addition to carrying a cache queue number (queue), the packets may also carry a scheduling deviation value in the packet header. The above-mentioned target service packet may be any service packet that needs to be scheduled, and the target service packet is not specifically limited herein.
[0032] Specifically, when the node for scheduling the target service packet is the destination node, this destination node may also be referred to as the tail node. If the scheduling deviation value carried in the packet header of the target service packet is not zero, it indicates that the target service packet has been squeezed by other service packets during scheduling in other nodes except the destination node, that is, the target service packet has deviated during the forwarding process. Therefore, in the embodiments of the present application, when the node for scheduling the target service packet is the destination node, the target service packet can be restored according to the cache queue number and the scheduling deviation value carried by the target service packet, and the first target cache queue corresponding to the target service packet is determined.
[0033] In one implementation, the above cache queue number is used to represent the cache queue corresponding to the target service packet in nodes other than the destination node, and the above scheduling deviation value is used to represent the deviation of the scheduling time slot generated by the target service packet being squeezed, or can also be expressed as the offset of the scheduling time slot generated by the target service packet being squeezed.
[0034] In the embodiments of the present application, when the node for scheduling the target service packet is a node other than the destination node, when there is a cross-slot scheduling of service packets in a certain queue, the transmission of the packet is allowed. When the cross-slot service packet squeezes the transmission resources of the service packet in the next scheduling time slot, that is, when the scheduling time slot and the cache queue number of the subsequent packet are inconsistent, in addition to carrying the cache queue number, the packet also needs to carry a scheduling deviation value. Multiple groups of cache queues are set at the destination node, restored according to the scheduling deviation value, and pre-computation processing is performed before dequeueing to ensure that the cross-slot scheduling packet does not occupy the scheduling resources of other services.
[0035] As a specific example, taking three templates A, B, and C as an example for illustration (the present application does not limit the number of templates), where the relationship between the three templates A, B, and C is n*T = i*LA = j*LB = m*LC, L = k*T, T represents the greatest common divisor between the templates, L represents the template length, and it is usually set to the scheduling time slot length. n, i, j, m represent quantities, and the template priorities are A > B > C. For nodes other than the destination node, these other nodes may include the source node and intermediate nodes, and each node sets i A queues, j B queues, and m C queues.
[0036] The specific corresponding relationship between the cache queue number of the service message and the scheduling time slot. The judgment on whether the cache queue number described in this application is consistent with the scheduling time slot is also based on this. Taking queue A as an example, the cache queue number where t is the scheduling time slot number, T is the scheduling time slot length, and L A is the length of the A template time slot, is the floor symbol, and the cache queue number is filled in the queue position in the message. The calculation methods for queues B and C are the same as that of queue A.
[0037] In other nodes except the destination node, during the process of scheduling the target message, first judge whether the cache queue number carried in the message is consistent with the basic scheduling time slot. Taking Figure 2 the target service message of the A template shown as an example, originally 4 A messages belonging to the same queue would all be sent within the time slot t + 1. However, due to the cross-time-slot scheduling of message C, squeezing the resources of the subsequent time slots, the last two A messages are sent within the time slot t + 2. But then it will cause the messages originally belonging to the same queue p A to enter the scheduling time slots belonging to different queues for forwarding, resulting in subsequent jitter.
[0038] Therefore, when the actual scheduling time slot of the target message is equal to the cache queue number, that is then it is normally scheduled, and the cache queue number p A is carried in the message, that is, queue = p A . If the actual scheduling time slot of the message is not equal to the cache queue number then calculate the scheduling deviation value At this time, in addition to carrying the cache queue number p A (at this time queue = p A ), the scheduling deviation value zA also needs to be carried, and this value is extended and encapsulated in the offset field of the service message. At this time, offset = zA. The possible encapsulation formats of the service message are IPv4 / v6, MPLS, SR / SRv6, etc. The embodiments of this application do not limit the specific extension method of the message header. The processing methods for messages of other templates are the same as that of the A template.
[0039] Step 104: Enqueue the target service message into the first target cache queue.
[0040] Specifically, after determining the first target cache queue corresponding to the target service message in the destination node, the target service message can be enqueued into the target cache queue.
[0041] Step 106: Allocate the first target buffer queue to a target scheduling time slot according to the scheduling time slot resources corresponding to each buffer queue of the target template.
[0042] Among them, the above-mentioned target template includes a first target buffer queue. As an example, assume that the target template A corresponding to the first target buffer queue includes 5 buffer queues (A0, A1, A2, A3, A4). Then, this target buffer queue is one of these 5 buffer queues. For each group of buffer queues, after all buffer queue enqueuing is completed, the information of all service packets in each group of buffer queues can be determined. According to the overall service situation, more refined pre-computation processing can be performed on the resources within the scheduling time slot. Among them, the first target buffer queue can be allocated to the target scheduling time slot according to the scheduling time slot resources corresponding to each buffer queue of the target template.
[0043] Step 108: Dequeue the target service packet from the first target buffer queue during the target scheduling time slot.
[0044] Specifically, after allocating the first target buffer queue including the target service packet to the target scheduling time slot, the target service packet can be dequeued from the first target buffer queue during the target scheduling time slot, thereby scheduling the target service packet.
[0045] The service packet scheduling method provided by the embodiments of this application, when the node for scheduling the target service packet is a sink node, determines the first target buffer queue corresponding to the target service packet according to the buffer queue number and scheduling deviation value carried by the target service packet; enqueues the target service packet into the first target buffer queue; allocates the first target buffer queue to the target scheduling time slot according to the scheduling time slot resources corresponding to each buffer queue of the target template, where the target template includes the first target buffer queue; dequeues the target service packet from the first target buffer queue during the target scheduling time slot, can recover the offset caused by the squeezing of the target service packet according to the buffer queue number and scheduling deviation value carried by the target service packet, allocate the scheduling of the target service packet based on the resources of the scheduling time slot during multi-template scheduling, improve the resource utilization rate while ensuring the jitter performance of services in different templates, and perform pre-computation processing before the service packet dequeuing to ensure that the packets scheduled across time slots do not occupy the scheduling resources of other services, solving the problem that the squeezing of service packets will cause the generation of jitter and a large amount of waste of resources.
[0046] In one implementation, before determining the first target cache queue corresponding to the target service message according to the cache queue number and the scheduling deviation value carried by the target service message, it further includes: when the node scheduling the target service message is other nodes except the destination node, determining the second target cache queue corresponding to the target service message in the other nodes according to the cache queue number and the scheduling deviation value carried by the target service message; updating the cache queue number carried by the target service message according to the second target cache queue and the scheduling deviation value carried by the target service message; and enqueuing the target service message into the second target cache queue.
[0047] In one implementation, after enqueuing the target service message into the second target cache queue, it further includes: when dequeuing the target service message from the second target cache queue, determining whether the scheduling time slot for scheduling the target service message corresponds to the second target cache queue; when the scheduling time slot for scheduling the target service message does not correspond to the second target cache queue, updating the scheduling deviation value carried by the target service message according to the scheduling time slot deviation value generated by the target service message being squeezed.
[0048] Specifically, when calculating and scheduling the mapping relationship in the above other nodes, the cache queue number and the scheduling deviation value carried by the target service message are used to calculate the mapping relationship to determine the second target cache queue corresponding to the target service message in the other nodes. After obtaining the second target cache queue, the cache queue number carried by the target service message can be updated according to the second target cache queue and the scheduling deviation value carried by the target service message.
[0049] Enqueue the target service message into the second target cache queue. When the node dequeues the target service message from the second target cache queue, determine whether the scheduling time slot for scheduling the service message corresponds to the second target cache queue. When the scheduling time slot for scheduling the target service message does not correspond to the second target cache queue, that is, the situation where the target service message continues to be squeezed during the dequeue process, the scheduling deviation value carried by the target service message can be updated according to the scheduling time slot deviation value generated by the target service message being squeezed.
[0050] In one implementation, updating the scheduling deviation value carried by the target service message according to the scheduling time slot deviation value generated by the target service message being squeezed includes: updating the scheduling deviation value carried by the target service message to the sum value of the scheduling deviation value and the scheduling time slot deviation value.
[0051] If squeezing continues during the dequeue process of the target service message at this node, that is, there is a new scheduling deviation value zA', regardless of whether the original scheduling deviation value offset is zero, update it based on the original scheduling deviation value: offset = offset + zA', and fill it into the target service message and forward it to the next node. The subsequent node processes it in the same way as this node until there is a difference in the processing of the tail node message. Similarly, the processing methods of other templates are the same as those of template A.
[0052] In one implementation, the determining of the second target cache queue corresponding to the target service message in the other node according to the cache queue number and the scheduling deviation value carried in the target service message includes:
[0053] Determine the cache queue number of the second target cache queue according to the sum value of the cache queue number and the scheduling deviation value carried in the target service message; after determining the cache queue number of the second target cache queue, it further includes: when the scheduling deviation value carried in the target service message is not zero, update the cache queue number carried in the target service message according to the difference between the cache queue number of the second target cache queue and the scheduling deviation value carried in the target service message; when the scheduling deviation value carried in the target service message is zero, update the cache queue number carried in the target service message according to the cache queue number of the second target cache queue.
[0054] Specifically, when calculating the mapping relationship and scheduling at other nodes, use the sum of the cache queue number and the scheduling deviation value carried in the target service message to calculate the mapping relationship, and perform the enqueue operation according to the obtained cache queue number of the second target cache queue. And after determining the cache queue number of the second target cache queue, it can also update the cache queue number carried in the service message according to the difference between the cache queue number of the second target cache queue and the scheduling deviation value carried in the service message when the scheduling deviation value carried in the target service message is not zero. When the scheduling deviation value carried in the target service message is zero, update the cache queue number carried in the target service message according to the cache queue number of the second target cache queue.
[0055] Continuing with template A as an example, assume the cache queue number of the second target cache queue is q A . However, when modifying the cache queue number in the target service message, determine whether the scheduling deviation value offset is zero. If it is zero, fill q A into the position of queue in the target service message; if it is not zero, keep the original scheduling deviation value offset unchanged, and fill the difference between the cache queue number of the second cache queue and the scheduling deviation value into the message queue, that is, queue = qA -offset.
[0056] In one implementation, for the method according to claim 1, it is characterized in that determining the first target cache queue corresponding to the target service message according to the cache queue number and the scheduling deviation value carried by the target service message includes:
[0057] Determining a new cache queue number according to the sum value of the cache queue number and the scheduling deviation value carried by the target service message; when the scheduling deviation value carried by the target service message is not zero, determining the first target cache queue according to the difference between the new cache queue number and the scheduling deviation value carried by the target service message; when the scheduling deviation value carried by the target service message is zero, determining the first target cache queue according to the new cache queue number.
[0058] Specifically, at the destination PE node (the tail node), it is necessary to restore the offset during the forwarding of the service message according to the scheduling deviation value carried by the target service message, and determine a new cache queue number according to the sum value of the cache queue number and the scheduling deviation value carried by the target service message. When the scheduling deviation value carried by the target service message is not zero, determine the first target cache queue according to the cache queue corresponding to the difference between the new cache queue number and the scheduling deviation value carried by the target service message. When the scheduling deviation value carried by the target service message is zero, determine the cache queue corresponding to the new cache queue number as the first target cache queue.
[0059] Assume that the cache queue calculated by the A template message at the tail node according to the mapping relationship is r A , and determine whether the scheduling deviation value carried by the target message is zero. If it is zero, then the cache queue r A is the first target cache queue, and the target service message enters the cache queue r A . If it is not zero, then r A -offset is the first target cache queue, and the cache queue entered by the target service message is r A -offset. It should be noted here that if the calculated r A -offset is negative, indicating that the message needs to enter the cache queue of the previous physical cycle, then multiple groups of cache queues need to be set at the tail node for restoring the scheduling offset, and the specific restoration ability depends on the device's ability.
[0060] In one implementation, allocating the first target cache queue to a target scheduling time slot according to the scheduling time slot resources corresponding to each cache queue of the target template includes:
[0061] Calculate the packet bit volume of each buffer queue in the target template; calculate the remaining scheduling resources of each scheduling time slot; in the case that the remaining scheduling resources of each scheduling time slot are greater than the packet bit volume of each buffer queue, evenly distribute the service packets of each buffer queue to each scheduling time slot, where the target service packets of the first target buffer queue are distributed to the target scheduling time slot.
[0062] The embodiment of the present application provides a pre-computation processing method, which calculates the packet bit volume of each buffer queue in the target template and calculates the remaining scheduling resources of each scheduling time slot. In the case that the remaining scheduling resources of each scheduling time slot are greater than the packet bit volume of each buffer queue, the service packets of each buffer queue can be evenly distributed to each scheduling time slot. During the process of evenly distributing the service packets of each buffer queue, the target service packets of the first target buffer queue will also be distributed to the scheduling time slot, and at this time, the scheduling time slot to which the above target service packets are allocated is the above target scheduling time slot.
[0063] As an example, first calculate the queue p of template A A corresponding to all time slots tk, k = ((p A -1)*L A / T, p A *L A / T - 1), the scheduling resource of each time slot is t k _bit, and the length of each packet p A in queue p Ai is known as p Ai _bit, i = 0, 1...n. Then different placement modes can be configured, such as evenly placing the packets in each time slot, or filling some time slots and concentrating the remaining space in other time slots, etc. Select a configuration mode and then calculate the remaining resources t k _bit = t k _bit - p Ai _bit, i = f, f + 1...m. Then calculate whether there is enough space to send each packet p Bj of template B in the corresponding time slot, and for packets across time slots, calculate whether there are enough resources in two adjacent time slots to send. If the calculation fails, change the placement mode of template A and recalculate until it succeeds or fails with packet loss. The subsequent processing methods for other templates are the same as above. The present application does not specifically limit the pre-computation process of the tail node.
[0064] Dequeue according to the final calculation result, such as Figure 3As shown in the results, the packets squeezed into other time slot schedules during the intermediate forwarding process are restored to ensure their jitter. In addition, appropriate time slots are found for all packets for transmission. It should be noted here that the mapping relationships of different templates during the forwarding process are random, but they can all be restored through the carried scheduling deviation values, improving resource utilization while ensuring the jitter characteristics of different templates.
[0065] Figure 4 The figure shows a schematic diagram of the processing flow of a service packet provided by an embodiment of the present application, as Figure 4 shown, the processing of the service packet includes the following processes:
[0066] 1) Determine whether it is the tail node. Otherwise, go to 2). If it is, go to 10).
[0067] 2) Calculate the new cache queue p of the packet according to the sum of the queue and offset carried by the packet.
[0068] 3) Determine whether the offset is 0. Otherwise, go to 4). If it is, go to 5).
[0069] 4) Calculate queue = p - offset, update the queue value in the packet, keep the offset unchanged, and go to 6).
[0070] 5) Calculate queue = p, update the queue value in the packet, and keep the offset unchanged.
[0071] 6) Enqueue according to p.
[0072] 7) Determine whether the packet scheduling time slot t corresponds to the cache queue p (judge according to the corresponding relationship ), otherwise go to 8). If it is, go to 9).
[0073] 8) Calculate the scheduling deviation value z of this node, and update the scheduling deviation value carried in the packet offset = offset + z.
[0074] 9) Dequeue.
[0075] 10) Calculate the new cache queue q of the packet according to the sum of the queue and offset carried by the packet.
[0076] 11) Determine whether the offset is 0. Otherwise, go to 12). If it is, go to 13).
[0077] 12) Calculate q = q - offset.
[0078] 13) Enqueue according to q.
[0079] 14) Pre-calculation processing.
[0080] 15) Perform dequeueing.
[0081] The scheduling method for service packets provided by the present application will be described in detail below through specific embodiments.
[0082] Embodiment 1:
[0083] This embodiment illustrates the service packet scheduling of the enhanced periodic scheduling based on multiple templates in the present application. Assume that the physical periods are T0, T1...T7, a total of 8 basic scheduling time slots, and there are three templates A, B, C. The relationship between the template length and the basic scheduling time slot length is LC = 2*LB = 4*LA = 4*T. The number of cache queues for A, B, and C are A0, A1...A7, B0, B1, B2, B3, C0, C1 respectively. The letters A, B, and C represent the template types, and the numbers represent the cache queue numbers. The cache queue number carried by the service packet only uses the last 3 bits of queue. Among them, template A uses 3 bits, corresponding one-to-one with the scheduling time slots, template B uses the high two bits, and template C uses the high one bit. The specific relationship between the cache queue number and the scheduling time slot is as Figure 5 shown.
[0084] Taking Figure 6 the network structure shown to introduce the specific process, as Figure 6 shown, PE1 and PE2 are source nodes, PE3 is the destination node, and the rest are intermediate nodes. P2 is an intermediate aggregation node and is also the node most likely to have scheduling exceptions.
[0085] Assume that there is no congestion of service packets before node P2, so all offsets are zero. For node P2, first calculate the mapping relationship to carry the new cache queue number in the packet, enqueue according to the new cache queue number, and then perform polling dequeueing according to the scheduling time slots. We allow packets to be scheduled across time slots. The dequeueing result is queried as Figure 7 shown, and the numbers carried on the service packets are their respective cache queue numbers. The packet of C0 squeezes the two packets of A1 (within the dashed box) to be sent in scheduling time slot 2. Therefore, during the dequeueing process, we compare the scheduling time slot and the cache queue number carried by the packet. If there is a difference between them, the difference is added to the offset field of the packet header. Figure 7For the A1 message sent in scheduling time slot 2, the calculated scheduling deviation value is 1. Fill in the message offset = 1. Then, the value carried out of the queue at the P2 node for the message within the dotted box is queue = 1, offset = 1. For the subsequent message scheduling, the sum of the queue number and the scheduling deviation value needs to be calculated for scheduling, which is equivalent to scheduling two messages in the A2 queue. During the dequeue comparison process, the A template directly calculates by comparing the cache queue number with the scheduling time slot. For the B template, the upper two bits of the scheduling time slot are taken for comparison calculation, and the upper one bit of the scheduling time slot is taken for comparison calculation with the C template.
[0086] When calculating the mapping relationship at the P3 node, the new cache queue number = the cache queue number carried by the message + the scheduling deviation value carried by the message + the mapping deviation. Enqueue according to the new cache queue number. However, when adding the relevant information in the message header, keep the original scheduling deviation value unchanged, and fill in the calculation result of the new cache queue number minus the scheduling deviation value at the position of the queue number. If transmission congestion occurs later, update it on the basis of the original scheduling deviation value. The scheduling process is the same as that of P2. Here, it is assumed that no congestion occurs at P3.
[0087] At the PE3 node, three groups of identical cache queues are set for message reception and forwarding, as Figure 8 shown in Group 1, Group 2, and Group 3. Group 1 is receiving messages. Group 2 has completed all caching and is dequeuing, and it is not allowed to receive messages congested to later time slots. Although Group 3 has also completed caching, it can still receive messages congested to subsequent time slots.
[0088] After the message arrives, first calculate the mapping relationship to obtain the new cache queue number, and at the same time extract the scheduling deviation value, and then enqueue. During the enqueue process, first judge whether the scheduling deviation value is 0, as Figure 8 For the A message with a cache queue number of 6 in the dotted box, offset = 1, indicating that it was congested to the next scheduling time slot for transmission during the previous transmission. To ensure jitter, although it enters Queue 6 through mapping calculation, it needs to be sent one time slot earlier at the tail node. Then the message enters Queue 5 for caching. For the other A messages with a cache queue number of 6, offset = 0, they directly enter Queue 6 for caching according to the calculation result.
[0089] After the service message is completely cached, it is necessary to calculate according to the resources required for each queue scheduling according to the priority, and calculate whether there are sufficient resources in the allowed scheduling time slot to meet its scheduling. For messages allowed in several scheduling time slots, it is also necessary to calculate whether there is sufficient scheduling space in adjacent time slots. Here, a pre-calculation process is instantiated, as Figure 9 shown:
[0090] 1) Calculate the total bit amount A of the messages in each queue of the A templatei = Σa n , where a n is the number of bits of packet n in queue A i .
[0091] 2) Determine the number of bits t i of scheduling time slot t i_ bit, and check if it is greater than or equal to A i . If yes, go to 3); otherwise, go to 4).
[0092] 3) Calculate the remaining scheduling resources in each time slot, t i_ bit = t i_ bit - A i , and go to 6).
[0093] 4) Discard A packets that exceed the capacity of the scheduling time slot until the scheduling requirements can be met (t i_ bit ≥ A i ’).
[0094] 5) Calculate the remaining scheduling resources in each time slot, t i_ bit = t i_ bit - A i ’.
[0095] 6) Calculate the sum of the remaining resources in the scheduling time slots corresponding to the B template queue, t j _bit = Σt i _bit, calculate the total number of bits B of the packets in each queue of the B template j = Σb m .
[0096] 7) Determine if the number of bits t j of t j _bit is greater than or equal to B j . If yes, go to 8); otherwise, go to 9).
[0097] 8) Calculate the remaining scheduling resources in t j , t j _bit = t j _bit - B j , and go to 11).
[0098] 9) Discard B packets that exceed the capacity of t j until the scheduling requirements can be met (t j _bit ≥ B j ’).
[0099] 10) Calculate the remaining scheduling resources in t j , t j _bit = tj _bit-B j ’.
[0100] 11) Judge each C template message k one by one, c k represents the message length, and judge whether the remaining scheduling resources in two adjacent time slots meet its scheduling requirements, t j _bit≥c k ||t g _bit+t g +1_bit≥c k ||t j +1_bit≥c k , g = 2*j + 1, if so, go to 13), otherwise go to 12).
[0101] 12) Discard the C messages that do not meet the conditions.
[0102] 13) End the pre-computation.
[0103] The final scheduling result is as Figure 10 shown. Among them, at the intermediate node, due to the congestion of C messages, the A template message sent in the next scheduling time slot is restored to time slot 5 for sending at the tail node, while for the C messages, the appropriate positions are obtained through pre-computation for dequeue forwarding, and finally ensure that the queues with different priorities all meet their respective jitter requirements.
[0104] Embodiment 2:
[0105] This embodiment shows the processing flow when messages are continuously congested at different nodes. The basic settings are the same as those in the embodiment, and the network structure is as Figure 11 shown, and there is additional incoming traffic from the PE3 node at the P3 node.
[0106] This embodiment shows the processing flow of P2 - P3 - PE4, as Figure 12 shown. At the P2 node, due to the congestion of C messages, two service messages with queue = 1 (inside the dotted box) are congested into the scheduling time slot 2 for sending. Then, since the cache queue of the A template corresponds to the scheduling time slot one by one, the scheduling deviation value offset = 1 can be calculated and updated in the message. The values carried by the two messages when dequeuing are queue = 00000001 and offset = 00000001.
[0107] At the P3 node, first calculate the mapping relationship of the service packets. For the two service packets (packets within the dashed box) that were squeezed to other scheduling time slots for scheduling at the P2 node, the new cache queue number calculated at this node is 6, and the offset carried in these two service packets is 1. When modifying the packet header, keep offset = 1 unchanged, and queue = 6 - 1 = 5, and fill it into the service packet, but still enqueue it according to cache queue 6. Due to the inflow of traffic at the PE3 node (packets within the solid box), the two service packets within the dashed box continue to be squeezed during the dequeue process at this node, and the calculated scheduling deviation value at this node is still 1. Then, it needs to be modified based on the original value, offset = 1 + 1 = 2. So, the values carried by these two packets when dequeuing are queue = 00000005 and offset = 0000002.
[0108] At the PE4 node, the above two service packets need to be restored according to offset = 2, enter the corresponding cache queue, and all service packets are dequeued at an appropriate scheduling time slot after pre-calculation. The expected result is as Figure 12 shown.
[0109] Embodiment 3:
[0110] Embodiment 3 mainly illustrates the encapsulation method of the scheduling time slot deviation value. Large-scale deterministic networks may use various packet formats such as SRv6 and SR-MPLS for forwarding. Currently, there are already many deterministic information encapsulation formats, and only need to be extended on this basis. For example, for SRv6 service packets, relevant information is extended on the SRH header, 2 bits are carried in the Flag to indicate deterministic information, and relevant service information such as service flow id, as well as the cache queue number queue and scheduling deviation value offset we extended, are carried in the Segment list[n]. A typical encapsulation format is as Figure 13 shown. Other extended formats are not listed one by one, and the typical examples are not used as limitations of this application.
[0111] It should be noted that for the service packet scheduling method provided in the embodiments of this application, the execution subject can be a service packet scheduling device, or a control module in the service packet scheduling device for executing the service packet scheduling method. In the embodiments of this application, the service packet scheduling method executed by the service packet scheduling device is taken as an example to illustrate the service packet scheduling device provided in the embodiments of this application.
[0112] Figure 14 is a schematic structural diagram of the device for service packets according to the embodiments of this application. As Figure 14As shown in the figure, the scheduling device 1400 for service messages includes: a determination module 1410, a first scheduling module 1420, an allocation module 1430, and a second scheduling module 1440.
[0113] The determination module 1410 is configured to, when the node for scheduling the target service message is a sink node, determine a first target cache queue corresponding to the target service message according to the cache queue number carried in the target service message and the scheduling deviation value; the first scheduling module 1420 is configured to enqueue the target service message into the first target cache queue; the allocation module 1430 is configured to allocate the first target cache queue to a target scheduling time slot according to the scheduling time slot resources corresponding to each cache queue of the target template, where the target template includes the first target cache queue; the second scheduling module 1440 is configured to dequeue the target service message from the first target cache queue during the target scheduling time slot.
[0114] In one implementation, the determination module 1410 is configured to determine a new cache queue number according to the sum of the cache queue number carried in the target service message and the scheduling deviation value; when the scheduling deviation value carried in the target service message is not zero, determine the first target cache queue according to the difference between the new cache queue number and the scheduling deviation value carried in the target service message; when the scheduling deviation value carried in the target service message is zero, determine the first target cache queue according to the new cache queue number.
[0115] In one implementation, the allocation module 1430 is configured to calculate the message bit amount of each cache queue in the target template; calculate the remaining scheduling resources of each scheduling time slot; when the remaining scheduling resources of each scheduling time slot are greater than the message bit amount of each cache queue, evenly allocate the service messages of each cache queue to each scheduling time slot, where the target service message of the first target cache queue is allocated to the target scheduling time slot.
[0116] In one implementation, the allocation module 1430 is further configured to, for the service messages scheduled across time slots, when the remaining scheduling resources of two adjacent scheduling time slots meet the service messages scheduled across the time slots, allocate the service messages scheduled across the time slots to the two adjacent scheduling time slots.
[0117] In one implementation, the first scheduling module 1420 is further configured to, when the node for scheduling the target service message is a node other than the destination node, determine a second target cache queue corresponding to the target service message in the other node according to the cache queue number and the scheduling deviation value carried by the target service message; update the cache queue number carried by the target service message according to the second target cache queue and the scheduling deviation value carried by the target service message; and enqueue the target service message into the second target cache queue.
[0118] In one implementation, the first scheduling module 1420 is further configured to, when dequeuing the target service message from the second target cache queue, determine whether the scheduling time slot for scheduling the target service message corresponds to the second target cache queue; and when the scheduling time slot for scheduling the target service message does not correspond to the second target cache queue, update the scheduling deviation value carried by the target service message according to the scheduling time slot deviation value generated by the target service message being squeezed.
[0119] In one implementation, the first scheduling module 1420 is configured to determine the cache queue number of the second target cache queue according to the sum of the cache queue number and the scheduling deviation value carried by the target service message; the first scheduling module 1420 is further configured to, when the scheduling deviation value carried by the target service message is not zero, update the cache queue number carried by the target service message according to the difference between the cache queue number of the second target cache queue and the scheduling deviation value carried by the target service message; and when the scheduling deviation value carried by the target service message is zero, update the cache queue number carried by the target service message according to the cache queue number of the second target cache queue.
[0120] In one implementation, the first scheduling module 1420 is configured to update the scheduling deviation value carried by the target service message to the sum of the scheduling deviation value and the scheduling time slot deviation value.
[0121] In one implementation, the cache queue number is used to represent the cache queue corresponding to the target service message in a node other than the destination node, and the scheduling deviation value is used to represent the deviation of the scheduling time slot generated by the target service message being squeezed.
[0122] The scheduling device for service packets in the embodiments of the present application may be a device, or a component, an integrated circuit, or a chip in a terminal. The device may be a mobile electronic device or a non-mobile electronic device. Exemplarily, the mobile electronic device may be a mobile phone, a tablet computer, a laptop computer, a palmtop computer, a vehicle-mounted electronic device, a wearable device, an ultra-mobile personal computer (UMPC), a netbook, or a personal digital assistant (PDA), etc., and the non-mobile electronic device may be a server, a Network Attached Storage (NAS), a personal computer (PC), a television (TV), a teller machine, or a self-service machine, etc. The embodiments of the present application do not make specific limitations.
[0123] The scheduling device for service packets in the embodiments of the present application may be a device with an operating system. The operating system may be the Android operating system, the iOS operating system, or other possible operating systems. The embodiments of the present application do not make specific limitations.
[0124] The scheduling device for service packets provided in the embodiments of the present application can implement Figures 1 to 13 each process implemented by the method embodiments. To avoid repetition, it will not be elaborated here.
[0125] Optionally, as Figure 15 shown, another electronic device 1500 is provided in the embodiments of the present application, including a processor 1501 and a memory 1502. A program or instruction that can run on the processor 1501 is stored on the memory 1502. When the program or instruction is executed by the processor 1501, it realizes: when the node for scheduling the target service packet is a destination node, determining a first target cache queue corresponding to the target service packet according to the cache queue number and the scheduling deviation value carried by the target service packet; enqueuing the target service packet into the first target cache queue; allocating the first target cache queue to a target scheduling time slot according to the scheduling time slot resources corresponding to each cache queue of a target template, where the target template includes the first target cache queue; and dequeuing the target service packet from the first target cache queue during the target scheduling time slot.
[0126] In one implementation, a new cache queue number is determined according to the sum value of the cache queue number and the scheduling deviation value carried in the target service message; when the scheduling deviation value carried in the target service message is not zero, the first target cache queue is determined according to the difference between the new cache queue number and the scheduling deviation value carried in the target service message; when the scheduling deviation value carried in the target service message is zero, the first target cache queue is determined according to the new cache queue number.
[0127] In one implementation, the packet bit amount of each cache queue in the target template is calculated; the remaining scheduling resources of each scheduling time slot are calculated; when the remaining scheduling resources of each scheduling time slot are greater than the packet bit amount of each cache queue, the service packets of each cache queue are evenly allocated to each scheduling time slot, where the target service packet of the first target cache queue is allocated to the target scheduling time slot.
[0128] In one implementation, after calculating the remaining scheduling resources of each scheduling time slot, for the service packets with cross-slot scheduling, when the remaining scheduling resources of two adjacent scheduling time slots meet the requirements of the service packets with cross-slot scheduling, the service packets with cross-slot scheduling are allocated to the two adjacent scheduling time slots.
[0129] In one implementation, before determining the first target cache queue corresponding to the target service message according to the cache queue number and the scheduling deviation value carried in the target service message, when the node scheduling the target service message is other nodes except the destination node, the second target cache queue corresponding to the target service message in the other nodes is determined according to the cache queue number and the scheduling deviation value carried in the target service message; the cache queue number carried in the target service message is updated according to the second target cache queue and the scheduling deviation value carried in the target service message; the target service message is queued into the second target cache queue.
[0130] In one implementation, after queuing the target service message into the second target cache queue, when dequeuing the target service message from the second target cache queue, it is judged whether the scheduling time slot for scheduling the target service message corresponds to the second target cache queue; when the scheduling time slot for scheduling the target service message does not correspond to the second target cache queue, the scheduling deviation value carried in the target service message is updated according to the scheduling time slot deviation value generated by the target service message being squeezed.
[0131] In one implementation, the cache queue number of the second target cache queue is determined according to the sum value of the cache queue number carried in the target service message and the scheduling deviation value; after determining the cache queue number of the second target cache queue, when the scheduling deviation value carried in the target service message is not zero, the cache queue number carried in the target service message is updated according to the difference between the cache queue number of the second target cache queue and the scheduling deviation value carried in the target service message; when the scheduling deviation value carried in the target service message is zero, the cache queue number carried in the target service message is updated according to the cache queue number of the second target cache queue.
[0132] In one implementation, the scheduling deviation value carried in the target service message is updated to the sum value of the scheduling deviation value and the scheduling time slot deviation value.
[0133] For the specific execution steps, reference may be made to the steps in the embodiments of the scheduling method of the above service message, and the same technical effects can be achieved. To avoid repetition, details are not described here.
[0134] It should be noted that the electronic devices in the embodiments of the present application include: servers, terminals, or other devices other than terminals.
[0135] The above structure of the electronic device does not limit the electronic device. The electronic device may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements. For example, the input unit may include a Graphics Processing Unit (GPU) and a microphone, and the display unit may be configured with a display panel in the form of a liquid crystal display, an organic light-emitting diode, etc. The user input unit includes at least one of a touch panel and other input devices. The touch panel is also called a touch screen. Other input devices may include, but are not limited to, a physical keyboard, function keys (such as volume control keys, switch keys, etc.), a trackball, a mouse, a joystick, which are not described in detail here.
[0136] The memory can be used to store software programs and various data. The memory may mainly include a first storage area for storing programs or instructions and a second storage area for storing data. Among them, the first storage area can store an operating system, application programs or instructions required for at least one function (such as a sound playback function, an image playback function, etc.). In addition, the memory can include volatile memory or non-volatile memory, or the memory can include both volatile and non-volatile memory. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), a static random access memory (SRAM), a dynamic random access memory (DRAM), a synchronous dynamic random access memory (SDRAM), a double data rate synchronous dynamic random access memory (DDR SDRAM), an enhanced synchronous dynamic random access memory (ESDRAM), a synchlink dynamic random access memory (SLDRAM), and a direct rambus random access memory (DRRAM).
[0137] The processor may include one or more processing units; optionally, the processor integrates an application processor and a modem processor. Among them, the application processor mainly processes operations related to the operating system, user interface, and application programs, etc., and the modem processor mainly processes wireless communication signals, such as a baseband processor. It can be understood that the above-mentioned modem processor may not be integrated into the processor either.
[0138] The embodiment of the present application also provides a readable storage medium. A program or instruction is stored on the readable storage medium. When the program or instruction is executed by the processor, it implements each process of the embodiment of the above-mentioned scheduling method for service messages and can achieve the same technical effect. To avoid repetition, it will not be elaborated here.
[0139] Among them, the processor is the processor in the electronic device described in the above embodiment. The readable storage medium includes a computer-readable storage medium, such as ROM, RAM, magnetic disk, or optical disc, etc.
[0140] It should be noted that in this text, the term "including", "comprising" or any other variant thereof is intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements not only includes those elements, but also includes other elements not explicitly listed, or further includes elements inherent to such process, method, article or device. Without more limitations, an element defined by the statement "including one..." does not exclude the existence of additional identical elements in the process, method, article or device including that element. In addition, it should be pointed out that the scope of the methods and devices in the embodiments of the present application is not limited to performing functions in the order shown or discussed, but may also include performing functions in a substantially simultaneous manner or in the reverse order according to the functions involved. For example, the described methods may be performed in an order different from that described, and various steps may be added, omitted, or combined. Additionally, features described with reference to certain examples may be combined in other examples.
[0141] Through the description of the above embodiments, those skilled in the art can clearly understand that the above-described example methods can be implemented by means of software plus a necessary general hardware platform. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation. Based on this understanding, the technical solution of the present application, in essence, or the part that contributes to the prior art, can be embodied in the form of a computer software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions for causing a terminal (which can be a mobile phone, computer, server, or network device, etc.) to execute the methods described in various embodiments of the present application.
[0142] The embodiments of the present application have been described above in conjunction with the accompanying drawings. However, the present application is not limited to the above specific embodiments. The above specific embodiments are merely illustrative and not restrictive. Those of ordinary skill in the art, under the inspiration of the present application and without departing from the spirit and scope protected by the claims of the present application, can still make many forms, all of which fall within the protection scope of the present application.
Claims
1. A scheduling method for service messages, characterized in that, Including: When the node scheduling the target service message is the destination node, determining a first target cache queue corresponding to the target service message according to the cache queue number carried by the target service message and the scheduling deviation value; Enqueuing the target service message into the first target cache queue; Allocating the first target cache queue to a target scheduling time slot according to the scheduling time slot resources corresponding to each cache queue of the target template, where the target template includes the first target cache queue; Dequeuing the target service message from the first target cache queue during the target scheduling time slot.
2. The method according to claim 1, characterized in that, The determining a first target cache queue corresponding to the target service message according to the cache queue number carried by the target service message and the scheduling deviation value includes: Determining a new cache queue number according to the sum of the cache queue number carried by the target service message and the scheduling deviation value; When the scheduling deviation value carried by the target service message is not zero, determining the first target cache queue according to the difference between the new cache queue number and the scheduling deviation value carried by the target service message; When the scheduling deviation value carried by the target service message is zero, determining the first target cache queue according to the new cache queue number.
3. The method according to claim 1, wherein The allocating the first target cache queue to a target scheduling time slot according to the scheduling time slot resources corresponding to each cache queue of the target template includes: Calculating the message bit amount of each cache queue in the target template; Calculating the remaining scheduling resources of each scheduling time slot; When the remaining scheduling resources of each scheduling time slot are greater than the message bit amount of each cache queue, evenly allocating the service messages of each cache queue to each scheduling time slot, where the target service message of the first target cache queue is allocated to the target scheduling time slot.
4. The method according to claim 3, wherein After calculating the remaining scheduling resources of each scheduling time slot, it further includes: For the service messages scheduled across time slots, when the remaining scheduling resources of two adjacent scheduling time slots meet the requirements of the service messages scheduled across time slots, allocating the service messages scheduled across time slots to the two adjacent scheduling time slots.
5. The method according to claim 1, wherein Before determining a first target cache queue corresponding to the target service message according to the cache queue number carried by the target service message and the scheduling deviation value, it further includes: When the node scheduling the target service message is other nodes except the destination node, determining a second target cache queue corresponding to the target service message in the other nodes according to the cache queue number carried by the target service message and the scheduling deviation value; Updating the cache queue number carried by the target service message according to the second target cache queue and the scheduling deviation value carried by the target service message; Enqueuing the target service message into the second target cache queue.
6. The method according to claim 5, wherein After enqueuing the target service message into the second target cache queue, it further includes: When dequeuing the target service message from the second target cache queue, determining whether the scheduling time slot for scheduling the target service message corresponds to the second target cache queue; When the scheduling time slot for scheduling the target service message does not correspond to the second target cache queue, update the scheduling deviation value carried by the target service message according to the scheduling time slot deviation value generated by the squeezing of the target service message.
7. The method according to claim 5, characterized in that, The determining the second target cache queue corresponding to the target service message in the other nodes according to the cache queue number and the scheduling deviation value carried by the target service message includes: Determine the cache queue number of the second target cache queue according to the sum value of the cache queue number and the scheduling deviation value carried by the target service message; After determining the cache queue number of the second target cache queue, it further includes: When the scheduling deviation value carried by the target service message is not zero, update the cache queue number carried by the target service message according to the difference between the cache queue number of the second target cache queue and the scheduling deviation value carried by the target service message; When the scheduling deviation value carried by the target service message is zero, update the cache queue number carried by the target service message according to the cache queue number of the second target cache queue.
8. The method according to claim 6, characterized in that The updating the scheduling deviation value carried by the target service message according to the scheduling time slot deviation value generated by the squeezing of the target service message includes: Update the scheduling deviation value carried by the target service message to the sum value of the scheduling deviation value and the scheduling time slot deviation value.
9. The method according to claim 1, wherein The cache queue number is used to represent the cache queue corresponding to the target service message in nodes other than the destination node, and the scheduling deviation value is used to represent the deviation of the scheduling time slot generated by the squeezing of the target service message.
10. A service message scheduling device, characterized in that, It includes: A determining module, configured to, when the node for scheduling the target service message is the destination node, determine the first target cache queue corresponding to the target service message according to the cache queue number and the scheduling deviation value carried by the target service message; A first scheduling module, configured to enqueue the target service message into the first target cache queue; An allocation module, configured to allocate the first target cache queue to a target scheduling time slot according to the scheduling time slot resources corresponding to each cache queue of the target template, where the target template includes the first target cache queue; A second scheduling module, configured to dequeue the target service message from the first target cache queue during the target scheduling time slot.
11. An electronic device, characterized in that, It includes a processor, a memory, and a program or instruction stored on the memory and executable on the processor. When the program or instruction is executed by the processor, the steps of the service message scheduling method according to any one of claims 1-9 are implemented.
12. A readable storage medium, characterized in that, A program or instruction is stored on the readable storage medium. When the program or instruction is executed by the processor, the steps of the service message scheduling method according to any one of claims 1-9 are implemented.