CN114398156B - 数据通道构建方法及装置 - Google Patents

数据通道构建方法及装置 Download PDF

Info

Publication number
CN114398156B
CN114398156B CN202210296180.7A CN202210296180A CN114398156B CN 114398156 B CN114398156 B CN 114398156B CN 202210296180 A CN202210296180 A CN 202210296180A CN 114398156 B CN114398156 B CN 114398156B
Authority
CN
China
Prior art keywords
data transmission
data
virtual machine
channel
transmission interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210296180.7A
Other languages
English (en)
Other versions
CN114398156A (zh
Inventor
路放
买宇飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN202210296180.7A priority Critical patent/CN114398156B/zh
Publication of CN114398156A publication Critical patent/CN114398156A/zh
Application granted granted Critical
Publication of CN114398156B publication Critical patent/CN114398156B/zh
Priority to PCT/CN2023/083386 priority patent/WO2023179715A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本说明书实施例提供数据通道构建方法及装置,其中所述数据通道构建方法应用于运行在第一虚拟机中的第二虚拟机,包括:确定所述第一虚拟机的第一数据传输接口,以及与所述第一虚拟机进行数据传输的第二数据传输接口,其中,所述第一数据传输接口与所述第二数据传输接口连通;根据所述第二数据传输接口的属性信息,确定虚拟网络模块的模块信息;根据所述虚拟网络模块的模块信息,生成所述虚拟网络模块;根据所述第一数据传输接口、所述第二数据传输接口以及所述虚拟网络模块,构建目标数据传输通道,其中,所述目标数据传输通道为所述第一虚拟机与所述第二虚拟机中的应用程序进行数据传输的通道。

Description

数据通道构建方法及装置
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据通道构建方法。
背景技术
随着计算机技术以及虚拟机化技术的不断发展,在物理机上可以虚拟化获得多个虚拟机,而不同虚拟机之间需要进行通信交互。现有技术中,虚拟机和虚拟机之间仅允许通过本地安全信道(基于vsock)进行通信交互。但由于当前应用程序大多使用网络接口进行数据传输,因此这样的设计为需要部署在虚拟机中的应用程序的使用带来极大的挑战,导致部署在虚拟机中的应用程序,无法与其他虚拟机进行数据传输。
发明内容
有鉴于此,本说明书实施例提供了一种数据通道构建方法。本说明书一个或者多个实施例同时涉及一种数据传输方法,一种数据传输方法,一种数据通道构建装置,一种计算设备,一种计算机可读存储介质,一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据通道构建方法,应用于运行在第一虚拟机中的第二虚拟机,包括:
确定所述第一虚拟机的第一数据传输接口,以及与所述第一虚拟机进行数据传输的第二数据传输接口,其中,所述第一数据传输接口与所述第二数据传输接口连通;
根据所述第二数据传输接口的属性信息,确定虚拟网络模块的模块信息;
根据所述虚拟网络模块的模块信息,生成所述虚拟网络模块;
根据所述第一数据传输接口、所述第二数据传输接口以及所述虚拟网络模块,构建目标数据传输通道,其中,所述目标数据传输通道为所述第一虚拟机与所述第二虚拟机中的应用程序进行数据传输的通道。
根据本说明书实施例的第二方面,提供了一种数据通道构建装置,应用于运行在第一虚拟机中的第二虚拟机,包括:
第一确定模块,被配置为确定所述第一虚拟机的第一数据传输接口,以及与所述第一虚拟机进行数据传输的第二数据传输接口,其中,所述第一数据传输接口与所述第二数据传输接口连通;
第二确定模块,被配置为根据所述第二数据传输接口的属性信息,确定虚拟网络模块的模块信息;
生成模块,被配置为根据所述虚拟网络模块的模块信息,生成所述虚拟网络模块;
构建模块,被配置为根据所述第一数据传输接口、所述第二数据传输接口以及所述虚拟网络模块,构建目标数据传输通道,其中,所述目标数据传输通道为所述第一虚拟机与所述第二虚拟机中的应用程序进行数据传输的通道。
根据本说明书实施例的第三方面,提供了一种数据传输方法,应用于运行在第一虚拟机中的第二虚拟机,包括:
接收所述第一虚拟机通过目标数据传输通道,发送的初始待处理数据,其中,所述目标数据传输通道根据所述数据通道构建方法构建;
根据部署在所述第二虚拟机中的虚拟网络模块,对所述初始待处理数据进行数据类型转换,获得目标待处理数据;
根据部署在所述第二虚拟机中的应用程序对所述目标待处理数据进行处理,获得数据处理结果;
根据所述虚拟网络模块,对所述数据处理结果进行数据类型转换,获得转换后的数据处理结果;
通过所述目标数据传输通道将所述转换后的数据处理结果,发送至所述第一虚拟机。
根据本说明书实施例的第四方面,提供了一种数据传输装置,应用于运行在第一虚拟机中的第二虚拟机,包括:
接收模块,被配置为接收所述第一虚拟机通过目标数据传输通道,发送的初始待处理数据,其中,所述目标数据传输通道根据所述数据通道构建方法构建;
第一转换模块,被配置为根据部署在所述第二虚拟机中的虚拟网络模块,对所述初始待处理数据进行数据类型转换,获得目标待处理数据;
处理模块,被配置为根据部署在所述第二虚拟机中的应用程序对所述目标待处理数据进行处理,获得数据处理结果;
第二转换模块,被配置为根据所述虚拟网络模块,对所述数据处理结果进行数据类型转换,获得转换后的数据处理结果;
发送模块,被配置为通过所述目标数据传输通道将所述转换后的数据处理结果,发送至所述第一虚拟机。
根据本说明书实施例的第五方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现所述数据通道构建方法以及所述数据传输方法的步骤。
根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现所述数据通道构建方法以及所述数据传输方法的步骤。
根据本说明书实施例的第七方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行所述数据通道构建方法以及所述数据传输方法的步骤。
本说明书提供的数据通道构建方法,应用于运行在第一虚拟机中的第二虚拟机,包括:确定所述第一虚拟机的第一数据传输接口,以及与所述第一虚拟机进行数据传输的第二数据传输接口,其中,所述第一数据传输接口与所述第二数据传输接口连通;根据所述第二数据传输接口的属性信息,确定虚拟网络模块的模块信息;根据所述虚拟网络模块的模块信息,生成所述虚拟网络模块;根据所述第一数据传输接口、所述第二数据传输接口以及所述虚拟网络模块,构建目标数据传输通道,其中,所述目标数据传输通道为所述第一虚拟机与所述第二虚拟机中的应用程序进行数据传输的通道。
具体地,所述数据通道构建方法,通过在第二虚拟机中生成虚拟网络模块,并基于该第一虚拟机的第一数据传输接口,第二虚拟机与第一虚拟机进行数据传输的第二数据传输接口,以及该虚拟网络模块构建目标数据传输通道,从而使得第二虚拟机中的应用程序能够通过目标数据传输通道与第一虚拟机进行数据传输,避免了运行在第二虚拟机中的应用程序与无法与第一虚拟机进行数据传输的问题。
附图说明
图1是本说明书一个实施例提供的一种数据通道构建方法的应用场景示意图;
图2是本说明书一个实施例提供的一种数据通道构建方法的流程图;
图3是本说明书一个实施例提供的一种数据通道构建方法的处理过程流程图;
图4是本说明书一个实施例提供的一种数据通道构建装置的结构示意图;
图5是本说明书一个实施例提供的一种数据传输方法的处理过程流程图;
图6是本说明书一个实施例提供的一种数据传输装置的结构示意图;
图7是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
TEE - Trusted Execution Environment 可信执行环境。
PVM - Primary VM 主虚拟机。
EVM - Enclave VM 机密虚拟机。
SEV - Secure Memory Encryption,AMD实现的基于虚拟化的TEE技术。
TDX - Trust Domain Extensions,一种基于虚拟化的TEE技术。
vsock:一种用于虚拟机之间进行数据传输的技术。
Hypervisor:虚拟机监测器。
NGINX:一个高性能的HTTP和反向代理web服务器。
MySQL:一个关系型数据库管理系统。
SPARK:大规模数据处理而设计的快速通用的计算引擎。
TUN设备:一种虚拟三层网络设备。
TCP:一种面向连接的、可靠的、基于字节流的传输层通信协议。
UDP:一个无连接的传输协议。
SDK:软件开发工具包。
Enclave ECall:一种函数。
随着计算机技术以及虚拟机化技术的不断发展,许多互联网企业考虑到数据安全性的问题,会向用户推出各种类型的隐私增强计算平台产品。而在隐私增强计算平台产品中,使用Hypervisor技术提供与其他实例的全隔离环境,在实例(例如,PVM)中创建虚拟化隔离环境(例如,EVM)后,PVM通过本地加密通道vsock和隔离环境EVM进行通讯,例如,通过本地加密通道vsock对隔离环境EVM下达指令。
但是,当前的EVM运行独立的可信操作系统,没有持久化存储和外部网络通路,仅允许通过本地安全信道(基于vsock创建的安全通道)与主VM(即PVM)进行通信。而这样的设计,对于当前应用程序的使用带来极大的挑战。
由于分析得出当前应用程序使用网络接口的方式,大部分是和应用程序的逻辑和场景紧密耦合。在云场景下绝大多数的应用程序都依赖于网络接口,例如NGINX,MySQL,SPARK,分布式机器学习等。而对于将这些应用程序移植到虚拟化安全环境的工作,具有非常大的工作量和难度。
因此,为了解决应用程序无法直接适配网络接口的问题,许多互联网机构对应用程序中,所有使用网络接口的部分使用SDK进行Enclave ECall的改造(类似于函数调用级别的改写)。例如,本说明书实施例提供的一种TEE SDK的方案,此方案需要重写应用程序的网络通讯部份,而这进一步导致对现有程序的改造工作量大,且门槛高。虽然技术上可行,能够达到部署在EVM中的应用程序,能够与PVM进行通信。但由于现存云上应用程序多数依赖网络接口,需要对内部逻辑进行非常细粒度的API级别改造才能移植到EVM中,因此在当前云原生和容器化服务广泛使用下,大大降低了机密计算的推广速度,成为推广虚拟化隔离环境实例的障碍。
基于此,在本说明书中,提供了一种数据通道构建方法,本说明书同时涉及一种数据通道构建装置、一种数据传输方法、一种数据传输装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一个实施例提供的一种数据通道构建方法的应用场景示意图,本说明书实施例所提供的数据通道构建,可以理解为一种EVM内支持应用程序使用网络通讯的方法,通过利用在EVM中实现一个虚拟化网络接口设备(即虚拟网络设备),实现向上兼容网络协议栈以及EVM中当前运行的应用程序的网络编程模型接口。同时又通过一个安全vsock数据通道,和PVM建立安全的通讯信道。其中,该vsock数据通道由虚拟化Hypervisor提供的vsock通道、EVM中的vsock前端以及PVM中的vsock前端构成。该EVM和PVM能够基于该安全vsock数据通道进行数据传输。
因此,通过建立EVM侧的虚拟网络接口,并基于vsock通讯的高级抽象,从而使得EVM内的应用程序可以完成支持对外部复杂的网络用法,例如PVM和EVM之间的网络转发,网络映射,甚至复杂的网络监测保护的处理流程等。
具体地,参见图1,本说明书提供的数据通道构建方法,首先,在EVM中建立虚拟网络设备,即虚拟网卡。通过此虚拟网络设备可以为EVM提供兼容的网络环境。因此在EVM中的应用程序可以方便使用统一的网络编程接口。基于该TUN设备(即虚拟网络设备)可以处理来自网络层的数据,即IP数据包。也可以处理传输层TCP/UDP,以及应用层的各种网络协议包。
其次,在完成虚拟网络设备的创建后,需要将虚拟网络设备构建在vsock的安全通道上,通过利用虚拟化Hypervisor提供的vsock通讯能力,可以建立EVM和PVM安全加密的通讯通道。
其中,将虚拟网络设备构建在vsock安全通道(即上述安全vsock数据通道)上,可以理解为将虚拟网络设备的网络接口与EVM的vsock前端配置在一起,形成一个由虚拟网络设备、EVM的vsock前端、Hypervisor提供的vsock通道、以及PVM的vsock前端之间进行连接,所形成的一个安全加密的通讯通道。使得EVM中的应用程序能够通过该安全加密的通讯通道将数据传输给PVM。
最后,在PVM侧可以通过部署在PVM中的vsock前端,把数据(例如一个文件)传输vsock的数据通道中,其中,数据通道包括但不限于文件、管道、设备、网络套接字等。
基于此,本说明书提供的数据通道构建方法,通过在EVM中实现一个标准化的虚拟网络设备,从而提供完整且兼容的网络接口,使得应用程序可以无修改的在EVM内运行,并实现与PVM之间进行数据传输,极大的降低了虚拟化Enclave的使用门槛。
图2示出了根据本说明书一个实施例提供的一种数据通道构建方法的流程图,所述数据通道构建方法应用于运行在第一虚拟机中的第二虚拟机,具体包括以下步骤。
步骤202:确定所述第一虚拟机的第一数据传输接口,以及与所述第一虚拟机进行数据传输的第二数据传输接口,其中,所述第一数据传输接口与所述第二数据传输接口连通。
其中,该第一虚拟机可以理解为能够支持第二虚拟机运行的虚拟机,例如,上述实施例中的PVM。在实际应用中,本说明书提供的数据通道构建方法中,能够基于第一虚拟机的虚拟机物理资源虚拟化生成第二虚拟机;该虚拟机物理资源可以理解为从宿主机中分配给第一虚拟机的物理存储资源(如内存资源)、物理计算资源(如CPU资源)等等,该第二虚拟机能够运行在该第一虚拟机中;此外,该第二虚拟机可以仅与第一虚拟机进行数据传输。相应地,该第二虚拟机可以理解为根据第一虚拟机对应的虚拟机物理资源所生成的虚拟机。例如,在第一虚拟机为PVM的情况下,该第二虚拟机可以理解为EVM。相应地,该第一数据传输接口,可以理解为部署在第一虚拟机中、能够实现第一虚拟机与第二虚拟机进行数据传输的接口,例如,上述实施例中部署在PVM中的vsock端口;相应地,该第二数据传输接口可以理解为部署在第二虚拟机中、能够实现第一虚拟机与第二虚拟机进行数据传输的接口,例如,上述实施例中部署在EVM中的vsock端口。在实际应用中,EVM运行独立的可信操作系统仅允许通过本地安全信道(基于vsock创建的安全通道)与主VM(即PVM)进行通信。
具体地,本说明书提供的第二虚拟机能够确定第一虚拟机的第一数据传输端口,以及第二虚拟机自身,与第一虚拟机进行数据传输的第二数据传输端口。需要说明的是,第一数据传输接口与所述第二数据传输接口连通。
在实际应用中,该第一数据传输端口可以通过初始数据传输通道与第二数据传输接口连通。也可以理解为,该第一数据传输端口和第二数据传输端口能够作为初始数据传输通道的两端;当数据输入第一数据传输端口后,通过初始数据传输通道进行传输,并最终从第二数据传输端口输出。或者,当数据输入第二数据传输端口后,通过初始数据传输通道进行传输,并最终从第一数据传输端口输出。从而实现了PVM和EVM之间的数据传输。其中,该初始数据传输通道可以理解为Hypervisor提供的用于虚拟机之间进行数据传输的通道。例如,上述图1中的Hypervisor提供的vsock通道。
下面以本说明书提供的数据通道构建方法在实现虚拟化TEE中EVM网络接口通讯的场景为例,对确定第一虚拟机的第一数据传输接口,以及与第一虚拟机进行数据传输的第二数据传输接口做进一步说明。其中,该第一虚拟机为PVM,第一数据传输接口为部署在PVM中的vsock端口,第二虚拟机为EVM,第二数据传输接口为部署在EVM中的vsock端口。基于此,EVM能确定部署在PVM中的vsock端口,以及自身与PVM进行数据传输的vsock端口,其中,部署在EVM中的vsock端口与部署在PVM中的vsock端口相连通。
需要说明的是,在实际应用中,当EVM需要实现运行在其自身的应用程序与PVM进行数据传输的情况下,才会确定部署在PVM中的vsock端口,以及自身与PVM进行数据传输的vsock端口。也即是所,当EVM中部署有应用程序、或者需要部署应用程序的情况下,由于应用程序需要与PVM进行通信,因此,EVM需要确定部署在PVM中的vsock端口,以及自身与PVM进行数据传输的vsock端口。便于后续基于部署在PVM中的vsock端口,以及自身与PVM进行数据传输的vsock端口,构建目标数据传输通道。
步骤204:根据所述第二数据传输接口的属性信息,确定虚拟网络模块的模块信息。
其中,该虚拟网络模块可以理解为虚拟机中能够实现网络数据传输能力的模块,例如,该虚拟网络模块可以为虚拟网络设备;该虚拟网络设备可以为虚拟网卡。
在第二数据传输接口为vsock前端的情况下,该第二数据传输接口的属性信息可以理解为该vsock前端的端口类型。也即是说,EVM所创建虚拟网络设备需要与vsock前端相适配,因此,为了保证创建的虚拟网络设备与vsock前端顺利的连通。需要根据vsock前端的端口类型,确定与之相匹配的虚拟网络设备的设备信息。相对的,在虚拟网络模块为虚拟网络设备的情况下,该虚拟网络模块的模块信息可以理解为虚拟网络设备的设备信息。在实际应用中,该设备信息包含该虚拟网络设备的虚拟网络接口配置信息、IP地址等能够用于生成一个虚拟网络设备的信息。
具体地,第二虚拟机在创建虚拟网络模块的过程中,为了保证该虚拟网络模块与第二数据传输接口的兼容性;会获取该第二数据传输接口的属性信息,并基于该属性信息确定出虚拟网络设备的模块信息。
步骤206:根据所述虚拟网络模块的模块信息,生成所述虚拟网络模块。
沿用上例,虚拟网络模块为虚拟网卡,该模块信息为生成虚拟网卡所需要的配置信息。基于此,EVM在基于其自身配置的vsock前端的端口信息,确定与该vsock前端相匹配的虚拟网卡,以及生成该虚拟网卡所需要的配置信息。之后该EVM基于该配置信息建立虚拟网络设备,即虚拟网卡。从而通过此虚拟网卡可以为EVM提供兼容的网络环境,运行在EVM中的应用程序可以方便使用统一的网络编程接口。并且,基于当前TUN设备(虚拟网卡)可以处理来自网络层的数据,即IP 数据包。也可以处理传输层TCP/UDP,以及应用层的各种网络协议包。
步骤208:根据所述第一数据传输接口、所述第二数据传输接口以及所述虚拟网络模块,构建目标数据传输通道,其中,所述目标数据传输通道为所述第一虚拟机与所述第二虚拟机中的应用程序进行数据传输的通道。
具体地,第二虚拟机中的第二数据传输接口与第一数据传输接口连通,基于此,第二虚拟机通过将该虚拟网络模块与第二数据传输接口进行连通,并根据第一数据传输接口、以及与第一数据传输接口相连通的第二数据传输接口,构建用于第一虚拟机与第二虚拟机中的应用程序之间进行数据传输的目标数据传输通道。
进一步地,在本说明书提供的实施例中,所述根据所述第一数据传输接口、所述第二数据传输接口以及所述虚拟网络模块,构建目标数据传输通道,包括:
确定所述第二数据传输接口的接口标识信息;
根据所述接口标识信息,将所述第二数据传输接口与所述虚拟网络模块连通;
根据所述第一数据传输接口、与所述第一数据传输接口连通的所述第二数据传输接口、以及与所述第二数据传输接口连通所述虚拟网络模块,构建目标数据传输通道。
其中,该接口标识信息可以理解为唯一标识该第二数据传输接口的信息,例如,在第二数据传输接口为vsock前端的情况下,该接口标识信息可以为vsock前端的接口编号。
具体地,第二虚拟机在生产虚拟网络模块之后,能够确定该第二数据传输接口的接口标识信息,并根据该接口标识信息,将第二数据传输接口与虚拟网络模块进行连通,然后基于第一数据传输接口、与第一数据传输接口连通的第二数据传输接口、以及与第二数据传输接口连通虚拟网络模块,构建用于第一虚拟机与第二虚拟机中的应用程序之间进行数据传输的目标数据传输通道,从而避免了应用程序与无法与其他虚拟机进行数据传输的问题。
沿用上例,该第二数据传输接口的接口标识信息为vsock前端的接口编号;基于此,EVM在创建虚拟网卡之后,能够确定出与PVM进行数据传输的vsock前端的接口编号,并基于该接口编号将该vsock前端和虚拟网卡配置在一起,从而实现EVM中的vsock前端和虚拟网卡相连通。之后EVM基于PVM中部署的vsock前端、EVM中与该PVM中部署的vsock前端相连通的vsock前端、以及与EVM中部署的vsock前端相连通的虚拟网卡,构建一下安全加密的通讯通道,从而使得运行在EVM中的应用程序,能够与PVM进行数据传输。
在本说明书实施例中,EVM中部署的vsock前端与EVM中部署的虚拟网络设备进行连通的过程中,可以通道将虚拟网络设备的网络接口与vsock前端配置在一起,从而实现vsock前端与虚拟网络设备的连通,具体实现方式如下。
所述根据所述接口标识信息,将所述第二数据传输接口与所述虚拟网络模块连通,包括:
确定所述虚拟网络模块的模块数据传输接口,以及所述模块数据传输接口的模块接口标识信息;
根据所述第二数据传输接口的接口标识信息以及所述模块接口标识信息,将所述第二数据传输接口与所述虚拟网络模块的模块数据传输接口连通。
其中,在虚拟网络模块为虚拟网络设备的情况下,该模块数据传输接口可以理解为虚拟网络设备中的虚拟网络接口。对应的,该模块接口标识信息可以理解为虚拟网络接口的接口编号。
具体地,第二虚拟机在确定出第二数据传输接口的接口标识信息之后,能够确定出该虚拟网络模块的模块数据传输接口,以及该模块数据传输接口的模块接口标识信息。之后根据第二数据传输接口的接口标识信息以及模块接口标识信息,将第二数据传输接口与虚拟网络模块的模块数据传输接口连通。
沿用上例,该模块接口标识信息为虚拟网络接口的接口编号,基于此,EVM确定出与PVM进行数据传输的vsock前端的接口编号之后,能够确定出虚拟网卡中的虚拟网络接口,以及该虚拟网络接口的接口编号;之后该EVM基于该虚拟网络接口的接口编号以及vsock前端的接口编号,将虚拟网络接口以及vsock前端配置在一起,从而实现EVM中的vsock前端和虚拟网卡相连通。
本说明书实施例中,该第一数据传输接口是通过初始数据传输通道与第二数据传输接口进行连通,后续当虚拟网络模块与第二数据传输接口连通的情况下,可以基于初始数据传输通道、第一数据传输接口、第二数据传输接口以及虚拟网络模块,构建目标数据传输通道;实现运行在第二虚拟机中的应用程序与第一虚拟机进行数据传输,具体实现方式如下。
所述根据所述第一数据传输接口、与所述第一数据传输接口连通的所述第二数据传输接口、以及与所述第二数据传输接口连通所述虚拟网络模块,构建目标数据传输通道,包括;
确定所述第一数据传输接口以及所述第二数据传输接口对应的初始数据传输通道,其中,所述第一数据传输接口通过所述初始数据传输通道与所述第二数据传输接口连通;
根据所述初始数据传输通道、所述第一数据传输接口、所述第二数据传输接口、以及所述虚拟网络模块,构建目标数据传输通道。
其中,该初始数据传输通道可以理解为Hypervisor提供的vsock通道。
具体的,该第一数据传输接口是通过初始数据传输通道与第二数据传输接口连通的,基于此,第二虚拟机在构建目标数据传输通道的过程中,需要确定第一数据传输接口以及第二数据传输接口对应的初始数据传输通道,并基于初始数据传输通道、通过初始数据传输通道与第二数据传输接口连通的第一数据传输接口、通过初始数据传输通道与第一数据传输接口连通的第二数据传输接口,以及与第二数据传输接口连通的虚拟网络模块,构建用于第一虚拟机与第二虚拟机中的应用程序之间进行数据传输的目标数据传输通道,从而避免了应用程序与无法与其他虚拟机进行数据传输的问题。
在本说明书实施例中,第二虚拟机在完成目标数据传输通道之后,能够基于该目标数据传输通道实现该运行在第二虚拟机中的应用程序与第一虚拟机之间的数据传输,从而保证了应用程序的稳定运行,具体实现方式如下。
所述根据所述第一数据传输接口、所述第二数据传输接口以及所述虚拟网络模块,构建目标数据传输通道之后,还包括步骤一至步骤三:
步骤一:接收所述第一虚拟机通过所述目标数据传输通道,发送的初始待处理数据。
在实际应用中,部署在第二虚拟机中的应用程序可以为web程序,该web程序需要基于虚拟网络设备进行数据传输,从而提供web服务。基于此,第二虚拟机在基于创建的虚拟网络设备构建目标数据传输通道之后,能够接收到第一虚拟机通过该目标数据传输通道发送的初始待处理数据。其中,该初始待处理数据可以理解为需要应用程序进行处理的数据,例如,PVM下发的指令、文件、调用请求、数据报文、数据包等等。
步骤二:根据所述虚拟网络模块对所述初始待处理数据进行数据类型转换,获得目标待处理数据。
在实际应用中,第二虚拟机接收到该初始待处理数据的数据类型可以为数据帧类型;由于数据帧无法被虚拟机进行处理,因此,需要将该数据帧类型的初始待处理数据转换为虚拟机能够使用的数据。相应地,该目标待处理数据可以理解为经过虚拟网络设备进行数据类型转换后的数据。
沿用上例,PVM将数据帧通道输入至其自身部署的vsock端口,通过Hypervisor提供的vsock通道、部署在EVM中的vsock端口,最终传输至EVM的虚拟网卡中。该EVM在接收到PVM传输过来的数据帧之后,能够通过该虚拟网卡将该数据帧转换为EVM能够识别并使用的数据,从而便于后续应用程序能够对该数据进行处理。
进一步地,本说明书提供的实施例中,为了保证EVM中应用程序的安全运行。当EVM接收到外部传输过来的数据之后,需要对该数据进行数据校验处理,并在校验通过的情况下,根据应用程序对该数据进行处理,从而避免运行在EVM中的应用程序遭受到网络攻击;具体实现方式如下。
所述根据所述应用程序对所述目标待处理数据进行处理,获得数据处理结果之前,还包括:
确定所述虚拟网络模块对应的数据校验单元;
基于数据校验单元对所述目标待处理数据进行数据校验,并在数据校验通过的情况下,获得校验后的目标待处理数据。
其中,该数据校验单元可以理解为第二虚拟机中用于对接收到外部数据进行数据校验的单元。在实际应用中,该数据校验单元可以理解为部署在EVM中的数据检测工具、软件程序、脚本等等。例如,该数据校验单元可以为iptables工具。其中,该iptables工具能够配置和设置EVM的虚拟网络接口,从而使得该EVM能够较好的兼容当前网络环境的生态,提供便利性。
具体地,第二虚拟机在获得目标待处理数据之后,能够基于该部署在第二虚拟机中,与虚拟网络模块对应的数据校验单元,对基于虚拟网络模块获得的目标待处理数据进行数据校验,并在数据校验通过的情况下,获得校验后的目标待处理数据。后续根据应用程序对校验后的目标待处理数据进行处理,从而保证了应用程序的安全性,避免运行在EVM中的应用程序遭受到网络攻击。
需要说明的是,PVM中的vsock端口可以与PVM中连接外部网络的网络设备进行连接。该连接外部网络的网络设备具有对外ip和对外端口。而外部的数据报文首先通过网络设备传输给PVM,在根据PVM与EVM之间的目标数据传输通道,将该外部数据报文传递给EVM中运行的web程序。而该EVM和PVM之间存在vm安全隔离,并且该EVM和PVM之间的vsock安全通道是一个加密的安全通道,因此,当PVM遭受到网络攻击的过程中,不会影响到EVM中的web应用程序,从而保护了运行在EVM中的应用程序的安全性。
步骤三:根据所述应用程序对所述目标待处理数据进行处理。
沿用上例,EVM在接收到PVM发送的数据之后,其中,该数据可以为一个调用请求,EVM能够基于运行在EVM中的web应用对该调用请求进行处理。
在实际应用中,当web应用对该调用请求进行处理,能够生成应用程序针对该调用请求的数据处理结果。其中,该数据处理结果可以根据实际应用场景进行设置,本说明书对此不做具体设置。
进一步地,在本说明书提供的一实施例中,所述根据所述应用程序对所述目标待处理数据进行处理,包括:
从所述目标待处理数据中,获取所述应用程序的标识信息,并根据所述标识信息确定所述应用程序;
将所述目标待处理数据发送至所述应用程序进行处理。
其中,应用程序的标识信息可以理解为唯一标识一个应用程序的信息,例如,应用程序对应的端口号,或者应用程序的名称、ID等等。该第二虚拟机在接收到第一虚拟机发送的目标待处理数据后,能够从该目标待处理数据中,获取针对应用程序的标识信息,并根据标识信息确定该目标待处理数据对应的应用程序;之后将会该目标待处理数据发送至对应的应用程序进行处理。
沿用上例,其中,应用程序的标识信息为web应用的端口号。基于此,EVM在接收到PVM发送的数据之后,其中,该数据可以为一个调用请求,基于该调用请求中携带的web应用的端口号,确定该调用请求对应的web应用;之后,EVM确定该调用请求对应的wen应用,并将该调用请求发送至该web应用,由该web应用对该调用请求进行处理。
本说明书提供的一实施例中,在应用程序对目标待处理数据进行处理后,第二虚拟机可以获得该数据处理结果,并将该数据处理结果发送至第一虚拟机,具体如下所示。所述根据所述应用程序对所述目标待处理数据进行处理之后,还包括:
获取数据处理结果,其中,所述数据处理结果为所述应用程序对所述目标待处理数据进行处理获得的结果;
根据所述虚拟网络模块对所述数据处理结果进行数据类型转换,获得转换后的数据处理结果;
根据所述目标数据传输通道将所述转换后的数据处理结果,发送至所述第一虚拟机。
沿用上例,EVM中的web应用对该调用请求进行处理后,能够生成针对该调用请求的处理结果,之后该web应用能够通过网络Socket传输数据的方式,将处理结果提供给第二虚拟机,由第二虚拟机通过虚拟网卡将该处理结果的数据类型转换为数据帧,从而获得数据帧类型的处理结果,并通过目标数据传输通道将数据帧类型的处理结果,发送至PVM。从而实现EVM与PVM之间的数据通信。
本说明书一实施例提供的数据通道构建方法,也可以在PVM侧同样复制一个虚拟网络设备作为对外网络接口,把EVM构建成一个内部网络节点,从而完全兼容目前的网络生态,且保证PVM和EVM之间的数据传输,具体实现方式如下。
所述第一虚拟机中部署有虚拟网络模块,且所述虚拟网络模块与所述目标数据传输通道连通;
相应地,所述接收所述第一虚拟机通过所述目标数据传输通道,发送的初始待处理数据,包括:
接收所述第一虚拟机通过所述虚拟网络模块,以及相连通的所述目标数据传输通道发送的初始待处理数据。
在本说明书提供的实施例中,该第一虚拟机中同样部署有虚拟网络模块,且该虚拟网络模块与目标数据传输通道连通,其中,第一虚拟机中部署有虚拟网络模块可以参见上述第二虚拟机生成虚拟网络模块的步骤,本说明书对此不做过多赘述;且该虚拟网络模块与目标数据传输通道连通,可以理解为,该虚拟网络模块与第一虚拟机中的第一数据传输接口连通,从而实现该虚拟网络模块与目标数据传输通道连通,其中,该虚拟网络模块与第一数据传输接口连通的方式,可以参见上述第二虚拟机中的虚拟网络模块与第二数据传输接口进行连通的步骤,本说明书对此不做过多赘述。
具体地,该第一虚拟机中部署有虚拟网络模块,且该虚拟网络模块与目标数据传输通道连通,基于此,该第一虚拟机能够通过该虚拟网络模块向第二虚拟机中的应用程序发送数据。而第二虚拟机能够接收第一虚拟机通过虚拟网络模块,以及相连通的目标数据传输通道发送的初始待处理数据,便于后续运行在第二虚拟机中的应用程序能够接收并处理该初始待处理数据。
在本说明书提供的实施例中,运行在第二虚拟机的应用程序能够通过该目标数据传输通道向第一虚拟机发送数据,从而保证了应用程序与第一虚拟机之间能够进行数据交互,具体实现方式如下。
所述根据所述第一数据传输接口、所述第二数据传输接口以及所述虚拟网络模块,构建目标数据传输通道之后,还包括:
获取所述应用程序生成的初始待发送数据,其中,所述初始待发送数据中包含所述第一虚拟机的标识信息;
根据所述虚拟网络模块对所述初始待发送数据进行数据类型转换,获得目标待发送数据;
根据所述标识信息,通过所述目标数据传输通道将所述目标待发送数据发送至所述第一虚拟机。
其中,第一虚拟机的标识信息可以理解为唯一标识第一虚拟机的信息,例如,该虚拟机的IP地址。对应的,待发送数据可以理解为应用程序需要发送给第一虚拟机的数据,该待发送数据可以根据实际应用场景进行设置,本说明书对此不做具体限定。例如,该待发送数据可以为文件、图片、数据报文、指令、数据包等数据。
沿用上例,EVM能够接收到该web应用能够通过网络Socket传输数据的方式发送的文件数据,并通过虚拟网卡将该文件数据的数据类型转换为数据帧,从而获得数据帧类型的文件数据,从而获得数据帧类型的文件数据,并通过目标数据传输通道将数据帧类型的文件数据,发送至PVM。从而实现EVM与PVM之间的数据通信。
本说明书提供的数据通道构建方法,通过在第二虚拟机中生成虚拟网络模块,并基于该第一虚拟机的第一数据传输接口,第二虚拟机与第一虚拟机进行数据传输的第二数据传输接口,以及该虚拟网络模块构建目标数据传输通道,从而使得第二虚拟机中的应用程序能够通过目标数据传输通道与第一虚拟机进行数据传输,避免了应用程序与无法与其他虚拟机进行数据传输的问题。
下述结合附图3,以本说明书提供的数据通道构建方法在EVM应用进行数据传输场景的应用为例,对所述数据通道构建方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种数据通道构建方法的处理过程流程图,具体包括以下步骤。
步骤302:EVM启动并启动虚拟网卡。
具体地,EVM启动以及启动部署在EVM中的虚拟网卡。
其中,虚拟网卡部署在EVM中,从而为EVM提供兼容的网络环境。而创建虚拟网卡的过程中,为了保证创建的虚拟网络设备与vsock前端顺利的连通,使得EVM所创建虚拟网络设备需要与vsock前端相适配。需要EVM确定自身部署的vsock前端的端口类型。
之后,再基于该端口类型确定与之相匹配的虚拟网络设备的设备信息,该设备信息包括创建虚拟网络设备所需要的虚拟网络接口配置信息、IP地址等。
基于该设备信息,EVM创建出与vsock前端相适配的虚拟网卡。
步骤304:EVM建立虚拟网卡和vsock的加密信道。
其中,该vsock可以理解为EVM中的vsock前端、PVM中的vsock前端、以及Hypervisor提供的vsock通道。
基于此,EVM将虚拟网卡的接口与EVM中的vsock前端配置在一起,实现虚拟网卡的接口与EVM中的vsock前端的连通。其中,vsock前端的类型以及虚拟网卡的接口,可以通过socat工具确定。
由于,该EVM中的vsock前端与PVM中的vsock前端、通过Hypervisor提供的vsock通道进行连接。当虚拟网卡的接口与EVM中的vsock前端进行连通之后,能够构成一个额,用于EVM应用和PVM之间的数据传输。
步骤306:PVM通知EVM信道建立完成。
具体地,当信道建立完成之后,该PVM会通知EVM该信道已经建立完成,可以进行数据传输。
步骤308:EVM应用建立EVM应用和EVM之间的连接。
具体的,在用于EVM应用和PVM之间数据传输的安全加密信道建立完成之后,运行在EVM中的应用程序能够与该EVM建立Socket连接。
步骤310:EVM返回连接建立结果。
具体地,在Socket连接建立完成之后,该EVM会向EVM应用返回连接建立结果。
步骤312:EVM应用通过网络Socket传输数据。
具体地,该EVM应用通过网络Socket传输数据给EVM。
步骤314:EVM通过vsock传输数据。
具体地,该EVM通过基于vsock建立的加密安全信道,将EVM应用通过网络Socket传输数据,发送给PVM。
步骤316:PVM返回数据传输结果。
具体地,PVM在接收到EVM应用传输的数据后,向EVM返回数据传输结果。
步骤318:EVM返回数据传输结果。
具体地,EVM在接收到PVM发送的数据传输结果后,通过Socket将该数据传输结果发送至EVM应用。
本说明书提供的数据通道建立方,可以把容器化的服务(例如web应用)快速的移植到EVM中,通过非常少的脚本配置就可以在EVM内拉起一个标准化的云上常见服务,例如MySQL等,大大降低了应用使用加密虚拟机的门槛。
同时,在EVM内增加虚拟网络设备,实现兼容网络编程模型接口。使得现存应用程序的网络相关部分不需要进行细粒度的SDK改造就可以迁移到Enclave实例(即EVM)中。且EVM中的虚拟网络设备通过vsock和PVM进行安全通信,完全复用虚拟化侧提供的安全机制,以及通过socat等工具连接EVM虚拟网络设备,支持通用工具例如iptables来配置和设置EVM的虚拟网络接口,较好的兼容当前网络环境的生态,提供便利性。
与上述方法实施例相对应,本说明书还提供了数据通道构建装置实施例,图4示出了本说明书一个实施例提供的一种数据通道构建装置的结构示意图。如图4所示,该装置应用于运行在第一虚拟机中的第二虚拟机,包括:
第一确定模块402,被配置为确定所述第一虚拟机的第一数据传输接口,以及与所述第一虚拟机进行数据传输的第二数据传输接口,其中,所述第一数据传输接口与所述第二数据传输接口连通;
第二确定模块404,被配置为根据所述第二数据传输接口的属性信息,确定虚拟网络模块的模块信息;
生成模块406,被配置为根据所述虚拟网络模块的模块信息,生成所述虚拟网络模块;
构建模块408,被配置为根据所述第一数据传输接口、所述第二数据传输接口以及所述虚拟网络模块,构建目标数据传输通道,其中,所述目标数据传输通道为所述第一虚拟机与所述第二虚拟机中的应用程序进行数据传输的通道。
可选地,所述构建模块408,还被配置为:
确定所述第二数据传输接口的接口标识信息;
根据所述接口标识信息,将所述第二数据传输接口与所述虚拟网络模块连通;
根据所述第一数据传输接口、与所述第一数据传输接口连通的所述第二数据传输接口、以及与所述第二数据传输接口连通所述虚拟网络模块,构建目标数据传输通道。
可选地,所述构建模块408,还被配置为:
确定所述虚拟网络模块的模块数据传输接口,以及所述模块数据传输接口的模块接口标识信息;
根据所述第二数据传输接口的接口标识信息以及所述模块接口标识信息,将所述第二数据传输接口与所述虚拟网络模块的模块数据传输接口连通。
可选地,所述构建模块408,还被配置为:
确定所述第一数据传输接口以及所述第二数据传输接口对应的初始数据传输通道,其中,所述第一数据传输接口通过所述初始数据传输通道与所述第二数据传输接口连通;
根据所述初始数据传输通道、所述第一数据传输接口、所述第二数据传输接口、以及所述虚拟网络模块,构建目标数据传输通道。
可选地,所述数据通道构建方法,还包括数据接收模块,被配置为:
接收所述第一虚拟机通过所述目标数据传输通道,发送的初始待处理数据;
根据所述虚拟网络模块对所述初始待处理数据进行数据类型转换,获得目标待处理数据;
根据所述应用程序对所述目标待处理数据进行处理。
可选地,所述数据通道构建方法,还包括第一数据发送模块,被配置为:
获取数据处理结果,其中,所述数据处理结果为所述应用程序对所述目标待处理数据进行处理获得的结果;
根据所述虚拟网络模块对所述数据处理结果进行数据类型转换,获得转换后的数据处理结果;
根据所述目标数据传输通道将所述转换后的数据处理结果,发送至所述第一虚拟机。
可选地,所述数据接收模块,还被配置为:
确定所述虚拟网络模块对应的数据校验单元;
基于数据校验单元对所述目标待处理数据进行数据校验,并在数据校验通过的情况下,获得校验后的目标待处理数据。
可选地,所述数据接收模块,还被配置为:
从所述目标待处理数据中,获取所述应用程序的标识信息,并根据所述标识信息确定所述应用程序;
将所述目标待处理数据发送至所述应用程序进行处理。
可选地,所述第一虚拟机中部署有虚拟网络模块,且所述虚拟网络模块与所述目标数据传输通道连通;
相应地,可选地,所述数据接收模块,还被配置为:
接收所述第一虚拟机通过所述虚拟网络模块,以及相连通的所述目标数据传输通道发送的初始待处理数据。
可选地,所述数据通道构建方法,还包括第一数据发送模块,被配置为:
获取所述应用程序生成的初始待发送数据,其中,所述初始待发送数据中包含所述第一虚拟机的标识信息;
根据所述虚拟网络模块对所述初始待发送数据进行数据类型转换,获得目标待发送数据;
根据所述标识信息,通过所述目标数据传输通道将所述目标待发送数据发送至所述第一虚拟机。
本说明书提供的数据通道构建装置,通过在第二虚拟机中生成虚拟网络模块,并基于该第一虚拟机的第一数据传输接口,第二虚拟机与第一虚拟机进行数据传输的第二数据传输接口,以及该虚拟网络模块构建目标数据传输通道,从而使得第二虚拟机中的应用程序能够通过目标数据传输通道与第一虚拟机进行数据传输,避免了应用程序与无法与其他虚拟机进行数据传输的问题。
上述为本实施例的一种数据通道构建装置的示意性方案。需要说明的是,该数据通道构建装置的技术方案与上述的数据通道构建方法的技术方案属于同一构思,数据通道构建装置的技术方案未详细描述的细节内容,均可以参见上述数据通道构建方法的技术方案的描述。
图5示出了根据本说明书一个实施例提供的一种数据传输方法的流程图,具体包括以下步骤。
步骤502:接收所述第一虚拟机通过目标数据传输通道,发送的初始待处理数据。
其中,所述目标数据传输通道根据上述数据通道构建方法构建。
步骤504:根据部署在所述第二虚拟机中的虚拟网络模块,对所述初始待处理数据进行数据类型转换,获得目标待处理数据。
步骤506:根据部署在所述第二虚拟机中的应用程序对所述目标待处理数据进行处理,获得数据处理结果。
步骤508:根据所述虚拟网络模块,对所述数据处理结果进行数据类型转换,获得转换后的数据处理结果。
步骤510:通过所述目标数据传输通道将所述转换后的数据处理结果,发送至所述第一虚拟机。
其中,本实施例提供的数据传输方法中的目标数据传输通道,是基于该第二虚拟机创建的虚拟网络模块、第二虚拟机的第二数据传输接口以及第一虚拟机的第一数据传输接口构成;创建该目标数据传输通道的步骤可以参见上述数据通道构建方法中对应或相应的内容,本实施例对此不做过多赘述。
需要说明的是,本实施例提供的数据传输方法创建虚拟网络模块的步骤,同样可以参见上述数据通道构建方法中对应或相应的内容,本实施例对此不做过多赘述。
具体地,本实施例提供的数据传输方法,在通过可以参见上述数据通道构建方法中创建虚拟网络模块、构建目标数据传输通道的步骤,完成虚拟网络模块的创建、以及完成目标数据传输通道的构建之后,第二虚拟机能够接收第一虚拟机通过目标数据传输通道,发送的初始待处理数据,并根据部署在第二虚拟机中的虚拟网络模块,对初始待处理数据进行数据类型转换,从而获得目标待处理数据;之后第二虚拟机根据部署在的应用程序对目标待处理数据进行处理,获得数据处理结果;再通过虚拟网络模块对数据处理结果进行数据类型转换,获得转换后的数据处理结果;然后通过目标数据传输通道将转换后的数据处理结果,发送至第一虚拟机。从而实现了第二虚拟机中的应用程序能够通过目标数据传输通道与第一虚拟机进行数据传输,避免了应用程序与无法与其他虚拟机进行数据传输的问题。
下面以本说明书提供的数据传输方法在实现EVM网络接口通讯的场景为例,对所述数据传输方法件说明。其中,部署在EVM中的应用程序可以为web程序,该web程序需要基于虚拟网络设备进行数据传输,从而提供web服务。基于此,EVM在基于创建的虚拟网卡构建目标数据传输通道之后,PVM将数据帧类型的调用请求通道输入至其自身部署的vsock端口,通过Hypervisor提供的vsock通道、部署在EVM中的vsock端口,最终传输至EVM的虚拟网卡中。该EVM在接收到PVM传输过来的数据帧类型的调用请求之后,能够通过该虚拟网卡将该数据帧类型的调用请求转换为EVM能够识别并使用的调用请求,并将该调用请求发送至运行在EVM中的web应用,从而通过该web应用对该调用请求进行处理,并获取应用程序针对该调用请求的数据处理结果。
之后,EVM中的web应用对该调用请求进行处理后,能够生成针对该调用请求的处理结果,之后该web应用能够通过网络Socket传输数据的方式,将处理结果提供给第二虚拟机,由第二虚拟机通过虚拟网卡将该处理结果的数据类型转换为数据帧,从而获得数据帧类型的处理结果,并通过目标数据传输通道将数据帧类型的处理结果,发送至PVM。从而实现EVM与PVM之间的数据通信。
本说明书提供的数据传输方法,通过目标数据传输通道使得第一虚拟机的待处理数据能够发送至运行在第二虚拟机中的应用程序进行处理,并能够将应用程序的处理结果通过目标数据传输通道发送绘制第一虚拟机,从而实现了第二虚拟机中的应用程序能够通过目标数据传输通道与第一虚拟机进行数据传输,避免了应用程序与无法与其他虚拟机进行数据传输的问题。
上述为本实施例的一种数据传输方法的示意性方案。需要说明的是,该数据传输方法的技术方案与上述的数据通道构建方法的技术方案属于同一构思,数据传输方法的技术方案未详细描述的细节内容,均可以参见上述数据通道构建方法的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了数据传输装置实施例,图6示出了本说明书一个实施例提供的一种数据传输装置的结构示意图。如图6所示,该装置应用于运行在第一虚拟机中的第二虚拟机,包括:
接收模块602,被配置为接收所述第一虚拟机通过目标数据传输通道,发送的初始待处理数据,其中,所述目标数据传输通道根据所述数据通道构建方法构建;
第一转换模块604,被配置为根据部署在所述第二虚拟机中的虚拟网络模块,对所述初始待处理数据进行数据类型转换,获得目标待处理数据;
处理模块606,被配置为根据部署在所述第二虚拟机中的应用程序对所述目标待处理数据进行处理,获得数据处理结果;
第二转换模块608,被配置为根据所述虚拟网络模块,对所述数据处理结果进行数据类型转换,获得转换后的数据处理结果;
发送模块610,被配置为通过所述目标数据传输通道将所述转换后的数据处理结果,发送至所述第一虚拟机。
本说明书提供的数据传输装置,通过目标数据传输通道使得第一虚拟机的待处理数据能够发送至运行在第二虚拟机中的应用程序进行处理,并能够将应用程序的处理结果通过目标数据传输通道发送绘制第一虚拟机,从而实现了第二虚拟机中的应用程序能够通过目标数据传输通道与第一虚拟机进行数据传输,避免了应用程序与无法与其他虚拟机进行数据传输的问题。
上述为本实施例的一种数据传输装置的示意性方案。需要说明的是,该数据传输装置的技术方案与上述的数据传输方法的技术方案属于同一构思,数据传输装置的技术方案未详细描述的细节内容,均可以参见上述数据传输方法的技术方案的描述。
图7示出了根据本说明书一个实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720用于执行如下计算机可执行指令,该计算机可执行指令被处理器720执行时实现上述数据通道构建方法以及上述数据传输方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据通道构建方法以及上述数据传输方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据通道构建方法以及上述数据传输方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据通道构建方法以及上述数据传输方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据通道构建方法以及上述数据传输方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据通道构建方法以及上述数据传输方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据通道构建方法以及上述数据传输方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据通道构建方法以及上述数据传输方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据通道构建方法以及上述数据传输方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

Claims (13)

1.一种数据通道构建方法,应用于运行在第一虚拟机中的第二虚拟机,包括:
确定所述第一虚拟机的第一数据传输接口,以及与所述第一虚拟机进行数据传输的第二数据传输接口,其中,所述第一数据传输接口与所述第二数据传输接口连通;
根据所述第二数据传输接口的属性信息,确定虚拟网络模块的模块信息;
根据所述虚拟网络模块的模块信息,生成所述虚拟网络模块;
根据所述第一数据传输接口、所述第二数据传输接口以及所述虚拟网络模块,构建目标数据传输通道,其中,所述目标数据传输通道为所述第一虚拟机与所述第二虚拟机中的应用程序进行数据传输的通道;
接收所述第一虚拟机通过所述目标数据传输通道,发送的初始待处理数据;
根据所述虚拟网络模块对所述初始待处理数据进行数据类型转换,获得目标待处理数据;
根据所述应用程序对所述目标待处理数据进行处理。
2.根据权利要求1所述的数据通道构建方法,所述根据所述第一数据传输接口、所述第二数据传输接口以及所述虚拟网络模块,构建目标数据传输通道,包括:
确定所述第二数据传输接口的接口标识信息;
根据所述接口标识信息,将所述第二数据传输接口与所述虚拟网络模块连通;
根据所述第一数据传输接口、与所述第一数据传输接口连通的所述第二数据传输接口、以及与所述第二数据传输接口连通所述虚拟网络模块,构建目标数据传输通道。
3.根据权利要求2所述的数据通道构建方法,所述根据所述接口标识信息,将所述第二数据传输接口与所述虚拟网络模块连通,包括:
确定所述虚拟网络模块的模块数据传输接口,以及所述模块数据传输接口的模块接口标识信息;
根据所述第二数据传输接口的接口标识信息以及所述模块接口标识信息,将所述第二数据传输接口与所述虚拟网络模块的模块数据传输接口连通。
4.根据权利要求1所述的数据通道构建方法,所述根据所述第一数据传输接口、与所述第一数据传输接口连通的所述第二数据传输接口、以及与所述第二数据传输接口连通所述虚拟网络模块,构建目标数据传输通道,包括;
确定所述第一数据传输接口以及所述第二数据传输接口对应的初始数据传输通道,其中,所述第一数据传输接口通过所述初始数据传输通道与所述第二数据传输接口连通;
根据所述初始数据传输通道、所述第一数据传输接口、所述第二数据传输接口、以及所述虚拟网络模块,构建目标数据传输通道。
5.根据权利要求1所述的数据通道构建方法,所述根据所述应用程序对所述目标待处理数据进行处理之后,还包括:
获取数据处理结果,其中,所述数据处理结果为所述应用程序对所述目标待处理数据进行处理获得的结果;
根据所述虚拟网络模块对所述数据处理结果进行数据类型转换,获得转换后的数据处理结果;
根据所述目标数据传输通道将所述转换后的数据处理结果,发送至所述第一虚拟机。
6.根据权利要求1所述的数据通道构建方法,所述根据所述应用程序对所述目标待处理数据进行处理,获得数据处理结果之前,还包括:
确定所述虚拟网络模块对应的数据校验单元;
基于数据校验单元对所述目标待处理数据进行数据校验,并在数据校验通过的情况下,获得校验后的目标待处理数据。
7.根据权利要求1所述的数据通道构建方法,所述根据所述应用程序对所述目标待处理数据进行处理,包括:
从所述目标待处理数据中,获取所述应用程序的标识信息,并根据所述标识信息确定所述应用程序;
将所述目标待处理数据发送至所述应用程序进行处理。
8.根据权利要求1所述的数据通道构建方法,所述第一虚拟机中部署有虚拟网络模块,且所述虚拟网络模块与所述目标数据传输通道连通;
相应地,所述接收所述第一虚拟机通过所述目标数据传输通道,发送的初始待处理数据,包括:
接收所述第一虚拟机通过所述虚拟网络模块,以及相连通的所述目标数据传输通道发送的初始待处理数据。
9.根据权利要求1至4任意一项所述的数据通道构建方法,所述根据所述第一数据传输接口、所述第二数据传输接口以及所述虚拟网络模块,构建目标数据传输通道之后,还包括:
获取所述应用程序生成的初始待发送数据,其中,所述初始待发送数据中包含所述第一虚拟机的标识信息;
根据所述虚拟网络模块对所述初始待发送数据进行数据类型转换,获得目标待发送数据;
根据所述标识信息,通过所述目标数据传输通道将所述目标待发送数据发送至所述第一虚拟机。
10.一种数据传输方法,应用于运行在第一虚拟机中的第二虚拟机,包括:
接收所述第一虚拟机通过目标数据传输通道,发送的初始待处理数据,其中,所述目标数据传输通道根据权利要求1至9任意一项所述的数据通道构建方法构建;
根据部署在所述第二虚拟机中的虚拟网络模块,对所述初始待处理数据进行数据类型转换,获得目标待处理数据;
根据部署在所述第二虚拟机中的应用程序对所述目标待处理数据进行处理,获得数据处理结果;
根据所述虚拟网络模块,对所述数据处理结果进行数据类型转换,获得转换后的数据处理结果;
通过所述目标数据传输通道将所述转换后的数据处理结果,发送至所述第一虚拟机。
11.一种数据通道构建装置,应用于运行在第一虚拟机中的第二虚拟机,包括:
第一确定模块,被配置为确定所述第一虚拟机的第一数据传输接口,以及与所述第一虚拟机进行数据传输的第二数据传输接口,其中,所述第一数据传输接口与所述第二数据传输接口连通;
第二确定模块,被配置为根据所述第二数据传输接口的属性信息,确定虚拟网络模块的模块信息;
生成模块,被配置为根据所述虚拟网络模块的模块信息,生成所述虚拟网络模块;
构建模块,被配置为根据所述第一数据传输接口、所述第二数据传输接口以及所述虚拟网络模块,构建目标数据传输通道,其中,所述目标数据传输通道为所述第一虚拟机与所述第二虚拟机中的应用程序进行数据传输的通道;
数据接收模块,被配置为接收所述第一虚拟机通过所述目标数据传输通道,发送的初始待处理数据,根据所述虚拟网络模块对所述初始待处理数据进行数据类型转换,获得目标待处理数据,根据所述应用程序对所述目标待处理数据进行处理。
12.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至9任意一项所述数据通道构建方法,以及权利要求10所述的数据传输方法的步骤。
13.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至9任意一项所述数据通道构建方法,以及权利要求10所述的数据传输方法的步骤。
CN202210296180.7A 2022-03-24 2022-03-24 数据通道构建方法及装置 Active CN114398156B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210296180.7A CN114398156B (zh) 2022-03-24 2022-03-24 数据通道构建方法及装置
PCT/CN2023/083386 WO2023179715A1 (zh) 2022-03-24 2023-03-23 数据通道构建方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210296180.7A CN114398156B (zh) 2022-03-24 2022-03-24 数据通道构建方法及装置

Publications (2)

Publication Number Publication Date
CN114398156A CN114398156A (zh) 2022-04-26
CN114398156B true CN114398156B (zh) 2022-09-09

Family

ID=81235128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210296180.7A Active CN114398156B (zh) 2022-03-24 2022-03-24 数据通道构建方法及装置

Country Status (2)

Country Link
CN (1) CN114398156B (zh)
WO (1) WO2023179715A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114398156B (zh) * 2022-03-24 2022-09-09 阿里云计算有限公司 数据通道构建方法及装置
CN115134349B (zh) * 2022-06-06 2024-02-23 蚂蚁区块链科技(上海)有限公司 一种执行传输任务的方法、装置、介质及设备
CN115361032B (zh) * 2022-08-17 2023-04-18 佛山市朗盛通讯设备有限公司 一种用于5g通信的天线单元
CN117640653A (zh) * 2023-11-30 2024-03-01 中科驭数(北京)科技有限公司 数据传输方法、装置、专用数据处理器及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291428A (zh) * 2010-06-21 2011-12-21 英特尔公司 用于在多个虚拟机之间共享网络接口的方法
CN103533088A (zh) * 2013-11-01 2014-01-22 中国联合网络通信集团有限公司 虚拟机之间的通信方法、设备和系统
EP2815349A1 (en) * 2013-03-06 2014-12-24 Intel Corporation Roots-of-trust for measurement of virtual machines
CN105389513A (zh) * 2015-11-26 2016-03-09 华为技术有限公司 一种虚拟可信平台模块vTPM的可信执行方法和装置
CN105956465A (zh) * 2016-05-04 2016-09-21 浪潮电子信息产业股份有限公司 一种基于vtpm构建虚拟可信平台的方法
CN109993003A (zh) * 2019-03-12 2019-07-09 广州大学 一种基于sgx的软件流安全验证方法及装置
CN112637088A (zh) * 2019-09-24 2021-04-09 阿里巴巴集团控股有限公司 网络系统、网络处理方法和装置、电子设备以及计算机可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8918868B2 (en) * 2013-01-15 2014-12-23 Netronome Systems, Incorporated Compartmentalization of the user network interface to a device
US9602334B2 (en) * 2013-01-22 2017-03-21 International Business Machines Corporation Independent network interfaces for virtual network environments
US10728145B2 (en) * 2018-08-30 2020-07-28 Juniper Networks, Inc. Multiple virtual network interface support for virtual execution elements
US11954198B2 (en) * 2019-10-31 2024-04-09 Vmware, Inc. Unifying hardware trusted execution environment technologies using virtual secure enclave device
CN114398156B (zh) * 2022-03-24 2022-09-09 阿里云计算有限公司 数据通道构建方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291428A (zh) * 2010-06-21 2011-12-21 英特尔公司 用于在多个虚拟机之间共享网络接口的方法
EP2815349A1 (en) * 2013-03-06 2014-12-24 Intel Corporation Roots-of-trust for measurement of virtual machines
CN103533088A (zh) * 2013-11-01 2014-01-22 中国联合网络通信集团有限公司 虚拟机之间的通信方法、设备和系统
CN105389513A (zh) * 2015-11-26 2016-03-09 华为技术有限公司 一种虚拟可信平台模块vTPM的可信执行方法和装置
CN105956465A (zh) * 2016-05-04 2016-09-21 浪潮电子信息产业股份有限公司 一种基于vtpm构建虚拟可信平台的方法
CN109993003A (zh) * 2019-03-12 2019-07-09 广州大学 一种基于sgx的软件流安全验证方法及装置
CN112637088A (zh) * 2019-09-24 2021-04-09 阿里巴巴集团控股有限公司 网络系统、网络处理方法和装置、电子设备以及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LightBox Full-stack Protected Stateful Middlebox at Lightning Speed;Huayi Duan,Cong Wang,Xingliang Yuan,Yajin Zhou,Qian Wang,Kui Ren;《CCS "19: Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security》;20191106;全文 *

Also Published As

Publication number Publication date
CN114398156A (zh) 2022-04-26
WO2023179715A1 (zh) 2023-09-28

Similar Documents

Publication Publication Date Title
CN114398156B (zh) 数据通道构建方法及装置
US10075529B2 (en) Method and apparatus for distributing sensor data
EP1932320B1 (en) Method, apparatus and system for maintaining mobility resistant ip tunnels using a mobile router
US10855655B2 (en) System and method for providing secure and redundant communications and processing for a collection of internet of things (IOT) devices
EP4319097A1 (en) Communication method, apparatus, computer-readable medium electronic device, and program product
CN114500623B (zh) 网络靶场互联互通方法、装置、设备及可读存储介质
CN204350029U (zh) 数据交互系统
US20160057105A1 (en) Relay device, method for selecting communication method, and program
WO2014079335A1 (zh) Ip报文处理方法、装置及网络系统
CN106776287A (zh) Servlet接口测试方法及测试客户端
CN112637364A (zh) 建立p2p连接的方法、客户端及系统
CN113691589B (zh) 报文传输方法、装置及系统
CN113301106A (zh) 运维处理系统、方法以及装置
CN114518969A (zh) 进程间通信方法、系统、存储介质和计算机设备
US20220217126A1 (en) Apparatus and method for secure router device
CN116647425A (zh) 一种OVN架构的IPSec-VPN实现方法、装置、电子设备和存储介质
CN113992427B (zh) 基于相邻节点的数据加密发送方法及装置
CN115022178B (zh) 网卡切换方法、装置、电子设备及可读存储介质
CN113542431B (zh) 信息处理方法、装置、电子设备及存储介质
JP7476974B2 (ja) 転送装置、転送方法および転送プログラム
CN114035893A (zh) 虚拟机管理方法以及系统
EP3176986A1 (en) Method, device and system for remote desktop protocol gateway to conduct routing and switching
CN105516121A (zh) 无线局域网中ac与ap通信的方法及系统
JP2017017587A (ja) ルータ装置、接続確立方法、通信システム、通信端末
EP4418630A1 (en) Public cloud system and related method thereof

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant