终端机与虚拟机之间的通信方法与通信系统的制作方法

文档序号:7778901阅读:217来源:国知局
终端机与虚拟机之间的通信方法与通信系统的制作方法
【专利摘要】本发明公开了一种终端机与虚拟机之间的通信方法与通信系统,该方法包括:终端机建立与虚拟机之间的通信会话连接;当用户在终端机端进行操作时,终端机将用户对虚拟机的操作控制指令进行加密封装得到数据包,并将该数据包发送至虚拟机监控器;虚拟机监控器解密并解析所接收的数据包以得到操作控制指令,并将该操作控制指令通过虚拟串口发送给虚拟机;虚拟机通过虚拟串口读取操作控制指令,并根据所读取的操作控制指令执行相应的任务,在虚拟机被安全隔离时,通过虚拟串口读取虚拟机监控器中的操作控制指令,使得终端机依然可以控制虚拟机,这更符合实际需要。
【专利说明】终端机与虚拟机之间的通信方法与通信系统
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种终端机与虚拟机之间的通信方法与通信系统。
【背景技术】
[0002]“云计算”已经改变了人们使用计算资源的方式,计算所需要的计算和存储资源都集中在“云端”,而“终端”只负责向虚拟机发送操作控制指令并显示指令执行的结果。这样,本地计算机几乎不需要做什么,所有的处理都在云计算提供商所提供的计算机群来完成。云计算的最终目标是将计算、服务和应用作为一种公共设施提供给公众,使人们能够像使用水、电、煤气和电话那样使用计算机资源。
[0003]这也给我们带来了 “云端”与“终端”连接时的安全问题。在对网络安全要求极高的某些情况下,比如在需要对“云端”虚拟机进行安全隔离时,不能保障虚拟机与终端机之间的网络连通性,此时虚拟机内部不允许有网络存在,终端机无法向“孤立”的虚拟机发送操作控制指令。
[0004]因此,在需要对“云端”虚拟机进行安全隔离的情况下,终端机不能够通过网络直接与虚拟机通信,这严重影响了终端机用户与虚拟机之间的交互体验效果。

【发明内容】

[0005]本发明所要解决的技术问题之一是需要提供一种终端机与虚拟机之间的通信方法,该方法保证在终端机与虚拟机之间没有网络通信时,终端机依然可以对虚拟机进行控制。此外,还提供了一种通信系统。
[0006]为了解决上述技术问题,本发明提供了一种终端机与虚拟机之间的通信方法,包括:终端机建立与虚拟机之间的通信会话连接;当用户在终端机端进行操作时,所述终端机将用户对所述虚拟机的操作控制指令进行加密封装得到数据包,并将该数据包发送至虚拟机监控器;所述虚拟机监控器解密并解析所接收的所述数据包以得到操作控制指令,并将该操作控制指令通过虚拟串口发送给所述虚拟机;所述虚拟机通过所述虚拟串口读取所述操作控制指令,并根据所读取的操作控制指令执行相应的任务。
[0007]在一个实施例中,还包括:当用户在虚拟机端进行操作时,所述虚拟机将用户对所述终端机的操作控制指令通过所述虚拟串口发送至所述虚拟机监控器;所述虚拟机监控器对所述操作控制指令进行加密封装得到数据包,并将该数据包发送至所述终端机;所述终端机解密并解析所接收的数据包以得到操作控制指令,并根据该操作控制指令执行相应的任务。
[0008]在一个实施例中,还包括以下步骤:所述虚拟机向所述终端机反馈所述虚拟机所接收的所述终端机所发送的操作控制指令对应的执行结果。
[0009]在一个实施例中,在终端机建立与虚拟机之间的通信会话连接的步骤中,所述终端机向所述虚拟机监控器发送查询请求,所述查询请求用于确定所述虚拟机已经加载的通信模块类型;所述终端机根据虚拟机已经加载的通信模块类型配置对应的通信模块类型,以实现所述终端机与虚拟机之间的通信转换。
[0010]在一个实施例中,在所述虚拟机通过所述虚拟串口从所述虚拟机监控器的缓存区读取到多个所述操作控制指令时,根据各个操作控制指令的优先级依次执行每个操作控制指令。
[0011]在一个实施例中,在所述终端机或所述虚拟机监控器使用传输层安全协议对所述操作控制指令进行加密。
[0012]在一个实施例中,所述操作控制指令包括键盘操作指令、鼠标操作指令、分辨率调整操作指令、复制剪贴板操作指令以及文件传输操作指令。
[0013]根据本发明的另一方面,还提供了一种通信系统,包括:终端机、虚拟机、虚拟串口和虚拟机监控器,其中,终端机,其用于建立与所述虚拟机之间的通信会话连接,当用户在终端机端进行操作时,所述终端机用于将用户对所述虚拟机的操作控制指令进行加密封装得到数据包,并将该数据包发送出去;虚拟机监控器,其用于接收所述终端机发送的数据包,解密并解析所述数据包以得到操作控制指令,并将该操作控制指令通过虚拟串口发送出去;虚拟机,其用于通过所述虚拟串口读取所述操作控制指令,并根据所读取的操作控制指令执行相应的任务。
[0014]在一个实施例中,当用户在虚拟机端进行操作时,所述虚拟机,其用于将用户对所述终端机的操作控制指令通过所述虚拟串口发送至所述虚拟机监控器;所述虚拟机监控器,其用于对所述操作控制指令进行加密封装得到数据包,并将该数据包发送至所述终端机;所述终端机,其用于解密并解析所接收的数据包以得到操作控制指令,并根据该操作控制指令执行相应的任务。
[0015]在一个实施例中,所述虚拟机还用于向所述终端机反馈所述虚拟机所接收的所述终端机所发送的操作控制指令对应的执行结果。
[0016]与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
[0017]在本发明中,虚拟机通过虚拟串口从虚拟机监控器中读取终端机用户所指示的操作控制指令,因此,在虚拟机被安全隔离时,通过虚拟串口读取虚拟机监控器中的操作控制指令,使得终端机依然可以控制虚拟机,这在保证系统通信安全的同时也满足了实际需要。
[0018]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【专利附图】

【附图说明】
[0019]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
[0020]图1是根据本发明一示例的一种通信系统的物理架构示意图;
[0021]图2是根据本发明一实施例的终端机与虚拟机之间的通信方法的流程图。
【具体实施方式】
[0022]为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明作进一步地详细说明。
[0023]需要说明的是,在本发明实施例中,终端机主要由处理器单元和存储单元组成,其还连接有键盘、鼠标、显示器和以太网模块等外围设备。可以理解,终端机可以是瘦终端电脑,也可以是笔记本电脑和台式机,但本发明的终端机不仅限于上述设备。
[0024]另外,终端机上可以运行Windows XP> Windows7以及各种Linux发行版等其中的一种操作系统,本发明对此不作限制。在网络环境中,终端机需要通过客户端程序连接一个或多个虚拟机。虚拟机中可以运行Windows XP、Windows7以及各种Linux发行版中的一种操作系统,本发明对此不作限制。虚拟机可以运行在虚拟机监视器中,例如KVM或Xen,虚拟机监控器运行在服务器硬件上。
[0025]第一实施例
[0026]图1是根据本发明一示例的通信系统的物理架构示意图。下面结合图1对本发明的通信系统进行详细说明。
[0027]如图1所示,本实施例的通信系统包括终端机1,运行在服务器4上的虚拟机2和虚拟机监控器3。其中,终端机I通过以太网与虚拟机监控器3通信,虚拟机监控器3通过虚拟串口 21与虚拟机2通信。
[0028]在该通信系统中,终端机I用于建立其与虚拟机2之间的通信会话连接,并且当用户在终端机端进行操作时,终端机I将用户对虚拟机2的操作控制指令进行加密封装得到数据包,并将该数据包发送出去。优选地,终端机I采用传输层安全协议对操作控制指令进行加密,以保证通信安全。
[0029]虚拟机监控器2接收终端机I发送的数据包,解密并解析该数据包以得到用户所指示的操作控制指令,并将该操作控制指令通过虚拟串口 21发送出去。
[0030]虚拟机2通过虚拟串口 21读取操作控制指令,并根据所读取的操作控制指令执行相应的任务。另外,虚拟机2还向终端机I反馈虚拟机2所接收的终端机I发送的操作控制指令对应的执7TT结果。
[0031]上述操作控制指令包括键盘操作指令、鼠标操作指令、分辨率调整操作指令、复制剪贴板操作指令以及文件传输操作指令等,其中,复制剪贴板操作指令包括复制指令、剪切指令和粘贴指令。
[0032]虚拟机2在获取多个操作控制指令时,其根据操作控制指令的优先级依次执行每个操作控制指令,这样可以使得终端机I与虚拟机2之间的通信更加及时,更加高效。
[0033]当用户在虚拟机2端进行操作时,虚拟机2将用户对终端机I的操作控制指令通过虚拟串口 21发送至虚拟机监控器3,然后,虚拟机监控器3对操作控制指令进行加密封装得到数据包,并将该数据包发送至终端机I。同理,虚拟机监控器3采用传输层安全协议对操作控制指令进行加密,以保证通信安全。终端机I解密并解析所接收的数据包以得到操作控制指令,并根据该操作控制指令执行相应的任务。
[0034]比如,当用户在虚拟机2中执行复制或剪切操作后,虚拟机2通过虚拟串口 21发送复制通知指令到终端机I,激活终端机I中的粘贴功能。容易理解,当在虚拟机2中执行粘贴操作时,虚拟机2发送数据获取请求到终端机1,终端机I将终端操作系统10复制缓冲区的数据通过传输层安全协议加密传输到虚拟机2中,虚拟机2解密并将数据拷贝到虚拟机操作系统系统20的复制缓冲区,虚拟机2中的操作系统20从复制缓冲区得到数据,并将数据粘贴到指定位置。又如,对于文件传输操作指令,在虚拟机2中选择需要传输到终端机I中的文件,虚拟机监控器3从虚拟串口 21中读取该文件,通过传输层安全协议加密传输给终端机1,终端机I解密并保存所接收的文件。
[0035]此外,由于虚拟串口 21具有免驱动功能,使得在虚拟机2中安装虚拟机操作系统20时不需要为该操作系统安装驱动,从而实现了系统资源更合理的配置。
[0036]在现有技术中,终端机与虚拟机直接通过网络进行通信,在对虚拟机进行安全隔离时,二者无法通信,并且虚拟机监控器一般仅监控虚拟机的运行状态(比如,虚拟机中产生的数据包以及内存使用量等)。而本实施例中,虚拟机监控器不仅可以对虚拟机进行状态监控,还可以传输来自终端机或虚拟机的控制命令,在将虚拟机安全隔离时,通过利用虚拟机监控器与虚拟串口构成的传输媒介,也能够将实现终端机与虚拟机之间的通信。因此,在安全隔离状态下,本通信系统更加符合实际需要,在保证系统安全的同时也可以获得良好的终端机用户与虚拟机之间的交互体验效果。
[0037]综上所述,本发明的终端机与虚拟机之间的通信系统,虚拟机通过虚拟串口从虚拟机监控器中读取终端机用户所指示的操作控制指令,在虚拟机被安全隔离时,通过虚拟串口读取虚拟机监控器中的操作控制指令,使得终端机依然可以控制虚拟机,这更符合实际需要,此外,虚拟串口具有免驱功能,使得在虚拟机上安装虚拟机操作系统时不需要安装系统驱动,从而实现了系统资源更合理的配置。
[0038]第二实施例
[0039]图2是根据本发明一实施例的终端机与虚拟机之间的通信方法的流程图。下面结合图1和图2对本方法进行详细说明。
[0040]步骤S210,终端机I建立与虚拟机2之间的通信会话连接。
[0041]具体地,在通信会话连接建立过程中,终端机I通过以太网向虚拟机监控器3发送查询请求,该查询请求用于确定虚拟机2已经加载的通信模块类型。然后,虚拟机监控器3将查询请求通过虚拟串口 21发送给虚拟机2,接收到该查询请求后,虚拟机2检查其所支持的通信模块,并向终端机I反馈其自身已经加载的通信模块。
[0042]由于虚拟串口 21具有免驱动功能,使得在虚拟机2中安装虚拟机操作系统20时不需要为该操作系统安装驱动,从而实现了系统资源更合理的配置。
[0043]在通信会话连接建立时,终端机I获取并配置虚拟机2能支持的通信模块类型。虚拟机2所能支持的通信模块包括但不仅限于键盘按键操作模块、鼠标操作模块、分辨率调整操作模块、复制剪贴板操作模块、文件传输操作模块等。
[0044]根据虚拟机2已经加载的通信模块类型,终端机I配置对应的通信模块类型,以实现终端机I与虚拟机2之间的通信转换。例如,对于键盘按键操作,配置终端机I与虚拟机2之间的键盘布局转换函数;对于鼠标操作,则配置终端机I鼠标与虚拟机2中的模拟鼠标设备的转换函数,例如左右手鼠标按键的映射关系、滚轮的映射关系等。
[0045]步骤S220,当用户在终端机I端进行操作时,终端机将用户对虚拟机2的操作控制指令进行加密封装得到数据包,并将该数据包发送至虚拟机监控器3。
[0046]具体地,终端机I将用户对虚拟机2的操作控制指令加密并封装成协议数据包,并向管理虚拟机2的虚拟机监控器3发送该协议数据包。值得注意的是,本实施例不对封装协议数据格式做限定,只要终端机与虚拟机都能解析该协议数据即可。[0047]优选地,在本实施例中,用户对虚拟机2的操作控制指令通过传输层安全协议加密后传输给虚拟机监控器3,以保证了用户信息的安全。操作控制指令包括键盘操作指令、鼠标操作指令、分辨率调整操作指令、复制剪贴板操作指令以及文件传输操作指令等,其中,复制剪贴板操作指令包括复制指令、剪切指令和粘贴指令。
[0048]具体地,键盘操作协议数据包需要封装按键的键值、按下或释放动作等编码。鼠标操作协议数据包需要封装鼠标按键动作、按键的键值、移动动作、鼠标移动位置等编码。分辨率调整操作协议数据包需要封装调整的宽与高。复制剪贴板操作协议数据包需要封装复制通知请求、复制剪贴板数据内容等。文件传输操作协议数据包需要封装文件元数据和内容数据等。
[0049]步骤S230,虚拟机监控器3解密并解析所接收的数据包以得到操作控制指令,并将该操作控制指令通过虚拟串口 21发送给虚拟机2。
[0050]优选地,虚拟机监控器3通过虚拟串口 21向虚拟机2发送经过解密和解析后的操作控制指令。在虚拟机2通过该虚拟串口 21从虚拟机监控器3的缓存区读取多个操作控制指令时,虚拟机2根据操作控制指令的优先级依次执行每个操作控制指令,这样可以使得终端机I与虚拟机2之间的通信更加及时。
[0051]具体地,虚拟机2采用最高优先级算法处理所获取的操作控制指令。为了保证虚拟机2的实时响应,与键盘、鼠标相关的控制指令具有较高的处理优先级。
[0052]步骤S240,虚拟机2通过虚拟串口 21读取操作控制指令,并根据所读取的操作控制指令执行相应的任务,并且向终端机I反馈虚拟机2所接收的终端机I所发送的操作控制指令对应的执7TT结果。
[0053]在现有技术中,终端机与虚拟机直接通过网络进行通信,在对虚拟机进行安全隔离时,二者无法通信,并且虚拟机监控器一般仅监控虚拟机的运行状态(比如,虚拟机中产生的数据包以及内存使用量等)。而本实施例中,虚拟机监控器不仅可以对虚拟机进行状态监控,还可以传输来自终端机或虚拟机的控制命令,在将虚拟机安全隔离时,通过利用虚拟机监控器与虚拟串口构成的传输媒介,也能够将实现终端机与虚拟机之间的通信。因此,在安全隔离状态下,本通信方法更加符合实际需要,在保证系统安全的同时也可以获得良好的终端机用户与虚拟机之间的交互体验效果。
[0054]下面对有关于分辨率调整操作指令、复制剪贴板操作指令以及文件传输操作指令的整体操作流程进行详细说明。
[0055]对于分辨率调整操作指令:终端机I根据虚拟机2显示的窗体的大小计算其的显示分辨率,然后,终端机I将分辨率调整操作指令发送到虚拟机,虚拟机执行显卡分辨率调整指令设置显示分辨率。
[0056]对于复制剪贴板操作指令:当用户在终端机I中执行复制或剪切操作后,发送复制通知指令到虚拟机2,激活虚拟机2中的粘贴功能。
[0057]具体来说,若在终端机I中执行复制或者剪切操作,则终端机I发送复制通知请求指令到虚拟机2中,调用虚拟机2中运行的操作系统20的对应指令,激活操作系统20复制缓冲区,并通知操作系统20该缓冲区已有数据。在虚拟机2中执行粘贴操作时,虚拟机2发送数据获取请求到终端机1,终端机I将终端机操作系统10复制缓冲区的数据通过传输层安全协议加密传输到虚拟机2中,虚拟机2解密并将数据拷贝到虚拟机操作系统系统20的复制缓冲区,虚拟机2中的操作系统20从复制缓冲区得到数据,并将数据粘贴到指定位置。
[0058]对于文件传输操作指令,其是针对终端机I与虚拟机2中的文件相互传输的操作。具体地,在终端机I中选择需要传输到虚拟机2中的文件,将文件通过传输层安全协议加密传输给虚拟机监控器3,虚拟机2从虚拟串口 21读取并保存虚拟机监控器3解密解析后的文件。
[0059]当用户在虚拟机2端进行操作时,虚拟机2将用户对终端机I的操作控制指令通过虚拟串口 21发送至虚拟机监控器3 ;虚拟机监控器3使用传输层安全协议对操作控制指令进行加密封装得到数据包,并将该数据包发送至终端机I ;终端机I解密并解析所接收的数据包以得到操作控制指令,并根据该操作控制指令执行相应的任务。
[0060]比如,当用户在虚拟机2中执行复制或剪切操作后,虚拟机2通过虚拟串口 21发送复制通知指令到终端机1,激活终端机I中的粘贴功能。又如,对于文件传输操作指令,在虚拟机2中选择需要传输到终端机I中的文件,虚拟机监控器3从虚拟串口 21中读取该文件,通过传输层安全协议加密传输给终端机1,终端机I解密并保存所接收的文件。
[0061]值得注意的是,终端机I与虚拟机2之间信息的安全传输实现了终端机操作系统10与虚拟机操作系统20数据的共享。
[0062]最后,在虚拟机2执行完相应的任务后,向终端机I反馈所接收的由虚拟机监控器3所传输的操作控制指令对应的执行结果。例如,对于复制剪贴板操作和文件传输操作,则需要返回传输是否成功以及已经传输的字节数,但是对于鼠标键盘操作,虚拟机2不需要向终端机I发送指令执行结果。
[0063]综上所述,本发明的终端机与虚拟机之间的通信方法,虚拟机通过虚拟串口从虚拟机监控器中读取终端机用户所指示的操作控制指令,在虚拟机被安全隔离时,通过虚拟串口读取虚拟机监控器中的操作控制指令,使得终端机依然可以控制虚拟机,在保证系统通信安全的同时也满足了实际需要,此外,虚拟串口具有免驱功能,使得在虚拟机上安装虚拟机操作系统时不需要安装系统驱动,从而实现了系统资源更合理的配置。
[0064]以上所述,仅为本发明的具体实施案例,本发明的保护范围并不局限于此,任何熟悉本技术的技术人员在本发明所述的技术规范内,对本发明的修改或替换,都应在本发明的保护范围之内。
【权利要求】
1.一种终端机与虚拟机之间的通信方法,包括: 终端机建立与虚拟机之间的通信会话连接; 当用户在终端机端进行操作时,所述终端机将用户对所述虚拟机的操作控制指令进行加密封装得到数据包,并将该数据包发送至虚拟机监控器; 所述虚拟机监控器解密并解析所接收的所述数据包以得到操作控制指令,并将该操作控制指令通过虚拟串口发送给所述虚拟机; 所述虚拟机通过所述虚拟串口读取所述操作控制指令,并根据所读取的操作控制指令执行相应的任务。
2.根据权利要求1所述的通信方法,其特征在于,还包括: 当用户在虚拟机端进行操作时,所述虚拟机将用户对所述终端机的操作控制指令通过所述虚拟串口发送至所述虚拟机监控器; 所述虚拟机监控器对所述操作控制指令进行加密封装得到数据包,并将该数据包发送至所述终端机; 所述终端机解密并解析所接收的数据包以得到操作控制指令,并根据该操作控制指令执行相应的任务。
3.根据权利要求1所述的通信方法,其特征在于,还包括以下步骤: 所述虚拟机向所述终端机反馈所述虚拟机所接收的所述终端机所发送的操作控制指令对应的执行结果。
4.根据权利要求1所述的通信方法,其特征在于,在终端机建立与虚拟机之间的通信会话连接的步骤中, 所述终端机向所述虚拟机监控器发送查询请求,所述查询请求用于确定所述虚拟机已经加载的通信模块类型; 所述终端机根据虚拟机已经加载的通信模块类型配置对应的通信模块类型,以实现所述终端机与虚拟机之间的通信转换。
5.根据权利要求4所述的通信方法,其特征在于, 在所述虚拟机通过所述虚拟串口从所述虚拟机监控器的缓存区读取到多个所述操作控制指令时,根据各个操作控制指令的优先级依次执行每个操作控制指令。
6.根据权利要求1-5任一项所述的通信方法,其特征在于,在所述终端机或所述虚拟机监控器使用传输层安全协议对所述操作控制指令进行加密。
7.根据权利要求1-5任一项所述的通信方法,其特征在于, 所述操作控制指令包括键盘操作指令、鼠标操作指令、分辨率调整操作指令、复制剪贴板操作指令以及文件传输操作指令。
8.一种通信系统,包括:终端机、虚拟机、虚拟串口和虚拟机监控器,其中, 终端机,其用于建立与所述虚拟机之间的通信会话连接,当用户在终端机端进行操作时,所述终端机用于将用户对所述虚拟机的操作控制指令进行加密封装得到数据包,并将该数据包发送出去; 虚拟机监控器,其用于接收所述终端机发送的数据包,解密并解析所述数据包以得到操作控制指令,并将该操作控制指令通过虚拟串口发送出去; 虚拟机,其用于通过所述虚拟串口读取所述操作控制指令,并根据所读取的操作控制指令执行相应的任务。
9.根据权利要求8所述的通信系统,其特征在于, 当用户在虚拟机端进行操作时, 所述虚拟机,其用于将用户对所述终端机的操作控制指令通过所述虚拟串口发送至所述虚拟机监控器; 所述虚拟机监控器,其用于对所述操作控制指令进行加密封装得到数据包,并将该数据包发送至所述终端机; 所述终端机,其用于解密并解析所接收的数据包以得到操作控制指令,并根据该操作控制指令执行相应的任务。
10.根据权利要求8所述的通信系统,其特征在于, 所述虚拟机还用于向所述终端机反馈所述虚拟机所接收的所述终端机所发送的操作控制指令对应的执 行结果。
【文档编号】H04L29/06GK103618724SQ201310643349
【公开日】2014年3月5日 申请日期:2013年12月3日 优先权日:2013年12月3日
【发明者】徐舫, 张维婷 申请人:中标软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1