Cloud desktop system, network redirection method, data processing method and equipment
By implementing tiered processing of network requests in the cloud desktop system, and employing high- and low-level queues and timing mechanisms, the congestion and resource waste caused by network redirection in the cloud desktop system are resolved, achieving efficient network traffic management.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-10-25
- Publication Date
- 2026-03-13
AI Technical Summary
In cloud desktop systems, existing network redirection methods are prone to network congestion and resource waste, especially when the terminal cannot directly access the cloud network. Unified forwarding of all traffic leads to network conflicts and unnecessary traffic forwarding between different applications.
By adopting a hierarchical queuing mechanism, the cloud desktop server processes network requests in a hierarchical manner, prioritizing high-priority data into high-level queues and low-priority data into low-level queues. Furthermore, a timing mechanism is used to prioritize the processing of data in high-level queues, thereby reducing the probability of network congestion.
It effectively prioritizes high-priority data, ensuring a good user experience while reducing network congestion and resource waste, and simplifying configuration complexity.
Smart Images

Figure CN115941785B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and in particular to a cloud desktop system, a network redirection method, a data processing method, and a device. Background Technology
[0002] Cloud desktop is a remote desktop service that provides computing and storage capabilities in the cloud. It's a technology where users run a remote desktop from a terminal over a network. Users of cloud desktops can access the documents and applications they need from any device (including Windows and Mac computers, iPads / iPhones and Android smart devices, and desktop terminals). The operating system running on the cloud desktop can be installed on the remote host machine, and data processing and storage are also completed remotely. The local terminal only needs to execute keyboard and mouse control commands and transmit the display screen.
[0003] However, in some scenarios, the remote cloud desktop server cannot be accessed via the network. All network traffic from the cloud desktop server needs to be redirected to the terminal for access, which requires network redirection. Currently, network redirection in cloud desktops typically involves a proxy forwarding mechanism, sending all traffic through a single queue. This can easily lead to network congestion across different applications. Summary of the Invention
[0004] In view of the above problems, this application provides a cloud desktop system, data processing method, network redirection method and device that solve the above problems or at least partially solve the above problems.
[0005] In one embodiment of this application, a cloud desktop system is provided. The cloud desktop system includes:
[0006] Cloud desktop server, used to provide remote desktops;
[0007] The terminal is communicatively connected to the cloud desktop server and is used to display the remote desktop for user operation.
[0008] The cloud desktop server is used to respond to network requests generated by users operating the remote desktop through the terminal, classify the network requests to obtain target levels, add the network requests as data to be redirected to the data queue of the target level, and wait for redirection to the terminal so that the terminal can initiate network access based on the network requests.
[0009] The cloud desktop server is configured with multiple data queues of different levels, with data in higher-level data queues being processed first.
[0010] In another embodiment of this application, a network redirection method is provided. This method is applicable to a cloud desktop server, which provides a remote desktop for terminal users to operate; specifically, the method includes:
[0011] In response to network requests generated by a user operating the remote desktop through the terminal, the network requests are classified to obtain a target level;
[0012] The network request is added as data to be redirected to the target-level data queue, waiting to be redirected to the terminal so that the terminal can initiate network access based on the network request;
[0013] The cloud desktop server is configured with multiple data queues of different levels, with data in higher-level data queues being processed first.
[0014] In yet another embodiment of this application, a cloud desktop system is provided. The system includes:
[0015] Cloud desktop server, used to provide remote desktops;
[0016] The terminal is communicatively connected to the cloud desktop server and is used to display the remote desktop for user operation.
[0017] The cloud desktop server is further configured to: determine target data, classify the target data to obtain target levels, and add the target data to the data queue of the target level for processing.
[0018] The cloud desktop server is configured with multiple data queues of different levels, and data in the higher-level data queues is processed first.
[0019] The target data is data generated by the cloud desktop server during the user's operation of the remote desktop and to be sent to the terminal for processing by the terminal, and / or data sent by the terminal for processing by the cloud desktop server.
[0020] In another embodiment of this application, a data processing method in a cloud desktop system is provided. This method is applicable to a cloud desktop server, which provides a remote desktop for terminal users to operate; specifically, the method includes:
[0021] Determine the target data;
[0022] The target data is classified into different levels to obtain the target level;
[0023] The target data is added to the target-level data queue to await processing;
[0024] The cloud desktop server is configured with multiple data queues of different levels; data in the higher-level data queues is processed first; the target data is data generated by the cloud desktop server during the user's operation of the remote desktop and to be sent to the terminal for processing by the terminal, and / or data sent by the terminal for processing by the cloud desktop server.
[0025] This application also provides an embodiment of a computing device, which includes a memory and a processor. The memory stores one or more computer instructions. The processor is coupled to the memory and is used to execute the one or more computer instructions to implement the steps in the data processing method of the cloud desktop system or the steps in the network redirection method described above.
[0026] This application also provides a computer-readable storage medium storing computer instructions, which, when executed by one or more processors, cause the one or more processors to perform the steps in the data processing method of the cloud desktop system or the steps in the network redirection method described above.
[0027] Another embodiment of this application provides a computer program product, which includes a computer program or instructions that, when executed by a processor, cause the processor to perform the steps in the data processing method of the cloud desktop system or the steps in the network redirection method described above.
[0028] The technical solutions provided in the embodiments of this application classify target data (such as network requests awaiting network redirection) generated by user operations on remote desktops provided by cloud desktop servers, and add the target data to the corresponding level's data queue according to the classification results, awaiting processing. Data in higher-level data queues is processed first. For example, data in higher-level data queues has high real-time requirements, while data in lower-level data queues has less stringent real-time requirements. Using the method provided in the embodiments of this application, data in higher-level data queues can be processed first, ensuring a good user experience. Furthermore, because this solution employs multiple data queues, it reduces the probability of network congestion caused by transmitting all data in the same queue without differentiation. Attached Figure Description
[0029] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the accompanying drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the accompanying drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0030] Figure 1 A schematic diagram illustrating the principle of a network traffic forwarding scheme between a cloud desktop server and a client in the prior art is shown.
[0031] Figure 2 A schematic diagram of the cloud desktop system provided in this application is shown;
[0032] Figure 3 This illustration shows a flowchart of a cloud desktop system provided in an embodiment of this application, illustrating how the cloud desktop server classifies network requests and adds them to the corresponding data queues.
[0033] Figure 4 A flowchart illustrating a data processing method in a cloud desktop system provided in an embodiment of this application is shown.
[0034] Figure 5 This illustration shows a flowchart of a data processing method for processing queue data at different levels, provided in an embodiment of this application.
[0035] Figure 6 A schematic flowchart of a network redirection method according to an embodiment of this application is shown;
[0036] Figure 7 This invention provides a schematic diagram of the structure of a data processing device in a cloud desktop system according to an embodiment of the present application.
[0037] Figure 8 A schematic diagram of the structure of a network redirection device provided in an embodiment of this application is shown;
[0038] Figure 9 A schematic diagram of the structure of a computer device provided in an embodiment of this application is shown. Detailed Implementation
[0039] In cloud desktop use cases, the network environments of the terminal and cloud resources are independent. However, in certain scenarios, it's necessary to forward network traffic from either the terminal or the cloud. For example, some companies using cloud desktops, to save bandwidth and comply with company security standards, require terminals to access the company's network control system, while the cloud desktop server cannot access the network. This necessitates redirecting all network traffic from the cloud desktop server to the terminal, which then accesses the company's network control system for network interaction. In such scenarios, all network traffic is routed through forwarding, which can easily cause congestion and waste network resources by forwarding unnecessary traffic.
[0040] like Figure 1The existing solution 1 shown here forwards all network traffic through a SOCKS proxy (a SOCKS proxy is a proxy server that uses the SOCKS protocol; it's a general-purpose proxy server) or a VPN (Virtual Private Network). The advantage is its ease of implementation, but the disadvantage is that forwarding all traffic can easily cause network congestion between different services and applications. Existing solutions also include dedicated network traffic forwarding for specific applications; the advantage is reduced bandwidth, but the disadvantage is complex configuration.
[0041] Therefore, this application provides the following embodiments, employing an adaptive approach to improve the problems existing in the prior art. To enable those skilled in the art to better understand the solutions of this application, the technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings.
[0042] In some processes described in the specification, claims, and accompanying drawings of this application, multiple operations appearing in a specific order are included. These operations may be executed out of order or in parallel. Operation numbers such as 101, 102, etc., are merely used to distinguish different operations and do not represent any execution order. Furthermore, these processes may include more or fewer operations, and these operations may be executed sequentially or in parallel. It should be noted that the terms "first," "second," etc., used herein are used to distinguish different messages, devices, modules, etc., and do not represent a sequential order, nor do they limit "first" and "second" to different types. The term "or / and" in this application is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A or / and B means that A can exist alone, A and B can exist simultaneously, or B can exist alone. The character " / " in this application generally indicates that the preceding and following related objects have an "or" relationship. It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a product or system comprising a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a product or system. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the product or system including said element. Furthermore, the following embodiments are merely some embodiments of this application, and not all embodiments. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.
[0043] Figure 2 A schematic diagram illustrating the principle of a cloud desktop system provided in one embodiment of this application is shown. Figure 2 As shown, the cloud desktop system includes a cloud desktop server 11 and a terminal 12. The cloud desktop server 11 provides a remote desktop. The terminal 12 is communicatively connected to the cloud desktop server 11 and is used to display the remote desktop for user operation.
[0044] The cloud desktop server 11 is further configured to: determine target data, classify the target data to obtain target levels, and add the target data to the data queue of the target level for processing. The cloud desktop server 11 is configured with multiple data queues of different levels, with data in higher-level data queues processed first. The target data is data generated during user operation of the remote desktop and to be sent to the terminal 12 for processing, and / or data sent by the terminal 12 for processing by the cloud desktop server.
[0045] For example, the target data could be a network request that needs to be redirected to the terminal.
[0046] The cloud desktop server 11 refers to the server-side device that provides cloud desktop services. This server-side device can be a physical device or a virtual device. For example, the server-side device can be a single server, a server cluster consisting of multiple servers, or a virtual machine (VM) running on a single server or server cluster. The cloud desktop server 11 can respond to interrupted cloud desktop service requests and provide users with cloud desktop-related services. The cloud desktop services that can be deployed on the cloud desktop server 11 include, but are not limited to: cloud desktops, cloud desktop operating systems, cloud desktop management services, and cloud desktop protocol services.
[0047] Terminal 12 is a device that communicates with cloud desktop server 11, such as a mobile phone, laptop, tablet, smart wearable device, thin host, etc. Alternatively, terminal 12 can also be a soft terminal corresponding to the cloud desktop. Client programs corresponding to the cloud desktop can be installed on terminal 12, and interactive operations can be achieved by accessing the corresponding virtual machine on cloud desktop server 11 through desktop transmission protocols, such as... Figure 2 As shown, it achieves a user experience consistent with existing computers.
[0048] The technical solutions provided in this application are applicable to scenarios where network traffic from a cloud desktop server needs to be transferred to the terminal. For example, in scenario one, the cloud desktop server needs to access the local network of the terminal. Since the local network is a private network, the cloud desktop server cannot obtain the public IP address of the terminal's local network and therefore cannot access it. In this case, the network access request needs to be redirected to the terminal, allowing the terminal to access the local network. In scenario two, some special leased networks (such as medical systems, medical insurance systems, etc.) do not support access to server IP ranges, while the cloud desktop server provides the IP range corresponding to the server. In this case, network access requests for special leased networks need to be redirected to the terminal, allowing the terminal to access the leased network. In scenario three, some companies using cloud desktops need to allow terminals to access the company's network management system to save bandwidth and comply with company security standards. The cloud desktop server cannot access the network in this case. Therefore, all network traffic from the cloud desktop server needs to be redirected to the terminal, allowing the terminal to access the company's network management system for network interaction; and so on.
[0049] In one specific embodiment, the target data mentioned above can be a network request redirected from the cloud desktop server to the terminal, or it can be a request result (such as network data) returned by the terminal after performing network access based on the network request. The data targeted by the network request or the returned request result may include, but is not limited to: audio data, video data, instant messaging data, web page data, search or query data, payment data, etc.
[0050] Furthermore, when the cloud desktop server 11 classifies the target data to obtain the target level, it is used to:
[0051] Obtain the feature information of the target data;
[0052] Based on the feature information, the target data is classified to obtain the target level;
[0053] The feature information includes at least one of the following: data size, data type, application identifier of the relevant application, and network address.
[0054] See Figure 3 As shown, assuming the target data is a network request, the cloud desktop server can first obtain the feature information of the network request, then classify the target data according to the feature information to obtain the target level, and then add the network request to the data queue corresponding to the target level.
[0055] Furthermore, the cloud desktop server described in this embodiment is also used for:
[0056] Start the timer;
[0057] When there is data in the high-level data queue, the data in the high-level data queue is processed; if there is no data in the high-level data queue before the specified time, the data in the low-level data queue is processed.
[0058] When the timer reaches the specified point, stop processing data and restart the timer to resume processing from the higher-level data queue that already contains data.
[0059] The cloud desktop system provided in this application embodiment can also be understood as: in Figure 1 Based on the above, an adaptive forwarding module is added, which can realize the functions corresponding to the cloud desktop server mentioned above.
[0060] For details on the specific implementation of the cloud desktop server or the corresponding functions of the adaptive forwarding module in the aforementioned cloud desktop system, please refer to the relevant content below.
[0061] Figure 4 A flowchart illustrating a data processing method in a cloud desktop system according to an embodiment of this application is shown. The execution entity of the method provided in this embodiment can be a cloud desktop server or an adaptive forwarding module on the cloud desktop server. The cloud desktop server is used to provide a remote desktop for terminal users to operate. Accordingly, the method includes:
[0062] 101. Determine the target data.
[0063] 102. The target data is classified to obtain the target level.
[0064] 103. Add the target data to the target-level data queue for processing.
[0065] The cloud desktop server is configured with multiple data queues of different levels; data in higher-level data queues is processed first.
[0066] The term "processing" as used in the embodiments of this application can be understood as, but is not limited to, calculation, forwarding, storage, etc.
[0067] In the above 101, the target data refers to data generated during the user's operation of the remote desktop and to be forwarded to the terminal for processing, and / or data sent by the terminal for processing by the cloud desktop server. In a specific embodiment, the target data may be a network request generated by the cloud desktop server; this network request is generated by the cloud desktop server after the user performs a click operation on a website, refreshes data in an application, clicks on a payment control, or plays video / audio, etc., on the remote desktop of the terminal. The target data may also be the request result (or network data) returned to the cloud desktop server by the terminal after performing network access based on the network request.
[0068] In point 102 above, the target data can be categorized by analyzing its real-time performance. For example, chat messages and online audio / video playback have high real-time requirements and should be processed first to ensure a good user experience. This type of high-real-time data is classified as high-level and added to the high-level data queue for processing by the cloud desktop server. Conversely, data with low real-time requirements, such as large file downloads and web pages, can be classified as low-level and added to the low-level data queue.
[0069] Data queues can be stacked in a first-in, first-out (FIFO) manner; once data is added to the stack, it enters a waiting state. Data that a cloud desktop server at the same level wants to forward to a terminal, as well as data that a terminal sends to a cloud desktop server, can be added to the corresponding level's data queue.
[0070] The technical solution provided in this embodiment classifies the target data generated by the user's operation of the remote desktop provided by the cloud desktop server into different levels. Based on the classification results, the target data is added to the corresponding level's data queue for processing. Data in higher-level data queues is processed first. For example, data in higher-level data queues has higher real-time requirements, while data in lower-level data queues has less stringent real-time requirements. By using the method provided in this embodiment, data in higher-level data queues can be processed first, ensuring a good user experience. Furthermore, because this solution employs multiple data queues, it reduces the probability of network congestion caused by transmitting all data in the same queue without differentiation.
[0071] In one feasible implementation, the above-mentioned 102 "grading the target data to obtain a target level" may include:
[0072] 1021. Obtain the feature information of the target data;
[0073] 1022. Based on the feature information, the target data is classified to obtain the target level;
[0074] The feature information includes at least one of the following: data size, data type, application identifier of the relevant application, and network address.
[0075] Furthermore, step 1022 above, "based on the feature information, classifying the target data to obtain the target level," includes at least one of the following:
[0076] Obtain a preset first relation table of network addresses and levels. If the target address corresponding to the target data can be found in the first relation table, then the level corresponding to the target address in the first relation table is taken as the target level. The target data is a network request that carries the target address of the data to be accessed; or the target data is a request result corresponding to the network request, and the target address is the source address of the request result.
[0077] Obtain a second relation table of preset application identifiers and levels. If the application identifier of the target application related to the target data can be found in the second relation table, then the level corresponding to the application identifier of the target application in the second relation table is taken as the target level.
[0078] Obtain a hierarchical model, input the feature information into the hierarchical model, execute the hierarchical model to output the target level; wherein, the hierarchical model is obtained by training on a dataset.
[0079] For example, the first relation table shown in Table 1 below
[0080]
[0081] For example, the second relation table shown in Table 2 below
[0082]
[0083]
[0084] It should be noted that the addresses in the first relationship table mentioned above can also be domain names, such as the domain names of CDN servers for some online video websites. This embodiment does not limit this. The above applications can include, but are not limited to, multimedia applications, drawing applications, instant messaging applications, social applications, and other functional applications.
[0085] In practical implementation, data of different types and applications, along with information on user-expected processing priorities, can be automatically acquired or manually collected and organized to construct a dataset as a training sample set. This training sample set is then used to train the hierarchical model. The hierarchical model can be a deep learning model, a convolutional neural network model, or other machine learning model; this embodiment does not specifically limit its application.
[0086] Furthermore, the method provided in this application embodiment may also include the following steps:
[0087] 104. Start the timer.
[0088] 105. When there is data in the high-level data queue, the data in the high-level data queue is processed; if there is no data in the high-level data queue before the specified time, the data in the low-level data queue is processed.
[0089] 106. When the timer reaches the first specified moment, stop processing all data queues and restart the timer to start processing again from the higher-level data queue with data.
[0090] In a more specific implementation, the cloud desktop server is configured with three data queues of different levels, namely, the first-level data queue, the second-level data queue, and the third-level data queue, in descending order of level.
[0091] For example, the cloud desktop server can be configured with three data queues: a first-level real-time queue, a second-level video queue, and a third-level general queue. The real-time queue is used to process smaller data blocks with high real-time requirements, such as chat messages and real-time audio / video. Data is sent out as soon as it becomes available in the real-time queue. The video queue is used to handle video-related network requests, such as watching live streams and on-demand videos. It requires buffering to ensure data continuity and avoid buffering. The general queue is used to process larger data with lower real-time requirements, such as downloading large files and browsing web pages.
[0092] Accordingly, see Figure 5 As shown, the method provided in this application embodiment may further include the following steps:
[0093] 104', Start total time;
[0094] 105' Determine if there is any data in the first-level data queue;
[0095] 106' If there is data in the first-level data queue, then process the data in the first-level data queue;
[0096] 107' If there is no data in the first level data queue before the total time reaches the first specified time, then determine whether there is data in the second level data queue;
[0097] 108' If there is data in the second-level data queue, start the sub-timer and process the data in the second-level data queue;
[0098] 109' If the total time has not yet reached the first specified time, and there is no data in the second-level data queue before the sub-time reaches the second specified time, then determine whether there is data in the third-level data queue;
[0099] 110' If the total time has not yet reached the first specified time, but there is still data in the second level data queue when the sub-time reaches the second specified time, then stop processing the data in the second level data queue and determine whether there is data in the third level data queue;
[0100] 111' If there is data in the third-level data queue, then the data in the third-level data queue is processed;
[0101] 112' When the total time reaches the first specified time, stop processing all data queues and restart the total time to start again from the step of determining whether there is data in the first-level data queue.
[0102] The embodiments of the above systems and methods are all described from the perspective of data forwarding between the cloud desktop server and the terminal. The following embodiments will use network redirection as a scenario to introduce the technical solution provided in this application. First, network redirection can be simply understood as redirecting various network requests to other locations using various methods. For example, in the scenario mentioned above, the cloud desktop server redirects network requests to the terminal, allowing the terminal to access the network. The schematic diagram of the cloud desktop system provided in this embodiment is the same as described above. Figure 2 Specifically, the cloud desktop system includes a cloud desktop server and terminals. The cloud desktop server provides a remote desktop. The terminal communicates with the cloud desktop server and displays the remote desktop for user operation. The cloud desktop server responds to network requests generated by users operating the remote desktop through the terminal, classifies the network requests to obtain target levels, adds the network requests to the data queue of the target level, and awaits redirection to the terminal, whereby the terminal initiates network access based on the network request. The cloud desktop server is configured with multiple data queues of different levels, with data in higher-level data queues processed first.
[0103] Furthermore, the cloud desktop server and the terminal establish a network redirection channel between the cloud desktop server and the terminal according to the cloud desktop transmission protocol; the cloud desktop server redirects network requests in the data queue to the terminal through the network redirection channel.
[0104] Furthermore, the cloud desktop server is also used for:
[0105] Start the timer;
[0106] If there is data to be redirected in the high-level data queue, the data in the high-level data queue is redirected and forwarded; if there is no data to be redirected in the high-level data queue before the specified time, the data to be redirected in the low-level data queue is processed.
[0107] When the timer reaches the specified point, processing of all data queues is stopped, and the timer is restarted to redirect forwarding again from the higher-level data queue that has data.
[0108] It should be noted that the cloud desktop server provided in this application embodiment may also have the functions corresponding to the steps in the above system and method. For example, the cloud desktop server is also used for the functions corresponding to steps 104' to 112' above.
[0109] like Figure 6 As shown in the diagram, an embodiment of this application also provides a flowchart of a network redirection method. The executing entity of the network redirection method provided in this embodiment can be a cloud desktop server. The cloud desktop server is used to provide a remote desktop for terminal users to operate. Accordingly, the method includes:
[0110] 201. In response to a network request generated by a user operating the remote desktop through the terminal, the network request is classified to obtain a target level;
[0111] 202. Add the network request as data to be redirected to the target-level data queue, so as to wait for redirection to the terminal and for the terminal to initiate network access based on the network request;
[0112] The cloud desktop server is configured with multiple data queues of different levels, with data in higher-level data queues being processed first.
[0113] Furthermore, embodiments of this application may also include the following steps:
[0114] 203. Start the timer;
[0115] 204. If there is data to be redirected in the high-level data queue, the data in the high-level data queue shall be redirected and forwarded; if there is no data to be redirected in the high-level data queue before the specified time, the data to be redirected in the low-level data queue shall be processed.
[0116] 205. When the timer reaches the specified time, stop processing all data queues and restart the timer to redirect and forward data again from the higher-level data queue with data.
[0117] Furthermore, the embodiments of this application may also include steps 104' to 112' in the above method embodiments, which will not be described in detail here.
[0118] This solution optimizes the network by adding an adaptive hierarchical forwarding module after the proxy module. The hierarchical forwarding module forwards different network traffic according to different rules and characteristics to the corresponding data queues. This effectively reduces the configuration complexity for users, while also reducing traffic and avoiding network congestion.
[0119] The data in each data queue can be customized, such as forwarding based on the application or based on the network 5-tuple. The rules can be customized, which can effectively avoid manually configuring individual applications and simplify cloud deployment costs.
[0120] The technical solution provided in this application adds a hierarchical classification of the target data, such as classifying it according to data type, data size, etc., and then placing it into the corresponding data queue for scheduling. In practical applications, service levels can be set independently, such as identifying types from different applications and different domains and placing them into queues of different levels for scheduling.
[0121] With the development of cloud computing data center technology, virtualization technology, as an important technology in cloud computing, has been widely used. Virtualization technology allows multiple virtual machines (VMs) to be virtualized on a physical device, enabling network virtualization and fully utilizing the computing resources of the physical device. A virtual machine (VM) is a complete computer system simulated by software, possessing full hardware system functionality and running in a completely isolated environment. Any task that can be performed on a physical computer can also be performed in a virtual machine. When creating a virtual machine, a portion of the physical machine's hard drive and memory capacity is used as virtual hard drive and memory capacity. Each virtual machine can be operated as if it were a physical machine. Communication between virtual machines and between virtual machines and the external network relies on virtual switches.
[0122] In a cloud computing environment, computing resources are partitioned. Servers run virtual machines (VMs), which also need network interface cards (NICs) to communicate with each other. However, these VM NICs are not physical; they are connected to a virtual switch via virtual NICs. The virtual switch forwards traffic between VMs on the same server. If the virtual switch is then connected to the server's physical NIC, the VMs can communicate with the outside world. The virtual NIC is simulated by the CPU and has one or more data queues (or send / receive queues). These data queues are also simulated, essentially a block of memory on the server.
[0123] In network virtualization scenarios, a virtual switch (VS) is a key component for implementing network virtualization within physical devices. It provides services such as data forwarding and processing (e.g., error checking, address mapping maintenance) for both virtual and physical network interface cards (NICs), enabling communication connections between virtual machines within the virtual network and external devices (such as external PCs) outside the virtual network, facilitating data transmission. Each virtual machine has its own virtual NIC, and external devices have their own physical NICs. Virtual machines and external devices are connected to the virtual switch through their respective virtual and physical NICs.
[0124] A virtual machine switch (VS) combines two physically connected switches using virtual switching technology, presenting a single, logical, virtual switch to the outside world. Virtual machines VM1, VM2, and VW3 connect to external devices (not shown in the diagram) via their respective virtual network adapters (NICs) and communicate with external devices through their physical NICs. Depending on the actual usage requirements, one or more virtual NICs can be configured on a virtual machine. Typically, a virtual NIC has one or more data queues for buffering data. That is, all data received by the virtual NIC enters one or more data queues, and then the virtual switch uses a processor (such as a CPU (Central Processing Unit)) to retrieve data from these queues for processing.
[0125] The technical solutions provided in the embodiments of this application are achievable on the premise that, based on a first virtual network interface card (NIC) on the cloud desktop server and a second virtual NIC on the terminal, when the cloud desktop server redirects a network request to the terminal through a network redirection channel, it sends the network request to the network redirection channel via the first virtual NIC, and then sends the network request to the second virtual NIC on the terminal through the network redirection channel. Multiple data queues of different priorities on the cloud desktop server correspond to the first virtual NIC; that is, the data that the first virtual NIC is prepared to forward is placed in multiple data queues of different priorities. The solutions provided in the above embodiments can be used to prioritize processing data in higher-priority data queues. Specifically, the processing strategy can be found in steps 104-106 or steps 104'-112' above, and will not be elaborated here.
[0126] Furthermore, each terminal can correspond to a virtual machine, which is exclusively used by that terminal. A terminal can include a keyboard, monitor, mouse, etc. The virtual machine provides all the services required by the terminal, such as desktop services, data processing services, data storage services, etc. For example, a cloud desktop system provides each user with a virtual machine through virtualization, and the enterprise's existing application systems can access it through the cloud desktop system's interface. Each virtual machine can enjoy the services of the enterprise's existing application systems through the cloud desktop system, such as some of the enterprise's professional applications, email systems, office systems, ERP, etc.
[0127] Figure 7 A schematic diagram of the structure of a data processing device in a cloud desktop system according to an embodiment of this application is shown. Figure 7 As shown, the data processing device in this cloud desktop system includes: a determination module 31, a first grading module 32, and a first adding module 33. The determination module 31 is used to determine target data. The first grading module 32 is used to grade the target data to obtain a target level. The first adding module 33 is used to add the target data to the data queue of the target level for processing. The cloud desktop server is configured with multiple data queues of different levels; data in higher-level data queues is processed first; the target data is data generated by the cloud desktop server during user operation of the remote desktop, to be sent to the terminal for processing, and / or data sent by the terminal for processing by the cloud desktop server.
[0128] Furthermore, when the first grading module grades the target data to obtain the target level, it is specifically used for:
[0129] Obtain the feature information of the target data; based on the feature information, classify the target data to obtain the target level;
[0130] The feature information includes at least one of the following: data size, data type, application identifier of the relevant application, and network address.
[0131] Furthermore, the first grading module, based on the feature information, grades the target data to obtain the target level, and has at least one of the following functions:
[0132] Obtain a preset first relation table of network addresses and levels. If the target address corresponding to the target data can be found in the first relation table, then the level corresponding to the target address in the first relation table is taken as the target level. The target data is a network request that carries the target address of the data to be accessed; or the target data is a request result corresponding to the network request, and the target address is the source address of the request result.
[0133] Obtain a second relation table of preset application identifiers and levels. If the application identifier of the target application related to the target data can be found in the second relation table, then the level corresponding to the application identifier of the target application in the second relation table is taken as the target level.
[0134] Obtain a hierarchical model, input the feature information into the hierarchical model, execute the hierarchical model to output the target level; wherein, the hierarchical model is obtained by training on a dataset.
[0135] In the first feasible technical solution, the apparatus provided in this application embodiment further includes a first processing module, which is used for:
[0136] Start the timer;
[0137] When there is data in the high-level data queue, the data in the high-level data queue is processed; if there is no data in the high-level data queue before the specified time, the data in the low-level data queue is processed.
[0138] When the timer reaches the first specified moment, processing of all data queues is stopped, and the timer is restarted to resume processing from the higher-level data queue that has data.
[0139] In another feasible technical solution, the cloud desktop server is configured with three data queues of different levels, namely, a first-level data queue, a second-level data queue, and a third-level data queue, in descending order of level. Correspondingly, the first processing module is used for:
[0140] Startup time;
[0141] Determine if there is data in the first-level data queue;
[0142] If there is data in the first-level data queue, then the data in the first-level data queue is processed.
[0143] If there is no data in the first-level data queue before the total time reaches the first specified time, then determine whether there is data in the second-level data queue.
[0144] If there is data in the second-level data queue, start the sub-timer and process the data in the second-level data queue;
[0145] If the total time has not yet reached the first specified time, and there is no data in the second-level data queue before the sub-time reaches the second specified time, then determine whether there is data in the third-level data queue.
[0146] If the total time has not yet reached the first specified time, but there is still data in the second-level data queue when the sub-time reaches the second specified time, then stop processing the data in the second-level data queue and determine whether there is data in the third-level data queue.
[0147] If there is data in the third-level data queue, then the data in the third-level data queue is processed;
[0148] When the total time reaches the first specified time, processing of all data queues is stopped, and the total time is restarted to start again from the step of determining whether there is data in the first-level data queue.
[0149] It should be noted that the data processing device in the cloud desktop system provided in this embodiment can implement the technical solutions described in the above-mentioned data processing method embodiments of the cloud desktop system. The specific implementation principles of each module or unit can be found in the corresponding content of the above-mentioned method embodiments, and will not be repeated here.
[0150] Figure 8 A schematic diagram of the structure of a network redirection device provided in an embodiment of this application is shown. Figure 8 As shown, the network redirection device can be installed on a cloud desktop server, which provides a remote desktop for terminal users to operate. Accordingly, the network redirection device includes a second hierarchical module 41 and a second adding module 42. The second hierarchical module 41 is used to hierarchically classify network requests generated by users operating the remote desktop through the terminal to obtain a target level. The second adding module 42 is used to add the network request as data to be redirected to the data queue of the target level, waiting to be redirected to the terminal so that the terminal can initiate network access based on the network request. The cloud desktop server is configured with multiple data queues of different levels, with data in higher-level data queues being processed first.
[0151] Furthermore, the network redirection device may also include a second processing module. The second processing module is used for
[0152] Start the timer;
[0153] If there is data to be redirected in the high-level data queue, the data in the high-level data queue is redirected and forwarded; if there is no data to be redirected in the high-level data queue before the specified time, the data to be redirected in the low-level data queue is processed.
[0154] When the timer reaches the specified point, processing of all data queues is stopped, and the timer is restarted to redirect forwarding again from the higher-level data queue that has data.
[0155] Alternatively, the cloud desktop server is configured with three data queues of different levels, namely, a first-level data queue, a second-level data queue, and a third-level data queue, in descending order of level. Correspondingly, the first processing module is used for:
[0156] Startup time;
[0157] Determine if there is data in the first-level data queue;
[0158] If there is data in the first-level data queue, then the data in the first-level data queue is processed.
[0159] If there is no data in the first-level data queue before the total time reaches the first specified time, then determine whether there is data in the second-level data queue.
[0160] If there is data in the second-level data queue, start the sub-timer and process the data in the second-level data queue;
[0161] If the total time has not yet reached the first specified time, and there is no data in the second-level data queue before the sub-time reaches the second specified time, then determine whether there is data in the third-level data queue.
[0162] If the total time has not yet reached the first specified time, but there is still data in the second-level data queue when the sub-time reaches the second specified time, then stop processing the data in the second-level data queue and determine whether there is data in the third-level data queue.
[0163] If there is data in the third-level data queue, then the data in the third-level data queue is processed;
[0164] When the total time reaches the first specified time, processing of all data queues is stopped, and the total time is restarted to start again from the step of determining whether there is data in the first-level data queue.
[0165] It should be noted that the network redirection device provided in this embodiment can implement the technical solutions described in the above network redirection method embodiments. The specific implementation principles of each module or unit can be found in the corresponding content of the above method embodiments, and will not be repeated here.
[0166] This application provides a schematic diagram of the principle structure of a computing device according to an embodiment. The schematic diagram is as follows: Figure 9As shown. Specifically, the computing device includes a memory 51 and a processor 52. The memory 51 is used to store one or more computer instructions; the processor 52, coupled to the memory 51, is used to implement the at least one or more computer instructions (such as computer instructions for implementing data storage logic) to carry out the steps in the data processing method or the network redirection method in the cloud desktop system provided in the embodiments of this application.
[0167] In the above, memory 51 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 storage, flash memory, magnetic disk or optical disk.
[0168] Figure 9 The diagram only schematically illustrates some of the components that a computing device may contain, and does not imply that the computing device only includes... Figure 9 The components shown include, for example, audio component 56, display 54, power supply component 55, communication component 53, etc.
[0169] Another embodiment of this application provides a computer program product (not shown in the accompanying drawings). This computer program product includes a computer program or instructions that, when executed by a processor, enable the processor to perform the steps described in the above method embodiments.
[0170] Accordingly, embodiments of this application also provide a computer-readable storage medium storing a computer program, which, when executed by a computer, can implement the method steps or functions provided in the above embodiments.
[0171] Through the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus necessary general-purpose hardware platforms, and of course, it can also be implemented by hardware. Based on this understanding, the above technical solutions, in essence or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments or some parts of the embodiments.
[0172] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application.
Claims
1. A cloud desktop system, characterized by, The cloud desktop server is configured with a plurality of data queues with different high and low levels, and data in a high-level data queue is preferentially processed. The cloud desktop server is configured with three data queues with different high and low levels, and the order of the levels from high to low is a first-level data queue, a second-level data queue, and a third-level data queue. The cloud desktop server is further configured to: start a total time; determine whether there is data in the first-level data queue; if there is data in the first-level data queue, process the data in the first-level data queue; if there is no data in the first-level data queue before the total time reaches a first specified time, determine whether there is data in the second-level data queue; if there is data in the second-level data queue, start a sub-time, and process the data in the second-level data queue; if the total time has not reached the first specified time, and there is no data in the second-level data queue before the sub-time reaches a second specified time, determine whether there is data in the third-level data queue; if the total time has not reached the first specified time, but there is still data in the second-level data queue when the sub-time reaches the second specified time, stop processing the data in the second-level data queue, and determine whether there is data in the third-level data queue; if there is data in the third-level data queue, process the data in the third-level data queue; when the total time reaches the first specified time, stop processing all data queues, and restart the total time to start from the step of determining whether there is data in the first-level data queue. The cloud desktop server and the terminal establish a network redirection channel between the cloud desktop server and the terminal according to a cloud desktop transmission protocol. The cloud desktop server redirects the network requests in the data queue to the terminal through the network redirection channel. The method is suitable for a cloud desktop server, and the cloud desktop server is configured to provide a remote desktop for a terminal for a terminal user to operate.
2. The system of claim 1, wherein, The method comprises: processing the network requests in the data queue to the terminal through the network redirection channel.
3. A network redirection method, characterized by, The cloud desktop server is configured to: determine a target level of the network request based on the characteristic information; and add the network request as data to be redirected to a data queue of the target level to wait for redirection to the terminal based on the network request initiated by the terminal. The cloud desktop server is configured with a plurality of data queues with different high and low levels, and data in a high-level data queue is preferentially processed. The cloud desktop server is configured with three data queues with different high and low levels, and the order of the levels from high to low is a first-level data queue, a second-level data queue, and a third-level data queue. The cloud desktop server is further configured to: start a total time; determine whether there is data in the first-level data queue; if there is data in the first-level data queue, process the data in the first-level data queue; if there is no data in the first-level data queue before the total time reaches a first specified time, determine whether there is data in the second-level data queue; if there is data in the second-level data queue, start a sub-time, and process the data in the second-level data queue; if the total time has not reached the first specified time, and there is no data in the second-level data queue before the sub-time reaches a second specified time, determine whether there is data in the third-level data queue; if the total time has not reached the first specified time, but there is still data in the second-level data queue when the sub-time reaches the second specified time, stop processing the data in the second-level data queue, and determine whether there is data in the third-level data queue; if there is data in the third-level data queue, process the data in the third-level data queue; when the total time reaches the first specified time, stop processing all data queues, and restart the total time to start from the step of determining whether there is data in the first-level data queue. The cloud desktop server and the terminal establish a network redirection channel between the cloud desktop server and the terminal according to a cloud desktop transmission protocol. The cloud desktop server redirects the network requests in the data queue to the terminal through the network redirection channel. The method is suitable for a cloud desktop server, and the cloud desktop server is configured to provide a remote desktop for a terminal for a terminal user to operate. The method comprises: processing the network requests in the data queue to the terminal through the network redirection channel. The cloud desktop server is configured to: determine a target level of the network request based on the characteristic information; and add the network request as data to be redirected to a data queue of the target level to wait for redirection to the terminal based on the network request initiated by the terminal. add the network request as data to be redirected to a data queue of the target level, to wait for redirection to the terminal by the terminal initiating network access based on the network request; The cloud desktop server is configured with multiple data queues of different high and low levels, and data in a high-level data queue is preferentially processed. The target level is obtained by classifying the network request, including: obtaining characteristic information of the network request; based on the characteristic information, classifying the network request to obtain the target level; wherein the characteristic information includes at least one of the following: data size, data type, application identifier of a related application, network address of the target data corresponding to the network request; The cloud desktop server is configured with three data queues of different high and low levels, and the order of the levels from high to low is a first-level data queue, a second-level data queue, and a third-level data queue; and the method further comprises: Start the total time; determine whether there is data in the first-level data queue; if there is data in the first-level data queue, process the data in the first-level data queue; if there is no data in the first-level data queue before the total time reaches a first specified time, determine whether there is data in the second-level data queue; if there is data in the second-level data queue, start the sub-timer and process the data in the second-level data queue; if the total time has not reached the first specified time and there is no data in the second-level data queue before the sub-timer reaches a second specified time, determine whether there is data in the third-level data queue; if the total time has not reached the first specified time, but there is still data in the second-level data queue when the sub-timer reaches the second specified time, stop processing the data in the second-level data queue and determine whether there is data in the third-level data queue; if there is data in the third-level data queue, process the data in the third-level data queue; when the total time reaches the first specified time, stop processing all data queues, restart the total time to start from the step of determining whether there is data in the first-level data queue.
4. The method of claim 3, wherein, Based on the characteristic information, the target level is obtained by classifying the network request, including at least one of the following: Obtain a first relationship table of pre-set network addresses and levels, if the target address corresponding to the network request can be queried in the first relationship table, the level corresponding to the target address in the first relationship table is taken as the target level; Obtain a second relationship table of pre-set application identifiers and levels, if the application identifier of the target application related to the network request can be queried in the second relationship table, the level corresponding to the application identifier of the target application in the second relationship table is taken as the target level; Input the characteristic information into the classification model, and execute the classification model to output the target level; wherein the classification model is obtained by training a data set.
5. A cloud desktop system, characterized by, It comprises: A cloud desktop server for providing a remote desktop; A terminal is in communication connection with the cloud desktop server and used to display the remote desktop for user operation. The cloud desktop server is further configured to determine target data, grade the target data to obtain a target level, and add the target data to a data queue of the target level for waiting for processing. When the target data is a network request, the cloud desktop server is further configured to grade the network request to obtain a target level, including: obtaining characteristic information of the network request; and grading the network request to obtain the target level based on the characteristic information. The characteristic information includes at least one of the following: data size, data type, application identifier of a related application, and network address of target data corresponding to the network request. The cloud desktop server is configured with multiple data queues of different levels, and data in a high-level data queue is processed preferentially. The target data is data generated by the cloud desktop server in the process of user operation on the remote desktop and to be sent to the terminal for processing by the terminal, and / or data sent by the terminal for processing by the cloud desktop server. The cloud desktop server is configured with three data queues of different levels, and the data queues are sequentially arranged from high to low as a first-level data queue, a second-level data queue, and a third-level data queue. The cloud desktop server is further configured to: start a total time; determine whether there is data in the first-level data queue; if there is data in the first-level data queue, process the data in the first-level data queue; if there is no data in the first-level data queue before the total time reaches a first specified time, determine whether there is data in the second-level data queue; if there is data in the second-level data queue, start a sub-time and process the data in the second-level data queue; if there is no data in the second-level data queue before the sub-time reaches a second specified time while the total time has not reached the first specified time, determine whether there is data in the third-level data queue; if there is data in the second-level data queue while the total time has not reached the first specified time, stop processing the data in the second-level data queue and determine whether there is data in the third-level data queue; if there is data in the third-level data queue, process the data in the third-level data queue; when the total time reaches the first specified time, stop processing all data queues, and restart the total time to start from the step of determining whether there is data in the first-level data queue.
6. A data processing method in a cloud desktop system, characterized by, The method is suitable for a cloud desktop server, and the cloud desktop server is used to provide a remote desktop for terminal user operation. The method includes: Determining target data; Classify the target data to obtain a target level; wherein, when the target data is a network request, classifying the network request to obtain a target level comprises: obtaining characteristic information of the network request; and classifying the network request based on the characteristic information to obtain the target level; wherein the characteristic information comprises at least one of the following: data size, data type, application identifier of a related application, network address of target data corresponding to the network request; adding the target data to a data queue of the target level to wait for processing; wherein the cloud desktop server is configured with multiple data queues of different levels, and data in a high-level data queue is processed preferentially; the target data is data generated by the cloud desktop server in a process of user operation of the remote desktop, to be sent to the terminal for processing by the terminal, and / or data sent by the terminal for processing by the cloud desktop server; the cloud desktop server is configured with three data queues of different levels, and the data queues are sequentially arranged from high to low as a first-level data queue, a second-level data queue and a third-level data queue; and the method further comprises: starting a total time; determining whether there is data in the first-level data queue; if there is data in the first-level data queue, processing the data in the first-level data queue; if there is no data in the first-level data queue before the total time reaches a first specified time, determining whether there is data in the second-level data queue; if there is data in the second-level data queue, starting a sub-time, and processing the data in the second-level data queue; if the total time has not reached the first specified time, and there is no data in the second-level data queue before a sub-time reaches a second specified time, determining whether there is data in the third-level data queue; if the total time has not reached the first specified time, but there is still data in the second-level data queue when the sub-time reaches the second specified time, stopping processing the data in the second-level data queue, and determining whether there is data in the third-level data queue; if there is data in the third-level data queue, processing the data in the third-level data queue; when the total time reaches the first specified time, stopping processing of all data queues, and restarting the total time to start from the step of determining whether there is data in the first-level data queue.
7. A computing device, comprising: comprise: a memory and a processor, wherein the memory stores one or more computer instructions; the processor is coupled to the memory and is configured to execute the one or more computer instructions to implement the steps in the method of any one of claims 3 to 4, or the steps in the method of claim 6.
Citation Information
Patent Citations
Data processing method and device
CN113778916A
Cloud desktop system, network redirection method and device and storage medium
CN115022179A