CN110719309A - 虚拟桌面连接方法、代理装置、系统、设备及存储介质 - Google Patents

虚拟桌面连接方法、代理装置、系统、设备及存储介质 Download PDF

Info

Publication number
CN110719309A
CN110719309A CN201810771907.6A CN201810771907A CN110719309A CN 110719309 A CN110719309 A CN 110719309A CN 201810771907 A CN201810771907 A CN 201810771907A CN 110719309 A CN110719309 A CN 110719309A
Authority
CN
China
Prior art keywords
virtual desktop
establishment request
link establishment
link
client
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201810771907.6A
Other languages
English (en)
Other versions
CN110719309B (zh
Inventor
曹泊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201810771907.6A priority Critical patent/CN110719309B/zh
Publication of CN110719309A publication Critical patent/CN110719309A/zh
Application granted granted Critical
Publication of CN110719309B publication Critical patent/CN110719309B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例公开了一种虚拟桌面连接方法,应用于虚拟桌面客户端设备,包括:接收虚拟桌面客户端发送的第一建链请求,所述第一建链请求携带有虚拟桌面服务端设备的地址和端口号;根据所述虚拟桌面服务端设备的地址和端口号,形成所述第一建链请求的消息头信息,向所述虚拟桌面服务端设备发送所述第一建链请求,所述第一建链请求用于建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路。本发明实施例还公开了一种虚拟桌面代理连接装置、系统、设备及计算机存储介质。

Description

虚拟桌面连接方法、代理装置、系统、设备及存储介质
技术领域
本发明涉及通信领域,尤其涉及一种虚拟桌面连接方法、代理装置、系统、设备及计算机存储介质。
背景技术
随着云计算技术的发展,虚拟桌面的应用越来越广泛。虚拟桌面不是给每个用户都配置一台通过运行操作系统而提供桌面的个人计算机,而是通过在数据中心的虚拟桌面服务端设备上运行操作系统将桌面进行虚拟化,即生成虚拟桌面,用户通过虚拟桌面客户端设备与虚拟桌面进行连接,用户访问虚拟桌面类似于访问传统个人计算机提供的桌面。在虚拟桌面使用过程中,虚拟桌面客户端设备的本地输入设备比如鼠标、键盘的操作将通过网络发送给虚拟桌面服务端设备中的虚拟桌面,虚拟桌面将更新后的虚拟桌面通过网络发送给虚拟桌面客户端设备进行显示。
在虚拟桌面使用过程中,虚拟桌面客户端设备与虚拟桌面服务端设备之间的数据交互可以采用标准的独立计算环境简单协议(SPICE,Simple Protocol for IndependentComputing Environment)建立虚拟桌面客户端设备与虚拟桌面服务端设备之间的连接。采用SPICE协议时,虚拟桌面客户端设备与虚拟桌面服务端设备之间需要建立主通道、显示通道、光标通道、输入通道、音频通道、录音通道共6条通道即链路进行数据交互。如果虚拟桌面服务端设备上运行的虚拟机数量较多,如有100个虚拟机,则需要占用100个端口,并建立600条链路。因此,在多虚拟机的情况下,虚拟桌面服务端设备会占用大量端口以及大量套接字(socket)句柄资源,导致虚拟桌面服务端设备资源开销大。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种能够有效减小虚拟桌面服务端设备资源开销的虚拟桌面连接方法、代理装置、系统、设备及计算机存储介质。
为达到上述目的,本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种虚拟桌面连接方法,应用于虚拟桌面客户端设备,包括:
接收虚拟桌面客户端发送的第一建链请求,所述第一建链请求携带有虚拟桌面服务端设备的地址和端口号;
根据所述虚拟桌面服务端设备的地址和端口号,形成所述第一建链请求的消息头信息,向所述虚拟桌面服务端设备发送所述第一建链请求,所述第一建链请求用于建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路。
上述方案中,还包括:
接收所述虚拟桌面客户端发送的第二建链请求;所述第二建链请求携带有所述虚拟桌面服务端设备的地址、端口号以及目标链路标识,所述第二建链请求用于建立与所述虚拟桌面客户端之间的与所述目标链路标识对应的目标链路;
根据所述第二建链请求建立与所述虚拟桌面客户端之间的与所述目标链路标识对应的目标链路;
根据所述虚拟桌面服务端设备的地址和端口号,形成所述第二建链请求的消息头信息,基于所述代理链路向所述虚拟桌面服务端设备发送所述第二建链请求。
上述方案中,所述向所述虚拟桌面服务端设备发送所述第一建链请求之前,还包括:
根据设置的加密方式对所述第一建链请求进行加密,获得加密后的所述第一建链请求。
第二方面,本发明实施例提供了一种虚拟桌面连接方法,应用于虚拟桌面服务端设备,包括:
接收虚拟桌面客户端设备发送的第一建链请求;
根据所述第一建链请求的消息头信息,获得所述第一建链请求所携带的虚拟桌面服务端设备的地址和端口号,建立所述虚拟桌面服务端设备的端口号对应的虚拟桌面与所述虚拟桌面客户端设备之间的代理链路。
上述方案中,还包括:
接收所述虚拟桌面客户端设备发送的第二建链请求,所述第二建链请求携带有所述虚拟桌面服务端设备的地址、端口号以及目标链路标识;
根据所述第二建链请求建立与所述虚拟桌面服务设备的端口号对应的虚拟桌面之间的与所述目标链路标识对应的目标链路。
上述方案中,还包括:
根据设置的解密方式对所述第一建链请求进行解密,获得解密后的所述第一建链请求。
第三方面,本发明实施例提供了一种虚拟桌面代理连接装置,应用于虚拟桌面客户端设备,所述装置包括:第一接收模块、第一处理模块和发送模块;其中,
所述第一接收模块,用于接收虚拟桌面客户端发送的第一建链请求;所述第一建链请求携带有虚拟桌面服务端设备的地址和端口号;
所述第一处理模块,用于根据所述虚拟桌面服务端设备的地址和端口号,形成所述第一建链请求的消息头信息;
所述发送模块,用于向所述虚拟桌面服务端设备发送所述第一建链请求,所述第一建链请求用于建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路。
第四方面,本发明实施例提供了一种虚拟桌面代理连接装置,应用于虚拟桌面服务端设备,所述装置包括:第二接收模块和第二处理模块;其中,
所述第二接收模块,用于接收虚拟桌面客户端设备发送的第一建链请求;
所述第二处理模块,用于根据所述第一建链请求的消息头信息,获得所述第一建链请求所携带的虚拟桌面服务端设备的地址和端口号,建立所述虚拟桌面服务端设备的端口号对应的虚拟桌面与所述虚拟桌面客户端设备之间的代理链路。
第五方面,本发明实施例提供了一种虚拟桌面客户端设备,所述虚拟桌面客户端设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行第一方面任一项所述虚拟桌面连接方法的步骤。
第六方面,本发明实施例提供了一种虚拟桌面服务端设备,所述虚拟桌面服务端设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行第二方面任一项所述虚拟桌面连接方法的步骤。
第七方面,本发明实施例提供了一种虚拟桌面连接系统,包括如第五方面所述的虚拟桌面客户端设备和如第六方面所述的虚拟桌面服务端设备。
第八方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现第一方面和第二方面任一项所述虚拟桌面连接方法的步骤。
上述实施例所提供的虚拟桌面连接方法、代理装置、系统、设备及计算机存储介质,虚拟桌面客户端设备接收到虚拟桌面客户端发送的第一建链请求后,根据所述第一建链请求携带的虚拟桌面服务端设备的地址和端口号形成所述第一建链请求的消息头信息,并向所述虚拟桌面服务端设备发送所述第一建链请求,以建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路,从而通过所述代理链路实现虚拟桌面客户端设备与所述虚拟桌面服务端设备之间的数据交互。如此,虚拟桌面客户端设备与虚拟桌面服务端设备的端口号对应的虚拟桌面之间仅需要建立一条代理链路,通过该代理链路实现虚拟桌面客户端和虚拟桌面服务端之间的数据交互,减少了虚拟桌面服务端设备所占用的端口和套接字句柄资源,从而有效减小了虚拟桌面服务端设备资源开销。
附图说明
图1为本发明一实施例中虚拟桌面连接系统的结构示意图;
图2为本发明一实施例中虚拟桌面客户端设备的结构示意图;
图3为本发明一实施例中虚拟桌面服务端设备的结构示意图;
图4为本发明一实施例中虚拟桌面连接方法的流程示意图;
图5为本发明另一实施例中虚拟桌面连接方法的流程示意图;
图6为本发明一实施例中虚拟桌面代理连接装置的结构示意图;
图7为本发明另一实施例中虚拟桌面代理连接装置的结构示意图;
图8为本发明一实施例中虚拟桌面连接方法中数据交互示意图;
图9为本发明另一实施例中虚拟桌面连接系统的结构示意图;
图10为现有虚拟桌面连接系统的结构示意图;
图11为本发明一实施例中虚拟桌面加密连接的流程示意图;
图12为本发明一实施例中虚拟桌面非加密连接的流程示意图;
图13为本发明一实施例中虚拟桌面连接媒体流交互的流程示意图;
图14为本发明一实施例中虚拟桌面连接串口交互的流程示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明技术方案做进一步的详细阐述。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
如图1所示,在一个实施例中,提供了一种虚拟桌面连接系统,包括虚拟桌面客户端设备110和虚拟桌面服务端设备120。其中,虚拟桌面连接方法应用于虚拟桌面客户端设备110和虚拟桌面服务端设备120中,虚拟桌面客户端设备110与虚拟桌面服务端设备120通过网络连接,虚拟桌面客户端设备110可以是诸如个人计算机、手机、平板电脑等可运行虚拟桌面客户端的智能设备,虚拟桌面服务端设备120可以是诸如虚拟桌面服务器、虚拟桌面服务器群、虚拟桌面系统平台、虚拟桌面云等可提供虚拟桌面的设备。虚拟桌面服务端设备120中运行有能够提供虚拟桌面的虚拟机,虚拟桌面客户端设备110通过连接虚拟桌面服务端设备120中的虚拟机而建立与对应的虚拟桌面之间的连接。
如图2所示,虚拟桌面客户端设备110包括通过系统总线连接的处理器、存储介质、内存、网络接口、显示屏幕和输入设备,存储介质中存储有操作系统和用于实现本申请实施例所提供的应用于虚拟桌面客户端设备110的虚拟桌面连接方法的虚拟桌面代理连接装置,该虚拟桌面代理连接装置也可以称为虚拟桌面代理客户端。该处理器用于提高计算和控制能力,支撑整个虚拟桌面客户端设备110的运行。虚拟桌面客户端设备110中的内存用于为存储介质中的虚拟桌面代理连接装置的运行提供环境,网络接口用于与虚拟桌面服务端设备120进行网络通信,接收或发送数据,例如向虚拟桌面服务端设备120发送第一建链请求等。显示屏幕用于虚拟桌面的显示,输入设备用于接收用户输入的命令或数据等,比如,接收用户对虚拟桌面客户端进行操作而使虚拟桌面客户端发出第一建链请求的命令。对于带触摸屏的虚拟桌面客户端设备110,显示屏幕和输入设备可为触摸屏。
如图3所示,虚拟桌面服务端设备120包括通过系统总线连接的处理器、存储介质、内存、网络接口,存储介质中存储有操作系统和用于实现本申请实施例所提供的应用于虚拟桌面服务端设备120的虚拟桌面连接方法的虚拟桌面代理连接装置,该虚拟桌面代理连接装置也可以称为虚拟桌面代理服务端。该处理器用于提高计算和控制能力,支撑整个虚拟桌面服务端设备120的运行。虚拟桌面服务端设备120中的内存用于为存储介质中的虚拟桌面代理连接装置的运行提供环境,网络接口用于与虚拟桌面客户端设备110进行网络通信,接收或发送数据,例如接收虚拟桌面客户端设备110发送的第一建链请求等。
如图4所示,在一个实施例中,提供了一种虚拟桌面连接方法,该方法可以应用于图1和图2中的虚拟桌面客户端设备110,该方法包括:
S101:接收虚拟桌面客户端发送的第一建链请求,所述第一建链请求携带有虚拟桌面服务端设备的地址和端口号;
这里,虚拟桌面客户端设备中安装虚拟桌面客户端,虚拟桌面客户端设备获取用户打开虚拟桌面客户端的操作指令,并获取用户在虚拟桌面客户端中输入或确认待连接的虚拟桌面服务端设备的地址的操作指令后,由于所述虚拟桌面服务端设备的端口号与所述地址之间存在一一对应关系,此时虚拟桌面客户端可以将该操作指令视为虚拟桌面连接指令,根据虚拟桌面连接指令确定需要与虚拟桌面服务端设备的端口号对应的虚拟桌面之间建立代理链路,则发出第一建链请求。相应的,此时虚拟桌面代理客户端接收虚拟桌面客户端发出的第一建链请求。需要说明的是,所述地址可以是互联网协议地址,所述端口号是虚拟桌面服务端设备在虚拟桌面客户端进行注册时分配给所述虚拟桌面客户端的。
S102:根据所述虚拟桌面服务端设备的地址和端口号,形成所述第一建链请求的消息头信息,向所述虚拟桌面服务端设备发送所述第一建链请求,所述第一建链请求用于建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路。
这里,消息头信息是指根据设置的传输协议对待传输的数据进行组装而形成的消息,本申请实施例中,该消息头信息是指传输控制协议(TCP,Transmission ControlProtocol)消息头。所述消息头信息包含有所述虚拟桌面服务端设备的地址和端口号,以确定所述第一建链请求的接收方,即确定需要与该虚拟桌面客户端对应的虚拟桌面之间建立代理链路的所述虚拟桌面服务端设备。虚拟桌面客户端设备根据所述虚拟桌面服务端设备的地址和端口号,形成所述第一建链请求的消息头信息,向所述虚拟桌面服务端设备发送所述第一建链请求,以建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路,从而实现了仅通过一条链路即所述代理链路实现虚拟桌面客户端设备与所述虚拟桌面服务端设备之间的数据交互。
综上,上述实施例提供的虚拟桌面连接方法中,接收到虚拟桌面客户端发送的第一建链请求后,根据所述第一建链请求携带的虚拟桌面服务端设备的地址和端口号形成所述第一建链请求的消息头信息,并向所述虚拟桌面服务端设备发送所述第一建链请求,以建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路,从而通过所述代理链路实现虚拟桌面客户端设备与虚拟桌面服务端设备的端口号对应的虚拟桌面之间的数据交互。如此,虚拟桌面客户端设备与虚拟桌面服务端设备的端口号对应的虚拟桌面之间仅需要建立一条代理链路,通过该代理链路实现虚拟桌面客户端和虚拟桌面服务端之间的数据交互,减少了虚拟桌面服务端设备所占用的端口和套接字句柄资源,从而有效减小了虚拟桌面服务端设备资源开销。
在一可选的实施例中,该方法还包括:
接收所述虚拟桌面客户端发送的第二建链请求;所述第二建链请求携带有所述虚拟桌面服务端设备的地址、端口号以及目标链路标识,所述第二建链请求用于建立与所述虚拟桌面客户端之间的与所述目标链路标识对应的目标链路;
根据所述第二建链请求建立与所述虚拟桌面客户端之间的与所述目标链路标识对应的目标链路;
根据所述虚拟桌面服务端设备的地址和端口号,形成所述第二建链请求的消息头信息,基于所述代理链路向所述虚拟桌面服务端设备发送所述第二建链请求。
这里,当建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路后,虚拟桌面代理客户端与虚拟桌面客户端之间、以及虚拟桌面代理服务端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间分别需要建立主通道、显示通道、光标通道、输入通道、音频通道、录音通道共6条内部通道,即链路以进行对应数据的交互。所述虚拟桌面客户端确认虚拟桌面客户端设备与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路建立成功后,发出第二建链请求。相应的,此时虚拟桌面代理客户端接收虚拟桌面客户端发出的第二建链请求。所述虚拟桌面客户端确认虚拟桌面客户端设备与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路建立成功,可以是接收到所述虚拟桌面服务端设备返回的代理链路建立成功的响应消息。所述目标链路标识用于指示当前需要建立的链路,如可以是主通道、显示通道、光标通道、输入通道、音频通道、录音通道中任意一条通道即链路的标识,通常是先建立主通道,然后再建立显示通道、光标通道、输入通道、音频通道和录音通道。虚拟桌面客户端设备根据所述第二建链请求建立与所述虚拟桌面客户端之间的与所述目标链路标识对应的目标链路,以使虚拟桌面代理客户端与虚拟桌面客户端之间可以通过所述目标链路进行对应的数据交互。例如,当虚拟桌面代理客户端与虚拟桌面客户端之间建立好音频通道后,则虚拟桌面代理客户端与虚拟桌面客户端之间可以通过所述音频通道进行音频数据交互,并通过虚拟桌面客户端设备与虚拟桌面服务端之间的代理链路与虚拟桌面服务端之间进行音频数据交互;又如,当虚拟桌面代理客户端与虚拟桌面客户端之间建立好显示通道后,则虚拟桌面代理客户端与虚拟桌面客户端之间可以通过所述显示通道进行视频数据交互,并通过虚拟桌面客户端设备与虚拟桌面服务端之间的代理链路与虚拟桌面服务端之间进行视频数据交互等。
这里,所述消息头信息包含有所述虚拟桌面服务端设备的地址和端口号,以确定所述第二建链请求的接收方,即确定所述虚拟桌面代理服务端需要与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间建立与所述目标链路标识对应的目标链路。虚拟桌面客户端设备根据所述虚拟桌面服务端设备的地址和端口号,形成所述第二建链请求的消息头信息,基于所述代理链路向所述虚拟桌面服务端设备发送所述第二建链请求,以建立所述虚拟桌面代理服务端与所述虚拟桌面服务设备的端口号对应的虚拟桌面之间的、与所述目标链路标识对应的目标链路,以使虚拟桌面代理服务端与所述虚拟桌面服务设备的端口号对应的虚拟桌面之间可以通过所述目标链路进行对应的数据交互。
如此,在建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路后,根据所述虚拟桌面客户端发送的第二建链请求建立与所述虚拟桌面客户端之间的与所述目标链路标识对应的目标链路,使虚拟桌面代理客户端与虚拟桌面客户端之间可以通过所述目标链路进行对应的数据交互;并且,基于所述代理链路建立所述虚拟桌面代理服务端与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的目标链路,使虚拟桌面代理服务端与所述虚拟桌面服务设备的端口号对应的虚拟桌面之间也可以通过所述目标链路进行对应的数据交互,从而确保虚拟桌面客户端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间可以进行数据交互。这样,通过在虚拟桌面代理客户端与虚拟桌面客户端之间、以及虚拟桌面代理服务端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间分别建立多条用于数据交互的通道,而不是直接在虚拟桌面客户端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间建立多条用于数据交互的通道,减少了虚拟桌面服务端设备所占用的端口,进一步减小了虚拟桌面服务端设备资源开销。
在一可选的实施例中,所述向所述虚拟桌面服务端设备发送所述第一建链请求之前,该方法还包括:
根据设置的加密方式对所述第一建链请求进行加密,获得加密后的所述第一建链请求。
这里,所述加密方式可以是所述虚拟桌面客户端设备与所述虚拟桌面服务端设备已相互协商好的加密算法,比如安全套接层(SSL,Secure Sockets Layer)算法。相应的,所述向所述虚拟桌面服务端设备发送所述第一建链请求为将加密后的所述第一建链请求向所述虚拟桌面服务端设备发送。需要说明的是,也可根据设置的加密方式对所述第二建链请求进行加密,获得加密后的所述第二建链请求,然后再基于所述代理链路向所述虚拟桌面服务端设备发送加密后的所述第二建链请求。
如此,根据场景需要可采用加密方式进行数据交互,有效加强了虚拟桌面连接和使用的安全性。
如图5所示,在一个实施例中,提供了一种虚拟桌面连接方法,该方法可以应用于图1和图3中的虚拟桌面服务端设备120,该方法包括:
S201:接收虚拟桌面客户端设备发送的第一建链请求;
这里,虚拟桌面服务端设备中包含有虚拟桌面服务端,所述第一建链请求的消息头信息包含有所述虚拟桌面服务端设备的地址和端口号,所述第一建链请求用于建立所述虚拟桌面客户端设备与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路。
S202:根据所述第一建链请求的消息头信息,获得所述第一建链请求所携带的虚拟桌面服务端设备的地址和端口号,建立所述虚拟桌面服务端设备的端口号对应的虚拟桌面与所述虚拟桌面客户端设备之间的代理链路。
具体地,对接收到的虚拟桌面客户端设备发送的第一建链请求进行解析,获取所述第一建链请求的消息头信息,从而获得所述第一建链请求所携带的虚拟桌面服务端设备的地址和端口号,并建立所述虚拟桌面服务端设备的端口号对应的虚拟桌面与所述虚拟桌面客户端设备之间的代理链路。
综上,上述实施例提供的虚拟桌面连接方法中,接收到虚拟桌面客户端设备发送的第一建链请求后,根据所述第一建链请求的消息头信息,建立所述虚拟桌面服务端设备的端口号对应的虚拟桌面与所述虚拟桌面客户端设备之间的代理链路,从而通过所述代理链路可实现虚拟桌面客户端设备与所述虚拟桌面服务端设备之间的数据交互。如此,虚拟桌面客户端设备与虚拟桌面服务端设备的端口号对应的虚拟桌面之间仅需要建立一条代理链路,通过该代理链路实现虚拟桌面客户端和虚拟桌面服务端之间的数据交互,减少了虚拟桌面服务端设备所占用的端口和套接字句柄资源,从而有效减小了虚拟桌面服务端设备资源开销。
在一可选的实施例中,该方法还包括:
接收所述虚拟桌面客户端设备发送的第二建链请求,所述第二建链请求携带有所述虚拟桌面服务端设备的地址、端口号以及目标链路标识;
根据所述第二建链请求建立与所述虚拟桌面服务设备的端口号对应的虚拟桌面之间的与所述目标链路标识对应的目标链路。
这里,当建立所述虚拟桌面服务端设备的端口号对应的虚拟桌面与所述虚拟桌面客户端设备之间的代理链路后,虚拟桌面代理服务端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间分别需要建立主通道、显示通道、光标通道、输入通道、音频通道、录音通道共6条内部通道,即链路以进行对应数据的交互。所述目标链路标识用于指示当前需要建立的链路,如可以是主通道、显示通道、光标通道、输入通道、音频通道、录音通道中任意一条通道即链路的标识,通常是先建立主通道,然后再建立显示通道、光标通道、输入通道、音频通道和录音通道。虚拟桌面服务端设备根据所述第二建链请求建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的与所述目标链路标识对应的目标链路,以使虚拟桌面代理服务端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间可以通过所述目标链路进行对应的数据交互。例如,当虚拟桌面代理服务端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间建立好音频通道后,则虚拟桌面代理服务端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间可以通过所述音频通道进行音频数据交互,并通过虚拟桌面客户端设备与虚拟桌面服务端之间的代理链路与虚拟桌面客户端之间进行音频数据交互。又如,当虚拟桌面代理服务端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间建立好显示通道后,则虚拟桌面代理服务端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间可以通过所述显示通道进行视频数据交互,并通过虚拟桌面客户端设备与虚拟桌面服务端之间的代理链路与虚拟桌面客户端之间进行视频数据交互等。需要说明的是,所述第二建链请求携带有所述虚拟桌面服务端设备的地址、端口号可以是指所述第二建链请求中的消息头信息包含有所述虚拟桌面服务端设备的地址和端口号。
如此,在建立所述虚拟桌面服务端设备的端口号对应的虚拟桌面与所述虚拟桌面客户端设备之间的代理链路后,根据所述虚拟桌面客户端发送的第二建链请求建立与所述虚拟桌面服务设备的端口号对应的虚拟桌面之间的与所述目标链路标识对应的目标链路,使虚拟桌面代理服务端与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间可以通过所述目标链路进行对应的数据交互,从而确保虚拟桌面客户端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间可以进行数据交互。这样,通过在虚拟桌面代理服务端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间建立多条用于数据交互的通道,而不是直接在虚拟桌面客户端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间建立多条用于数据交互的通道,减少了虚拟桌面服务端设备所占用的端口,进一步减小了虚拟桌面服务端设备资源开销。
在一可选的实施例中,所述根据所述第一建链请求的消息头信息,获得所述第一建链请求所携带的虚拟桌面服务端设备的地址和端口号之前,该方法还包括:
根据设置的解密方式对所述第一建链请求进行解密,获得解密后的所述第一建链请求。
这里,所述解密方式可以是所述虚拟桌面客户端设备与所述虚拟桌面服务端设备已相互协商好的解密算法,与所述虚拟桌面客户端设备采用的加密算法相对应,比如可以是安全套接层(SSL,Secure Sockets Layer)算法。相应的,所述根据所述第一建链请求的消息头信息,获得所述第一建链请求所携带的虚拟桌面服务端设备的地址和端口号为:对所述第一建链请求进行解密,获得解密后的所述第一建链请求,根据解密后的所述第一建链请求的消息头信息,获得所述第一建链请求所携带的虚拟桌面服务端设备的地址和端口号。需要说明的是,当所述虚拟桌面客户端设备对所述第二建链请求进行了加密时,也需要对所述第二建链请求进行解密。
如此,根据场景需要对加密后的第一建链请求进行解密而进行数据交互,有效加强了虚拟桌面连接和使用的安全性。
如图6所示,在一个实施例中,提供了一种虚拟桌面代理连接装置,应用于虚拟桌面客户端设备,该装置包括:第一接收模块10、第一处理模块11和发送模块12;其中,
所述第一接收模块10,用于接收虚拟桌面客户端发送的第一建链请求;所述第一建链请求携带有虚拟桌面服务端设备的地址和端口号;
所述第一处理模块11,用于根据所述虚拟桌面服务端设备的地址和端口号,形成所述第一建链请求的消息头信息;
所述发送模块12,用于向所述虚拟桌面服务端设备发送所述第一建链请求,所述第一建链请求用于建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路。
综上,上述实施例提供的虚拟桌面代理连接装置中,接收到虚拟桌面客户端发送的第一建链请求后,根据所述第一建链请求携带的虚拟桌面服务端设备的地址和端口号形成所述第一建链请求的消息头信息,并向所述虚拟桌面服务端设备发送所述第一建链请求,以建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路,从而通过所述代理链路实现虚拟桌面客户端设备与虚拟桌面服务端设备的端口号对应的虚拟桌面之间的数据交互。如此,虚拟桌面客户端设备与虚拟桌面服务端设备的端口号对应的虚拟桌面之间仅需要建立一条代理链路,通过该代理链路实现虚拟桌面客户端和虚拟桌面服务端之间的数据交互,减少了虚拟桌面服务端设备所占用的端口和套接字句柄资源,从而有效减小了虚拟桌面服务端设备资源开销。
在一可选的实施例中,
所述第一接收模块10,还用于接收所述虚拟桌面客户端发送的第二建链请求;所述第二建链请求携带有所述虚拟桌面服务端设备的地址、端口号以及目标链路标识,所述第二建链请求用于建立与所述虚拟桌面客户端之间的与所述目标链路标识对应的目标链路;
所述第一处理模块11,还用于根据所述第二建链请求建立与所述虚拟桌面客户端之间的与所述目标链路标识对应的目标链路;以及,根据所述虚拟桌面服务端设备的地址和端口号,形成所述第二建链请求的消息头信息;
所述发送模块12,还用于基于所述代理链路向所述虚拟桌面服务端设备发送所述第二建链请求。
如此,在建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路后,根据所述虚拟桌面客户端发送的第二建链请求建立与所述虚拟桌面客户端之间的与所述目标链路标识对应的目标链路,使虚拟桌面代理客户端与虚拟桌面客户端之间可以通过所述目标链路进行对应的数据交互;并且,基于所述代理链路建立所述虚拟桌面代理服务端与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的目标链路,使虚拟桌面代理服务端与所述虚拟桌面服务设备的端口号对应的虚拟桌面之间也可以通过所述目标链路进行对应的数据交互,从而确保虚拟桌面客户端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间可以进行数据交互。这样,通过在虚拟桌面代理客户端与虚拟桌面客户端之间、以及虚拟桌面代理服务端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间分别建立多条用于数据交互的通道,而不是直接在虚拟桌面客户端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间建立多条用于数据交互的通道,减少了虚拟桌面服务端设备所占用的端口,进一步减小了虚拟桌面服务端设备资源开销。
在一可选的实施例中,该装置还包括:加密模块13,用于根据设置的加密方式对所述第一建链请求进行加密,获得加密后的所述第一建链请求。
如此,根据场景需要可采用加密方式进行数据交互,有效加强了虚拟桌面连接和使用的安全性。
本实施例还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,计算机存储介质可以是磁性随机存取存储器(FRAM,ferromagnetic random accessmemory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,ProgrammableRead-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically ErasableProgrammable Read-Only Memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。
一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程被处理器运行时,执行如下步骤:
接收虚拟桌面客户端发送的第一建链请求,所述第一建链请求携带有虚拟桌面服务端设备的地址和端口号;
根据所述虚拟桌面服务端设备的地址和端口号,形成所述第一建链请求的消息头信息,向所述虚拟桌面服务端设备发送所述第一建链请求,所述第一建链请求用于建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
接收所述虚拟桌面客户端发送的第二建链请求;所述第二建链请求携带有所述虚拟桌面服务端设备的地址、端口号以及目标链路标识,所述第二建链请求用于建立与所述虚拟桌面客户端之间的与所述目标链路标识对应的目标链路;
根据所述第二建链请求建立与所述虚拟桌面客户端之间的与所述目标链路标识对应的目标链路;
根据所述虚拟桌面服务端设备的地址和端口号,形成所述第二建链请求的消息头信息,基于所述代理链路向所述虚拟桌面服务端设备发送所述第二建链请求。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
根据设置的加密方式对所述第一建链请求进行加密,获得加密后的所述第一建链请求。
如图7所示,在一个实施例中,提供了一种虚拟桌面代理连接装置,应用于虚拟桌面服务端设备,该装置包括:第二接收模块20和第二处理模块21;其中,
所述第二接收模块20,用于接收虚拟桌面客户端设备发送的第一建链请求;
所述第二处理模块21,用于根据所述第一建链请求的消息头信息,获得所述第一建链请求所携带的虚拟桌面服务端设备的地址和端口号,建立所述虚拟桌面服务端设备的端口号对应的虚拟桌面与所述虚拟桌面客户端设备之间的代理链路。
综上,上述实施例提供的虚拟桌面代理连接装置中,接收到虚拟桌面客户端设备发送的第一建链请求后,根据所述第一建链请求的消息头信息,建立所述虚拟桌面服务端设备的端口号对应的虚拟桌面与所述虚拟桌面客户端设备之间的代理链路,从而通过所述代理链路可实现虚拟桌面客户端设备与所述虚拟桌面服务端设备之间的数据交互。如此,虚拟桌面客户端设备与虚拟桌面服务端设备的端口号对应的虚拟桌面之间仅需要建立一条代理链路,通过该代理链路实现虚拟桌面客户端和虚拟桌面服务端之间的数据交互,减少了虚拟桌面服务端设备所占用的端口和套接字句柄资源,从而有效减小了虚拟桌面服务端设备资源开销。
在一可选的实施例中,
所述第二接收模块20,还用于接收所述虚拟桌面客户端设备发送的第二建链请求,所述第二建链请求携带有所述虚拟桌面服务端设备的地址、端口号以及目标链路标识;
所述第二处理模块21,还用于根据所述第二建链请求建立与所述虚拟桌面服务设备的端口号对应的虚拟桌面之间的与所述目标链路标识对应的目标链路。
如此,在建立所述虚拟桌面服务端设备的端口号对应的虚拟桌面与所述虚拟桌面客户端设备之间的代理链路后,根据所述虚拟桌面客户端发送的第二建链请求建立与所述虚拟桌面服务设备的端口号对应的虚拟桌面之间的与所述目标链路标识对应的目标链路,使虚拟桌面代理服务端与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间可以通过所述目标链路进行对应的数据交互,从而确保虚拟桌面客户端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间可以进行数据交互。这样,通过在虚拟桌面代理服务端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间建立多条用于数据交互的通道,而不是直接在虚拟桌面客户端与虚拟桌面服务端设备的端口号对应的虚拟桌面之间建立多条用于数据交互的通道,减少了虚拟桌面服务端设备所占用的端口,进一步减小了虚拟桌面服务端设备资源开销。
在一可选的实施例中,该装置还包括解密模块22,用于根据设置的解密方式对所述第一建链请求进行解密,获得解密后的所述第一建链请求。
如此,根据场景需要对加密后的第一建链请求进行解密而进行数据交互,有效加强了虚拟桌面连接和使用的安全性。
本实施例还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,计算机存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。
一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程被处理器运行时,执行如下步骤:
接收虚拟桌面客户端设备发送的第一建链请求;
根据所述第一建链请求的消息头信息,获得所述第一建链请求所携带的虚拟桌面服务端设备的地址和端口号,建立所述虚拟桌面服务端设备的端口号对应的虚拟桌面与所述虚拟桌面客户端设备之间的代理链路。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
接收所述虚拟桌面客户端设备发送的第二建链请求,所述第二建链请求携带有所述虚拟桌面服务端设备的地址、端口号以及目标链路标识;
根据所述第二建链请求建立与所述虚拟桌面服务设备的端口号对应的虚拟桌面之间的与所述目标链路标识对应的目标链路。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
根据设置的解密方式对所述第一建链请求进行解密,获得解密后的所述第一建链请求。
下面通过具体示例对本发明实施例作进一步详细的说明,本示例中以虚拟桌面代理连接装置为连接代理模块(Client-Proxy-1、Client-Proxy-N、Serv-Proxy)、虚拟桌面客户端设备为客户端(Client-1、Client-N)、虚拟桌面服务端设备为服务端(VM-1、VM-N)为例。参见图8,图8(a)为现有虚拟桌面连接方法中数据交互示意图,图8(b)为本发明实施例提供的虚拟桌面连接方法中数据交互示意图。对比可知,本发明实施例提供的虚拟桌面连接方法中数据交互过程新增了连接代理层,所述连接代理层包括服务端连接代理模块和客户端连接代理模块,该连接代理层用于数据接收、数据加密/解密以及数据转发。参见图9,为本实施例提供的虚拟桌面连接系统的结构示意图,在云主机(HOST)的独立计算环境简单协议服务端(Spice Server)上建立一个服务端连接代理模块(Serv-Proxy),该服务端连接代理模块包括接收模块、加密/解密模块、分发模块,服务端连接代理模块用来与所有客户端连接代理模块(Client-Proxy-1、Client-Proxy-N)之间进行通信,并进行所有服务端数据的转发,以下将服务端连接代理模块简称为serv代理模块,记为Serv-Proxy。在客户端上建立一个客户端连接代理模块,该客户端连接代理模块包括接收模块、加密/解密模块、分发模块,客户端连接代理模块用来与服务端连接代理模块进行通信,并进行客户端所有数据的转发,以下将客户端连接代理模块简称为client代理模块,记为Client-Proxy。client代理模块和serv代理模块可采用加密连接或非加密连接方式,双方的数据交互仅采用一条TCP链路,记为Singal-Link,与现有技术中服务端与每个客户端之间需要建立主通道Main、显示通道Display、显示通道Cursor、输入通道Input、音频通道Record、录音通道Playback等6条链路相比,如图10所示,简化了服务端与客户端之间所需链路数量。服务端连接代理模块和客户端连接代理模块先协商好公用加密头,并在加密连接方式下在每个数据包前加上协商好的公用加密头。虚拟桌面客户端在建立与客户端连接代理模块之间的连接、以及虚拟桌面服务端在建立与服务端连接代理模块之间的连接时,分别通过建立6条内部通道记为N-Link,以处理原来的主通道(Main)、显示通道(Display)、光标通道(Cursor)、输入通道(Input)、音频通道(Record)和录音通道(Playback)的数据。客户端连接代理模块接收到服务端连接代理模块发送的数据后,根据数据的类型转发给虚拟桌面客户端与客户端连接代理模块之间的内部6条通道中的对应通道。服务端连接代理模块接收到客户端连接代理模块发送的数据后,根据数据的类型转发给服务端连接代理模块与虚拟机(VM,VirtualMachine)即服务端(VM-1、VM-N)之间的内部6条通道中的对应通道。
参见图11,为本实施例提供的虚拟桌面加密连接的流程示意图,该流程包括:
S301:发起第一建链请求;具体的,虚拟桌面客户端(Client)向本地的虚拟桌面代理客户端(Client-Proxy模块)发起第一建链请求,并告知期望的主机地址和端口。
这里,所述主机地址和端口用于确定提供虚拟桌面客户端所要连接的虚拟桌面对应的虚拟机。
S302:数据组装;具体的,Client-Proxy模块中的分发模块接收到本地的第一建链请求后,对第一建链请求进行数据组装而为第一建链请求添加消息头信息;所述消息头信息携带有期望的主机地址和端口。
S303:数据加密;具体的,Client-Proxy模块中的加密/解密模块将第一建链请求进行数据加密。
这里,数据加密可采用Client-Proxy模块和Serv-Proxy模块协商好的加密算法,比如采用安全套接层协议进行加密和解密。
S304:发送第一建链请求;具体的,Client-Proxy模块中的接收模块对外交互,根据消息头信息向虚拟桌面代理服务端(Serv-Proxy模块)发送第一建链请求。
S305:接收第一建链请求;具体的,Serv-Proxy模块中的接收模块接收第一建链请求。
S306:数据解密;具体的,Serv-Proxy模块中的加密/解密模块将所述第一建链请求进行解密。
S307:建立TCP链路;具体的,Serv-Proxy模块中的分发模块向期望的虚拟桌面服务端处理模块(Host-Svr)建立TCP链路。
这里,所述虚拟桌面服务端处理模块(Host-Svr)可以看作是虚拟桌面服务端中用于根据第一建链请求而建立相应链路的模块。
S308:数据交互;具体的,虚拟桌面客户端和Host-Svr通过两级代理实现加密数据交互。
S309:发起第二建链请求;具体的,虚拟桌面客户端向本地的Client-Proxy模块发起第二建链请求,并告知期望的主机地址和端口。
这里,当虚拟桌面客户端与Host-Svr之间建立代理链路后,Serv-Proxy模块与Host-Svr之间还需要建立能够在Serv-Proxy模块与Host-Svr之间传输音频、视频等数据的不同通道,因此,虚拟桌面客户端通过向本地的Client-Proxy模块发起第二建链请求,以请求在Serv-Proxy模块与Host-Svr之间建立与虚拟桌面客户端对应连接的主机地址和端口所对应的内部通道。所述第二建链请求携带有应建立的内部通道标识信息。
S310:数据组装;具体的,Client-Proxy模块中的分发模块接收到本地的第二建链请求后,对第二建链请求进行数据组装而为第二建链请求添加消息头信息。
S311:数据加密;具体的,Client-Proxy模块中的加密/解密模块将第二建链请求进行加密。
S312:链路已存在利用原有通道发送第二建链请求;具体的,Client-Proxy模块中的接收模块对外交互,如果目的地址链路已经存在,则利用原有通道告知目的地址和端口。
这里,所述目的地址和端口为所述期望的主机地址和端口。由于虚拟桌面客户端与Host-Svr之间已建立代理链路,则Client-Proxy模块通过所述代理链路向Serv-Proxy模块发送第二建链请求。
S313:接收第二建链请求;具体的,Serv-Proxy模块中的接收模块接收第二建链请求。
S314:数据解密;具体的,Serv-Proxy模块中的加密/解密模块将所述第二建链请求进行解密。
S315:建立TCP链路;具体的,Serv-Proxy模块中的分发模块向期望的Host-Svr建立TCP链路。
这里,根据Client-Proxy模块发送的第二建链请求,Serv-Proxy模块与Host-Svr之间建立与所述第二建链请求相对应的通道。
S308:新通道利用原有链路实现数据交互。
这里,所述新通道利用原有链路实现数据交互可以理解为后续建立的Serv-Proxy模块与Host-Svr之间的通道利用S307中建立的TCP链路进行数据交互。
参见图12,为本实施例提供的虚拟桌面非加密连接的流程示意图,该流程包括:
S401:发起第一建链请求;具体的,虚拟桌面客户端(Client)向本地的虚拟桌面代理客户端(Client-Proxy模块)发起第一建链请求,并告知期望的主机地址和端口。
这里,所述主机地址和端口用于确定提供虚拟桌面客户端所要连接的虚拟桌面对应的虚拟机。
S402:数据组装;具体的,Client-Proxy模块中的分发模块接收到本地的第一建链请求后,对第一建链请求进行数据组装而为第一建链请求添加消息头信息。
S403:发送第一建链请求;具体的,Client-Proxy模块中的接收模块对外交互,根据消息头信息向虚拟桌面代理服务端(Serv-Proxy模块)发送第一链请求,并告知期望的主机地址和端口。
S404:接收第一建链请求;具体的,Serv-Proxy模块中的接收模块接收第一建链请求。
S405:建立TCP链路;具体的,Serv-Proxy模块中的分发模块向期望的虚拟桌面服务端处理模块(Host-Svr)建立TCP链路。
这里,所述虚拟桌面服务端处理模块(Host-Svr)可以看作是虚拟桌面服务端中用于根据第一建链请求而建立相应链路的模块。
S406:数据交互;具体的,虚拟桌面客户端和Host-Svr通过两级代理实现数据交互。
S407:发起第二建链请求;具体的,虚拟桌面客户端向本地的Client-Proxy模块发起第二建链请求,并告知期望的主机地址和端口。
这里,当虚拟桌面客户端与Host-Svr之间建立代理链路后,Serv-Proxy模块与Host-Svr之间还需要建立能够在Serv-Proxy模块与Host-Svr之间传输音频、视频等数据的不同通道,因此,虚拟桌面客户端通过向本地的Client-Proxy模块发起第二建链请求,以请求在Serv-Proxy模块与Host-Svr之间建立与虚拟桌面客户端对应连接的主机地址和端口所对应的内部通道。所述第二建链请求携带有应建立的内部通道标识信息。
S408:数据组装;具体的,Client-Proxy模块中的分发模块接收到本地的第二建链请求后,对第二建链请求进行数据组装而为第二建链请求添加消息头信息。
S409:链路已存在利用原有通道发送第二建链请求;具体的,Client-Proxy模块中的接收模块对外交互,如果目的地址链路已经存在,则利用原有的通道告知目的地址和端口。
这里,所述目的地址和端口为所述期望的主机地址和端口。由于虚拟桌面客户端与Host-Svr之间已建立代理链路,则Client-Proxy模块通过所述代理链路向Serv-Proxy模块发送第二建链请求。
S410:接收第二建链请求;具体的,Serv-Proxy模块中的接收模块接收第二建链请求。
S411:建立TCP链路;具体的,Serv-Proxy模块中的分发模块向期望的Host-Svr建立TCP链路。
这里,根据Client-Proxy模块发送的第二建链请求,Serv-Proxy模块与Host-Svr之间建立与所述第二建链请求相对应的内部通道。
S412:新通道利用原有链路实现数据交互。
参见图13,为本实施例提供的虚拟桌面连接媒体流交互的流程示意图,该流程包括:
S501:视频发起第一建链请求;具体的,安装有虚拟桌面客户端(Client)的终端登录云桌面后,视频播放消息通过主通道告知虚拟桌面客户端;虚拟桌面客户端收到视频播放消息后,向本地的虚拟桌面代理客户端(Client-Proxy模块)发起第一建链请求,并告知期望的虚拟机地址和端口;
这里,当虚拟桌面客户端与虚拟桌面服务端之间已建立代理链路,且虚拟桌面客户端与虚拟桌面代理客户端之间以及虚拟桌面服务端与虚拟桌面代理服务端之间已建立主通道后,若虚拟桌面客户端通过主通道收到视频播放消息,则向本地的虚拟桌面代理客户端发起第一建链请求,以请求在虚拟桌面客户端与虚拟桌面服务端之间建立用于视频传输的链路,从而确保虚拟桌面客户端与虚拟桌面服务端之间视频数据传输的稳定性和快速性。
S502:数据组装;具体的,Client-Proxy模块中的分发模块接收到本地的第一建链请求后,对第一建链请求进行数据组装而为第一建链请求添加消息头信息。
S503:发送第一建链请求;具体的,Client-Proxy模块中的接收模块对外交互,根据消息头信息向虚拟机协议模块(VM-Proxy)发起第一建链请求,并告知期望的虚拟机地址和端口。
这里,所述虚拟机协议模块(VM-Proxy)可以认为是虚拟桌面代理服务端。S504:接收第一建链请求;具体的,VM-Proxy模块中的接收模块接收第一建链请求。
S505:建立TCP链路;具体的,Serv-Proxy模块中的分发模块向期望的虚拟机处理模块(VM-Svr)建立TCP链路。
这里,所述虚拟机处理模块(VM-Svr)可以看作是虚拟桌面服务端中用于根据建链请求而建立相应链路的模块。虚拟桌面客户端与虚拟桌面服务端之间建立的用于视频传输的链路请参阅图9中虚线部分所示。S506:视频数据交互;具体的,虚拟桌面客户端和VM-Svr模块通过两级代理实现视频数据交互。
S507:音频发起第二建链请求;具体的,虚拟桌面客户端收到音频播放消息后,向本地的Client-Proxy模块发起第二建链请求,并告知期望的虚拟机地址和端口。
S508:数据组装;具体的,Client-Proxy模块中的分发模块接收到第二建链请求后,对第二建链请求进行数据组装而为本地建链请求添加消息头信息。
S509:链路已存在利用原有通道发送第二建链请求;具体的,Client-Proxy模块中的接收模块对外交互,如果目的地址链路已经存在,则利用原有通道告知目的地址和端口。
这里,由于虚拟桌面客户端与VM-Svr模块之间已建立代理链路,则Client-Proxy模块通过所述代理链路向VM-Svr模块发送第二建链请求。
S510:接收第二建链请求;具体的,VM-Proxy模块中的接收模块接收第二建链请求。
S511:建立TCP链路;具体的,Serv-Proxy模块中的分发模块向期望的Host-Svr建立TCP链路。
这里,根据Client-Proxy模块发送的第二建链请求,VM-Svr模块与VM-Proxy模块之间建立与所述第二建链请求相对应的音频通道。
S512:音频通道利用原有链路实现数据交互。
这里,对于媒体流数据交互,在虚拟桌面客户端与虚拟机之间单独建立用于媒体流数据交互的链路,能够加快数据交互速度。
参见图14,为本实施例提供的虚拟桌面连接串口交互的流程示意图,该流程包括:
S601:发起第一建链请求;具体的,虚拟桌面客户端向本地的虚拟桌面代理客户端(Client-Proxy模块)发起第一建链请求,并告知期望的虚拟机地址和端口。
S602:数据组装;具体的,Client-Proxy模块中的分发模块接收到第一建链请求后,对第一建链请求进行数据组装而为第一建链请求添加消息头信息。
S603:发送第一建链请求;具体的,Client-Proxy模块中的通过接收模块对外交互,根据消息头信息向虚拟机协议模块(VM-Proxy)发起第一建链请求,并告知期望的虚拟机地址和端口。
S604:接收第一建链请求;具体的,Vm-Proxy模块中的接收模块接收建链请求。
S605:建立TCP链路;具体的,Vm-Proxy模块中的分发模块向期望的虚拟机处理模块(VM-Svr)建立TCP链路。
这里,所述虚拟机处理模块(VM-Svr)可以看作是虚拟桌面服务端中用于根据第一建链请求而建立相应链路的模块。
S606:数据交互;具体的,虚拟桌面客户端和VM-Svr模块通过两级代理实现数据交互。
S607:发起第二建链请求;具体的,虚拟桌面客户端向本地的Client-Proxy模块发起第二建链请求,并告知期望的虚拟机地址和端口。
这里,当虚拟桌面客户端与VM-Svr模块之间建立代理链路后,Vm-Proxy模块与VM-Svr模块之间还需要建立能够在Vm-Proxy模块与VM-Svr模块之间传输音频、视频等数据的不同通道,因此,虚拟桌面客户端通过向本地的Client-Proxy模块发起第二建链请求,以请求在Vm-Proxy模块与VM-Svr模块之间建立与虚拟桌面客户端对应连接的虚拟机地址和端口所对应的内部通道。所述第二建链请求携带有应建立的内部通道标识信息。
S608:数据组装;具体的,Client-Proxy模块中的分发模块接收到本地建链请求后,对第二建链请求进行数据组装而为本地建链请求添加消息头信息。
S609:链路已存在利用原有通道发送第二建链请求;具体的,Client-Proxy模块中的接收模块对外交互,如果目的地址链路已经存在,则利用原有通道告知目的地址和端口。
这里,所述目的地址和端口为所述期望的虚拟机地址和端口。由于虚拟桌面客户端与VM-Svr模块之间已建立代理链路,则Client-Proxy模块通过所述代理链路向Vm-Proxy模块发送第二建链请求。
S610:接收第二建链请求;具体的,Vm-Proxy模块中的接收模块接收建链请求。
S611:建立TCP链路;具体的,Serv-Proxy模块中的分发模块向期望的VM-Svr建立TCP链路。
这里,根据Client-Proxy模块发送的第二建链请求,Vm-Proxy模块与VM-Svr之间建立与所述第二建链请求相对应的内部通道。
S612:新的虚拟桌面客户端利用原有的链路实现数据交互。
综上,上述实施例提供的虚拟桌面连接方法中,采用精简连接及加密算法,虚拟桌面客户端与虚拟桌面服务端之间只要建立一条链路,不需要额外增加硬件配置,可以有效的降低所需端口数量,并且根据场景需要采用加密或者非加密方式进行数据交互,有效的降低了资源使用情况,同时加强了云计算虚拟机桌面的使用安全性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以所述权利要求的保护范围以准。

Claims (12)

1.一种虚拟桌面连接方法,应用于虚拟桌面客户端设备,其特征在于,所述方法包括:
接收虚拟桌面客户端发送的第一建链请求,所述第一建链请求携带有虚拟桌面服务端设备的地址和端口号;
根据所述虚拟桌面服务端设备的地址和端口号,形成所述第一建链请求的消息头信息,向所述虚拟桌面服务端设备发送所述第一建链请求,所述第一建链请求用于建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路。
2.根据权利要求1所述的方法,其特征在于,还包括:
接收所述虚拟桌面客户端发送的第二建链请求;所述第二建链请求携带有所述虚拟桌面服务端设备的地址、端口号以及目标链路标识,所述第二建链请求用于建立与所述虚拟桌面客户端之间的与所述目标链路标识对应的目标链路;
根据所述第二建链请求建立与所述虚拟桌面客户端之间的与所述目标链路标识对应的目标链路;
根据所述虚拟桌面服务端设备的地址和端口号,形成所述第二建链请求的消息头信息,基于所述代理链路向所述虚拟桌面服务端设备发送所述第二建链请求。
3.根据权利要求1所述的方法,其特征在于,所述向所述虚拟桌面服务端设备发送所述第一建链请求之前,还包括:
根据设置的加密方式对所述第一建链请求进行加密,获得加密后的所述第一建链请求。
4.一种虚拟桌面连接方法,应用于虚拟桌面服务端设备,其特征在于,所述方法包括:
接收虚拟桌面客户端设备发送的第一建链请求;
根据所述第一建链请求的消息头信息,获得所述第一建链请求所携带的虚拟桌面服务端设备的地址和端口号,建立所述虚拟桌面服务端设备的端口号对应的虚拟桌面与所述虚拟桌面客户端设备之间的代理链路。
5.根据权利要求4所述的方法,其特征在于,还包括:
接收所述虚拟桌面客户端设备发送的第二建链请求,所述第二建链请求携带有所述虚拟桌面服务端设备的地址、端口号以及目标链路标识;
根据所述第二建链请求建立与所述虚拟桌面服务设备的端口号对应的虚拟桌面之间的与所述目标链路标识对应的目标链路。
6.根据权利要求4所述的方法,其特征在于,所述根据所述第一建链请求的消息头信息,获得所述第一建链请求所携带的虚拟桌面服务端设备的地址和端口号之前,还包括:
根据设置的解密方式对所述第一建链请求进行解密,获得解密后的所述第一建链请求。
7.一种虚拟桌面代理连接装置,应用于虚拟桌面客户端设备,其特征在于,所述装置包括:第一接收模块、第一处理模块和发送模块;其中,
所述第一接收模块,用于接收虚拟桌面客户端发送的第一建链请求;所述第一建链请求携带有虚拟桌面服务端设备的地址和端口号;
所述第一处理模块,用于根据所述虚拟桌面服务端设备的地址和端口号,形成所述第一建链请求的消息头信息;
所述发送模块,用于向所述虚拟桌面服务端设备发送所述第一建链请求,所述第一建链请求用于建立与所述虚拟桌面服务端设备的端口号对应的虚拟桌面之间的代理链路。
8.一种虚拟桌面代理连接装置,应用于虚拟桌面服务端设备,其特征在于,所述装置包括:第二接收模块和第二处理模块;其中,
所述第二接收模块,用于接收虚拟桌面客户端设备发送的第一建链请求;
所述第二处理模块,用于根据所述第一建链请求的消息头信息,获得所述第一建链请求所携带的虚拟桌面服务端设备的地址和端口号,建立所述虚拟桌面服务端设备的端口号对应的虚拟桌面与所述虚拟桌面客户端设备之间的代理链路。
9.一种虚拟桌面客户端设备,其特征在于,所述虚拟桌面客户端设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行权利要求1至3中任一项所述虚拟桌面连接方法的步骤。
10.一种虚拟桌面服务端设备,其特征在于,所述虚拟桌面服务端设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行权利要求4至6中任一项所述虚拟桌面连接方法的步骤。
11.一种虚拟桌面连接系统,包括如权利要求9所述的虚拟桌面客户端设备和如权利要求10所述的虚拟桌面服务端设备。
12.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述虚拟桌面连接方法的步骤。
CN201810771907.6A 2018-07-13 2018-07-13 虚拟桌面连接方法、代理装置、系统、设备及存储介质 Active CN110719309B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810771907.6A CN110719309B (zh) 2018-07-13 2018-07-13 虚拟桌面连接方法、代理装置、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810771907.6A CN110719309B (zh) 2018-07-13 2018-07-13 虚拟桌面连接方法、代理装置、系统、设备及存储介质

Publications (2)

Publication Number Publication Date
CN110719309A true CN110719309A (zh) 2020-01-21
CN110719309B CN110719309B (zh) 2022-04-26

Family

ID=69209272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810771907.6A Active CN110719309B (zh) 2018-07-13 2018-07-13 虚拟桌面连接方法、代理装置、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110719309B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113973327A (zh) * 2020-07-22 2022-01-25 中国移动通信集团广东有限公司 一种域域网的物理链路调测方法、装置及电子设备
CN115623057A (zh) * 2022-09-30 2023-01-17 阿里云计算有限公司 基于rdma的建连方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104113510A (zh) * 2013-04-17 2014-10-22 安徽盈科智能科技有限公司 虚拟桌面系统及其消息数据的传输方法
CN104704448A (zh) * 2012-08-31 2015-06-10 思杰系统有限公司 本地和远程计算环境之间的反向无缝集成
CN105847332A (zh) * 2016-03-17 2016-08-10 汉柏科技有限公司 桌面虚拟化方法、客户端设备和服务端设备
US20160373459A1 (en) * 2014-03-04 2016-12-22 Hangzhou H3C Technologies Co., Ltd Virtual desktopaccess control
CN106875765A (zh) * 2016-12-28 2017-06-20 新华三技术有限公司 一种基于vdi的电子教室实现方法及装置
CN108206842A (zh) * 2016-12-16 2018-06-26 广州杰赛科技股份有限公司 云桌面远程接入方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104704448A (zh) * 2012-08-31 2015-06-10 思杰系统有限公司 本地和远程计算环境之间的反向无缝集成
CN104113510A (zh) * 2013-04-17 2014-10-22 安徽盈科智能科技有限公司 虚拟桌面系统及其消息数据的传输方法
US20160373459A1 (en) * 2014-03-04 2016-12-22 Hangzhou H3C Technologies Co., Ltd Virtual desktopaccess control
CN105847332A (zh) * 2016-03-17 2016-08-10 汉柏科技有限公司 桌面虚拟化方法、客户端设备和服务端设备
CN108206842A (zh) * 2016-12-16 2018-06-26 广州杰赛科技股份有限公司 云桌面远程接入方法和系统
CN106875765A (zh) * 2016-12-28 2017-06-20 新华三技术有限公司 一种基于vdi的电子教室实现方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113973327A (zh) * 2020-07-22 2022-01-25 中国移动通信集团广东有限公司 一种域域网的物理链路调测方法、装置及电子设备
CN115623057A (zh) * 2022-09-30 2023-01-17 阿里云计算有限公司 基于rdma的建连方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN110719309B (zh) 2022-04-26

Similar Documents

Publication Publication Date Title
US9100497B2 (en) Method, system and apparatus for managing persona-based notifications at a communication device
US12028378B2 (en) Secure communication session resumption in a service function chain preliminary class
WO2022199186A1 (zh) 一种基于量子技术的物联网通信系统
CN108964893B (zh) 一种密钥处理方法、装置、设备和介质
CN105993146A (zh) 不访问私钥而使用公钥密码的安全会话能力
JP2011205244A (ja) 情報処理装置、経路制御装置、データ中継方法、及びプログラム
CN109345242A (zh) 基于区块链的密钥存储、更新方法、装置、设备和介质
CN110719309B (zh) 虚拟桌面连接方法、代理装置、系统、设备及存储介质
CN113987584A (zh) 一种隐匿查询方法及系统
US11870760B2 (en) Secure virtual personalized network
CN109905310B (zh) 数据传输方法、装置、电子设备
CN109104774B (zh) 数据传输方法和系统
CN112511892B (zh) 屏幕共享方法、装置、服务器及存储介质
US20140101443A1 (en) Method and apparatus for selectively providing protection of screen information data
CN112187726A (zh) 数据传输方法、装置、存储介质及终端
WO2014089968A1 (zh) 虚拟机系统数据加密方法及设备
KR101701625B1 (ko) 암호화된 컨텐츠의 복호화 키를 안전하게 획득하여 컨텐츠를 재생하기 위한 방법 및 시스템
CN113452513B (zh) 密钥分发方法、装置和系统
JP2022107581A (ja) モバイルデバイスへの通知の配信
CN111797417A (zh) 文件的上传方法和装置、存储介质及电子装置
KR100799167B1 (ko) 데이터 저장 장치와, 이를 이용한 정보 제공 서비스 시스템및 그 방법
KR101657893B1 (ko) 클라우드 서비스를 위한 암호화 방법 및 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템
CN110351262A (zh) 一种数据交互方法、装置、电子设备
WO2023240623A1 (zh) 数据通信方法及装置
JP7076050B1 (ja) Ipネットワークにアクセスするための通信サービスを提供するための装置、方法及びそのためのプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant