CN111865801A - 一种基于Virtio端口传输数据的方法和系统 - Google Patents

一种基于Virtio端口传输数据的方法和系统 Download PDF

Info

Publication number
CN111865801A
CN111865801A CN201910334745.4A CN201910334745A CN111865801A CN 111865801 A CN111865801 A CN 111865801A CN 201910334745 A CN201910334745 A CN 201910334745A CN 111865801 A CN111865801 A CN 111865801A
Authority
CN
China
Prior art keywords
data content
port
vswitch
network card
virtual network
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.)
Granted
Application number
CN201910334745.4A
Other languages
English (en)
Other versions
CN111865801B (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.)
Xiamen Wangsu Co Ltd
Original Assignee
Xiamen Wangsu Co 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 Xiamen Wangsu Co Ltd filed Critical Xiamen Wangsu Co Ltd
Priority to CN201910334745.4A priority Critical patent/CN111865801B/zh
Priority to PCT/CN2019/090329 priority patent/WO2020215455A1/zh
Priority to EP19872251.4A priority patent/EP3754491A4/en
Priority to US16/858,079 priority patent/US11206214B2/en
Publication of CN111865801A publication Critical patent/CN111865801A/zh
Application granted granted Critical
Publication of CN111865801B publication Critical patent/CN111865801B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于Virtio端口传输数据的方法和系统,属于虚拟化技术领域。所述方法包括:当Vswitch接收到物理网卡发送的第一数据内容时,所述Vswitch确定发送所述第一数据内容的第一Vswitch逻辑端口,并在所述第一数据内容中添加所述第一Vswitch逻辑端口的端口标识;所述Vswitch通过所述第一Vswitch逻辑端口,以及所述Vswitch与Vrouter之间共用的Virtio端口,向所述Vrouter发送所述第一数据内容;所述Vrouter通过与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口接收所述第一数据内容,并将其发送至与所述第一Vrouter逻辑端口对应的第一虚拟网卡。采用本发明,可以提高数据传输性能。

Description

一种基于Virtio端口传输数据的方法和系统
技术领域
本发明涉及虚拟化技术领域,特别涉及一种基于Virtio端口传输数据的方法和系统。
背景技术
虚拟化网络包括了Vrouter(虚拟路由器)和Vswitch(虚拟交换机)等部件。Virtio技术是一种半虚拟化的设备抽象接口规范,Vrouter和Vswitch之间通常利用Virtio端口来实现数据的传输,其中,位于Vswitch一侧的Virtio端口可称为Virtio_host端口,位于Vrouter一侧的Virtio端口可称为Virtio_user端口。
Vswitch可以接入有多个Vrouter,每个Vrouter可以为其管理的租户网络的虚拟网卡创建Virtio_user端口,如果一个租户网络配置有多个虚拟网卡,则Vrouter需要为该租户网络的每个虚拟网卡创建一个Virtio_user端口,相应的,Vswitch也需要创建一个对应的Virtio_host端口。以虚拟网卡接收数据为例,当物理网卡接收到发送至某虚拟网卡(可称为目标虚拟网卡)的数据内容时,物理网卡可以将该数据内容发送给Vswitch。之后,Vswitch可以先识别数据内容的Virtio_host端口,然后通过该Virtio_host端口向其对应的Virtio_user端口发送该数据内容。这样,上述Virtio_user端口所在的Vrouter可以接收到该数据内容,然后将该数据内容发送至目标虚拟网卡。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
每个Virtio端口均需要占用一定的内存资源,当创建的Virtio端口较多时,将占用大量的内存资源,进而会对数据的传输造成较大影响,导致传输性能较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种基于Virtio端口传输数据的方法和系统。所述技术方案如下:
第一方面,提供了一种基于Virtio端口传输数据的方法,所述方法包括:
当Vswitch接收到物理网卡发送的第一数据内容时,所述Vswitch确定发送所述第一数据内容的第一Vswitch逻辑端口,并在所述第一数据内容中添加所述第一Vswitch逻辑端口的端口标识;
所述Vswitch通过所述第一Vswitch逻辑端口,以及所述Vswitch与Vrouter之间共用的Virtio端口,向所述Vrouter发送所述第一数据内容;
所述Vrouter通过与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口接收所述第一数据内容,并将其发送至与所述第一Vrouter逻辑端口对应的第一虚拟网卡;
协议栈接收由所述第一虚拟网卡解封装处理的所述第一数据内容,将所述第一数据内容转换为第二数据内容,并将所述第二数据内容发送至第二虚拟网卡;
所述Vrouter通过与所述第二虚拟网卡对应的第二Vrouter逻辑端口,接收由所述第二虚拟网卡封装处理的第二数据内容,并在所述第二数据内容中添加所述第二Vrouter逻辑端口的端口标识;
所述Vrouter通过所述第二Vrouter逻辑端口以及所述Virtio端口,向所述Vswitch发送所述第二数据内容;
所述Vswitch通过与所述第二Vrouter逻辑端口的端口标识唯一对应的第二Vswitch逻辑端口,接收所述第二数据内容并将其发送至所述物理网卡。
进一步的,所述Vswitch确定发送所述第一数据内容的第一Vswitch逻辑端口,包括:
所述Vswitch基于所述第一数据内容中携带的MAC地址,将端口地址表中与所述第一数据内容携带的MAC地址对应的Vswitch逻辑端口,确定为发送所述第一数据内容的第一Vswitch逻辑端口。
进一步的,所述在接收到物理网卡发送的第一数据内容之前,还包括:
预先按照所述Vrouter管理的虚拟网卡的数目,在所述Vswitch和所述Vrouter中分别配置所述数目的所述Vswitch逻辑端口和所述Vrouter逻辑端口,其中,所述Vswitch逻辑端口和所述Vrouter逻辑端口的端口标识唯一对应;
生成记录有所述Vswitch逻辑端口、所述Vrouter逻辑端口和虚拟网卡对应关系的映射表。
进一步的,所述在所述第一数据内容中添加所述第一Vswitch逻辑端口的端口标识,包括:
所述Vswitch将所述第一Vswitch逻辑端口的端口标识,记录在所述第一数据内容的数据结构mbuf的预设字段中。
进一步的,所述Vrouter通过与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口,接收所述第一数据内容并将其发送至与所述第一Vrouter逻辑端口对应的所述第一虚拟网卡,包括:
所述Vrouter根据所述映射表,确定与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口;
所述Vrouter通过确定出的所述第一Vrouter逻辑端口,接收所述第一数据内容并将其发送至与所述第一Vrouter逻辑端口对应的所述第一虚拟网卡。
进一步的,所述将所述第一数据内容转换为第二数据内容,并将所述第二数据内容发送至第二虚拟网卡,包括:
所述协议栈判断所述第一数据内容携带的目的IP地址是否为所述第一虚拟网卡的IP地址;
如果是,则所述协议栈将所述第一数据内容提交至应用层处理,并接收所述应用层返回的所述第一数据内容的响应内容;所述协议栈基于路由表查找第二虚拟网卡和下一跳路由,将所述响应内容的源MAC地址修改为第二虚拟网卡的MAC地址,将所述响应内容的目的MAC地址修改为所述下一跳路由的MAC地址,得到所述第二数据内容,并将所述第二数据内容发送至第二虚拟网卡;
如果否,则所述协议栈基于路由表查找第二虚拟网卡和下一跳路由,将所述第一数据内容的源MAC地址修改为第二虚拟网卡的MAC地址,将所述第一数据内容的目的MAC地址修改为所述下一跳路由的MAC地址,得到所述第二数据内容,并将所述第二数据内容发送至第二虚拟网卡。
第二方面,提供了一种基于Virtio端口传输数据的系统,所述系统包括Vswitch模块、Vrouter模块和协议栈模块,其中:
所述Vswitch模块,用于当接收到物理网卡发送的第一数据内容时,确定发送所述第一数据内容的第一Vswitch逻辑端口,并在所述第一数据内容中添加所述第一Vswitch逻辑端口的端口标识;
所述Vswitch模块,还用于通过所述第一Vswitch逻辑端口,以及所述Vswitch与Vrouter之间共用的Virtio端口,向所述Vrouter模块发送所述第一数据内容;
所述Vrouter模块,用于通过与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口接收所述第一数据内容,并将其发送至与所述第一Vrouter逻辑端口对应的第一虚拟网卡;
所述协议栈模块,用于接收由所述第一虚拟网卡解封装处理的所述第一数据内容,将所述第一数据内容转换为第二数据内容,并将所述第二数据内容发送至第二虚拟网卡;
所述Vrouter模块,还用于通过与所述第二虚拟网卡对应的第二Vrouter逻辑端口,接收由所述第二虚拟网卡封装处理的第二数据内容,并在所述第二数据内容中添加所述第二Vrouter逻辑端口的端口标识;
所述Vrouter模块,还用于通过所述第二Vrouter逻辑端口以及所述Virtio端口,向所述Vswitch模块发送所述第二数据内容;
所述Vswitch模块,还用于通过与所述第二Vrouter逻辑端口的端口标识唯一对应的第二Vswitch逻辑端口,接收所述第二数据内容并将其发送至所述物理网卡。
进一步的,所述Vswitch模块,还用于:
基于所述第一数据内容中携带的MAC地址,将端口地址表中与所述第一数据内容携带的MAC地址对应的Vswitch逻辑端口,确定为发送所述第一数据内容的第一Vswitch逻辑端口。
进一步的,所述系统还包括端口配置模块,用于:
预先按照所述Vrouter管理的虚拟网卡的数目,在所述Vswitch模块和所述Vrouter模块中分别配置所述数目的所述Vswitch逻辑端口和所述Vrouter逻辑端口,其中,所述Vswitch逻辑端口和所述Vrouter逻辑端口的端口标识唯一对应;
生成记录有所述Vswitch逻辑端口、所述Vrouter逻辑端口和虚拟网卡对应关系的映射表。
进一步的,所述Vswitch模块,还用于:
将所述第一Vswitch逻辑端口的端口标识,记录在所述第一数据内容的数据结构mbuf的预设字段中。
进一步的,所述Vrouter模块,还用于:
根据所述映射表,确定与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口;
通过确定出的所述第一Vrouter逻辑端口,接收所述第一数据内容并将其发送至与所述第一Vrouter逻辑端口对应的所述第一虚拟网卡。
进一步的,所述协议栈模块,还用于:
判断所述第一数据内容携带的目的IP地址是否为所述第一虚拟网卡的IP地址;
如果是,则将所述第一数据内容提交至应用层处理,并接收所述应用层返回的所述第一数据内容的响应内容;基于路由表查找第二虚拟网卡和下一跳路由,将所述响应内容的源MAC地址修改为第二虚拟网卡的MAC地址,将所述响应内容的目的MAC地址修改为所述下一跳路由的MAC地址,得到所述第二数据内容,并将所述第二数据内容发送至第二虚拟网卡;
如果否,则基于路由表查找第二虚拟网卡和下一跳路由,将所述第一数据内容的源MAC地址修改为第二虚拟网卡的MAC地址,将所述第一数据内容的目的MAC地址修改为所述下一跳路由的MAC地址,得到所述第二数据内容,并将所述第二数据内容发送至第二虚拟网卡。
本发明实施例提供的技术方案带来的有益效果是:
在本实施例中,Vswitch和Vroute可以对数据内容添加逻辑端口的通道标识,由于Vswitch和Vroute的逻辑端口为唯一对应关系,且Vroute的逻辑端口与虚拟网卡唯一对应,因此可以通过通道标识,确定出为虚拟网卡传输数据内容的一对逻辑端口。这样,Vswitch和Vroute可以通过一个Virtio端口实现多个虚拟网卡的数据内容的收发处理,从而可以简化Vrouter与Vswitch之间的数据传输方式,不仅使得Vrouter与Vswitch之间的数据传输更加稳定,而且由于逻辑端口结构简单,占用的内存比Virtio端口少,因此可以释放出较多的内存资源。另外,采用共用Virtio端口传输还可以节省Virtio端口轮询时间。从而可以提高数据的传输性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种基于Virtio端口传输数据的方法流程图;
图2是本发明实施例提供的一种基于Virtio端口传输数据的网络场景图;
图3是本发明实施例提供的一种基于Virtio端口传输数据的系统结构示意图;
图4是本发明实施例提供的一种基于Virtio端口传输数据的系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种基于Virtio端口传输数据的方法,该方法的执行主体可以是支持虚拟化的服务器,通过运行虚拟化程序,可以在服务器上虚拟出Vrouter和Vswitch等虚拟设备,搭建虚拟化网络。上述Vrouter和Vswitch可以采用DPDK框架,其中,Vswitch的一端和外部的物理网卡连接,一端可以通过Virtio端口与多个Vrouter进行数据内容的传输,Vrouter可以管理有多个虚拟网卡,每个虚拟网卡均可以对外提供网络服务。上述数据内容可以有多种表现形式,如数据结构mbuf、数据报文等,这里不对其进行具体限定。上述服务器可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中对于基于Virtio端口传输数据的处理,存储器可以用于存储处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送处理过程中的相关数据。
下面将结合具体实施方式,对图1所示的一种基于Virtio端口传输数据的方法的处理流程进行详细的说明,内容可以如下:
步骤101,当Vswitch接收到物理网卡发送的第一数据内容时,Vswitch确定发送第一数据内容的第一Vswitch逻辑端口,并在第一数据内容中添加第一Vswitch逻辑端口的端口标识。
在实施中,上述服务器可以通过其物理网卡从外部设备接收数据内容。当接收到某数据内容时(可称为第一数据内容),上述物理网卡可以将第一数据内容转发至虚拟出的Vswitch。这样,Vswitch可以从上述物理网卡处接收到第一数据内容。之后,Vswitch可以识别出用于将第一数据内容发送至Vrouter的Vswitch逻辑端口(可称为第一Vswitch逻辑端口)。接着,Vswitch可以对第一数据内容进行端口标记,即在第一数据内容中添加第一Vswitch逻辑端口的端口标识,以便于后续流程中Vrouter可以基于第一Vswitch逻辑端口的端口标识,识别出发送第一数据内容的Vswitch逻辑端口。
可选的,上述步骤101中确定第一Vswitch逻辑端口的具体处理可以如下:Vswitch基于第一数据内容中携带的MAC地址,将端口地址表中与第一数据内容携带的MAC地址对应的Vswitch逻辑端口,确定为发送第一数据内容的第一Vswitch逻辑端口。
在实施中,Vswitch可以维护有端口地址表,端口地址表中记录有各个MAC地址与Vswitch各逻辑端口的对应关系。这样,Vswitch在接收到第一数据内容后,可以对第一数据内容的四元组信息进行解析,获取到第一数据内容携带的目的MAC地址。之后,Vswitch可以在端口地址表中查找该目的MAC地址对应的Vswitch逻辑端口,并将查找到的Vswitch逻辑端口确定为发送第一数据内容的第一Vswitch逻辑端口。
可选的,上述步骤101中添加端口标识的具体处理可以如下:Vswitch将第一Vswitch逻辑端口的端口标识,记录在第一数据内容的数据结构mbuf的预设字段中。
在实施中,由于Virtio端口之间可以通过数据结构mbuf这一形式来传输数据内容,且数据结构mbuf中具有预设字段,如Ptag字段,因此可以通过将端口标识记录在上述预设字段的方式,将端口标识添加到数据内容中。这样,Vswitch可以通过上述添加端口标识的方式,将第一Vswitch逻辑端口的端口标识添加至第一数据内容。例如,当预设字段为Ptag字段时,如果第一Vswitch逻辑端口的端口标识为07,则可以设置Ptag=07,从而可以将第一Vswitch逻辑端口的端口标识添加至第一数据内容。另外,当通过数据报文的形式来传输数据内容时,可以直接使用报文中自带的Vlan字段来添加端口标识。例如,当第一Vswitch逻辑端口的端口标识为07时,可以设置vlan=07,从而可以将第一Vswitch逻辑端口的端口标识添加至第一数据内容。
步骤102,Vswitch通过第一Vswitch逻辑端口,以及Vswitch与管理第一虚拟网卡的Vrouter之间共用的Virtio端口,向Vrouter发送第一数据内容。
在实施中,通常情况下,Vswitch和Vrouter之间只需设置一个Virtio端口,即可以完成数据内容的传输,这样,Vswitch和Vrouter之间共用的Virtio端口的数量为一个。考虑到负载及冗余要求,也可以在Vswitch和Vrouter之间设置多个共用的Virtio端口,由于其数量远远少于虚拟网卡的数量,因此可以极大地减少内存资源的占用。具体的,Vswitch在对第一数据内容进行端口标记之后,可以将第一数据内容发送至Vrouter。具体的,Vswitch可以先通过第一Vswitch逻辑端口将第一数据内容发送至Vswitch侧的Virtio_host端口,然后经由Virtio_host端口将第一数据内容发送至Vrouter侧的Virtio_user端口,从而可以将第一数据内容发送至Vrouter。
步骤103,Vrouter通过与第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口接收第一数据内容,并将其发送至与第一Vrouter逻辑端口对应的第一虚拟网卡。
在实施中,Vrouter的Virtio_user端口在接收到第一数据内容后,可以基于第一数据内容携带的端口标识,识别出发送第一数据内容的第一Vswitch逻辑端口,然后可以基于第一Vswitch逻辑端口的端口标识,确定出与第一Vswitch逻辑端口对应的第一Vrouter逻辑端口,即唯一对应第一端口标识的第一Vrouter逻辑端口。继而,Vrouter可以通过Virtio_user端口将第一数据内容发送至第一Vrouter逻辑端口。这样,第一Vrouter逻辑端口可以接收到第一数据内容,然后可以将第一数据内容发送至对应的第一虚拟网卡。
值得一提的是,在传统的Virtio端口传输数据的方案中,尽管Vswitch和Vrouter同样创建有多个逻辑端口,但是Vswitch和Vrouter之间的逻辑端口没有可相互识别的传输途径,为了准确的将数据内容由一个Vswitch逻辑端口传输到对应的Vrouter逻辑端口,需要在每组对应的Vswitch逻辑端口和Vrouter逻辑端口之间分别配置一个专用的Virtio端口,作为Vswitch逻辑端口和Vrouter逻辑端口之间传输数据的专属通道。而在本发明中,由于预先将Vswitch逻辑端口和Vrouter逻辑端口配置为唯一对应,且在数据内容中添加了端口标识,因此,由Vswitch逻辑端口发出的数据内容,可以仅通过一个共用的Virtio端口传输到Vrouter,进而Vrouter在接收到数据内容的时候,可以从上述共用的Virtio端口接收,然后可以基于数据内容中携带的端口标识,确定出对应的接收数据内容的Vrouter逻辑端口,从而可以准确的将数据内容传输到与Vswitch逻辑端口对应的Vrouter逻辑端口处。由于只需一个或较少的Virtio端口,因此不仅可以减少内存资源的占用,而且可以大大减少Virtio端口轮询的时间,甚至无需进行端口轮询,从而可以节省Virtio端口轮询时间,提高数据的传输性能。同时,还可以简化Vrouter与Vswitch之间的数据传输方式,使得Vrouter与Vswitch之间的数据传输更加稳定。
需要说明的是,上述服务器可以预先按照Vrouter管理的虚拟网卡的数目,在Vswitch和Vrouter中分别配置同等数目的Vswitch逻辑端口和Vrouter逻辑端口,其中,Vswitch逻辑端口和Vrouter逻辑端口的端口标识唯一对应,即对于Vrouter中的某个Vrouter逻辑端口而言,在Vswitch中只存在唯一一个与Vrouter逻辑端口对应的Vswitch逻辑端口,且它们的端口标识在Vswitch和Vrouter中同样唯一存在。另外,可以按照映射表的形式对Vswitch逻辑端口、Vrouter逻辑端口和虚拟网卡的对应关系进行记录。
可选的,上述步骤103的具体处理可以如下:Vrouter根据映射表,确定与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口;Vrouter通过确定出的第一Vrouter逻辑端口,接收第一数据内容并将其发送至与第一Vrouter逻辑端口对应的第一虚拟网卡。
在实施中,Vrouter的Virtio_user端口在接收到第一数据内容后,Vrouter可以基于第一数据内容携带的端口标识,在上述映射表中查找该端口标识对应的第一Vrouter逻辑端口。进而,Vrouter可以通过Virtio_user端口将第一数据内容发送至查找出的第一Vrouter逻辑端口。这样,第一Vrouter逻辑端口可以接收到第一数据内容,然后可以基于映射表中记录的Vrouter逻辑端口和虚拟网卡的对应关系,将第一数据内容发送至其对应的虚拟网卡,即第一虚拟网卡。
步骤104,协议栈接收由第一虚拟网卡解封装处理的第一数据内容,将第一数据内容转换为第二数据内容,并将第二数据内容发送至第二虚拟网卡。
在实施中,第一虚拟网卡在接收到第一数据内容后,可以对第一数据内容进行解封装处理,即携带的帧头和帧尾部分,然后可以将解封装后的第一数据内容发送至路由器的协议栈。这样,协议栈可以接收到第一数据内容,然后可以基于第一数据内容,确定相应的转换处理方式,以将第一数据内容转换为第二数据内容。同时,协议栈还可以确定出接收第二数据内容的虚拟网卡(可称为第二虚拟网卡),进而可以将第二数据内容发送给第二虚拟网卡。
可选的,上述步骤104的处理具体可以如下:协议栈判断第一数据内容携带的目的IP地址是否为第一虚拟网卡的IP地址;如果是,则协议栈将第一数据内容提交至应用层处理,并接收应用层返回的第一数据内容的响应内容;协议栈基于路由表查找第二虚拟网卡和下一跳路由,将响应内容的源MAC地址修改为第二虚拟网卡的MAC地址,将响应内容的目的MAC地址修改为下一跳路由的MAC地址,得到第二数据内容,并将第二数据内容发送至第二虚拟网卡;如果否,则协议栈基于路由表查找第二虚拟网卡和下一跳路由,将第一数据内容的源MAC地址修改为第二虚拟网卡的MAC地址,将第一数据内容的目的MAC地址修改为下一跳路由的MAC地址,得到第二数据内容,并将第二数据内容发送至第二虚拟网卡。
在实施中,协议栈在接收到第一数据内容后,可以基于第一数据内容携带的目的IP地址,判断第一数据内容是否为第一虚拟网卡需要响应的数据内容。如果第一数据内容是第一虚拟网卡需要响应的数据内容,则协议栈可以将第一数据内容发送给应用层相应的应用程序处理,然后协议栈可以从应用程序处获取到第一数据内容对应的响应内容,并进行转发处理。如果第一数据内容不是第一虚拟网卡需要响应的数据内容,则协议栈可以基于目的IP地址,直接对第一数据内容进行转发处理。
具体的,协议栈可以通过判断第一数据内容携带的目的IP地址是否为第一虚拟网卡的IP地址的方式,来确定第一数据内容是否为第一虚拟网卡需要响应的数据内容。如果第一数据内容携带的目的IP地址是第一虚拟网卡的IP地址,则协议栈可以基于路由表查找出第二虚拟网卡和下一跳路由,然后将接收到的上述响应内容的源MAC地址修改为第二虚拟网卡的MAC地址,将响应内容的目的MAC地址修改为下一跳的MAC地址,以得到第二数据内容;之后,协议栈可以将第二数据内容发送至第二虚拟网卡。如果第一数据内容携带的目的IP地址不是第一虚拟网卡的IP地址,则协议栈可以基于路由表查找出第二虚拟网卡和下一跳路由,然后将第一数据内容的源MAC地址修改为第二虚拟网卡的MAC地址,将第一数据内容的目的MAC地址修改为下一跳的MAC地址,以得到第二数据内容;之后,协议栈可以将第二数据内容发送至第二虚拟网卡。
步骤105,Vrouter通过与第二虚拟网卡对应的第二Vrouter逻辑端口,接收由第二虚拟网卡封装处理的第二数据内容,并在第二数据内容中添加第二Vrouter逻辑端口的端口标识。
在实施中,第二虚拟网卡在接收到第二数据内容后,可以对第二数据内容进行封装处理,即添加帧头和帧尾部分,然后可以将封装处理后的第二数据内容通过其对应的Vrouter逻辑端口(可称为第二Vrouter逻辑端口)发送给Vrouter。这样,Vrouter可以接收到第二数据内容,然后可以对第二数据内容进行端口标记,即在第二数据内容中添加第二Vrouter逻辑端口的端口标识。
步骤106,Vrouter通过第二Vrouter逻辑端口以及Virtio端口,向Vswitch发送第二数据内容。
在实施中,Vrouter可以通过第二Vrouter逻辑端口将第二数据内容发送给Vrouter侧的Virtio_user端口,然后经由Virtio_user端口将第二数据内容发送至Vswitch侧的Virtio_host端口。
步骤107,Vswitch通过与第二Vrouter逻辑端口的端口标识唯一对应的第二Vswitch逻辑端口,接收第二数据内容并将其发送至物理网卡。
在实施中,Vswitch的Virtio_host端口在接收到第二数据内容后,Vswitch可以基于第二数据内容携带的端口标识,识别出发送第二数据内容的第二Vrouter逻辑端口,进而可以确定出与第二Vrouter逻辑端口对应的第二Vswitch逻辑端口。这样,Vswitch可以通过第二Vswitch逻辑端口接收到第二数据内容,然后将第二数据内容发送至物理网卡。
上述基于Virtio端口传输数据的网络场景可以参考图2(图中以预设字段为Ptag为例)。
在本实施例中,Vswitch和Vroute可以对数据内容添加逻辑端口的通道标识,由于Vswitch和Vroute的逻辑端口为唯一对应关系,且Vroute的逻辑端口与虚拟网卡唯一对应,因此可以通过通道标识,确定出为虚拟网卡传输数据内容的一对逻辑端口。这样,Vswitch和Vroute可以通过一个Virtio端口实现多个虚拟网卡的数据内容的收发处理,从而可以简化Vrouter与Vswitch之间的数据传输方式,不仅使得Vrouter与Vswitch之间的数据传输更加稳定,而且由于逻辑端口结构简单,占用的内存比Virtio端口少,因此可以释放出较多的内存资源。另外,采用单Virtio端口传输还可以节省Virtio端口轮询时间。从而可以提高数据的传输性能。
基于相同的技术构思,本发明实施例还提供了一种基于Virtio端口传输数据的系统,如图3所示,所述系统包括Vswitch模块301、Vrouter模块302和协议栈模块303,其中:
所述Vswitch模块301,用于当接收到物理网卡发送的第一数据内容时,确定发送所述第一数据内容的第一Vswitch逻辑端口,并在所述第一数据内容中添加所述第一Vswitch逻辑端口的端口标识;
所述Vswitch模块301,还用于通过所述第一Vswitch逻辑端口,以及所述Vswitch与Vrouter之间共用的Virtio端口,向所述Vrouter模块302发送所述第一数据内容;
所述Vrouter模块302,用于通过与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口接收所述第一数据内容,并将其发送至与所述第一Vrouter逻辑端口对应的第一虚拟网卡;
所述和协议栈模块303,用于接收由所述第一虚拟网卡解封装处理的所述第一数据内容,将所述第一数据内容转换为第二数据内容,并将所述第二数据内容发送至第二虚拟网卡;
所述Vrouter模块302,还用于通过与所述第二虚拟网卡对应的第二Vrouter逻辑端口,接收由所述第二虚拟网卡封装处理的第二数据内容,并在所述第二数据内容中添加所述第二Vrouter逻辑端口的端口标识;
所述Vrouter模块302,还用于通过所述第二Vrouter逻辑端口以及所述Virtio端口,向所述Vswitch模块301发送所述第二数据内容;
所述Vswitch模块301,还用于通过与所述第二Vrouter逻辑端口的端口标识唯一对应的第二Vswitch逻辑端口,接收所述第二数据内容并将其发送至所述物理网卡。
可选的,所述Vswitch模块301,还用于:
基于所述第一数据内容中携带的MAC地址,将端口地址表中与所述第一数据内容携带的MAC地址对应的Vswitch逻辑端口,确定为发送所述第一数据内容的第一Vswitch逻辑端口。
可选的,如图4所示,所述系统还包括端口配置模块304,用于:
预先按照所述Vrouter管理的虚拟网卡的数目,在所述Vswitch模块301和所述Vrouter模块302中分别配置所述数目的所述Vswitch逻辑端口和所述Vrouter逻辑端口,其中,所述Vswitch逻辑端口和所述Vrouter逻辑端口的端口标识唯一对应;
生成记录有所述Vswitch逻辑端口、所述Vrouter逻辑端口和虚拟网卡对应关系的映射表。
可选的,所述Vswitch模块301,还用于:
将所述第一Vswitch逻辑端口的端口标识,记录在所述第一数据内容的数据结构mbuf的预设字段中。
可选的,所述Vrouter模块302,还用于:
根据所述映射表,确定与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口;
通过确定出的所述第一Vrouter逻辑端口,接收所述第一数据内容并将其发送至与所述第一Vrouter逻辑端口对应的所述第一虚拟网卡。
可选的,所述和协议栈模块303,还用于:
判断所述第一数据内容携带的目的IP地址是否为所述第一虚拟网卡的IP地址;
如果是,则将所述第一数据内容提交至应用层处理,并接收所述应用层返回的所述第一数据内容的响应内容;基于路由表查找第二虚拟网卡和下一跳路由,将所述响应内容的源MAC地址修改为第二虚拟网卡的MAC地址,将所述响应内容的目的MAC地址修改为所述下一跳路由的MAC地址,得到所述第二数据内容,并将所述第二数据内容发送至第二虚拟网卡;
如果否,则基于路由表查找第二虚拟网卡和下一跳路由,将所述第一数据内容的源MAC地址修改为第二虚拟网卡的MAC地址,将所述第一数据内容的目的MAC地址修改为所述下一跳路由的MAC地址,得到所述第二数据内容,并将所述第二数据内容发送至第二虚拟网卡。
在本实施例中,Vswitch和Vroute可以对数据内容添加逻辑端口的通道标识,由于Vswitch和Vroute的逻辑端口为唯一对应关系,且Vroute的逻辑端口与虚拟网卡唯一对应,因此可以通过通道标识,确定出为虚拟网卡传输数据内容的一对逻辑端口。这样,Vswitch和Vroute可以通过一个Virtio端口实现多个虚拟网卡的数据内容的收发处理,从而可以简化Vrouter与Vswitch之间的数据传输方式,不仅使得Vrouter与Vswitch之间的数据传输更加稳定,而且由于逻辑端口结构简单,占用的内存比Virtio端口少,因此可以释放出较多的内存资源。另外,采用单Virtio端口传输还可以节省Virtio端口轮询时间。从而可以提高数据的传输性能。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种基于Virtio端口传输数据的方法,其特征在于,所述方法包括:
当Vswitch接收到物理网卡发送的第一数据内容时,所述Vswitch确定发送所述第一数据内容的第一Vswitch逻辑端口,并在所述第一数据内容中添加所述第一Vswitch逻辑端口的端口标识;
所述Vswitch通过所述第一Vswitch逻辑端口,以及所述Vswitch与Vrouter之间共用的Virtio端口,向所述Vrouter发送所述第一数据内容;
所述Vrouter通过与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口接收所述第一数据内容,并将其发送至与所述第一Vrouter逻辑端口对应的第一虚拟网卡;
协议栈接收由所述第一虚拟网卡解封装处理的所述第一数据内容,将所述第一数据内容转换为第二数据内容,并将所述第二数据内容发送至第二虚拟网卡;
所述Vrouter通过与所述第二虚拟网卡对应的第二Vrouter逻辑端口,接收由所述第二虚拟网卡封装处理的第二数据内容,并在所述第二数据内容中添加所述第二Vrouter逻辑端口的端口标识;
所述Vrouter通过所述第二Vrouter逻辑端口以及所述Virtio端口,向所述Vswitch发送所述第二数据内容;
所述Vswitch通过与所述第二Vrouter逻辑端口的端口标识唯一对应的第二Vswitch逻辑端口,接收所述第二数据内容并将其发送至所述物理网卡。
2.根据权利要求1所述的方法,其特征在于,所述Vswitch确定发送所述第一数据内容的第一Vswitch逻辑端口,包括:
所述Vswitch基于所述第一数据内容中携带的MAC地址,将端口地址表中与所述第一数据内容携带的MAC地址对应的Vswitch逻辑端口,确定为发送所述第一数据内容的第一Vswitch逻辑端口。
3.根据权利要求1所述的方法,其特征在于,所述在接收到物理网卡发送的第一数据内容之前,还包括:
预先按照所述Vrouter管理的虚拟网卡的数目,在所述Vswitch和所述Vrouter中分别配置所述数目的所述Vswitch逻辑端口和所述Vrouter逻辑端口,其中,所述Vswitch逻辑端口和所述Vrouter逻辑端口的端口标识唯一对应;
生成记录有所述Vswitch逻辑端口、所述Vrouter逻辑端口和虚拟网卡对应关系的映射表。
4.根据权利要求1所述的方法,其特征在于,所述在所述第一数据内容中添加所述第一Vswitch逻辑端口的端口标识,包括:
所述Vswitch将所述第一Vswitch逻辑端口的端口标识,记录在所述第一数据内容的数据结构mbuf的预设字段中。
5.根据权利要求3所述的方法,其特征在于,所述Vrouter通过与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口,接收所述第一数据内容并将其发送至与所述第一Vrouter逻辑端口对应的所述第一虚拟网卡,包括:
所述Vrouter根据所述映射表,确定与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口;
所述Vrouter通过确定出的所述第一Vrouter逻辑端口,接收所述第一数据内容并将其发送至与所述第一Vrouter逻辑端口对应的所述第一虚拟网卡。
6.根据权利要求1所述的方法,其特征在于,所述将所述第一数据内容转换为第二数据内容,并将所述第二数据内容发送至第二虚拟网卡,包括:
所述协议栈判断所述第一数据内容携带的目的IP地址是否为所述第一虚拟网卡的IP地址;
如果是,则所述协议栈将所述第一数据内容提交至应用层处理,并接收所述应用层返回的所述第一数据内容的响应内容;所述协议栈基于路由表查找第二虚拟网卡和下一跳路由,将所述响应内容的源MAC地址修改为第二虚拟网卡的MAC地址,将所述响应内容的目的MAC地址修改为所述下一跳路由的MAC地址,得到所述第二数据内容,并将所述第二数据内容发送至第二虚拟网卡;
如果否,则所述协议栈基于路由表查找第二虚拟网卡和下一跳路由,将所述第一数据内容的源MAC地址修改为第二虚拟网卡的MAC地址,将所述第一数据内容的目的MAC地址修改为所述下一跳路由的MAC地址,得到所述第二数据内容,并将所述第二数据内容发送至第二虚拟网卡。
7.一种基于Virtio端口传输数据的系统,其特征在于,所述系统包括Vswitch模块、Vrouter模块和协议栈模块,其中:
所述Vswitch模块,用于当接收到物理网卡发送的第一数据内容时,确定发送所述第一数据内容的第一Vswitch逻辑端口,并在所述第一数据内容中添加所述第一Vswitch逻辑端口的端口标识;
所述Vswitch模块,还用于通过所述第一Vswitch逻辑端口,以及所述Vswitch与Vrouter之间共用的Virtio端口,向所述Vrouter模块发送所述第一数据内容;
所述Vrouter模块,用于通过与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口接收所述第一数据内容,并将其发送至与所述第一Vrouter逻辑端口对应的第一虚拟网卡;
所述协议栈模块,用于接收由所述第一虚拟网卡解封装处理的所述第一数据内容,将所述第一数据内容转换为第二数据内容,并将所述第二数据内容发送至第二虚拟网卡;
所述Vrouter模块,还用于通过与所述第二虚拟网卡对应的第二Vrouter逻辑端口,接收由所述第二虚拟网卡封装处理的第二数据内容,并在所述第二数据内容中添加所述第二Vrouter逻辑端口的端口标识;
所述Vrouter模块,还用于通过所述第二Vrouter逻辑端口以及所述Virtio端口,向所述Vswitch模块发送所述第二数据内容;
所述Vswitch模块,还用于通过与所述第二Vrouter逻辑端口的端口标识唯一对应的第二Vswitch逻辑端口,接收所述第二数据内容并将其发送至所述物理网卡。
8.根据权利要求7所述的系统,其特征在于,所述Vswitch模块,还用于:
基于所述第一数据内容中携带的MAC地址,将端口地址表中与所述第一数据内容携带的MAC地址对应的Vswitch逻辑端口,确定为发送所述第一数据内容的第一Vswitch逻辑端口。
9.根据权利要求7所述的系统,其特征在于,所述系统还包括端口配置模块,用于:
预先按照所述Vrouter管理的虚拟网卡的数目,在所述Vswitch模块和所述Vrouter模块中分别配置所述数目的所述Vswitch逻辑端口和所述Vrouter逻辑端口,其中,所述Vswitch逻辑端口和所述Vrouter逻辑端口的端口标识唯一对应;
生成记录有所述Vswitch逻辑端口、所述Vrouter逻辑端口和虚拟网卡对应关系的映射表。
10.根据权利要求7所述的系统,其特征在于,所述Vswitch模块,还用于:
将所述第一Vswitch逻辑端口的端口标识,记录在所述第一数据内容的数据结构mbuf的预设字段中。
11.根据权利要求9所述的系统,其特征在于,所述Vrouter模块,还用于:
根据所述映射表,确定与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口;
通过确定出的所述第一Vrouter逻辑端口,接收所述第一数据内容并将其发送至与所述第一Vrouter逻辑端口对应的所述第一虚拟网卡。
12.根据权利要求7所述的系统,其特征在于,所述协议栈模块,还用于:
判断所述第一数据内容携带的目的IP地址是否为所述第一虚拟网卡的IP地址;
如果是,则将所述第一数据内容提交至应用层处理,并接收所述应用层返回的所述第一数据内容的响应内容;基于路由表查找第二虚拟网卡和下一跳路由,将所述响应内容的源MAC地址修改为第二虚拟网卡的MAC地址,将所述响应内容的目的MAC地址修改为所述下一跳路由的MAC地址,得到所述第二数据内容,并将所述第二数据内容发送至第二虚拟网卡;
如果否,则基于路由表查找第二虚拟网卡和下一跳路由,将所述第一数据内容的源MAC地址修改为第二虚拟网卡的MAC地址,将所述第一数据内容的目的MAC地址修改为所述下一跳路由的MAC地址,得到所述第二数据内容,并将所述第二数据内容发送至第二虚拟网卡。
CN201910334745.4A 2019-04-24 2019-04-24 一种基于Virtio端口传输数据的方法和系统 Active CN111865801B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910334745.4A CN111865801B (zh) 2019-04-24 2019-04-24 一种基于Virtio端口传输数据的方法和系统
PCT/CN2019/090329 WO2020215455A1 (zh) 2019-04-24 2019-06-06 一种基于Virtio端口传输数据的方法和系统
EP19872251.4A EP3754491A4 (en) 2019-04-24 2019-06-06 DATA TRANSFER PROCESS AND SYSTEM WITH A VIRTIO CONNECTION
US16/858,079 US11206214B2 (en) 2019-04-24 2020-04-24 Virtio port-based data transmission method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910334745.4A CN111865801B (zh) 2019-04-24 2019-04-24 一种基于Virtio端口传输数据的方法和系统

Publications (2)

Publication Number Publication Date
CN111865801A true CN111865801A (zh) 2020-10-30
CN111865801B CN111865801B (zh) 2021-10-22

Family

ID=72941291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910334745.4A Active CN111865801B (zh) 2019-04-24 2019-04-24 一种基于Virtio端口传输数据的方法和系统

Country Status (4)

Country Link
US (1) US11206214B2 (zh)
EP (1) EP3754491A4 (zh)
CN (1) CN111865801B (zh)
WO (1) WO2020215455A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10979300B2 (en) * 2019-06-20 2021-04-13 Kaloom Inc. Computing device and methods for synchronizing networking information with a topology server

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102075907A (zh) * 2011-01-26 2011-05-25 北京交通大学 一种虚拟接口支持异构切换的方法
CN102801729A (zh) * 2012-08-13 2012-11-28 福建星网锐捷网络有限公司 虚拟机报文转发方法、网络交换设备及通信系统
US20140003445A1 (en) * 2012-07-02 2014-01-02 Electronics And Telecommunications Research Institute Network application virtualization method and system
US20160147556A1 (en) * 2014-11-25 2016-05-26 The Research Foundation For The State University Of New York Multi-hypervisor virtual machines
CN108390809A (zh) * 2017-02-03 2018-08-10 华耀(中国)科技有限公司 一种基于vf混杂模式的桥接方法及其系统
CN109426549A (zh) * 2017-09-01 2019-03-05 英特尔公司 针对虚拟环境的加速器互连分配

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8879554B2 (en) * 2010-05-07 2014-11-04 Cisco Technology, Inc. Preventing MAC spoofs in a distributed virtual switch
US9571507B2 (en) * 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
US10048977B2 (en) * 2015-12-22 2018-08-14 Intel Corporation Methods and apparatus for multi-stage VM virtual network function and virtual service function chain acceleration for NFV and needs-based hardware acceleration
US10348847B2 (en) * 2016-01-28 2019-07-09 Oracle International Corporation System and method for supporting proxy based multicast forwarding in a high performance computing environment
CN107666442B (zh) * 2016-07-29 2019-09-17 北京金山云网络技术有限公司 一种基于软件定义网络sdn的虚拟网络控制方法和装置
EP3340064B1 (en) * 2016-08-03 2020-12-02 Huawei Technologies Co., Ltd. Network interface card, computer device and data packet processing method
EP3694159A1 (en) * 2016-08-03 2020-08-12 Huawei Technologies Co., Ltd. Network interface card, computing device, and data packet processing method
US10243840B2 (en) * 2017-03-01 2019-03-26 Juniper Networks, Inc. Network interface card switching for virtual networks
US10560525B2 (en) * 2017-06-21 2020-02-11 Juniper Networks, Inc. Synchronization between virtual network functions and host systems
US11057459B2 (en) * 2018-06-06 2021-07-06 Vmware, Inc. Datapath-driven fully distributed east-west application load balancer
US10728145B2 (en) * 2018-08-30 2020-07-28 Juniper Networks, Inc. Multiple virtual network interface support for virtual execution elements
US10708082B1 (en) * 2018-08-31 2020-07-07 Juniper Networks, Inc. Unified control plane for nested clusters in a virtualized computing infrastructure
US11409506B2 (en) * 2018-09-26 2022-08-09 Intel Corporation Data plane semantics for software virtual switches
US10855588B2 (en) * 2018-12-21 2020-12-01 Juniper Networks, Inc. Facilitating flow symmetry for service chains in a computer network
US11070470B2 (en) * 2019-01-22 2021-07-20 Vmware, Inc. Host router in a virtual computing instance
US11095557B2 (en) * 2019-09-19 2021-08-17 Vmware, Inc. L3 underlay routing in a cloud environment using hybrid distributed logical router

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102075907A (zh) * 2011-01-26 2011-05-25 北京交通大学 一种虚拟接口支持异构切换的方法
US20140003445A1 (en) * 2012-07-02 2014-01-02 Electronics And Telecommunications Research Institute Network application virtualization method and system
CN102801729A (zh) * 2012-08-13 2012-11-28 福建星网锐捷网络有限公司 虚拟机报文转发方法、网络交换设备及通信系统
US20160147556A1 (en) * 2014-11-25 2016-05-26 The Research Foundation For The State University Of New York Multi-hypervisor virtual machines
CN108390809A (zh) * 2017-02-03 2018-08-10 华耀(中国)科技有限公司 一种基于vf混杂模式的桥接方法及其系统
CN109426549A (zh) * 2017-09-01 2019-03-05 英特尔公司 针对虚拟环境的加速器互连分配

Also Published As

Publication number Publication date
EP3754491A1 (en) 2020-12-23
US20200382418A1 (en) 2020-12-03
WO2020215455A1 (zh) 2020-10-29
US11206214B2 (en) 2021-12-21
CN111865801B (zh) 2021-10-22
EP3754491A4 (en) 2021-06-09

Similar Documents

Publication Publication Date Title
US11283650B2 (en) Method for sending virtual extensible local area network packet, computer device, and computer readable medium
US11005752B2 (en) Packet transmission
US8718061B2 (en) Data center network system and packet forwarding method thereof
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
US11431624B2 (en) Communication method and network interface card
KR20150032907A (ko) 통신 방법 및 시스템
WO2016062169A1 (zh) 一种报文传输方法及装置
JP2020520612A (ja) パケット伝送方法、エッジデバイス及び機械可読記憶媒体
CN110855568B (zh) 报文转发方法及系统
CN113411243A (zh) 数据传输方法及装置
WO2021083332A1 (zh) 发送报文的方法、装置及系统
CN108347392B (zh) 业务报文跨板处理方法、装置及系统
CN108471390B (zh) 业务报文跨板处理系统及业务报文的重定向方法
CN104734930B (zh) Vlan接入vf网络的实现方法及装置、fcf
US12003417B2 (en) Communication method and apparatus
CN112583655B (zh) 数据传输方法、装置、电子设备及可读存储介质
CN111865801B (zh) 一种基于Virtio端口传输数据的方法和系统
JP2024504466A (ja) パケット転送方法、パケット処理方法、およびデバイス
CN107483628B (zh) 基于dpdk的单向代理方法及系统
CN114760165A (zh) 报文传输方法、设备及系统
EP3913865A1 (en) Message decapsulation method and device, message encapsulation method and device, electronic device, and storage medium
CN114221895A (zh) 传输数据的方法、装置及网络设备
WO2024001549A9 (zh) 地址配置方法和电子设备
US20230421500A1 (en) Method and device for storing and forwarding content, electronic apparatus and storage medium using the same
US20220337532A1 (en) Storage apparatus and address setting method

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