一种在虚拟域中通信的方法、设备和系统的制作方法

文档序号:7790484阅读:117来源:国知局
一种在虚拟域中通信的方法、设备和系统的制作方法
【专利摘要】本发明实施例公开了一种在虚拟域中通信的方法、设备和系统,能够提高高速外围组件互连PCIE网络中通信的安全性,其中方法包括:PCIE交换机接收PCIE报文,所述PCIE报文携带了虚拟域标识;获取所述虚拟域标识对应的目的PCIE端点设备;向所述目的PCIE端点设备发送所述PCIE报文。
【专利说明】一种在虚拟域中通信的方法、设备和系统
【技术领域】
[0001]本发明实施例涉及计算机领域,尤其涉及在虚拟域(Virtual Domain,简称VD)中通信的方法、设备和系统。
【背景技术】
[0002]随着高速外围组件互连(PeripheralComponent Interconnect Express,简称PCIE)总线技术的发展,PCIE总线不再仅仅是主机和外围设备之间的数据传输总线,进一步拓展为两台主机之间的数据通信总线。目前主机间主流的通信方式是依赖传输控制协议(Transmission Control Protocol,简称 TCP) / 互联网络协议(Internet Protocol,简称IP)堆栈。为了更好的兼容现有基于TCP/IP的应用程序,业界提出了 TCP/IP协议运行在PCIE总线(TCP/IP over PCIE,简称IPoPCIE)这个概念,即TCP/IP协议运行在PCIE网络上,这里的PCIE网络是指设备之间采用PCIE总线进行通信连接的网络。在主机上虚拟出一个 PCIE 虚拟网络接口卡(Virtual Network Interface Card,简称 vNIC), PCIE vNIC 对TCP/IP堆栈提供数据收发的链路层接口。对于上层应用程序,PCIE vNIC和以太网的网络设备没有差别,应用程序向下的接口还是TCP/IP堆栈,不用关心链路层是以太网或PCIE链路,可以透明的使用PCIE链路进行通信。
[0003]但IPoPCIE在提高性能的同时,也面临着严重的问题:PCIE硬件中并没有安全隔离功能,网络安全存在严重的问题:如由于网络病毒,网络环路,黑客软件引发的网络风暴导致整个网络瘫痪;不同部门的人相互访问信息,导致信息机密泄露等问题。

【发明内容】

[0004]有鉴于此,本发明实施例提供了一种在虚拟域中通信的方法、设备和系统,能够提高PCIE网络中通信的安全性。
[0005]第一方面,本发明实施例提供了一种在虚拟域中通信的方法,包括:
[0006]高速外围组件互连PCIE交换机接收PCIE报文,所述PCIE报文携带了虚拟域标识;
[0007]获取所述虚拟域标识对应的目的PCIE端点设备;
[0008]向所述目的PCIE端点设备发送所述PCIE报文。
[0009]在第一方面的第一种可能的实现方式中:获取所述虚拟域标识对应的目的PCIE端点设备具体包括:
[0010]获取所述虚拟域标识对应的端口信息,根据所述端口信息确定所述目的PCIE端点设备。
[0011]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述PCIE交换机上预置虚拟域标识与端口信息的对应关系;
[0012]获取所述虚拟域标识对应的端口信息具体包括:根据所述虚拟域标识,查找所述虚拟域标识与端口信息的对应关系,获取所述虚拟域标识对应的端口信息。[0013]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述虚拟域标识与端口信息的对应关系来自于虚拟域管理服务器,并由所述虚拟域管理服务器建立和维护。
[0014]在第一方面的第四种可能的实现方式中:获取所述虚拟域标识对应的目的PCIE端点设备具体包括::
[0015]根据所述虚拟域标识,查找虚拟域标识与PCIE端点设备信息的对应关系,获取所述虚拟域标识对应的目的PCIE端点设备。
[0016]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述PCIE端点设备信息包括PCIE端点设备的节点号,所述PCIE端点设备的节点号为所述虚拟域标识对应的物理的PCIE端点设备的节点号或所述虚拟域标识对应的虚拟机所在的物理的PCIE端点设备的节点号。
[0017]第二方面,本发明实施例提供了一种在虚拟域中通信的方法,包括:
[0018]高速外围组件互连PCIE端点设备在PCIE报文中增加虚拟域标识;
[0019]将携带了所述虚拟域标识的PCIE报文发送给PCIE交换机。
[0020]在第二方面的第一种可能的实现方式中,在所述PCIE报文中增加一种消息类,通过所述消息类来携带所述虚拟域标识。
[0021]在第二方面的第二种可能的实现方式中,在所述PCIE报文中增加一种路由方式,通过所述路由方式来携带所述虚拟域标识。
[0022]第三方面,本发明实施例提供了一种高速外围组件互连PCIE交换机,包括:
[0023]接收单元,用于接收PCIE报文,所述PCIE报文携带了虚拟域标识;
[0024]获取单元,用于获取所述虚拟域标识对应的目的PCIE端点设备;
[0025]发送单元,用于向所述目的PCIE端点设备发送所述PCIE报文。
[0026]在第三方面的第一种可能的实现方式中,所述获取单元具体用于获取所述虚拟域标识对应的端口信息,根据所述端口信息确定所述目的PCIE端点设备。
[0027]结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括存储单元,所述存储单元用于保存虚拟域标识与端口信息的对应关系;
[0028]所述获取单元用于获取所述虚拟域标识对应的端口信息具体包括:
[0029]根据所述虚拟域标识,查找所述虚拟域标识与端口信息的对应关系,获取所述虚拟域标识对应的端口信息。
[0030]在第三方面的第三种可能的实现方式中,所述获取单元具体用于:根据所述虚拟域标识,查找虚拟域标识与PCIE端点设备信息的对应关系,获取所述虚拟域标识对应的目的PCIE端点设备。
[0031]结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述PCIE端点设备信息包括PCIE端点设备的节点号,所述PCIE端点设备的节点号为所述虚拟域标识对应的物理的PCIE端点设备的节点号或所述虚拟域标识对应的虚拟机所在的物理的PCIE端点设备的节点号。
[0032]第四方面,本发明实施例提供了一种高速外围组件互连PCIE端点设备,包括:
[0033]处理单元,用于在PCIE报文中增加虚拟域标识;
[0034]发送单元,用于将携带了所述虚拟域标识的PCIE报文发送给PCIE交换机。[0035]在第四方面的第一种可能的实现方式中,所述处理单元具体用于在所述PCIE报文中增加一种消息类,通过所述消息类来携带所述虚拟域标识。
[0036]在第四方面的第二种可能的实现方式中,所述处理单元具体用于在所述PCIE报文中增加一种路由方式,通过所述路由方式来携带所述虚拟域标识。
[0037]第五方面,本发明实施例提供了一种控制器,包括:
[0038]处理器、存储器、系统总线和通信接口,所述处理器、所述存储器和所述通信接口之间通过所述系统总线连接并完成相互间的通信;
[0039]所述通信接口,用于与高速外围组件互连PCIE端点设备通信;
[0040]所述存储器,用于存储计算机执行指令;
[0041]所述处理器,用于运行所述计算机执行指令,执行第一方面中任一所述的方法。
[0042]第六方面,本发明实施例提供了一种计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行第一方面中任一所述的方法。
[0043]第七方面,本发明实施例提供了一种PCIE系统,包括第三方面任一所述的PCIE交换机和第四方面任一所述的PCIE端点设备。
[0044]通过上述方案,本发明实施例提供的在虚拟域中通信的方法、设备和系统,PCIE交换机接收携带虚拟域标识的PCIE报文,仅向所述虚拟域标识对应的目的PCIE端点设备发送所述PCIE报文,实现了只允许在同一个虚拟域中的PCIE端点设备间进行数据传输,从而能够提高PCIE网络中通信的安全性,避免了网络风暴。
【专利附图】

【附图说明】
[0045]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0046]图1为本发明实施例1的PCIE系统示意图;
[0047]图2为本发明实施例1中VD划分的示意图;
[0048]图3为本发明实施例2提供的在虚拟域中通信的方法流程图;
[0049]图4为PCIE报文扩展的一种示意图;
[0050]图5为PCIE报文扩展的又一种示意图;
[0051]图6为本发明实施例提供的PCIE报文传递示意图;
[0052]图7为本发明实施例3提供的PCIE端点设备的结构图;
[0053]图8为本发明实施例4提供的PCIE交换机的结构图。
[0054]图9为本发明实施例提供的控制器的结构示意图。
【具体实施方式】
[0055]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0056]本发明实施例的系统架构
[0057]图1为本发明实施例1提供的高速外围组件互连(Peripheral ComponentInterconnect Express,简称PCIE)系统图,如图1所示,包括至少2台PCIE端点设备10、一台PCIE交换机20 (PCIE Switch)以及一台虚拟域管理服务器30 ;PCIE交换机20与所有PCIE端点设备10相连,实现PCIE端点设备10之间的数据转发。虚拟域管理服务器30与PCIE交换机20相连,用于管理维护虚拟域标识与端口信息的对应关系,或者管理维护虚拟域标识与PCIE端点设备信息的对应关系。
[0058]本发明实施例中的虚拟域管理服务器30可以是系统中的一台普通PCIE端点设备,也可以是一台专用PCIE端点设备,本发明不作具体限定。
[0059]本发明实施例中的PCIE端点设备10包括但不限于根复合体(Root complex,简称为RC)、端点(Endpoint,简称为EP)、主机(HOST)。根复合体由中央处理器(centralprocessing unit,简称为CPU)组成。端点由接口网卡,串口卡、存储卡、或显卡组成。主机具体可以为普通的计算机、移动终端、工作站或服务器、专用服务器等。
[0060]当PCIE端点设备10为主机时,各主机上运行有操作系统(OperatingSystem,简称OS),在虚拟化的场景下可以运行至少一个虚拟机(Virtual Machine,简称VM)。
[0061 ] 将同一物理网中的PCIE端点设备划分出多个逻辑上分隔的网络,这些分隔的逻辑网络就称为虚拟域(Virtual Domain,简称VD)。虚拟域是为了解决网络的安全性提出来的,类似于以太网中的虚拟局域网(Virtual Local Area Network,简称VLAN)。以图2为例说明,EPO、EP1、EP2、H0ST3 和 H0ST4 组成了 VDO,EP3、EP4、EP5、H0ST0、H0ST1 和 H0ST2 组成了 VDl,
[0062]本发明实施例对PCIE协议进行扩展,通过虚拟域标识(VD ID)使同一个VD内部的广播和单播数据流不会转发到其他VD中,只有同一个VD中的成员才能收到。下面详细介绍。
[0063]虚拟域中通信的方法
[0064]如图3所示,本发明实施例2提供了一种在虚拟域中通信的方法,该方法可以在图1和图2所示的PCIE系统中实现,但并不限于图1和图2所示的系统的结构。所述方法包括:
[0065]S201、PCIE端点设备在高速外围组件互连PCIE报文中增加虚拟域标识。
[0066]具体的,若PCIE端点设备上运行的上层应用有数据包需要在虚拟域(VD)中进行发送,上层应用将需要在VD中发送的数据包添加到TCP/IP协议栈,即,上层应用调用操作系统的内核态和用户态接口,将需要在VD中发送的TCP/IP数据包添加到TCP/IP协议栈。则PCIE端点设备中操作系统的VLAN模块从TCP/IP协议栈中获取需要在VD中发送的TCP/IP数据包,在TCP/IP数据包上添加VLAN ID。PCIE端点设备中操作系统的VLAN模块将该添加了 VLAN ID的TCP/IP数据包传入PCIE vNIC驱动模块。然后PCIE端点设备中操作系统的PCIE vNIC驱动模块获取TCP/IP数据包,PCIE vNIC驱动模块是操作系统的TCP/IP堆栈和PCIE网络链路层的接口。具体的,为了描述方便,获取该需要在VD中发送的TCP/IP数据包的PCIE端点设备也可以称为源PCIE端点设备。
[0067]PCIE vNIC驱动模块将TCP/IP数据包封装到PCIE报文,并提取TCP/IP的VLANID,然后将VLAN ID映射为PCIE的VD ID。该VD ID是该TCP/IP数据包需要发送的虚拟域的ID。
[0068]优选地,PCIE vNIC驱动模块维护了一张表:TCP/IP的VLAN与PCIE的VD的对应关系。
[0069]本发明实施例,以TCP/IP协议运行在PCIE总线(TCP/IP over PCIE,简称IPoPCIE)为例说明,但是并不局限于IPoPCIE,其他协议运行在PCIE总线上也可以。
[0070]具体地,需要对PCIE协议进行扩展,来携带所述VD ID。
[0071]一种方式,参照图4所示,可以在PCIE报文中增加一种消息类,比如可以增加Message Code,来携带所述 VD ID。
[0072]另一种方式,参照图5所示,可以在PCIE报文中增加一种路由方式,通过所述路由方式来携带所述VD ID。比如,可以在Type[2:0]中增加。附图5中VD域为64bit,可支持64个VD ID,每I位表示I个VD ID,当然并不限于这种携带方式,也可以通过2位或者更多位表示I个VD ID。
[0073]PCIE报文中其他字段的含义,可以参照PCIE协议的描述。
[0074]为了能够兼容早期的外围组件互连(PeripheralComponent Interconnect, PCI)设备,比如为了能够兼容legacy设备,本发明实施例可以只对PCIE的扩展空间进行扩展,不修改legacy设备使用的配置空间字段。具体地,可以通过扩展空间的capability ID来表示所述VD ID。相应地,可以通过查找扩展空间找到哪些设备支持VD功能。
[0075]S202、PCIE端点设备将携带了所述虚拟域标识的PCIE报文发送给PCIE交换机。
[0076]S203、PCIE交换机接收所述PCIE报文。
[0077]该PCIE报文携带了虚拟域标识。
[0078]S204、PCIE交换机获取所述虚拟域标识对应的目的PCIE端点设备。
[0079]—种实现方式,在PCIE交换机上预置虚拟域标识与端口(port)信息的对应关系,根据所述虚拟域标识,查找所述虚拟域标识与端口信息的对应关系,获取所述虚拟域标识对应的端口信息,然后再根据所述端口信息确定所述目的PCIE端点设备。端口信息,用来对端点进行区分,表示是哪个端点。
[0080]当是广播或组播(Multicast,简称为MC)报文时,该目的PCIE端点设备可以通过MC_Receive 来表不。
[0081]举例说明如下:
[0082]假设PCIe Switch 中配置的 portO 对应的 MC_Receive=00011110b,即支持的VD 的 ID 为 I, 2, 3, 4 ;portl 对应的 MC_Receive=00001110b,即支持的 VD 的 ID 为 1,2,3 ;port2 对应的 MC_Receive=00010100b,即支持的 VD 的 ID 为 2,4 ;port3 对应的 MC_Receive=00010000b,即支持的VD的ID为4。那么虚拟域标识与端口信息的对应关系,如表I所示:
[0083]表1
[0084]
【权利要求】
1.一种在虚拟域中通信的方法,其特征在于,包括: 高速外围组件互连PCIE交换机接收PCIE报文,所述PCIE报文携带了虚拟域标识; 获取所述虚拟域标识对应的目的PCIE端点设备; 向所述目的PCIE端点设备发送所述PCIE报文。
2.根据权利要求1所述的方法,其特征在于,获取所述虚拟域标识对应的目的PCIE端点设备具体包括: 获取所述虚拟域标识对应的端口信息,根据所述端口信息确定所述目的PCIE端点设备。
3.根据权利要求2所述的方法,其特征在于,在所述PCIE交换机上预置虚拟域标识与端口彳目息的对应关系; 获取所述虚拟域标识对应的端口信息具体包括:根据所述虚拟域标识,查找所述虚拟域标识与端口信息的对应关系,获取所述虚拟域标识对应的端口信息。
4.根据权利要求3所述的方法,其特征在于,所述虚拟域标识与端口信息的对应关系来自于虚拟域管理服务器,并由所述虚拟域管理服务器建立和维护。
5.根据权利要求1所述的方法,其特征在于,获取所述虚拟域标识对应的目的PCIE端点设备具体包括:: 根据所述虚拟域标识,查找虚拟域标识与PCIE端点设备信息的对应关系,获取所述虚拟域标识对应的目的PCIE端点设备。
6.根据权利要求5所述的方法,其特征在于,所述PCIE端点设备信息包括PCIE端点设备的节点号,所述PCIE端点设备的节点号为所述虚拟域标识对应的物理的PCIE端点设备的节点号或所述虚拟域标识对应的虚拟机所在的物理的PCIE端点设备的节点号。
7.—种在虚拟域中通信的方法,其特征在于,包括: 高速外围组件互连PCIE端点设备在PCIE报文中增加虚拟域标识; 将携带了所述虚拟域标识的PCIE报文发送给PCIE交换机。
8.根据权利要求7所述的方法,其特征在于,在所述PCIE报文中增加一种消息类,通过所述消息类来携带所述虚拟域标识。
9.根据权利要求7所述的方法,其特征在于,在所述PCIE报文中增加一种路由方式,通过所述路由方式来携带所述虚拟域标识。
10.一种高速外围组件互连PCIE交换机,其特征在于,包括: 接收单元,用于接收PCIE报文,所述PCIE报文携带了虚拟域标识; 获取单元,用于获取所述虚拟域标识对应的目的PCIE端点设备; 发送单元,用于向所述目的PCIE端点设备发送所述PCIE报文。
11.根据权利要求10所述的交换机,其特征在于,所述获取单元具体用于获取所述虚拟域标识对应的端口信息,根据所述端口信息确定所述目的PCIE端点设备。
12.根据权利要求 11所述的交换机,其特征在于,还包括存储单元,所述存储单元用于保存虚拟域标识与端口信息的对应关系; 所述获取单元用于获取所述虚拟域标识对应的端口信息具体包括: 根据所述虚拟域标识,查找所述虚拟域标识与端口信息的对应关系,获取所述虚拟域标识对应的端口信息。
13.根据权利要求10所述的交换机,其特征在于,所述获取单元具体用于:根据所述虚拟域标识,查找虚拟域标识与PCIE端点设备信息的对应关系,获取所述虚拟域标识对应的目的PCIE端点设备。
14.根据权利要求13所述的交换机,其特征在于,所述PCIE端点设备信息包括PCIE端点设备的节点号,所述PCIE端点设备的节点号为所述虚拟域标识对应的物理的PCIE端点设备的节点号或所述虚拟域标识对应的虚拟机所在的物理的PCIE端点设备的节点号。
15.—种高速外围组件互连PCIE端点设备,其特征在于,包括: 处理单元,用于在PCIE报文中增加虚拟域标识; 发送单元,用于将携带了所述虚拟域标识的PCIE报文发送给PCIE交换机。
16.根据权利要求15所述的设备,其特征在于,所述处理单元具体用于在所述PCIE报文中增加一种消息类,通过所述消息类来携带所述虚拟域标识。
17.根据权利要求15所述的设备,其特征在于,所述处理单元具体用于在所述PCIE报文中增加一种路由方式,通过所述路由方式来携带所述虚拟域标识。
18.—种控制器,其特征在于,包括: 处理器、存储器、系统总线和通信接口,所述处理器、所述存储器和所述通信接口之间通过所述系统总线连接并完成相互间的通信; 所述通信接口,用于与高速外围组件互连PCIE端点设备通信; 所述存储器,用于存储计算机执行指令; 所述处理器,用于运行所述计算机执行指令,执行如权利要求1-6所述的方法。
19.一种计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行如权利要求1-6任一所述的方法。
20.—种高速外围组件互连PCIE系统,包括如权利要求10-14所述的PCIE交换机和如权利要求15-17所述的PCIE端点设备。
【文档编号】H04L12/705GK103931144SQ201380001344
【公开日】2014年7月16日 申请日期:2013年7月8日 优先权日:2013年7月8日
【发明者】王工艺, 常胜, 李涛 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1