一种通信方法、装置以及系统制造方法及图纸

技术编号:34362995 阅读:49 留言:0更新日期:2022-07-31 07:53
本申请公开了一种通信方法。本申请方法可以由虚拟机执行,也可以由虚拟机的部件(例如虚拟机中的收发包客户端等)执行。该方法包括:获取数据报文所在的第一虚拟存储地址以及数据报文的长度,根据第一虚拟存储地址以及长度生成第一通告报文;并向第一主机发送第一通告报文,第一通告报文用于使第一主机触发第二容器获取数据报文。数据报文为第一虚拟机上的第一容器与第二虚拟机上的第二容器之间通信的报文。通过发送通告报文的方式传输数据报文所在的地址和长度,而不用频繁拷贝数据报文,可以减少容器之间传输数据报文带来的时延。以减少容器之间传输数据报文带来的时延。以减少容器之间传输数据报文带来的时延。

【技术实现步骤摘要】
一种通信方法、装置以及系统


[0001]本申请实施例涉及通信领域,尤其涉及一种通信方法、装置以及系统。

技术介绍

[0002]随着信息技术的不断发展,虚拟机技术得到广泛应用。虚拟机(virtual machine)是指通过软件模拟的、具有完整硬件功能的,运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,可以在一台物理机上模拟出一台或多台虚拟的计算机。集装箱(Docker)是一个开源的应用容器引擎,旨在提供一种应用的自动化部署解决方案,在Linux系统上迅速创建一个容器(container),容器是与系统其它部分隔离开的一系列进程。
[0003]目前,由于容器部署在虚拟机中,容器对外传输数据需要经过虚拟机中的容器网络和虚拟机网络进行转发。
[0004]因此,容器在对外传输数据时需要经过多次拷贝,导致数据传输效率低下。

技术实现思路

[0005]本申请提供了一种通信方法、装置以及系统,通过发送通告报文的方式传输数据报文所在的地址和长度,利用共享存储空间减少容器之间传输数据报文带来的时延。
[0006]本申请第一方面提供了一种通信方法,该方法可以由第一虚拟机执行,也可以由第一虚拟机的部件(例如第一虚拟机中的收发包客户端等)执行。该方法包括:获取数据报文的第一虚拟存储地址以及数据报文的长度,数据报文为第一虚拟机上的第一容器与第二虚拟机上的第二容器之间通信的报文,第一虚拟机部署在第一主机上,第二虚拟机部署在第一主机或不同于第一主机的第二主机上;根据所述第一虚拟存储地址以及所述长度生成第一通告报文;向第一主机发送第一通告报文,第一通告报文用于使第一主机触发第二容器获取数据报文。
[0007]本申请中,确定数据报文所在的第一虚拟存储地址以及数据报文的长度,根据所述第一虚拟存储地址以及所述长度生成第一通告报文;并向第一主机发送第一通告报文,第一通告报文用于使第一主机触发第二容器获取数据报文。数据报文为第一虚拟机上的第一容器与第二虚拟机上的第二容器之间通信的报文。通过发送通告报文的方式传输数据报文所在的地址和长度,而不用频繁拷贝数据报文,可以减少容器之间传输数据报文带来的时延。
[0008]可选地,在第一方面的一种可能的实现方式中,上述步骤中的数据报文存储在第一共享内存中,所述第一虚拟存储地址指向所述第一共享内存,第一虚拟机、第一主机以及第二虚拟机共用第一共享内存,第二虚拟机部署在第一主机上;或者第一虚拟机与第一主机共用第一共享内存,第二虚拟机部署在第二主机上。
[0009]该种可能的实现方式中,通过主机与虚拟机共用共享内存以及虚拟存储地址以及长度的方式,减少容器之间传输数据报文带来的时延。
[0010]可选地,在第一方面的一种可能的实现方式中,上述步骤还包括:确定第一容器的
网卡队列新增数据报文。
[0011]该种可能的实现方式中,通过第一容器的网卡队列,判别新增第一容器需要向第二容器传输的数据报文。
[0012]可选地,在第一方面的一种可能的实现方式中,上述步骤中的第一通告报文还包括网卡队列的标识,网卡队列的标识用于识别第二容器对应的虚拟接口上属于第二容器的网卡队列。
[0013]该种可能的实现方式中,对于虚拟接口上有多个网卡队列的情况,通过网卡队列的标识进行识别,进而实现第二容器获取正确的来自第一容器的数据报文。
[0014]可选地,在第一方面的一种可能的实现方式中,上述步骤中的确定第一容器的网卡队列新增数据报文,包括:确定网卡队列中新增指向第一共享内存的目标存储空间的第一指针,目标存储空间用于存储数据报文。
[0015]该种可能的实现方式中,具体通过第一容器上网卡队列的第一指针,判别新增第一容器需要向第二容器传输的数据报文。
[0016]可选地,在第一方面的一种可能的实现方式中,上述的第一指针被读取后失效。
[0017]该种可能的实现方式中,第一指针被读取后失效,减少存储器的存储空间。
[0018]本申请第二方面提供了一种通信方法,该方法可以由第一主机执行,也可以由第一主机的部件(例如第一主机中的收发包服务端、处理器、芯片、或芯片系统等)执行。该方法包括:接收第一虚拟机发送的第一通告报文,第一通告报文包括数据报文对应的第一虚拟存储地址以及数据报文的长度,数据报文为第一虚拟机上的第一容器与第二虚拟机上的第二容器之间通信的报文,第一虚拟机部署在第一主机上,第二虚拟机部署在第一主机或不同于第一主机的第二主机上;根据地址映射表确定第一虚拟存储地址对应的第一物理存储地址,第一物理存储地址为数据报文所在第一共享内存对应的物理存储地址,地址映射表存储有一个物理存储地址与一个或多个虚拟存储地址的对应关系;根据第一物理存储地址以及长度获取数据报文;若第二虚拟机部署在第一主机上,则向第二虚拟机发送第二通告报文,第二通告报文包括第二虚拟存储地址以及长度,第二虚拟存储地址由第一物理存储地址转化得到,第二通告报文用于第二容器获取数据报文。
[0019]本申请中,接收第一虚拟机发送的第一通告报文之后,若第二虚拟机部署在第一主机上,则向第二虚拟机发送第二通告报文,通过发送通告报文的方式传输数据报文所在的地址和长度,减少容器之间传输数据报文带来的时延。
[0020]可选地,在第二方面的一种可能的实现方式中,上述步骤还包括:若第二虚拟机部署在第二主机上,则向第二主机发送数据报文。
[0021]该种可能的实现方式中,接收第一虚拟机发送的第一通告报文之后,若第二虚拟机部署在第二主机上,则向第二主机发送数据报文,从而使得第二容器获取正确的数据报文。
[0022]可选地,在第二方面的一种可能的实现方式中,上述步骤中的第一虚拟机、第一主机以及第二虚拟机共用第一共享内存,第二虚拟机部署在第一主机上;或者第一虚拟机与第一主机共用第一共享内存,第二虚拟机部署在第二主机上。
[0023]该种可能的实现方式中,通过主机与虚拟机共用共享内存以及虚拟存储地址以及长度的方式,减少容器之间传输数据报文带来的时延。
[0024]本申请第三方面提供了一种通信方法,该方法可以由第二主机执行,也可以由第二主机的部件(例如第二主机中的收发包服务端、处理器、芯片、或芯片系统等)执行。该方法包括:接收来自第一主机的数据报文,数据报文为第一虚拟机上的第一容器与第二虚拟机上的第二容器之间通信的报文,第一虚拟机部署在第一主机上,第二虚拟机部署在第二主机上,第一主机与第二主机为不同的主机;根据地址映射表确定第二物理存储地址对应的第三虚拟存储地址,数据报文存储的物理地址为第二物理存储地址,地址映射表存储有一个物理存储地址与一个或多个虚拟存储地址的对应关系;根据第三虚拟存储地址以及数据报文的长度生成第三通告报文;向第二虚拟机发送第三通告报文,第三通告报文用于第二容器获取数据报文。
[0025]该种可能的实现方式中,接收来自第一主机的数据报文,根据第三虚拟存储地址以及数据报文的长度生成第三通告报文,向第二虚拟机发送第三通告报文。通过发送通告报本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通信方法,其特征在于,所述方法包括:获取数据报文的第一虚拟存储地址以及所述数据报文的长度,所述数据报文为第一虚拟机上的第一容器与第二虚拟机上的第二容器之间通信的报文,所述第一虚拟机部署在第一主机上,所述第二虚拟机部署在所述第一主机或不同于所述第一主机的第二主机上;根据所述第一虚拟存储地址以及所述长度生成第一通告报文;向所述第一主机发送所述第一通告报文,所述第一通告报文用于使所述第一主机触发所述第二容器获取所述数据报文。2.根据权利要求1所述的方法,其特征在于,所述数据报文存储在第一共享内存中,所述第一虚拟存储地址指向所述第一共享内存,所述第一虚拟机、所述第一主机以及所述第二虚拟机共用所述第一共享内存,所述第二虚拟机部署在所述第一主机上;或者所述第一虚拟机与所述第一主机共用所述第一共享内存,所述第二虚拟机部署在所述第二主机上。3.根据权利要求2所述的方法,其特征在于,所述获取数据报文的第一虚拟存储地址以及所述数据报文的长度之前,所述方法还包括:确定所述第一容器的网卡队列新增所述数据报文。4.根据权利要求3所述的方法,其特征在于,所述第一通告报文还包括网卡队列的标识,所述网卡队列的标识用于识别所述第二容器对应的虚拟接口上属于所述第二容器的所述网卡队列。5.根据权利要求3或4所述的方法,其特征在于,所述确定所述第一容器的网卡队列新增所述数据报文,包括:确定所述网卡队列中新增指向所述第一共享内存的目标存储空间的第一指针,所述目标存储空间用于存储所述数据报文。6.根据权利要求5所述的方法,其特征在于,所述第一指针被读取后失效。7.一种通信方法,其特征在于,所述方法包括:接收第一虚拟机发送的第一通告报文,所述第一通告报文包括数据报文对应的第一虚拟存储地址以及所述数据报文的长度,所述数据报文为所述第一虚拟机上的第一容器与第二虚拟机上的第二容器之间通信的报文,所述第一虚拟机部署在第一主机上,所述第二虚拟机部署在所述第一主机或不同于所述第一主机的第二主机上;根据地址映射表确定所述第一虚拟存储地址对应的第一物理存储地址,所述第一物理存储地址为所述数据报文所在第一共享内存对应的物理存储地址,所述地址映射表存储有一个物理存储地址与一个或多个虚拟存储地址的对应关系;根据所述第一物理存储地址以及所述长度获取所述数据报文;若所述第二虚拟机部署在所述第一主机上,则向所述第二虚拟机发送第二通告报文,所述第二通告报文包括第二虚拟存储地址以及所述长度,所述第二虚拟存储地址由所述第一物理存储地址转化得到,所述第二通告报文用于所述第二容器获取所述数据报文。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:若所述第二虚拟机部署在所述第二主机上,则向所述第二主机发送所述数据报文。
9.根据权利要求7或8所述的方法,其特征在于,所述第一虚拟机、所述第一主机以及所述第二虚拟机共用所述第一共享内存,所述第二虚拟机部署在所述第一主机上;或者所述第一虚拟机与所述第一主机共用所述第一共享内存,所述第二虚拟机部署在所述第二主机上。10.一种通信方法,其特征在于,所述方法包括:接收来自第一主机的数据报文,所述数据报文为第一虚拟机上的第一容器与第二虚拟机上的第二容器之间通信的报文,所述第一虚拟机部署在所述第一主机上,所述第二虚拟机部署在第二主机上,所述第一主机与所述第二主机为不同的主机;根据地址映射表确定所述数据报文的物理存储地址对应的虚拟存储地址,所述地址映射表存储有一个物理存储地址与一个或多个虚拟存储地址的对应关系;根据所述拟存储地址以及所述数据报文的长度生成通告报文;向所述第二虚拟机发送所述通告报文,所述通告报文用于所述第二容器获取所述数据报文。11.根据权利要求10所述的方法,其特征在于,所述第二虚拟机与所述第二主机共用一个共享内存,所述物理存储地址以及所述虚拟存储地址指向所述共享内存;所述共享内存用于存储所述数据报文。12.一种通信方法,其特征在于,所述方法包括:接收通告报文,所述通告报文包括数据报文所在的虚拟存储地址以及所述数据报文的长度,所述数据报文为第一虚拟机上的第一容器与所述第二虚拟机上的第二容器之间通信的报文,所述第一虚拟机部署在第一主机上,所述第二虚拟机部署在所述第一主机或不同于所述第一主机的第二主机上;根据所述虚拟存储地址以及所述长度获取所述数据报文。13.根据权利要求12所述的方法,其特征在...

【专利技术属性】
技术研发人员:钟国城蔡少芝程宝传翟健翔
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1