数据传输方法及相关设备的制造方法
【技术领域】
[0001 ]本发明涉及传输技术,具体涉及一种数据传输方法及相关设备。
【背景技术】
[0002] 在云平台环境中,至少包括云平台系统及多个主机。云平台系统用于对多个主机 进行管理与控制,例如通过为主机间建立基于通用路由封装(GRE Generic Routing Encapsulation)/虚拟局域网(VLAN,Virtual Local Area Network)/虚拟可扩展局域网 VXLAN等协议的通信,而控制数据在主机间进行传输。实际上,每个主机上均通过安装有多 层交换机0VS软件而运行有至少一个虚拟机,主机间的数据传输意在将由一个虚拟机产生 的数据传输到另一个主机所运行的某个虚拟机上。当主机1所运行的虚拟机1要进行数据1 的发送时,需要查询0VS中的流表,确定GRE/VXLAN端口,再进行基于GRE/VXLAN协议的报头 封装,之后进入协议栈处理流程,根据隧道信息中的源网际协议(IPJnternet Protocol) 地址与目的IP地址对数据1进行IP层报头的封装,再根据隧道信息中存储的目的IP查询路 由表获取物理网卡信息及源媒体接入控制(MAC,Media Access Control)地址信息,再根据 物理网卡信息和目的IP查询地址解析协议(ARP,Address Resolution Protocol)表,获得 目的MAC,从而再对数据1进行链路层报头的封装,通过确定出的网卡将封装好的报文发送 出去。由此可见,在主机传输数据的过程中至少需要查询流表和路由表这两个表,在主机之 间每进行一次数据传输就需要对这两个表查询一次,对于主机来说无疑增加了处理负担。
[0003] 另外,协议栈处理流程的处理时间较长,会占用大量的处理资源,不利于云平台环 境的运行。
【发明内容】
[0004] 为解决现有存在的技术问题,本发明实施例提供一种数据传输方法及相关设备, 在数据在主机(虚拟机)之间进行传输时,能够有效减轻主机的传输负担,减少对云平台系 统处理资源的占用。
[0005] 本发明实施例的技术方案是这样实现的:
[0006] 本发明实施例提供一种数据传输方法,应用于第一设备中,所述第一设备、至少一 个第二设备通过各自运行的至少一个虚拟机进行通信;所述方法包括:
[0007] 当所述第一设备发送由自身的第一虚拟机产生的第一报文时,
[0008] 对第一报文进行分析,至少得到目标虚拟机的第一标识和第二标识,所述目标虚 拟机为能够接收第一报文的虚拟机,所述第一标识为所述目标虚拟机的媒体接入控制MAC 地址,所述第二标识为所述目标虚拟机所连接网络的网络标识,所述目标虚拟机位于所述 至少一个第二设备的一个第二设备中;
[0009] 调用第一列表;
[0010] 依据第一标识和第二标识,判断在第一列表中是否存在有所述目标虚拟机所属的 第二设备的设备标识;
[0011] 判断为存在时,发送第一报文至具有所述设备标识的第二设备,以使第二设备的 所述目标虚拟机进行第一报文的接收。
[0012] 本发明实施例提供一种数据传输方法,应用于第二设备中,所述第二设备、至少一 个第一设备通过各自运行的虚拟机进行通信;所述方法包括:
[0013] 缓存由第一设备发送的第一报文;
[0014] 对第一报文进行解析,至少得到在第二设备中所运行的至少一个虚拟机中能够接 收第一报文的虚拟机的MAC地址;
[0015] 触发具有所述MAC地址的虚拟机进行第一报文的接收。
[0016] 本发明实施例提供一种数据传输设备,所述设备包括:
[0017] 第一分析单元,用于当所述设备发送由自身的第一虚拟机产生的第一报文时,对 第一报文进行分析,至少得到目标虚拟机的第一标识和第二标识,所述目标虚拟机为能够 接收第一报文的虚拟机,所述第一标识为所述目标虚拟机的媒体接入MAC地址,所述第二标 识为所述目标虚拟机所连接网络的网络标识,所述目标虚拟机位于所述至少一个第二设备 的一个第二设备中;
[0018]第一调用单元,用于调用第一列表;
[0019] 第一判断单元,用于依据第一标识和第二标识,判断在第一列表中是否存在有所 述目标虚拟机所属的第二设备的设备标识;
[0020] 第一发送单元,用于在第一判断单元判断为存在时,发送第一报文至具有所述设 备标识的第二设备,以使第二设备的所述目标虚拟机进行第一报文的接收。
[0021] 本发明实施例提供一种数据传输设备,所述设备包括:
[0022] 第一存储单元,用于缓存由第一设备发送的第一报文;
[0023] 第一解析单元,用于对第一报文进行解析,至少得到在第二设备中所运行的至少 一个虚拟机中能够接收第一报文的虚拟机的MAC地址;
[0024] 第一触发单元,用于触发具有所述MAC地址的虚拟机进行第一报文的接收。
[0025] 本发明实施例提供的数据传输方法及相关设备,所述方法包括:当第一设备发送 由自身的第一虚拟机产生的第一报文时,对第一报文进行分析,至少得到目标虚拟机的第 一标识和第二标识,所述目标虚拟机位于所述至少一个第二设备的一个第二设备中;调用 第一列表;依据第一标识和第二标识,判断在第一列表中是否存在有所述目标虚拟机所属 的第二设备的设备标识;判断为存在时,发送第一报文至具有所述设备标识的第二设备,以 使第二设备的所述目标虚拟机进行第一报文的接收。能够有效减轻主机的传输负担,减少 对云平台系统处理资源的占用。
【附图说明】
[0026] 图1为本发明提供的应用于第一设备中的数据传输方法的第一实施例的实现流程 示意图;
[0027] 图2为本发明提供的应用于第一设备中的数据传输方法的第二实施例的实现流程 示意图;
[0028] 图3(a)、(b)为本发明提供的应用于第一设备中的数据传输方法的第三实施例的 实现流程示意图;
[0029] 图4为本发明实施例中第一报文的GRE报头封装以及外部报头封装的示意图;
[0030] 图5为本发明实施例中第一报文的VXLAN报头封装以及外部报头封装的示意图;
[0031] 图6为本发明提供的应用于第二设备中的数据传输方法实施例的实现流程示意 图;
[0032] 图7为本发明提供的数据传输设备实施例的组成结构示意图;
[0033] 图8为本发明提供的另一种数据传输设备实施例的组成结构示意图。
【具体实施方式】
[0034] 以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优 选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0035] 实施例一
[0036] 本发明提供的数据传输方法的第一实施例,应用于第一设备中,该第一设备为一 主机、具体是数据发送方的主机,该主机通过安装有0VS软件而运行有至少一个虚拟机。该 主机通过自身运行的至少一个虚拟机与至少一个第二设备进行数据通信,第二设备也为主 机、具体为数据接收方的主机。当然,当第二设备为数据发送方主机时,第一设备可以为数 据接收方主机,对此本文不做具体限定。
[0037] 图1为本发明提供的数据传输方法的第一实施例的实现流程示意图;如图1所示, 所述方法包括:
[0038] 步骤101:当所述第一设备发送由自身的第一虚拟机产生的第一报文时,对第一报 文进行分析,至少得到目标虚拟机的第一标识和第二标识,所述目标虚拟机为能够接收第 一报文的虚拟机,所述第一标识为所述目标虚拟机的媒体接入MAC地址,所述第二标识为所 述目标虚拟机所连接网络的网络标识,所述目标虚拟机位于所述至少一个第二设备的一个 第二设备中;
[0039] 这里,当数据发送方主机如主机A上所运行的某个虚拟机如虚拟机A1需要发送第 一报文至另一主机如B上的某个虚拟机如虚拟机B1时,目标虚拟机为虚拟机B1,读取第一报 文中携带的虚拟机B1的MAC地址和其所连接的(虚拟)网络的网络标识Tunn 1 e key。
[0040] 步骤102:调用第一列表;
[0041] 这里,在获知目标虚拟机的MAC地址和其所连接的(虚拟)网络的网络标识Tunnle key之后,对第一列表进行调用。
[0042] 步骤103:依据第一标识和第二标识,判断在第一列表中是否存在有所述目标虚拟 机所属的第二设备的设备标识;
[0043] 这里,在第一列表中,依据目标虚拟机的MAC地址和其所连接的(虚拟)网络的网络 标识Tunnle key这两个元素,判断第一列表中是否存在有目标虚拟机所属的主机如虚拟机 B1所属的主机B的设备标识,该设备标识为主机号。即判断第一列表中是否存在有与该MAC 地址