Data transmission method, device and system
Through bandwidth negotiation between the terminal and the server and the limitation of the target bandwidth threshold, the problem of insufficient data transmission flexibility in the prior art is solved, and more flexible and efficient file data transmission is achieved.
Patent Information
- Application Number
- CN202010917517.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-07-07
- Filing Date
- 2020-09-03
- Publication Date
- 2025-03-14
- Estimated Expiration
- 2040-09-03
AI Technical Summary
In the prior art, data transmission between the terminal and the server is less flexible, especially during file transfer, it is difficult to effectively control bandwidth, resulting in a greater impact on other services.
Through negotiation between the server and the terminal, the file transmission bandwidth specified by the terminal is obtained and used. The server sends file data to the terminal based on this bandwidth and limits data transmission through the target bandwidth threshold to ensure that the bandwidth during the transmission is used reasonably.
It improves the flexibility of data transmission between terminals and servers, dynamically controls the transmission bandwidth of file data, reduces the impact on other services, and ensures the normal progress of session services.
Smart Images

Figure CN113923206B_ABST
Abstract
Description
[0001] This application claims priority to Chinese patent application No. 202010643876.3, filed on July 7, 2020, with invention name “Bandwidth Control Method, Device, Server and Storage Medium”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to the field of cloud computing, and in particular to a data transmission method, device and system. Background Art
[0003] Desktop Cloud Service is a cloud application defined by cloud computing. Users can access cross-platform applications and users' virtual desktops (also known as cloud desktops) on the server through terminals.
[0004] Currently, the bandwidth of each session service between a terminal and a server is limited by a preset fixed bandwidth threshold, while other services except the session service are not limited. Therefore, the flexibility of data transmission between the terminal and the server is low. Summary of the invention
[0005] The embodiment of the present application provides a data transmission method, device and system. The technical solution is as follows:
[0006] In a first aspect, a data transmission method is provided, the method comprising:
[0007] The server provides a virtual desktop to the terminal; the server obtains the file transfer bandwidth specified by the terminal; optionally, the server obtains the file transfer bandwidth specified by the terminal after receiving a file download request sent by the terminal; the server sends file data to the terminal based on the file transfer bandwidth; the terminal receives the file data sent by the server based on the file transfer bandwidth.
[0008] The file transfer bandwidth is specified by the terminal, and the server obtains the file transfer bandwidth to achieve negotiation between the two parties on the file transfer bandwidth. The file transfer bandwidth specified by the terminal is the upper limit of the bandwidth that can be used for file data transmission during the process of the terminal downloading file data. It can be the file transfer bandwidth supported by the terminal, referred to as the file transfer bandwidth of the terminal.
[0009] In the embodiment of the present application, the server sends file data to the terminal based on the file transfer bandwidth specified by the terminal, thereby limiting the download of file data of the terminal through the file transfer bandwidth negotiated with the terminal, thereby improving the flexibility of data transmission between the terminal and the server.
[0010] For example, the terminal sends the file transmission bandwidth to the server; correspondingly, the server receives the file transmission bandwidth sent by the terminal, so that the server can obtain the file transmission bandwidth specified by the terminal.
[0011] In an optional implementation, the server sends the file data to the terminal based on the target bandwidth threshold determined by the file transmission bandwidth. For example, the bandwidth occupied by the file data during transmission is less than or equal to the target bandwidth threshold; accordingly, the terminal receives the file data sent by the server based on the target bandwidth threshold.
[0012] The target bandwidth threshold is determined based on the file transfer bandwidth and the target parameter; the target parameter is any one or any combination of the following: the downlink required bandwidth of the session service data or the processing bandwidth of the target virtual machine;
[0013] Among them, the session service data is the data generated by the terminal accessing the virtual desktop provided by the target virtual machine. In an optional example, the downlink bandwidth requirement of the session service data is the actual downlink bandwidth requirement. In another optional example, the downlink bandwidth requirement of the session service data is the downlink bandwidth requirement obtained based on the actual downlink bandwidth requirement prediction. Optionally, the downlink bandwidth requirement of the session service data can be obtained by using machine learning and other algorithms based on the actual downlink bandwidth requirement prediction. When the downlink bandwidth requirement of the session service data is the predicted bandwidth, the transmission bandwidth of the file data can be better controlled in scenarios such as bandwidth bursts by estimating the short-term future bandwidth requirement.
[0014] The aforementioned target virtual machine is used to provide a virtual desktop for the terminal. The processing bandwidth of the target virtual machine is the bandwidth allocated by the server to the target virtual machine, that is, the bandwidth that can be used by the target virtual machine.
[0015] The target bandwidth threshold can be determined in a variety of ways. The present application embodiment uses the following determination methods as examples for illustration:
[0016] In a first determination manner, the target bandwidth threshold is a smaller value determined from a difference between a processing bandwidth of the target virtual machine and a downlink required bandwidth of the session service data, and a file transmission bandwidth.
[0017] It can be seen that the target bandwidth threshold is ≤ the file transfer bandwidth specified by the terminal, and the target bandwidth threshold is ≤ the processing bandwidth of the target virtual machine - the downlink required bandwidth of the session service data. Among them, when the target bandwidth threshold is ≤ the file transfer bandwidth specified by the terminal, under the limitation of the file transfer bandwidth, the impact on the terminal's services other than the file download service can be avoided during the process of downloading file data.
[0018] When the target bandwidth threshold is ≤ the processing bandwidth of the target virtual machine – the downlink required bandwidth of the session service data, under the limitation of the processing bandwidth of the target virtual machine, it is possible to avoid overloading the target virtual machine during the process of downloading file data, thereby reducing the impact on other services of the target virtual machine (such as the services of applications installed on the virtual machine itself); and the processing bandwidth of the target virtual machine first meets the downlink required bandwidth of the session service data, and the remaining bandwidth meets the demand of the file download service, thereby avoiding bandwidth competition between the file data transmission service and the session service, avoiding the occupation of the bandwidth required for the session service data by the file data transmission during the process of downloading file data, avoiding the impact on the session service of the target virtual machine, and ensuring the normal progress of the session service.
[0019] In the second determination method, the target bandwidth threshold is a smaller value determined from a difference between a processing bandwidth of the target virtual machine and a bandwidth occupied by a desktop application, and a file transfer bandwidth.
[0020] It can be seen that the target bandwidth threshold is ≤ the file transfer bandwidth specified by the terminal, and the target bandwidth threshold is ≤ the processing bandwidth of the target virtual machine - the bandwidth occupied by the desktop application. Among them, when the target bandwidth threshold is ≤ the file transfer bandwidth specified by the terminal, under the limitation of the file transfer bandwidth, it can be avoided that the terminal's services other than the file download service are affected during the process of downloading file data.
[0021] When the target bandwidth threshold is ≤ the processing bandwidth of the target virtual machine – the bandwidth occupied by the desktop application, under the limitation of the processing bandwidth of the target virtual machine, it is possible to avoid overloading the target virtual machine during the process of downloading file data, thereby reducing the impact on other services of the target virtual machine; and the processing bandwidth of the target virtual machine first meets the bandwidth requirements of the desktop application, and the remaining bandwidth meets the requirements of the file download service, thereby avoiding bandwidth competition between the file data transmission service and the session service, avoiding the occupation of the bandwidth required by the desktop application by the file data transmission during the process of downloading file data, avoiding the impact on the normal operation of the desktop application, and reducing the freeze of the desktop application.
[0022] In a third determination method, the target bandwidth threshold is a smaller value determined from the difference between the processing bandwidth of the target virtual machine and the bandwidth occupied by the desktop application, the downlink required bandwidth of the session service data, and the file transfer bandwidth.
[0023] It can be seen that the target bandwidth threshold is ≤ the file transfer bandwidth specified by the terminal, and the target bandwidth threshold is ≤ the processing bandwidth of the target virtual machine - the downlink required bandwidth of the session service data - the bandwidth occupied by the desktop application. Among them, when the target bandwidth threshold is ≤ the file transfer bandwidth specified by the terminal, under the limitation of the file transfer bandwidth, it can be avoided that the services other than the file download service of the terminal are affected during the process of downloading file data.
[0024] When the target bandwidth threshold is ≤ the processing bandwidth of the target virtual machine – the downlink required bandwidth of the session service data – the bandwidth occupied by the desktop application, under the limitation of the processing bandwidth of the target virtual machine, it is possible to avoid overloading the target virtual machine during the process of downloading file data, thereby reducing the impact on other services of the target virtual machine (such as the services of applications installed on the virtual machine itself); and the processing bandwidth of the target virtual machine first meets the downlink required bandwidth of the session service data and the required bandwidth of the desktop application, and the remaining bandwidth meets the demand of the file download service, thereby avoiding the transmission of file data occupying the bandwidth required for the session service data and the bandwidth required for the desktop application during the process of downloading file data, thereby avoiding the impact on the normal operation of the session service and desktop application of the target virtual machine, thereby ensuring the normal progress of the session service and reducing the freeze of the desktop application.
[0025] Optionally, the processing bandwidth of the target virtual machine is a smaller value determined from the bandwidth actually supported by the hardware resources allocated to the target virtual machine and the actual bandwidth quota of the target virtual machine. Because at different times, each virtual machine not only runs session services, but may also run other services besides session services, such as services running locally. The other services occupy the hardware resources corresponding to the virtual machine, affecting the bandwidth supported by the hardware resources allocated to the virtual machine. The server can periodically obtain the bandwidth supported by the hardware resources of the target virtual machine, and determine the most recently obtained bandwidth as the bandwidth actually supported by the hardware resources allocated to the target virtual machine; it can also obtain the bandwidth actually supported by the hardware resources allocated to the target virtual machine when it is necessary to determine the target bandwidth threshold.
[0026] The actual bandwidth quota of the target virtual machine is the bandwidth actually allocated to the target virtual machine. For example, the actual bandwidth quota of the target virtual machine is determined based on the bandwidth information of the virtual machine deployed in the server, and the bandwidth information includes any one or any combination of the following: minimum reserved bandwidth, free bandwidth allowed to be shared by other virtual machines, or priority of bandwidth usage.
[0027] The present application embodiment uses the following optional methods as examples to illustrate the process of obtaining bandwidth information:
[0028] In a first optional manner, the bandwidth information includes: a minimum reserved bandwidth.
[0029] The minimum reserved bandwidth of a virtual machine refers to the lower limit of the bandwidth reserved for the virtual machine. The actual bandwidth quota of the virtual machine cannot be lower than the minimum reserved bandwidth. This ensures that the virtual machine provides effective services to the terminal and avoids user-perceivable delays during the execution of session services.
[0030] The minimum reserved bandwidth of each virtual machine is adjustable. For example, the server sets the minimum reserved bandwidth of each virtual machine according to a preset ratio or a ratio obtained in real time; for another example, the server sets the minimum reserved bandwidth of each virtual machine according to the preset minimum reserved bandwidth of each virtual machine or the minimum reserved bandwidth of each virtual machine obtained in real time.
[0031] In a second optional manner, the bandwidth information includes: idle bandwidth allowed to be shared by other virtual machines.
[0032] Assuming that the first virtual machine is any virtual machine deployed in the server, the idle bandwidth of the first virtual machine that is allowed to be shared by other virtual machines refers to the upper limit of the idle bandwidth of the first virtual machine that can be occupied by virtual machines other than the first virtual machine. That is, other virtual machines can occupy the bandwidth of the first virtual machine, and the bandwidth occupied by the first virtual machine cannot exceed the idle bandwidth allowed to be shared by other virtual machines. In this way, when the first virtual machine is idle (for example, when not communicating with a terminal or a third-party server), its idle bandwidth can be provided to other virtual machines for use, thereby realizing effective utilization of the idle bandwidth without affecting the subsequent normal operation of the first virtual machine.
[0033] For example, when the first virtual machine communicates with the terminal, if a virtual machine other than the first virtual machine has idle bandwidth that is allowed to be shared by other virtual machines, the first virtual machine can occupy part or all of the idle bandwidth as part of the actual bandwidth quota of the virtual machine.
[0034] The idle bandwidth of each virtual machine that is allowed to be shared by other virtual machines is adjustable. For example, the server sets the idle bandwidth of each virtual machine that is allowed to be shared by other virtual machines according to a preset ratio or a ratio obtained in real time; for another example, the server sets the idle bandwidth of each virtual machine that is allowed to be shared by other virtual machines according to a preset idle bandwidth or an idle bandwidth obtained in real time.
[0035] In a third optional manner, the bandwidth information includes: a priority for using the bandwidth.
[0036] The server sets a bandwidth usage priority for each built-in virtual machine, and different virtual machines may have different priorities. Assuming that the first virtual machine is any virtual machine deployed in the server, the bandwidth usage priority of the first virtual machine is used to indicate at least one of the order in which the first virtual machine can preempt bandwidth resources, the upper limit of the preemptible bandwidth, or the duration of the preempted bandwidth. For example, the bandwidth usage priority of each virtual machine can be adopted when the server has insufficient bandwidth resources. The situation where the server has insufficient bandwidth resources means that the bandwidth that the server can schedule is less than the sum of the bandwidths required by each virtual machine.
[0037] The priority of the first virtual machine's bandwidth usage is positively correlated with the order of bandwidth resources that can be preempted, the upper limit of bandwidth that can be preempted, and the duration of bandwidth preemption. That is, the higher the priority of the first virtual machine's bandwidth usage, the higher the order of bandwidth resources that can be preempted, the larger the upper limit of bandwidth that can be preempted, and the longer the duration of bandwidth preemption.
[0038] The above three optional methods can be used to determine the actual bandwidth quota of each virtual machine separately, or they can be combined to determine the actual bandwidth quota of each virtual machine. The specific implementation process of the three optional methods can be adjusted according to the actual strategy, which can be set by the user or the management personnel, and can also be dynamically adjusted by artificial intelligence algorithms such as machine learning algorithms. The actual strategy can be affected by factors such as usage scenarios (such as company usage scenarios or personal usage scenarios), payment types (such as different payment quotas) or user levels (such as different levels of users, such as ordinary users or VIP users).
[0039] Compared with statically setting the bandwidth quota for each virtual machine, in an embodiment of the present application, the virtual machines in the server share the bandwidth of the server (such as the network card bandwidth). By adjusting the bandwidth information of each virtual machine and determining the dynamically variable actual bandwidth quota of each virtual machine, full utilization of the bandwidth in the server can be achieved.
[0040] Optionally, the file transmission bandwidth of the terminal is determined based on the uplink required bandwidth of the session service data and the processing bandwidth of the terminal, and the processing bandwidth of the terminal is the bandwidth actually supported by the hardware resources of the terminal.
[0041] The uplink required bandwidth of session service data refers to the bandwidth required for session service data sent by the terminal to the target virtual machine. In an optional example, the uplink required bandwidth of the session service data is the actual uplink required bandwidth. In another optional example, the uplink required bandwidth of the session service data is the uplink required bandwidth predicted based on the actual uplink required bandwidth. Optionally, the uplink required bandwidth of the session service data can be predicted based on the actual uplink required bandwidth using algorithms such as machine learning. When the uplink required bandwidth of the session service data is the predicted bandwidth, the transmission bandwidth of the file data can be better controlled in scenarios such as bandwidth bursts by estimating the short-term future bandwidth demand.
[0042] For example, the file transmission bandwidth of the terminal is the difference between the processing bandwidth of the terminal and the uplink required bandwidth of the session service data.
[0043] In this way, under the limitation of the hardware resources of the terminal, it is possible to avoid overloading the hardware resources of the terminal during the subsequent downloading of file data, thereby reducing the impact on other services of the terminal; and the processing bandwidth of the terminal first meets the uplink bandwidth requirement of the session service data, and the remaining bandwidth meets the file transmission bandwidth requirement of the terminal, thereby avoiding the transmission of file data occupying the bandwidth required for the session service data during the subsequent downloading of file data, thereby avoiding the impact on the terminal's session service and ensuring the normal progress of the session service.
[0044] In a second aspect, a data transmission method is provided, the method comprising:
[0045] The server provides a virtual desktop for the terminal; the terminal obtains the file transmission bandwidth specified by the server; the terminal sends file data to the server based on the file transmission bandwidth; the server receives the file data sent by the terminal based on the file transmission bandwidth.
[0046] The file transfer bandwidth is specified by the server, and the terminal obtains the file transfer bandwidth to achieve negotiation between the two parties on the file transfer bandwidth. Optionally, the terminal can obtain the file transfer bandwidth specified by the server through the target virtual machine in the server. The target virtual machine is used to provide a virtual desktop for the terminal. The file transfer bandwidth specified by the server is the upper limit of the bandwidth that can be used for file data transmission during the process of the terminal uploading file data, which can be the file transfer bandwidth supported by the target virtual machine, referred to as the file transfer bandwidth of the target virtual machine.
[0047] In an embodiment of the present application, the terminal sends file data to the target virtual machine based on the file transfer bandwidth specified by the server, thereby limiting the upload of the terminal's file data through the file transfer bandwidth negotiated with the server, thereby improving the flexibility of data transmission between the terminal and the server.
[0048] For example, the server sends the file transmission bandwidth to the terminal through the target virtual machine; correspondingly, the terminal receives the file transmission bandwidth sent by the target virtual machine, thereby enabling the terminal to obtain the file transmission bandwidth specified by the server.
[0049] In an optional manner, the terminal sends the file data to the server based on the target bandwidth threshold determined by the file transmission bandwidth. For example, the bandwidth occupied by the file data during transmission is less than or equal to the target bandwidth threshold; accordingly, the server receives the file data sent by the terminal.
[0050] The target bandwidth threshold is determined based on the file transmission bandwidth and the target parameter; the target parameter is any one or any combination of the following: the uplink required bandwidth of the session service data or the processing bandwidth of the terminal.
[0051] The session service data is the data generated by the terminal accessing the virtual desktop provided by the server (such as the target virtual machine). The downlink bandwidth required for the session service data refers to the bandwidth required for the session service data sent by the server (such as the target virtual machine) to the terminal (such as the desktop cloud client). The processing bandwidth of the terminal is the bandwidth actually supported by the hardware resources of the terminal.
[0052] For example, the target bandwidth threshold is a smaller value determined from a difference between a processing bandwidth of the terminal and an uplink required bandwidth of the session service data, and a file transmission bandwidth.
[0053] It can be seen that the target bandwidth threshold is ≤ the file transfer bandwidth specified by the server, and the target bandwidth threshold is ≤ the processing bandwidth of the terminal - the uplink required bandwidth of the session service data. Among them, when the target bandwidth threshold is ≤ the file transfer bandwidth specified by the server, under the limitation of the file transfer bandwidth, it can be avoided that the service of the server (such as the target virtual machine) other than the file upload service is affected during the process of uploading file data.
[0054] When the target bandwidth threshold is ≤ the processing bandwidth of the terminal - the uplink required bandwidth of the session service data, under the limitation of the processing bandwidth of the terminal, it is possible to avoid excessive load on the terminal during the process of uploading file data, thereby reducing the impact on other services of the terminal (such as the services of the application programs installed on the terminal); and the processing bandwidth of the terminal first meets the uplink required bandwidth of the session service data, and the remaining bandwidth meets the demand of the file upload service, thereby avoiding the transmission of file data occupying the bandwidth required for the session service data during the process of uploading file data, thereby avoiding the impact on the terminal's session service and ensuring the normal progress of the session service.
[0055] In an optional example, the uplink required bandwidth of the session service data is the actual uplink required bandwidth. In another optional example, the uplink required bandwidth of the session service data is the uplink required bandwidth predicted based on the actual uplink required bandwidth. Optionally, the uplink required bandwidth of the session service data can be predicted based on the actual uplink required bandwidth using algorithms such as machine learning. When the uplink required bandwidth of the session service data is the predicted bandwidth, the transmission bandwidth of the file data can be better controlled in scenarios such as bandwidth bursts by estimating the bandwidth demand in the short term.
[0056] Optionally, the file transfer bandwidth specified by the server is determined based on the downlink demand bandwidth of the session service data and the processing bandwidth of the target virtual machine. The session service data is the data generated by the terminal accessing the virtual desktop provided by the target virtual machine. The processing bandwidth of the target virtual machine is the bandwidth allocated by the server to the target virtual machine.
[0057] For example, the file transmission bandwidth specified by the server is the difference between the processing bandwidth of the target virtual machine and the downlink required bandwidth of the session service data.
[0058] In this way, under the limitation of the hardware resources of the target virtual machine, it is possible to avoid overloading the hardware resources of the target virtual machine during the subsequent uploading of file data, thereby reducing the impact on other services of the target virtual machine; and the processing bandwidth of the target virtual machine first meets the downlink bandwidth demand of the session service data, and the remaining bandwidth meets the file transfer bandwidth demand of the target virtual machine, thereby avoiding the transmission of file data occupying the bandwidth required for the session service data during the subsequent uploading of file data, avoiding the impact on the session service of the target virtual machine, and ensuring the normal progress of the session service.
[0059] Optionally, the processing bandwidth of the target virtual machine is a smaller value determined from the bandwidth actually supported by the hardware resources allocated to the target virtual machine and the actual bandwidth quota of the target virtual machine. Because at different times, each virtual machine not only runs session services, but may also run other services besides session services, such as services running locally on the virtual machine. The other services occupy the hardware resources corresponding to the virtual machine, affecting the bandwidth supported by the hardware resources allocated to the virtual machine. The server can periodically obtain the bandwidth supported by the hardware resources of the target virtual machine, and determine the most recently obtained bandwidth as the bandwidth actually supported by the hardware resources allocated to the target virtual machine; it can also obtain the bandwidth actually supported by the hardware resources allocated to the target virtual machine when it is necessary to determine the target bandwidth threshold.
[0060] The actual bandwidth quota of the target virtual machine is the bandwidth actually allocated to the target virtual machine. For example, the actual bandwidth quota of the target virtual machine is determined based on the bandwidth information of the virtual machine deployed in the server, and the bandwidth information includes any one or any combination of the following: minimum reserved bandwidth, idle bandwidth allowed to be shared by other virtual machines, or priority of bandwidth usage. For related explanations, refer to the first aspect above.
[0061] In a third aspect, a desktop cloud system is provided, which includes: a terminal and a server; the terminal is used to execute the steps in the data transmission method executed by the terminal in the first aspect; the server is used to execute the steps in the data transmission method executed by the server in the first aspect.
[0062] Optionally, the terminal is also used to execute the steps in the data transmission method executed by the terminal in the second aspect; the server is also used to execute the steps in the data transmission method executed by the server in the second aspect.
[0063] In a fourth aspect, a desktop cloud system is provided, which includes: a terminal and a server; the terminal is used to execute the steps in the data transmission method executed by the terminal in the second aspect; the server is used to execute the steps in the data transmission method executed by the server in the second aspect.
[0064] In a fifth aspect, a computer device is provided, comprising: a processor and a memory; the memory is used to store computer instructions; the processor is used to execute the computer instructions stored in the memory, so that the computer device executes the steps in the data transmission method executed by the terminal in the first aspect, or executes the steps in the data transmission method executed by the server in the first aspect.
[0065] Optionally, the processor is also used to execute computer instructions stored in the memory, so that the computer device executes the steps of the data transmission method executed by the terminal in the second aspect; or executes the steps of the data transmission method executed by the server in the second aspect.
[0066] In a sixth aspect, a computer device is provided, comprising: a processor and a memory; the memory is used to store computer instructions; the processor is used to execute the computer instructions stored in the memory, so that the computer device executes the steps in the data transmission method executed by the terminal in the aforementioned second aspect, or executes the steps in the data transmission method executed by the server in the aforementioned second aspect.
[0067] In the seventh aspect, a computer-readable storage medium is provided, which includes computer instructions, and the computer instructions instruct a computer device to execute the steps of the data transmission method executed by the terminal in the first aspect, or to execute the steps of the data transmission method executed by the server in the first aspect.
[0068] Optionally, the computer instruction further instructs the computer device to execute the steps of the data transmission method executed by the terminal in the aforementioned second aspect; or to execute the steps of the data transmission method executed by the server in the aforementioned second aspect.
[0069] In an eighth aspect, a computer-readable storage medium is provided, which includes computer instructions, and the computer instructions instruct a computer device to execute the steps of the data transmission method executed by the terminal in the second aspect, or to execute the steps of the data transmission method executed by the server in the second aspect.
[0070] In a ninth aspect, the present application provides a computer program product, the computer program product comprising computer instructions, the computer instructions being stored in a computer-readable storage medium. A processor of a computer device may read the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the steps in the data transmission method executed by the terminal in the first aspect, or executes the steps in the data transmission method executed by the server in the first aspect.
[0071] Optionally, the processor also executes the computer instructions so that the computer device executes the steps of the data transmission method executed by the terminal in the second aspect, or executes the steps of the data transmission method executed by the server in the second aspect.
[0072] In a tenth aspect, the present application provides a computer program product, the computer program product comprising computer instructions, the computer instructions being stored in a computer-readable storage medium. A processor of a computer device can read the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the steps in the data transmission method executed by the terminal in the second aspect, or executes the steps in the data transmission method executed by the server in the second aspect.
[0073] In the eleventh aspect, a chip is provided, which may include a programmable logic circuit and / or program instructions, and when the chip is running, it is used to execute the steps of the data transmission method executed by the terminal in the first aspect, or to execute the steps of the data transmission method executed by the server in the first aspect.
[0074] Optionally, when the chip is running, it is also used to execute the steps of the data transmission method executed by the terminal in the second aspect, or execute the steps of the data transmission method executed by the server in the second aspect.
[0075] In the twelfth aspect, a chip is provided, which may include a programmable logic circuit and / or program instructions, and when the chip is running, it is used to execute the steps of the data transmission method executed by the terminal in the second aspect, or execute the steps of the data transmission method executed by the server in the second aspect.
[0076] In the thirteenth aspect, a terminal is provided, wherein the terminal is the terminal described in any one of the third aspect or the terminal described in any one of the fourth aspect.
[0077] In a fourteenth aspect, a server is provided, wherein the server is a terminal as described in any one of the third aspects, or a terminal as described in any one of the fourth aspects.
[0078] In summary, the server sends file data to the terminal based on the file transfer bandwidth specified by the terminal, thereby limiting the download of the terminal's file data through the file transfer bandwidth negotiated with the terminal, thereby improving the flexibility of data transmission between the terminal and the server. In addition, the file transfer bandwidth specified by the terminal is constantly changing, and the server limits the download of the terminal's file data according to different file transfer bandwidths, thereby realizing dynamic file data download control, and further improving the flexibility of data transmission between the terminal and the server. Furthermore, when the terminal obtains the file transfer bandwidth specified by the terminal in real time and sends the file transfer bandwidth to the server, the terminal and the server can negotiate the file transfer bandwidth in real time, thereby ensuring real-time control of file data download.
[0079] The terminal sends file data to the server based on the file transfer bandwidth specified by the server, thereby limiting the upload of the terminal's file data through the file transfer bandwidth negotiated with the server, thereby improving the flexibility of data transmission between the terminal and the server. In addition, the file transfer bandwidth specified by the server is constantly changing, and the terminal limits the upload of the terminal's file data according to different file transfer bandwidths, thereby realizing dynamic file data upload control, and further improving the flexibility of data transmission between the terminal and the server. Furthermore, when the server, such as the target virtual machine, obtains the specified file transfer bandwidth in real time and sends the file transfer bandwidth to the terminal, the terminal and the server can achieve real-time negotiation of the file transfer bandwidth, thereby ensuring real-time control of file data upload. BRIEF DESCRIPTION OF THE DRAWINGS
[0080] Figure 1A It is a schematic diagram of an application environment of a desktop cloud system involved in a data transmission method provided in an embodiment of the present application;
[0081] Figure 1B It is a schematic diagram of an application environment of a desktop cloud system involved in another data transmission method provided in an embodiment of the present application;
[0082] Figure 2 It is a flowchart of a data transmission method involving downlink bandwidth limitation provided in an embodiment of the present application;
[0083] Figure 3 It is a flowchart of a data transmission method involving uplink bandwidth limitation provided in an embodiment of the present application;
[0084] Figure 4 A schematic diagram schematically shows an actual application environment of a desktop cloud system involved in a data transmission method;
[0085] Figure 5 It is a structural diagram of a desktop cloud system provided in an embodiment of the present application;
[0086] Figure 6 It is a structural diagram of another desktop cloud system provided in an embodiment of the present application;
[0087] Figure 7 It is a possible basic hardware architecture of the computer device provided in the embodiment of the present application. DETAILED DESCRIPTION
[0088] In order to make the principles and technical solutions of the present application clearer, the implementation methods of the present application will be further described in detail below in conjunction with the accompanying drawings.
[0089] Figure 1A 1 is a schematic diagram of an application environment of a desktop cloud system involved in a data transmission method provided in an embodiment of the present application. The desktop cloud system includes: a terminal 101 and a server 102, and a virtual machine (VM) 1021 is deployed in the server 102. The architecture of the desktop cloud system can refer to the virtual desktop architecture (Virtual Desktop Infrastructure, VDI).
[0090] The number of virtual machines 1021 is usually the same as the number of terminals 101, and each virtual machine 1021 corresponds to a terminal. The server 102 provides desktop cloud services for the corresponding terminal 101 through the virtual machine 1021. The terminal 102 can be a terminal such as a computer, a tablet computer or a mobile phone, and the user can operate the terminal 102 through a mouse, a keyboard or a touch screen. The server 102 can be a server cluster composed of one server or multiple servers, or a cloud computing center, or other computer equipment.
[0091] Figure 1BIt is a schematic diagram of the application environment of a desktop cloud system involved in another data transmission method provided in an embodiment of the present application. The desktop cloud system includes: a terminal 101 and a server 102. The server 102 is used to generate a virtual desktop and provide the virtual desktop to the terminal 101; the server 102 is also used to receive access to the virtual desktop based on the terminal 101. Among them, the terminal 102 can be a terminal such as a computer, a tablet computer or a mobile phone, and the user can operate the terminal 102 through a mouse, a keyboard or a touch screen. The server 102 can be a server cluster composed of one server or multiple servers, or a cloud computing center, or other computer equipment.
[0092] The foregoing Figure 1A and Figure 1B In one optional manner, the terminal 101 communicates with the server 102 by using a browser to access a web page. In another optional manner, a desktop cloud client is installed in the terminal 101, and the terminal 101 communicates with the server 102 through the desktop cloud client. Optionally, the desktop cloud client may be a thin client (TC), a soft client (SC) or other types of clients.
[0093] A wired or wireless communication connection is established between the terminal 101 and the server 102. For example, the two can communicate based on the Remote Desktop Protocol (RDP) or a custom protocol.
[0094] To facilitate the readers’ understanding, Figure 1A Taking the application scenario as an example, the process of server 102 providing desktop cloud services to terminal 101 is briefly introduced: assuming that the terminal is installed with a desktop cloud client, after the user logs in to the desktop cloud client through the user account, the desktop cloud client obtains the virtual machine address related to the user account, and the desktop cloud client establishes a communication connection with the virtual machine in server 102 through the virtual machine address. The virtual machine provides a virtual desktop for the desktop cloud client, and the virtual machine transmits the content accessed by the user (such as a desktop or an application) to the desktop cloud client through the aforementioned communication connection, and the desktop cloud client displays the content on terminal 101.
[0095] The foregoing Figure 1A and Figure 1BIn the communication service generated by each access of the terminal to the server is called a session service, and the corresponding data is called session service data. The session service data can be transmitted with the desktop as the granularity (that is, the data transmitted each time is the data of the entire virtual desktop provided by the server), or it can be transmitted with the application as the granularity (that is, the data transmitted each time is the data of a certain application on the virtual desktop provided by the server). The session service is the service between the terminal and the server. The session service may include any one or any combination of the following: the service corresponding to the event triggered by the external device (referred to as the peripheral, such as a mouse, keyboard or touch screen) or the service generated by accessing the desktop application provided by the server. Correspondingly, the session service data may include any one or any combination of the following: the event data corresponding to the event triggered by the external device, or the service data generated by accessing the desktop application provided by the server. Among them, the desktop application is an application related to the virtual desktop installed in the server, and its logo (such as an icon) can be displayed in the virtual desktop. The desktop application can be a document editing program, an image application, an audio application or a video application, etc.; the corresponding session service data is document data, image data, audio data or video data. When the session service data is transmitted based on the desktop protocol, the session service data is also called desktop protocol data. It should be noted that in the aforementioned Figure 1A In the context of a session service, a session service refers to a service between a terminal and a corresponding virtual machine in a server.
[0096] It is worth noting that the data transmission method provided in the embodiment of the present application can also be applied to other scenarios. Figure 1A and Figure 1B This is just an illustrative description. As long as the server can provide a virtual desktop for the terminal, it should be included in the protection scope of the embodiments of this application. The embodiments of this application will not be repeated. In addition, the embodiments of this application do not limit the number of terminals and servers. Figure 1A The data transmission method is described in the application scenario shown in the figure. The data transmission methods in other application scenarios can refer to the corresponding contents in the subsequent embodiments. Figure 1B The communication process between the server and the terminal can be referred to Figure 1A The communication process between the server and the terminal.
[0097] In the embodiment of the present application, by limiting the file data transmission between the server and the terminal, the data transmission process between the server and the terminal can be flexibly adjusted. Among them, the restriction process of file data transmission between the server and the terminal can be divided into two aspects: upstream bandwidth restriction and downstream bandwidth restriction. The embodiment of the present application describes the data transmission method in the desktop cloud system from these two aspects:
[0098] First, as Figure 2 As shown, Figure 2 1 is a flow chart of a data transmission method involving downlink bandwidth limitation provided in an embodiment of the present application, the method comprising:
[0099] S201. The server provides a virtual desktop to a terminal.
[0100] by Figure 1A For example, after the server establishes a connection with the terminal through the remote desktop protocol or a custom protocol, it generates a virtual desktop through the target virtual machine corresponding to the terminal and provides the virtual desktop for the terminal. The target virtual machine is used to provide a virtual desktop for the terminal, that is, the target virtual machine is the virtual machine corresponding to the terminal in the server, and its function is equivalent to the host of the terminal.
[0101] S202: The terminal sends a download request for file data to the server.
[0102] In an optional manner, the terminal may send a file download request to the server through the aforementioned remote desktop protocol or a custom protocol, wherein the file download request is used to request the server to download file data, which is data pre-stored in the server. For example, the file download request includes a file identifier (Identity, id), which is used to indicate the file data to be downloaded. For example, the file identifier may include a string of numbers and / or text.
[0103] S203: The server obtains the file transmission bandwidth specified by the terminal.
[0104] The file transfer bandwidth is specified by the terminal, and the server obtains the file transfer bandwidth to achieve negotiation between the two parties on the file transfer bandwidth. The file transfer bandwidth specified by the terminal is the upper limit of the bandwidth that can be used for file data transmission during the process of the terminal downloading file data. It can be the file transfer bandwidth supported by the terminal, referred to as the file transfer bandwidth of the terminal.
[0105] Optionally, the file transmission bandwidth specified by the terminal is determined based on the uplink required bandwidth of the session service data and the processing bandwidth of the terminal. The session service data is data generated when the terminal accesses a virtual desktop provided by a server (eg, a target virtual machine).
[0106] The uplink required bandwidth of the session service data refers to the bandwidth required for the session service data sent by the terminal to the server (e.g., the target virtual machine). In an optional example, the uplink required bandwidth of the session service data is the actual uplink required bandwidth. Take the virtual page provided by the target virtual machine in the server as an example. Assuming that the session service between the terminal and the target virtual machine is the service corresponding to the mouse click event, the session service data sent by the terminal (such as the desktop cloud client therein) to the target virtual machine is the control instruction generated by the click event, and the bandwidth required for the control instruction is 1Kb / s (kilobits per second, also expressed as Kbps), then the actual uplink required bandwidth of the session service data is 1Kb / s. In another optional example, the uplink required bandwidth of the session service data is the uplink required bandwidth predicted based on the actual uplink required bandwidth. Optionally, the uplink required bandwidth of the session service data can be predicted based on the actual uplink required bandwidth using algorithms such as machine learning. When the uplink bandwidth requirement of session service data is the predicted bandwidth, the short-term future bandwidth requirement can be estimated to achieve better control of the transmission bandwidth of file data in scenarios such as bandwidth burst (referring to relatively high-bandwidth data transmission in a short period of time, that is, data transmission greater than the bandwidth threshold within a period of time less than the duration threshold).
[0107] The processing bandwidth of the terminal is the bandwidth actually supported by the hardware resources (which can also be regarded as the hardware processing capability) of the terminal. The hardware resources of the terminal include resources such as electronic, mechanical and / or optoelectronic components in the terminal, for example, CPU resources, memory resources and / or hard disk resources. Since at different times, the terminal not only runs the desktop cloud client, but also may run other services besides the desktop cloud client, such as applications that occupy hardware resources, these other services occupy the hardware resources of the terminal, affecting the hardware resources allocated to the desktop cloud client, thereby limiting the processing bandwidth of the terminal.
[0108] For example, the file transmission bandwidth specified by the terminal is the difference between the processing bandwidth of the terminal and the uplink required bandwidth of the session service data. That is, the file transmission bandwidth C_BW specified by the terminal satisfies the first bandwidth formula, which includes:
[0109] C_BW = C_BW 1 - P_U_BW;
[0110] Among them, C_BW 1 is the processing bandwidth of the terminal; P_U_BW is the uplink required bandwidth of the session service data.
[0111] In this way, under the limitation of the hardware resources of the terminal, it is possible to avoid overloading the hardware resources of the terminal during the subsequent downloading of file data, thereby reducing the impact on other services of the terminal; and the processing bandwidth of the terminal first meets the uplink bandwidth requirement of the session service data, and the remaining bandwidth meets the file transmission bandwidth requirement of the terminal, thereby avoiding the transmission of file data occupying the bandwidth required for the session service data during the subsequent downloading of file data, thereby avoiding the impact on the terminal's session service and ensuring the normal progress of the session service.
[0112] It is worth noting that the file transfer bandwidth specified by the terminal can also be determined in other ways. For example, the file transfer bandwidth specified by the terminal is less than or equal to the processing bandwidth of the terminal. In this way, under the limitation of the hardware resources of the terminal, it is possible to avoid overloading the hardware resources of the terminal during the download of file data, thereby reducing the impact on other services of the terminal. For example, the file transfer bandwidth specified by the terminal is equal to the product of the processing bandwidth of the terminal and m%, where m is a specified value and is a positive number. For another example, the file transfer bandwidth specified by the terminal is less than or equal to the difference between the preset bandwidth threshold and the uplink required bandwidth of the session service data. In this way, the processing bandwidth specified by the terminal first meets the uplink required bandwidth of the session service data, and the remaining bandwidth then meets the file transfer bandwidth requirement of the terminal. This can avoid the occupation of the bandwidth required for the session service data by the transmission of file data during the subsequent download of file data, avoid the impact on the terminal's session service, and ensure the normal progress of the session service.
[0113] In an optional example, the terminal obtains the file transfer bandwidth of the terminal and sends the file transfer bandwidth of the terminal to the server. For example, the file transfer bandwidth of the terminal is sent to the target virtual machine in the server through the installed desktop cloud client. Correspondingly, the server receives the file transfer bandwidth sent by the terminal.
[0114] In the first optional mode, the terminal can obtain the file transfer bandwidth of the terminal periodically or in real time, and send the file transfer bandwidth to the server each time the file transfer bandwidth is obtained. In the second optional mode, the server can send a bandwidth acquisition request to the terminal, and the bandwidth acquisition request is used to request the file transfer bandwidth of the terminal. After receiving the bandwidth acquisition request, the terminal obtains the file transfer bandwidth specified by itself and sends the obtained file transfer bandwidth to the server. For example, the server can send the bandwidth acquisition request to the terminal after receiving the file download request. In the above two optional modes, the terminal can carry the file transfer bandwidth specified by the terminal in the session service request or heartbeat packet sent to the server, so as to reduce the communication overhead between the terminal and the server; the terminal can also use a separate message to send the file transfer bandwidth specified by the terminal. In the third optional mode, the terminal can carry the file transfer bandwidth specified by the terminal in the above file download request, so as to reduce the delay of the server obtaining the file transfer bandwidth specified by the terminal, and also reduce the communication overhead between the terminal and the server.
[0115] The above three optional methods are only examples of how the server obtains the file transfer bandwidth specified by the terminal. In actual implementation, the server can also obtain the file transfer bandwidth specified by the terminal in other ways. For example, a bandwidth monitoring device can also be set in the desktop cloud system, and the bandwidth monitoring device is used to monitor the file transfer bandwidth of the terminal, and the server obtains the file transfer bandwidth specified by the terminal from the monitoring device.
[0116] In another optional example, the terminal may also send the processing bandwidth of the terminal and the uplink required bandwidth of the session service data to the server, and the server determines the file transfer bandwidth specified by the terminal based on the processing bandwidth of the terminal and the uplink required bandwidth of the session service data. For example, the server determines the difference between the processing bandwidth of the terminal and the uplink required bandwidth of the session service data as the file transfer bandwidth specified by the terminal.
[0117] It should be noted that the server may receive multiple file transfer bandwidths sent by the terminal, such as multiple file transfer bandwidths periodically sent by the terminal. The server can obtain the latest file transfer bandwidth from the multiple file transfer bandwidths received as the file transfer bandwidth specified by the terminal. In this way, it can be ensured that the obtained file transfer bandwidth is similar to or the same as the actual file transfer bandwidth of the terminal, and the file transfer bandwidth specified by the terminal can be obtained in real time, thereby providing more accurate bandwidth restrictions for the subsequent download of file data of the terminal.
[0118] S204: The server sends the file data to the terminal based on the file transmission bandwidth specified by the terminal.
[0119] Accordingly, the terminal receives the file data sent by the server based on the file transfer bandwidth. For example, the server sends the file data to the terminal based on the target bandwidth threshold determined by the file transfer bandwidth. For example, the bandwidth occupied when the file data is transmitted is less than or equal to the target bandwidth threshold; accordingly, the terminal receives the file data sent by the server based on the target bandwidth threshold. For example, if the target bandwidth threshold is 2Mb / s (megabits per second, also expressed as Mbps), the bandwidth occupied when the server sends the file data to the terminal is less than or equal to 2Mb / s.
[0120] The target bandwidth threshold is determined based on the file transfer bandwidth and a target parameter; the target parameter is any one or any combination of the following: the downlink required bandwidth of the session service data or the processing bandwidth of the target virtual machine.
[0121] The session service data is the data generated by the terminal accessing the virtual desktop provided by the target virtual machine. The downlink bandwidth required for the session service data refers to the bandwidth required for the session service data sent by the target virtual machine to the terminal (such as a desktop cloud client). In an optional example, the downlink bandwidth required for the session service data is the actual downlink bandwidth required. For example, the session service between the terminal and the target virtual machine is the service corresponding to the mouse click event, and the session service data sent by the target virtual machine to the terminal is the response information of the control instruction generated by the click event. The bandwidth required for the response information is 1Kb / s, and the downlink bandwidth required for the session service data is 1Kb / s. In another optional example, the downlink bandwidth required for the session service data is the downlink bandwidth required based on the actual downlink bandwidth requirement prediction. Optionally, the downlink bandwidth required for the session service data can be obtained by using algorithms such as machine learning based on the actual downlink bandwidth requirement prediction. When the downlink bandwidth required for the session service data is the predicted bandwidth, the bandwidth transmission bandwidth of the file data can be better controlled in scenarios such as bandwidth bursts by estimating the bandwidth demand in the short term future.
[0122] The target virtual machine is used to provide a virtual desktop for the terminal. The processing bandwidth of the target virtual machine is the bandwidth allocated by the server to the target virtual machine, that is, the bandwidth that the target virtual machine can use.
[0123] The target bandwidth threshold can be determined in a variety of ways. The present application embodiment uses the following determination methods as examples for illustration:
[0124] In the first determination method, the target bandwidth threshold may be a smaller value determined from the difference between the processing bandwidth of the target virtual machine and the downlink required bandwidth of the session service data, and the file transfer bandwidth. That is, the target bandwidth threshold D_BW1 satisfies the second bandwidth formula, which includes:
[0125] D_BW1=Min(C_BW,S_BW–P_D_BW);
[0126] Among them, C_BW is the file transfer bandwidth specified by the terminal; S_BW is the processing bandwidth of the target virtual machine; P_D_BW is the downlink required bandwidth of the session service data.
[0127] Based on the second bandwidth formula, it can be known that D_BW1≤C_BW, and D_BW1≤S_BW–P_D_BW. When D_BW1≤C_BW, under the limitation of the file transmission bandwidth, it is possible to avoid affecting the terminal's services other than the file download service during the process of downloading file data. For example, when C_BW is determined based on the first bandwidth formula, it is possible to avoid affecting the terminal's session service, and it is also possible to avoid overloading the terminal's hardware resources, thereby reducing the impact on other services of the terminal.
[0128] When D_BW1≤S_BW–P_D_BW, under the limitation of the processing bandwidth of the target virtual machine, it is possible to avoid overloading the target virtual machine during the process of downloading file data, thereby reducing the impact on other services of the target virtual machine (such as the services of applications installed on the virtual machine itself); and the processing bandwidth of the target virtual machine first meets the downlink bandwidth demand of the session service data, and the remaining bandwidth meets the demand of the file download service, thereby avoiding bandwidth competition between the file data transmission service and the session service, avoiding the occupation of the bandwidth required for the session service data by the file data transmission during the process of downloading file data, avoiding the impact on the session service of the target virtual machine, and ensuring the normal progress of the session service.
[0129] In the second determination method, the target bandwidth threshold may be a smaller value determined from the difference between the processing bandwidth of the target virtual machine and the bandwidth occupied by the desktop application, and the file transfer bandwidth. That is, the target bandwidth threshold D_BW1 satisfies the third bandwidth formula, which includes:
[0130] D_BW 1=Min(C_BW,S_BW–A_BW);
[0131] Among them, C_BW is the file transfer bandwidth specified by the terminal; S_BW is the processing bandwidth of the target virtual machine, and A_BW is the bandwidth occupied by the desktop application. As mentioned above, the desktop application refers to the application related to the virtual desktop installed in the virtual machine, and the bandwidth it occupies is the bandwidth generated by communicating with the third-party server.
[0132] Based on the third bandwidth formula, it can be known that D_BW1≤C_BW, and D_BW1≤S_BW-A_BW. Among them, when D_BW1≤C_BW, under the limitation of file transmission bandwidth, it can avoid affecting the terminal's services other than file downloading services during the process of downloading file data. For example, when C_BW is determined based on the first bandwidth formula, it can avoid affecting the terminal's session services, and it can also avoid overloading the terminal's hardware resources, reducing the impact on other services of the terminal.
[0133] When D_BW1≤S_BW–A_BW, under the limitation of the processing bandwidth of the target virtual machine, it is possible to avoid overloading the target virtual machine during the process of downloading file data, thereby reducing the impact on other services of the target virtual machine; and the processing bandwidth of the target virtual machine first meets the bandwidth requirements of the desktop application, and the remaining bandwidth meets the requirements of the file download service, thereby avoiding bandwidth competition between the file data transmission service and the session service, avoiding the occupation of the bandwidth required by the desktop application by the file data transmission during the process of downloading file data, avoiding the impact on the normal operation of the desktop application, and reducing the freeze of the desktop application.
[0134] In the third determination method, the target bandwidth threshold may be a smaller value determined from the difference between the processing bandwidth of the target virtual machine and the bandwidth occupied by the desktop application, the downlink required bandwidth of the session service data, and the file transfer bandwidth. That is, the target bandwidth threshold D_BW1 satisfies the fourth bandwidth formula, which includes:
[0135] D_BW1=Min(C_BW,S_BW–P_D_BW-A_BW);
[0136] Among them, C_BW is the file transfer bandwidth specified by the terminal; S_BW is the processing bandwidth of the target virtual machine, P_D_BW is the downlink required bandwidth of the session service data, and A_BW is the bandwidth occupied by the desktop application.
[0137] Based on the fourth bandwidth formula, it can be known that D_BW1≤C_BW, and D_BW1≤S_BW–P_D_BW-A_BW. When D_BW1≤C_BW, under the limitation of the file transmission bandwidth, it is possible to avoid affecting the services of the terminal other than the file download service during the process of downloading file data. For example, when C_BW is determined based on the first bandwidth formula, it is possible to avoid affecting the session service of the terminal, and it is also possible to avoid overloading the hardware resources of the terminal, thereby reducing the impact on other services of the terminal.
[0138] When D_BW1≤S_BW–P_D_BW-A_BW, under the limitation of the processing bandwidth of the target virtual machine, it is possible to avoid overloading the target virtual machine during the process of downloading file data, thereby reducing the impact on other services of the target virtual machine (such as the services of applications installed on the virtual machine itself); and the processing bandwidth of the target virtual machine first meets the downlink bandwidth requirements of the session service data and the bandwidth requirements of the desktop application, and the remaining bandwidth meets the needs of the file download service, thereby avoiding the transmission of file data occupying the bandwidth required for the session service data and the bandwidth required for the desktop application during the process of downloading file data, thereby avoiding the impact on the normal operation of the session service and desktop application of the target virtual machine, ensuring the normal progress of the session service and reducing the freeze of the desktop application.
[0139] Optionally, the processing bandwidth S_BW of the target virtual machine is a smaller value determined from the bandwidth actually supported by the hardware resources allocated to the target virtual machine and the actual bandwidth quota of the target virtual machine. That is, the processing bandwidth S_BW of the target virtual machine satisfies the third bandwidth formula, which includes:
[0140] S_BW = Min(S_BW1, S_BW2);
[0141] Among them, S_BW1 is the bandwidth actually supported by the hardware resources allocated to the target virtual machine. The server allocates hardware resources to each deployed virtual machine. Because at different times, each virtual machine not only runs session services, but may also run other services besides session services, such as services running locally. The other services occupy the hardware resources corresponding to the virtual machine, affecting the bandwidth supported by the hardware resources allocated to the virtual machine. For example, a video application is running in the target virtual machine. The operation of the video application occupies x hardware resources allocated to the target virtual machine, and the hardware resources allocated to the target virtual machine by the server are y, then S_BW1 is the bandwidth supported by the hardware resources of yx. The server can periodically obtain the bandwidth supported by the hardware resources of the target virtual machine, and determine the most recently obtained bandwidth as the bandwidth actually supported by the hardware resources allocated to the target virtual machine; it can also obtain the bandwidth actually supported by the hardware resources allocated to the target virtual machine when it is necessary to determine the target bandwidth threshold.
[0142] S_BW2 is the actual bandwidth quota of the target virtual machine, which is the bandwidth actually allocated to the target virtual machine. For example, the actual bandwidth quota S_BW2 of the target virtual machine is determined based on the bandwidth information of the virtual machine deployed in the server, and the bandwidth information of the virtual machine is used to reflect the bandwidth situation of the virtual machine.
[0143] In the embodiment of the present application, the bandwidth information of each virtual machine deployed in the server is dynamically changeable. The server can adjust the bandwidth information of each virtual machine according to the actual strategy, so as to determine the actual bandwidth quota of each virtual machine. The bandwidth information includes any one or any combination of the following: minimum reserved bandwidth, free bandwidth allowed to be shared by other virtual machines, or priority of bandwidth use. To facilitate the reader's understanding, the embodiment of the present application takes the following optional methods as examples to illustrate the process of obtaining bandwidth information:
[0144] In a first optional manner, the bandwidth information includes: a minimum reserved bandwidth.
[0145] The minimum reserved bandwidth of a virtual machine refers to the lower limit of the bandwidth reserved for the virtual machine. The actual bandwidth quota of the virtual machine cannot be lower than the minimum reserved bandwidth. This ensures that the virtual machine provides effective services to the terminal and avoids user-perceivable delays during the execution of session services.
[0146] The minimum reserved bandwidth of each virtual machine is adjustable. For example, the server sets the minimum reserved bandwidth of each virtual machine according to a preset ratio or a ratio obtained in real time; for another example, the server sets the minimum reserved bandwidth of each virtual machine according to the preset minimum reserved bandwidth of each virtual machine or the minimum reserved bandwidth of each virtual machine obtained in real time. For example, assuming that the server presets the total bandwidth of the minimum reserved bandwidth of all virtual machines to T, and there are 3 virtual machines deployed in the server, and the preset ratio is 1:5:4, then the minimum reserved bandwidths of the 3 virtual machines are T / 10, T / 2 and 2T / 5 respectively.
[0147] In a second optional manner, the bandwidth information includes: idle bandwidth allowed to be shared by other virtual machines.
[0148] Assuming that the first virtual machine is any virtual machine deployed in the server, the idle bandwidth of the first virtual machine that is allowed to be shared by other virtual machines refers to the upper limit of the idle bandwidth of the first virtual machine that can be occupied by virtual machines other than the first virtual machine. That is, other virtual machines can occupy the bandwidth of the first virtual machine, and the bandwidth occupied by the first virtual machine cannot exceed the idle bandwidth allowed to be shared by other virtual machines. In this way, when the first virtual machine is idle (for example, when not communicating with a terminal or a third-party server), its idle bandwidth can be provided to other virtual machines for use, thereby realizing effective utilization of the idle bandwidth without affecting the subsequent normal operation of the first virtual machine.
[0149] For example, when the first virtual machine communicates with the terminal, if a virtual machine other than the first virtual machine has idle bandwidth that is allowed to be shared by other virtual machines, the first virtual machine can occupy part or all of the idle bandwidth as part of the actual bandwidth quota of the virtual machine. For example, the idle bandwidth of the virtual machine that is allowed to be shared by other virtual machines is S, and r% of the idle bandwidth is allowed to be occupied by the first virtual machine, where r is a specified value and is a positive number, and the actual bandwidth quota of the virtual machine is greater than S×r%. Referring to the first optional method described above, when the bandwidth information also includes: the minimum reserved bandwidth, the actual bandwidth quota of the first virtual machine is greater than S×r%+x, where x is the minimum reserved bandwidth of the first virtual machine.
[0150] The idle bandwidth of each virtual machine that is allowed to be shared by other virtual machines is adjustable. For example, the server sets the idle bandwidth of each virtual machine that is allowed to be shared by other virtual machines according to a preset ratio or a ratio obtained in real time; for another example, the server sets the idle bandwidth of each virtual machine that is allowed to be shared by other virtual machines according to a preset idle bandwidth or an idle bandwidth obtained in real time. For example, assuming that the server pre-sets the total bandwidth of the idle bandwidth that is allowed to be shared by other virtual machines for all virtual machines to be N, and there are 3 virtual machines deployed in the server, and the preset ratio is 1:4:5, then the minimum reserved bandwidths of the 3 virtual machines are N / 10, 2N / 5 and N / 2 respectively.
[0151] In a third optional manner, the bandwidth information includes: a priority for using the bandwidth.
[0152] The server sets a bandwidth usage priority for each built-in virtual machine, and different virtual machines may have different priorities. Assuming that the first virtual machine is any virtual machine deployed in the server, the bandwidth usage priority of the first virtual machine is used to indicate at least one of the order in which the first virtual machine can preempt bandwidth resources, the upper limit of the preemptible bandwidth, or the duration of the preempted bandwidth. For example, the bandwidth usage priority of each virtual machine can be adopted when the server has insufficient bandwidth resources. The situation where the server has insufficient bandwidth resources means that the bandwidth that the server can schedule is less than the sum of the bandwidths required by each virtual machine.
[0153] The priority of the first virtual machine's bandwidth usage is positively correlated with the order of bandwidth resources that can be preempted, the upper limit of bandwidth that can be preempted, and the duration of bandwidth preemption. That is, the higher the priority of the first virtual machine's bandwidth usage, the higher the order of bandwidth resources that can be preempted, the larger the upper limit of bandwidth that can be preempted, and the longer the duration of bandwidth preemption.
[0154] For example, assume that three virtual machines are deployed in the server, namely virtual machine 1, virtual machine 2 and virtual machine 3, and the corresponding bandwidth usage priorities are level 1, level 2 and level 3, respectively, where a smaller level represents a higher level.
[0155] If the priority of bandwidth usage is used to indicate the order in which virtual machines can seize bandwidth resources, on the basis of ensuring the minimum reserved bandwidth of each virtual machine, when the available bandwidth (i.e., the bandwidth allowed to be used) of a virtual machine with a high priority is insufficient, the bandwidth of a virtual machine with a low priority can be seized. For example, if the available bandwidth of virtual machine 1 is insufficient, on the basis of ensuring the minimum reserved bandwidth of virtual machines 2 and 3, the bandwidth of virtual machine 3 can be seized first. If the available bandwidth is still insufficient, the bandwidth of virtual machine 2 can be seized.
[0156] If the priority of bandwidth is used to indicate the upper limit of the preemptible bandwidth of a virtual machine, the upper limits of the preemptible bandwidth of multiple virtual machines are allocated from the schedulable bandwidth of the server in descending order of the priorities of the multiple virtual machines, that is, the upper limit of the preemptible bandwidth of virtual machine 1 is greater than the upper limit of the preemptible bandwidth of virtual machine 2, and the upper limit of the preemptible bandwidth of virtual machine 2 is greater than the upper limit of the preemptible bandwidth of virtual machine 3. Among them, the sum of the upper limits of the preemptible bandwidth of virtual machines 1 to 3 is less than or equal to the schedulable bandwidth of the server, the actual bandwidth quota of virtual machine 1 is less than or equal to the upper limit of the preemptible bandwidth of virtual machine 1; the actual bandwidth quota of virtual machine 2 is less than or equal to the upper limit of the preemptible bandwidth of virtual machine 2; the actual bandwidth quota of virtual machine 3 is less than or equal to the upper limit of the preemptible bandwidth of virtual machine 3.
[0157] If the priority of bandwidth usage is used to indicate the duration of bandwidth preemption of a virtual machine, the duration of bandwidth preemption of multiple virtual machines is allocated in descending order of priority of the multiple virtual machines, that is, the duration of bandwidth preemption of virtual machine 1 is greater than the duration of bandwidth preemption of virtual machine 2, and the duration of bandwidth preemption of virtual machine 2 is greater than the duration of bandwidth preemption of virtual machine 3. For example, if three virtual machines all need to occupy bandwidth, the first duration of virtual machine 1 occupying the schedulable bandwidth of the server is greater than the second duration of virtual machine 2 occupying the schedulable bandwidth of the server, and the second duration is greater than the third duration of virtual machine 3 occupying the schedulable bandwidth of the server.
[0158] If the bandwidth usage priority is also used to indicate the order in which the virtual machines can preempt bandwidth resources, virtual machine 1 can preempt bandwidth resources before virtual machines 2 and 3, and virtual machine 2 can preempt bandwidth before virtual machine 3.
[0159] The above three optional methods can be used to determine the actual bandwidth quota of each virtual machine separately, or they can be combined to determine the actual bandwidth quota of each virtual machine. The specific implementation process of the three optional methods can be adjusted according to the actual strategy, which can be set by the user or the management personnel, and can also be dynamically adjusted by artificial intelligence algorithms such as machine learning algorithms. The actual strategy can be affected by factors such as usage scenarios (such as company usage scenarios or personal usage scenarios), payment types (such as different payment quotas) or user levels (such as different levels of users, such as ordinary users or VIP users).
[0160] Compared with statically setting the bandwidth quota for each virtual machine, in an embodiment of the present application, the virtual machines in the server share the bandwidth of the server (such as the network card bandwidth). By adjusting the bandwidth information of each virtual machine and determining the dynamically variable actual bandwidth quota of each virtual machine, full utilization of the bandwidth in the server can be achieved.
[0161] In summary, the server sends file data to the terminal based on the file transmission bandwidth specified by the terminal, thereby limiting the download of the terminal's file data through the file transmission bandwidth negotiated with the terminal, thereby improving the flexibility of data transmission between the terminal and the server.
[0162] In addition, the file transfer bandwidth specified by the terminal is constantly changing. The server limits the download of file data of the terminal according to different file transfer bandwidths, realizes dynamic file data download control, and further improves the flexibility of data transmission between the terminal and the server.
[0163] Furthermore, when the terminal obtains the file transmission bandwidth specified by the terminal in real time and sends the file transmission bandwidth to the server, the terminal and the server can negotiate the file transmission bandwidth in real time, thereby ensuring real-time control of file data downloading.
[0164] Second, as Figure 3 As shown, Figure 3 1 is a flow chart of a data transmission method involving uplink bandwidth limitation provided in an embodiment of the present application, the method comprising:
[0165] S301. The server provides a virtual desktop to a terminal.
[0166] by Figure 1A Taking the application scenario of as an example, after the server establishes a connection with the terminal through the remote desktop protocol or the custom protocol, it generates a virtual desktop through the target virtual machine corresponding to the terminal and provides the virtual desktop for the terminal.
[0167] S302: The terminal obtains the file transmission bandwidth specified by the server.
[0168] The file transfer bandwidth is specified by the server, and the terminal obtains the file transfer bandwidth to achieve negotiation between the two parties on the file transfer bandwidth. Optionally, the terminal can obtain the file transfer bandwidth specified by the server through the target virtual machine in the server. The target virtual machine is used to provide a virtual desktop for the terminal. The file transfer bandwidth specified by the server is the upper limit of the bandwidth that can be used for file data transmission during the process of the terminal uploading file data, which can be the file transfer bandwidth supported by the target virtual machine, referred to as the file transfer bandwidth of the target virtual machine.
[0169] Optionally, the file transfer bandwidth specified by the server is determined based on the downlink bandwidth requirement of the session service data and the processing bandwidth of the target virtual machine. The session service data is the data generated when the terminal accesses the virtual desktop provided by the server (such as the target virtual machine). The downlink bandwidth requirement of the session service data refers to the bandwidth required for the session service data sent by the server (such as the target virtual machine) to the terminal (such as the desktop cloud client). The processing bandwidth of the target virtual machine is the bandwidth allocated by the server to the target virtual machine, that is, the bandwidth that the target virtual machine can use.
[0170] For example, the file transfer bandwidth specified by the server is the difference between the processing bandwidth of the target virtual machine and the downlink required bandwidth of the session service data. That is, the file transfer bandwidth F_BW specified by the server satisfies the fifth bandwidth formula, which includes:
[0171] F_BW = S_BW - P_D_BW;
[0172] Wherein, S_BW is the processing bandwidth of the target virtual machine, and P_D_BW is the downlink required bandwidth of the session service data.
[0173] In this way, under the limitation of the hardware resources of the target virtual machine, it is possible to avoid overloading the hardware resources of the target virtual machine during the subsequent uploading of file data, thereby reducing the impact on other services of the target virtual machine; and the processing bandwidth of the target virtual machine first meets the downlink bandwidth demand of the session service data, and the remaining bandwidth meets the file transmission bandwidth demand of the server, thereby avoiding the transmission of file data occupying the bandwidth required for the session service data during the subsequent process of the terminal uploading file data to the server, avoiding the impact on the session service of the target virtual machine, and ensuring the normal progress of the session service.
[0174] The processing bandwidth of the target virtual machine and the required downlink bandwidth of the session service data may refer to the explanation in the aforementioned S204, which will not be elaborated in detail in the embodiment of the present application.
[0175] Optionally, the processing bandwidth S_BW of the target virtual machine is a smaller value determined from the bandwidth actually supported by the hardware resources allocated to the target virtual machine and the actual bandwidth quota of the target virtual machine. It satisfies the aforementioned third bandwidth formula. For related content, please refer to the corresponding content in the aforementioned S204.
[0176] The actual bandwidth quota of the target virtual machine is determined based on the bandwidth information of the virtual machine deployed in the server, and the bandwidth information includes any one or any combination of the following: minimum reserved bandwidth, idle bandwidth allowed to be shared by other virtual machines, or priority of bandwidth use. The determination method of the actual bandwidth quota of the target virtual machine can refer to the corresponding content in S204, and this embodiment of the application will not be described in detail.
[0177] In one example, the server obtains the specified file transmission bandwidth and sends the file transmission bandwidth to the terminal. Correspondingly, the terminal receives the file transmission bandwidth sent by the server.
[0178] For example, the server sends the file transmission bandwidth to the terminal through the target virtual machine, and correspondingly, the terminal receives the file transmission bandwidth sent by the target virtual machine.
[0179] The specified file transfer bandwidth may be the file transfer bandwidth of the target virtual machine. The target virtual machine obtains its own file transfer bandwidth and sends the file transfer bandwidth of the target virtual machine to the terminal. Correspondingly, the terminal receives the file transfer bandwidth of the target virtual machine sent by the target virtual machine.
[0180] In the first optional mode, the target virtual machine can obtain the file transfer bandwidth of the target virtual machine periodically or in real time, and send the file transfer bandwidth to the terminal (such as a desktop cloud client) each time the file transfer bandwidth is obtained. In the second optional mode, the terminal can send a bandwidth acquisition request to the target virtual machine, and the bandwidth acquisition request is used to request the file transfer bandwidth of the target virtual machine. After receiving the bandwidth acquisition request, the target virtual machine obtains its own file transfer bandwidth and sends the acquired file transfer bandwidth to the terminal. For example, the terminal can send a file upload request to the target virtual machine before uploading the file, and carry the bandwidth acquisition request through the file upload request. In the above two optional modes, the target virtual machine can carry the file transfer bandwidth of the target virtual machine in the session service response or heartbeat packet sent to the terminal, so as to reduce the communication overhead between the target virtual machine and the terminal; the target virtual machine can also use a separate message to send the file transfer bandwidth of the target virtual machine. In the third optional mode, the target virtual machine can carry the file transfer bandwidth of the target virtual machine in the file upload response corresponding to the above file upload request, so as to reduce the delay of the terminal in obtaining the file transfer bandwidth of the target virtual machine, and also reduce the communication overhead between the target virtual machine and the terminal.
[0181] The above three optional methods are all described by taking the target virtual machine obtaining its own file transmission bandwidth and sending it to the terminal as an example. In actual implementation, other modules in the server may also obtain the file transmission bandwidth of the target virtual machine and send it to the terminal.
[0182] The above three optional methods are only several examples of how the terminal obtains the file transfer bandwidth specified by the server. In actual implementation, the terminal can also obtain the file transfer bandwidth specified by the server in other ways. For example, a bandwidth monitoring device can also be set in the desktop cloud system, and the bandwidth monitoring device is used to monitor the file transfer bandwidth of each virtual machine, and the terminal obtains the file transfer bandwidth specified by the server from the monitoring device.
[0183] In another example, the server may also send the downlink required bandwidth of the session service data and the processing bandwidth of the target virtual machine to the terminal, and the terminal determines the file transfer bandwidth specified by the server based on the downlink required bandwidth of the session service data and the processing bandwidth of the target virtual machine. For example, the terminal determines the difference between the downlink required bandwidth of the session service data and the processing bandwidth of the target virtual machine as the file transfer bandwidth specified by the server.
[0184] S303: The terminal sends the file data to the server based on the file transmission bandwidth specified by the server.
[0185] Accordingly, the server receives the file data sent by the terminal based on the file transmission bandwidth. For example, the terminal sends the file data to the terminal based on the target bandwidth threshold determined by the file transmission bandwidth. Optionally, the bandwidth occupied when the file data is transmitted is less than or equal to the target bandwidth threshold; accordingly, the server receives the file data sent by the terminal based on the target bandwidth threshold. For example, if the target bandwidth threshold is 2Mb / s, the bandwidth occupied when the terminal sends the file data to the server is less than or equal to 2Mb / s.
[0186] The target bandwidth threshold is determined based on the file transfer bandwidth and a target parameter; the target parameter is any one or any combination of the following:
[0187] The uplink bandwidth required for session service data or the processing bandwidth of the terminal.
[0188] The session service data is the data generated when the terminal accesses the virtual desktop provided by the server (such as the target virtual machine). The downlink bandwidth requirement of the session service data refers to the bandwidth required for the session service data sent by the server (such as the target virtual machine) to the terminal (such as the desktop cloud client). For example, the session service between the terminal and the target virtual machine is the service of the video application provided by the target virtual machine for the terminal to access. The session service data sent by the target virtual machine to the terminal is video data. The bandwidth required for the video data is 1Mb / s, and the downlink bandwidth requirement of the session service data is 1Mb / s. The processing bandwidth of the terminal is the bandwidth actually supported by the hardware resources of the terminal.
[0189] For example, the target bandwidth threshold is the smaller value determined from the difference between the processing bandwidth of the slave terminal and the uplink required bandwidth of the session service data, and the file transfer bandwidth. That is, the target bandwidth threshold D_BW2 satisfies the sixth bandwidth formula, which includes:
[0190] D_BW2=Min(F_BW,C_BW 1–P_U_BW);
[0191] Among them, F_BW is the file transfer bandwidth specified by the server; C_BW 1 is the processing bandwidth of the terminal; P_U_BW is the uplink required bandwidth of the session service data.
[0192] Based on the sixth bandwidth formula, it can be known that D_BW2≤F_BW, and D_BW2≤C_BW 1–P_U_BW. When D_BW2≤F_BW, under the limitation of the file transfer bandwidth, it is possible to avoid affecting the services of the target virtual machine other than the file upload service during the process of uploading file data. For example, when F_BW is determined based on the fifth bandwidth formula, it is possible to avoid affecting the session service of the target virtual machine, and it is also possible to avoid overloading the hardware resources of the target virtual machine, thereby reducing the impact on other services of the target virtual machine.
[0193] When D_BW2≤C_BW 1–P_U_BW, under the limitation of the processing bandwidth of the terminal, it is possible to avoid excessive load on the terminal during the process of uploading file data, thereby reducing the impact on other services of the terminal (such as the services of the installed applications); and the processing bandwidth of the terminal first meets the uplink bandwidth requirement of the session service data, and the remaining bandwidth meets the demand of the file upload service, thereby avoiding the transmission of file data occupying the bandwidth required for the session service data during the process of uploading file data, avoiding the impact on the terminal's session service, and ensuring the normal progress of the session service.
[0194] In summary, the terminal sends file data to the server based on the file transmission bandwidth specified by the server, thereby limiting the upload of the terminal's file data through the file transmission bandwidth negotiated with the server, thereby improving the flexibility of data transmission between the terminal and the server.
[0195] In addition, the file transfer bandwidth specified by the server is constantly changing. The terminal limits the upload of file data of the terminal according to different file transfer bandwidths, realizes dynamic file data upload control, and further improves the flexibility of data transmission between the terminal and the server.
[0196] Furthermore, when the server, such as the target virtual machine, obtains the specified file transfer bandwidth in real time and sends the file transfer bandwidth to the terminal, the terminal and the server can negotiate the file transfer bandwidth in real time, thereby ensuring real-time control of file data upload.
[0197] In the embodiment of the present application, the data transmission methods provided by the above two aspects can be combined according to actual conditions, so that the desktop cloud system supports both downlink bandwidth restrictions for file data transmission and uplink bandwidth restrictions for file data transmission. Then the data transmission method includes first executing the data transmission process with downlink bandwidth restrictions provided by the first aspect, and then executing the data transmission process with uplink bandwidth restrictions provided by the second aspect; or the data transmission method includes first executing the data transmission process with uplink bandwidth restrictions provided by the second aspect, and then executing the data transmission process with downlink bandwidth restrictions provided by the first aspect; or, the data transmission process with downlink bandwidth restrictions provided by the first aspect and the data transmission process with uplink bandwidth restrictions provided by the second aspect are executed simultaneously. The order of the data transmission method provided in the embodiment of the present application can be adjusted appropriately, and the steps can also be increased or decreased accordingly according to the situation. Any technician familiar with the technical field can easily think of the change method within the technical scope disclosed in the present application, which should be covered within the protection scope of the present application, so it will not be repeated.
[0198] Figure 4 A schematic diagram of the actual application environment of a desktop cloud system involved in a data transmission method is schematically shown, and the desktop cloud system supports both downstream bandwidth limitation and upstream bandwidth limitation for file data transmission. In the desktop cloud system, it is assumed that the terminals include terminal A1 and terminal A2, and virtual machines B1 and B2 are deployed in the server 102. Among them, an end-side bandwidth flow controller can be deployed in each terminal to limit the upstream bandwidth of file data transmission of the terminal, and the end-side bandwidth flow controller can be configured in the desktop cloud client. A virtual machine bandwidth flow controller can be deployed in each virtual machine to limit the downstream bandwidth of file data in the virtual machine. A host bandwidth manager C1 is also deployed in the server 102 to manage the bandwidth of each virtual machine.
[0199] Figure 4 Take the example of terminal A1 uploading file data to virtual machine B1 and terminal A2 downloading file data from virtual machine B2. In the process of terminal A2 downloading file data from virtual machine B2, the end-side bandwidth flow controller in terminal A2 obtains the file transfer bandwidth of terminal A2 as the specified file transfer bandwidth and sends it to the virtual machine bandwidth flow controller in virtual machine B2. In the process of terminal A2 downloading file data from virtual machine B2, the end-side bandwidth flow controller in terminal A2 obtains the file transfer bandwidth of terminal A2 as the specified file transfer bandwidth and sends it to the virtual machine bandwidth flow controller in virtual machine B2. In the process of terminal A2 downloading file data from virtual machine B2, the end-side bandwidth flow controller in terminal A2 executes the acquisition process of the specified file transfer bandwidth by the terminal in the aforementioned S202 to obtain the specified file transfer bandwidth. The input end of the virtual machine bandwidth flow controller is used to input the file transfer bandwidth of the terminal, and the output end is used to output the target bandwidth threshold. Optionally, the input end of the virtual machine bandwidth flow controller is also used to input the downlink demand bandwidth of the session service data and the processing bandwidth of the target virtual machine. Optionally, the file transfer bandwidth of the terminal input at the input end of the virtual machine bandwidth flow controller can also be replaced by the uplink demand bandwidth based on the session service data and the processing bandwidth of the terminal. Optionally, the processing bandwidth of the target virtual machine input at the input end of the virtual machine bandwidth flow controller can also be replaced by the bandwidth actually supported by the hardware resources allocated to the target virtual machine, and the actual bandwidth quota of the target virtual machine. The file K1 requested to be downloaded by terminal A2 is sent to terminal A2 under the downlink bandwidth limit of the virtual machine bandwidth flow controller in virtual machine B2 (i.e., under the limit of the target bandwidth threshold). The virtual machine bandwidth flow controller executes the target bandwidth threshold determination process in the aforementioned S204 to obtain the target bandwidth threshold. The virtual machine bandwidth flow controller may be configured with a machine learning model, and for example, the machine learning model is used to output the target bandwidth threshold based on the received parameters. In an optional example, when the uplink required bandwidth of the session service data input to the virtual machine bandwidth flow controller is the actual bandwidth, the virtual machine bandwidth flow controller can also predict the uplink required bandwidth of the session service data in the short-term future (i.e., within a specified period of time in the future) based on the actual bandwidth, and determine the target bandwidth threshold based on the predicted uplink required bandwidth.
[0200] In the process of terminal A1 uploading file data to virtual machine B1, the virtual machine bandwidth flow controller in virtual machine B1 obtains the file transfer bandwidth of virtual machine B1 as the specified file transfer bandwidth, and sends the specified file transfer bandwidth to terminal A1. The virtual machine bandwidth flow controller in virtual machine B1 executes the acquisition process of the specified file transfer bandwidth by the server in S302 to obtain the specified file transfer bandwidth. The file K2 that terminal A2 needs to upload is sent to virtual machine B1 under the uplink bandwidth limit of the end-side bandwidth flow controller in terminal A1 (that is, under the limit of the target bandwidth threshold). The end-side bandwidth flow controller is used to execute the determination process of the target bandwidth threshold in S303 to obtain the target bandwidth threshold. For example, the input end of the end-side bandwidth flow controller is used to input the file transfer bandwidth specified by the server, and the output end is used to output the target bandwidth threshold. Optionally, the input end of the end-side bandwidth flow controller is also used for the uplink required bandwidth of the session service data and the processing bandwidth of the terminal. Optionally, the file transfer bandwidth specified by the server input at the input end of the end-side bandwidth flow controller can also be replaced with the downlink required bandwidth of the session service data and the processing bandwidth of the target virtual machine. Optionally, the processing bandwidth of the target virtual machine can also be replaced by the bandwidth actually supported by the hardware resources allocated to the target virtual machine, and the actual bandwidth quota of the target virtual machine. A machine learning model can be configured in the end-side bandwidth flow controller. For example, the machine learning model is used to output a target bandwidth threshold based on the received parameters. In an optional example, when the downlink demand bandwidth of the session service data input to the virtual machine bandwidth flow controller is the actual bandwidth, the end-side bandwidth flow controller can also predict the downlink demand bandwidth of the session service data in the short-term future (i.e., within a specified period of time in the future) based on the actual bandwidth, and determine the target bandwidth threshold based on the predicted downlink demand bandwidth.
[0201] The host bandwidth manager C1 is used to manage the bandwidth information of each virtual machine, and it can adjust the bandwidth information of each virtual machine according to the input actual policy. For the specific process, please refer to the several optional methods of obtaining bandwidth information in the aforementioned S204. Among them, each virtual machine bandwidth flow controller can report the actual bandwidth used by its virtual machine to the host bandwidth manager C1 in real time, so that the host bandwidth manager C1 can adjust the bandwidth information of each virtual machine based on the actual policy and the bandwidth actually used by each virtual machine received.
[0202] It is worth noting that the end-side bandwidth flow controller of terminal A1 can also implement the function of the end-side bandwidth flow controller of terminal A2, the end-side bandwidth flow controller of terminal A2 can also implement the function of the end-side bandwidth flow controller of terminal A1, the virtual machine bandwidth flow controller in virtual machine B1 can also implement the function of the virtual machine bandwidth flow controller in virtual machine B2, and the virtual machine bandwidth flow controller in virtual machine B2 can also implement the function of the virtual machine bandwidth flow controller in virtual machine B1. The embodiments of the present application do not limit this.
[0203] It should be noted that in the above embodiments, one terminal corresponds to one virtual machine as an example. In actual implementation, a user can use the same user account to access the same virtual machine in different terminals (for example, access the same virtual machine through desktop cloud clients installed in different terminals). In this case, multiple terminals correspond to one virtual machine. One possible multi-terminal scenario is a screen projection scenario, that is, a virtual machine projects a virtual desktop to multiple terminals, such as screens in multiple conference rooms; another possible multi-terminal scenario is a document presentation scenario. Assuming that the first virtual machine is any virtual machine deployed in the server, and multiple terminals access the first virtual machine, the server can allocate available bandwidth to the multiple terminals according to preset rules, and the bandwidth of each terminal communicating with the first virtual machine is less than the available bandwidth corresponding to the terminal. For example, the server can obtain the bandwidth supported by the hardware resources of each terminal and / or the uplink required bandwidth of the session service data to allocate available bandwidth to each terminal. For example, the sum of the available bandwidths of multiple terminals is equal to the processing bandwidth of the first virtual machine communication, and the proportion of the available bandwidth of any terminal in the processing bandwidth of the first virtual machine communication is equal to the proportion of the bandwidth supported by the hardware resources of any terminal in the sum of the bandwidths supported by the hardware resources of the multiple terminals. Alternatively, the sum of the available bandwidths of multiple terminals is equal to the processing bandwidth of the first virtual machine communication, and the proportion of the available bandwidth of any terminal in the processing bandwidth of the first virtual machine communication is equal to the proportion of the uplink required bandwidth of any terminal in the sum of the uplink required bandwidths of the multiple terminals. In this way, a terminal with a large bandwidth supported by hardware resources is allocated with more available bandwidth, or a terminal with a large uplink required bandwidth for session service data is allocated with more available bandwidth.
[0204] When multiple terminals access the first virtual machine, if the first terminal among the multiple terminals needs to download file data from the first virtual machine, the process of downloading the file data can refer to the aforementioned S201 to S204, wherein the processing bandwidth of the target virtual machine is replaced by the processing bandwidth of the first terminal in the second bandwidth formula for calculating the target bandwidth threshold; the first terminal needs to upload file data to the first virtual machine, and the process of uploading file data can refer to the aforementioned S301 to S303, wherein the processing bandwidth of the target virtual machine is replaced by the processing bandwidth of the first terminal in the fifth bandwidth formula for calculating the target bandwidth threshold. This embodiment of the present application will not be repeated.
[0205] The above embodiments are all based on the example of one or more virtual machines installed in the server to illustrate the data transmission method. In actual implementation, if no virtual machine is installed in the server, the relevant parameters of the target virtual machine in the above embodiments can be replaced by the relevant parameters of the server. Figure 1B In the application environment shown, the processing bandwidth of the target virtual machine can be replaced by the processing bandwidth of the server.
[0206] In summary, the terminal and the server interact with the file transfer bandwidth specified by the other side, upload or download file data through negotiation with the other side, and limit the upload or download of file data based on the bandwidth conditions of the other side, thereby improving the flexibility of data transmission between the terminal and the server.
[0207] In particular, during the process of transmitting session service data between the terminal and the server, the transmission of session service data is prioritized to avoid the impact of file data upload or download on session service. In addition, the actual bandwidth quota of the aforementioned target virtual machine is determined based on the bandwidth information of the virtual machine deployed in the server. The actual bandwidth quota determined based on the bandwidth information can improve the transmission efficiency of file data in the desktop cloud system while ensuring the normal operation of session service.
[0208] In the related art, since there is no restriction on other services besides the session service, other services will have an impact on the session service. For example, Xiaoming downloads the data of file 1 from the server through the terminal, and watches the video through the video application in the server at the same time. Since there is no restriction on the download of the data of file 1, if the bandwidth occupied by downloading the data of file 1 is large, it will affect the efficiency of the terminal in obtaining the video data from the server, causing the video watched by Xiaoming from the terminal to be stuck, affecting the user experience.
[0209] The data transmission method provided in the embodiment of the present application restricts the uploading and / or downloading of file data. For example, Xiao Ming downloads the data of file 1 from the server through the terminal, and watches the video through the video application in the server at the same time. Since the downloading of the data of file 1 is restricted, the downloading of the data of file 1 needs to give priority to ensuring the effective transmission of the video data. Therefore, it will not affect the efficiency of the terminal in obtaining video data from the server, avoids the video watched by Xiao Ming from the terminal from being stuck, and improves the user experience.
[0210] The embodiment of the present application provides a desktop cloud system 50, which can be as follows Figure 5 As shown, it includes: a terminal 501 and a server 502. The server 502 is used to provide a virtual desktop to the terminal 501; the server 502 is also used to obtain the file transmission bandwidth specified by the terminal 501; the server 502 is also used to send file data to the terminal 501 based on the file transmission bandwidth; the terminal 501 is used to receive the file data sent by the server 502 based on the file transmission bandwidth. Optionally, the structure of the desktop cloud system 50 can also refer to the aforementioned Figure 1A , Figure 1B or Figure 4 structure.
[0211] In an optional example, the terminal 501 is further used to send the file transmission bandwidth to the server 502 ; the server 502 is used to receive the file transmission bandwidth sent by the terminal 501 .
[0212] In an optional example, the terminal 501 is further configured to send a file download request for the file data to the server 502 before the server 502 obtains the file transmission bandwidth specified by the terminal 501 ; the server 502 is configured to receive the file download request sent by the terminal 501 .
[0213] In an optional example, the server 502 is used to send the file data to the terminal 501 based on a target bandwidth threshold determined by the file transmission bandwidth.
[0214] In an optional example, the bandwidth occupied when the file data is transmitted is less than or equal to the target bandwidth threshold.
[0215] The target bandwidth threshold is determined based on the file transfer bandwidth and the target parameter; the target parameter is any one or any combination of the following: the downlink required bandwidth of the session service data or the processing bandwidth of the target virtual machine; the session service data is the data generated by the terminal 501 accessing the virtual desktop provided by the target virtual machine in the server 502, the target virtual machine is used to provide a virtual desktop for the terminal 501, and the processing bandwidth of the target virtual machine is the bandwidth allocated by the server 502 to the target virtual machine.
[0216] In an optional example, the target bandwidth threshold is: a smaller value determined from a difference between a processing bandwidth of the target virtual machine and a downlink required bandwidth of the session service data, and the file transfer bandwidth; or, a smaller value determined from a difference between a processing bandwidth of the target virtual machine and a bandwidth occupied by a desktop application, and the file transfer bandwidth; or, a smaller value determined from a difference between a processing bandwidth of the target virtual machine and a bandwidth occupied by a desktop application, the downlink required bandwidth of the session service data, and the file transfer bandwidth.
[0217] In an optional example, the processing bandwidth of the target virtual machine is: a smaller value determined from a bandwidth actually supported by hardware resources allocated to the target virtual machine and an actual bandwidth quota of the target virtual machine.
[0218] In an optional example, the actual bandwidth quota of the target virtual machine is determined based on the bandwidth information of the virtual machine deployed in the server 502, and the bandwidth information includes any one or any combination of the following: minimum reserved bandwidth, free bandwidth allowed to be shared by other virtual machines, or priority of bandwidth use.
[0219] In an optional example, the required downlink bandwidth of the session service data is the actual required downlink bandwidth, or the required downlink bandwidth predicted based on the actual required downlink bandwidth.
[0220] The present application embodiment provides a desktop cloud system 60. The desktop cloud system 60 is as follows: Figure 6 As shown, it includes: a terminal 601 and a server 602; the server 602 is used to provide a virtual desktop for the terminal 601; the terminal 601 is used to obtain the file transmission bandwidth specified by the server 602; the terminal 601 is also used to send file data to the server 602 based on the file transmission bandwidth; the server 602 is also used to receive the file data sent by the terminal 601 based on the file transmission bandwidth. Optionally, the structure of the desktop cloud system 50 can also refer to the aforementioned Figure 1A , Figure 1B or Figure 4 structure.
[0221] In an optional example, the server 602 is also used to send the file transfer bandwidth to the terminal 601 through a target virtual machine, where the target virtual machine is a virtual machine in the server 602 used to provide a virtual desktop for the terminal 601; the terminal 601 is also used to receive the file transfer bandwidth sent by the target virtual machine.
[0222] In an optional example, the terminal 601 is used to send the file data to the server 602 based on a target bandwidth threshold determined by the file transmission bandwidth.
[0223] In an optional example, the bandwidth occupied when the file data is transmitted is less than or equal to the target bandwidth threshold.
[0224] In an optional example, the target bandwidth threshold is determined based on the file transmission bandwidth and the target parameter; the target parameter is any one or any combination of the following: the uplink required bandwidth of its session service data or the processing bandwidth of the terminal 601;
[0225] The session service data is data generated when the terminal 601 accesses the virtual desktop provided by the server 602 , and the processing bandwidth of the terminal 601 is the bandwidth actually supported by the hardware resources of the terminal 601 .
[0226] In an optional example, the target bandwidth threshold is: a smaller value determined from a difference between a processing bandwidth of the terminal 601 and an uplink required bandwidth of the session service data, and a file transmission bandwidth.
[0227] Optionally, Figure 7 It is a possible basic hardware architecture of the computer device provided in the embodiment of the present application. The computer device may be a terminal or a server.
[0228] See also Figure 7 , the computer device 700 includes a processor 701 , a memory 702 , a communication interface 703 and a bus 704 .
[0229] In the computer device 700, the number of processors 701 may be one or more. Figure 7 Only one of the processors 701 is shown. Optionally, the processor 701 may be a central processing unit (CPU). If the computer device 700 has multiple processors 701, the types of the multiple processors 701 may be different or the same. Optionally, the multiple processors 701 of the computer device 700 may also be integrated into a multi-core processor.
[0230] The memory 702 stores computer instructions and data; the memory 702 may store computer instructions and data required to implement the data transmission method provided in the present application, for example, the memory 702 stores instructions for implementing the steps of the data transmission method executed by the aforementioned terminal or the steps of the data transmission method executed by the server. The memory 702 may be any one or any combination of the following storage media: non-volatile memory (e.g., read-only memory (ROM), solid-state drive (SSD), hard disk (HDD), optical disk), volatile memory.
[0231] The communication interface 703 may be any one or any combination of the following devices: a network interface (eg, an Ethernet interface), a wireless network card, or other device with a network access function.
[0232] The communication interface 703 is used for the computer device 700 to perform data communication with other computer devices or terminals.
[0233] The bus 704 can connect the processor 701 to the memory 702 and the communication interface 703. In this way, the processor 701 can access the memory 702 through the bus 704, and can also use the communication interface 703 to exchange data with other computer devices or terminals.
[0234] In the present application, the computer device 700 executes the computer instructions in the memory 702, so that the computer device 700 implements the data transmission method provided in the present application, or enables the computer device 700 to deploy a desktop cloud system.
[0235] In an exemplary embodiment, a non-temporary computer-readable storage medium including instructions is also provided, such as a memory including instructions, and the above instructions can be executed by a processor of a server to complete the data transmission method shown in each embodiment of the present application. Such as the steps of the data transmission method executed by the terminal, or the steps of the data transmission method executed by the server. For example, the non-temporary computer-readable storage medium can be a ROM, a random access memory (RAM), a CD-ROM, a tape, a floppy disk, and an optical data storage device.
[0236] The present application also provides a terminal, which may be any terminal described in the foregoing embodiments of the present application, such as terminal 101. The present application also provides a server, which may be any server described in the foregoing embodiments of the present application, such as server 102.
[0237] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product, and the computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server, data center, etc. that contains one or more available media integrated. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium, or a semiconductor medium (e.g., a solid-state hard disk), etc.
[0238] In this application, the terms "first", "second" and "third" are used for descriptive purposes only and should not be understood as indicating or implying relative importance. The term "at least one" means one or more, and the term "plurality" means two or more, unless otherwise clearly defined. A refers to B, which means that the content of A and B is either the same or A is a simple variation of B.
[0239] It should be noted that: when the desktop cloud system provided in the above embodiment executes the data transmission method, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the desktop cloud system provided in the above embodiment and the data transmission method embodiment belong to the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.
[0240] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.
[0241] The above description is only an optional embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application shall be included in the protection scope of the present application.
Claims
1. A data transmission method, characterized in that: The method comprises: The server provides a virtual desktop to the terminal; The server obtains the file transmission bandwidth specified by the terminal; The server sends the file data to the terminal based on a target bandwidth threshold determined by the file transfer bandwidth and a target parameter, wherein the target parameter is a processing bandwidth of a target virtual machine in the server, or the target parameter is a combination of a downlink required bandwidth of session service data and a processing bandwidth of the target virtual machine, the target virtual machine is used to provide a virtual desktop for the terminal, the session service data is data generated when the terminal accesses a virtual desktop provided by the target virtual machine, and the processing bandwidth of the target virtual machine is a smaller value determined from a bandwidth actually supported by hardware resources allocated to the target virtual machine and an actual bandwidth quota of the target virtual machine; The terminal receives the file data sent by the server based on the target bandwidth threshold.
2. The method according to claim 1, characterized in that: The method comprises: the terminal sending the file transmission bandwidth to the server; The server obtains the file transmission bandwidth specified by the terminal, including: The server receives the file transmission bandwidth sent by the terminal.
3. The method according to claim 1 or 2, characterized in that: Before the server obtains the file transmission bandwidth specified by the terminal, the method further includes: The terminal sends a file download request for the file data to the server; The server receives the file download request sent by the terminal.
4. The method according to claim 1 or 2, characterized in that: The bandwidth occupied when the file data is transmitted is less than or equal to the target bandwidth threshold.
5. The method according to claim 1 or 2, characterized in that: The target bandwidth threshold is: A smaller value is determined from a difference between a processing bandwidth of the target virtual machine and a downlink required bandwidth of the session service data and the file transmission bandwidth; Alternatively, a smaller value is determined from a difference between a processing bandwidth of the target virtual machine and a bandwidth occupied by a desktop application and the file transfer bandwidth; Alternatively, a smaller value is determined from a difference between the processing bandwidth of the target virtual machine and the bandwidth occupied by the desktop application, the downlink required bandwidth of the session service data, and the file transmission bandwidth.
6. The method according to claim 1 or 2, characterized in that: The actual bandwidth quota of the target virtual machine is determined based on bandwidth information of the virtual machine deployed in the server, where the bandwidth information includes any one or any combination of the following: minimum reserved bandwidth, idle bandwidth allowed to be shared by other virtual machines, or priority of bandwidth usage.
7. The method according to claim 1 or 2, characterized in that: The downlink required bandwidth of the session service data is the actual downlink required bandwidth, or the downlink required bandwidth predicted based on the actual downlink required bandwidth.
8. A data transmission method, characterized in that: The method comprises: The server provides a virtual desktop for the terminal; The terminal obtains the file transmission bandwidth specified by the server; The terminal sends the file data to the server based on a first target bandwidth threshold determined by the file transmission bandwidth; The server receives the file data sent by the terminal based on the first target bandwidth threshold; The target virtual machine in the server is used to provide a virtual desktop for the terminal, and the server is used to send file data to the terminal based on the file transfer bandwidth specified by the terminal and a second target bandwidth threshold determined by a first target parameter, wherein the first target parameter is a processing bandwidth of the target virtual machine, or the first target parameter is a combination of a downlink required bandwidth of session service data and a processing bandwidth of the target virtual machine, the session service data is data generated when the terminal accesses the virtual desktop provided by the target virtual machine, and the processing bandwidth of the target virtual machine is a smaller value determined from a bandwidth actually supported by hardware resources allocated to the target virtual machine and an actual bandwidth quota of the target virtual machine.
9. The method according to claim 8, characterized in that The method further includes: the server sending the file transmission bandwidth specified by the server to the terminal through the target virtual machine; The terminal obtains the file transmission bandwidth specified by the server, including: The terminal receives the file transmission bandwidth specified by the server and sent by the target virtual machine.
10. The method according to claim 8 or 9, characterized in that: The bandwidth occupied by the terminal when transmitting the file data sent to the server based on the first target bandwidth threshold is less than or equal to the first target bandwidth threshold.
11. The method according to claim 8 or 9, characterized in that: The first target bandwidth threshold is determined based on the file transfer bandwidth specified by the server and a second target parameter; the second target parameter is any one or any combination of the following: The required uplink bandwidth of the session service data or the processing bandwidth of the terminal; The processing bandwidth of the terminal is the bandwidth actually supported by the hardware resources of the terminal.
12. The method according to claim 11, characterized in that The first target bandwidth threshold is: a smaller value determined from a difference between a processing bandwidth of the terminal and an uplink required bandwidth of the session service data, and a file transmission bandwidth specified by the server.
13. A desktop cloud system, characterized in that: The desktop cloud system includes: a terminal and a server; The server is used to provide a virtual desktop to the terminal; The server is also used to obtain the file transmission bandwidth specified by the terminal; The server is further used to send file data to the terminal based on a target bandwidth threshold determined by the file transfer bandwidth and a target parameter, wherein the target parameter is a processing bandwidth of a target virtual machine in the server, or the target parameter is a combination of a downlink required bandwidth of session service data and a processing bandwidth of the target virtual machine, the target virtual machine is used to provide a virtual desktop for the terminal, the session service data is data generated when the terminal accesses a virtual desktop provided by the target virtual machine, and the processing bandwidth of the target virtual machine is a smaller value determined from a bandwidth actually supported by hardware resources allocated to the target virtual machine and an actual bandwidth quota of the target virtual machine; The terminal is used to receive the file data sent by the server based on the target bandwidth threshold.
14. The system according to claim 13, characterized in that The terminal is also used to send the file transmission bandwidth to the server; The server is used to receive the file transmission bandwidth sent by the terminal.
15. The system according to claim 13 or 14, characterized in that The terminal is further configured to send a file download request for the file data to the server before the server acquires the file transmission bandwidth specified by the terminal; The server is used to receive the file download request sent by the terminal.
16. The system according to claim 13 or 14, characterized in that The bandwidth occupied when the file data is transmitted is less than or equal to the target bandwidth threshold.
17. The system according to claim 13 or 14, characterized in that The target bandwidth threshold is: A smaller value is determined from a difference between a processing bandwidth of the target virtual machine and a downlink required bandwidth of the session service data and the file transmission bandwidth; Alternatively, a smaller value is determined from a difference between a processing bandwidth of the target virtual machine and a bandwidth occupied by a desktop application and the file transfer bandwidth; Alternatively, a smaller value is determined from a difference between the processing bandwidth of the target virtual machine and the bandwidth occupied by the desktop application, the downlink required bandwidth of the session service data, and the file transmission bandwidth.
18. The system according to claim 13 or 14, characterized in that The actual bandwidth quota of the target virtual machine is determined based on bandwidth information of the virtual machine deployed in the server, where the bandwidth information includes any one or any combination of the following: minimum reserved bandwidth, idle bandwidth allowed to be shared by other virtual machines, or priority of bandwidth usage.
19. The system according to claim 13 or 14, characterized in that The downlink required bandwidth of the session service data is the actual downlink required bandwidth, or the downlink required bandwidth predicted based on the actual downlink required bandwidth.
20. A desktop cloud system, characterized in that: The system comprises: a terminal and a server; The server is used to provide a virtual desktop for the terminal; The terminal is used to obtain the file transmission bandwidth specified by the server; The terminal is further configured to send file data to the server based on a first target bandwidth threshold determined by the file transmission bandwidth; The server is further configured to receive the file data sent by the terminal based on the first target bandwidth threshold; The target virtual machine in the server is used to provide a virtual desktop for the terminal, and the server is also used to send file data to the terminal based on the file transfer bandwidth specified by the terminal and a second target bandwidth threshold determined by a first target parameter, wherein the first target parameter is a processing bandwidth of the target virtual machine, or the first target parameter is a combination of a downlink required bandwidth of session service data and a processing bandwidth of the target virtual machine, the session service data is data generated when the terminal accesses the virtual desktop provided by the target virtual machine, and the processing bandwidth of the target virtual machine is a smaller value determined from a bandwidth actually supported by hardware resources allocated to the target virtual machine and an actual bandwidth quota of the target virtual machine.
21. The system according to claim 20, characterized in that The server is further configured to send the file transmission bandwidth specified by the server to the terminal through the target virtual machine; The terminal is further configured to receive the file transmission bandwidth specified by the server and sent by the target virtual machine.
22. The system according to claim 20 or 21, characterized in that The bandwidth occupied by the terminal when transmitting the file data sent to the server based on the first target bandwidth threshold is less than or equal to the first target bandwidth threshold.
23. The system according to claim 20 or 21, characterized in that The first target bandwidth threshold is determined based on the file transfer bandwidth specified by the server and a second target parameter; the second target parameter is any one or any combination of the following: The required uplink bandwidth of the session service data or the processing bandwidth of the terminal; The processing bandwidth of the terminal is the bandwidth actually supported by the hardware resources of the terminal.
24. The system according to claim 23, characterized in that The first target bandwidth threshold is: a smaller value determined from a difference between a processing bandwidth of the terminal and an uplink required bandwidth of the session service data, and a file transmission bandwidth specified by the server.
25. A computer device, characterized in that: include: Processor and memory; The memory is used to store computer instructions; The processor is used to execute computer instructions stored in the memory, so that the computer device executes the steps of the data transmission method executed by the terminal as described in any one of claims 1 to 7, or the computer device executes the steps of the data transmission method executed by the server as described in any one of claims 1 to 7, or the computer device executes the steps of the data transmission method executed by the terminal as described in any one of claims 8 to 12, or the computer device executes the steps of the data transmission method executed by the server as described in any one of claims 8 to 12.
26. A computer-readable storage medium, characterized in that: The computer-readable storage medium includes computer instructions, which instruct a computer device to execute the steps of the data transmission method executed by a terminal as described in any one of claims 1 to 7, or to cause the computer device to execute the steps of the data transmission method executed by a server as described in any one of claims 1 to 7, or to cause the computer device to execute the steps of the data transmission method executed by a terminal as described in any one of claims 8 to 12, or to cause the computer device to execute the steps of the data transmission method executed by a server as described in any one of claims 8 to 12.
27. A terminal, characterized in that: The terminal is the terminal described in any one of claims 13 to 24.
28. A server, characterized in that: The server is the server described in any one of claims 13 to 24.
Citation Information
Patent Citations
Media adaptation method and apparatus
CN102439935A
Data transmission method and device, server and terminal
CN109802989A
Methods and apparatus supporting adaptive bandwidth management
US7532642B1