A scheduling method, apparatus, storage medium, and program product
By acquiring congestion information of network slices, determining their scheduling priorities, and performing data scheduling, the problem of latency caused by sudden traffic in network slices is solved, achieving deterministic latency guarantee and low-complexity scheduling for slices that have not experienced congestion.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2025-01-02
- Publication Date
- 2026-07-03
AI Technical Summary
Existing soft-slice scheduling technology may affect the latency guarantee of other network slices when sudden traffic occurs in a network slice, resulting in low overall network resource utilization efficiency.
By acquiring congestion information of network slices, their scheduling priorities are determined, and data scheduling is performed according to the priorities to avoid interference to slices that are not congested, thus providing deterministic latency guarantees.
It ensures that the latency of slices without congestion is not affected by congested slices, provides deterministic latency guarantees, reduces algorithm complexity, and is applicable to a wider range of scenarios.
Smart Images

Figure CN122340539A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a scheduling method, apparatus, storage medium and program product. Background Technology
[0002] Network slicing (NS) is one of the key technologies in 5G mobile communication systems. It is a complete, instantiated logical network composed of a set of network functions (NFs). Each network slice can flexibly define its own logical topology, service level agreement (SLA), reliability, and security level to meet the differentiated needs of different services, industries, or users.
[0003] Network slicing technology can be implemented in two ways: hard slicing and soft slicing. Hard slicing is achieved through the configuration and optimization of physical devices, requiring the reservation of bandwidth resources for each slice. When the traffic of some slices is low, the reserved bandwidth resources may not be fully utilized, leading to a waste of overall network resources. Soft slicing, on the other hand, is implemented through technologies such as Software-Defined Networking (SDN) and Network Functions Virtualization (NFV), offering greater flexibility and customizability. Soft slicing can achieve isolation between slices through scheduling and enables the sharing of bandwidth resources among slices. It can adjust resource allocation according to the real-time needs of applications, thereby maximizing resource utilization efficiency and avoiding resource waste.
[0004] However, in current soft-slice scheduling technologies, when a network slice experiences a sudden surge in traffic, that slice requires more processing resources, potentially impacting other network slices and causing interference, resulting in poor latency guarantees. Therefore, meeting the deterministic latency requirements of services is a pressing technical problem that needs to be solved in current related technologies. Summary of the Invention
[0005] This application provides a scheduling method, apparatus, storage medium, and program product for providing deterministic latency guarantees for network slicing.
[0006] To achieve the above objectives, the embodiments of this application adopt the following technical solutions:
[0007] In a first aspect, this application provides a scheduling method, which includes: obtaining data to be scheduled and congestion information of the network slice to which the data to be scheduled belongs; wherein the congestion information is used to indicate whether the network slice is congested; determining the scheduling priority of the network slice based on the congestion information; and scheduling the data to be scheduled based on the scheduling priority.
[0008] Based on the scheduling method provided in the first aspect, congested slices and non-congested slices can be scheduled according to different priorities, avoiding interference from congested slices on the latency of non-congested slices, and providing deterministic latency guarantees for non-congested slices. Furthermore, compared to the WFQ scheduling method, the scheduling method provided in this application does not require independent virtual time calculations for each queue, resulting in lower algorithm complexity, easier implementation, and wider applicability.
[0009] In one possible design, determining the scheduling priority of a network slice based on congestion information includes: determining the scheduling priority of the network slice as a first scheduling priority when the congestion information indicates that the network slice is not congested; and determining the scheduling priority of the network slice as a second scheduling priority when the congestion information indicates that the network slice is congested; wherein the first scheduling priority is higher than the second scheduling priority.
[0010] In this design, different priorities can be set for congested and non-congested slices, with non-congested slices having a higher priority. Scheduling based on these priorities can prevent the latency of slices that are not congested from being affected by congested slices.
[0011] In one possible design, the scheduling of data to be scheduled based on scheduling priority includes: adding the data to be scheduled to the data queue corresponding to the scheduling priority; and sending the data to be scheduled based on the data queue.
[0012] In one possible design, the aforementioned first scheduling priority corresponds to multiple data queues. Adding the data to be scheduled to the data queue corresponding to the scheduling priority includes: when the scheduling priority is the first scheduling priority, determining the first data queue from the multiple data queues corresponding to the first scheduling priority based on the latency requirement information of the data to be scheduled; and adding the data to be scheduled to the first data queue.
[0013] In this design, the uncongested slices of data to be scheduled can be divided into multiple data queues based on latency requirements, and these multiple data queues can be scheduled by SP based on latency requirements, thereby providing different levels of differentiated latency services to meet different business needs.
[0014] In one possible design, each of the multiple data queues corresponding to the first scheduling priority corresponds to a latency requirement, and the queue priority of the data queue is negatively correlated with the latency indicated by the latency requirement corresponding to the data queue.
[0015] In this design, the queue priority of the data queue is negatively correlated with the latency indicated by the latency requirement corresponding to the data queue. That is, the higher the latency requirement (the shorter the latency duration indicated by the latency requirement), the higher the queue priority.
[0016] In one possible design, the second scheduling priority corresponds to multiple data queues. The above-mentioned addition of the data to be scheduled to the data queue corresponding to the scheduling priority includes: when the scheduling priority is the second scheduling priority, determining the second data queue corresponding to the network slice from the multiple data queues corresponding to the second scheduling priority; and adding the data to be scheduled to the second data queue.
[0017] In one possible design, the scheduling method among the multiple data queues corresponding to the second scheduling priority is round-robin scheduling or weighted round-robin scheduling.
[0018] In one possible design, the acquisition of the data to be scheduled and the congestion information of the network slice to which the data to be scheduled belongs includes: acquiring the data to be scheduled and the transmission characteristic information of the data to be scheduled during transmission; and determining the congestion information of the network slice based on the transmission characteristic information of the data to be scheduled and the transmission capability information supported by the network slice.
[0019] In one possible design, the scheduling method can be applied to the forwarding device. Before determining the congestion information of the network slice based on the transmission characteristics information of the data to be scheduled and the transmission capacity information supported by the network slice, the scheduling method further includes: receiving the transmission capacity information supported by the network slice from the control device.
[0020] In one possible design, if the transmission characteristics of the data to be scheduled match the transmission capacity information supported by the network slice, the congestion information of the network slice indicates that the network slice is not congested; if the transmission characteristics of the data to be scheduled do not match the transmission capacity information supported by the network slice, the congestion information of the network slice indicates that the network slice is congested.
[0021] In one possible design, the transmission capacity information supported by network slicing includes at least one of the following: the input rate of the network slice, the maximum supported burst traffic size, and latency requirements.
[0022] In one possible design, the transmission characteristic information includes the rate information of the data to be scheduled.
[0023] For example, the transmission characteristic information of the data to be scheduled is matched with the transmission capability information supported by the network slice, including: the rate information is less than or equal to the input rate of the network slice.
[0024] In one possible design, the transmission characteristic information also includes at least one of the following: the burst size of the data to be scheduled and the latency requirement information.
[0025] For example, the transmission characteristic information of the data to be scheduled is matched with the transmission capability information supported by the network slice, including: the rate information is less than or equal to the input rate of the network slice and the latency requirement information supported by the network slice can meet the latency requirement of the data to be scheduled; or, the rate information is less than or equal to the input rate of the network slice, the burst traffic size is less than or equal to the maximum supported burst traffic size, and the latency requirement information supported by the network slice can meet the latency requirement of the data to be scheduled.
[0026] Secondly, embodiments of this application provide a scheduling apparatus for implementing the various methods described above. This scheduling apparatus includes modules, units, or means corresponding to the scheduling methods in any possible design of the first aspect described above. These modules, units, or means can be implemented in hardware, software, or by hardware executing corresponding software implementations. The hardware or software includes one or more modules or units corresponding to the functions described above.
[0027] In some possible designs, the scheduling device may include a processing module and a transceiver module. The transceiver module, also referred to as a transceiver unit, is used to implement the transmission and / or reception functions in the first aspect described above and any possible implementation thereof. The transceiver module may consist of transceiver circuits, transceivers, transceivers, or communication interfaces. The processing module can be used to implement the processing functions in the first aspect described above and any possible implementation thereof.
[0028] In some possible designs, the transceiver module includes a sending module and a receiving module, which are used to implement the sending and receiving functions in the first aspect and any possible implementation thereof.
[0029] The scheduling device provided in the second aspect is used to execute the first aspect or any possible implementation of the first aspect. For details, please refer to the first aspect or any possible implementation of the first aspect, which will not be repeated here.
[0030] Thirdly, a scheduling apparatus is provided for implementing the various methods described above. The scheduling apparatus includes a processor and a memory; the memory stores computer instructions that, when executed by the processor, cause the scheduling apparatus to perform any of the possible scheduling methods in the design of the first aspect described above.
[0031] In some possible designs, the scheduling device may include: a processor and a communication interface; the communication interface is used to communicate with modules outside the scheduling device; the processor is used to execute computer programs or instructions to cause the scheduling device to perform the scheduling method in any of the possible designs of the first aspect described above.
[0032] Fourthly, this application provides a computer-readable storage medium that stores computer instructions that, when executed on a computer, cause the computer to perform any of the possible scheduling methods in the design of the first aspect.
[0033] Fifthly, this application provides a computer program product including computer instructions that, when executed on a computer, cause the computer to perform any possible scheduling method in the design of the first aspect.
[0034] In a sixth aspect, this application provides a chip comprising: a processor for executing instructions that cause a device including the chip to perform the scheduling method in any possible design of the first aspect described above.
[0035] In conjunction with the sixth aspect mentioned above, in one possible implementation, the chip also includes a memory for storing instructions.
[0036] The technical effects of any possible implementation of aspects two through six can be found in the first aspect above, as well as the technical effects of any possible design of the first aspect above, which will not be repeated here. Attached Figure Description
[0037] Figure 1 A schematic diagram illustrating a scheduling method provided in an embodiment of this application;
[0038] Figure 2 A schematic diagram illustrating another scheduling method provided in an embodiment of this application;
[0039] Figure 3 A schematic diagram of a scheduling system provided in an embodiment of this application;
[0040] Figure 4 This is a schematic diagram of the composition of a forwarding device provided in an embodiment of this application;
[0041] Figure 5 This is a schematic diagram of the structure of a scheduling device provided in an embodiment of this application;
[0042] Figure 6 A flowchart illustrating a scheduling method provided in an embodiment of this application;
[0043] Figure 7A schematic diagram of a scheduling process provided in an embodiment of this application;
[0044] Figure 8 A flowchart illustrating another scheduling method provided in an embodiment of this application;
[0045] Figure 9 A schematic diagram illustrating another scheduling process provided in an embodiment of this application;
[0046] Figure 10 This is a schematic diagram of the composition of a scheduling device provided in an embodiment of this application. Detailed Implementation
[0047] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0048] Software slicing refers to creating isolated network slices for different services or users on a shared physical infrastructure through logical segmentation. These slices are logically independent but physically share the same network resources. Software slicing technology enables operators to provide multiple different network services on a single physical network, meeting the needs of different industries and customers. Isolation between slices and sharing of bandwidth resources can be achieved through scheduling methods. For example, scheduling methods can dynamically adjust bandwidth allocation between slices based on service requirements and network conditions, thereby improving network bandwidth utilization.
[0049] For example, the scheduling method described above can be a round-robin (RR) scheduling method or a weighted round-robin (WRR) scheduling method.
[0050] Among them, the RR scheduling method allocates services to each network slice sequentially according to time, with each network slice receiving equal service time. After all network slices have been accessed in one round, the cycle returns to the first network slice to start a new round. WRR scheduling introduces weights into RR scheduling, pre-setting a service weight for each network slice. In this way, when allocating network resources, more service time can be allocated to network slices with high weights, while less service time can be allocated to network slices with low weights.
[0051] like Figure 1As shown, the data transmission system includes n network slices: slice 1, slice 2, ..., slice n. The committed information rate (CIR) of a network slice equals its bandwidth (BW), meaning the committed information transmission rate matches the maximum amount of data it can process (i.e., bandwidth). Furthermore, the committed burst size (CBS) equals the link processing unit (CRDUNIT), where CBS refers to the maximum allowed flow size for each burst. Based on RR scheduling or WRR scheduling methods, each slice in slice 1, slice 2, ..., slice n can receive, process, and send its own data packets (PDs) in a certain order. Burst traffic is uncertain and unpredictable, potentially increasing the load on a slice suddenly, causing it to be unable to complete data processing within the specified time. For example, if at least one network slice in slice 1, slice 2, ..., slice n-1 experiences burst traffic, that network slice will require more processing resources, affecting other slices and potentially increasing the latency of subsequent slice n.
[0052] It is evident that RR or WRR scheduling methods cannot provide deterministic latency guarantees. Therefore, how to meet the deterministic latency requirements of services is a pressing technical problem that needs to be solved in current related technologies.
[0053] In view of this, this disclosure provides a scheduling method, comprising: acquiring data to be scheduled and congestion information of the network slice to which the data to be scheduled belongs; wherein the congestion information is used to indicate whether the network slice is congested; determining the scheduling priority of the network slice according to the congestion information; and scheduling the data to be scheduled according to the scheduling priority. Thus, by scheduling congested slices and non-congested slices according to different priorities, the latency of non-congested slices is prevented from being interfered with by congested slices, and deterministic latency guarantees can be provided for non-congested slices.
[0054] Furthermore, compared to the weighted fair queuing (WFQ) scheduling method, the scheduling method provided in this application does not require independent virtual time calculations for each queue, resulting in lower algorithm complexity, easier implementation, and wider applicability.
[0055] For example, WFQ is a virtual clock-based queuing algorithm that assigns a virtual clock to each data stream and schedules traffic according to the clock's progress. Bandwidth is allocated based on the weight of the data streams to achieve fair queuing and transmission.
[0056] Each data stream has a corresponding virtual clock that advances at a constant rate. When the virtual clock of a data stream reaches a specific value, the data packets for that stream are sent. Various queues maintained by the WFQ are used to store data packets to be sent. Whenever a data packet arrives, the WFQ places it into the appropriate queue according to the data stream's weight. In each clock cycle, the WFQ selects a data packet from the queues to send until all queues are empty. The WFQ uses weight calculations to determine the virtual clock rate for each data stream. Higher-weighted data streams receive more bandwidth allocation, while lower-weighted data streams receive less bandwidth allocation. This method ensures that high-weighted data streams are transmitted first, achieving fair traffic scheduling.
[0057] Thus, the WFQ scheduling method can simulate the bit-level scheduling process of generalized processor sharing (GPS) by introducing concepts such as virtual time and weight, and calculating the virtual start time and virtual finish time of each queue. GPS is an idealized scheduling algorithm that assumes that the processor can infinitely subdivide time and allocate service time according to the weight ratio of each queue.
[0058] For example, such as Figure 2 As shown, the queue corresponding to slice 1 can include messages VFT1(0), VFT1(1), VFT1(2), and VFT1(3); the queue corresponding to slice 2 can include messages VFT2(0) and VFT2(1); and the queue corresponding to slice 3 can include messages VFT3(0) and VFT3(1). The WFQ scheduling algorithm can schedule each queue by simulating the bit-level scheduling process of GPS, such as... Figure 2 As shown, the final data output order can be message VFT1(0), message VFT2(0), message VFT3(0), message VFT1(1), message VFT1(2), message VFT2(1), message VFT3(1), message VFT1(3).
[0059] It's important to note that the WFQ scheduling algorithm requires independent virtual time calculations for each queue to determine the order in which data packets are sent. As the number of data streams increases, this queue-by-queue computation becomes highly complex. Furthermore, to maintain scheduling fairness, the WFQ algorithm needs to continuously update and maintain the virtual time for each queue, requiring additional system resources and overhead. Therefore, the WFQ scheduling algorithm may face challenges when supporting large-scale slicing. In large-scale network environments, the number of slices is vast, and each slice requires independent queues and virtual time calculations, making implementation difficult.
[0060] The technical solutions provided in the embodiments of this application will be described below with reference to the accompanying drawings.
[0061] Figure 3 A schematic diagram of a scheduling system 100 according to an embodiment of this application is shown, as follows: Figure 3 As shown, the scheduling system 100 includes: a control device 110 and at least one forwarding device 120.
[0062] The control device 110 is communicatively connected to each of the at least one forwarding device 120. The control device 110 is capable of transmitting messages, information, or data with each forwarding device 120.
[0063] In this embodiment of the application, the network provided by system 100 can be divided into multiple network slices, for example... Figure 3 The network consists of slice 1, slice 2, and slice 3, where the same physical network exit is virtually divided into multiple soft slices.
[0064] The control device 110 can also be called a network slice controller, network slice control device, controller, or other similar names. The control device 110 can be used to plan, deploy, maintain, and optimize network slices. For example, planning includes: planning the scope, bandwidth, and latency of slices based on service assurance requirements. Deployment includes: creating slice interfaces, configuring slice bandwidth, configuring VPNs and tunnels, etc. Maintenance includes: monitoring service latency and packet loss metrics, reporting network slice traffic, link status, and service quality information, and presenting the network slice status in real time. Optimization includes: seeking the optimal balance between slice network performance and network cost based on service level requirements.
[0065] The forwarding device 120 can also be called a network forwarding device, repeater, or other similar names. A device fragmentation management program can run on the forwarding device 120 to manage the device's network resources, report device resource status, and receive and process relevant control information or event information related to services. It can be a hardware device capable of performing the aforementioned network resource management operations, such as a router, switch, bridge, network management system, firewall, load balancer, multilayer switch, bridging router, server, network splitter, etc. This application embodiment does not limit the specific device form of the forwarding device 120.
[0066] For example, control device 110 can receive slice service information and distribute it to forwarding device 120 on the slice path. Forwarding device 120 can then schedule the data to be scheduled for that network slice based on the slice service information. For instance, slice service information may include information such as slice range, bandwidth, and latency that meet service assurance requirements. This slice service information can be user-inputted, or it can be determined by control device 110 based on service assurance requirements.
[0067] In this embodiment of the application, network slices are carried on one or more forwarding devices 120. For example, one or more virtual forwarders for one or more network slices may run on a forwarding device 120.
[0068] Furthermore, in this embodiment, each network slice can be carried by some or all of the forwarders in the at least one forwarding device 120. Also, the forwarding devices carried by any two network slices can be completely identical, partially identical, or completely different; this application does not impose any particular limitation on this.
[0069] Furthermore, in this embodiment, multiple network slices can be carried on the same forwarding device 120. That is, in this embodiment, a virtual forwarder for each of the multiple network slices can run on the same forwarding device 120.
[0070] In this embodiment of the application, the control device 110 may be a primary controller provided by a primary operator, such as a virtual control platform. The control device 110 can obtain control information for each network slice and send the control information to the forwarding device 120, so that the forwarding device 120 can manage and control the network slice based on the obtained control information.
[0071] It should be noted that, in the embodiments of this application, Figure 3 Each device in the system 100 shown can be a physical device or a virtualized device. For example, the virtualized device can be a virtual machine that provides the functions of each device in a computer system. This application embodiment does not make any special limitation in this regard.
[0072] It should be understood that Figure 3 The devices included in the system 100 shown are merely illustrative examples. For instance, in addition to the control device 110 and the forwarding device 120, the system 100 may also include a virtual network function manager (VNFM), a network slicing management (NSLM), or other possible devices or apparatuses in this embodiment of the application.
[0073] Figure 4 The diagram shows the composition of a forwarding device 120. Figure 4 As shown, the forwarding device 120 may include a slice input recognition module 121, a slice queue selection module 122, and a slice scheduling module 123.
[0074] The slice input identification module 121 is used to determine the congestion information of a network slice. For example, it matches transmission characteristic information (or slice input traffic characteristics) with transmission capability information (or slice service attribute information) and marks the slice packets of each matching result. This mark is used to indicate whether the network slice is congested, i.e., the aforementioned congestion information. In some embodiments, the forwarding device 120 may pre-store a transmission capability information table (or slice service attribute table), so that the slice input identification module 121 can match the transmission characteristic information with the transmission capability information recorded in the transmission capability information table to obtain the matching result.
[0075] The slice queue selection module 122 is used to select a scheduling queue for a slice based on the slice matching result tag and transmission capacity information.
[0076] The slice scheduling module 123 is used to perform scheduling according to predefined scheduling rules to ensure slice latency. For example, the predefined scheduling rules may include: determining scheduling priorities based on network slice congestion information, and then performing scheduling based on these priorities. In some embodiments, the scheduling method used by the slice scheduling module 123 may be a pre-set scheduling method. Alternatively, the scheduling method used by the slice scheduling module 123 may be a scheduling method sent by the control device 110.
[0077] In some embodiments, this application also provides a scheduling device for the scheduling method provided in this application, which can be an electronic device with data processing capabilities. For example, the scheduling device can be the aforementioned forwarding device 120. Alternatively, the scheduling device can be a functional module of the forwarding device 120, or it can be any computing device connected to the forwarding device 120. This application does not limit the scope of the application.
[0078] like Figure 5 The diagram shown is a structural schematic of the scheduling device 500 provided in an embodiment of this application.
[0079] like Figure 5 As shown, the scheduling device 500 includes a processor 510, a communication line 520, and a communication interface 530.
[0080] Optionally, the scheduling device 500 may also include a memory 540. The processor 510, memory 540, and communication interface 530 can be connected via a communication line 520.
[0081] The processor 510 can be a central processing unit (CPU), a network processor (NP), a digital signal processor (DSP), a microprocessor, a microcontroller, a programmable logic device (PLD), or any combination thereof. The processor 510 can also be any other device with processing capabilities, such as a circuit, device, or software module, without limitation.
[0082] In one example, processor 510 may include one or more CPUs, for example Figure 5 CPU0 and CPU1 in the CPU.
[0083] As an optional implementation, the scheduling device 500 may include multiple processors, for example, in addition to processor 510, it may also include processor 570. A communication line 520 is used to transmit information between the components included in the scheduling device 500.
[0084] Communication interface 530 is used for communication with other devices or other communication networks. This other communication network can be Ethernet, a radio access network (RAN), a wireless local area network (WLAN), etc. Communication interface 530 can be a module, circuit, transceiver, or any device capable of enabling communication.
[0085] Memory 540 is used to store instructions. These instructions can be computer programs.
[0086] The memory 540 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and / or instructions; it may also be a random access memory (RAM) or other type of dynamic storage device capable of storing information and / or instructions; it may also be an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital universal optical discs, Blu-ray discs, etc.), magnetic disk storage media, or other magnetic storage devices, etc., without limitation.
[0087] It should be noted that the memory 540 can exist independently of the processor 510 or can be integrated with the processor 510. The memory 540 can be used to store instructions, program code, or some data, etc. The memory 540 can be located inside or outside the scheduling device 500, without restriction.
[0088] The processor 510 is configured to execute instructions stored in the memory 540 to implement the communication method provided in the following embodiments of this application. For example, when the scheduling device 500 is a terminal or a chip or system-on-a-chip in the terminal, the processor 510 can execute instructions stored in the memory 540 to implement the scheduling method provided in this application.
[0089] As an optional implementation, the scheduling device 500 also includes an output device 550 and an input device 560. The output device 550 can be a display screen, speaker, or other device capable of outputting data from the scheduling device 500 to the user. The input device 560 can be a keyboard, mouse, microphone, joystick, or other device capable of inputting data into the scheduling device 500.
[0090] Understandable, Figure 5 The structure shown does not constitute a specific limitation on the scheduling device. For example, in other embodiments of this application, the scheduling device may include more or fewer components than shown, or combine some components, or split some components, or have different component arrangements. The components shown may be implemented in hardware, software, or a combination of software and hardware.
[0091] It is understood that in the embodiments of this application, the scheduling device executes some or all of the steps in the embodiments of this application. These steps or operations are merely examples, and the embodiments of this application may also perform other operations or variations thereof. Furthermore, the steps may be executed in different orders as presented in the embodiments of this application, and it is not necessarily necessary to execute all the operations in the embodiments of this application.
[0092] The scheduling method provided in this application will be described in detail below with reference to specific embodiments.
[0093] like Figure 6 The diagram illustrates a scheduling method provided in an embodiment of this application. The scheduling method includes the following steps:
[0094] S101. Obtain the data to be scheduled and the congestion information of the network slice to which the data to be scheduled belongs.
[0095] Among them, congestion information is used to indicate whether congestion has occurred in a network slice.
[0096] For example, congestion information may include a congestion status identifier, or other information that can be used to indicate whether a network slice is congested. Taking the congestion status identifier as an example, this identifier can be either a congestion identifier or a non-congestion identifier. A congestion identifier can be used to identify a network slice that is congested; in this case, the network slice can also be called a congested slice. A non-congestion identifier can be used to identify a network slice that is not congested; in this case, the network slice can also be called a non-congested slice.
[0097] Congestion refers to a state in a network where the demand for network resources, such as bandwidth, cache space, and processing power, exceeds the available resources. It should be understood that congestion can lead to packet loss, increased latency, and decreased throughput, impacting network performance. The congested slices mentioned above are network slices that experience congestion or are in a congested state. Non-congested slices are network slices that do not experience congestion or are not in a congested state.
[0098] It should be noted that because the traffic input characteristics of non-congested slices conform to the pre-set transmission capacity information, network resources are not saturated and can provide sufficient transmission capacity, so network services are not affected. Therefore, during the scheduling process, it is necessary to ensure that non-congested slices are not interfered with by congested slices as much as possible. For example, deterministic latency guarantees can be provided for non-congested slices to ensure that they can provide network services normally, thereby improving the utilization rate of network resources.
[0099] In one possible implementation, the data to be scheduled and its transmission characteristics during transmission can be obtained first. Then, based on the transmission characteristics of the data to be scheduled and the transmission capacity information supported by the network slice, the congestion information of the network slice can be determined.
[0100] The data to be scheduled can be data packets or data streams that require transmission scheduling during network communication. The data to be scheduled may belong to a specific network slice and may have different service requirements. Specifically, the data to be scheduled may be, for example, video stream data, voice call data, file transfer data, etc. In some embodiments, the data to be scheduled may carry identification information of the network slice, such as a slice ID, so that the network slice to which the data to be scheduled belongs can be determined based on this identification information.
[0101] The transmission characteristic information of the data to be scheduled refers to information describing the transmission requirements of the data to be scheduled. This information may include rate information (e.g., average rate, maximum rate, minimum rate), burst traffic size, latency requirements, etc. Burst traffic size refers to the amount of data that suddenly increases in network traffic within a short period. For example, the transmission characteristic information of the data to be scheduled may only include rate information. Alternatively, it may include at least one of the following: burst traffic size and latency requirements. For instance, the transmission characteristic information of the data to be scheduled may include rate information, latency requirements, and burst traffic size.
[0102] For example, feature extraction can be performed on the data to be scheduled to obtain the aforementioned transmission characteristic information. For instance, traffic monitoring and collection can be performed on the data to be scheduled, capturing and recording traffic data in real time, thereby determining the transmission characteristic information of the traffic data. Alternatively, the transmission characteristic information of the data to be scheduled can be determined based on historical data from a recent period. For example, feature analysis can be performed on historical data from a recent period to predict the transmission characteristic information of the data to be scheduled.
[0103] In some embodiments, the transmission capability information supported by network slicing includes at least one of the following: the input rate of the network slice, the maximum supported burst traffic size, and latency requirement information. This transmission capability information may also be referred to as slice service information, slice service attribute information, or other possible names.
[0104] For example, the transmission capacity information supported by a network slice may only include the input rate of the network slice. As another example, the transmission capacity information indicated by a network slice may also include at least one of the following: the maximum supported burst traffic size and latency requirements. For instance, the transmission capacity information supported by a network slice may include the input rate of the network slice, latency requirements, and the maximum burst traffic size.
[0105] In network slicing, the input rate refers to the amount of data that can be received and processed per unit of time. It is typically measured in bits per second (bps), kilobits per second (kbps), megabits per second (Mbps), or gigabits per second (Gbps). Different types of services have different input rate requirements. For example, video streaming services may require a high input rate to ensure a smooth playback experience, while Internet of Things (IoT) devices may have lower input rate requirements.
[0106] Burst traffic refers to a sudden increase in data volume within a short period of time. The maximum burst traffic size supported by a network slice refers to the amount of sudden data a network slice can withstand within a short period of time; it can also be understood as the maximum traffic surge it can withstand in the face of a sudden situation. It is usually measured in bits or bytes. In some embodiments, the maximum burst traffic size supported by a network slice can be different for different services. The maximum burst traffic size supported by a network slice can be adjusted based on the different transmission requirements of various services. In this way, the corresponding identification parameters (the transmission capacity information of the network slice) can be flexibly adjusted based on service attributes, thereby ensuring low latency for some high-value services during bursts.
[0107] Latency typically refers to the time elapsed from the start of data transmission to the end of data reception. The maximum burst traffic size supported by a network slice can be considered the maximum acceptable latency for the services carried by that network slice. Latency requirements may vary depending on the type of service, application scenario, and user needs. In some embodiments, latency requirements can be categorized according to different service types and application scenarios. For example, latency requirements can include ultra-low latency requirements, low latency requirements, and medium latency requirements. Specifically, scenarios such as autonomous driving and telemedicine have extremely high real-time requirements and therefore require ultra-low latency. Scenarios such as online games and real-time video calls have certain real-time requirements and therefore require low latency. Scenarios such as file transfer and web browsing have lower real-time requirements and therefore require medium latency.
[0108] In one example, pre-stored transmission capability information of network slices can be obtained. For instance, the transmission capability information of the network device can be obtained from a pre-stored transmission capability information table. It should be understood that this transmission capability information table can be used to record the identifier of at least one network slice and the corresponding transmission capability information for each network slice. In some embodiments, the transmission capability information table can also be updated in a timely manner based on the transmission capability information obtained from the control device.
[0109] In another example, transmission capacity information for the network slice can be received from the control device. For instance, this transmission capacity information can be user-inputted, or it can be determined by the control device based on the service assurance requirements of the services carried by the network slice. For example, the control device can... Figure 3 The control device 110 in the middle can also be called a network slice controller, network slice control device, controller or other similar names.
[0110] In some embodiments, determining the congestion information of a network slice based on the transmission characteristic information of the data to be scheduled and the transmission capability information supported by the network slice can be specifically implemented as follows: determining the matching result between the transmission characteristic information of the data to be scheduled and the transmission capability information supported by the network slice, and then determining the congestion information of the network slice based on the matching result.
[0111] For example, if the transmission characteristics of the data to be scheduled match the transmission capacity information supported by the network slice, it can be determined that the congestion information of the network slice indicates that the network slice is not congested. In this case, the network slice can also be called a non-congested slice.
[0112] Matching the transmission characteristics of scheduled data with the transmission capacity information supported by the network slice can be understood as: the transmission demand corresponding to the transmission characteristics of the data to be scheduled does not exceed the transmission capacity supported by the network slice.
[0113] In one example, the aforementioned transmission characteristic information may only include the rate information of the data to be scheduled. Taking the average rate of the data to be scheduled as an example, if the average rate is less than or equal to the input rate of the network slice, it can be determined that the transmission characteristic information of the scheduled data matches the transmission capacity information supported by the network slice. In this case, the congestion information of the network slice indicates that the network slice is not congested.
[0114] In another example, the aforementioned transmission characteristic information includes the rate information and latency requirements of the data to be scheduled, and / or, the transmission capability information supported by the network slice may only include the input rate and latency requirements of the network slice. Taking the average rate of the data to be scheduled as an example, if the average rate is less than or equal to the input rate of the network slice and the latency requirements supported by the network slice can meet the latency requirements of the data to be scheduled, it can be determined that the transmission characteristic information of the scheduled data matches the transmission capability information supported by the network slice. In this case, the congestion information of the network slice indicates that the network slice is not congested.
[0115] In another example, the transmission characteristic information includes information such as the rate information, burst traffic size, and latency requirements of the data to be scheduled, and / or, the transmission capacity information supported by the network slice may include the input rate, latency requirements, and maximum burst traffic size of the network slice. Taking the average rate of the data to be scheduled as an example, if the average rate is less than or equal to the input rate of the network slice, the burst traffic size is less than or equal to the maximum supported burst traffic size, and the latency requirements supported by the network slice meet the latency requirements of the data to be scheduled, it can be determined that the transmission characteristic information of the scheduled data matches the transmission capacity information supported by the network slice. In this case, the congestion information of the network slice indicates that the network slice is not congested.
[0116] Among them, the latency requirement information supported by the network slice that can meet the latency requirement of the data to be scheduled may include: the latency indicated by the latency requirement information of the data to be scheduled is greater than or equal to the latency indicated by the latency requirement information of the network slice.
[0117] For example, if the transmission characteristics of the data to be scheduled do not match the transmission capacity information supported by the network slice, the congestion information of the network slice can be used to determine that the network slice is congested. In this case, the network slice can also be called a congested slice.
[0118] The mismatch between the transmission characteristics of the scheduled data and the transmission capacity supported by the network slice can be understood as: the transmission demand corresponding to the transmission characteristics of the data to be scheduled exceeds the transmission capacity supported by the network slice.
[0119] For example, if at least one of the following conditions is met, it can be determined that the transmission characteristics information of the scheduling data does not match the transmission capacity information supported by the network slice, and the congestion information of the network slice indicates that the network slice is congested:
[0120] The rate information of the data to be scheduled is greater than the input rate of the network slice;
[0121] The burst size of the data to be scheduled is greater than the maximum burst size supported by the network slice; or,
[0122] The latency requirements supported by network slicing do not meet the latency requirements of the data to be scheduled.
[0123] For example, the latency requirement information supported by the network slice not meeting the latency requirement of the data to be scheduled can include: the latency indicated by the latency requirement information of the data to be scheduled is less than or equal to the latency indicated by the latency requirement information supported by the network slice. In this case, the data to be scheduled has higher real-time requirements and requires a smaller latency, which the network slice cannot meet. For example, the data to be scheduled is data from an autonomous driving scenario, and its latency requirement is, for example, 3 milliseconds, to perceive the surrounding environment in real time and make corresponding decisions to ensure driving safety. However, the latency requirement information of the network slice indicates a latency of 20 milliseconds, in which case the network slice cannot meet the latency requirement of the data to be scheduled. Thus, it can be determined that the transmission characteristic information of the scheduled data does not match the transmission capability information supported by the network slice, and the congestion information of the network slice indicates that the network slice is congested.
[0124] In some embodiments, multiple data sets to be scheduled, along with congestion information of the network slice to which each data set belongs, can be obtained. For example... Figure 7 As shown, the input recognition module can obtain the information to be scheduled (carrying the slice ID) and, in conjunction with the transmission capacity information table, determine the congestion information of the network slice to which the data to be scheduled belongs. That is, whether the network slice to which the data to be scheduled belongs is a congested slice or a non-congested slice. This transmission capacity information table can be updated in a timely manner based on the information transmitted by the control device. Specifically, the network slice to which data to be scheduled 701-703 belongs is a non-congested slice. The network slice to which data to be scheduled 711-713 belongs is a congested slice, i.e., congested slice 1. The network slice to which data to be scheduled 721-723 belongs is a congested slice, i.e., congested slice 2. The network slice to which data to be scheduled 731-733 belongs is a congested slice, i.e., congested slice 3.
[0125] In another possible implementation, congestion data sent by other devices can also be received to determine the congestion information of the network slice to which the data to be scheduled belongs.
[0126] For example, congestion data can be received from other upstream devices (such as routers, switches, etc.) and may include information such as network traffic conditions, buffer usage, and packet loss rate. Furthermore, by processing and analyzing the received congestion data, the congestion information of the network slice to which the data to be scheduled belongs can be determined.
[0127] S102. Determine the scheduling priority of network slices based on congestion information.
[0128] In some embodiments, the scheduling priority of non-congested slices may be higher than that of non-congested slices.
[0129] For example, if congestion information indicates that a network slice is not congested, the scheduling priority of the network slice is determined to be the first scheduling priority. If congestion information indicates that a network slice is congested, the scheduling priority of the network slice is determined to be the second scheduling priority. The first scheduling priority is higher than the second scheduling priority.
[0130] It should be understood that, based on the first and second scheduling priorities mentioned above, different priorities can be set for congested and non-congested slices, with non-congested slices having a higher priority. Therefore, scheduling based on these priorities can prevent the delay of slices that are not congested from being affected by the congested slices.
[0131] S103. Schedule the data to be scheduled according to the scheduling priority.
[0132] In some embodiments, a strict priority (SP) scheduling method can be used between non-congested slices and congested slices.
[0133] The SP scheduling method strictly follows the order of priority from high to low, prioritizing the sending of data from the higher priority data queue (e.g., the first scheduling priority mentioned above). When the higher priority data queue is empty, data from the lower priority data queue (e.g., the second scheduling priority mentioned above) is then sent.
[0134] In some embodiments, the data to be scheduled can be added to a data queue corresponding to the scheduling priority, and then the data to be scheduled can be sent based on the data queue.
[0135] For example, if the scheduling priority is high, such as the first scheduling priority mentioned above, the data to be scheduled can be added to the data queue corresponding to the high priority. Alternatively, if the scheduling priority is low, such as the second scheduling priority mentioned above, the data to be scheduled can be added to the data queue corresponding to the low priority. Furthermore, based on the SP scheduling method, data in the data queue corresponding to the high priority can be sent (or output) first, and when the data queue corresponding to the high priority is empty, data in the data queue corresponding to the low priority can be sent.
[0136] like Figure 7 As shown, data to be scheduled 701-703 can be added to data queue 700, which corresponds to the first scheduling priority. Data to be scheduled 711-713 can be added to data queue 710, which corresponds to the second scheduling priority. Therefore, data to be scheduled 701-703 can be sent first, and data to be scheduled 711-713 can be sent only when data queue 700 is empty.
[0137] In some embodiments, the number of data queues corresponding to high priorities (such as the first scheduling priority mentioned above) may include one or more.
[0138] In one example, when a first scheduling priority corresponds to multiple data queues, the data queue corresponding to the network slice to which the data to be scheduled belongs can be determined from among the multiple data queues corresponding to the first scheduling priority. The data to be scheduled is then added to that data queue, and subsequently sent based on that data queue. In some embodiments, the scheduling method among the multiple data queues corresponding to the first scheduling priority is round-robin scheduling or weighted round-robin scheduling. Alternatively, the scheduling method among the multiple data queues corresponding to the first scheduling priority can also be SP scheduling, for example, each data queue can correspond to a different queue priority based on latency requirement information or other possible parameters.
[0139] In another example, when the first scheduling priority can correspond to multiple data queues, the first data queue can be determined from the multiple data queues corresponding to the first scheduling priority based on the latency requirement information of the data to be scheduled, the data to be scheduled can be added to the first data queue, and then the data to be scheduled can be sent based on the first data queue.
[0140] In some embodiments, the number of data queues corresponding to low priorities (such as the second scheduling priority mentioned above) may include one or more.
[0141] For example, when the second scheduling priority can correspond to multiple data queues, the second data queue corresponding to the network slice to which the data to be scheduled belongs can be determined from among the multiple data queues corresponding to the second scheduling priority. The data to be scheduled is then added to the second data queue, and the data to be scheduled is sent based on the second data queue. In some embodiments, the scheduling method among the multiple data queues corresponding to the second scheduling priority can be round-robin scheduling or weighted round-robin scheduling.
[0142] like Figure 7 As shown, the data queues corresponding to the second scheduling priority include data queue 710, data queue 720, and data queue 730. Since the network slice to which the data to be scheduled 721 belongs is congested slice 2, the data queue 720 corresponding to congested slice 2 can be designated as the second data queue, and the data to be scheduled 721 can be added to this data queue 720. It should be understood that data queues 710, 720, and 730 will be sent only when data queue 700 is empty.
[0143] The scheduling method provided in this application can schedule congested slices and non-congested slices according to different priorities, avoiding interference from congested slices on the latency of non-congested slices, and providing deterministic latency guarantees for non-congested slices. Furthermore, compared to the WFQ scheduling method, the scheduling method provided in this application does not require independent virtual time calculations for each queue, resulting in lower algorithm complexity, easier implementation, and wider applicability.
[0144] In some embodiments, the first scheduling priority corresponds to multiple data queues, such as Figure 8 As shown, when the scheduling priority is the first priority, the data to be scheduled can also be scheduled based on latency requirement information. This scheduling method specifically includes:
[0145] S201. When the scheduling priority is the first scheduling priority, the first data queue is determined from the multiple data queues corresponding to the first scheduling priority based on the delay requirement information of the data to be scheduled.
[0146] In some embodiments, each of the multiple data queues corresponding to the first scheduling priority corresponds to a latency requirement, and the queue priority of the data queue is negatively correlated with the latency indicated by the latency requirement corresponding to the data queue.
[0147] In other words, the higher the latency requirement (the shorter the latency duration indicated by the latency requirement), the higher the queue priority.
[0148] For example, the latency requirements of the data to be scheduled can be categorized according to different business types and application scenarios. For instance, they can be divided into first latency requirements, second latency requirements, and third latency requirements. The duration of the first latency requirement is shorter than the duration of the second latency requirement, and the duration of the second latency requirement is shorter than the duration of the third latency requirement.
[0149] Therefore, the queue priority of the data queue corresponding to the first latency requirement is higher than that of the data queue corresponding to the second latency requirement, and the queue priority of the data queue corresponding to the second latency requirement is higher than that of the data queue corresponding to the third latency requirement.
[0150] At this point, based on the latency requirement of the data to be scheduled, and if the latency requirement is the second latency requirement, it can be determined that the data queue corresponding to the second latency requirement is the aforementioned first data queue.
[0151] It should be noted that the latency requirement of the data to be scheduled as the second latency requirement may include: the latency requirement of the data to be scheduled is equal to the second latency requirement; the difference between the latency requirement of the data to be scheduled and the second latency requirement is less than a preset threshold; the difference between the latency requirement of the data to be scheduled and the second latency requirement is less than the difference between the latency requirement of the data to be scheduled and the third latency requirement (or the first latency requirement), or other possible situations.
[0152] It should be understood that the aforementioned first, second, and third latency requirements are merely illustrative examples of latency requirement classification. For instance, more or fewer latency requirement categories may be included, such as a fourth latency requirement, where the duration of the third latency requirement is shorter than that of the fourth. Furthermore, latency requirements may also have other possible names, such as the aforementioned ultra-low latency requirement, low latency requirement, and medium latency requirement. In these cases, the duration of the ultra-low latency requirement is shorter than that of the low latency requirement, and the duration of the low latency requirement is shorter than that of the medium latency requirement.
[0153] S202. Add the data to be scheduled to the first data queue.
[0154] For example, the data to be scheduled can be added to a first data queue, and then the data to be scheduled can be sent based on the data queue.
[0155] In some embodiments, the data to be scheduled can be added to the data queue corresponding to the scheduling priority, and then the data to be scheduled can be sent based on the first data queue.
[0156] In some embodiments, the SP scheduling method can also be used among multiple data queues corresponding to the first scheduling priority.
[0157] For example, consider a latency requirement that includes the first latency requirement, the second latency requirement, and the third latency requirement. Data from the data queue corresponding to the first latency requirement can be sent first. If the data queue corresponding to the first latency requirement is empty, data from the data queue corresponding to the second latency requirement can be sent. Then, if the data queue corresponding to the second latency requirement is empty, data from the data queue corresponding to the third latency requirement can be sent.
[0158] like Figure 9 As shown, the data queues corresponding to the first scheduling priority include data queue 900 and data queue 910. Furthermore, data queue 900 has a higher priority than data queue 910. Therefore, data 901-903 in data queue 900 can be sent first. If data queue 900 is empty, then data 911-913 in data queue 910 can be sent. Furthermore, if data queue 910 is empty, then data from the data queue corresponding to the second scheduling priority can be sent.
[0159] Based on the scheduling method provided in this application embodiment, the data to be scheduled in slices that have not experienced congestion can be divided into multiple data queues based on latency requirements, and these multiple data queues can be scheduled by SP based on latency requirements, thereby providing differentiated latency services of different levels to meet different business needs.
[0160] The foregoing primarily describes the solutions provided by the embodiments of this application from a methodological perspective. To achieve the aforementioned functions, it includes corresponding hardware structures and / or software modules for executing each function. Those skilled in the art should readily recognize that, in conjunction with the units and algorithm steps of the various examples described in the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0161] This application embodiment can group functional modules of scheduling devices, etc., according to the above method examples. For example, each functional group can be assigned to a specific functional module, or two or more functions can be integrated into one processing module. The integrated module can be implemented in hardware or as a software functional module. It should be noted that the grouping of modules in this application embodiment is illustrative and only represents one logical functional grouping; other grouping methods may be used in actual implementation.
[0162] Figure 10 The diagram shown is a schematic representation of a scheduling device provided in an embodiment of this disclosure. Figure 10 As shown, the scheduling device 1000 can be the aforementioned forwarding device, a chip within the forwarding device, or a system on the chip of the forwarding device. The scheduling device 1000 can be used to perform the functions of the forwarding device involved in the above embodiments, such as executing the aforementioned scheduling method. As one possible implementation, such as... Figure 10 As shown, the scheduling device 1000 includes an acquisition module 1001, a determination module 1002, and a scheduling module 1003.
[0163] The acquisition module 1001 is used to acquire the data to be scheduled and the congestion information of the network slice to which the data to be scheduled belongs; wherein the congestion information is used to indicate whether the network slice is congested.
[0164] The determination module 1002 is used to determine the scheduling priority of network slices based on congestion information.
[0165] The scheduling module 1003 is used to schedule the data to be scheduled according to the scheduling priority.
[0166] As one possible implementation, the determining module 1002 is specifically used to: determine the scheduling priority of the network slice as the first scheduling priority when the congestion information indicates that the network slice is not congested; and determine the scheduling priority of the network slice as the second scheduling priority when the congestion information indicates that the network slice is congested; wherein the first scheduling priority is higher than the second scheduling priority.
[0167] As one possible implementation, the scheduling module 1003 is specifically used to: add the data to be scheduled to the data queue corresponding to the scheduling priority; and send the data to be scheduled based on the data queue.
[0168] As one possible implementation, the first scheduling priority corresponds to multiple data queues. The scheduling module 1003 is specifically used to: determine the first data queue from the multiple data queues corresponding to the first scheduling priority based on the latency requirement information of the data to be scheduled when the scheduling priority is the first scheduling priority; and add the data to be scheduled to the first data queue.
[0169] In some embodiments, each of the multiple data queues corresponding to the first scheduling priority corresponds to a latency requirement, and the queue priority of the data queue is negatively correlated with the latency indicated by the latency requirement corresponding to the data queue.
[0170] As one possible implementation, the second scheduling priority corresponds to multiple data queues. The scheduling module 1003 is specifically used to: determine the second data queue corresponding to the network slice from the multiple data queues corresponding to the second scheduling priority when the scheduling priority is the second scheduling priority; and add the data to be scheduled to the second data queue.
[0171] In some embodiments, the scheduling method among the multiple data queues corresponding to the second scheduling priority is round-robin scheduling or weighted round-robin scheduling.
[0172] In some embodiments, the acquisition module 1001 is specifically used to: acquire the data to be scheduled and the transmission characteristic information of the data to be scheduled during transmission. The determination module 1002 is specifically used to determine the congestion information of the network slice based on the transmission characteristic information of the data to be scheduled and the transmission capability information supported by the network slice.
[0173] In some embodiments, the acquisition module 1001 is further configured to: receive transmission capability information supported by network slices from the control device.
[0174] In some embodiments, the determining module 1002 is configured to determine that the congestion information of the network slice indicates that the network slice is not congested when the transmission characteristic information of the data to be scheduled matches the transmission capacity information supported by the network slice; and to determine that the congestion information of the network slice indicates that the network slice is congested when the transmission characteristic information of the data to be scheduled does not match the transmission capacity information supported by the network slice.
[0175] In some embodiments, the transmission capability information supported by network slicing includes at least one of the following: the input rate of the network slice, the maximum supported burst traffic size, and latency requirement information.
[0176] In some embodiments, the transmission characteristic information includes the rate information of the data to be scheduled.
[0177] For example, the transmission characteristic information of the data to be scheduled is matched with the transmission capability information supported by the network slice, including: the rate information is less than or equal to the input rate of the network slice.
[0178] In some embodiments, the transmission characteristic information further includes at least one of the following: the burst traffic size of the data to be scheduled and the latency requirement information.
[0179] For example, the transmission characteristic information of the data to be scheduled is matched with the transmission capability information supported by the network slice, including: the rate information is less than or equal to the input rate of the network slice and the latency requirement information supported by the network slice can meet the latency requirement of the data to be scheduled; or, the rate information is less than or equal to the input rate of the network slice, the burst traffic size is less than or equal to the maximum supported burst traffic size, and the latency requirement information supported by the network slice can meet the latency requirement of the data to be scheduled.
[0180] For a more detailed description of the acquisition module 1001, the determination module 1002, and the scheduling module 1003, as well as a more detailed description of their respective technical features and beneficial effects, please refer to the corresponding method embodiment section above, which will not be repeated here.
[0181] It should be noted that, Figure 10 A module can also be called a unit; for example, an acquisition module can be called an acquisition unit. Additionally, Figure 10 In the embodiments shown, the names of the modules may not be the same as those shown in the figures. For example, the determination module may also be called the processing module.
[0182] Through the above description of the embodiments, those skilled in the art can clearly understand that, for the sake of convenience and brevity, only the grouping of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.
[0183] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For instance, the grouping of modules or units is only a logical functional grouping, and in actual implementation, there may be other grouping methods. For example, multiple units or components may be combined or integrated into another device, or some features may be ignored or not executed. Furthermore, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection of devices or units may be electrical, mechanical, or other forms.
[0184] The units described as separate components may or may not be physically separate. A component shown as a unit can be one or more physical units; that is, it can be located in one place or distributed in multiple different locations. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0185] Furthermore, 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. The integrated unit can be implemented in hardware or as a software functional unit.
[0186] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, essentially, or the parts that contribute to the prior art, or all or part of the technical solutions, can be embodied in the form of a software product. This software product is stored in a storage medium and includes several instructions to cause a device, such as a microcontroller, chip, or processor, to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media for storing program code, such as USB flash drives, portable hard drives, ROM, RAM, magnetic disks, or optical disks.
[0187] This application also provides a computer-readable storage medium including computer-executable instructions that, when run on a computer, cause the computer to execute any of the scheduling methods provided in the above embodiments.
[0188] This application also provides a computer program product containing computer execution instructions, which, when run on a computer, causes the computer to execute any of the scheduling methods provided in the above embodiments.
[0189] This application also provides a chip comprising a processor for executing instructions that cause a device including the chip to perform any of the scheduling methods provided in the above embodiments.
[0190] It should be noted that the terms "first" and "second," etc., in the specification, claims, and drawings of this application are used to distinguish different objects, not to describe a specific order. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to these processes, methods, products, or apparatuses.
[0191] It should be understood that in this application, "at least one (item)" means one or more, "more than one" means two or more, "at least two (items)" means two or three or more, and "and / or" is used to describe the relationship between related objects, indicating that there can be three relationships. For example, "A and / or B" can mean: only A exists, only B exists, and A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the related objects before and after are in an "or" relationship. "At least one (item) 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 (item) of a, b, or c can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.
[0192] It should be understood that in the embodiments of this application, "B corresponding to A" means that B is associated with A. For example, B can be determined based on A. It should also be understood that determining B based on A does not mean that B is determined solely based on A; B can also be determined based on A and / or other information. Furthermore, the term "connection" in the embodiments of this application refers to various connection methods, such as direct connection or indirect connection, to achieve communication between devices, and the embodiments of this application do not impose any limitations on this.
[0193] Unless otherwise specified, the term "transmission" in the embodiments of this application refers to bidirectional transmission, encompassing the actions of sending and / or receiving. Specifically, "transmission" in the embodiments of this application includes sending data, receiving data, or both sending and receiving data. In other words, data transmission here includes uplink and / or downlink data transmission. Data may include channels and / or signals; uplink data transmission refers to uplink channel and / or uplink signal transmission, and downlink data transmission refers to downlink channel and / or downlink signal transmission. The terms "network" and "system" in the embodiments of this application refer to the same concept; a communication system is a communication network.
[0194] Through the above description of the embodiments, those skilled in the art can clearly understand that, for the sake of convenience and brevity, only the grouping of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.
[0195] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For instance, the grouping of modules or units is only a logical functional grouping, and in actual implementation, there may be other grouping methods. For example, multiple units or components may be combined or integrated into another device, or some features may be ignored or not executed. Furthermore, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection of devices or units may be electrical, mechanical, or other forms.
[0196] The units described as separate components may or may not be physically separate. A component shown as a unit can be one or more physical units; that is, it can be located in one place or distributed in multiple different locations. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0197] Furthermore, 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. The integrated unit can be implemented in hardware or as a software functional unit.
[0198] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, essentially, or the parts that contribute to the prior art, or all or part of the technical solutions, can be embodied in the form of a software product. This software product is stored in a storage medium and includes several instructions to cause a device, such as a microcontroller, chip, or processor, to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media for storing program code, such as USB flash drives, portable hard drives, ROM, RAM, magnetic disks, or optical disks.
[0199] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions 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.
Claims
1. A scheduling method, characterized in that, The method includes: Obtain the data to be scheduled and the congestion information of the network slice to which the data to be scheduled belongs; wherein the congestion information is used to indicate whether the network slice is congested; Based on the congestion information, determine the scheduling priority of the network slice; The data to be scheduled is scheduled according to the scheduling priority.
2. The method according to claim 1, characterized in that, Determining the scheduling priority of the network slice based on the congestion information includes: If the congestion information indicates that the network slice is not congested, the scheduling priority of the network slice is determined to be the first scheduling priority; When the congestion information indicates that the network slice is congested, the scheduling priority of the network slice is determined to be the second scheduling priority; wherein the first scheduling priority is higher than the second scheduling priority.
3. The method according to claim 2, characterized in that, The step of scheduling the data to be scheduled according to the scheduling priority includes: Add the data to be scheduled to the data queue corresponding to the scheduling priority; The data to be scheduled is sent based on the data queue.
4. The method according to claim 3, characterized in that, The first scheduling priority corresponds to multiple data queues. Adding the data to be scheduled to the data queue corresponding to the scheduling priority includes: When the scheduling priority is the first scheduling priority, the first data queue is determined from the multiple data queues corresponding to the first scheduling priority based on the latency requirement information of the data to be scheduled. Add the data to be scheduled to the first data queue.
5. The method according to claim 4, characterized in that, In the multiple data queues corresponding to the first scheduling priority, each data queue corresponds to a latency requirement, and the queue priority of the data queue is negatively correlated with the latency indicated by the latency requirement corresponding to the data queue.
6. The method according to claim 3, characterized in that, The second scheduling priority corresponds to multiple data queues. Adding the data to be scheduled to the data queue corresponding to the scheduling priority includes: When the scheduling priority is the second scheduling priority, the second data queue corresponding to the network slice is determined from the multiple data queues corresponding to the second scheduling priority; The data to be scheduled is added to the second data queue.
7. The method according to claim 4, characterized in that, The scheduling method among the multiple data queues corresponding to the second scheduling priority is either round-robin scheduling or weighted round-robin scheduling.
8. The method according to any one of claims 1-7, characterized in that, The acquisition of the data to be scheduled and the congestion information of the network slice to which the data to be scheduled belongs includes: Obtain the data to be scheduled and its transmission characteristics during transmission; Based on the transmission characteristics of the data to be scheduled and the transmission capacity information supported by the network slice, the congestion information of the network slice is determined.
9. The method according to claim 8, characterized in that, The method is applied to a forwarding device. Before determining the congestion information of the network slice based on the transmission characteristic information of the data to be scheduled and the transmission capacity information supported by the network slice, the method further includes: Receive transmission capability information supported by the network slice from the control device.
10. The method according to claim 8, characterized in that, The step of determining the congestion information of the network slice based on the transmission characteristic information of the data to be scheduled and the transmission capacity information supported by the network slice includes: If the transmission characteristics of the data to be scheduled match the transmission capacity information supported by the network slice, the congestion information of the network slice is determined to indicate that the network slice is not congested. If the transmission characteristics of the data to be scheduled do not match the transmission capacity information supported by the network slice, the congestion information of the network slice is determined to indicate that the network slice is congested.
11. The method according to claim 10, characterized in that, The transmission capability information supported by the network slice includes at least one of the following: the input rate of the network slice, the maximum supported burst traffic size, and the latency requirement information.
12. The method according to claim 11, characterized in that, The transmission characteristic information includes the rate information of the data to be scheduled.
13. The method according to claim 12, characterized in that, The matching of the transmission characteristic information of the data to be scheduled with the transmission capability information supported by the network slice includes: The rate information is less than or equal to the input rate of the network slice.
14. The method according to claim 12, characterized in that, The transmission characteristic information also includes at least one of the following: the burst traffic size of the data to be scheduled and the latency requirement information.
15. The method according to claim 14, characterized in that, The matching of the transmission characteristic information of the data to be scheduled with the transmission capability information supported by the network slice includes: The rate information is less than or equal to the input rate of the network slice, and the latency requirement information supported by the network slice can meet the latency requirement of the data to be scheduled; or, The rate information being less than or equal to the input rate of the network slice, the burst traffic size being less than or equal to the maximum supported burst traffic size, and the latency requirement information supported by the network slice can meet the latency requirements of the data to be scheduled.
16. A scheduling device, characterized in that, The scheduling device includes: a module or unit for implementing the method of any one of claims 1-15.
17. A scheduling device, characterized in that, include: Memory and processor; Memory and processor are coupled; The memory is used to store instructions that can be executed by the processor; When the processor executes the instructions, it performs the method as described in any one of claims 1 to 15.
18. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1 to 15.
19. A computer program product, characterized in that, The computer program product includes computer instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1 to 15.