WO2020107918A1 - 数据传输方法和装置、服务器和终端 - Google Patents

数据传输方法和装置、服务器和终端 Download PDF

Info

Publication number
WO2020107918A1
WO2020107918A1 PCT/CN2019/098054 CN2019098054W WO2020107918A1 WO 2020107918 A1 WO2020107918 A1 WO 2020107918A1 CN 2019098054 W CN2019098054 W CN 2019098054W WO 2020107918 A1 WO2020107918 A1 WO 2020107918A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
virtual desktop
terminal
data
event
Prior art date
Application number
PCT/CN2019/098054
Other languages
English (en)
French (fr)
Inventor
刘立德
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2020107918A1 publication Critical patent/WO2020107918A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Definitions

  • This application relates to the field of computers, and in particular to data transmission methods and devices, servers, terminals, and computer program products.
  • the server can provide a virtual desktop to the terminal, and users can use the virtual desktop provided by the server through the terminal.
  • the data related to the use of the virtual desktop is transmitted between the virtual desktop server of the server and the virtual desktop client of the terminal based on the transmission protocol of the desktop cloud technology.
  • the virtual desktop server uses the server's clock to control the data transmission.
  • the process of obtaining the server's clock by the virtual desktop server will cause unstable delays, which will cause the virtual desktop server to send data quickly and slowly, which is not stable enough.
  • the virtual desktop client uses the terminal's clock to control data transmission, and there are similar problems of instability.
  • the present application provides a data transmission method and device, server, terminal, and computer program product, which can implement the use of events or signals to trigger data transmission.
  • the present application provides a data transmission method.
  • the server provides the virtual desktop to the terminal through the virtual desktop server.
  • the server generates data related to using the virtual desktop; that is, the data is generated on the server side and needs to be sent to the terminal.
  • the virtual desktop server of the server can periodically generate events or signals.
  • the virtual desktop server uses events or signals generated each time to trigger sending data to the virtual desktop client of the terminal.
  • the multiple events control the transmitted data flow to be smooth.
  • the multiple signals control the transmitted data flow to be smooth.
  • the virtual desktop server of the server includes an event generation module, and the event generation module generates an event every preset time interval.
  • the event generating module is newly added inside the virtual desktop server, and the event generated by the event generating module can trigger the virtual desktop server to send data to the terminal in real time to avoid the delay of the virtual desktop server acquiring the event.
  • the virtual desktop server of the server includes a signal generation module, and the signal generation module generates the signal every preset time interval.
  • the signal generating module is newly added inside the virtual desktop server, and the signal generated by the signal generating module can trigger the virtual desktop server to send data to the terminal in real time to avoid the delay of the virtual desktop server acquiring the signal.
  • the virtual desktop server of the server obtains the rate at which the data related to the use of the virtual desktop is sent when the event or the signal triggers the sending, and Sending the data related to using the virtual desktop to the virtual desktop client of the terminal at the acquired rate.
  • rate control to control the amount of data sent, it is convenient to control the amount of data from the virtual desktop server to the virtual desktop client, and ensure that the data flow output from the virtual desktop server to the virtual desktop client is more stable and controllable.
  • the present application provides a data transmission method.
  • the terminal uses the virtual desktop provided by the server through the virtual desktop client. Specifically, the terminal generates data related to using the virtual desktop; that is, the data is generated on the terminal side and needs to be sent to the server.
  • the terminal's virtual desktop client can periodically generate events or signals.
  • the virtual desktop client uses each generated event or signal to trigger sending data to the virtual desktop server of the server.
  • the time interval between multiple events that are generated regularly is equal, and the multiple events are generated in the virtual desktop client, there is no delay for the virtual desktop client to obtain the event, so use
  • the multiple events control the transmitted data flow to be smooth.
  • the multiple signals control the transmitted data flow to be smooth.
  • the virtual desktop client of the terminal includes an event generation module, and the event generation module generates the event every preset time interval.
  • the event generating module is newly added inside the virtual desktop client, and the event generated by the event generating module can trigger the virtual desktop client to send data to the server in real time to avoid the delay of the virtual desktop client acquiring the event.
  • the virtual desktop client of the terminal includes a signal generation module, and the signal generation module generates the signal every preset time interval.
  • the signal generating module is newly added inside the virtual desktop client, and the signal generated by the signal generating module can trigger the virtual desktop client to send data to the server in real time to avoid the delay of the virtual desktop client acquiring the signal.
  • the virtual desktop client of the terminal when the event or the signal triggers the sending, the virtual desktop client of the terminal obtains the rate at which the data related to using the virtual desktop is sent, and Sending the data related to using the virtual desktop to the virtual desktop server of the server at the acquired rate.
  • Use rate control to control the amount of data sent to facilitate the control of the amount of data from the virtual desktop client to the virtual desktop server, and to ensure that the data flow from the virtual desktop client to the virtual desktop server is more stable and controllable.
  • the present application provides a data transmission device, and the function module included in the device is used to implement the steps performed by the server in the first aspect or the method provided by any possible design of the first aspect.
  • the present application provides another data transmission device, and the function module included in the device is used to implement the steps performed by the terminal in the second aspect or the method provided by any possible design of the second aspect.
  • the present application provides a server.
  • the server includes a processor and a memory.
  • the memory stores computer instructions; the processor executes the computer instructions stored in the memory, so that the server performs the steps performed by the server in the above-mentioned first aspect or methods provided by various possible designs of the first aspect.
  • the present application provides a terminal including a processor and a memory.
  • the memory stores computer instructions; the processor executes the computer instructions stored in the memory, so that the terminal executes the steps performed by the terminal in the above-mentioned second aspect or methods provided by various possible designs of the second aspect.
  • the present application provides a system including a server and a terminal; the server is used to perform the steps performed by the server in the above-mentioned first aspect or methods provided by various possible designs of the first aspect, or the server provides the fourth aspect Server.
  • the present application provides a system including a server and a terminal; the terminal is used to perform the steps performed by the terminal in the above-mentioned second aspect or methods provided by various possible designs of the second aspect, or the terminal is the fourth aspect Provided terminal.
  • the present application provides a computer-readable storage medium that stores computer instructions, and when the processor of the server executes the computer instructions, the server performs the first aspect or the first aspect The steps performed by the server in the various possible designs.
  • the present application provides a computer-readable storage medium that stores computer instructions, and when the processor of the terminal executes the computer instructions, the terminal executes the second aspect or various possible designs of the second aspect Steps performed by the terminal in the provided method.
  • the present application provides a computer program product.
  • the computer program product includes computer instructions stored in a computer-readable storage medium.
  • the processor of the server can read the computer instructions from the computer-readable storage medium; the processor executes the computer instructions, so that the server executes the above-mentioned first aspect or the method provided by the various possible designs of the first aspect by the server step.
  • the present application provides a computer program product.
  • the computer program product includes computer instructions stored in a computer-readable storage medium.
  • the processor of the terminal can read the computer instructions from a computer-readable storage medium; the processor executes the computer instructions, so that the terminal executes the second aspect or the methods provided in various possible designs of the second aspect by the terminal A step of.
  • FIG. 1 is a schematic structural diagram of an application scenario applicable to this application
  • FIG. 3 is a schematic flowchart of a data transmission method provided by this application.
  • FIG. 6 is a schematic diagram of a logical structure of a data transmission device 600 provided by this application.
  • FIG. 7 is a schematic diagram of a logical structure of a data transmission device 700 provided by the present application.
  • the server 200 is a server in a desktop cloud, and the server 200 provides a virtual desktop to the terminal 100.
  • the server 200 runs a virtual machine that provides a virtual desktop, and the virtual machine provides the virtual desktop to the terminal 100.
  • the server 200 runs a container that provides a virtual desktop, and the container provides the virtual desktop to the terminal 100.
  • a virtual desktop server is deployed on the server 200.
  • the server 200 directly provides a virtual desktop to the terminal 100 through its own operating system (OS)
  • the virtual desktop server is deployed on the OS of the server 200.
  • the server 200 runs a virtual machine that provides a virtual desktop to the terminal 100
  • the virtual desktop server is deployed in the virtual machine.
  • the server 200 runs a container that provides a virtual desktop to the terminal 100
  • the virtual desktop server is deployed in the container.
  • a virtual desktop client is deployed on the terminal 100.
  • the communication connection is established between the virtual desktop server and the virtual desktop client through the transmission protocol of the desktop cloud technology.
  • data interaction can be performed between the virtual desktop server and the virtual desktop client based on the transmission protocol.
  • the virtual desktop server sends the virtual desktop to the virtual desktop client based on the transmission protocol, so that the terminal 100 displays the virtual desktop.
  • the terminal 100 operates the virtual desktop provided by the server 200 based on the transmission protocol through the virtual desktop client, such as sending an operation instruction to drag the mouse on the virtual desktop.
  • the transmission protocol can implement the virtual desktop provided by the terminal 100 operating the server 200.
  • the transmission protocol may be an independent computing architecture (ICA) protocol.
  • the transmission protocol may be the PCoIP (PC over IP) protocol.
  • the transmission protocol may be a remote desktop protocol (RDP) protocol.
  • the transmission protocol may be SPICE (simple protocol for independent computing) protocol.
  • the transmission protocol may be HDX (high definition experience) protocol.
  • the transmission protocol may be other transmission protocols for implementing virtual desktop redirection.
  • the terminal 100 may be a thin client (TC).
  • TC thin client
  • the terminal 100 may be a mobile terminal such as a smart phone, a tablet computer, a wearable device, or an on-board computer.
  • FIG. 1 a possible basic hardware architecture of the terminal 100 is shown in FIG. 1.
  • the terminal 100 includes a processor 101, a memory 102, a communication interface 103 and a bus 104.
  • the number of processors 101 may be one or more, and FIG. 1 only illustrates one of the processors 101.
  • the processor 101 may be a central processing unit (CPU). If the terminal 100 has multiple processors 101, the types of the multiple processors 101 may be different, or may be the same. Optionally, multiple processors 101 of the terminal 100 may also be integrated as multi-core processors.
  • the memory 102 stores computer instructions and data; for example, the memory 102 stores computer instructions and data required to implement the virtual desktop client, and computer instructions and data required to implement the steps performed by the terminal in the data transmission method provided by the present application.
  • the memory 102 may be any one or any combination of the following storage media: non-volatile memory (for example, read-only memory (ROM), solid-state drive (SSD), hard disk (hard disk) disk drive (HDD), optical disk), volatile memory.
  • the communication interface 103 may be any one or any combination of the following devices: a network interface (such as an Ethernet interface), a wireless network card, or a device with a network access function.
  • a network interface such as an Ethernet interface
  • a wireless network card such as an Ethernet card
  • a device with a network access function such as an Ethernet card
  • the communication interface 103 is used for data communication between the terminal 100 and the server 200 (specifically, the communication interface 203) or other devices.
  • FIG. 1 shows the bus 104 with a thick line.
  • the bus 104 can connect the processor 101 with the memory 102 and the communication interface 103.
  • the processor 101 can access the memory 102 through the bus 104, and can also use the communication interface 103 to perform data interaction with the server 200 or other devices.
  • the processor 101 executes computer instructions in the memory 102, so that the terminal 100 implements the steps performed by the terminal 100 in the data transmission method provided in this application.
  • FIG. 1 a possible basic hardware architecture of the server 200 is shown in FIG. 1.
  • the server 200 includes a processor 201, a memory 202, a communication interface 203, and a bus 204.
  • the number of processors 201 may be one or more, and FIG. 1 only illustrates one of the processors 201.
  • the processor 201 may be a central processing unit (central processing unit, CPU). If the server 200 has multiple processors 201, the types of the multiple processors 201 may be different, or may be the same. Optionally, multiple processors 201 of the server 200 may also be integrated as multi-core processors.
  • the memory 202 stores computer instructions and data; for example, the memory 202 stores computer instructions and data required to implement the virtual desktop server, and computer instructions and data required to implement the steps performed by the server in the data transmission method provided by the present application.
  • the memory 202 may be any one or any combination of the following storage media: non-volatile memory (such as read-only memory (ROM), solid-state drive (SSD), hard disk (hard disk) disk drive (HDD), optical disk), volatile memory.
  • the communication interface 203 may be any one or any combination of the following devices: a network interface (such as an Ethernet interface), a wireless network card, or a device with a network access function.
  • a network interface such as an Ethernet interface
  • a wireless network card such as an Ethernet card
  • a device with a network access function such as an Ethernet card
  • the communication interface 203 is used for data communication between the server 200 and the terminal 100 (specifically, the communication interface 103) or other devices.
  • FIG. 1 shows the bus 204 with a thick line.
  • the bus 204 can connect the processor 201 with the memory 202 and the communication interface 203.
  • the processor 201 can access the memory 202 through the bus 204, and can also use the communication interface 203 to perform data interaction with the terminal 100 or other devices.
  • the processor 201 executes computer instructions in the memory 202, so that the server 200 implements the steps performed by the server 200 in the data transmission method provided in this application.
  • the multiple implementations of the virtual desktop provided by the server 200 are similar principles. At this time, it is collectively referred to as the server 200 to provide a virtual desktop.
  • the data transmission method provided in this application is to use an event or a signal to trigger the data transmission between the virtual desktop client and the virtual desktop server.
  • FIG. 2 illustrates a flow of the data transmission method, which includes step S21, step S22, and step S23.
  • step S21 the server 200 generates data related to using the virtual desktop.
  • the virtual desktop server of the server 200 and the virtual desktop client of the terminal 100 mutually transmit data related to the use of the virtual desktop.
  • the data related to the use of the virtual desktop generated on the server 200 side is sent to the desktop client of the terminal 100 through the virtual desktop server.
  • the data related to using the virtual desktop generated on the server 200 side may include: a virtual desktop provided by the server 200, a redirection operation instruction of a device (such as a mouse or a keyboard) of the terminal 100 provided by the server 200, and the server 200 providing a virtual Other data for desktop services.
  • a virtual desktop provided by the server 200
  • a redirection operation instruction of a device such as a mouse or a keyboard
  • the server 200 providing a virtual Other data for desktop services.
  • step S22 the server 200 periodically generates events.
  • the server 200 generates an event every preset time in the virtual desktop server, that is, an event is generated periodically.
  • the preset time can be set manually, or based on historical experience data. For example, an event is generated every 10 milliseconds (ms).
  • an event generation module is provided in the virtual desktop server of the server 200, and the event generation module generates an event every preset time interval.
  • the event generation module can use an event mechanism to generate an event every preset time interval.
  • the event generation module may be implemented by running code that generates an event.
  • the event generating module and the data sending module are simultaneously deployed on the virtual desktop server of the server 200.
  • a virtual machine of the server 200 provides a virtual desktop
  • a process for implementing the virtual desktop server is executed on the virtual machine
  • a thread for implementing the event generation module is run in the process of the virtual desktop server
  • the The thread that implements the data sending module runs in the process.
  • the event generating module generates an event every preset time, and sends the event to the data sending module through inter-thread communication technology. This event will trigger the data sending module to send data to the terminal 100.
  • step S23 the server 200 uses the event trigger to send the data generated by the server 200 to the terminal 100.
  • each event generated will trigger the desktop server of the server 200 to send the data generated by the server 200 to the terminal 100.
  • the data is specifically data related to the use of the virtual desktop generated by the server 200 in step S21.
  • this embodiment can realize that the virtual desktop server of the server 200 is triggered by regularly generated events to send data related to using the virtual desktop to the terminal 100.
  • the time interval between multiple events generated regularly is equal, and the event is generated in the virtual desktop server, there is no delay for the virtual desktop server to obtain the event, so the data stream sent using multiple events to control is stable.
  • the desktop server of the server 200 when each event triggers the desktop server of the server 200 to send data related to the use of the virtual desktop, the desktop server of the server 200 will obtain the current data transmission rate, that is, the data sending action triggered by the event The rate used.
  • the virtual desktop server of the server 200 sends the data to the terminal at the acquired rate.
  • an event is generated every 10 milliseconds, that is, 100 events are generated within one second.
  • Each event triggers the desktop server of the server 200 to send 10 user datagram protocol (UDP) data packets within 10 milliseconds, and sending 10 UDP data packets within 10 milliseconds is the rate at which data is sent.
  • the data volume of each UDP data packet is 1 kilobyte (KB). In this way, the total amount of data sent in 1 second is 1000KB.
  • the bandwidth required by the desktop server of the server 200 to send data to the desktop client of the terminal 100 can be controlled by the data rate.
  • the desktop client of the terminal 100 may send a message to the server 200
  • the desktop server feeds back the reception information of each data packet.
  • the reception information may include the time when each data packet is received or whether each data packet is normally received.
  • the server 200 can analyze the flow control parameters according to the reception information of each data packet fed back by the terminal 100, and the flow control parameters include at least any one of the following: RTT (round trip time), packet loss rate, retransmission rate, Throughput and congestion. Accordingly, the server 200 adjusts the rate of sending data according to the analyzed flow control parameters.
  • FIG. 3 illustrates a flow of the data transmission method.
  • the flow includes step S31, step S32, and step S33.
  • step S31 the server 200 generates data related to using the virtual desktop.
  • the virtual desktop server of the server 200 and the virtual desktop client of the terminal 100 mutually transmit data related to the use of the virtual desktop.
  • the data related to the use of the virtual desktop generated on the server 200 side is sent to the desktop client of the terminal 100 through the virtual desktop server.
  • the data related to using the virtual desktop generated on the server 200 side may include: a virtual desktop provided by the server 200, a redirection operation instruction of a device (such as a mouse or a keyboard) of the terminal 100 provided by the server 200, and the server 200 providing a virtual Other data for desktop services.
  • a virtual desktop provided by the server 200
  • a redirection operation instruction of a device such as a mouse or a keyboard
  • the server 200 providing a virtual Other data for desktop services.
  • step S32 the server 200 periodically generates signals.
  • the server 200 generates a signal every preset time in the virtual desktop server, that is, generates a signal periodically.
  • the preset time can be set manually, or based on historical experience data. For example, a signal is generated every 10 milliseconds (ms).
  • a signal generation module is provided in the virtual desktop server of the server 200, and the signal generation module generates a signal every preset interval.
  • the signal generation module can use a signal mechanism to generate a signal every preset time interval.
  • the signal generation module may be implemented by running code that generates signals.
  • the signal generating module and the data sending module are simultaneously deployed on the virtual desktop server of the server 200.
  • a process for implementing the virtual desktop server is executed on the virtual machine, and a thread for implementing the signal generation module is executed in the process of the virtual desktop server, and at the same time on the virtual desktop server The thread running in the process to realize the data transmission module.
  • the signal generating module generates a signal every preset time, and sends the signal to the data sending module through the inter-thread communication technology. This signal triggers the data sending module to send data to the terminal 100.
  • step S33 the server 200 uses a signal to trigger sending the data generated by the server 200 to the terminal 100.
  • each generated signal triggers the desktop server of the server 200 to send the data generated by the server 200 to the terminal 100.
  • the data is specifically data related to the use of the virtual desktop generated by the server 200 in step S31.
  • this embodiment can implement that the periodically generated signal triggers the virtual desktop server of the server 200 to send data related to the use of the virtual desktop to the terminal 100.
  • the time interval between multiple signals generated regularly is equal, and the signal is generated in the virtual desktop server, there is no delay for the virtual desktop server to obtain the signal, so multiple signals are used to control the data flow sent Is stable.
  • the desktop server of the server 200 when each signal triggers the desktop server of the server 200 to send data related to using the virtual desktop, the desktop server of the server 200 will obtain the current data transmission rate, that is, the data sending action triggered by the signal The rate used. The desktop server of the server 200 sends the data to the terminal at the acquired rate.
  • a signal is generated every 10 milliseconds, that is, 100 signals are generated in one second.
  • Each signal triggers the desktop server of the server 200 to send 10 user datagram protocol (user datagram protocol (UDP) data packets within 10 milliseconds, and sending 10 UDP data packets within 10 milliseconds is the rate of sending data.
  • the data volume of each UDP data packet is 1 kilobyte (KB). In this way, the total amount of data sent in 1 second is 1000KB.
  • the bandwidth required by the desktop server of the server 200 to send data to the desktop client of the terminal 100 can be controlled by the data rate.
  • the desktop client of the terminal 100 may send a message to the server 200
  • the desktop server feeds back the reception information of each data packet.
  • the reception information may include the time when each data packet is received or whether each data packet is normally received.
  • the server 200 can analyze the flow control parameters according to the reception information of each data packet fed back by the terminal 100, and the flow control parameters include at least any one of the following: RTT (round trip time), packet loss rate, retransmission rate, Throughput and congestion.
  • the desktop server of the server 200 adjusts the rate of sending data according to the analyzed flow control parameters.
  • FIG. 4 illustrates a flow of the data transmission method.
  • the flow includes step S41, step S42, and step S43.
  • step S41 the terminal 100 generates data related to using the virtual desktop.
  • the virtual desktop client of the terminal 100 and the virtual desktop server of the server 200 mutually transmit data related to the use of the virtual desktop.
  • the data related to the use of the virtual desktop generated on the terminal 100 side is sent to the virtual desktop server of the server 200 through the desktop client.
  • the data related to the use of the virtual desktop generated on the terminal 100 side may include: data of the terminal 100 operating the virtual desktop, and other data of the terminal 100 using the virtual desktop service provided by the server 200.
  • the data of the terminal 100 operating the virtual desktop may include redirecting operation data of the device (such as a mouse or a keyboard) redirecting the terminal 100, may also include a position generated by moving the pointer of the mouse, and may also include information entered through the keyboard.
  • step S42 the terminal 100 periodically generates events.
  • the terminal 100 generates an event every preset time in the virtual desktop client, that is, periodically generates an event.
  • the preset time can be set manually, or based on historical experience data. For example, an event is generated every 10 milliseconds (ms).
  • the terminal 100 sets an event generation module in the virtual desktop client, and the event generation module generates an event every preset time interval.
  • the event generation module can use an event mechanism to generate an event every preset time interval.
  • the event generation module may be implemented by running code that generates an event.
  • the event generation module and the data sending module are deployed on the virtual desktop client of the terminal 100 at the same time.
  • the terminal 100 runs a process that implements the virtual desktop client, runs a thread that implements the event generation module in the process of the virtual desktop client, and runs a thread that implements the data transmission module in the process of the virtual desktop client.
  • the event generating module generates an event every preset time, and sends the event to the data sending module through inter-thread communication technology. This event will trigger the data sending module to send data to the server 200.
  • step S43 the terminal 100 uses the event trigger to send the data generated by the terminal 100 to the server 200.
  • each generated event triggers the virtual desktop client of the terminal 100 to send the data generated by the terminal 100 to the server 200, and the data is specifically data related to using the virtual desktop generated by the terminal 100 in step S41.
  • this embodiment can realize that the virtual desktop client of the terminal 100 is triggered by regularly generated events to send data related to using the virtual desktop to the server 200.
  • the time interval between multiple events generated regularly is equal, and the event is generated in the virtual desktop client, there is no delay for the virtual desktop client to obtain the event, so multiple events are used to control the data flow sent Is stable.
  • the desktop client of the terminal 100 when each event triggers the desktop client of the terminal 100 to send data related to using the virtual desktop, the desktop client of the terminal 100 will obtain the current data transmission rate, that is, the data sending action triggered by the event The rate used. The desktop client of the terminal 100 sends the data to the desktop server of the server 200 at the acquired rate.
  • an event is generated every 10 milliseconds, that is, 100 events are generated within one second.
  • Each event triggers the desktop client of the terminal 100 to send 10 user datagram protocol (user datagram protocol (UDP) data packets within 10 milliseconds, and sending 10 UDP data packets within 10 milliseconds is the rate at which data is sent.
  • the data volume of each UDP data packet is 1 kilobyte (KB). In this way, the total amount of data sent in 1 second is 1000KB.
  • the bandwidth required for the desktop client of the terminal 100 to send data to the server 200 can be controlled by the rate of data.
  • the desktop server of the server 200 may send to the terminal 100
  • the desktop client feeds back the reception information of each data packet.
  • the reception information may include the time when each data packet is received or whether each data packet is normally received.
  • the terminal 100 can analyze the flow control parameters according to the reception information of each data packet fed back by the server 200, and the flow control parameters include at least any one of the following: RTT (round trip time), packet loss rate, retransmission rate, Throughput and congestion.
  • the desktop client of the terminal 100 adjusts the rate of sending data according to the analyzed flow control parameters.
  • FIG. 5 illustrates a flow of the data transmission method.
  • the flow includes step S51, step S52, and step S53.
  • step S51 the terminal 100 generates data related to using the virtual desktop.
  • the virtual desktop client of the terminal 100 and the virtual desktop server of the server 200 mutually transmit data related to the use of the virtual desktop.
  • the data related to the use of the virtual desktop generated on the terminal 100 side is sent to the virtual desktop server of the server 200 through the desktop client.
  • the data related to the use of the virtual desktop generated on the terminal 100 side may include: data of the terminal 100 operating the virtual desktop, and other data of the terminal 100 using the virtual desktop service provided by the server 200.
  • the data of the terminal 100 operating the virtual desktop may include the redirection operation data of the device (such as the mouse or the keyboard) that redirects the terminal 100, the location generated by moving the pointer of the mouse, and the information entered through the keyboard.
  • step S52 the terminal 100 periodically generates a signal.
  • the terminal 100 generates a signal every preset time interval in the virtual desktop client, that is, periodically generates a signal.
  • the preset time can be set manually, or based on historical experience data. For example, a signal is generated every 10 milliseconds (ms).
  • the terminal 100 is provided with a signal generation module in the virtual desktop client, and the signal generation module generates a signal every preset time interval.
  • the signal generation module can use a signal mechanism to generate a signal every preset time interval.
  • the signal generation module may be implemented by running code that generates signals.
  • the signal generating module and the data sending module are simultaneously deployed on the virtual desktop client of the terminal 100.
  • the terminal 100 runs a process that implements the virtual desktop client, runs a thread that implements the signal generation module in the process of the virtual desktop client, and runs a thread that implements the data transmission module in the process of the virtual desktop client.
  • the signal generating module generates a signal every preset time, and sends the signal to the data sending module through the inter-thread communication technology. This signal will trigger the data sending module to send data to the server 200.
  • step S53 the terminal 100 uses a signal to trigger sending the data generated by the terminal 100 to the server 200.
  • the data is specifically data related to using the virtual desktop generated by the terminal 100 in step S51.
  • this embodiment can realize that the virtual desktop client of the terminal 100 is triggered by a periodically generated signal to send data related to using the virtual desktop to the server 200.
  • the time interval between multiple signals generated regularly is equal, and the signal is generated in the virtual desktop client, there is no delay for the virtual desktop client to obtain the signal, so multiple signals are used to control the data flow sent Is stable.
  • the desktop client of the terminal 100 when each signal triggers the desktop client of the terminal 100 to send data related to using the virtual desktop, the desktop client of the terminal 100 will obtain the current data transmission rate, that is, the data sending action triggered by the signal The rate used. The desktop client of the terminal 100 sends the data to the desktop server of the server 200 at the acquired rate.
  • a signal is generated every 10 milliseconds, that is, 100 signals are generated in one second.
  • Each signal triggers the desktop client of the terminal 100 to send 10 user datagram protocol (user datagram protocol (UDP) data packets within 10 milliseconds, and sending 10 UDP data packets within 10 milliseconds is the rate of sending data.
  • the data volume of each UDP data packet is 1 kilobyte (KB). In this way, the total amount of data sent in 1 second is 1000KB.
  • the bandwidth required for the desktop client of the terminal 100 to send data to the desktop server of the server 200 can be controlled by the data rate.
  • the desktop server of the server 200 may send a message to the terminal 100
  • the desktop client feeds back the reception information of each data packet.
  • the reception information may include the time when each data packet is received or whether each data packet is normally received.
  • the terminal 100 can analyze the flow control parameters according to the reception information of each data packet fed back by the server 200, and the flow control parameters include at least any of the following: RTT (round trip time), packet loss rate, retransmission rate, Throughput and congestion.
  • the desktop client of the terminal 100 adjusts the rate of sending data according to the analyzed flow control parameters.
  • the present application provides a data transmission device including a functional unit for the server 200 to implement the above data transmission method.
  • the data transmission device is deployed on the server 200 of the present application. For example, if the server 200 directly provides the virtual desktop to the terminal 100 through its own operating system (OS), the data transmission device is deployed on the OS of the server 200. For example, if the server 200 runs a virtual machine that provides a virtual desktop to the terminal 100, the data transmission device is deployed in the virtual machine. For example, if the server 200 runs a container that provides a virtual desktop to the terminal 100, the data transmission device is deployed in the container.
  • OS operating system
  • the data transmission device includes a functional unit for the server 200 to implement the above data transmission method; this application does not limit how to divide the functional unit in the device, the following provides an example of a division of functional units, as shown in FIG. .
  • the device 600 includes:
  • the generating unit 601 is used to generate data related to using the virtual desktop
  • the virtual desktop server 602 is used to periodically generate events or signals, and use the events or signals to trigger sending of data related to using the virtual desktop to the virtual desktop client of the terminal.
  • the generating unit 601 may be deployed inside the virtual desktop server 602, or the generating unit 601 may be independently deployed outside the virtual desktop server 602.
  • the virtual desktop server 602 includes a piece generating module 6021, and the event generating module generates the event every preset time interval.
  • the virtual desktop server 602 includes a signal generation module 6022, and the signal generation module generates one signal every preset time interval.
  • the virtual desktop server 602 is used to:
  • the data related to using the virtual desktop is sent to the virtual desktop client of the terminal 100 at the rate.
  • the present application also provides a data transmission device, which is deployed on the terminal 100 of the present application.
  • the device includes a functional unit for the terminal 100 to implement the above data transmission method; this application does not limit how to divide the functional unit in the device.
  • the following provides an example of a division of the functional unit, as shown in FIG.
  • the device 700 includes:
  • the generating unit 701 is configured to generate data related to using the virtual desktop
  • the virtual desktop client 702 is used to periodically generate an event or signal, and use the event or signal to trigger sending the data related to using the virtual desktop to the virtual desktop server of the server 200.
  • the generating unit 701 may be deployed inside the virtual desktop client 702, or the generating unit 701 may be independently deployed outside the desktop client 702.
  • the virtual desktop client 702 includes an event generation module 7021 that generates an event every preset time interval.
  • the virtual desktop client 702 includes a signal generating module 7022, and the signal generating module 7022 generates the signal every predetermined time interval.
  • the virtual desktop client 702 is used to:
  • the data related to using the virtual desktop is sent to the virtual desktop server of the server 200 at the rate.
  • the present application provides a server 200.
  • the server 200 includes a processor 201 and a memory 202.
  • the memory 202 is used to store computer instructions.
  • the processor 201 is configured to execute the computer instructions stored in the memory 202, so that the server 200 executes the steps performed by the server 200 in the above data transmission method.
  • the present application provides a terminal 100.
  • the terminal 100 includes a processor 101 and a memory 102.
  • the memory 102 is used to store computer instructions.
  • the processor 101 is configured to execute the computer instructions stored in the memory 102, so that the terminal 100 executes the steps performed by the terminal 100 in the above data transmission method.
  • the present application provides a system including a server 200 and a terminal 100; the server 200 is used to perform the steps performed by the server 200 in the above data transmission method.
  • the present application provides a system including a server 200 and a terminal 100; the terminal 100 is used to perform the steps performed by the terminal 100 in the above data transmission method.
  • the present application provides a computer-readable storage medium that stores computer instructions.
  • the server 200 executes the computer instructions, executes the above-described data transmission method executed by the server 200 step.
  • the present application provides a computer-readable storage medium that stores computer instructions.
  • the processor 102 of the terminal 100 executes the computer instructions
  • the terminal 100 executes the data transmission method executed by the terminal 100 step.
  • the present application provides a computer program product.
  • the computer program product includes computer instructions stored in a computer-readable storage medium.
  • the processor 201 of the server 200 may read the computer instruction from a computer-readable storage medium, and the processor 201 executes the computer instruction, so that the server 200 performs the steps performed by the server 200 in the above-described data transmission method.
  • the present application provides a computer program product.
  • the computer program product includes computer instructions stored in a computer-readable storage medium.
  • the processor 101 of the terminal 100 may read the computer instruction from a computer-readable storage medium, and the processor 101 executes the computer instruction so that the terminal 100 performs the steps performed by the terminal 100 in the above-mentioned data transmission method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种数据传输方法和装置、服务器、终端和计算机程序产品。该方法中,服务器通过虚拟桌面服务端向终端提供虚拟桌面。具体地,该服务器生成与使用该虚拟桌面相关的数据。该服务器的该虚拟桌面服务端可以定期生成生成事件或者信号。该虚拟桌面服务端使用每次生成的事件或者信号来触发向该终端的虚拟桌面客户端发送数据。由于定期生成的多个事件(或者多个信号)之间的时间间隔是相等的,并且该多个事件(或者该多个信号)是在虚拟桌面服务端内生成的,没有虚拟桌面服务端获取该多个事件(或者该多个信号)的时延,因此使用该多个事件(或者该多个信号)控制发送的数据流是平稳的。

Description

数据传输方法和装置、服务器和终端 技术领域
本申请涉及计算机领域,尤其涉及数据传输方法和装置、服务器、终端和计算机程序产品。
背景技术
利用桌面云技术,服务器可以向终端提供虚拟桌面,用户可以通过终端使用服务器提供的虚拟桌面。其中,对于与使用虚拟桌面相关的数据,是基于桌面云技术的传输协议在服务器的虚拟桌面服务端与终端的虚拟桌面客户端之间进行相互传输的。
现有技术中,虚拟桌面服务端使用服务器的时钟来控制数据发送的。虚拟桌面服务端获取服务器的时钟的过程会造成不稳定的延迟,导致虚拟桌面服务端发送数据会忽快忽慢,不够稳定。类似地,虚拟桌面客户端使用终端的时钟来控制数据发送也会存在不稳定的类似问题。
发明内容
有鉴于此,本申请提供了一种数据传输方法和装置、服务器、终端和计算机程序产品,可以实现使用事件或者信号来触发数据发送。
第一方面,本申请提供一种数据传输方法。在该方法中,服务器通过虚拟桌面服务端向终端提供虚拟桌面。具体地,该服务器生成与使用该虚拟桌面相关的数据;即该数据是在服务器侧生成的,需要向终端发送的。
本申请中,服务器的虚拟桌面服务端可以定期生成生成事件或者信号。该虚拟桌面服务端使用每次生成的事件或者信号来触发向该终端的虚拟桌面客户端发送数据。
如果是定期生成事件,由于定期生成的多个事件之间的时间间隔是相等的,并且该多个事件是在虚拟桌面服务端内生成的,没有虚拟桌面服务端获取事件的时延,因此使用该多个事件控制发送的数据流是平稳的。
如果是定期生成信号,由于定期生成的多个信号之间的时间间隔是相等的,并且该多个信号是在虚拟桌面服务端内生成的,没有虚拟桌面服务端获取信号的时延,因此使用该多个信号控制发送的数据流是平稳的。
第一方面的一种可能设计,该服务器的虚拟桌面服务端包括事件生成模块,该事件生成模块每间隔预设时间生成一个该事件。
在该虚拟桌面服务端内部新增该事件生成模块,该事件生成模块生成的事件可以实时触发该虚拟桌面服务端向终端发送数据,避免该虚拟桌面服务端获取事件的时延。
第一方面的一种可能设计,该服务器的虚拟桌面服务端包括信号生成模块,该信号生成模块每间隔预设时间生成一个该信号。
在该虚拟桌面服务端内部新增该信号生成模块,该信号生成模块生成的信号可 以实时触发该虚拟桌面服务端向终端发送数据,避免该虚拟桌面服务端获取信号的时延。
第一方面的一种可能设计,在本数据传输方法中,该服务器的该虚拟桌面服务端在该事件或者该信号触发该发送时,获取发送该与使用该虚拟桌面相关的数据的速率,并以获取的速率向该终端的虚拟桌面客户端发送该与使用该虚拟桌面相关的数据。
使用速率控制发送数据的数据量,便于控制虚拟桌面服务端向虚拟桌面客户端的数据量,保证虚拟桌面服务端向虚拟桌面客户端输出的数据流更平稳可控。
第二方面,本申请提供一种数据传输方法。在该方法中,终端通过虚拟桌面客户端使用服务器提供的虚拟桌面。具体地,该终端生成与使用该虚拟桌面相关的数据;即该数据是在终端侧生成的,需要向服务器发送的。
本申请中,终端的虚拟桌面客户端可以定期生成生成事件或者信号。该虚拟桌面客户端使用每次生成的事件或者信号来触发向该服务器的虚拟桌面服务端发送数据。
如果是定期生成事件,由于定期生成的多个事件之间的时间间隔是相等的,并且该多个事件是在虚拟桌面客户端内生成的,没有虚拟桌面客户端获取事件的时延,因此使用该多个事件控制发送的数据流是平稳的。
如果是定期生成信号,由于定期生成的多个信号之间的时间间隔是相等的,并且该多个信号是在虚拟桌面客户端内生成的,没有虚拟桌面客户端获取信号的时延,因此使用该多个信号控制发送的数据流是平稳的。
第二方面的一种可能设计,该终端的虚拟桌面客户端包括事件生成模块,该事件生成模块每间隔预设时间生成一个该事件。
在该虚拟桌面客户端内部新增该事件生成模块,该事件生成模块生成的事件可以实时触发该虚拟桌面客户端向服务器发送数据,避免该虚拟桌面客户端获取事件的时延。
第二方面的一种可能设计,该终端的虚拟桌面客户端包括信号生成模块,该信号生成模块每间隔预设时间生成一个该信号。
在该虚拟桌面客户端内部新增该信号生成模块,该信号生成模块生成的信号可以实时触发该虚拟桌面客户端向服务器发送数据,避免该虚拟桌面客户端获取信号的时延。
第二方面的一种可能设计,在本数据传输方法中,该终端的该虚拟桌面客户端在该事件或者该信号触发该发送时,获取发送该与使用该虚拟桌面相关的数据的速率,并以获取的速率向该服务器的虚拟桌面服务端发送该与使用该虚拟桌面相关的数据。
使用速率控制发送数据的数据量,便于控制虚拟桌面客户端向虚拟桌面服务端的数据量,保证虚拟桌面客户端向虚拟桌面服务端输出的数据流更平稳可控。
第三方面,本申请提供一种数据传输装置,该装置包括的功能模块用于实现第一方面或第一方面的任意可能设计提供的方法中由服务器执行的步骤。
本申请提供另一种数据传输装置,该装置包括的功能模块用于实现第二方面或第二 方面的任意可能设计提供的方法中由终端执行的步骤。
第四方面,本申请提供一种服务器,该服务器包括处理器和存储器。该存储器存储计算机指令;该处理器执行该存储器存储的计算机指令,使得该服务器执行上述第一方面或者第一方面的各种可能设计提供的方法中由服务器执行的步骤。
本申请提供一种终端,该终端包括处理器和存储器。该存储器存储计算机指令;该处理器执行该存储器存储的计算机指令,使得该终端执行上述第二方面或者第二方面的各种可能设计提供的方法中由该终端执行的步骤。
本申请提供一种系统,该系统包括服务器和终端;该服务器用于执行上述第一方面或者第一方面的各种可能设计提供的方法中由服务器执行的步骤,或者该服务器为第四方面提供的服务器。
本申请提供一种系统,该系统包括服务器和终端;该终端用于执行上述第二方面或者第二方面的各种可能设计提供的方法中由该终端执行的步骤,或者该终端为第四方面提供的终端。
第五方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当服务器的处理器执行该计算机指令时,该服务器执行上述第一方面或者第一方面的各种可能设计提供的方法中由服务器执行的步骤。
本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当终端的处理器执行该计算机指令时,该终端执行上述第二方面或者第二方面的各种可能设计提供的方法中由终端执行的步骤。
本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。服务器的处理器可以从计算机可读存储介质读取该计算机指令;该处理器执行该计算机指令,使得该服务器执行上述第一方面或者第一方面的各种可能设计提供的方法中由服务器执行的步骤。
本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器可以从计算机可读存储介质读取该计算机指令;该处理器执行该计算机指令,使得该终端执行上述第二方面或者第二方面的各种可能设计提供的方法中由该终端执行的步骤。
附图说明
图1为本申请适用的一种应用场景的架构示意图;
图2为本申请提供的数据传输方法的一种流程示意图;
图3为本申请提供的数据传输方法的一种流程示意图;
图4为本申请提供的数据传输方法的一种流程示意图;
图5为本申请提供的数据传输方法的一种流程示意图;
图6为本申请提供的数据传输装置600的一种逻辑结构示意图;
图7为本申请提供的数据传输装置700的一种逻辑结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请提供的技术方案进行描述。
应用场景
参见图1,服务器200为桌面云中的服务器,服务器200向终端100提供虚拟桌面。例如服务器200运行提供虚拟桌面的虚拟机,该虚拟机向终端100提供虚拟桌面。例如服务器200运行提供虚拟桌面的容器,该容器向终端100提供虚拟桌面。
具体地,服务器200上部署虚拟桌面服务端。例如,如果是服务器200通过自己的操作系统(operating system,OS)直接向终端100提供虚拟桌面,则该虚拟桌面服务端部署在该服务器200的OS上。例如,如果是服务器200运行向终端100提供虚拟桌面的虚拟机,则该虚拟桌面服务端部署在该虚拟机中。例如,如果是服务器200运行向终端100提供虚拟桌面的容器,则该虚拟桌面服务端部署在该容器中。
相应地,在终端100部署虚拟桌面客户端。
在虚拟桌面服务端与虚拟桌面客户端之间通过桌面云技术的传输协议建立通信连接。这样,在虚拟桌面服务端与虚拟桌面客户端之间,可以基于该传输协议进行数据交互。例如,虚拟桌面服务端基于该传输协议向虚拟桌面客户端发送虚拟桌面,以便终端100显示该虚拟桌面。例如终端100通过虚拟桌面客户端基于该传输协议操作服务器200提供的虚拟桌面,如发送在该虚拟桌面拖动鼠标的操作指示。
本申请对桌面云技术的传输协议不做限定,该传输协议能够实现终端100操作服务器200提供的虚拟桌面即可。例如,该传输协议可以是独立计算架构(independent computing architecture,ICA)协议。例如,该传输协议可以是PCoIP(PC over IP)协议。例如,该传输协议可以是远程桌面协议(remote desktop protocol,RDP)协议。例如,该传输协议可以是SPICE(simple protocol for independent computing environments)协议。例如,该传输协议可以是HDX(high definition experience)协议。例如,该传输协议可以是其它用于实现虚拟桌面重定向的传输协议。
可选地,该终端100可以为瘦客户机(thin client,TC)。
可选地,该终端100可以为智能手机、平板电脑、可穿戴设备或车载电脑等移动终端。
可选地,终端100的一种可能的基本硬件架构,如图1所示。
参见图1,终端100包括处理器101、存储器102、通信接口103和总线104。
终端100中,处理器101的数量可以是一个或多个,图1仅示意了其中一个处理器101。可选地,处理器101,可以是中央处理器(central processing unit,CPU)。如果终端100具有多个处理器101,多个处理器101的类型可以不同,或者可以相同。可选地,终端100的多个处理器101还可以集成为多核处理器。
存储器102存储计算机指令和数据;例如,存储器102存储实现虚拟桌面客户端所需的计算机指令和数据,以及存储实现本申请提供的数据传输方法中终端执行的步骤所需的计算机指令和数据。存储器102可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(read-only memory,ROM)、固态硬盘(solid-state drive,SSD)、硬盘(hard disk drive,HDD)、光盘),易失性存储器。
通信接口103可以是以下器件的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
通信接口103用于终端100与服务器200(具体可以是通信接口203)或者其他设备进行数据通信。
图1用一条粗线表示总线104。总线104可以将处理器101与存储器102和通信接口103连接。这样,通过总线104,处理器101可以访问存储器102,还可以利用通信接口103与服务器200或者其他设备进行数据交互。
在本申请中,处理器101执行存储器102中的计算机指令,使得终端100实现在本申请提供的数据传输方法中由终端100执行的步骤。
可选地,服务器200的一种可能的基本硬件架构,如图1所示。
参见图1,服务器200包括处理器201、存储器202、通信接口203和总线204。
服务器200中,处理器201的数量可以是一个或多个,图1仅示意了其中一个处理器201。可选地,处理器201,可以是中央处理器(central processing unit,CPU)。如果服务器200具有多个处理器201,多个处理器201的类型可以不同,或者可以相同。可选地,服务器200的多个处理器201还可以集成为多核处理器。
存储器202存储计算机指令和数据;例如,存储器202存储实现虚拟桌面服务端所需的计算机指令和数据,以及存储实现本申请提供的数据传输方法中服务器执行的步骤所需的计算机指令和数据。存储器202可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(read-only memory,ROM)、固态硬盘(solid-state drive,SSD)、硬盘(hard disk drive,HDD)、光盘),易失性存储器。
通信接口203可以是以下器件的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
通信接口203用于服务器200与终端100(具体可以是通信接口103)或者其他设备进行数据通信。
图1用一条粗线表示总线204。总线204可以将处理器201与存储器202和通信接口203连接。这样,通过总线204,处理器201可以访问存储器202,还可以利用通信接口203与终端100或者其他设备进行数据交互。
在本申请中,处理器201执行存储器202中的计算机指令,使得服务器200实现在本申请提供的数据传输方法中由服务器200执行的步骤。
本申请中,服务器200提供虚拟桌面的多种实现方式(例如服务器200直接提供、通过服务器200的虚拟机提供或者通过服务器200的容器提供)是类似原理,下面在介绍本申请提供的数据传输方法时,统称为服务器200提供虚拟桌面。
本申请提供的数据传输方法,是使用事件或者信号触发在虚拟桌面客户端与虚拟桌面服务端之间的数据传输。
图2示意了数据传输方法的一种流程,该流程包括步骤S21、步骤S22和步骤S23。
步骤S21,服务器200生成与使用虚拟桌面相关的数据。
在使用虚拟桌面的过程中,是通过服务器200的虚拟桌面服务端与终端100的虚拟桌面客户端相互传输使用该虚拟桌面相关的数据。
对于服务器200这侧生成的使用虚拟桌面相关的数据,是通过虚拟桌面服务端向终 端100的桌面客户端发送。
服务器200这侧生成的使用虚拟桌面相关的数据,可以包括:服务器200提供的虚拟桌面、服务器200提供的终端100的设备(例如鼠标或者键盘)的重定向操作指令、服务器200为终端100提供虚拟桌面服务的其它数据。
步骤S22,服务器200定期生成事件。
服务器200在虚拟桌面服务端中每间隔预设时间生成一个事件,即定期生成一个事件。该预设时间可以人为设定,或者根据历史经验数据设定。例如,每间隔10毫秒(ms)生成一个事件。
本申请对于实现定期生成事件的实现方式,不做限定。一种可能实现方式,在服务器200的虚拟桌面服务端中设置事件生成模块,该事件生成模块每间隔预设时间生成一个事件。举例说明,事件生成模块可以使用事件机制,每间隔预设时间生成一个事件。
一种可能实现方式,该事件生成模块可以是运行生成事件的代码实现。
一种可能实现方式,事件生成模块和数据发送模块同时部署在服务器200的虚拟桌面服务端上。例如,如果是服务器200的虚拟机提供虚拟桌面,则在该虚拟机运行一个实现虚拟桌面服务端的进程,在虚拟桌面服务端的进程中运行实现该事件生成模块的线程,同时在该虚拟桌面服务端的进程中运行实现数据发送模块的线程。该事件生成模块每间隔预设时间生成一个事件,并通过线程间通信的技术向该数据发送模块发送该个事件。该个事件会触发该数据发送模块向终端100发送数据。
步骤S23,服务器200使用事件触发向终端100发送服务器200生成的数据。
本实施例中,每次生成的事件都会触发服务器200的桌面服务端向终端100发送服务器200生成的数据,该数据具体是在步骤S21中服务器200生成的与使用虚拟桌面相关的数据。
这样,本实施例可以实现由定期生成的事件触发服务器200的虚拟桌面服务端向终端100发送使用虚拟桌面相关的数据。定期生成的多个事件之间的时间间隔是相等的,并且该事件是在虚拟桌面服务端内生成的,没有虚拟桌面服务端获取事件的时延,因此使用多个事件控制发送的数据流是平稳的。
可选地,在每个事件触发服务器200的桌面服务端发送与使用该虚拟桌面相关的数据时,服务器200的桌面服务端均会获取当前发送数据的速率,即获取该事件触发的数据发送动作所使用的速率。服务器200的虚拟桌面服务端以获取的速率向该终端发送该数据。
举例说明,每间隔10毫秒生成一个事件,即1秒钟内生成100个事件。每个事件触发服务器200的桌面服务端在10毫秒内发送10个用户数据报协议(user datagram protocol,UDP)数据包,10毫秒内发送10个UDP数据包即为发送数据的速率。每个UDP数据包的数据量为1千字节(KB)。这样,1秒钟发送的总数据量为1000KB。
这样,可以通过数据的速率控制服务器200的桌面服务端向终端100的桌面客户端发送数据所需的带宽。
可选地,在每次事件触发服务器200的桌面服务端向终端100的桌面客户端发送多个数据包(携带与使用该虚拟桌面相关的数据)后,终端100的桌面客户端可以向服务器200的桌面服务端反馈该每个数据包的接收信息,该接收信息可以包括接收每个数据 包的时间或者是否正常接收到每个数据包。这样,服务器200可以根据终端100反馈的每个数据包的接收信息,分析出流控参数,该流控参数至少包括以下任一种:RTT(round trip time)、丢包率、重传率、吞吐率、拥塞度。相应地,服务器200根据分析出的流控参数,调整发送数据的速率。
这样,下个事件触发服务器200的桌面服务端向终端100的桌面客户端发送数据时候,使用最新调整的速率发送数据。
图3示意了数据传输方法的一种流程,该流程包括步骤S31、步骤S32和步骤S33。
步骤S31,服务器200生成与使用虚拟桌面相关的数据。
在使用虚拟桌面的过程中,是通过服务器200的虚拟桌面服务端与终端100的虚拟桌面客户端相互传输使用该虚拟桌面相关的数据。
对于服务器200这侧生成的使用虚拟桌面相关的数据,是通过虚拟桌面服务端向终端100的桌面客户端发送。
服务器200这侧生成的使用虚拟桌面相关的数据,可以包括:服务器200提供的虚拟桌面、服务器200提供的终端100的设备(例如鼠标或者键盘)的重定向操作指令、服务器200为终端100提供虚拟桌面服务的其它数据。
步骤S32,服务器200定期生成信号。
服务器200在虚拟桌面服务端中每间隔预设时间生成一个信号,即定期生成一个信号。该预设时间可以人为设定,或者根据历史经验数据设定。例如,每间隔10毫秒(ms)生成一个信号。
本申请对于实现定期生成信号的实现方式,不做限定。一种可能实现方式,在服务器200的虚拟桌面服务端中设置信号生成模块,该信号生成模块每间隔预设时间生成一个信号。举例说明,信号生成模块可以使用信号机制,每间隔预设时间生成一个信号。
一种可能实现方式,该信号生成模块可以是运行生成信号的代码实现。
一种可能实现方式,信号生成模块和数据发送模块同时部署在服务器200的虚拟桌面服务端上。例如,如果是服务器200的虚拟机提供虚拟桌面,则在该虚拟机运行一个实现虚拟桌面服务端的进程,在虚拟桌面服务端的进程中运行实现该信号生成模块的线程,同时在该虚拟桌面服务端的进程中运行实现实现数据发送模块的线程。该信号生成模块每间隔预设时间生成一个信号,并通过线程间通信的技术向该数据发送模块发送该个信号。该个信号会触发该数据发送模块向终端100发送数据。
步骤S33,服务器200使用信号触发向终端100发送服务器200生成的数据。
本实施例中,每次生成的信号都会触发服务器200的桌面服务端向终端100发送服务器200生成的数据,该数据具体是在步骤S31中服务器200生成的与使用虚拟桌面相关的数据。
这样,本实施例可以实现由定期生成的信号触发服务器200的虚拟桌面服务端向终端100发送使用虚拟桌面相关的数据。定期生成的多个信号之间的时间间隔是相等的,并且该信号是在虚拟桌面服务端内生成的,没有虚拟桌面服务端获取该信号的时延,因此使用多个信号控制发送的数据流是平稳的。
可选地,在每个信号触发服务器200的桌面服务端发送与使用该虚拟桌面相关的数 据时,服务器200的桌面服务端均会获取当前发送数据的速率,即获取该信号触发的数据发送动作所使用的速率。服务器200的桌面服务端以获取的速率向该终端发送该数据。
举例说明,每间隔10毫秒生成一个信号,即1秒钟内生成100个信号。每个信号触发服务器200的桌面服务端在10毫秒内发送10个用户数据报协议(user datagram protocol,UDP)数据包,10毫秒内发送10个UDP数据包即为发送数据的速率。每个UDP数据包的数据量为1千字节(KB)。这样,1秒钟发送的总数据量为1000KB。
这样,可以通过数据的速率控制服务器200的桌面服务端向终端100的桌面客户端发送数据所需的带宽。
可选地,在每次信号触发服务器200的桌面服务端向终端100的桌面客户端发送多个数据包(携带与使用该虚拟桌面相关的数据)后,终端100的桌面客户端可以向服务器200的桌面服务端反馈该每个数据包的接收信息,该接收信息可以包括接收每个数据包的时间或者是否正常接收到每个数据包。这样,服务器200可以根据终端100反馈的每个数据包的接收信息,分析出流控参数,该流控参数至少包括以下任一种:RTT(round trip time)、丢包率、重传率、吞吐率、拥塞度。相应地,服务器200的桌面服务端根据分析出的流控参数,调整发送数据的速率。
这样,下个信号触发服务器200向终端100发送数据时候,使用最新调整的速率发送数据。
图4示意了数据传输方法的一种流程,该流程包括步骤S41、步骤S42和步骤S43。
步骤S41,终端100生成与使用虚拟桌面相关的数据。
在使用虚拟桌面的过程中,是通过终端100的虚拟桌面客户端与服务器200的虚拟桌面服务端相互传输使用该虚拟桌面相关的数据。
对于终端100这侧生成的使用虚拟桌面相关的数据,是通过桌面客户端向服务器200的虚拟桌面服务端发送。
终端100这侧生成的使用虚拟桌面相关的数据,可以包括:终端100操作虚拟桌面的数据、终端100使用服务器200提供的虚拟桌面服务的其它数据。终端100操作虚拟桌面的数据,可以包括重定向终端100的设备(例如鼠标或者键盘)的重定向操作数据,还可以包括移动鼠标的指针所产生的位置,还可以包括通过键盘录入的信息。
步骤S42,终端100定期生成事件。
终端100在虚拟桌面客户端中每间隔预设时间生成一个事件,即定期生成一个事件。该预设时间可以人为设定,或者根据历史经验数据设定。例如,每间隔10毫秒(ms)生成一个事件。
本申请对于实现定期生成事件的实现方式,不做限定。一种可能实现方式,在终端100在虚拟桌面客户端中设置事件生成模块,该事件生成模块每间隔预设时间生成一个事件。举例说明,事件生成模块可以使用事件机制,每间隔预设时间生成一个事件。
一种可能实现方式,该事件生成模块可以是运行生成事件的代码实现。
一种可能实现方式,事件生成模块和数据发送模块同时部署在终端100的虚拟桌面客户端上。例如,终端100运行一个实现虚拟桌面客户端的进程,在虚拟桌面客户端的进程中运行实现该事件生成模块的线程,同时在该虚拟桌面客户端的进程中运行实现实 现数据发送模块的线程。该事件生成模块每间隔预设时间生成一个事件,并通过线程间通信的技术向该数据发送模块发送该个事件。该个事件会触发该数据发送模块向服务器200发送数据。
步骤S43,终端100使用事件触发向服务器200发送终端100生成的数据。
本实施例中,每次生成的事件都会触发终端100的虚拟桌面客户端向服务器200发送终端100生成的数据,该数据具体是在步骤S41中终端100生成的与使用虚拟桌面相关的数据。
这样,本实施例可以实现由定期生成的事件触发终端100的虚拟桌面客户端向服务器200发送使用虚拟桌面相关的数据。定期生成的多个事件之间的时间间隔是相等的,并且该事件是在虚拟桌面客户端内生成的,没有虚拟桌面客户端获取该事件的时延,因此使用多个事件控制发送的数据流是平稳的。
可选地,在每个事件触发终端100的桌面客户端发送与使用该虚拟桌面相关的数据时,终端100的桌面客户端均会获取当前发送数据的速率,即获取该事件触发的数据发送动作所使用的速率。终端100的桌面客户端以获取的速率向该服务器200的桌面服务端发送该数据。
举例说明,每间隔10毫秒生成一个事件,即1秒钟内生成100个事件。每个事件触发终端100的桌面客户端在10毫秒内发送10个用户数据报协议(user datagram protocol,UDP)数据包,10毫秒内发送10个UDP数据包即为发送数据的速率。每个UDP数据包的数据量为1千字节(KB)。这样,1秒钟发送的总数据量为1000KB。
这样,可以通过数据的速率控制终端100的桌面客户端向服务器200发送数据所需的带宽。
可选地,在每次事件触发终端100的桌面客户端向服务器200的桌面服务端发送多个数据包(携带与使用该虚拟桌面相关的数据)后,服务器200的桌面服务端可以向终端100的桌面客户端反馈该每个数据包的接收信息,该接收信息可以包括接收每个数据包的时间或者是否正常接收到每个数据包。这样,终端100可以根据服务器200反馈的每个数据包的接收信息,分析出流控参数,该流控参数至少包括以下任一种:RTT(round trip time)、丢包率、重传率、吞吐率、拥塞度。相应地,终端100的桌面客户端根据分析出的流控参数,调整发送数据的速率。
这样,下个事件触发终端100的桌面客户端向服务器200的桌面服务端发送数据时候,使用最新调整的速率发送数据。
图5示意了数据传输方法的一种流程,该流程包括步骤S51、步骤S52和步骤S53。
步骤S51,终端100生成与使用虚拟桌面相关的数据。
在使用虚拟桌面的过程中,是通过终端100的虚拟桌面客户端与服务器200的虚拟桌面服务端相互传输使用该虚拟桌面相关的数据。
对于终端100这侧生成的使用虚拟桌面相关的数据,是通过桌面客户端向服务器200的虚拟桌面服务端发送。
终端100这侧生成的使用虚拟桌面相关的数据,可以包括:终端100操作虚拟桌面的数据、终端100使用服务器200提供的虚拟桌面服务的其它数据。终端100操作虚拟 桌面的数据,可以包括重定向终端100的设备(例如鼠标或者键盘)的重定向操作数据,还可以包括移动鼠标的指针所产生的位置,还可以包括通过键盘录入的信息。
步骤S52,终端100定期生成信号。
终端100在虚拟桌面客户端中每间隔预设时间生成一个信号,即定期生成一个信号。该预设时间可以人为设定,或者根据历史经验数据设定。例如,每间隔10毫秒(ms)生成一个信号。
本申请对于实现定期生成信号的实现方式,不做限定。一种可能实现方式,在终端100在虚拟桌面客户端中设置信号生成模块,该信号生成模块每间隔预设时间生成一个信号。举例说明,信号生成模块可以使用信号机制,每间隔预设时间生成一个信号。
一种可能实现方式,该信号生成模块可以是运行生成信号的代码实现。
一种可能实现方式,信号生成模块和数据发送模块同时部署在终端100的虚拟桌面客户端上。例如,终端100运行一个实现虚拟桌面客户端的进程,在虚拟桌面客户端的进程中运行实现该信号生成模块的线程,同时在该虚拟桌面客户端的进程中运行实现实现数据发送模块的线程。该信号生成模块每间隔预设时间生成一个信号,并通过线程间通信的技术向该数据发送模块发送该个信号。该个信号会触发该数据发送模块向服务器200发送数据。
步骤S53,终端100使用信号触发向服务器200发送终端100生成的数据。
本实施例中,每次生成的信号都会触发终端100的虚拟桌面客户端向服务器200发送终端100生成的数据,该数据具体是在步骤S51中终端100生成的与使用虚拟桌面相关的数据。
这样,本实施例可以实现由定期生成的信号触发终端100的虚拟桌面客户端向服务器200发送使用虚拟桌面相关的数据。定期生成的多个信号之间的时间间隔是相等的,并且该信号是在虚拟桌面客户端内生成的,没有虚拟桌面客户端获取该信号的时延,因此使用多个信号控制发送的数据流是平稳的。
可选地,在每个信号触发终端100的桌面客户端发送与使用该虚拟桌面相关的数据时,终端100的桌面客户端均会获取当前发送数据的速率,即获取该信号触发的数据发送动作所使用的速率。终端100的桌面客户端以获取的速率向该服务器200的桌面服务端发送该数据。
举例说明,每间隔10毫秒生成一个信号,即1秒钟内生成100个信号。每个信号触发终端100的桌面客户端在10毫秒内发送10个用户数据报协议(user datagram protocol,UDP)数据包,10毫秒内发送10个UDP数据包即为发送数据的速率。每个UDP数据包的数据量为1千字节(KB)。这样,1秒钟发送的总数据量为1000KB。
这样,可以通过数据的速率控制终端100的桌面客户端向服务器200的桌面服务端发送数据所需的带宽。
可选地,在每次信号触发终端100的桌面客户端向服务器200的桌面服务端发送多个数据包(携带与使用该虚拟桌面相关的数据)后,服务器200的桌面服务端可以向终端100的桌面客户端反馈该每个数据包的接收信息,该接收信息可以包括接收每个数据包的时间或者是否正常接收到每个数据包。这样,终端100可以根据服务器200反馈的每个数据包的接收信息,分析出流控参数,该流控参数至少包括以下任一种:RTT(round  trip time)、丢包率、重传率、吞吐率、拥塞度。相应地,终端100的桌面客户端根据分析出的流控参数,调整发送数据的速率。
这样,下个信号触发终端100的桌面客户端向服务器200的桌面服务端发送数据时候,使用最新调整的速率发送数据。
本申请提供一种数据传输装置,该数据传输装置包括用于服务器200实现上述数据传输方法的功能单元。
该数据传输装置部署在本申请的服务器200上。例如,如果是服务器200通过自己的操作系统(operating system,OS)直接向终端100提供虚拟桌面,则该数据传输装置部署在该服务器200的OS上。例如,如果是服务器200运行向终端100提供虚拟桌面的虚拟机,则该数据传输装置部署在该虚拟机中。例如,如果是服务器200运行向终端100提供虚拟桌面的容器,则该数据传输装置部署在该容器中。
该数据传输装置包括用于服务器200实现上述数据传输方法的功能单元;本申请对在该装置中如何划分功能单元不做限定,下面实例性地提供一种功能单元的划分,如图6所示。
如图6所示的数据传输装置600,装置600包括:
生成单元601,用于生成与使用该虚拟桌面相关的数据;
虚拟桌面服务端602,用于定期生成事件或者信号,并使用该事件或者该信号触发向终端的虚拟桌面客户端发送该使用该虚拟桌面相关的数据。
可选地,在装置600中,生成单元601可以部署在虚拟桌面服务端602内部,或者生成单元601独立部署于虚拟桌面服务端602的外部。
可选地,该虚拟桌面服务端602包括件生成模块6021,该事件生成模块每间隔预设时间生成一个该事件。
可选地,该虚拟桌面服务端602包括信号生成模块6022,该信号生成模块每间隔预设时间生成一个该信号。
可选地,该虚拟桌面服务端602,用于:
获取发送该使用该虚拟桌面相关的数据的速率;
在该事件或者该信号触发该发送时,以该速率向该终端100的虚拟桌面客户端发送该使用该虚拟桌面相关的数据。
本申请还提供一种数据传输装置,该装置部署在本申请的终端100上。该装置包括用于该终端100实现上述数据传输方法的功能单元;本申请对在该装置中如何划分功能单元不做限定,下面实例性地提供一种功能单元的划分,如图7所示。
如图7所示的数据传输装置700,装置700包括:
生成单元701,用于生成与使用该虚拟桌面相关的数据;
虚拟桌面客户端702,用于定期生成事件或者信号,并使用该事件或者该信号触发向服务器200的虚拟桌面服务端发送该与使用该虚拟桌面相关的数据。
可选地,在装置700中,生成单元701可以部署在虚拟桌面客户端702内部,或者生成单元701独立部署于桌面客户端702的外部。
可选地,该虚拟桌面客户端702包括事件生成模块7021,该事件生成模块7021每间隔预设时间生成一个该事件。
可选地,该虚拟桌面客户端702包括信号生成模块7022,该信号生成模块7022每间隔预设时间生成一个该信号。
可选地,该虚拟桌面客户端702,用于:
获取发送该与使用该虚拟桌面相关的数据的速率;
在该事件或者该信号触发该发送时,以该速率向该服务器200的虚拟桌面服务端发送该与使用该虚拟桌面相关的数据。
参见图1,本申请提供一种服务器200,服务器200包括处理器201和存储器202。
其中,该存储器202,用于存储计算机指令。
该处理器201,用于执行该存储器202存储的计算机指令,使得该服务器200执行上述数据传输方法中由服务器200执行的步骤。
参见图1,本申请提供一种终端100,终端100包括处理器101和存储器102。
其中,该存储器102,用于存储计算机指令。
该处理器101,用于执行该存储器102存储的计算机指令,使得该终端100执行上述数据传输方法中由终端100执行的步骤。
参见图1,本申请提供一种系统,该系统包括服务器200和终端100;该服务器200用于执行上述数据传输方法中由服务器200执行的步骤。
参见图1,本申请提供一种系统,该系统包括服务器200和终端100;该终端100用于执行上述数据传输方法中由终端100执行的步骤。
本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当服务器200的处理器201执行该计算机指令时,该服务器200执行上述数据传输方法中由服务器200执行的步骤。
本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当终端100的处理器102执行该计算机指令时,该终端100执行上数据传输方法中由终端100执行的步骤。
本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。服务器200的处理器201可以从计算机可读存储介质读取该计算机指令,处理器201执行该计算机指令,使得该服务器200执行上述数据传输方法中由服务器200执行的步骤。
本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端100的处理器101可以从计算机可读存储介质读取该计算机指令,处理器101执行该计算机指令,使得该终端100执行上述数据传输方法中由该终端100执行的步骤。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改;而这些修改,并不使相应技术方案脱离权利要求的保护范围。

Claims (18)

  1. 一种数据传输方法,其特征在于,应用于服务器通过虚拟桌面服务端向终端提供虚拟桌面的场景,所述方法包括:
    所述服务器生成与使用所述虚拟桌面相关的数据;
    所述服务器中的所述虚拟桌面服务端定期生成事件或者信号;
    所述服务器的所述虚拟桌面服务端使用所述事件或者所述信号触发向所述终端的虚拟桌面客户端发送所述与使用所述虚拟桌面相关的数据。
  2. 根据权利要求1所述的方法,其特征在于,
    所述服务器的所述虚拟桌面服务端包括事件生成模块,所述事件生成模块每间隔预设时间生成一个所述事件;或者
    所述服务器的所述虚拟桌面服务端包括信号生成模块,所述信号生成模块每间隔预设时间生成一个所述信号。
  3. 根据权利要求1或2所述的方法,其特征在于,所述方法包括:
    所述服务器的所述虚拟桌面服务端获取发送所述与使用所述虚拟桌面相关的数据的速率;
    在所述事件或者所述信号触发所述发送时,所述服务器的所述虚拟桌面服务端以所述速率向所述终端的虚拟桌面客户端发送所述与使用所述虚拟桌面相关的数据。
  4. 一种数据传输方法,其特征在于,应用于终端通过虚拟桌面客户端使用服务器提供的虚拟桌面的场景,所述方法包括:
    所述终端生成与使用所述虚拟桌面相关的数据;
    所述终端的所述虚拟桌面客户端定期生成事件或者信号;
    所述终端的所述虚拟桌面客户端使用所述事件或者所述信号触发向所述服务器的虚拟桌面服务端发送所述与使用所述虚拟桌面相关的数据。
  5. 根据权利要求4所述的方法,其特征在于,所述终端的所述虚拟桌面客户端包括事件生成模块,所述事件生成模块每间隔预设时间生成一个所述事件;或者
    所述终端的所述虚拟桌面客户端包括信号生成模块,所述信号生成模块每间隔预设时间生成一个所述信号。
  6. 根据权利要求4或5所述的方法,其特征在于,所述方法包括:
    所述终端的所述虚拟桌面客户端获取发送所述与使用所述虚拟桌面相关的数据的速率;
    在所述事件或者所述信号触发所述发送时,所述终端的所述虚拟桌面客户端以所述速率向所述服务器的虚拟桌面服务端发送所述与使用所述虚拟桌面相关的数据。
  7. 一种数据传输装置,其特征在于,所述数据传输装置包括:
    生成单元,用于生成与使用所述虚拟桌面相关的数据;
    虚拟桌面服务端,用于定期生成事件或者信号,并使用所述事件或者所述信号触发向终端的虚拟桌面客户端发送所述使用所述虚拟桌面相关的数据。
  8. 根据权利要求7所述的数据传输装置,其特征在于,
    所述虚拟桌面服务端包括件生成模块,所述事件生成模块每间隔预设时间生成一个所述事件;或者
    所述虚拟桌面服务端包括信号生成模块,所述信号生成模块每间隔预设时间生成一个所述信号。
  9. 根据权利要求7或8所述的数据传输装置,其特征在于,所述虚拟桌面服务端,用于:
    获取发送所述使用所述虚拟桌面相关的数据的速率;
    在所述事件或者所述信号触发所述发送时,以所述速率向所述终端的虚拟桌面客户端发送所述使用所述虚拟桌面相关的数据。
  10. 一种数据传输装置,其特征在于,所述数据传输装置包括:
    生成单元,用于生成与使用所述虚拟桌面相关的数据;
    虚拟桌面客户端,用于定期生成事件或者信号,并使用所述事件或者所述信号触发向服务器的虚拟桌面服务端发送所述与使用所述虚拟桌面相关的数据。
  11. 根据权利要求10所述的数据传输装置,其特征在于,
    所述虚拟桌面客户端包括事件生成模块,所述事件生成模块每间隔预设时间生成一个所述事件;或者
    所述虚拟桌面客户端包括信号生成模块,所述信号生成模块每间隔预设时间生成一个所述信号。
  12. 根据权利要求10或11所述的数据传输装置,其特征在于,所述虚拟桌面客户端,用于:
    获取发送所述与使用所述虚拟桌面相关的数据的速率;
    在所述事件或者所述信号触发所述发送时,以所述速率向所述服务器的虚拟桌面服务端发送所述与使用所述虚拟桌面相关的数据。
  13. 一种服务器,其特征在于,包括处理器和存储器;
    所述存储器,用于存储计算机指令;
    所述处理器,用于执行所述存储器存储的计算机指令,使得所述服务器执行权利要求1至3任一项所述的数据传输方法。
  14. 一种终端,其特征在于,包括显示屏、处理器和存储器;
    所述存储器,用于存储计算机指令;
    所述处理器,用于执行所述存储器存储的计算机指令,使得所述终端执行权利要求4至6任一项所述的数据传输方法。
  15. 一种系统,其特征在于,所述系统包括服务器和终端;
    所述服务器用于执行权利要求1至3任一项所述的数据传输方法,或者所述服务器为权利要求13所述的服务器。
  16. 一种系统,其特征在于,所述系统包括服务器和终端;
    所述终端用于执行权利要求4至6任一项所述的数据传输方法,或者所述终端为权利要求14所述的终端。
  17. 一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令指示服务器执行权利要求1至3任一项所述的数据传输方法。
  18. 一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令指示终端执行权利要求4至6任一项所述的数据传输方法。
PCT/CN2019/098054 2018-11-28 2019-07-27 数据传输方法和装置、服务器和终端 WO2020107918A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811438865.0A CN109802989A (zh) 2018-11-28 2018-11-28 数据传输方法和装置、服务器和终端
CN201811438865.0 2018-11-28

Publications (1)

Publication Number Publication Date
WO2020107918A1 true WO2020107918A1 (zh) 2020-06-04

Family

ID=66556316

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/098054 WO2020107918A1 (zh) 2018-11-28 2019-07-27 数据传输方法和装置、服务器和终端

Country Status (2)

Country Link
CN (1) CN109802989A (zh)
WO (1) WO2020107918A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11065005B2 (en) 2018-11-07 2021-07-20 Covidien Lp Reload assembly for a circular stapling device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109802989A (zh) * 2018-11-28 2019-05-24 华为技术有限公司 数据传输方法和装置、服务器和终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103701807A (zh) * 2013-12-26 2014-04-02 华为技术有限公司 一种vdi环境下的数据发送方法和装置
CN104144212A (zh) * 2014-07-16 2014-11-12 福建星网锐捷网络有限公司 一种虚拟桌面图像传输方法、装置及系统
US20140359055A1 (en) * 2013-05-29 2014-12-04 Vmware, Inc. Systems and methods for transmitting images
CN109802989A (zh) * 2018-11-28 2019-05-24 华为技术有限公司 数据传输方法和装置、服务器和终端

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000004676A1 (fr) * 1998-07-14 2000-01-27 Sony Corporation Procede de gestion de la transmission de donnees, procede de transmission de donnees, et emetteur et recepteur de donnees
CN101001375A (zh) * 2007-01-18 2007-07-18 北京中星微电子有限公司 一种图像采集的方法和装置
CN102571884B (zh) * 2010-12-31 2015-10-07 上海博泰悦臻电子设备制造有限公司 无线网络信号状况感知方法和系统
CN103702233B (zh) * 2013-12-16 2017-11-10 Tcl集团股份有限公司 一种实现网络虚拟直播的系统及方法
CN105101456B (zh) * 2014-04-24 2019-05-07 阿尔卡特朗讯 一种用于物联网设备触发的方法、设备与系统
CN104144087A (zh) * 2014-06-13 2014-11-12 国家电网公司 一种远程桌面检测系统及其检测方法
US10084721B2 (en) * 2015-01-16 2018-09-25 Vmware, Inc. Transformation of discrete service events into continuous, periodic data for metering and billing of cloud services
CN107979582B (zh) * 2016-10-25 2020-08-14 央视国际网络无锡有限公司 一种udp数据流传输方法及其装置
CN107249032A (zh) * 2017-06-15 2017-10-13 华中师范大学 一种基于远程桌面传输的课件资源同步阅览装置及其工作方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140359055A1 (en) * 2013-05-29 2014-12-04 Vmware, Inc. Systems and methods for transmitting images
CN103701807A (zh) * 2013-12-26 2014-04-02 华为技术有限公司 一种vdi环境下的数据发送方法和装置
CN104144212A (zh) * 2014-07-16 2014-11-12 福建星网锐捷网络有限公司 一种虚拟桌面图像传输方法、装置及系统
CN109802989A (zh) * 2018-11-28 2019-05-24 华为技术有限公司 数据传输方法和装置、服务器和终端

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11065005B2 (en) 2018-11-07 2021-07-20 Covidien Lp Reload assembly for a circular stapling device

Also Published As

Publication number Publication date
CN109802989A (zh) 2019-05-24

Similar Documents

Publication Publication Date Title
JP7023384B2 (ja) ユーザおよびシステムヒントを用いて最適化される階層表示リモーティングを与えるコンピュータシステムおよび関連する方法
US11252097B2 (en) Continuous calibration of network metrics
JP6164747B2 (ja) 協働環境におけるフロー制御のためのおよび信頼性のある通信のための方法
US20190028548A1 (en) Transport of control data in proxy-based network communications
WO2015035767A1 (zh) 一种基于桌面云的媒体控制方法和设备
US20170126789A1 (en) Automatic Software Controller Configuration based on Application and Network Data
US20190306007A1 (en) Mechanism for rapid network failure detection for faster switch-over in server-to-server applications
CN109660467B (zh) 用于控制流量的方法和装置
WO2020107918A1 (zh) 数据传输方法和装置、服务器和终端
WO2019028673A1 (zh) 基于B/S架构的数据通信系统、方法、Web服务器及监控系统
US20220345371A1 (en) Control configuration for a plurality of endpoint devices
US8972563B2 (en) Updating changes to caches
US9894117B2 (en) File transfers for virtual conferences
WO2024061308A1 (zh) 通知处理方法、终端设备、服务端及计算机存储介质
EP4085599A1 (en) Systems and methods for multi-client content delivery
US10616081B2 (en) Application aware cluster monitoring
CA3061451A1 (en) Task based service management platform
US10216926B2 (en) Isolation of untrusted code in operating system without isolation capability
US8825739B2 (en) Method and apparatus for controlling multiple systems in a low bandwidth environment
US20210281656A1 (en) Applying application-based policy rules using a programmable application cache
WO2022221113A1 (en) Managing performance of elements providing a session via a multi-hop network topology
JP6213059B2 (ja) 中継プログラム、中継装置、及び中継方法
US20170222904A1 (en) Distributed Business Transaction Specific Network Data Capture
US11368400B2 (en) Continuously calibrated network system
JP7367909B2 (ja) 第一端末、サーバ装置、第二端末、情報処理方法、およびプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19888816

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19888816

Country of ref document: EP

Kind code of ref document: A1