【技术实现步骤摘要】
一种通信方法、装置以及系统
[0001]本申请实施例涉及通信领域,尤其涉及一种通信方法、装置以及系统。
技术介绍
[0002]随着信息技术的不断发展,虚拟机技术得到广泛应用。虚拟机(virtual machine)是指通过软件模拟的、具有完整硬件功能的,运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,可以在一台物理机上模拟出一台或多台虚拟的计算机。集装箱(Docker)是一个开源的应用容器引擎,旨在提供一种应用的自动化部署解决方案,在Linux系统上迅速创建一个容器(container),容器是与系统其它部分隔离开的一系列进程。
[0003]目前,由于容器部署在虚拟机中,容器对外传输数据需要经过虚拟机中的容器网络和虚拟机网络进行转发。
[0004]因此,容器在对外传输数据时需要经过多次拷贝,导致数据传输效率低下。
技术实现思路
[0005]本申请提供了一种通信方法、装置以及系统,通过发送通告报文的方式传输数据报文所在的地址和长度,利用共享存储空间减少容器之间传输数据报文带来的时延。
[0006]本申请第一方面提供了一种通信方法,该方法可以由第一虚拟机执行,也可以由第一虚拟机的部件(例如第一虚拟机中的收发包客户端等)执行。该方法包括:获取数据报文的第一虚拟存储地址以及数据报文的长度,数据报文为第一虚拟机上的第一容器与第二虚拟机上的第二容器之间通信的报文,第一虚拟机部署在第一主机上,第二虚拟机部署在第一主机或不同于第一主机的第二主机上;根据所述第一虚拟存储地址以及所述长度 ...
【技术保护点】
【技术特征摘要】
1.一种通信方法,其特征在于,所述方法包括:获取数据报文的第一虚拟存储地址以及所述数据报文的长度,所述数据报文为第一虚拟机上的第一容器与第二虚拟机上的第二容器之间通信的报文,所述第一虚拟机部署在第一主机上,所述第二虚拟机部署在所述第一主机或不同于所述第一主机的第二主机上;根据所述第一虚拟存储地址以及所述长度生成第一通告报文;向所述第一主机发送所述第一通告报文,所述第一通告报文用于使所述第一主机触发所述第二容器获取所述数据报文。2.根据权利要求1所述的方法,其特征在于,所述数据报文存储在第一共享内存中,所述第一虚拟存储地址指向所述第一共享内存,所述第一虚拟机、所述第一主机以及所述第二虚拟机共用所述第一共享内存,所述第二虚拟机部署在所述第一主机上;或者所述第一虚拟机与所述第一主机共用所述第一共享内存,所述第二虚拟机部署在所述第二主机上。3.根据权利要求2所述的方法,其特征在于,所述获取数据报文的第一虚拟存储地址以及所述数据报文的长度之前,所述方法还包括:确定所述第一容器的网卡队列新增所述数据报文。4.根据权利要求3所述的方法,其特征在于,所述第一通告报文还包括网卡队列的标识,所述网卡队列的标识用于识别所述第二容器对应的虚拟接口上属于所述第二容器的所述网卡队列。5.根据权利要求3或4所述的方法,其特征在于,所述确定所述第一容器的网卡队列新增所述数据报文,包括:确定所述网卡队列中新增指向所述第一共享内存的目标存储空间的第一指针,所述目标存储空间用于存储所述数据报文。6.根据权利要求5所述的方法,其特征在于,所述第一指针被读取后失效。7.一种通信方法,其特征在于,所述方法包括:接收第一虚拟机发送的第一通告报文,所述第一通告报文包括数据报文对应的第一虚拟存储地址以及所述数据报文的长度,所述数据报文为所述第一虚拟机上的第一容器与第二虚拟机上的第二容器之间通信的报文,所述第一虚拟机部署在第一主机上,所述第二虚拟机部署在所述第一主机或不同于所述第一主机的第二主机上;根据地址映射表确定所述第一虚拟存储地址对应的第一物理存储地址,所述第一物理存储地址为所述数据报文所在第一共享内存对应的物理存储地址,所述地址映射表存储有一个物理存储地址与一个或多个虚拟存储地址的对应关系;根据所述第一物理存储地址以及所述长度获取所述数据报文;若所述第二虚拟机部署在所述第一主机上,则向所述第二虚拟机发送第二通告报文,所述第二通告报文包括第二虚拟存储地址以及所述长度,所述第二虚拟存储地址由所述第一物理存储地址转化得到,所述第二通告报文用于所述第二容器获取所述数据报文。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:若所述第二虚拟机部署在所述第二主机上,则向所述第二主机发送所述数据报文。
9.根据权利要求7或8所述的方法,其特征在于,所述第一虚拟机、所述第一主机以及所述第二虚拟机共用所述第一共享内存,所述第二虚拟机部署在所述第一主机上;或者所述第一虚拟机与所述第一主机共用所述第一共享内存,所述第二虚拟机部署在所述第二主机上。10.一种通信方法,其特征在于,所述方法包括:接收来自第一主机的数据报文,所述数据报文为第一虚拟机上的第一容器与第二虚拟机上的第二容器之间通信的报文,所述第一虚拟机部署在所述第一主机上,所述第二虚拟机部署在第二主机上,所述第一主机与所述第二主机为不同的主机;根据地址映射表确定所述数据报文的物理存储地址对应的虚拟存储地址,所述地址映射表存储有一个物理存储地址与一个或多个虚拟存储地址的对应关系;根据所述拟存储地址以及所述数据报文的长度生成通告报文;向所述第二虚拟机发送所述通告报文,所述通告报文用于所述第二容器获取所述数据报文。11.根据权利要求10所述的方法,其特征在于,所述第二虚拟机与所述第二主机共用一个共享内存,所述物理存储地址以及所述虚拟存储地址指向所述共享内存;所述共享内存用于存储所述数据报文。12.一种通信方法,其特征在于,所述方法包括:接收通告报文,所述通告报文包括数据报文所在的虚拟存储地址以及所述数据报文的长度,所述数据报文为第一虚拟机上的第一容器与所述第二虚拟机上的第二容器之间通信的报文,所述第一虚拟机部署在第一主机上,所述第二虚拟机部署在所述第一主机或不同于所述第一主机的第二主机上;根据所述虚拟存储地址以及所述长度获取所述数据报文。13.根据权利要求12所述的方法,其特征在...
【专利技术属性】
技术研发人员:钟国城,蔡少芝,程宝传,翟健翔,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。