【技术实现步骤摘要】
一种通信的方法及装置
[0001]本技术涉及网络通信领域,特别涉及一种云环境下的通信的方法和装置。
技术介绍
[0002]随着网络虚拟化技术的高速发展,越来越多的应用程序(Application,APP)在虚拟机上运行。为了提高网络通信的效率,主机上的应用程序之间进行通信通常采用远程直接内存访问(英文全称:Remote Direct Memory Access,缩写:RDMA)的方式进行通信。RDMA是指通过网络把资料直接转入计算机的存储器,将数据从一个系统快速移动到远程系统的存储器中,而不对操作系统造成任何影响,从而解决了网络传输中主机端数据处理的延迟问题。当本端主机上的虚拟机运行的应用程序与远端的主机上的虚拟机运行的应用程序时,需要在本地虚拟机和远端的虚拟机上配置虚拟网段,然后桥接到物理网卡上,从而进行通信。
[0003]目前,主机上的虚拟机运行的应用程序之间通过RDMA进行通信,需要进行多次虚拟化和数据转发,增加了数据传输所需要进行的步骤,从而产生了大量的网络开销和时延,降低了系统的效率。
技术实现思路
[0004]本申请的实施例提供一种通信的方法,以增加虚拟机上运行的应用程序之间进行的数据传输效率。
[0005]第一方面,本申请提供了一种通信方法,该方法包括:第一共享代理监控第一共享内存,其中,该第一共享内存供第一应用程序使用,第一应用程序运行在第一虚拟设备中,第一虚拟设备位于第一主机中,而该第一共享内存属于第一主机的内存的一部分且不属于第一主机为第一虚拟设备指定的内存,第一主 ...
【技术保护点】
【技术特征摘要】
1.一种通信方法,其特征在于,所述方法包括:第一共享代理监控第一共享内存,其中,所述第一共享内存供第一应用程序使用,所述第一应用程序运行在第一虚拟设备中,所述第一虚拟设备位于第一主机中,所述第一主机中设置有独立于所述第一虚拟设备的所述第一共享代理;当确定所述第一共享内存中写入所述第一应用程序的数据后,所述第一共享代理从所述第一共享内存中读取所述数据,并将所述数据发送到第二应用程序,其中,所述第二应用程序为所述第一应用程序指定的数据共享方。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述第一应用程序申请所述第一共享内存,并获得分配的所述第一共享内存;所述第一应用程序向共享管理中心注册所述第一应用程序的共享信息,所述第一应用程序的共享信息包括所述第一应用程序的标识、所述第一应用程序指定的数据共享方的标识以及所述第一共享内存的信息。3.根据权利要求2所述的方法,其特征在于,所述第一共享代理从所述第一共享内存中读取所述数据之前,所述方法还包括:所述第一共享代理根据所述第一应用程序的标识,向所述共享管理中心发送查询消息,接收所述共享管理中心发送的查询响应消息,所述查询响应消息指示所述第一应用程序的数据共享方的信息,所述数据共享方的信息包括所述第二应用程序的标识;则所述第一共享代理根据所述第二应用程序的标识,执行所述将所述数据发送到第二应用程序的步骤。4.根据权利要求1-3任意一项所述的方法,其特征在于,所述将所述数据发送到第二应用程序,包括:通过远程直接内存访问的方式,所述第一共享代理将所述数据发送到第二应用程序。5.根据权利要求1-4任意一项所述的方法,其特征在于,所述方法还包括:所述第一应用程序获取所述第一共享内存的虚拟地址;所述第一应用程序将所述第一共享内存的物理地址转换为所述第一共享代理的虚拟内存的地址,所述第一共享代理获取所述第一共享代理的虚拟内存的地址;则相应地,所述第一应用程序根据所述第一共享内存的虚拟地址向所述第一共享内存写入所述数据;所述第一共享代理根据所述第一共享代理的虚拟内存的地址进行对所述第一共享内存的监控。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:根据所述第一共享内存,所述第一应用程序创建环形缓冲区,则所述第一共享内存的虚拟地址为所述环形缓冲区的虚拟地址,所述第一共享内存的物理地址为所述环形缓冲区的物理地址。7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一主机还运行第三应用程序,所述共享内存供所述第一应用程序和所述第三应用程序使用。8.一种通信方法,其特征在于,所述方法包括:第二共享代理接收到来自第一应用程序的数据,其中,第二共享内存供第二应用程序
使用,所述第二应用程序运行在第二虚拟设备中,所述第二虚拟设备位于第二主机中,所述第二主机中设置有独立于所述第二虚拟设备的第二共享代理;所述第二共享代理将所述数据写入所述第二共享内存,使得所述第二应用程序获得所述数据,其中,所述第一应用程序为所述第二应用程序指定的数据共享方。9.根据权利要求8所述的方法,其特征在于,所述方法还包括:所述第二应用程序申请所述第二共享内存,并获得分配的所述第二共享内存;所述第二应用程序向共享管理中心注册所述第二应用程序的共享信息,所述第二应用程序的共享信息包括所述第二应用程序的标识、所述第二应用程序指定的数据共享方的标识以及所述第二共享内存的信息。10.根据权利要求9所述的方法,其特征在于,所述第二共享代理将所述数据写入所述第二共享内存中之前,所述方法还包括:所述第二共享代理向所述共享管理中心发送查询消息,确定所述第二应用程序的标识或所述第二共享内存的信息;则根据所述第二应用程序的标识或所述第二共享内存的信息,执行所述将所述数据写入所述第二共享内存中的步骤。11.根据权利要求8-10任意一项所述的方法,其特征在于,所述接收来自第一应用程序的数据,包括:接收来自所述第一应用程序通过远程直接内存访问的方式发送的数据。12.根据权利要求8-11任意一项所述的方法,其特征在于,所述方法还包括:所述第二应用程序获取所述第二共享内存的虚拟地址;所述第二应用程序将所述第二共享内存的物理地址转换为所述第二共享代理的虚拟内存的地址,并将所述第二共享代理的虚拟内存的地址提供给所述第二共享代理;则相应地,所述第二共享代理根据所述共享代理的虚拟内存的地址,将接收到的数据写入所述第二共享内存。13.根据权利要求12所述的方法,其特征在于,所述方法还包括:根据所述第二共享内存,所述第二应用程序创建环形缓冲区,则所述第二共享内存的虚拟地址为所述环形缓冲区的虚拟地址,所述第二共享内存的物理地址为所述环形缓冲区的物理地址。14.根据权利要求8-13任一项所述的方法,其特征在于,所述第二主机还运行第四应用程序,所述共享内存供所述第二应用程序和所述第四应用程序使用。15.一种计算机系统,其特征在于,所述计算机系统包括第一主机和运行在所述第一主机上的第一虚拟设备,所述第一虚拟设备上运行第一应用程序,所述第一应用程序分配有第一共享内存;所述计算机系统还包括监控模块,所述监控模块独立于所述第一虚拟设备,所述监控模块用于:监控第一共享内存,当确定所述第一共享内存中写入所述第一应用程序的数据后,从所述第一共享内存中读取所述数据,并将所述数据发送到第二应用程序,其中,所述第二应用程序为所述第一应用程序指定的数据共享方。
16.根据权利要求15所述的计算机系统,其特征在于,所述第一应用程序,用于申请所述第一共享内存,并获得分配的所述第一共享内存;以及注册所述第一应用程序的共享信息,所述第一应用程序的共享信息包括所述第一应用程序的标识、所述第一应用程序指定的数据共享方的标识以及所述第一共享内存的信息。17.根据权利要求16所述的计算机系统,其特征在于,所述监控模块从所述第一共享内存中读取所述数据之前,向共享管理中心发送查询消息,接收所述共享管理中心发送的查询响应消息,所述查询响应消息指示所述第一应用程序的数据共享方的信息,所述数据共享方的信...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。