本申请涉及云桌面技术领域,特别涉及一种数据传输方法及装置。
背景技术:
随着云桌面技术的快速发展,企业员工对办公方式的需求越来越多样化,远程办公的需求也越来越多,云桌面安全地支持广域网变得越来越重要。所谓远程办公,指的是企业员工在不同区域,均可登陆云桌面。
当前云桌面的网关是没有vip用户功能的,所有经过广域网网关接入的云桌面用户被一视同仁,但是互联网出口带宽都是有上限的,在达到上限的前提下,桌面更新就很慢,甚至断开连接,例如,某一重要用户正以远程办公的方式通过广域网网关连接到公司里的云桌面办公,处理紧急事务,但是由于网络卡顿而导致响应慢,甚至断开连接,这样就可能严重影响公司的业务。
那么,在广域网出口带宽有限的条件下,如何保证重要用户的业务体验,使得重要用户实现流畅地广域网vdi体验变得非常重要。
技术实现要素:
本申请提供了一种数据传输方法及装置,用以解决现有技术中存在的无法对不同客户端的不同类型数据进行按需传输的问题。
第一方面,本申请提供了一种数据传输方法,应用于云桌面系统中的网关,客户端通过所述网关与虚拟机进行通信,所述方法包括:
接收目标客户端发送的连接建立请求,其中,所述连接建立请求携带有所述目标客户端的客户端优先级;
记录所述目标客户端的客户端优先级,并将所述连接建立请求转发至对应的目标虚拟机,以使得所述目标客户端和所述目标虚拟机之间建立连接;
接收所述目标客户端发送的待传输数据,并确定传输所述待传输数据所需的目标通道的通道优先级,以及基于所述目标客户端的客户端优先级和所述目标通道的通道优先级对所述待传输数据进行传输。
可选地,所述通道至少包括用于传输视频图像数据的通道,用于传输音频数据的通道,用于传输鼠标键盘操作指令的通道和用于传输打印数据的通道。
可选地,所述网关本地预设有各类通道的通道优先级;
确定传输所述待传输数据所需通道的优先级的步骤包括:
确定所述待传输数据的数据类型,并基于所述待传输数据的数据类型确定用于传输所述待传输数据的目标通道;
基于本地预设的各类通道的优先级信息,确定所述目标通道的优先级信息。
可选地,基于所述目标客户端的客户端优先级和所述目标通道的通道优先级对所述待传输数据进行传输的步骤包括:
基于所述目标客户端的客户端优先级和所述目标通道的通道优先级确定综合优先级,基于所述综合优先级调度本地的转发模块对所述待传输数据进行传输,其中,综合优先级越高,可调度转发模块的次数越多,综合优先级越低,可调度转发模块的次数越少。
可选地,所述客户端优先级为客户端特权值,所述通道优先级为通道特权值,其中,特权值越大,标示优先级越高;
基于所述目标客户端的客户端优先级和所述目标通道的通道优先级确定综合优先级的步骤包括:
基于所述目标客户端的客户端特权值,所述目标通道的通道特权值和预设的客户端和通道的权重比值,计算所述综合优先级,其中,综合优先级的值越大,标示优先级越高。
第二方面,本申请提供了一种数据传输装置,应用于云桌面系统中的网关,客户端通过所述网关与虚拟机进行通信,所述装置包括:
接收单元,用于接收目标客户端发送的连接建立请求,其中,所述连接建立请求携带有所述目标客户端的客户端优先级;
记录单元,用于记录所述目标客户端的客户端优先级,并将所述连接建立请求转发至对应的目标虚拟机,以使得所述目标客户端和所述目标虚拟机之间建立连接;
传输单元,用于接收所述目标客户端发送的待传输数据,并确定传输所述待传输数据所需的目标通道的通道优先级,以及基于所述目标客户端的客户端优先级和所述目标通道的通道优先级对所述待传输数据进行传输。
可选地,所述通道至少包括用于传输视频图像数据的通道,用于传输音频数据的通道,用于传输鼠标键盘操作指令的通道和用于传输打印数据的通道。
可选地,所述网关本地预设有各类通道的通道优先级;
在确定传输所述待传输数据所需通道的优先级时,所述传输单元具体用于:
确定所述待传输数据的数据类型,并基于所述待传输数据的数据类型确定用于传输所述待传输数据的目标通道;
基于本地预设的各类通道的优先级信息,确定所述目标通道的优先级信息。
可选地,在基于所述目标客户端的客户端优先级和所述目标通道的通道优先级对所述待传输数据进行传输时,所述传输单元具体用于:
基于所述目标客户端的客户端优先级和所述目标通道的通道优先级确定综合优先级,基于所述综合优先级调度本地的转发模块对所述待传输数据进行传输,其中,综合优先级越高,可调度转发模块的次数越多,综合优先级越低,可调度转发模块的次数越少。
可选地,所述客户端优先级为客户端特权值,所述通道优先级为通道特权值,其中,特权值越大,标示优先级越高;
在基于所述目标客户端的客户端优先级和所述目标通道的通道优先级确定综合优先级时,所述传输单元具体用于:
基于所述目标客户端的客户端特权值,所述目标通道的通道特权值和预设的客户端和通道的权重比值,计算所述综合优先级,其中,综合优先级的值越大,标示优先级越高。
第三方面,本申请实施例提供了一种网关设备,该网关设备包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。
综上可知,本申请实施例提供的数据传输方法,应用于云桌面系统中的网关,客户端通过所述网关与虚拟机进行通信,所述方法包括:接收目标客户端发送的连接建立请求,其中,所述连接建立请求携带有所述目标客户端的客户端优先级;记录所述目标客户端的客户端优先级,并将所述连接建立请求转发至对应的目标虚拟机,以使得所述目标客户端和所述目标虚拟机之间建立连接;接收所述目标客户端发送的待传输数据,并确定传输所述待传输数据所需的目标通道的通道优先级,以及基于所述目标客户端的客户端优先级和所述目标通道的通道优先级对所述待传输数据进行传输。
采用本申请实施例提供的数据传输方法,能根据待传输数据的重要性和/或发送待传输数据的客户端的重要性进行按需传输,对客户端优先级较高,且对应的通道优先级较高的待传输数据优先传输,有效管理不同客户端发送的不同类型数据的传输,避免由于带宽使用率较高时,重要用户的重要数据传输出现延迟的情况。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1为本申请实施例提供的一种云桌面系统的结构示意图;
图2为本申请实施例提供的一种数据传输方法的详细流程图;
图3为本申请实施例提供的一种数据传输装置的结构示意图;
图4为本申请实施例提供的一种网关的结构示意图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面结合具体用于场景对本申请实施例提供的云桌面系统进行详细说明,示例性的,参阅图1所示,为本申请实施例提供的一种云桌面系统的结构示意图,处于分支机构的各客户端(如,客户端1,客户端2)通过互联网接入数据中心侧的网关,各客户端通过网关与云桌面服务器上的云桌面虚拟机建立通信连接(如,vdi虚拟桌面基础架构连接)。网关用于传输各客户端与对应的云桌面虚拟机之间的各类数据。那么,如何实施对不同类型客户端的不同类型的数据进行不同优先级的传输,是本申请所要解决的技术问题。
示例性的,参阅图2所示,为本申请实施例提供的一种数据传输方法的详细流程图,该方法应用于云桌面系统中的网关,客户端通过上述网关与虚拟机进行通信,该方法包括以下步骤:
步骤200:接收目标客户端发送的连接建立请求,其中,上述连接建立请求携带有上述目标客户端的客户端优先级。
具体地,用户在通过客户端与云桌面服务器中的虚拟机建立vdi连接时,会通过网关向云桌面服务器发送连接建立请求,本申请实施例中,该连接建立请求中携带有客户端的客户端优先级(即用户优先级)。
步骤210:记录上述目标客户端的客户端优先级,并将上述连接建立请求转发至对应的目标虚拟机,以使得上述目标客户端和上述目标虚拟机之间建立连接。
具体地,网关在接收到目标客户端发送的连接建立请求时,解析该连接建立请求以获取该连接建立请求携带的目标客户端的客户端优先级,并维护在本地,进一步地,将该连接建立请求转发至云桌面服务器上目标客户端的对应的目标虚拟机,目标虚拟机基于该连接建立请求与目标客户端建立连接。
步骤220:接收上述目标客户端发送的待传输数据,并确定传输上述待传输数据所需的目标通道的通道优先级,以及基于上述目标客户端的客户端优先级和上述目标通道的通道优先级对上述待传输数据进行传输。
本申请实施例中,一种较佳的实现方式为,上述网关本地预设有各类通道的通道优先级;那么,在确定传输上述待传输数据所需通道的优先级时,一种较佳的方式为,确定上述待传输数据的数据类型,并基于上述待传输数据的数据类型确定用于传输上述待传输数据的目标通道;基于本地预设的各类通道的优先级信息,确定上述目标通道的优先级信息。
需要说明的是,vdi协议有多个通道组成,每个通道是一个tcp连接。每个通道用于传输不同类型的数据,本申请实施例中,上述通道至少包括用于传输视频图像数据的通道,用于传输音频数据的通道,用于传输鼠标键盘操作指令的通道和用于传输打印数据的通道。
也就是说,网关在接收到目标客户端发送的待传输数据时,首先,判断待传输数据的数据类型,即判断待传输数据需要采用哪类通道进行传输,如,确定需要采用目标通道进行传输;接着,由于网关本地维护有各类通道的通道优先级,即可确定出目标通道的通道优先级;最后,根据目标客户端的客户端优先级和目标通道的通道优先级对待传输数据进行传输处理。
本申请实施例中,在基于上述目标客户端的客户端优先级和上述目标通道的通道优先级对上述待传输数据进行传输时,一种较佳的实现方式为,基于上述目标客户端的客户端优先级和上述目标通道的通道优先级确定综合优先级,基于上述综合优先级调度本地的转发模块对上述待传输数据进行传输,其中,综合优先级越高,可调度转发模块的次数越多,综合优先级越低,可调度转发模块的次数越少。
实际应用中,网关在接收到客户端发送的待传输数据之后,网关本地的调度器调度本地的转发模块对待传输数据进行处理,即数据处理优先级即可以指调度转发模块进行数据传输的优先级,即使用转发模块的优先级。客户端优先级和通道优先级高的数据可优先使用转发模块。
本申请实施例中,一种较佳的实现方式为,上述客户端优先级为客户端特权值,上述通道优先级为通道特权值,其中,特权值越大,标示优先级越高。
例如,客户端特权值为1-9级,通道特权值也为1-9级,当特权值越高,表示优先级越高,也就是说,特权值为9的客户端发送的对应通道特权值为9的数据的处理优先级最高。同理,特权值为1的客户端发送的对应通道特权值为1的数据的处理优先级最低。
那么,在基于上述目标客户端的客户端优先级和上述目标通道的通道优先级确定综合优先级时,一种较佳的实现方式为,基于上述目标客户端的客户端特权值,上述目标通道的通道特权值和预设的客户端和通道的权重比值,计算上述综合优先级,其中,综合优先级的值越大,标示优先级越高。
例如,假设预设的客户端和通道的权重比值为1:1,归一化处理后,即客户端的占比为50%,通道的占比为50%,若目标客户端的客户端特权值为8,目标通道的通道特权值6,则加权后得到的综合特权值为(8*50%+6*50%)=(4+3)=7。
又例如,假设预设的客户端和通道权重比值为3:1,归一化处理后,即客户端的占比为75%,通道的占比为25%,若目标客户端的客户端特权值为4,目标通道的通道特权值8,则加权后得到的综合特权值为(4*75%+8*25%)=(3+2)5。
当然,客户端和通道的权重比值可以根据用户需求和/或具体应用场景进行自定义设置,本申请实施例中,在此不做具体限定。
基于与上述发明实施例同样的发明构思,示例性的,参阅图3所示,为本申请实施例提供的一种数据传输装置的结构示意图,该装置应用于云桌面系统中的网关,客户端通过所述网关与虚拟机进行通信,该装置包括:
接收单元30,用于接收目标客户端发送的连接建立请求,其中,所述连接建立请求携带有所述目标客户端的客户端优先级;
记录单元31,用于记录所述目标客户端的客户端优先级,并将所述连接建立请求转发至对应的目标虚拟机,以使得所述目标客户端和所述目标虚拟机之间建立连接;
传输单元32,用于接收所述目标客户端发送的待传输数据,并确定传输所述待传输数据所需的目标通道的通道优先级,以及基于所述目标客户端的客户端优先级和所述目标通道的通道优先级对所述待传输数据进行传输。
可选地,所述通道至少包括用于传输视频图像数据的通道,用于传输音频数据的通道,用于传输鼠标键盘操作指令的通道和用于传输打印数据的通道。
可选地,所述网关本地预设有各类通道的通道优先级;
在确定传输所述待传输数据所需通道的优先级时,所述传输单元32具体用于:
确定所述待传输数据的数据类型,并基于所述待传输数据的数据类型确定用于传输所述待传输数据的目标通道;
基于本地预设的各类通道的优先级信息,确定所述目标通道的优先级信息。
可选地,基于所述目标客户端的客户端优先级和所述目标通道的通道优先级对所述待传输数据进行传输时,所述传输单元32具体用于:
基于所述目标客户端的客户端优先级和所述目标通道的通道优先级确定综合优先级,基于所述综合优先级调度本地的转发模块对所述待传输数据进行传输,其中,综合优先级越高,可调度转发模块的次数越多,综合优先级越低,可调度转发模块的次数越少。
可选地,所述客户端优先级为客户端特权值,所述通道优先级为通道特权值,其中,特权值越大,标示优先级越高;
在基于所述目标客户端的客户端优先级和所述目标通道的通道优先级确定综合优先级时,所述传输单元32具体用于:
基于所述目标客户端的客户端特权值,所述目标通道的通道特权值和预设的客户端和通道的权重比值,计算所述综合优先级,其中,综合优先级的值越大,标示优先级越高。
以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecificintegratedcircuit,简称asic),或,一个或多个微处理器(digitalsingnalprocessor,简称dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,简称fpga)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessingunit,简称cpu)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
进一步地,本申请实施例提供的网关,从硬件层面而言,所述网关的硬件架构示意图可以参见图4所示,所述网关可以包括:存储器40和处理器41,
存储器40用于存储程序指令;处理器41调用存储器40中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种网关设备,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。