WO2024114501A1 - 一种数据流调度方法及相关设备 - Google Patents
一种数据流调度方法及相关设备 Download PDFInfo
- Publication number
- WO2024114501A1 WO2024114501A1 PCT/CN2023/133602 CN2023133602W WO2024114501A1 WO 2024114501 A1 WO2024114501 A1 WO 2024114501A1 CN 2023133602 W CN2023133602 W CN 2023133602W WO 2024114501 A1 WO2024114501 A1 WO 2024114501A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- queue
- data stream
- time period
- data flow
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6295—Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
Definitions
- the present application relates to the field of computer technology, and in particular to a data flow scheduling method and related equipment.
- terminal devices such as mobile phones, tablets, and smart watches
- cross-device near-field distributed services such as file sharing and screen projection
- the same device may carry out multiple distributed services at the same time, and these services have different traffic characteristics and priorities.
- file sharing is characterized by continuous large traffic and is sensitive to bandwidth.
- Screen projection is characterized by periodic bursts of traffic, which is sensitive to latency and has a relatively higher priority.
- the present application provides a data stream scheduling method and related equipment, which schedules a second queue according to the transmission characteristics of a first data stream in a first queue to reduce the backlog of a second data stream called out by the second queue in an underlying queue, thereby ensuring low-latency transmission of the first data stream.
- the first aspect of the embodiment of the present application provides a data stream scheduling method, which can be applied to scenarios where delay-sensitive services and bandwidth-sensitive services are transmitted simultaneously.
- the method can be executed by a computer device, or by a component of a computer device (such as a processor, a chip, or a chip system, etc.).
- the method includes: obtaining a first data stream and a second data stream, the priority of the first data stream is higher than the priority of the second data stream; the first data stream is transmitted through a first queue, and the second data stream is transmitted through a second queue; obtaining the transmission characteristics of the first data stream in the first queue, the transmission characteristics are related to the time when the message in the first data stream arrives at the first queue; scheduling the second queue based on the transmission characteristics.
- the priority of the first data stream is higher than the priority of the second data stream. And in the process of scheduling the second queue, the transmission characteristics of the first data stream in the first queue are considered to reduce the backlog of the second data stream called out by the second queue in the underlying queue.
- the moment when the first data stream arrives at the first queue is taken into consideration when scheduling the second queue, and the interference of the second service data on the first data stream in the underlying queue can be reduced in advance, thereby ensuring low-latency transmission of the first data stream and the overall bandwidth utilization of the transmission of the first data stream and the second data stream, thereby providing a reasonable data scheduling method.
- the above-mentioned transmission characteristic is the transmission period of the first data stream; scheduling the second queue based on the transmission characteristic includes: determining a first time period based on the transmission period, the length of the first time period is less than the length of the transmission period, and the first time period is between the times when adjacent messages in the first data stream arrive at the first queue; scheduling the second queue to transmit the second data stream in the first time period.
- the first time period for the second queue to transmit the second data stream is determined by the transmission period of the first data stream. Since the duration of the first time period is less than the duration of the transmission period, and the first time period is located between the times when adjacent messages in the first data stream arrive at the first queue. That is, the difference between the end time of the first time period and the arrival time of the next message of the first data stream is greater than or equal to the first preset time period.
- the difference between the end time of the first time period and the arrival time of the next message of the first data stream can be understood as an emptying time period, which is used for the network card queue to discharge the messages of the second data stream, reduce the backlog of the messages of the second data stream in the network card queue, and reduce the impact of the messages of the second data stream on the transmission of the messages in the first data stream, thereby reducing the transmission delay of the first data stream in the bottom queue.
- the above steps also include: determining the start time of the second queue transmitting the second data stream based on the number of messages in the first queue; scheduling the second queue based on the transmission characteristics, including: scheduling the second queue based on the transmission characteristics and the start time.
- the start time of the second queue transmitting the second data stream is determined by the number of messages in the first queue, thereby reducing the subsequent backlog of the second data stream in the bottom queue and reducing the delay effect of the second data stream in the bottom queue on the first data stream.
- the above-mentioned start time is determined according to the number of packets of the first data flow in the first queue.
- the start time may be the time when the number of packets in the first data flow in the first queue is less than a threshold, or the time when the number of packets in the first data flow in the first queue is less than the threshold plus a period of time.
- the moment when the number of packets of the first data stream in the above-mentioned first queue is less than a preset threshold is the first moment
- the size of the first data stream includes at least one of the following: the total number of bytes, the number of packets, etc.
- the difference between the first moment and the start moment is positively correlated with the size of the first data stream.
- the size of the first data stream includes at least one of the following: the total number of bytes, the number of messages, etc. For example, the more the number of messages in the first data stream is, the longer the second preset time period is. This allows the bottom queue to have enough time to discharge the first data stream that has entered, thereby reducing the impact of the subsequent second data stream entering the bottom queue on the transmission of the first data stream.
- scheduling the second queue based on the transmission characteristics and the start time includes: when the second queue is in a sending cycle, scheduling the second queue to transmit the second data stream, and the sending cycle is determined according to the start time and the transmission characteristics.
- the sending period of the second queue is determined according to the start time and the transmission characteristics. Since the start time is used to determine t and the transmission characteristics are used to determine dt, the second queue can transmit the second data stream at [t, t+dt].
- the above steps also include: obtaining statistical information related to the network card driver, the statistical information including at least one of the following parameters within a preset time period: the quality of service QoS of the first data stream, the network card utilization rate, the queuing time of the driver queue, etc.; the driver queue is used to receive data from the first queue and the second queue, and the network card driver is connected to the computer device; based on the statistical information, the first time period is updated to obtain the second time period, the second time period is used to ensure that the parameters in the statistical information are within a preset range, and the second time period is used to schedule the second queue.
- the first time period for the second queue to transmit the second data stream can be dynamically adjusted by using the statistical information at the network card, so as to reversely adjust the transmission time period of the second queue according to the specific situation of the network card transmitting the data stream, thereby reducing the backlog of the second data stream in the network card queue and reducing the transmission delay of the first data stream.
- the first data flow belongs to a delay-sensitive service
- the second data flow belongs to a bandwidth-sensitive service
- the method is applicable to the scenario of simultaneously transmitting delay-sensitive services and bandwidth-sensitive services.
- the first queue and the second queue are located in the same computer device or different computer devices.
- the method is applicable both within a computer device and between different computer devices.
- the second aspect of the embodiment of the present application provides a computer device.
- the computer device can be applied to scenarios where delay-sensitive services and bandwidth-sensitive services are transmitted simultaneously.
- the computer device includes: an acquisition unit, used to acquire a first data stream and a second data stream, the priority of the first data stream is higher than the priority of the second data stream; the first data stream is transmitted through a first queue, and the second data stream is transmitted through a second queue; the acquisition unit is also used to acquire the transmission characteristics of the first data stream in the first queue, and the transmission characteristics are related to the time when the message in the first data stream arrives at the first queue; a scheduling unit is used to schedule the second queue based on the transmission characteristics.
- the above-mentioned transmission feature is a transmission period of the first data stream; a scheduling unit is specifically used to determine a first time period based on the transmission period, the length of the first time period is less than the length of the transmission period, and the first time period is between the times when adjacent messages in the first data stream arrive at the first queue; the scheduling unit is specifically used to schedule the second queue to transmit the second data stream in the first time period.
- the above-mentioned computer device also includes: a determination unit, which is also used to determine the start time of the second queue transmitting the second data stream based on the number of messages in the first queue; and a scheduling unit, which is specifically used to schedule the second queue based on the transmission characteristics and the start time.
- the above-mentioned start time is determined according to the number of packets of the first data flow in the first queue.
- the moment when the number of packets of the first data flow in the first queue is less than a preset threshold is the first moment
- the difference between the start moment and the first moment is positively correlated with the size of the first data flow
- the size of the first data flow is positively correlated with the size of the first data flow.
- the above-mentioned scheduling unit is specifically used to schedule the second queue to transmit the second data stream when the second queue is in a sending cycle, and the sending cycle is determined according to the start time and the transmission characteristics.
- the above-mentioned acquisition unit is also used to obtain statistical information related to the network card driver, the statistical information includes at least one of the following parameters within a preset time period: the quality of service QoS of the first data stream, the network card utilization rate, the queuing time of the driver queue, etc.; the driver queue is used to receive data from the first queue and the second queue, and the network card driver is connected to the computer device; the computer device also includes: an update unit, which is used to update the first time period based on the statistical information to obtain a second time period, the second time period is used to ensure that the parameters in the statistical information are within a preset range, and the second time period is used to schedule the second queue.
- the first data flow belongs to a delay-sensitive service
- the second data flow belongs to a bandwidth-sensitive service
- the first queue and the second queue are located in the same computer device or different computer devices.
- a third aspect of the present application provides a computer device, comprising: a processor, the processor is coupled to a memory, the memory is used to store programs or instructions, when the program or instructions are executed by the processor, the computer device implements the method in the above-mentioned first aspect or any possible implementation of the first aspect.
- a fourth aspect of the present application provides a computer-readable medium having a computer program or instruction stored thereon.
- the computer program or instruction When executed on a computer, the computer executes the method in the aforementioned first aspect or any possible implementation of the first aspect.
- a fifth aspect of the present application provides a computer program product.
- the computer program product When the computer program product is executed on a computer, it enables the computer to execute the method in the aforementioned first aspect or any possible implementation manner of the first aspect.
- a sixth aspect of an embodiment of the present application provides a chip system, which includes at least one processor for supporting a computer device to implement the functions involved in the above-mentioned first aspect or any possible implementation method of the first aspect.
- the chip system may also include a memory for storing program instructions and data necessary for the computer device.
- the chip system may be composed of a chip, or may include a chip and other discrete devices.
- the chip system also includes an interface circuit, which provides program instructions and/or data for at least one processor.
- the technical effects brought about by the second, third, fourth, fifth, and sixth aspects or any possible implementation methods thereof can refer to the technical effects brought about by the first aspect or different possible implementation methods of the first aspect, and will not be repeated here.
- the present application has the following advantages: by determining a first queue for transmitting a first data stream and a second queue for transmitting a second data stream, the priority of the first data stream is higher than the priority of the second data stream. And the second queue is scheduled based on the transmission characteristics of the first data stream in the first queue to reduce the backlog of the second data stream called out by the second queue in the underlying queue.
- the moment when the first data stream arrives at the first queue is taken into account when scheduling the second queue, and the interference of the second service data to the first data stream in the underlying queue can be reduced in advance, thereby ensuring low-latency transmission of the first data stream and the overall bandwidth utilization of the transmission of the first data stream and the second data stream, thereby providing a reasonable data scheduling method.
- FIG1A is a schematic diagram of an application scenario provided by an embodiment of the present application.
- FIG1B is a schematic diagram of another application scenario provided by an embodiment of the present application.
- FIG2 is a schematic diagram of different types of service scheduling provided by an embodiment of the present application.
- FIG3 is another schematic diagram of different types of service scheduling provided by an embodiment of the present application.
- FIG4 is a schematic diagram of a deployment scenario provided in an embodiment of the present application.
- FIG5 is another schematic diagram of a deployment scenario provided in an embodiment of the present application.
- FIG6 is a schematic diagram of a flow chart of a data flow scheduling method provided in an embodiment of the present application.
- FIG7 is a schematic diagram of a first data stream and a second data stream provided in an embodiment of the present application.
- FIG8 is another schematic diagram of a first data stream and a second data stream provided in an embodiment of the present application.
- FIG9 is another schematic diagram of a first data stream and a second data stream provided in an embodiment of the present application.
- FIG10 is a schematic diagram of scheduling rules for a first data stream and a second data stream provided in an embodiment of the present application
- FIG11 is a schematic diagram of a process of dynamically updating a first time period according to an embodiment of the present application.
- FIG12 is another schematic diagram of a process of dynamically updating a first time period provided in an embodiment of the present application.
- FIG13 is a schematic diagram of a flow chart of calculating the parameters of a traffic model in the deployment scenario shown in FIG5 ;
- FIG14 is a schematic diagram of a process for issuing scheduling rules in the deployment scenario shown in FIG5 ;
- FIG15 is a schematic diagram of a scheduling process of a high priority queue provided in an embodiment of the present application.
- FIG16 is a schematic diagram of a scheduling process of a low priority queue provided in an embodiment of the present application.
- FIG17 is a schematic diagram of a structure of a computer device provided in an embodiment of the present application.
- FIG. 18 is a schematic diagram of the structure of a computer device provided in an embodiment of the present application.
- Near-field distributed services refer to services that interact between multiple devices through near-field communications such as wireless fidelity (WiFi) local area networks, peer-to-peer (P2P) connections, and Bluetooth.
- WiFi wireless fidelity
- P2P peer-to-peer
- Bluetooth Bluetooth
- Multi-screen collaboration refers to a distributed technology that can achieve cross-system and cross-device collaboration.
- mobile phones are connected to computers and tablets to achieve resource sharing and collaborative operations.
- Delay-sensitive tasks refer to services that are sensitive to delay, generally referring to services with higher priority, or large amounts of continuous traffic in a short period of time (i.e., traffic bursts), or services where users have high latency requirements. Examples include screen projection, video/voice calls, game battles, distributed cameras, multi-screen collaboration, live broadcasts, news browsing, online shopping, electronic payments, and QR code scanning.
- Bandwidth-sensitive tasks refer to services that are sensitive to bandwidth, generally continuous high-traffic services (or throughput services), or services where users have low latency requirements and high transmission volume requirements, such as file sharing, upload/download, application updates, network disks, distributed files, video on demand, etc.
- delay-sensitive services and bandwidth-sensitive services can be descriptions of different services, or descriptions of the same service (i.e., a service can essentially be both a delay-sensitive service and a bandwidth-sensitive service). If it is a description of the same service, one category can be selected according to actual needs, and no specific limitation is made here.
- the data flow scheduling method provided in the embodiment of the present application is mainly applied to the scenario where a first computer device and a second computer device perform service transmission.
- the computer device is a terminal device and the service includes a delay-sensitive service and a bandwidth-sensitive service as an example.
- the computer device can also be a cloud-side device, such as a server, a virtual machine, etc., and the service can also be of other types, which are not specifically limited here.
- the terminal devices mentioned above may be mobile terminal devices, such as mobile phones (or “cellular” phones, mobile phones), computers and data cards, for example, portable, pocket-sized, handheld, computer-built-in or vehicle-mounted mobile devices, which exchange language and/or data with the wireless access network.
- mobile terminal devices such as mobile phones (or “cellular" phones, mobile phones), computers and data cards, for example, portable, pocket-sized, handheld, computer-built-in or vehicle-mounted mobile devices, which exchange language and/or data with the wireless access network.
- PCS personal communication service
- SIP session initiation protocol
- WLL wireless local loop
- PDAs personal digital assistants
- Pads tablet computers with wireless transceiver functions and other devices.
- Wireless terminal devices may also be referred to as systems, subscriber units, subscriber stations, mobile stations, mobile stations (MS), remote stations, access points (AP), remote terminal equipment (remote terminal), access terminal equipment (access terminal), user terminal equipment (user terminal), user agent, subscriber station (SS), customer premises equipment (CPE), terminal, user equipment (UE), mobile terminal (MT), drones, vehicles, car machines, smart terminals (such as smart TVs, smart watches, smart glasses, etc.), etc. Terminal devices may also be wearable devices.
- Equipment and next-generation communication systems for example, terminal equipment in a 5G communication system or terminal equipment in a future evolved public land mobile network (PLMN) or terminal equipment in other communication systems that will be developed in the next step of the 5G communication system.
- PLMN public land mobile network
- the number of the second computer device can be one or more. The following description is made by taking the second computer device as one terminal device and two terminal devices as examples.
- FIG1A a schematic diagram of an application scenario provided by an embodiment of the present application is shown in FIG1A.
- the application scenario includes a first terminal device 101, a second terminal device 102, and a third terminal device 103.
- the first terminal device 101 and the second terminal device 102 transmit delay-sensitive services.
- the first terminal device 101 and the third terminal device 103 transmit bandwidth-sensitive services. That is, the first terminal device 102 transmits different service data to multiple terminal devices (i.e., the second terminal device 102 and the third terminal device 103 in FIG1A).
- FIG1B a schematic diagram of an application scenario provided by an embodiment of the present application is shown in FIG1B .
- the application scenario includes a first terminal device 101 and a second terminal device 102.
- the first terminal device 101 and the second terminal device 102 transmit delay-sensitive services and bandwidth-sensitive services. That is, the first terminal device 102 transmits multiple service data to the same terminal device (i.e., the second terminal device 102 in FIG1B ).
- the commonly used data flow scheduling method is shown in Figure 3.
- delay-sensitive high-priority services and low-priority high-throughput services or bandwidth-sensitive low-priority services
- the messages of the high-priority services enter the high-priority queue
- the messages of the low-priority services enter the low-priority queue.
- the absolute priority scheduling rule is adopted to make the messages of the high-priority services go out of the queue first, reducing the queuing delay of the high-priority services. Only when there are no messages in the high-priority queue will the messages in the low-priority queue be scheduled for sending.
- the queues involved in FIG3 are only in the traffic scheduling shown in FIG4 , that is, the scheduling method shown in FIG3 is only in the queueing discipline (qdisc).
- qdisc queueing discipline
- the messages of the two services may enter the same queue or be separated in different queues, but the high-priority message may not have an absolute priority. In this way, the high-priority message that is preferentially scheduled by qdisc will still be affected by the low-priority message that is already queued in the bottom queue.
- an embodiment of the present application provides a data stream scheduling method which is mainly applied to how the sending end (i.e., the first terminal device 101) schedules the data stream corresponding to the service when transmitting the service to the second terminal device 102 and the third terminal device 103. Specifically, by determining a first queue for transmitting the first data stream and a second queue for transmitting the second data stream, the priority of the first data stream is higher than the priority of the second data stream. And the second queue is scheduled based on the transmission characteristics of the first data stream in the first queue to reduce the backlog of the second data stream called out by the second queue in the underlying queue.
- the moment when the first data stream arrives at the first queue is taken into account, and the interference of the second service data to the first data stream in the underlying queue can be reduced in advance, thereby ensuring the low-latency transmission of the first data stream and the overall bandwidth utilization of the transmission of the first data stream and the second data stream, thereby providing a reasonable data scheduling method.
- the deployment scenario is improved on the basis of FIG. 4 to reduce the increase in transmission delay of high priority messages caused by the backlog of low priority messages in the bottom queue.
- the data flow scheduling method provided in the embodiment of the present application can be included in the operating system software of the computer device and deployed in the program code on the computer device hardware.
- the computer device includes a user plane, a kernel, and a network card connected to the computer device.
- the transmission component in the user plane provides a transmission interface for App (such as App1, App2) and can run in the application process.
- the transmission component encapsulates the transport layer socket and provides a transmission interface (for example, a file transfer interface and a stream transmission interface, etc.) for the data flow of the App.
- the data stream from the App (for example, the first data stream from App1 and the second data stream from App2) is statistically processed by the traffic model statistics module to obtain statistical results (for example, data stream service type identification, five-tuple of messages in the data stream, frame interval, frame interval standard deviation, average frame size, etc.).
- the scheduling engine module on the user side determines whether to enable the inter-queue joint scheduling rule (i.e., whether to schedule the second queue according to the transmission characteristics of the first data stream in the first queue) based on the statistical results.
- the scheduling engine After the scheduling engine determines to enable the inter-queue joint scheduling rule, it sends the priority information of the data stream to the traffic scheduling module (for example, the priority information is used to indicate that the priority of the first data stream is higher than the priority of the second data stream, or to indicate that the first queue is a high priority queue and the second queue is a low priority queue.) and configuration information, the configuration information includes the start time t (or understood as the start time of the second queue sending window) and the time period dt for the second queue to transmit the second data stream.
- the traffic scheduling module schedules the second queue to open the sending window in the [t, t+dt] time period to transmit the second data stream.
- the start time t is related to the number of messages of the first data stream in the first queue.
- the time period dt is related to the transmission characteristics of the first data flow (for example, the transmission period of the first data flow, etc.), and the transmission characteristics can be used to determine the time when the message in the first data flow arrives at the first queue.
- the scheduling engine module can also call the system interface to obtain the statistical information of the network card driver (for example, the round-trip delay of the first data stream, the jitter of the first data stream, the network card rate, the number of bytes sent, the network card utilization rate, the queuing time of the driver queue, etc.), and update the time period dt according to the statistical information, and use the updated time period dt to schedule the second queue.
- the statistical information of the network card driver for example, the round-trip delay of the first data stream, the jitter of the first data stream, the network card rate, the number of bytes sent, the network card utilization rate, the queuing time of the driver queue, etc.
- the sending window of the priority queue (i.e., the second queue) is dynamic and depends on the sending status of the high-priority queue.
- the sending switch of the low-priority queue is turned on within a period of time after the number of messages in the high-priority queue is less than the threshold, which can reduce the average delay of the high-priority transmission of the first data stream and reduce the jamming and frame drops of the first data stream.
- the time when the first data stream arrives at the first queue is taken into consideration when scheduling the second queue, which can reduce the interference of the second service data on the first data stream in the underlying queue in advance, thereby ensuring the low-latency transmission of the first data stream and the overall bandwidth utilization of the transmission of the first data stream and the second data stream, thereby providing a reasonable data scheduling method.
- the data stream scheduling method provided by the embodiment of the present application is described below.
- the method can be performed by a computer device, or by a component of the computer device (such as a processor, a chip, or a chip system, etc.).
- the embodiment of the present application is only described exemplarily by taking the computer device as a terminal device as an example. It can be understood that the computer device can also be a server, etc., which is not specifically limited here.
- the data in the data stream involved in the embodiment of the present application can refer to text, images, audio and video, etc., which are not specifically limited here.
- Fig. 6 is a flowchart of a data stream scheduling method provided in an embodiment of the present application, which can be applied in the deployment scenario shown in Fig. 5 above, and the method can include steps 601 to 603. Steps 601 to 603 are described in detail below.
- Step 601 obtaining a first data stream and a second data stream.
- the computer device to obtain the first data stream and the second data stream, which may be uploaded by the user, obtained from an application (Application, App), or selected from a database, etc., which are not limited here.
- the priority of the first data stream is higher than the priority of the second data stream.
- the service types to which the first data stream and the second data stream belong may be the same or different. In the embodiment of the present application, only the example that the services to which the first data stream and the second data stream belong are different is used for exemplary description.
- the service type to which the data flow belongs can be determined according to the interface number and traffic identification characteristics of the data flow.
- the traffic identification characteristics include at least one of the following: network card identification, source Internet Protocol (IP) address, destination IP address, source port, destination port, type of service (TOS) field, differentiated services code point (DSCP) field, etc.
- the DSCP field values corresponding to the first data stream (stream transmission) and the second data stream (file transmission) are different.
- the DSCP value of the data stream can also be used to distinguish high-priority messages from low-priority messages.
- the first data stream belongs to a delay-sensitive service, such as screen casting, Bluetooth music, video/voice calls, game battles, distributed cameras, multi-screen collaboration, live broadcast, news browsing, online shopping, electronic payment, QR code scanning, etc.
- the second data stream belongs to a bandwidth-sensitive service, such as file sharing, data upload/download, application update, network disk, distributed files, video on demand, etc.
- delay-sensitive services and bandwidth-sensitive services are not limited here.
- the first data stream is transmitted through the first queue
- the second data stream is transmitted through the second queue.
- the computer device determines the first queue and the second queue. It can be determined according to the interface number of the data stream (for example, the number corresponding to the transmission interface provided by the transmission component for different apps) to determine the queue for transmitting the data stream. It can also be determined according to the identifier carried by the data stream.
- the queue for transmitting the data flow may also be determined according to a special field of a message in the data flow, and the specific details are not limited here.
- the data in the first queue and the second queue are transmitted outward through the bottom queue (such as the network card queue, etc.).
- the computer device is preset with a first mapping table as shown in Table 1, and the first mapping table is used to indicate the association between the interface number and the queue.
- the user plane in the computer device receives the first data stream from App1 through the 1# interface, and receives the second data stream from App1 through the 2# interface.
- the computer device determines that the queue corresponding to the 1# interface is the first queue through the first mapping table, thereby determining that the queue for transmitting the first data stream is the first queue.
- the queue for transmitting the second data stream is determined to be the second queue.
- step 602 is after step 601.
- the queue for transmitting the first data stream can be determined based on the relevant information of the first data stream (such as the identifier of the data stream or the special field of the message in the data stream, etc.).
- step 602 is before step 601.
- the queue can be determined based on the interface number, that is, the queue for transmitting the data stream can be directly determined based on the interface number without identifying the data stream transmitted by the interface number.
- Step 602 Acquire the transmission characteristics of the first data flow in the first queue.
- the computer device After the computer device determines the first queue, it can obtain the transmission characteristics of the first data stream in the first queue.
- the transmission characteristics are related to the time when the message in the first data stream arrives at the first queue. It can also be understood that the transmission characteristics can determine the time when the message in the first data stream arrives at the first queue.
- the transmission characteristic may be that of adjacent messages in the first data stream (for example, message interval, etc.), or may be that of N adjacent messages in the first data stream, where N is a positive integer greater than 1 and is not specifically limited here.
- the transmission characteristics may also include the time regularity of each message in the data stream arriving at the first queue (for example, the message interval between the nth message and the n-1th message in the first data stream is 20 milliseconds, and the message interval between the nth message and the n+1th message is 5 milliseconds).
- Step 603 scheduling the second queue based on the transmission characteristics.
- the computer device After the computer device obtains the transmission characteristics, it can schedule the second queue based on the transmission characteristics.
- the computer device may first determine a first time period. And schedule the second queue to transmit the second data stream within the first time period.
- the duration of the first time period is less than the duration of the transmission period, and the first time period is between the times when adjacent messages in the first data stream arrive at the first queue.
- the first time period may be understood as dt shown in the aforementioned FIG. 5.
- the difference between the end time of the first time period and the arrival time of the next message of the first data flow is greater than or equal to the first preset time period.
- the difference between the end time of the first time period and the arrival time of the next message of the first data flow can be understood as an emptying time period, which is used for the network card queue to discharge the messages of the second data flow, reduce the backlog of the messages of the second data flow in the network card queue, and reduce the transmission of the messages of the second data flow to the messages in the first data flow, thereby reducing the transmission delay of the first data flow in the bottom queue.
- the bottom queue may be a network card queue, which receives the data stream transmitted from the first queue and the second queue, and transmits the data stream to other devices communicating with the computer device.
- the computer device can also obtain a start time, which is the time when the second queue starts to transmit the second data stream.
- the start time can be a preset time, or a time determined based on the number of messages in the first queue, etc., which is not specifically limited here.
- the time when the number of messages in the first queue is less than the preset threshold (i.e., the first time) and the start time of the second queue transmitting the second data stream differ by a second preset time period.
- the second preset time period is 0, the time when the number of messages in the first queue is less than the preset threshold is the start time of the second queue transmitting the second data stream.
- the second preset time period is non-0, the time when the number of messages in the first queue is less than the preset threshold plus the time of the second preset time period is the start time of the second queue transmitting the second data stream.
- the second queue is scheduled to transmit the second data stream.
- the sending cycle is based on the start time
- the transmission period can also be understood as the aforementioned [t, t+dt].
- the difference between the first moment and the start moment is positively correlated with the size of the first data stream.
- the size of the first data stream includes at least one of the following: the total number of bytes, the number of messages, etc. For example, the more messages in the first data stream, the longer the second preset time period. This allows the bottom queue to have enough time to discharge the first data stream that has entered, thereby reducing the impact of the second data stream entering the bottom queue on the transmission of the first data stream.
- Example 1 the transmission process of the first data stream and the second data stream is shown in Figure 7.
- the horizontal axis represents the time
- the vertical axis represents the amount of data (for example, the number of messages or the number of bytes, etc.).
- Each vertical square is used to represent a message or multiple messages.
- the transmission period of the first data stream is 16 milliseconds (ms), and the first time period is 8ms (less than the transmission period of the first data stream).
- the start time of the first time period is the moment when the first queue completes the transmission of the first data stream message (that is, the second preset time period is 0ms).
- the end time of the first time period is 4ms before the next transmission period of the first data stream (that is, the first preset time period is 4ms).
- the first preset time period can be understood as the aforementioned emptying time period.
- Example 2 the transmission process of the first data stream and the second data stream is shown in Figure 8.
- the horizontal axis represents the time
- the vertical axis represents the data volume (for example, the number of messages or the number of bytes, etc.).
- the transmission period of the first data stream is 16 milliseconds (ms)
- the first time period is 8ms (less than the transmission period of the first data stream).
- the start time of the first time period is the time when the first queue completes the transmission of the first data stream message plus the time of the second preset time period (that is, the second preset time period is 2ms).
- the end time of the first time period is 2ms before the next transmission period of the first data stream (that is, the first preset time period is 2ms).
- the first preset time period can be understood as the aforementioned emptying time period.
- the difference between the above example 1 and example 2 is whether, within a certain period, the second queue is immediately scheduled to transmit the second data stream after the first queue completes the transmission of the first data stream.
- the second queue is immediately scheduled to transmit the second data stream after the first queue completes the transmission of the first data stream.
- the second queue is scheduled to transmit the second data stream after an interval of 2ms (i.e., the second preset time period) after the first queue completes the transmission of the first data stream.
- FIG. 7 and FIG. 8 are only examples.
- the transmission process of the first data stream and the second data stream may have other situations.
- the first queue may also be transmitting the message of the first data stream, that is, the first queue and the second queue may have an overlapping time period for transmitting data streams.
- the specific transmission process of the first data stream and the second data stream is not limited here.
- the first queue is a priority queue
- the second queue is a low priority queue.
- the first queue has two states, namely, a busy state and an idle state.
- the busy state indicates that there are messages of the first data stream in the first queue that need to be transmitted.
- the idle state indicates that there are no messages of the first data stream in the first queue or the number of messages of the first data stream in the first queue is less than a preset threshold.
- the second queue has two states, namely, a sendable state and an unsendable state.
- the sendable state indicates that the second queue is within the sending cycle [t, t+dt].
- the unsendable state indicates that the second queue is not within the sending cycle.
- the first queue will enter the idle state after each message is sent.
- a new message of the first data stream is detected to come in, it will be switched to the busy state, and a signal will be sent to the second queue, and the second queue will open the sending window until the end of the first time period.
- the status of the first queue and the second queue in FIG10 is only an example. In actual applications, the status of the first queue and the second queue may have other situations.
- the status of the second queue may also include an unsendable state, a speed-limited state, a full-speed state, etc.
- the speed-limited state indicates that the speed at which the second queue transmits messages is less than a preset speed.
- the full-speed state indicates that the speed at which the second queue transmits messages is the maximum speed supported by the hardware, etc.
- the high priority message when the queueing discipline (qdisc) is scheduled, the high priority message can be dequeued before the message backlogged in the low priority queue, which can reduce the impact of the low priority service on the high priority to a certain extent.
- the first time period for the second queue to transmit the second data stream is determined according to the transmission characteristics of the first data stream. The duration of the first time period is less than the duration of the transmission cycle, and the first time period is between the moments when adjacent messages in the first data stream arrive at the first queue.
- the difference between the end time of the first time period and the arrival time of the next message of the first data stream can be understood as an emptying time period, which is used for the network card queue to discharge the message of the second data stream, reduce the backlog of the message of the second data stream in the network card queue, and reduce the transmission of the message of the second data stream to the message in the first data stream, thereby reducing the transmission delay of the first data stream in the bottom queue.
- the overall bandwidth utilization rate of the transmission of the first data stream and the second data stream thereby providing a reasonable data scheduling method.
- the moment when the second queue starts to transmit the second data stream can be determined based on the number of messages in the first queue, thereby reducing the interference of the second data stream in the bottom queue to the first data stream.
- first queue and the second queue in the embodiment of the present application may be located in the same computer device or in different computer devices.
- the first time period for the second queue to transmit the second data stream can also be dynamically adjusted by the statistical information at the network card.
- the specific process is shown in Figure 11.
- the dynamic adjustment process includes step 1101 and step 1102, which are described below respectively:
- Step 1101 obtaining statistical information related to the network card driver.
- the computer device can obtain statistical information related to the network card driver from the network card driver.
- the statistical information includes at least one of the following parameters within a third preset time period: the quality of service (QoS) of the first data flow, the network card utilization rate, the queuing time of the driver queue, the average sending rate of the network card queue, the average queuing time, etc.
- QoS quality of service
- the driver queue is used to receive data from the first queue and the second queue, and the network card driver is connected to the computer device.
- the queuing time refers to the queuing time of the message in the driver queue
- the sending rate is the rate at which the driver queue sends the message.
- the QoS of the first data stream may include at least one of the following: round-trip delay of the message (i.e. the difference between the time when the message is sent and the time when the response message corresponding to the message is received), delay jitter (jitter of round-trip delay of different messages), etc.
- the acquisition method of at least one of the above parameters can be directly acquired or calculated by acquiring other information.
- other information may include network card rate and number of bytes sent.
- the network card utilization rate can be calculated by the network card rate and the number of bytes sent. Specifically, the number of bytes sent is divided by the value obtained by the third preset time period, and then divided by the network card rate to obtain the network card utilization rate.
- the specific method for obtaining the above statistical information is not limited here.
- Step 1102 Update the first time period based on the statistical information to obtain a second time period, where the second time period is used to schedule the second queue.
- the first time period is updated based on the statistical information, and the second time period is used to schedule the second queue.
- the second time period is used to ensure that the parameters in the statistical information are within a preset range.
- the parameter is the network card utilization rate, and the preset range may be between 90% and 95%.
- the parameter is the average queue length of the driver queue, and the preset range may be between 100 and 150 IP packets.
- the parameter is the average sending rate, and the preset range may be between 80 megabits per second (MB/s) and 90 MB/s.
- This step can be understood as an adjustment of dt in the aforementioned embodiment. For example, if the network card utilization, the average queue length of the driver queue, or the average sending rate is higher than the target range, dt is reduced, otherwise it is increased.
- the first time period for the second queue to transmit the second data stream can be dynamically adjusted by the statistical information at the network card, so as to reversely adjust the transmission time period of the second queue according to the specific situation of the network card transmitting the data stream, thereby reducing the backlog of the second data stream in the network card queue and reducing the transmission delay of the first data stream.
- the embodiment of the present application also provides another specific process for updating the first time period. As shown in FIG12 , the process is implemented after the scheduling strategy is executed, and the process includes steps 1201 to 1206 .
- Step 1201 The scheduling engine module periodically obtains the channel load from the network card driver.
- the scheduling engine module periodically obtains the channel load from the network card driver.
- the channel load is used to indicate the proportion of the busy time of the corresponding channel of the network card driver to the total working time.
- Step 1202 determine whether the channel load is greater than a first preset value, if so, execute step 1203. If not, execute step 1205.
- the scheduling engine module determines whether the channel load is greater than the first preset value, and if so, executes step 1203. If not, executes step 1205.
- Step 1203 determine whether the channel load is less than a second preset value, if so, execute step 1206. If not, execute step 1204.
- the scheduling engine module determines whether the channel load is greater than the first preset value, it determines whether the channel load is less than the second preset value, and if so, executes step 1206. If not, executes step 1204.
- the second preset value is greater than or equal to the first preset value.
- Step 1202 and step 1203 can also be understood as determining whether the channel load obtained by the scheduling engine module is between the first preset value and the second preset value (the second preset value is greater than the first preset value).
- the first preset value and the second preset value can also be understood as a preset range.
- Step 1204 increase the size of the openable time window, and the scheduling engine module updates the strategy and sends it to the traffic scheduling module.
- the open time window of the low priority queue is too short and the open time window size needs to be increased. That is, dt is increased until the channel load is within the preset range. The adjusted dt is sent to the traffic scheduling module.
- Step 1205 reduce the size of the open time window, and the scheduling engine module updates the strategy and sends it to the traffic scheduling module.
- the openable time window of the low priority queue is too long, and the openable time window size needs to be reduced. That is, dt is reduced until the channel load is within the preset range. The adjusted dt is sent to the traffic scheduling module.
- Step 1206 determine whether the service is finished, if so, end the process. If not, re-execute steps 1201 to 1206.
- the traffic scheduling module determines whether the service data transmission is completed. If so, the process of updating the time window is terminated. If not, steps 1201 to 1206 are repeated until a preset condition is met.
- the preset condition includes at least one of the following: the number of times the time window is updated reaches a preset value, the service transmission is completed, etc.
- the network card driver adjusts the openable time window of the low-priority queue in real time according to the ratio of the busy time of the corresponding channel to the total working time and the preset range, thereby reducing in advance the interference of the second business data on the first data stream in the underlying queue, thereby ensuring the low-latency transmission of the first data stream and the overall bandwidth utilization of the transmission of the first data stream and the second data stream, thereby providing a reasonable data scheduling method.
- a statistical process of the traffic model parameters in the deployment scenario shown in Fig. 5 is performed. As shown in Fig. 13 , the process includes steps 1301 to 1306 .
- Step 1301 the file sharing service initializes the file transmission interface, and the multi-screen collaboration service initializes the stream transmission interface.
- Step 1302 The upper layer service calls the sending interface of the transmission component to send data.
- Step 1301 and step 1302 can be understood as being executed when the upper-layer business uses the transmission component to send business data.
- the transmission component encapsulates the transport layer socket and provides a file transmission interface and a stream transmission interface for file sharing and multi-screen collaboration, respectively.
- the transmission interface is initialized for file sharing and multi-screen collaboration services, and the transmission interface of the transmission component is called to send the corresponding business data.
- Step 1303 determine whether the data is stream transmission. If yes, execute step 1304. If no, execute step 1305.
- the traffic scheduling module determines whether the service data from the transmission component sending interface is stream data. If the service data is stream data, execute step 1304. If the service data is not stream data, execute step 1305.
- step 1302 in the embodiment shown in Fig. 13 it can be determined whether the interface transmits stream data according to whether the interface is a file transmission interface or a stream transmission interface, that is, data transmitted using the stream transmission interface is stream data.
- Step 1304 The traffic model statistics module counts parameters such as frame interval, frame interval jitter, and average frame size.
- the traffic model statistics module performs statistics on the service data to obtain statistical results, for example, parameters such as frame interval, frame interval jitter (such as frame interval standard deviation), and average frame size.
- Step 1305 The transmission component synchronizes the service type, DSTP field value, and traffic statistics parameters to the scheduling engine module.
- the transmission component determines the service type, DSTP field value and traffic statistics parameters of the service data, and synchronizes them to the scheduling engine module, so that the scheduling engine module can input the service data into the corresponding queue for transmission.
- file transfer and stream transfer use different dscp field values.
- DSTP is used to distinguish traffic of different types of services.
- Other fields such as network card identification, source IP address, destination IP address, source port, destination port, type of service (TOS) field, and differentiated services code point (DSCP) can also be used to distinguish traffic of different types of services.
- TOS type of service
- DSCP differentiated services code point
- Step 1306 determine whether the service is terminated. If so, the process of calculating the traffic model parameters is terminated.
- the traffic scheduling module determines whether the service data transmission is completed. If so, the process of counting traffic model parameters is terminated. If not, steps 1301 to 1306 are repeated until a preset condition is met.
- the preset condition includes at least one of the following: the duration of counting traffic model parameters reaches a preset duration, the amount of data of the counting traffic model parameters reaches a preset value, the service transmission is completed, etc.
- a process for collecting information in the embodiments shown in the above-mentioned Figures 5 to 12 is provided.
- the frame interval of the multi-screen collaboration service is counted to determine the first time period
- the frame interval jitter is counted to determine whether the scheduling condition is met
- the average frame size is counted to determine the second preset time period, thereby determining the time interval of the schedulable file sharing service traffic, thereby reducing the impact of the file sharing service on the multi-screen collaboration service, and reducing the delay and jamming of the multi-screen collaboration service.
- step 604 in the embodiment shown in FIG. 6 includes steps 1401 to 1404 .
- Step 1401 The scheduling engine module obtains the service type and service statistics information of the service data.
- the scheduling engine module obtains the service type and service statistics of the service data from the transmission component.
- Step 1402 determine whether throughput and periodic burst flow exist at the same time. If yes, execute step 1403, if not, do not issue the scheduling rule.
- the scheduling engine module determines whether there are both throughput and periodic burst flows (or understood as both delay-sensitive services and bandwidth-sensitive services). If yes, execute step 1403. If not, do not issue scheduling rules.
- Step 1403 determine whether the scheduling condition is met based on the service statistical information. If yes, execute step 1404; if not, do not issue the scheduling rule.
- the scheduling engine module determines whether the scheduling condition is met based on the service statistics information.
- the scheduling condition is that the delay-sensitive service has a nearly periodic burst feature.
- Step 1402 and step 1403 can be understood as: if there are both delay-sensitive services and throughput services, and the delay-sensitive services have approximately periodic burst characteristics, then step 1404 is executed. If not, the scheduling rule is not issued.
- the scheduling rule includes a scheduling strategy and a preliminary test time window size.
- Step 1404 The scheduling engine module sends a scheduling policy and an initial time window size to the traffic scheduling module.
- the scheduling engine module determines that the scheduling conditions are met, the scheduling engine module sends a scheduling strategy and an initial time window size to the traffic scheduling module.
- the scheduling strategy is used to determine the start time of the low priority queue (i.e., the second queue) transmitting the bandwidth sensitive service (i.e., the second data stream).
- the initial time window size can be understood as the first time period in the embodiment shown in FIG. 6 above.
- the traffic scheduling module schedules the low priority queue according to the scheduling strategy and initial time window size issued by the scheduling engine module. Specifically, the traffic scheduling module first determines the transmission time period of the low priority queue according to the start time and the first time period, and schedules the low priority queue to transmit bandwidth-sensitive services within the transmission time period.
- step 604 in the embodiment shown in FIG. 6 is executed only when the scheduling condition is met. This reduces the defect of reducing the overall transmission bandwidth of the service data due to continuous execution of step 604.
- the scheduling process of the high priority queue is shown in FIG. 15 , and the process includes steps 1501 to 1506 .
- Step 1501 determine whether there is a message to be sent in the queue. If yes, execute step 1502. If no, execute step 1505.
- the traffic scheduling module determines whether there is a message to be sent in the high priority queue. If so, execute step 1502. If not, execute step 1505.
- Step 1502 sending a message.
- the message is sent.
- Step 1503 determine whether the high priority queue is in an idle state. If yes, execute step 1504. If no, return to step 1501.
- the traffic scheduling module determines whether the high priority queue is in an idle state. If so, execute step 1504. If not, return to step 1501.
- the idle state indicates that there is no message in the high priority queue, or the number of messages is less than a threshold.
- Step 1504 set the high priority queue to a busy state, and turn on the sending switch of the low priority queue.
- the traffic scheduling module determines that the high priority queue is in an idle state, the high priority queue is set to a busy state, and the low priority queue sending switch is turned on.
- the sending switch can be understood as the start time of the second queue in the embodiment shown in FIG. 6 above.
- Step 1505 determine whether the burst is over. If so, execute step 1506. If not, return to step 1501.
- the traffic scheduling module determines whether the burst has ended. If so, execute step 1506. If not, return to step 1501. That is, the traffic scheduling module determines whether the burst of the first data stream has ended.
- the burst of the first data stream there are multiple ways to determine whether the burst of the first data stream has ended. It can be by adding special processing to the last message of the first data stream (for example, sending a message of length 0 at the end), or it can be by counting the arrival time of the messages, and when there is a period of time (for example, 1ms) when no new messages arrive, the burst is considered to be over. It can also be based on the identification field indicating the last message in the message, etc., which is not limited here.
- Step 1506 setting the high priority queue to an idle state.
- the traffic scheduling module determines that the burst of the first data flow ends, the high priority queue is set to an idle state.
- the scheduling process of the low priority queue is shown in FIG. 16 , and the process includes steps 1601 to 1605 .
- Step 1601 determine whether there is a message to be sent in the queue. If yes, go to step 1602. If no, go back to step 1601.
- the traffic scheduling module determines whether there is a message to be sent in the low priority queue. If so, execute step 1602. If not, return to step 1601.
- Step 1602 determine whether the low priority queue sending switch is on. If yes, execute step 1603. If not, return to step 1601.
- the traffic scheduling module determines whether there is a message to be sent in the low priority queue, it determines whether the low priority queue sending switch is turned on. If so, execute step 1603. If not, return to step 1601.
- Step 1603 determine whether the low priority queue sending switch duration exceeds the sending threshold. If yes, execute step 1605. If no, execute step 1604.
- the traffic scheduling module determines whether the low priority queue sending switch is turned on, it determines whether the low priority queue sending switch duration exceeds the sending threshold. If yes, execute step 1605. If no, execute step 1604.
- the sending threshold may be the first time period in the embodiment shown in FIG. 6 , or the second time period in the embodiment shown in FIG. 11 , and is not specifically limited here.
- Step 1604 sending a message.
- the traffic scheduling module determines that the low priority queue sending switch duration does not exceed the sending threshold (or understood as the low priority queue is within the transmission time period), the low priority queue is scheduled to send the message.
- Step 1605 turn off the low priority queue sending switch.
- the traffic scheduling module determines that the low priority queue sending switch duration has exceeded the sending threshold (or understood as the low priority queue is not in the transmission time period)
- the low priority queue sending switch is turned off, that is, the low priority queue is scheduled not to send messages.
- Figures 15 and 16 provide a linkage scheduling method for a high-priority queue and a low-priority queue. That is, whether the low-priority queue can send data is determined by the state of its sending switch.
- the sending switch is turned on after receiving the signal of the high-priority queue, and is closed after the first time period dynamically issued by the upper layer through rules.
- the start time of the low-priority queue transmission service is determined by whether there is a message in the high-priority queue and the state of the high-priority queue.
- the low-priority service can be emptied as much as possible in the bottom queue, thereby reducing the transmission delay of the high-priority service.
- the model processing method in the embodiment of the present application is described above, and the computer device in the embodiment of the present application is described below.
- the computer device can be a terminal device or a server, etc., which is not specifically limited here.
- an embodiment of a computer device in the embodiment of the present application includes:
- the acquisition unit 1701 is used to acquire a first data stream and a second data stream, wherein the priority of the first data stream is higher than the priority of the second data stream; the first data stream is transmitted through a first queue, and the second data stream is transmitted through a second queue;
- the acquiring unit 1701 is further configured to acquire a transmission characteristic of the first data flow in the first queue, where the transmission characteristic is related to a time when a message in the first data flow arrives at the first queue;
- the scheduling unit 1702 is used to schedule the second queue based on the transmission characteristics.
- the acquisition unit 1701 is further used to acquire statistical information related to the network card driver, the statistical information including at least one of the following parameters within a preset time period: the quality of service QoS of the first data stream, the network card utilization rate, and the queuing time of the driver queue; the driver queue is used to receive data from the first queue and the second queue, and the network card driver is connected to the computer device;
- the computer device further includes: a determining unit 1703, further configured to determine a start time for the second queue to transmit the second data stream based on the number of messages in the first queue;
- the computer device further includes: an updating unit 1704, configured to update the first time period based on the statistical information to obtain a second time period, wherein the second time period is used to ensure that the parameters in the statistical information are within a preset range, and the second time period is used to schedule the second queue.
- an updating unit 1704 configured to update the first time period based on the statistical information to obtain a second time period, wherein the second time period is used to ensure that the parameters in the statistical information are within a preset range, and the second time period is used to schedule the second queue.
- the determining unit 1703 determines a first queue for transmitting a first data stream and a second queue for transmitting a second data stream, and the priority of the first data stream is higher than the priority of the second data stream.
- the scheduling unit 1702 considers the first queue in the process of scheduling the second queue. The transmission characteristics of the first data stream are used to reduce the backlog of the second data stream called out by the second queue in the bottom queue.
- the scheduling unit 1702 takes into account the time when the first data stream arrives at the first queue when scheduling the second queue, and can reduce the interference of the second service data on the first data stream in the bottom queue in advance, thereby ensuring the low-latency transmission of the first data stream and the overall bandwidth utilization of the transmission of the first data stream and the second data stream, thereby providing a reasonable data scheduling method.
- the computer device may include a processor 1801, a memory 1802, and a communication port 1803.
- the processor 1801, the memory 1802, and the communication port 1803 are interconnected via a line.
- the memory 1802 stores program instructions and data.
- the memory 1802 stores program instructions and data corresponding to the steps executed by the computer device in the corresponding implementation modes shown in the aforementioned FIGS. 1A to 16 .
- the processor 1801 is used to execute the steps performed by a computer device as shown in any of the embodiments shown in Figures 1A to 16 above.
- the communication port 1803 can be used to receive and send data, and to execute the steps related to acquisition, sending, and receiving in any of the embodiments shown in FIG. 1A to FIG. 16 .
- the computer device may include more or fewer components than those in FIG. 18 , and this application is merely an illustrative description and is not intended to be limiting.
- An embodiment of the present application also provides a computer-readable storage medium storing one or more computer-executable instructions.
- the processor executes a method as a possible implementation method of the computer device in the aforementioned embodiment.
- An embodiment of the present application also provides a computer program product (or computer program) storing one or more computers.
- the processor executes the method of the possible implementation mode of the above-mentioned computer device.
- the embodiment of the present application also provides a chip system, which includes at least one processor for supporting the functions involved in the possible implementation of the above-mentioned computer device.
- the chip system also includes an interface circuit, which provides program instructions and/or data for at least one processor.
- the chip system may also include a memory, which is used to store the necessary program instructions and data for the computer device.
- the chip system can be composed of chips, or it can include chips and other discrete devices.
- the disclosed systems, devices and methods can be implemented in other ways.
- the device embodiments described above are only schematic.
- the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed.
- Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.
- the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
- each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.
- the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium.
- the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application.
- the aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, read-only memory), random access memory (RAM, random access memory), disk or optical disk and other media that can store program code.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims (21)
- 一种数据流调度方法,其特征在于,所述方法应用于计算机设备,所述方法包括:获取第一数据流与第二数据流,所述第一数据流的优先级高于所述第二数据流的优先级,所述第一数据流通过第一队列传输,所述第二数据流通过第二队列传输;获取所述第一队列中所述第一数据流的传输特征,所述传输特征与所述第一数据流中报文到达所述第一队列的时刻相关;基于所述传输特征调度所述第二队列。
- 根据权利要求1所述的方法,其特征在于,所述传输特征为所述第一数据流的传输周期;所述基于所述传输特征调度所述第二队列,包括:基于所述传输周期确定第一时间段,所述第一时间段的时长小于所述传输周期的时长,且所述第一时间段位于所述第一数据流中相邻报文到达第一队列的时刻之间;调度所述第二队列在所述第一时间段传输所述第二数据流。
- 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:基于所述第一队列中的报文数量确定所述第二队列传输所述第二数据流的开始时刻;所述基于所述传输特征调度所述第二队列,包括:基于所述传输特征与所述开始时刻调度所述第二队列。
- 根据权利要求3所述的方法,其特征在于,所述开始时刻根据所述第一队列中所述第一数据流的报文数量确定。
- 根据权利要求4所述的方法,其特征在于,所述第一队列中所述第一数据流的报文数量小于预设阈值的时刻为第一时刻,所述开始时刻与所述第一时刻的差值与所述第一数据流的大小正相关,所述第一数据流的大小包括以下至少一项:字节总数、报文数量。
- 根据权利要求3至5中任一项所述的方法,其特征在于,所述基于所述传输特征与所述开始时刻调度所述第二队列,包括:在所述第二队列在发送周期的情况下,调度所述第二队列传输所述第二数据流,所述发送周期根据所述开始时刻与所述传输特征确定。
- 根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:获取与网卡驱动相关的统计信息,所述统计信息包括预设时间段内的以下至少一项参数:所述第一数据流的服务质量QoS、网卡利用率、驱动队列的排队时长;所述驱动队列用于接收来自所述第一队列与所述第二队列的数据,所述网卡驱动与所述计算机设备连接;基于所述统计信息更新所述第一时间段以得到第二时间段,所述第二时间段用于保证所述统计信息中的参数在预设范围内,所述第二时间段用于调度所述第二队列。
- 根据权利要求1至7中任一项所述的方法,其特征在于,所述第一数据流属于时延敏感业务,所述第二数据流属于带宽敏感业务。
- 根据权利要求1至8中任一项所述的方法,其特征在于,所述第一队列与所述第二队列位于同一计算机设备或不同计算机设备。
- 一种计算机设备,其特征在于,所述计算机设备包括:获取单元,用于获取第一数据流与第二数据流,所述第一数据流的优先级高于所述第二数据流的优先级,所述第一数据流通过第一队列传输,所述第二数据流通过第二队列传输;所述获取单元,还用于获取所述第一队列中所述第一数据流的传输特征,所述传输特征与所述第一数据流中报文到达所述第一队列的时刻相关;调度单元,用于基于所述传输特征调度所述第二队列。
- 根据权利要求10所述的计算机设备,其特征在于,所述传输特征为所述第一数据流的传输周期;所述调度单元,具体用于基于所述传输周期确定第一时间段,所述第一时间段的时长小于所述传输周期的时长,且所述第一时间段位于所述第一数据流中相邻报文到达第一队列的时刻之间;所述调度单元,具体用于调度所述第二队列在所述第一时间段传输所述第二数据流。
- 根据权利要求10或11所述的计算机设备,其特征在于,所述计算机设备还包括:确定单元,还用于基于所述第一队列中的报文数量确定所述第二队列传输所述第二数据流的开始时刻;所述调度单元,具体用于基于所述传输特征与所述开始时刻调度所述第二队列。
- 根据权利要求12所述的计算机设备,其特征在于,所述开始时刻根据所述第一队列中所述第一数据流的报文数量确定。
- 根据权利要求13所述的计算机设备,其特征在于,所述第一队列中所述第一数据流的报文数量小于预设阈值的时刻为第一时刻,所述开始时刻与所述第一时刻的差值与所述第一数据流的大小正相关,所述第一数据流的大小包括以下至少一项:字节总数、报文数量。
- 根据权利要求12至14中任一项所述的计算机设备,其特征在于,所述调度单元,具体用于在所述第二队列在发送周期的情况下,调度所述第二队列传输所述第二数据流,所述发送周期根据所述开始时刻与所述传输特征确定。
- 根据权利要求10至15中任一项所述的计算机设备,其特征在于,所述获取单元,还用于获取与网卡驱动相关的统计信息,所述统计信息包括预设时间段内的以下至少一项参数:所述第一数据流的服务质量QoS、网卡利用率、驱动队列的排队时长;所述驱动队列用于接收来自所述第一队列与所述第二队列的数据,所述网卡驱动与所述计算机设备连接;所述计算机设备还包括:更新单元,用于基于所述统计信息更新所述第一时间段以得到第二时间段,所述第二时间段用于保证所述统计信息中的参数在预设范围内,所述第二时间段用于调度所述第二队列。
- 根据权利要求10至16中任一项所述的计算机设备,其特征在于,所述第一数据流属于时延敏感业务,所述第二数据流属于带宽敏感业务。
- 根据权利要求10至17中任一项所述的计算机设备,其特征在于,所述第一队列与所述第二队列位于同一计算机设备或不同计算机设备。
- 一种计算机设备,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得所述计算机设备执行如权利要求1至9中任一项所述的方法。
- 一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端设备上运行时,使得所述终端设备执行如权利要求1至9中任一项所述的方法。
- 一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1至9中任一项所述的方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP23896652.7A EP4607883A4 (en) | 2022-11-30 | 2023-11-23 | DATA FLOW PLANNING METHOD AND ASSOCIATED DEVICE |
| US19/222,402 US20250293989A1 (en) | 2022-11-30 | 2025-05-29 | Data Flow Scheduling Method and Related Device |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211528807.3A CN118118428A (zh) | 2022-11-30 | 2022-11-30 | 一种数据流调度方法及相关设备 |
| CN202211528807.3 | 2022-11-30 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US19/222,402 Continuation US20250293989A1 (en) | 2022-11-30 | 2025-05-29 | Data Flow Scheduling Method and Related Device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024114501A1 true WO2024114501A1 (zh) | 2024-06-06 |
Family
ID=91218509
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/133602 Ceased WO2024114501A1 (zh) | 2022-11-30 | 2023-11-23 | 一种数据流调度方法及相关设备 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20250293989A1 (zh) |
| EP (1) | EP4607883A4 (zh) |
| CN (1) | CN118118428A (zh) |
| WO (1) | WO2024114501A1 (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250202827A1 (en) * | 2023-12-19 | 2025-06-19 | Cisco Technology, Inc. | Identifying and Scheduling Low Latency, Low Loss, and Scalable Throughput (L4S) Data Flows |
| CN119135675B (zh) * | 2024-09-04 | 2026-02-24 | 中移互联网有限公司 | 文件下载方法、装置、设备、存储介质及程序产品 |
| CN119697132A (zh) * | 2025-02-25 | 2025-03-25 | 常州市索鼎自动化科技有限公司 | 一种用于工视一体设备的数据传输方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7002918B1 (en) * | 2000-05-22 | 2006-02-21 | Northrop Grumman Corporation | Method and apparatus for real time scheduling in a satellite communications network |
| CN101369962A (zh) * | 2007-08-13 | 2009-02-18 | 华为技术有限公司 | 转发报文的方法和网络设备 |
| CN101803311A (zh) * | 2007-09-17 | 2010-08-11 | 高通股份有限公司 | 通信网络中的优先调度和准入控制 |
| CN108762896A (zh) * | 2018-03-26 | 2018-11-06 | 福建星瑞格软件有限公司 | 一种基于Hadoop集群任务调度方法及计算机设备 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107483363B (zh) * | 2017-08-15 | 2020-04-14 | 无锡职业技术学院 | 一种分层的加权轮询调度装置及方法 |
-
2022
- 2022-11-30 CN CN202211528807.3A patent/CN118118428A/zh active Pending
-
2023
- 2023-11-23 WO PCT/CN2023/133602 patent/WO2024114501A1/zh not_active Ceased
- 2023-11-23 EP EP23896652.7A patent/EP4607883A4/en active Pending
-
2025
- 2025-05-29 US US19/222,402 patent/US20250293989A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7002918B1 (en) * | 2000-05-22 | 2006-02-21 | Northrop Grumman Corporation | Method and apparatus for real time scheduling in a satellite communications network |
| CN101369962A (zh) * | 2007-08-13 | 2009-02-18 | 华为技术有限公司 | 转发报文的方法和网络设备 |
| CN101803311A (zh) * | 2007-09-17 | 2010-08-11 | 高通股份有限公司 | 通信网络中的优先调度和准入控制 |
| CN108762896A (zh) * | 2018-03-26 | 2018-11-06 | 福建星瑞格软件有限公司 | 一种基于Hadoop集群任务调度方法及计算机设备 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4607883A4 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4607883A4 (en) | 2026-01-28 |
| CN118118428A (zh) | 2024-05-31 |
| EP4607883A1 (en) | 2025-08-27 |
| US20250293989A1 (en) | 2025-09-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2024114501A1 (zh) | 一种数据流调度方法及相关设备 | |
| CN108616458B (zh) | 客户端设备上调度分组传输的系统和方法 | |
| JP4015428B2 (ja) | インアクティビティタイマを備えた無線基地局/無線基地局制御装置、無線端末及び状態制御方法 | |
| CN111213403B (zh) | 无线通信系统中QoS流的调度方法及装置 | |
| CN103988543A (zh) | 无线局域网中的控制设备、网络系统及业务处理方法 | |
| JP7640731B2 (ja) | 伝送処理方法、第一の通信機器、第二の通信機器及び可読記憶媒体 | |
| US20200252337A1 (en) | Data transmission method, device, and computer storage medium | |
| TW202224477A (zh) | 用於調度資料傳輸之裝置和方法 | |
| CN114615206A (zh) | 数据传输方法、接入网设备、用户面功能网元和存储介质 | |
| EP3055958B1 (en) | Downlink flow management | |
| CN112243255A (zh) | 一种调度优先级的确定方法和装置 | |
| WO2024152330A1 (zh) | 调度请求传输方法及装置、通信设备及存储介质 | |
| WO2025241697A1 (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
| CN115996425A (zh) | 数据传输方法、装置及终端 | |
| CN100417290C (zh) | 一种第三代移动通讯系统中的拥塞控制方法 | |
| US8355403B2 (en) | Stale data removal using latency count in a WiMAX scheduler | |
| WO2025102666A1 (zh) | 一种报文处理方法以及装置 | |
| CN119449735A (zh) | 数据传输方法、非易失性存储介质和计算机设备 | |
| WO2024255804A1 (zh) | 数据量上报方法、装置及可读存储介质 | |
| WO2025035893A1 (zh) | 一种上报缓存状态报告的方法和通信装置 | |
| WO2023193203A1 (zh) | 一种时延控制方法及装置、通信设备 | |
| CN114980350A (zh) | 一种计数值配置方法和装置 | |
| KR100966630B1 (ko) | QoS 제공 시스템 및 이를 이용한 방법 | |
| CN118631757B (zh) | 基于信用值的速率控制方法、装置和设备 | |
| WO2025241643A1 (zh) | 数据传输方法及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23896652 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2023896652 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2023896652 Country of ref document: EP Effective date: 20250522 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWP | Wipo information: published in national office |
Ref document number: 2023896652 Country of ref document: EP |