A cloud desktop optimization method, device and storage medium
By periodically estimating network bandwidth and adjusting data generation rate, the poor network problem between cloud desktop terminals and servers is solved, and smooth data transmission and optimized user experience in an unstable network environment are achieved.
Patent Information
- Application Number
- CN202310254964.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-09
- Publication Date
- 2025-07-18
- Estimated Expiration
- 2043-03-09
AI Technical Summary
The network condition between the cloud desktop terminal and the cloud desktop server is poor, resulting in display stuttering and other problems, affecting the user experience.
By periodically estimating the network bandwidth, adjusting the corresponding data generation rate of different types of desktop data based on the bandwidth allocation results, optimizing the data transmission process, avoiding the total amount of data exceeding the network bandwidth, and using bandwidth allocation results as a guide to schedule the data generation rate of various desktop data.
Effectively avoid network congestion, ensure smooth transmission of all kinds of desktop data, and provide a smooth user experience, especially in poor network conditions.
Smart Images

Figure CN116319345B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of cloud computing technology, and in particular, to a cloud desktop optimization method, device, and storage medium. Background Art
[0002] A cloud desktop, also known as desktop virtualization or cloud computer, is a new mode that replaces traditional computers. The cloud desktop server is responsible for data operation and storage, while the cloud desktop terminal is responsible for display and keyboard / mouse input. Data is transmitted between the two through a network.
[0003] Currently, due to reasons such as unstable network or bandwidth contention, the network condition between the cloud desktop terminal and the cloud desktop server may be poor. In this case, problems such as display lag may occur in the cloud desktop terminal, affecting the user experience. Summary of the Invention
[0004] Multiple aspects of this application provide a cloud desktop optimization method, device, and storage medium to optimize the usage experience of cloud desktops.
[0005] An embodiment of this application provides a cloud desktop optimization method, including:
[0006] Estimate the network bandwidth between the cloud desktop terminal and the cloud desktop server within the current optimization cycle;
[0007] Perform an allocation operation on the network bandwidth to determine the upper limit value of the bandwidth allocated to each type of desktop data that needs to be transmitted from the cloud desktop server to the cloud desktop terminal;
[0008] For each type of desktop data, adjust the data generation rate respectively based on the allocated upper limit value of the bandwidth;
[0009] Transmit each type of desktop data generated at the adjusted data generation rate in the cloud desktop server to the cloud desktop terminal.
[0010] Optionally, the performing an allocation operation on the network bandwidth to determine the upper limit value of the bandwidth allocated to each type of desktop data that needs to be transmitted from the cloud desktop server to the cloud desktop terminal includes:
[0011] Allocate the upper limit value of the bandwidth to each type of desktop data from the network bandwidth in turn according to the priority order among the types of desktop data.
[0012] Optionally, the allocating the upper limit value of the bandwidth to each type of desktop data from the network bandwidth in turn according to the priority order among the types of desktop data includes:
[0013] When allocating the bandwidth upper limit value for the target class of desktop data, if it is determined that there is remaining bandwidth in the network bandwidth, then according to the bandwidth occupancy rule corresponding to the target class of desktop data, allocate the bandwidth upper limit value for the target class of desktop data from the remaining bandwidth;
[0014] Calculate the remaining bandwidth after allocating the bandwidth upper limit value for the target class of desktop data for allocating the bandwidth upper limit value for the next class of desktop data;
[0015] Wherein, the target class of desktop data is any one of the various classes of desktop data.
[0016] Optionally, calculating the remaining bandwidth after allocating the bandwidth upper limit value for the target class of desktop data includes:
[0017] Obtain the data transmission rate statistically calculated for the target class of desktop data within the latest statistical period;
[0018] Calculate the difference between the remaining bandwidth existing in the network bandwidth and the data transmission rate corresponding to the target class of desktop data as the remaining bandwidth after allocating the bandwidth upper limit value for the target class of desktop data;
[0019] Wherein, the statistical period is shorter than or equal to the optimization period.
[0020] Optionally, the bandwidth occupancy rule corresponding to the keyboard and mouse class of desktop data is to occupy a specified fixed bandwidth upper limit value; the bandwidth occupancy rule corresponding to the audio class of desktop data is to occupy a specified fixed bandwidth upper limit value; the bandwidth occupancy rule corresponding to the display class of desktop data is to occupy the remaining bandwidth existing in the network bandwidth according to a specified ratio; the bandwidth occupancy rule corresponding to the file class of desktop data is to occupy all the remaining bandwidth existing in the network bandwidth.
[0021] Optionally, for each of the various classes of desktop data, adjusting the data generation rate based on the allocated bandwidth upper limit value includes:
[0022] Convert the bandwidth upper limit value into a data generation rate upper limit value;
[0023] If there is desktop data to be adjusted that has exceeded the corresponding data generation rate upper limit value among the various classes of desktop data, then adjust the data generation rate of the desktop data to be adjusted to its corresponding data generation rate upper limit value.
[0024] Optionally, for each of the various classes of desktop data, adjusting the data generation rate based on the allocated bandwidth upper limit value includes:
[0025] For the audio class of desktop data and the display class of desktop data, adjust the coding rate during data encoding based on the allocated bandwidth upper limit value;
[0026] For the desktop data of the keyboard and mouse type and the desktop data of the file type, adjust the data read rate provided to the cloud desktop terminal based on the allocated bandwidth upper limit.
[0027] Optionally, transmitting various types of desktop data generated at the adjusted data generation rate in the cloud desktop server to the cloud desktop terminal includes:
[0028] Using the transmission queues respectively maintained for various types of desktop data, forwarding various types of desktop data generated at the adjusted data generation rate in the cloud desktop server to the cloud desktop terminal.
[0029] Optionally, using the transmission queues respectively maintained for various types of desktop data to forward the various types of desktop data to the cloud desktop terminal includes:
[0030] Writing various types of desktop data generated at the adjusted data generation rate in the cloud desktop server into their respective corresponding transmission queues;
[0031] Determining the priority order among the various types of desktop data;
[0032] Prioritizing and forwarding the desktop data received in the transmission queue with a higher priority.
[0033] Optionally, estimating the network bandwidth between the cloud desktop terminal and the cloud desktop server includes:
[0034] Receiving feedback information sent by the cloud desktop terminal, where the feedback information includes the size information and arrival time information of each data packet received by the cloud desktop terminal from the cloud desktop server;
[0035] Estimating the network bandwidth between the cloud desktop terminal and the cloud desktop server according to the feedback information.
[0036] An embodiment of the present application further provides a cloud desktop server, including a memory and a processor;
[0037] The memory is used to store one or more computer instructions;
[0038] The processor is coupled to the memory and is used to execute the one or more computer instructions to implement the foregoing cloud desktop optimization method.
[0039] An embodiment of the present application further provides a computer-readable storage medium storing computer instructions, which when executed by one or more processors, cause the one or more processors to execute the foregoing cloud desktop optimization method.
[0040] In the embodiments of the present application, cloud desktop optimization can be performed periodically. During a single optimization cycle, the available network bandwidth between the cloud desktop terminal and the cloud desktop server can be estimated, and then the network bandwidth can be reasonably allocated to different types of desktop data. Moreover, based on the bandwidth allocation result, the data generation rate corresponding to each type of desktop data can be adjusted. Then, various types of desktop data generated at the adjusted data generation rate in the cloud desktop server are transmitted to the cloud desktop terminal. Accordingly, the bandwidth allocation result can be used as a guide to schedule the data generation rate of various types of desktop data from the source, which can effectively prevent the total amount of data sent by the cloud desktop server from exceeding the network bandwidth, thereby avoiding network congestion. In this way, various types of desktop data can be smoothly transmitted to the cloud desktop terminal, and a smooth user experience can be provided even in the case of poor network conditions. BRIEF DESCRIPTION OF THE DRAWINGS
[0041] The drawings described herein are used to provide a further understanding of the present application and form a part of the present application. The illustrative embodiments and descriptions thereof of the present application are used to explain the present application and do not constitute an improper limitation of the present application. In the drawings:
[0042] Figure 1 is a flowchart of a cloud desktop optimization method provided by an exemplary embodiment of the present application;
[0043] Figure 2 is a logical diagram of a cloud desktop optimization method provided by an exemplary embodiment of the present application;
[0044] Figure 3 is a logical diagram of an alternative implementation of a cloud desktop optimization method provided by an exemplary embodiment of the present application;
[0045] Figure 4 is a structural diagram of a cloud desktop server provided by another exemplary embodiment of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0046] To make the objectives, technical solutions, and advantages of the present application clearer, the technical solutions of the present application will be clearly and completely described below in conjunction with the specific embodiments of the present application and the corresponding drawings. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present application.
[0047] Currently, when the network condition between the cloud desktop terminal and the cloud desktop server is poor, problems such as display lags may occur in the cloud desktop terminal, affecting the user experience. Therefore, in some embodiments of the present application: cloud desktop optimization can be performed periodically. During a single optimization cycle, the available network bandwidth between the cloud desktop terminal and the cloud desktop server can be estimated, and then the network bandwidth can be reasonably allocated to different types of desktop data. Moreover, based on the bandwidth allocation result, the data generation rate corresponding to each type of desktop data can be adjusted. Then, various types of desktop data generated at the adjusted data generation rate in the cloud desktop server are transmitted to the cloud desktop terminal. Accordingly, the bandwidth allocation result can be used as a guide to schedule the data generation rate of various types of desktop data at the source, which can effectively prevent the total amount of data sent by the cloud desktop server from exceeding the network bandwidth, thereby avoiding network congestion. In this way, various types of desktop data can be smoothly transmitted to the cloud desktop terminal, providing a smooth user experience even when the network condition is poor.
[0048] The technical solutions provided by the embodiments of the present application are described in detail below with reference to the accompanying drawings.
[0049] Figure 1 It is a schematic flowchart of a cloud desktop optimization method provided by an exemplary embodiment of the present application. Figure 2 It is a schematic logical diagram of a cloud desktop optimization method provided by an exemplary embodiment of the present application. This method can be executed by an optimization device, which can be implemented as software, hardware, or a combination of software and hardware, and the optimization device can be integrated in a cloud server. Refer to Figure 1 and the method may include:
[0050] Step 100: Estimate the network bandwidth between the cloud desktop terminal and the cloud desktop server during the current optimization cycle.
[0051] Step 101: Perform an allocation operation on the network bandwidth to determine the upper limit value of the bandwidth allocated to each type of desktop data that needs to be transmitted from the cloud desktop server to the cloud desktop terminal.
[0052] Step 102: For each type of desktop data, adjust the data generation rate respectively based on the allocated upper limit value of the bandwidth.
[0053] Step 103: Transmit various types of desktop data generated at the adjusted data generation rate in the cloud desktop server to the cloud desktop terminal.
[0054] Figure 3 It is a schematic logical diagram of an alternative implementation of a cloud desktop optimization method provided by an exemplary embodiment of the present application. Refer to Figure 3The cloud desktop optimization method provided in this embodiment can be applied to the cloud desktop server side, and the cloud desktop optimization method in this embodiment can be implemented by adding relevant functional modules in the cloud desktop server. These functional modules may include but are not limited to bandwidth estimation modules, bandwidth allocation modules, and sending modules. Of course, this is only an exemplary way of dividing the processing logic in this embodiment, but it should be understood that this embodiment is not limited to this way of dividing, and the processing logic in this embodiment can also divide the functional modules in other ways. No matter how it is divided, the cloud desktop server in this embodiment can implement the cloud desktop optimization method in this embodiment under the mutual cooperation of the divided functional modules.
[0055] Cloud desktop technology mainly involves cloud desktop servers and cloud desktop terminals. The cloud desktop server and the cloud desktop terminal rely on the network for data exchange. This embodiment mainly focuses on the desktop data generated from the cloud desktop server to the cloud desktop terminal. This embodiment proposes to optimize the transmission process of these desktop data to improve the user experience of the cloud desktop.
[0056] During the research process, the inventor found that cloud desktop terminals often use wifi to connect to the router, and then use the public network to connect to the cloud desktop server. The stability of wifi and the public network cannot be guaranteed, and there is often a situation where the available bandwidth is sometimes insufficient. There are often situations where multiple cloud desktop terminals centrally access the cloud desktop server. For example, students in school classrooms use cloud desktops to take online classes, and company employees use cloud desktops for office work at the same time. In these scenarios, the total bandwidth of the network entrance and exit is generally limited. It is easy for multiple cloud desktop terminals to access at the same time to cause the total bandwidth to be insufficient, and the bandwidth seized by each cloud desktop terminal is very limited. When the cloud desktop terminal copies files or redirects the network from the cloud desktop server, the network bandwidth is often fully occupied, resulting in no bandwidth available for other desktop data. In the typical usage scenarios of these cloud desktops, there are problems with poor network conditions between the cloud desktop terminal and the cloud desktop server, which leads to freezes and unsmooth operations during the use of the cloud desktop, affecting the user experience.
[0057] The cloud desktop optimization method provided in this embodiment can optimize the user experience, especially when the network condition is poor, and can effectively avoid the problem of freezing, so that the user can have a smooth experience.
[0058] In this embodiment, cloud desktop optimization can be performed in cycles. For the sake of ease of description, the technical solution will be explained below from the perspective of a single optimization cycle. It should be understood that cloud desktop optimization can be implemented according to the same processing logic in other optimization cycles in this embodiment.
[0059] refer to Figure 1, in step 100, the network bandwidth between the cloud desktop terminal and the cloud desktop server can be estimated within the current optimization period. Step 100 can be implemented by the aforementioned bandwidth estimation module. In this embodiment, multiple implementation methods can be used to estimate the network card bandwidth.
[0060] Reference Figure 3 , in an exemplary implementation method: the feedback information sent by the cloud desktop terminal can be received, and the feedback information includes the size information and arrival time information of each data packet received by the cloud desktop terminal from the cloud desktop server; according to the feedback information, the network bandwidth between the cloud desktop terminal and the cloud desktop server can be estimated. In this implementation method, the cloud desktop terminal can record the size information and arrival time information, etc. of each data packet sent by the cloud desktop server to it, and can feedback this information to the cloud desktop server. It can be understood that the feedback information can be used to reflect the actual used bandwidth situation between the cloud desktop terminal and the cloud desktop server. In this way, the network bandwidth obtained after estimating the network bandwidth according to the feedback information will be closer to the actual network state between the cloud desktop terminal and the cloud desktop server, and thus can provide a more accurate processing basis for subsequent steps.
[0061] In this implementation method, an exemplary scheme for estimating the network bandwidth according to the feedback information can be: divide the specified-length historical period selected forward from the current moment into multiple estimation periods, and determine the data volume received by the cloud desktop terminal in each estimation period according to the feedback information; calculate the actual used bandwidth in each estimation period according to the data volume and the period length; based on the actual used bandwidth corresponding to each of the multiple estimation periods, estimate the network bandwidth between the cloud desktop terminal and the cloud desktop server. Optionally, the maximum value can be selected from the actual used bandwidth corresponding to each of the multiple estimation periods as the actual used bandwidth corresponding to each estimation period. It should be understood that in this exemplary scheme, the actual used bandwidth corresponding to each estimation period can actually be understood as the real-time bandwidth between the cloud desktop terminal and the cloud desktop server, and the maximum value among the actual used bandwidth corresponding to each of the multiple estimation periods can reflect the maximum bandwidth used between the cloud desktop terminal and the cloud desktop server. This is because within the aforementioned historical period, the data may not be transmitted evenly, but may be concentrated in one or several estimation periods for transmission. Therefore, the network bandwidth estimated through this exemplary scheme can be closer to the actual network state between the cloud desktop terminal and the cloud desktop server. Of course, in this exemplary scheme, the average value or median value, etc. can also be selected from the actual used bandwidth corresponding to each of the multiple estimation periods as the actual used bandwidth corresponding to each estimation period, and this embodiment is not limited thereto.
[0062] In addition, apart from estimating the network bandwidth based on the actual packet size information and arrival information between the cloud desktop terminal and the cloud desktop server as described above, other implementation methods can also be used in this embodiment to estimate the network bandwidth. For example, typical BBR (Bottleneck Bandwidth and Round-trip Time) bandwidth estimation technology, etc. This embodiment does not limit this.
[0063] On this basis, referring to Figure 1 , in step 101, an allocation operation can be performed on the network bandwidth to determine the upper limit of the bandwidth allocated to each type of desktop data that needs to be transmitted from the cloud desktop server to the cloud desktop terminal.
[0064] There are various types of desktop data that need to be transmitted between the cloud desktop server and the cloud desktop terminal. These desktop data can be classified as keyboard and mouse desktop data, audio desktop data, display desktop data, file desktop data, etc. Among them, the keyboard and mouse desktop data mainly includes some data related to keyboard and mouse operations. The data volume of this type of desktop data is relatively small, and users are relatively sensitive to the latency of this type of desktop data. The audio desktop data mainly includes some audio data. The display desktop data mainly includes various display-related data including screenshots of the cloud desktop interface. The data volume of this type of desktop data is relatively large. The file desktop data mainly includes file data that needs to be transmitted, and the data volume of this type of desktop data is also relatively large. It should be noted that the above classification method is exemplary, and this embodiment does not limit the classification method. In actual applications, different classification results may be generated according to other classification methods as needed. Regardless of the classification method, in this embodiment, step 101 can be executed according to the classification result, so as to allocate appropriate upper limit values of bandwidth to different types of desktop data.
[0065] In step 101, the network bandwidth estimated in step 100 can be used as the total allocation amount, and the network bandwidth is allocated to each type of desktop data according to the respective bandwidth requirements of each type of desktop data. It should be understood here that the allocated amount is the upper limit of the bandwidth rather than the bandwidth usage value, and there is a difference between these two concepts. For the upper limit of the bandwidth, it can be used to limit the maximum bandwidth that the desktop data can use. In the actual use process, the desktop data may not use up the maximum allocated bandwidth, and the unused part of the bandwidth can continue to be used by other desktop data. For the bandwidth usage value, the unused part of the bandwidth mentioned above is idle, resulting in waste. Therefore, in step 101, allocating the upper limit of the bandwidth to each type of desktop data can effectively avoid bandwidth waste and make full use of the network bandwidth between the cloud desktop terminal and the cloud desktop server. Especially in the case of poor network conditions, the detailed concept in step 101 can effectively improve the bandwidth utilization rate.
[0066] In addition, it is worth noting that during the current optimization cycle, the desktop data that the cloud desktop server needs to transmit to the cloud desktop terminal may not be of all types. That is to say, perhaps the cloud desktop server only needs to transmit some types of desktop data to the cloud desktop terminal. Therefore, in step 101, bandwidth upper limit values can be allocated only for various types of desktop data that need to be transmitted from the cloud desktop server to the cloud desktop terminal. As for which types of desktop data are involved in the desktop data that needs to be transmitted from the cloud desktop server to the cloud desktop terminal, in some alternative solutions, it can be determined according to the aforementioned feedback information sent by the cloud desktop terminal. Therefore, the feedback information can also include the desktop data type information corresponding to the data packets received by the cloud desktop terminal from the cloud desktop server. Based on this, various types of desktop data that appeared in the latest historical period can be determined according to the feedback information as the various types of desktop data that need to be transmitted from the cloud desktop server to the cloud desktop terminal, and the duration of the latest historical period can be specified as required. Of course, this is only exemplary. In some other alternative solutions, it can also be determined that certain types of desktop data are fixed to be transmitted from the cloud desktop server to the cloud desktop terminal. For example, the aforementioned keyboard and mouse type desktop data; and other various types of desktop data that need to be transmitted from the cloud desktop server to the cloud desktop terminal can be determined according to the feedback information. This embodiment is not limited to this.
[0067] Continuing to refer Figure 1 , in step 102, for each type of desktop data, the data generation rate can be adjusted respectively based on the allocated bandwidth upper limit value.
[0068] There are many application programs running in the cloud desktop server, such as players, browsers, file managers, and / or input / output device drivers, as well as some system applications, etc. These application programs generate various types of desktop data in the application layer. In step 102, the cloud desktop server can adjust the data generation rate of various types of desktop data in the application layer according to the bandwidth allocation result in step 101.
[0069] Among them, the bandwidth upper limit value can be converted into a data generation rate upper limit value. It should be understood that the unit of the bandwidth upper limit value is usually Mbps, that is, megabits per second, while the unit of the data generation rate upper limit value can be kbps, that is, kilobits per second. There is a conversion relationship between the two units. Therefore, the conversion can be conveniently carried out. Usually, the data generation rate upper limit value = bandwidth upper limit value * 1024. Therefore, the essence of this conversion is to change the usage scenario of the value, which further reflects that in step 102, the data generation rate of various types of desktop data is scheduled in the application layer, rather than in the network layer. Thus, in step 102, the data generation rate of various types of desktop data can be adjusted strictly according to the corresponding data generation rate upper limit value in the application layer.
[0070] In an alternative implementation: If there is desktop data to be adjusted among various types of desktop data that has exceeded the upper limit value of the corresponding data generation rate, then adjust the data generation rate of the desktop data to be adjusted to its corresponding upper limit value of the data generation rate. That is, if the actual data generation rate of a certain type of desktop data exceeds the upper limit value of the data generation rate allocated to it, then its data generation rate can be reduced to ensure that its data generation rate is lower than or equal to its corresponding upper limit value of the data generation rate. In this way, it can be ensured that the data volumes of various types of desktop data generated in the application layer do not exceed their respective allocated data transmission capabilities (i.e., the upper limit value of the bandwidth). Correspondingly, the total amount of data generated by the application layer will not exceed the data transmission capabilities corresponding to the network bandwidth estimated in step 100.
[0071] If there is desktop data to be adjusted among various types of desktop data that has not reached the upper limit value of the corresponding data generation rate, then adjust the data generation rate of the desktop data to be adjusted to its corresponding upper limit value of the data generation rate or keep it unchanged. In this case, for special types of desktop data such as keyboard and mouse desktop data that are highly sensitive to latency for users, when allocating bandwidth in step 101, usually a sufficient upper limit value of the bandwidth is allocated to it in different optimization cycles. Therefore, the data generation rate of these special types of desktop data is already sufficient, and even if it has not reached the corresponding upper limit value of the data generation rate, it can remain unchanged. For desktop data such as display desktop data or file desktop data that are less sensitive to latency for users, the upper limit value of the bandwidth allocated in different optimization cycles may fluctuate greatly, and these types of desktop data have relatively high bandwidth requirements. Therefore, for these types of desktop data, when the data generation rate has not reached the corresponding upper limit value, the data generation rate can be increased to the upper limit value of the data generation rate to optimize the user experience corresponding to these types of desktop data.
[0072] In this embodiment, for different types of desktop data, different ways can be adopted to adjust the data generation rate:
[0073] For audio desktop data and display desktop data, adjust the coding rate during data encoding based on the allocated upper limit value of the bandwidth;
[0074] For keyboard and mouse desktop data and file desktop data, adjust the data reading rate provided to the cloud desktop terminal based on the allocated upper limit value of the bandwidth.
[0075] Among them, the bit rate refers to the number of data bits used for playback or display per unit time, and the unit is kbps, that is, thousands of bits per second. The higher the bit rate, the higher the accuracy of playback or display. The data read rate can refer to the number of data bits that can be read per unit time, and the unit can also be kbps, that is, thousands of bits per second. The higher the data read rate, the faster the data will be read out.
[0076] It should be noted that the above classification method of desktop data and the adjustment methods adopted for various types of desktop data are all exemplary. This embodiment is not limited thereto. In actual applications, specific parameter types to be adjusted under different types of desktop data can be set as needed to achieve the adjustment of the data generation rate.
[0077] Currently, referring to Figure 3 , multiple data transmission channels are configured between the application layer and the network layer of the cloud desktop server. Different data transmission channels are used to transmit different types of desktop data in the application layer to the network layer. Based on this, in actual applications, the data generation rate corresponding to each data transmission channel can be adjusted in step 102.
[0078] After the adjustment of the data generation rate is completed, referring to Figure 1 , in step 103, various types of desktop data generated in the cloud desktop server according to the adjusted data generation rate can be transmitted to the cloud desktop terminal. That is, in the application layer, data production can be carried out at the adjusted data generation rate, and the cloud desktop server usually sends the desktop data as it is produced. Therefore, in step 103, the cloud desktop server can immediately send the desktop data generated in the application layer to the cloud desktop terminal through the network.
[0079] Referring to Figure 3 , in an alternative implementation: independent sending queues can be allocated and maintained for different types of desktop data. Based on this, the various types of desktop data generated in the cloud desktop server according to the adjusted data generation rate can be forwarded to the cloud desktop terminal by using the sending queues respectively maintained for various types of desktop data.
[0080] Referring to Figure 3, the application layer can write the generated different types of desktop data into the corresponding sending queues according to the adjusted data generation rate in step 102. The aforementioned sending module aggregates the desktop data in each sending queue into the network link, and then sends it to the cloud desktop terminal through the network link. Since the data generation rates of various types of desktop data have been controlled according to the bandwidth upper limit value in step 101, the total amount of data aggregated into the network link will surely not exceed the network bandwidth estimated in step 100, which can avoid congestion in the network link. Among them, the network link here can adopt a Transmission Control Protocol (TCP) link or a User Datagram Protocol (UDP) link, etc. This embodiment does not limit the type of network link used between the cloud desktop terminal and the cloud desktop server.
[0081] Preferably, priority information can also be configured for various types of desktop data. In this way, there will be a priority order among various types of desktop data, and this priority order can be extended to the sending queues. Based on this, in this preferred implementation: the desktop data received in the sending queue with a higher priority can be preferentially forwarded. Among them, the priority order can be set according to the user's delay sensitivity to different types of desktop data, and the desktop data with a higher delay sensitivity is set with a higher priority. An exemplary priority order can be: keyboard and mouse type desktop data > audio type desktop data > display type desktop data > file type desktop data. In this way, it can preferentially ensure that the desktop data with a high delay sensitivity is sent to the cloud desktop terminal, thereby optimizing the user experience corresponding to these types of desktop data.
[0082] It should be understood that the above implementation is only exemplary. In this embodiment, other implementation methods can also be used to transmit various types of desktop data generated in the cloud desktop server to the cloud desktop terminal according to the adjusted data generation rate. For example, the generated desktop data can be directly added to the network link without the need for the aforementioned sending queue for scheduling. Since the data volume has been controlled at the source in this embodiment, this immediate sending method will not cause network congestion either. This embodiment does not limit the implementation method adopted in the link of transmitting the generated various types of desktop data to the cloud desktop terminal.
[0083] In summary, in this embodiment, cloud desktop optimization can be performed periodically. During a single optimization cycle, the available network bandwidth between the cloud desktop terminal and the cloud desktop server can be estimated, and then the network bandwidth can be reasonably allocated to different types of desktop data. Moreover, based on the bandwidth allocation result, the data generation rate corresponding to each type of desktop data can be adjusted, and various types of desktop data generated at the adjusted data generation rate in the cloud desktop server can be transmitted to the cloud desktop terminal. Accordingly, the bandwidth allocation result can be used as a guide to schedule the data generation rate of various types of desktop data at the source, which can effectively prevent the total amount of data sent by the cloud desktop server from exceeding the network bandwidth, thereby avoiding network congestion. In this way, various types of desktop data can be smoothly transmitted to the cloud desktop terminal, providing a smooth user experience even in the case of poor network conditions.
[0084] In the above or following embodiments, multiple implementation manners can be adopted for network bandwidth allocation.
[0085] In an alternative implementation manner: the bandwidth upper limit value can be allocated to various types of desktop data from the network bandwidth in sequence according to the priority order among various types of desktop data. As mentioned above, the priority order can be set according to the user's delay sensitivity to different types of desktop data, and the desktop data with higher delay sensitivity can be set with a higher priority. Based on this, the desktop data with a higher priority can be preferentially allocated the bandwidth upper limit value, while the desktop data with a lower priority may not be allocated the bandwidth upper limit value because the network bandwidth has been exhausted. This sequential allocation method can preferentially ensure that the desktop data with high delay sensitivity is smoothly sent to the cloud desktop terminal to ensure the user experience.
[0086] An exemplary sequential allocation scheme can be:
[0087] When allocating the bandwidth upper limit value to the target type of desktop data, if it is determined that there is remaining bandwidth in the network bandwidth, the bandwidth upper limit value is allocated to the target type of desktop data from the remaining bandwidth according to the bandwidth occupancy rule corresponding to the target type of desktop data;
[0088] Calculate the remaining bandwidth after allocating the bandwidth upper limit value for the target type of desktop data for allocating the bandwidth upper limit value for the next type of desktop data;
[0089] Among them, the target type of desktop data is any one of various types of desktop data.
[0090] In this exemplary solution, when allocating a bandwidth upper limit value for any type of desktop data, it is first possible to determine whether there is still remaining bandwidth in the network bandwidth. If not, the allocation of bandwidth upper limit values for the current and subsequent types of desktop data can be stopped. That is, the current and subsequent types of desktop data can be paused from being sent during the current optimization period to ensure the smooth transmission of desktop data with higher priority. It should be understood that these paused desktop data are usually those with a lower sensitivity to latency for users, and pausing their transmission will not have too much impact on the user experience. If it is determined that there is still remaining bandwidth in the network bandwidth, then a bandwidth upper limit value can be allocated for the current type of desktop data from the remaining bandwidth.
[0091] In this exemplary sequential allocation scheme, bandwidth occupancy rules are also configured for different types of desktop data. The bandwidth occupancy rules corresponding to different types of desktop data may not be exactly the same. Exemplarily, the bandwidth occupancy rule corresponding to mouse and keyboard desktop data is to occupy a specified fixed bandwidth upper limit value; the bandwidth occupancy rule corresponding to voice desktop data is to occupy a specified fixed bandwidth upper limit value; the bandwidth occupancy rule corresponding to display desktop data is to occupy the remaining bandwidth in the network bandwidth according to a specified ratio; the bandwidth occupancy rule corresponding to file desktop data is to occupy all the remaining bandwidth in the network bandwidth.
[0092] In addition, in this exemplary sequential allocation scheme, after calculating the remaining bandwidth after allocating the bandwidth upper limit value for the target type of desktop data, it is used to allocate the bandwidth upper limit value for the next type of desktop data. Here, the difference between the aforementioned remaining bandwidth in the network bandwidth and the bandwidth upper limit value allocated for the target type of desktop data can be directly calculated as the remaining bandwidth after allocating the bandwidth upper limit value for the target type of desktop data. In a preferred solution, considering that when allocating the bandwidth upper limit value for the target type of desktop data, the data generation rate of the target type of desktop data transmitted in the network link between the cloud desktop terminal and the cloud desktop server has not been adjusted according to this bandwidth upper limit value, the actual bandwidth occupied by the target type of desktop data being transmitted in the network link does not necessarily equal the bandwidth upper limit value allocated to it at this time. Therefore, in this preferred solution:
[0093] The data transmission rate statistically obtained for the target type of desktop data in the latest statistical period can be obtained;
[0094] Calculate the difference between the remaining bandwidth in the network bandwidth and the data transmission rate corresponding to the target type of desktop data as the remaining bandwidth after allocating the bandwidth upper limit value for the target type of desktop data;
[0095] Among them, the statistical period is shorter than or equal to the optimization period.
[0096] Here, the data transmission rate can be obtained by counting the amount of target-class desktop data transmitted within a single statistical period in the network link, or by counting the amount of data sent from the sending queue corresponding to the target desktop data within a single statistical period. Moreover, when the statistical period is short enough, the real-time transmission rate corresponding to each type of desktop data can be obtained. These statistical tasks can be executed by the aforementioned sending module.
[0097] In this way, through this preferred solution, the remaining bandwidth calculated during the allocation process can be closer to the actual network bandwidth between the cloud desktop terminal and the cloud desktop server, thereby effectively improving the rationality and accuracy of bandwidth allocation.
[0098] The following uses an exemplary application scenario to illustrate the implementation solution of bandwidth allocation:
[0099] 1) First, allocate a bandwidth upper limit value for mouse and keyboard type desktop data:
[0100] Since the amount of mouse and keyboard type desktop data is extremely small, there is no need to limit its bandwidth. A fixed value A can be allocated to it, and this fixed value can be higher than the actual bandwidth requirement of mouse and keyboard type desktop data to preferentially ensure its smooth transmission.
[0101] At this point, the remaining bandwidth left1 = network bandwidth - a, where a is the real-time data transmission rate of mouse and keyboard type desktop data.
[0102] 2) Continue to allocate a bandwidth upper limit value for audio type desktop data:
[0103] If it is necessary to send audio type desktop data to the cloud desktop terminal, a fixed value B can be allocated to the audio type desktop data. At this point, the remaining bandwidth left2 = left1 - b; otherwise left2 = left1, where b is the real-time data transmission rate of audio type desktop data.
[0104] 3)) Continue to allocate a bandwidth upper limit value for display type desktop data:
[0105] If there is no remaining bandwidth (i.e., left2 <= 0), stop allocating the bandwidth upper limit for the current and subsequent types of desktop data and suspend the production of these types of desktop data. Otherwise, allocate a bandwidth upper limit value C = left2 * 70% for the display type desktop data.
[0106] At this point, the remaining bandwidth left3 = left2 - c, where c is the real-time data transmission rate of display type desktop data.
[0107] 4) Continue to allocate a bandwidth upper limit value for file type desktop data:
[0108] If there is no remaining bandwidth (i.e., left3 <= 0), stop allocating the bandwidth upper limit for the current and subsequent types of desktop data, and suspend the production of these types of desktop data. Otherwise, allocate the bandwidth upper limit value D = left3 for file-type desktop data.
[0109] At this point, the remaining bandwidth left4 = left3 - d, where d is the real-time data transmission rate of file-type desktop data.
[0110] In summary, by allocating the bandwidth upper limit values for various types of desktop data in order of priority, it is possible to ensure that desktop data with higher delay sensitivity is smoothly sent to the cloud desktop terminal first, and the remaining bandwidth can be used to send desktop data with lower delay sensitivity. In this way, through bandwidth allocation, the data transmission capacity provided by the network bandwidth can be reasonably allocated to different types of desktop data, thereby optimizing the user experience.
[0111] It should be noted that the technical details involved in the above implementation are not limited to this. For example, corresponding bandwidth upper limit values can also be pre-configured for various types of desktop data. In this way, during the sequential allocation process, the pre-set bandwidth upper limit values can be sequentially allocated for various types of desktop data from the network bandwidth. In addition, in addition to the above sequential allocation implementation, other implementation methods can also be used in this embodiment to complete bandwidth allocation. For example, an average allocation method can be used for bandwidth allocation, etc. This embodiment is not limited to this.
[0112] It should be noted that in some of the processes described in the above embodiments and the accompanying drawings, multiple operations appear in a specific order. However, it should be clearly understood that these operations may not be executed in the order in which they appear in this article or may be executed in parallel. The operation numbers such as 101 and 102 are only used to distinguish different operations, and the numbers themselves do not represent any execution order. In addition, these processes may include more or fewer operations, and these operations may be executed in order or in parallel.
[0113] Figure 4 This is a schematic structural diagram of a cloud desktop server provided by another exemplary embodiment of the present application. As Figure 4 shown, the computing device includes: a memory 40 and a processor 41.
[0114] The processor 41 is coupled to the memory 40 and is used to execute the computer program in the memory 40 for:
[0115] Estimate the network bandwidth between the cloud desktop terminal and the cloud desktop server during the current optimization period;
[0116] Perform an allocation operation on the network bandwidth to determine the bandwidth upper limit values allocated to each type of desktop data that needs to be transmitted from the cloud desktop server to the cloud desktop terminal;
[0117] For various types of desktop data, adjust the data generation rate respectively based on the allocated upper limit value of the bandwidth.
[0118] Transmit various types of desktop data generated in the cloud desktop server at the adjusted data generation rate to the cloud desktop terminal.
[0119] In an optional embodiment, when the processor 41 performs an allocation operation on the network bandwidth to determine the upper limit value of the bandwidth allocated to each type of desktop data to be transmitted from the cloud desktop server to the cloud desktop terminal, it can be specifically used for:
[0120] Allocate the upper limit value of the bandwidth to each type of desktop data from the network bandwidth in turn according to the priority order among various types of desktop data.
[0121] In an optional embodiment, when the processor 41 allocates the upper limit value of the bandwidth to each type of desktop data from the network bandwidth in turn according to the priority order among various types of desktop data, it can be specifically used for:
[0122] When allocating the upper limit value of the bandwidth to the target type of desktop data, if it is determined that there is remaining bandwidth in the network bandwidth, allocate the upper limit value of the bandwidth to the target type of desktop data from the remaining bandwidth according to the bandwidth occupancy rule corresponding to the target type of desktop data;
[0123] Calculate the remaining bandwidth after allocating the upper limit value of the bandwidth to the target type of desktop data for use in allocating the upper limit value of the bandwidth to the next type of desktop data;
[0124] Wherein, the target type of desktop data is any one of various types of desktop data.
[0125] In an optional embodiment, when the processor 41 calculates the remaining bandwidth after allocating the upper limit value of the bandwidth to the target type of desktop data, it can be specifically used for:
[0126] Obtain the data transmission rate statistically calculated for the target type of desktop data in the latest statistical period;
[0127] Calculate the difference between the remaining bandwidth in the network bandwidth and the data transmission rate corresponding to the target type of desktop data as the remaining bandwidth after allocating the upper limit value of the bandwidth to the target type of desktop data;
[0128] Wherein, the statistical period is shorter than or equal to the optimization period.
[0129] In an alternative embodiment, the bandwidth occupancy rules for keyboard and mouse desktop data are to occupy a specified fixed bandwidth upper limit value; the bandwidth occupancy rules for audio desktop data are to occupy a specified fixed bandwidth upper limit value; the bandwidth occupancy rules for display desktop data are to occupy the remaining bandwidth in the network bandwidth according to a specified ratio; the bandwidth occupancy rules for file desktop data are to occupy all the remaining bandwidth in the network bandwidth.
[0130] In an alternative embodiment, when the processor 41 adjusts the data generation rate for various types of desktop data respectively based on the allocated bandwidth upper limit value, it can be specifically used for:
[0131] Convert the bandwidth upper limit value into a data generation rate upper limit value;
[0132] If there is desktop data to be adjusted that has exceeded the corresponding data generation rate upper limit value among various types of desktop data, then adjust the data generation rate of the desktop data to be adjusted to its corresponding data generation rate upper limit value.
[0133] In an alternative embodiment, when the processor 41 adjusts the data generation rate for various types of desktop data respectively based on the allocated bandwidth upper limit value, it can be specifically used for:
[0134] For audio desktop data and display desktop data, adjust the coding rate during data encoding based on the allocated bandwidth upper limit value;
[0135] For keyboard and mouse desktop data and file desktop data, adjust the data read rate provided to the cloud desktop terminal based on the allocated bandwidth upper limit.
[0136] In an alternative embodiment, when the processor 41 transmits various types of desktop data generated at the adjusted data generation rate in the cloud desktop server to the cloud desktop terminal, it can be specifically used for:
[0137] Use the send queues maintained for various types of desktop data respectively to forward various types of desktop data generated at the adjusted data generation rate in the cloud desktop server to the cloud desktop terminal.
[0138] In an alternative embodiment, when the processor 41 uses the send queues maintained for various types of desktop data respectively to forward various types of desktop data to the cloud desktop terminal, it can be specifically used for:
[0139] Write various types of desktop data generated at the adjusted data generation rate in the cloud desktop server into their respective corresponding send queues;
[0140] Determine the priority order among various types of desktop data;
[0141] Give priority to forwarding the desktop data received in the send queue with a higher priority.
[0142] In an alternative embodiment, when estimating the network bandwidth between the cloud desktop terminal and the cloud desktop server, the processor 41 may specifically be used for:
[0143] Receiving feedback information sent by the cloud desktop terminal, where the feedback information includes the size information and arrival time information of each data packet received by the cloud desktop terminal from the cloud desktop server;
[0144] Estimating the network bandwidth between the cloud desktop terminal and the cloud desktop server according to the feedback information.
[0145] In an alternative embodiment, when estimating the network bandwidth between the cloud desktop terminal and the cloud desktop server according to the feedback information, the processor 41 may specifically be used for:
[0146] Dividing a specified-length historical period selected forward from the current moment into multiple estimation periods;
[0147] Determining the amount of data received by the cloud desktop terminal in each estimation period according to the feedback information;
[0148] Calculating the actual used bandwidth in each estimation period respectively according to the amount of data and the period length;
[0149] Selecting the maximum value from the actual used bandwidths corresponding to each estimation period as the network bandwidth between the cloud desktop terminal and the cloud desktop server.
[0150] Furthermore, as Figure 4 shown, the cloud desktop server further includes: other components such as a communication component 42 and a power supply component 43. Figure 4 Only some components are schematically shown, which does not mean that the cloud desktop server only includes Figure 4 the components shown.
[0151] It should be noted that for the technical details in the above embodiments of the cloud desktop server, reference can be made to the relevant descriptions in the foregoing method embodiments. To save space, they will not be elaborated here, but this should not cause loss of the protection scope of this application.
[0152] Correspondingly, an embodiment of the present application further provides a computer-readable storage medium storing a computer program, and when the computer program is executed, it can implement the steps in the above method embodiments.
[0153] The above Figure 3The memory therein is used to store computer programs and can be configured to store various other data to support operations on the computing platform. Examples of such data include instructions for any application or method operating on the computing platform, contact data, phone book data, messages, pictures, videos, etc. The memory can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disks or optical discs.
[0154] The above Figure 3 The communication component therein is configured to facilitate communication, in a wired or wireless manner, between the device where the communication component is located and other devices. The device where the communication component is located can access a wireless network based on communication standards, such as WiFi, 2G, 3G, 4G / LTE, 5G and other mobile communication networks, or a combination thereof. In an exemplary embodiment, the communication component receives a broadcast signal or broadcast-related information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component further includes a near field communication (NFC) module to facilitate short-range communication. For example, the NFC module can be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology and other technologies.
[0155] The above Figure 3 The power component therein provides power for various components of the device where the power component is located. The power component can include a power management system, one or more power sources, and other components associated with generating, managing and distributing power for the device where the power component is located.
[0156] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk memory, CD-ROM, optical memory, etc.) containing computer-usable program code.
[0157] This application is described with reference to the flowcharts and / or block diagrams of methods, apparatuses (systems), and computer program products according to embodiments of the present application. It should be understood that each flow and / or block in the flowchart and / or block diagram can be implemented by computer program instructions, as well as the combination of flows and / or blocks in the flowchart and / or block diagram. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing devices to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing devices generate a means for implementing the functions specified in the process Figure 1 a process or multiple processes and / or blocks Figure 1 a block or multiple blocks.
[0158] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer-readable memory generate a manufactured article including an instruction device, and the instruction device implements the process Figure 1 a process or multiple processes and / or blocks Figure 1 a block or multiple blocks.
[0159] These computer program instructions can also be loaded onto a computer or other programmable data processing device, so that a series of operation steps are executed on the computer or other programmable device to generate a computer-implemented process, and thus the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in the process Figure 1 a process or multiple processes and / or blocks Figure 1 a block or multiple blocks.
[0160] In a typical configuration, a cloud desktop server may include one or more processors (CPUs), an input / output interface, a network interface, and a memory.
[0161] The memory may include non-permanent memory in the form of computer-readable media, random access memory (RAM), and / or non-volatile memory, such as read-only memory (ROM) or flash memory (flash RAM). The memory is an example of computer-readable media.
[0162] A computer-readable medium includes both permanent and non-permanent, removable and non-removable media and can implement information storage by any method or technology. The information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassette tapes, magnetic tape disk storage or other magnetic storage devices, or any other non-transitory medium that can be used to store information accessible by a computing device. As defined herein, a computer-readable medium does not include transitory computer-readable media, such as modulated data signals and carrier waves.
[0163] It should also be noted that the term "comprising", "including" or any other variant thereof is intended to cover non-exclusive inclusion, such that a process, method, article or device comprising a series of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article or device. Without further limitation, an element defined by the statement "comprising an..." does not exclude the presence of additional identical elements in the process, method, article or device comprising the element.
[0164] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in this application are all information and data that have been authorized by the user or fully authorized by all parties. Moreover, the collection, use, and processing of relevant data need to comply with the relevant laws, regulations, and standards of the relevant countries and regions, and corresponding operation entrances are provided for users to choose to authorize or reject.
[0165] The above are only embodiments of the present application and are not used to limit the present application. For those skilled in the art, various changes and modifications can be made to the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principle of the present application shall be included within the protection scope of the present application.
Claims
1. A cloud desktop optimization method, comprising: estimating the network bandwidth between the cloud desktop terminal and the cloud desktop server within the current optimization period; performing an allocation operation on the network bandwidth to determine the upper limit of the bandwidth allocated to each type of desktop data to be transmitted from the cloud desktop server to the cloud desktop terminal; for each type of desktop data, respectively adjusting the data generation rate based on the allocated upper limit of the bandwidth; transmitting each type of desktop data generated at the adjusted data generation rate in the cloud desktop server to the cloud desktop terminal; The performing an allocation operation on the network bandwidth to determine the upper limit of the bandwidth allocated to each type of desktop data to be transmitted from the cloud desktop server to the cloud desktop terminal includes: when allocating the upper limit of the bandwidth for the target type of desktop data, if it is determined that there is remaining bandwidth in the network bandwidth, then allocate the upper limit of the bandwidth for the target type of desktop data from the remaining bandwidth according to the bandwidth occupancy rule corresponding to the target type of desktop data; the target type of desktop data is any one of the various types of desktop data; obtaining the data transmission rate statistically calculated for the target type of desktop data within the latest statistical period; calculating the difference between the remaining bandwidth in the network bandwidth and the data transmission rate corresponding to the target type of desktop data as the remaining bandwidth after allocating the upper limit of the bandwidth for the target type of desktop data; wherein, the statistical period is shorter than or equal to the optimization period.
2. The method according to claim 1, wherein the bandwidth occupancy rule corresponding to the keyboard and mouse type of desktop data is to occupy a specified fixed upper limit of the bandwidth; the bandwidth occupancy rule corresponding to the audio type of desktop data is to occupy a specified fixed upper limit of the bandwidth; the bandwidth occupancy rule corresponding to the display type of desktop data is to occupy the remaining bandwidth in the network bandwidth according to a specified ratio; the bandwidth occupancy rule corresponding to the file type of desktop data is to occupy all the remaining bandwidth in the network bandwidth.
3. The method according to claim 1, wherein the for each type of desktop data, respectively adjusting the data generation rate based on the allocated upper limit of the bandwidth includes: converting the upper limit of the bandwidth into the upper limit of the data generation rate; if there is desktop data to be adjusted that has exceeded the corresponding upper limit of the data generation rate among the various types of desktop data, then adjusting the data generation rate of the desktop data to be adjusted to its corresponding upper limit of the data generation rate.
4. The method according to claim 1, wherein the for each type of desktop data, respectively adjusting the data generation rate based on the allocated upper limit of the bandwidth includes: for the audio type of desktop data and the display type of desktop data, adjusting the coding rate during data encoding based on the allocated upper limit of the bandwidth; for the keyboard and mouse type of desktop data and the file type of desktop data, adjusting the data read rate provided to the cloud desktop terminal based on the allocated upper limit of the bandwidth.
5. The method according to claim 1, transmitting each type of desktop data generated at the adjusted data generation rate in the cloud desktop server to the cloud desktop terminal includes: Using the transmission queues maintained respectively for various types of desktop data, forward various types of desktop data generated in the cloud desktop server at the adjusted data generation rate to the cloud desktop terminals.
6. The method according to claim 5, using the transmission queues maintained respectively for various types of desktop data, forward various types of desktop data generated in the cloud desktop server at the adjusted data generation rate to the cloud desktop terminals, including: Write various types of desktop data generated in the cloud desktop server at the adjusted data generation rate into their respective corresponding transmission queues; Determine the priority order among various types of desktop data; Give priority to forwarding the desktop data received in the transmission queue with a higher priority.
7. The method according to claim 1, the estimating the network bandwidth between the cloud desktop terminal and the cloud desktop server includes: Receive the feedback information sent by the cloud desktop terminal, where the feedback information includes the size information and arrival time information of each data packet received by the cloud desktop terminal from the cloud desktop server; Estimate the network bandwidth between the cloud desktop terminal and the cloud desktop server according to the feedback information.
8. The method according to claim 7, the estimating the network bandwidth between the cloud desktop terminal and the cloud desktop server according to the feedback information includes: Divide a specified length of historical period selected forward from the current moment into multiple estimation periods; Determine the data volume received by the cloud desktop terminal in each estimation period according to the feedback information; Calculate the actual used bandwidth in each estimation period respectively according to the data volume and the period length; Select the maximum value from the actual used bandwidths corresponding to each estimation period as the network bandwidth between the cloud desktop terminal and the cloud desktop server.
9. A cloud desktop server, including a memory and a processor; The memory is used to store one or more computer instructions; The processor is coupled with the memory and is used to execute the one or more computer instructions to implement the cloud desktop optimization method according to any one of claims 1-8.
10. A computer-readable storage medium storing computer instructions, when the computer instructions are executed by one or more processors, cause the one or more processors to execute the cloud desktop optimization method according to any one of claims 1-8.
Citation Information
Patent Citations
System performance optimization method based on cloud desktop
CN103595773A
Method and apparatus for bandwidth allocation and estimation
CN104396215A
Cited By
Cloud desktop optimization method, cloud desktop server and storage medium
EP4672696A1
Cloud desktop optimization method, cloud desktop server and storage medium
WO2024183457A1