数据传输方法和装置、服务器和终端与流程

文档序号:17758170发布日期:2019-05-24 21:27阅读:158来源:国知局
数据传输方法和装置、服务器和终端与流程

本申请涉及计算机领域,尤其涉及数据传输方法和装置、服务器、终端和计算机程序产品。



背景技术:

利用桌面云技术,服务器可以向终端提供虚拟桌面,用户可以通过终端使用服务器提供的虚拟桌面。其中,对于与使用虚拟桌面相关的数据,是基于桌面云技术的传输协议在服务器的虚拟桌面服务端与终端的虚拟桌面客户端之间进行相互传输的。

现有技术中,虚拟桌面服务端使用服务器的时钟来控制数据发送的。虚拟桌面服务端获取服务器的时钟的过程会造成不稳定的延迟,导致虚拟桌面服务端发送数据会忽快忽慢,不够稳定。类似地,虚拟桌面客户端使用终端的时钟来控制数据发送也会存在不稳定的类似问题。



技术实现要素:

有鉴于此,本申请提供了一种数据传输方法和装置、服务器、终端和计算机程序产品,可以实现使用事件或者信号来触发数据发送。

第一方面,本申请提供一种数据传输方法。在该方法中,服务器通过虚拟桌面服务端向终端提供虚拟桌面。具体地,该服务器生成与使用该虚拟桌面相关的数据;即该数据是在服务器侧生成的,需要向终端发送的。

本申请中,服务器的虚拟桌面服务端可以定期生成生成事件或者信号。该虚拟桌面服务端使用每次生成的事件或者信号来触发向该终端的虚拟桌面客户端发送数据。

如果是定期生成事件,由于定期生成的多个事件之间的时间间隔是相等的,并且该多个事件是在虚拟桌面服务端内生成的,没有虚拟桌面服务端获取事件的时延,因此使用该多个事件控制发送的数据流是平稳的。

如果是定期生成信号,由于定期生成的多个信号之间的时间间隔是相等的,并且该多个信号是在虚拟桌面服务端内生成的,没有虚拟桌面服务端获取信号的时延,因此使用该多个信号控制发送的数据流是平稳的。

第一方面的一种可能设计,该服务器的虚拟桌面服务端包括事件生成模块,该事件生成模块每间隔预设时间生成一个该事件。

在该虚拟桌面服务端内部新增该事件生成模块,该事件生成模块生成的事件可以实时触发该虚拟桌面服务端向终端发送数据,避免该虚拟桌面服务端获取事件的时延。

第一方面的一种可能设计,该服务器的虚拟桌面服务端包括信号生成模块,该信号生成模块每间隔预设时间生成一个该信号。

在该虚拟桌面服务端内部新增该信号生成模块,该信号生成模块生成的信号可以实时触发该虚拟桌面服务端向终端发送数据,避免该虚拟桌面服务端获取信号的时延。

第一方面的一种可能设计,在本数据传输方法中,该服务器的该虚拟桌面服务端在该事件或者该信号触发该发送时,获取发送该与使用该虚拟桌面相关的数据的速率,并以获取的速率向该终端的虚拟桌面客户端发送该与使用该虚拟桌面相关的数据。

使用速率控制发送数据的数据量,便于控制虚拟桌面服务端向虚拟桌面客户端的数据量,保证虚拟桌面服务端向虚拟桌面客户端输出的数据流更平稳可控。

第二方面,本申请提供一种数据传输方法。在该方法中,终端通过虚拟桌面客户端使用服务器提供的虚拟桌面。具体地,该终端生成与使用该虚拟桌面相关的数据;即该数据是在终端侧生成的,需要向服务器发送的。

本申请中,终端的虚拟桌面客户端可以定期生成生成事件或者信号。该虚拟桌面客户端使用每次生成的事件或者信号来触发向该服务器的虚拟桌面服务端发送数据。

如果是定期生成事件,由于定期生成的多个事件之间的时间间隔是相等的,并且该多个事件是在虚拟桌面客户端内生成的,没有虚拟桌面客户端获取事件的时延,因此使用该多个事件控制发送的数据流是平稳的。

如果是定期生成信号,由于定期生成的多个信号之间的时间间隔是相等的,并且该多个信号是在虚拟桌面客户端内生成的,没有虚拟桌面客户端获取信号的时延,因此使用该多个信号控制发送的数据流是平稳的。

第二方面的一种可能设计,该终端的虚拟桌面客户端包括事件生成模块,该事件生成模块每间隔预设时间生成一个该事件。

在该虚拟桌面客户端内部新增该事件生成模块,该事件生成模块生成的事件可以实时触发该虚拟桌面客户端向服务器发送数据,避免该虚拟桌面客户端获取事件的时延。

第二方面的一种可能设计,该终端的虚拟桌面客户端包括信号生成模块,该信号生成模块每间隔预设时间生成一个该信号。

在该虚拟桌面客户端内部新增该信号生成模块,该信号生成模块生成的信号可以实时触发该虚拟桌面客户端向服务器发送数据,避免该虚拟桌面客户端获取信号的时延。

第二方面的一种可能设计,在本数据传输方法中,该终端的该虚拟桌面客户端在该事件或者该信号触发该发送时,获取发送该与使用该虚拟桌面相关的数据的速率,并以获取的速率向该服务器的虚拟桌面服务端发送该与使用该虚拟桌面相关的数据。

使用速率控制发送数据的数据量,便于控制虚拟桌面客户端向虚拟桌面服务端的数据量,保证虚拟桌面客户端向虚拟桌面服务端输出的数据流更平稳可控。

第三方面,本申请提供一种数据传输装置,该装置包括的功能模块用于实现第一方面或第一方面的任意可能设计提供的方法中由服务器执行的步骤。

本申请提供另一种数据传输装置,该装置包括的功能模块用于实现第二方面或第二方面的任意可能设计提供的方法中由终端执行的步骤。

第四方面,本申请提供一种服务器,该服务器包括处理器和存储器。该存储器存储计算机指令;该处理器执行该存储器存储的计算机指令,使得该服务器执行上述第一方面或者第一方面的各种可能设计提供的方法中由服务器执行的步骤。

本申请提供一种终端,该终端包括处理器和存储器。该存储器存储计算机指令;该处理器执行该存储器存储的计算机指令,使得该终端执行上述第二方面或者第二方面的各种可能设计提供的方法中由该终端执行的步骤。

本申请提供一种系统,该系统包括服务器和终端;该服务器用于执行上述第一方面或者第一方面的各种可能设计提供的方法中由服务器执行的步骤,或者该服务器为第四方面提供的服务器。

本申请提供一种系统,该系统包括服务器和终端;该终端用于执行上述第二方面或者第二方面的各种可能设计提供的方法中由该终端执行的步骤,或者该终端为第四方面提供的终端。

第五方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当服务器的处理器执行该计算机指令时,该服务器执行上述第一方面或者第一方面的各种可能设计提供的方法中由服务器执行的步骤。

本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当终端的处理器执行该计算机指令时,该终端执行上述第二方面或者第二方面的各种可能设计提供的方法中由终端执行的步骤。

本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。服务器的处理器可以从计算机可读存储介质读取该计算机指令;该处理器执行该计算机指令,使得该服务器执行上述第一方面或者第一方面的各种可能设计提供的方法中由服务器执行的步骤。

本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器可以从计算机可读存储介质读取该计算机指令;该处理器执行该计算机指令,使得该终端执行上述第二方面或者第二方面的各种可能设计提供的方法中由该终端执行的步骤。

附图说明

图1为本申请适用的一种应用场景的架构示意图;

图2为本申请提供的数据传输方法的一种流程示意图;

图3为本申请提供的数据传输方法的一种流程示意图;

图4为本申请提供的数据传输方法的一种流程示意图;

图5为本申请提供的数据传输方法的一种流程示意图;

图6为本申请提供的数据传输装置600的一种逻辑结构示意图;

图7为本申请提供的数据传输装置700的一种逻辑结构示意图。

具体实施方式

下面将结合本申请中的附图,对本申请提供的技术方案进行描述。

应用场景

参见图1,服务器200为桌面云中的服务器,服务器200向终端100提供虚拟桌面。例如服务器200运行提供虚拟桌面的虚拟机,该虚拟机向终端100提供虚拟桌面。例如服务器200运行提供虚拟桌面的容器,该容器向终端100提供虚拟桌面。

具体地,服务器200上部署虚拟桌面服务端。例如,如果是服务器200通过自己的操作系统(operatingsystem,os)直接向终端100提供虚拟桌面,则该虚拟桌面服务端部署在该服务器200的os上。例如,如果是服务器200运行向终端100提供虚拟桌面的虚拟机,则该虚拟桌面服务端部署在该虚拟机中。例如,如果是服务器200运行向终端100提供虚拟桌面的容器,则该虚拟桌面服务端部署在该容器中。

相应地,在终端100部署虚拟桌面客户端。

在虚拟桌面服务端与虚拟桌面客户端之间通过桌面云技术的传输协议建立通信连接。这样,在虚拟桌面服务端与虚拟桌面客户端之间,可以基于该传输协议进行数据交互。例如,虚拟桌面服务端基于该传输协议向虚拟桌面客户端发送虚拟桌面,以便终端100显示该虚拟桌面。例如终端100通过虚拟桌面客户端基于该传输协议操作服务器200提供的虚拟桌面,如发送在该虚拟桌面拖动鼠标的操作指示。

本申请对桌面云技术的传输协议不做限定,该传输协议能够实现终端100操作服务器200提供的虚拟桌面即可。例如,该传输协议可以是独立计算架构(independentcomputingarchitecture,ica)协议。例如,该传输协议可以是pcoip(pcoverip)协议。例如,该传输协议可以是远程桌面协议(remotedesktopprotocol,rdp)协议。例如,该传输协议可以是spice(simpleprotocolforindependentcomputingenvironments)协议。例如,该传输协议可以是hdx(highdefinitionexperience)协议。例如,该传输协议可以是其它用于实现虚拟桌面重定向的传输协议。

可选地,该终端100可以为瘦客户机(thinclient,tc)。

可选地,该终端100可以为智能手机、平板电脑、可穿戴设备或车载电脑等移动终端。

可选地,终端100的一种可能的基本硬件架构,如图1所示。

参见图1,终端100包括处理器101、存储器102、通信接口103和总线104。

终端100中,处理器101的数量可以是一个或多个,图1仅示意了其中一个处理器101。可选地,处理器101,可以是中央处理器(centralprocessingunit,cpu)。如果终端100具有多个处理器101,多个处理器101的类型可以不同,或者可以相同。可选地,终端100的多个处理器101还可以集成为多核处理器。

存储器102存储计算机指令和数据;例如,存储器102存储实现虚拟桌面客户端所需的计算机指令和数据,以及存储实现本申请提供的数据传输方法中终端执行的步骤所需的计算机指令和数据。存储器102可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(read-onlymemory,rom)、固态硬盘(solid-statedrive,ssd)、硬盘(harddiskdrive,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,可以是中央处理器(centralprocessingunit,cpu)。如果服务器200具有多个处理器201,多个处理器201的类型可以不同,或者可以相同。可选地,服务器200的多个处理器201还可以集成为多核处理器。

存储器202存储计算机指令和数据;例如,存储器202存储实现虚拟桌面服务端所需的计算机指令和数据,以及存储实现本申请提供的数据传输方法中服务器执行的步骤所需的计算机指令和数据。存储器202可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(read-onlymemory,rom)、固态硬盘(solid-statedrive,ssd)、硬盘(harddiskdrive,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个用户数据报协议(userdatagramprotocol,udp)数据包,10毫秒内发送10个udp数据包即为发送数据的速率。每个udp数据包的数据量为1千字节(kb)。这样,1秒钟发送的总数据量为1000kb。

这样,可以通过数据的速率控制服务器200的桌面服务端向终端100的桌面客户端发送数据所需的带宽。

可选地,在每次事件触发服务器200的桌面服务端向终端100的桌面客户端发送多个数据包(携带与使用该虚拟桌面相关的数据)后,终端100的桌面客户端可以向服务器200的桌面服务端反馈该每个数据包的接收信息,该接收信息可以包括接收每个数据包的时间或者是否正常接收到每个数据包。这样,服务器200可以根据终端100反馈的每个数据包的接收信息,分析出流控参数,该流控参数至少包括以下任一种:rtt(roundtriptime)、丢包率、重传率、吞吐率、拥塞度。相应地,服务器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个用户数据报协议(userdatagramprotocol,udp)数据包,10毫秒内发送10个udp数据包即为发送数据的速率。每个udp数据包的数据量为1千字节(kb)。这样,1秒钟发送的总数据量为1000kb。

这样,可以通过数据的速率控制服务器200的桌面服务端向终端100的桌面客户端发送数据所需的带宽。

可选地,在每次信号触发服务器200的桌面服务端向终端100的桌面客户端发送多个数据包(携带与使用该虚拟桌面相关的数据)后,终端100的桌面客户端可以向服务器200的桌面服务端反馈该每个数据包的接收信息,该接收信息可以包括接收每个数据包的时间或者是否正常接收到每个数据包。这样,服务器200可以根据终端100反馈的每个数据包的接收信息,分析出流控参数,该流控参数至少包括以下任一种:rtt(roundtriptime)、丢包率、重传率、吞吐率、拥塞度。相应地,服务器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个用户数据报协议(userdatagramprotocol,udp)数据包,10毫秒内发送10个udp数据包即为发送数据的速率。每个udp数据包的数据量为1千字节(kb)。这样,1秒钟发送的总数据量为1000kb。

这样,可以通过数据的速率控制终端100的桌面客户端向服务器200发送数据所需的带宽。

可选地,在每次事件触发终端100的桌面客户端向服务器200的桌面服务端发送多个数据包(携带与使用该虚拟桌面相关的数据)后,服务器200的桌面服务端可以向终端100的桌面客户端反馈该每个数据包的接收信息,该接收信息可以包括接收每个数据包的时间或者是否正常接收到每个数据包。这样,终端100可以根据服务器200反馈的每个数据包的接收信息,分析出流控参数,该流控参数至少包括以下任一种:rtt(roundtriptime)、丢包率、重传率、吞吐率、拥塞度。相应地,终端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个用户数据报协议(userdatagramprotocol,udp)数据包,10毫秒内发送10个udp数据包即为发送数据的速率。每个udp数据包的数据量为1千字节(kb)。这样,1秒钟发送的总数据量为1000kb。

这样,可以通过数据的速率控制终端100的桌面客户端向服务器200的桌面服务端发送数据所需的带宽。

可选地,在每次信号触发终端100的桌面客户端向服务器200的桌面服务端发送多个数据包(携带与使用该虚拟桌面相关的数据)后,服务器200的桌面服务端可以向终端100的桌面客户端反馈该每个数据包的接收信息,该接收信息可以包括接收每个数据包的时间或者是否正常接收到每个数据包。这样,终端100可以根据服务器200反馈的每个数据包的接收信息,分析出流控参数,该流控参数至少包括以下任一种:rtt(roundtriptime)、丢包率、重传率、吞吐率、拥塞度。相应地,终端100的桌面客户端根据分析出的流控参数,调整发送数据的速率。

这样,下个信号触发终端100的桌面客户端向服务器200的桌面服务端发送数据时候,使用最新调整的速率发送数据。

本申请提供一种数据传输装置,该数据传输装置包括用于服务器200实现上述数据传输方法的功能单元。

该数据传输装置部署在本申请的服务器200上。例如,如果是服务器200通过自己的操作系统(operatingsystem,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执行的步骤。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改;而这些修改,并不使相应技术方案脱离权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1