CN104205080B - 为联网设备虚拟化卸载分组处理 - Google Patents

为联网设备虚拟化卸载分组处理 Download PDF

Info

Publication number
CN104205080B
CN104205080B CN201380015731.7A CN201380015731A CN104205080B CN 104205080 B CN104205080 B CN 104205080B CN 201380015731 A CN201380015731 A CN 201380015731A CN 104205080 B CN104205080 B CN 104205080B
Authority
CN
China
Prior art keywords
network packet
virtual machine
virtual
rule
action
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
CN201380015731.7A
Other languages
English (en)
Other versions
CN104205080A (zh
Inventor
Y·左
D·M·弗尔斯通
A·G·格林伯格
H·乔
Y·邓
B·W·塔特尔
P·加格
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN104205080A publication Critical patent/CN104205080A/zh
Application granted granted Critical
Publication of CN104205080B publication Critical patent/CN104205080B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Abstract

本发明涉及用于为联网设备虚拟化而卸载分组处理的方法、系统和计算机程序产品。主机维护用于虚拟机的规则集,并且物理网络接口卡(NIC)维护用于该虚拟机的流表。该物理NIC接收并处理与该虚拟机相关联的网络分组。处理该网络分组包括该物理NIC将该网络分组与该物理NIC处的流表相比较。当该网络分组与该物理NIC处的流表中的流相匹配时,该物理NIC基于该匹配流对该网络分组执行动作。或者,当该网络分组不与该物理NIC处的流表中的流相匹配时,该物理NIC将该网络分组传递至该主分区以对照该规则集进行处理。

Description

为联网设备虚拟化卸载分组处理
背景
1.背景和相关技术
计算机系统及相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。现在,计算机系统通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排、帐目管理等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统及其他电子设备可在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算环境中。
一些计算机系统被配置成提供用于托管(host)一个或多个虚拟机的虚拟化环境。例如,并行虚拟化执行环境包括管理程序(hypervisor)。管理程序提供父分区和一个或多个子分区(即虚拟机)。父分区被配置成运行主操作系统并管理虚拟栈。每个子分区被配置成运行相应的客操作系统。管理程序还提供使子分区能够通过客操作系统内运行的虚拟设备(驱动器)访问物理设备的软件接口。
虚拟化中的一个常见场景是管理虚拟化主机计算机系统处执行的虚拟机间的网络分组,以及管理这些虚拟机以及在主机计算机系统远程的计算机系统之间流动的网络分组。如此,主操作系统处的虚拟化栈可包括联网虚拟栈或虚拟交换机。虚拟交换机被配置成截取、检查以及操纵在各虚拟机间的连接中通信的网络分组。然而,这样做可能是低效的,因为这导致主操作系统和客操作系统之间的频繁而昂贵(例如,在CPU使用方面)的上下文切换。
虚拟化的最近的发展已经是单根(single-root)I/O虚拟化(SRIOV)。SRIOV是外围组件互连快速(PCIe)总线体系结构的扩展,其使PCIe设备能够直接与父分区和子分区通信。如此,SRIOV使得PCIe设备能够将其自身直接暴露于虚拟机(通过管理程序)。例如,遵循SRIOV的物理网络接口卡(NIC)可向主分区呈现一物理功能并向相应的子分区呈现一个或多个虚拟功能。主操作系统随后可包括与物理功能通信的物理功能驱动器,且每个客操作系统可执行与相应的虚拟功能通信的虚拟功能驱动器。物理NIC随后可直接与客操作系统传递网络分组(绕过主操作系统),这可以大大改善网络性能。
尽管SRIOV带来了优点,然而在虚拟化环境中的网络分组处理领域中仍存在某些低效。
简要概述
本发明涉及用于为网络设备虚拟化卸载分组处理的方法、系统和计算机程序产品。例如,本发明的实施例提供一种通用网络分组规则和流模型,其使在虚拟机主机处的网络分组处理的一部分能够从主机卸载到物理NIC。具体而言,本发明的实施例使得父分区(即,主操作系统)处的一个或多个流表中的所有或部分能够被卸载到物理NIC。这样做使得物理NIC能够根据定义的规则执行分组处理,同时提高虚拟机环境中的网络分组处理的性能。
在一些实施例中,一种用于在计算机系统处执行的虚拟机处理网络分组的方法包括主分区维护用于虚拟机的一个或多个规则集。该方法还包括物理NIC维护用于该虚拟机的一个或多个流表。物理NIC接收与该虚拟机相关联的网络分组,并且为该虚拟机处理该网络分组。处理该网络分组包括该物理NIC将该网络分组与该一个或多个流表相比较。当该网络分组与该一个或多个流表中的流相匹配时,该物理NIC基于匹配流对该网络分组执行动作。替代地,当该网络分组不与该一个或多个流表中的流相匹配时,该物理NIC将该网络分组传递到主分区以对照该一个或多个规则集进行处理。
在其他实施例,一种用于为在该计算机系统处执行的虚拟机处理网络分组的方法包括虚拟交换机维护用于虚拟机的一个或多个规则集并且还维护用于该虚拟机的一个或多个流表。该虚拟交换机将该一个或多个流表的至少一部分卸载到该物理NIC。该虚拟交换机为该虚拟机处理网络分组。处理网络分组包括该虚拟交换机从该虚拟机或该物理NIC之一接收该网络分组,且该虚拟机将该网络分组与该一个或多个规则集中的规则相匹配。基于将该网络分组与该规则相匹配,该虚拟交换机在该一个或多个流表中创建流并且将该流卸载到该物理NIC。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,并且其一部分根据本描述将是显而易见的,或者可通过对本发明的实践来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些以及其它特征、优点和特征将根据以下描述和所附权利要求而变得更显而易见,或者可通过如此后阐述的对本发明的实践而获知。
附图简述
为了描述可获得本发明的上述和其他优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,在附图中:
图1图解促进为联网设备虚拟化而将分组处理卸载到物理NIC的示例计算机体系结构。
图2图解用于为在该计算机系统处执行的虚拟机处理网络分组的示例方法的流程图。
图3图解用于为在该计算机系统处执行的虚拟机处理网络分组的替代示例方法的流程图。
图4图解促进为联网设备虚拟化而将分组处理卸载到物理NIC的替代计算机体系结构。
图5图解包括示例多层虚拟交换机的层的示例计算机体系结构。
详细描述
本发明涉及用于为联网设备虚拟化而卸载分组处理的方法、系统和计算机程序产品。例如,本发明的实施例提供一种通用网络分组规则和流模型,其使在虚拟机主机处的网络分组处理的一部分能够从主机卸载到物理NIC。具体而言,本发明的实施例使得父分区(即,主操作系统)处的一个或多个流表中的所有或部分能够被卸载到物理NIC。这样做使得物理NIC能够根据定义的规则执行分组处理,同时提高虚拟机环境中的网络分组处理的性能。
在一些实施例中,一种用于在计算机系统处执行的虚拟机处理网络分组的方法包括主分区维护用于虚拟机的一个或多个规则集。该方法还包括物理NIC维护用于该虚拟机的一个或多个流表。物理NIC接收与该虚拟机相关联的网络分组,并且为该虚拟机处理该网络分组。处理该网络分组包括该物理NIC将该网络分组与该一个或多个流表相比较。当该网络分组与该一个或多个流表中的流相匹配时,该物理NIC基于匹配流对该网络分组执行动作。替代地,当该网络分组不与该一个或多个流表中的流相匹配时,该物理NIC将该网络分组传递到主分区以对照该一个或多个规则集进行处理。
在其他实施例,一种用于为在该计算机系统处执行的虚拟机处理网络分组的方法包括虚拟交换机维护用于虚拟机的一个或多个规则集并且还维护用于该虚拟机的一个或多个流表。该虚拟交换机将该一个或多个流表的至少一部分卸载到该物理NIC。该虚拟交换机为该虚拟机处理网络分组。处理网络分组包括该虚拟交换机从该虚拟机或该物理NIC接收该网络分组,且该虚拟机将该网络分组与该一个或多个规则集中的规则相匹配。基于将该网络分组与该规则相匹配,该虚拟交换机在该一个或多个流表中创建流并且将该流卸载到该物理NIC。
本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如举例而言一个或多个处理器和系统存储器的计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质(设备)。承载计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的各实施例可包括至少两种明显不同种类的计算机可读介质:计算机存储介质(设备)和传输介质。
计算机存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(SSD)(如基于RAM)、闪存、相变存储器(PCM)、其他类型的存储器、其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(设备)(或反之亦然)。例如,通过网络或数据链接接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质(设备)。因而,应当理解,计算机存储介质(设备)可被包括在还利用(甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、平板、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备两者中。在一些实施例中,本发明可结合遵循SRIOV的物理NIC来实现,然而,本发明的范围延伸至SRIOV之外。
本发明的实施例结合执行一个或多个虚拟机的主机(例如,根分区)来操作。该主机包括虚拟交换机,该虚拟交换机执行被该虚拟机发送和/或接收的网络分组的分组处理(例如,检查以及可能的操纵)。例如,本发明的实施例可以处理网际协议(IP)分组、收敛以太网上的RDMA(RoCE)分组、以太网上的光纤信道(FCoE)分组等。此外,本发明的实施例提供了通用规则和流模型,其允许分组处理的至少一部分被从主机卸载到物理NIC,诸如以太网NIC、无线宽带NIC或其他类型的物理光纤。本发明的实施例因此允许以通用方式进行分组处理,由此消除了为不同类型的分组处理开发不同虚拟交换机模块的需要。
具体而言,实施例包括将一个或多个流表(或其部分)卸载到物理NIC(诸如遵循SRIOV的物理NIC)。如此,使得物理NIC处的虚拟桥能够执行分组处理,类似于主机处的虚拟交换机。例如,如果在物理NIC处接收到分组,则该虚拟桥可将该分组匹配到卸载的流。该物理NIC处的虚拟桥可为该流采取适当动作而不涉及主机。这样做消除了与在主机处进行所有规则/流分组处理相关联的低效。
现在参考图1,图1图解促进为联网设备虚拟化而将分组处理卸载到物理NIC的示例计算机体系结构100。如图所示,计算机体系结构100包括主机102、虚拟机108以及物理NIC 110。
主机102提供虚拟化环境。例如,主机102可包括父分区(其执行主操作系统)和一个或多个子分区。每个子分区可被视为提供用于执行相应的虚拟机(诸如虚拟机108)的虚拟化硬件环境。在一些实施例中,主机102被用作向承租人提供虚拟机的云计算环境的一部分。
每个虚拟机(包括虚拟机108)执行一个或多个虚拟化应用,诸如操作系统、应用软件等。如图所示,虚拟机108包括网络栈108a(例如,TCP/IP栈)、虚拟NIC驱动器108b、以及虚拟功能驱动器108c。使用网络栈108a、虚拟NIC驱动器108b和虚拟功能驱动器108c,虚拟机108能够通过主机102在虚拟总线106上和/或通过物理NIC 110在数据路径114上发送和/或接收网络分组和其他信息。
物理NIC 110包括能够被虚拟化并且使用一个或多个外部接口(例如,所示物理接口126)连接到其他计算机系统和/或网络的物理硬件。尽管只示出了一个物理NIC,然而计算机体系结构可包括任何数量的物理NIC。物理NIC 110包括虚拟桥112。虚拟桥112桥接物理NIC 110处的虚拟功能和物理功能并且执行分组检查和操纵。虚拟桥112与主机102处的虚拟交换机104一起工作以调节网络通信,如稍后更详细地描述的。如此,物理NIC 110可将一个或多个虚拟功能展示给托管在主机102处的一个或多个虚拟机。此外,物理NIC 110可将一个或多个物理功能展示给主机102。
例如,图1示出物理NIC 110将物理功能122呈现给主机102。图1还示出,主机102包括相应的物理功能驱动器124,并且数据路径118将物理NIC 110处的物理功能122和主机102处的物理功能驱动器124相连接。如此,物理功能122和物理功能驱动器124可操作以在物理NIC 110和主机102之间交换网络分组。例如,物理功能驱动器124可与主机102处的虚拟交换机104通信,且物理功能122可与物理NIC 110处的虚拟桥112通信。
图1还示出物理NIC 110将虚拟功能120呈现给虚拟机108,该虚拟机对应于虚拟功能驱动器108c。数据路径114将物理NIC 110处的虚拟功能120和虚拟机108处的虚拟功能驱动器108c相连接。物理NIC 110可将多于一个虚拟功能呈现给虚拟机108,和/或可呈现附加虚拟功能给附加虚拟机。一般而言,每个虚拟机可直接访问所分配的虚拟功能。例如,虚拟机可使用其虚拟功能驱动器来与物理NIC110处的所分配的虚拟功能传递网络分组而无需来自主机102的干预。这样做可减少处理器使用和网络等待时间。例如,虚拟机108和物理NIC 110可使用虚拟功能120和虚拟功能108c通过数据路径114直接通信。
如先前指示的,在一些实施例中,物理NIC 110可包括遵循SRIOV的PCIe硬件。在此类实施例中,虚拟功能120或物理功能122中的一者或多者可包括PCIe功能。然而,应当领会,本文描述的原理可应用于各种硬件设备,而不限于遵循SRIOV的设备或PCIe设备。
在一些实施例中,托管在主机102处的一个或多个虚拟机可根据通用规则/流模型与规则(传入和/或传出)以及有可能与流(传入和/或传出)相关联。如图所示,主机102包括虚拟交换机104。虚拟交换机104被配置成根据通用规则/流模型检查和操纵被任何托管的虚拟机发送和接收的网络分组。例如,基于定义的规则和流,虚拟交换机104可允许分组、阻挡分组、重新路由分组、执行NAT、或执行适用于所使用的联网技术和设备的任何其他分组检查/操纵。
如此处所使用的,规则定义基于一个或多个规则条件和一个或多个规则动作的分组流策略(或其一部分)。在一些实施例中,规则因具体虚拟机而异。规则可由管理员定义,或可由更高层系统来定义。在一些实施例中,规则是静态或相对静态的。在一些实施例中,规则被存储在规则集中并且被配置用于线性匹配。
规则条件可使用元组来定义,元组包括字段和匹配的值。元组可包括适于所使用的网络协议和硬件设备的任何字段组合。元组可包括例如源和/或目的地网络地址(例如,当使用IP时的IP地址)、源和/或目的地端口、协议(例如,传输控制协议(TCP)、用户数据报协议(UDP))、源和/或目的地硬件地址(例如,以太网MAC地址)或其组合。例如,示例性规则条件可根据五元组来定义,诸如‘192.168.0.*,*,*,*,TCP’,其将匹配192.168.0.*网络上的具有任何源IP地址、任何源端口、任何目的地IP地址、任何目的地端口、以及使用TCP协议的任何网络分组。在一些实施例中,元组可不仅与流相关,而且与分组条件相关。例如,元组可包括与IP服务类型(ToS)相关的字段。本领域的技术人员将意识到,其他元组也是可能的,包括与尚未开发的联网技术有关的元组。
规则动作可包括任何适当的分组路由和/或操纵操作。例如,某些示例性规则动作可包括拒绝、允许、网络地址翻译(NAT)、映射、计量、解封装、封装等。本领域的技术人员将意识到,各种其他规则动作也是可能的,包括与尚未开发的联网技术有关的动作。
规则可被用来定义丰富的分组处理策略集合。例如,使用规则条件(元组)和规则动作,规则可指定来自特定IP地址的UDP分组被允许。在另一示例中,规则可指定被发送给具有指定端口的任何目的地的TCP分组经受NAT。将上面的示例性五元组示例与“允许”动作相组合,示例性规则可被定义为‘allow 192.168.0.*,*,*,*,TCP’,意味着192.168.0.*网络上具有任何源IP地址、任何源端口、任何目的地IP地址、任何目的地端口并使用TCP协议的任何网络分组都应当被允许。
如本文使用的,流是基于规则创建的动态状态。例如,当网络分组与规则匹配时,可基于该规则创建流。如此,类似于规则,流也可按照条件(元组)和动作来定义。流存储关于网络连接的上下文,并可用于确定如何基于流或上下文中的先前分组来处理流或上下文中的当前分组。流可经受超时。在一些实施例中,流被存储在一个或多个流表中,诸如传入流表和/或传出流表。例如,当网络分组与示例性‘192.168.0.*,*,*,*,TCP’规则相匹配时,可在一个或多个适当流表中创建相应的流。在一些实施例中,基于流的元组(例如,使用一个或多个散列)来索引流。
沿着这些线,图1示出虚拟交换机包括用于虚拟机108的状态106,所述状态可包括各种类型的状态,诸如所示的传出规则集106a、传入规则集106b、传出流表106c以及传入流表106d。传出规则集106a定义适用于正由虚拟机108发送的分组的一个或多个规则,而传入规则集106b定义适用于正代表虚拟机108接收的分组的一个或多个规则。当分组与相应规则集中的规则相匹配时,可在传出流表106c和/或传入流表106d中创建流。应当领会,在一些情况下,状态106可包括所示状态的子集。
作为示例,当虚拟交换机104(例如,从物理NIC 110或从托管的虚拟机)接收到与虚拟机108相关联的不与适当流表(106c、106d)中的流相匹配的网络分组时,虚拟交换机104可检查该适当规则集(即,用于正代表虚拟机108接收的分组的传入规则集或用于正由虚拟机108发送的分组的传出规则集106a)来寻找匹配规则。如果虚拟交换机104找到匹配规则,则虚拟交换机104可对该分组采取由该规则所定义的动作(例如,允许/阻挡/NAT等)。
如果虚拟交换机104找到了匹配的规则,虚拟交换机104还可在传出流表106c和/或传入流表106d中创建流(或流对)以在处理该流/上下文中的后续分组时使用。例如,当分组匹配传出规则集106a中的规则时,虚拟交换机104可在传出流表106c和/或传入流表106d中创建流(如由连接传出规则集106a和流表106c、106d的箭头所示)。或者,当分组匹配传入规则集106b中的规则时,虚拟交换机104可在传出流表106c和/或传入流表106d中创建流(如由传入规则集106b和流表106c、106d之间的箭头所示)。应当领会,通过在相反方向的流表中创建流,虚拟交换机可实现有状态的防火墙。
虚拟交换机104还可将流状态卸载到物理NIC 110的虚拟桥112处的传出流高速缓存112a和/或传入流高速缓存112b,如由传出流表106c和传出流高速缓存112a之间的虚线箭头以及传入流表106d和传入流高速缓存112b之间的虚线箭头所示。例如,虚拟交换机104可通过数据路径118将请求在流高速缓存112a、112b处创建流的一个或多个请求发送到物理NIC 100。在一些情况下,将流状态卸载到物理NIC 110使得虚拟桥112能够与虚拟交换机104分开执行分组处理,由此减少主机102处的处理器使用。例如,在流被卸载到物理NIC110之后,物理NIC 110可接收同一流的后续分组(例如,通过数据路径114从虚拟机108或者通过外部接口126从另一计算机系统)。在此情况下,虚拟桥112可将该后续分组与该适当流高速缓存112a、112b中的流状态相匹配,并且执行该流自身中所定义的动作,而不首先将该分组发送给虚拟交换机104。
使用前述配置,虚拟机108可使用虚拟功能驱动器108c来通过数据路径114将传出网络分组发送给物理NIC 110的虚拟功能120。在接收到该网络分组后,虚拟桥112搜索传出流高速缓存112a以寻找匹配流。如果虚拟桥112在传出流高速缓存112a中找到匹配流,则虚拟桥112采取该流中定义的动作。例如,虚拟桥112可执行分组操纵操作和/或可将该网络分组转发到目的地虚拟机或通过外部接口126转发到另一计算机系统。
否则,如果虚拟桥112没有在传出流高速缓存112a中找到匹配流,则两个替代动作可发生。在第一实施例中,虚拟桥112拒绝至虚拟机108的网络分组(例如,通过数据路径114)。虚拟机108随后通过虚拟总线116将该网络分组转发至虚拟交换机104。在第二实施例中,虚拟桥112使用物理功能122来将该网络分组通过数据路径118发送给物理功能驱动器124。物理功能驱动器124进而将该网络分组路由至虚拟交换机104。在任一实施例中,在虚拟交换机104接收到该网络分组后,虚拟交换机104尝试将该网络分组与传出流表106c中的流相匹配。如果该网络分组不与传出流表106c中的流相匹配,则虚拟交换机104尝试将该网络分组与传出规则集106a中的规则相匹配。如果在传出规则集106a中找到了匹配规则,则虚拟交换机104采取由该匹配规则所定义的适当动作(例如,允许/阻挡/NAT等)并且可在流表106c/106d之一或两者处创建一个或多个流,并且有可能在流高速缓存112a/112b之一或两者处创建一个一个或多个流。
同样使用前述配置,物理NIC 110可代表虚拟机108接收传入网络分组(例如,通过相应虚拟功能从另一虚拟机或通过外部接口126从另一计算机系统)。在接收到该网络分组后,虚拟桥112搜索传入流高速缓存112b以寻找匹配流。如果虚拟桥112在传入流高速缓存112b中找到匹配流,则虚拟桥112采取该流中定义的适当动作(例如,允许/阻挡/NAT等)。例如,虚拟桥112可使用虚拟功能120和数据路径114来将该分组转发至虚拟机108处的虚拟功能驱动器108c。如果虚拟桥112没有在传入流高速缓存112b中找到匹配流,则虚拟桥112使用物理功能122和数据路径118或虚拟功能120和数据路径114将该分组转发至主机120处的虚拟交换机104。虚拟交换机104随后如上面在传出网络分组的上下文中所描述的那样处理该分组。
应当领会,传出流高速缓存112a和传入流高速缓存112a可仅代表完整流表(即,传出流表106c和传入流表106d)的一部分或一子集。例如,物理NIC 110可由于成本或其他设计约束而具有有限的存储器。如此,在流高速缓存112a/112b中仅存储流表106c/106d的一部分减少了将流表卸载到物理NIC 110所需的存储器的量。因为传出流高速缓存112a和传入流高速缓存112a可能不包括完整流状态数据,所以当在虚拟桥112处处理分组时高速缓存未中可能发生。当高速缓存未中发生时,虚拟桥112将该分组转发到虚拟交换机104以进行附加处理。应当领会,可采用其他类型的高速缓存替换/刷新策略。例如,流状态可在高速缓存未中发生之后被放置在物理NIC 110上,条目可在预定不活动量之后从物理NIC 110过期等。
此外,在一些实施例中,仅有某些类型的流被存储在物理NIC 110处。例如,虚拟桥112可仅支持执行有限类型的操作/动作。如此,仅与虚拟桥112支持的操作/动作有关的流可被存储在物理NIC 110处。在这些实施例中,任何其他的操作/动作在虚拟交换机104处被处置。
图2图解用于为在该计算机系统处执行的虚拟机处理网络分组的示例方法200的流程图。方法200将参考计算机架构100的组件和数据来描述。
方法200包括主分区中的虚拟交换机维护用于虚拟机的一个或多个规则集的动作(动作202)。例如,主机102处的虚拟交换机104可维护用于虚拟机108的状态106。状态106可包括用于虚拟机108的传出规则集106a或用于虚拟机108的传入规则集106b之一或两者。状态106还可包括用于虚拟机108的一个或多个流表,诸如传出流表106c和传入流表106d。尽管未示出,虚拟交换机104可存储用于其他附加虚拟机的状态(例如,规则集、流表等)。
方法200还包括物理NIC维护用于该虚拟机的一个或多个流表的动作(动作204)。例如,物理NIC 110可存储用于虚拟机208的传出流高速缓存112a和/或传入流高速缓存112b。流高速缓存可存储主机102处的任何流表的全部或仅一部分。尽管未示出,然而物理NIC 110可存储用于其他附加虚拟机的流表。
方法200还包括物理NIC接收与该虚拟机相关联的网络分组的动作(动作206)。例如,物理NIC可通过外部接口126接收来自另一计算机系统的网络分组,可通过虚拟功能120接收来自虚拟机108的网络分组,或可通过与主机220处的另一虚拟机相关联的另一虚拟功能接收来自该虚拟机的网络分组。
方法200还包括为该虚拟机处理网络分组的动作(动作208)。例如,虚拟桥112可处理从虚拟机108接收的网络分组或代表虚拟机108接收的网络分组(即,正被虚拟机108接收的网络分组)。
动作208包括该物理NIC将该网络分组与该一个或多个流表相比较的动作(动作210)。例如,如果该分组正由虚拟机108发送,则虚拟桥112可将该网络分组与传出流高速缓存112a相比较,或者如果正代表虚拟机108接收该分组,则虚拟桥112可将该网络分组与传入流高速缓存112b相比较。
动作208还包括,在该网络分组与该一个或多个流表中的流相匹配时,该物理NIC基于该匹配流对该网络分组执行动作的动作(动作212)。例如,如果该网络分组与传出流高速缓存112a或传入流高速缓存112b中的流相匹配,则虚拟桥112可执行在该流中指定的动作(例如,允许、拒绝、NAT等)。
动作208还包括,在该网络分组不与该一个或多个流表中的流相匹配时,该物理NIC将该网络分组传递至该主机以对照该一个或多个规则集进行处理的动作(动作214)。例如,如果网络分组不与传出流高速缓存112a或传入流高速缓存112b中的流相匹配,则虚拟桥112可将该分组发送至主机102处的虚拟交换机104以供附加处理。在一些实施例中,虚拟桥112使用物理功能122和数据路径118将该网络分组直接发送至主机102。在其他实施例中,虚拟桥112使用虚拟功能120和数据路径114将该网络分组间接发送至主机102(即,通过虚拟机108并通过虚拟总线116)。
在被接收时,主机102可将该网络分组传递至虚拟交换机104。虚拟交换机104进而可将该网络分组与状态106(即,流表、规则集)相比较并采取适当动作。例如,如果该网络分组与主机102处的流相匹配,则虚拟交换机104可采取适当动作(例如,允许、拒绝、NAT等)并可能更新物理NIC 110处的流高速缓存。如果网络分组不与主机102处的流相匹配(或者如果不存在适当的流),则虚拟交换机104可将该网络分组与适当规则集相比较、采取任何匹配规则中所指定的适当动作、以及可能创建一个或多个新流(例如,在状态206和物理NIC110处)。
图3图解用于为在计算机系统处执行的虚拟机处理网络分组的附加示例方法300的流程图。方法300将参考计算机架构100的组件和数据来描述。
方法300包括主分区中的虚拟交换机维护用于虚拟机的一个或多个规则集的动作的动作(动作302)。例如,主机102处的虚拟交换机104可维护用于虚拟机108的状态106。状态106可包括用于虚拟机108的传出规则集106a或用于虚拟机108的传入规则集106b之一或两者。
方法300还包括该虚拟交换机维护用于该虚拟机的一个或多个流表的动作的动作(动作304)。例如,状态106可包括用于虚拟机108的传出流表106c或用于虚拟机108的传入流表106d之一或两者。
方法300还包括该虚拟交换机将该一个或多个流表的至少一部分卸载至该物理NIC的动作(动作306)。例如,虚拟交换机104可将一个或多个流从传出流表106c卸载至传出流高速缓存112a。附加地或替代地,虚拟交换机104可将一个或多个流从传入流表106d卸载至传入流高速缓存112b。
方法300还包括该虚拟交换机为该虚拟机处理网络分组的动作(动作308)。例如,虚拟交换机104可处理从虚拟机108接收或代表虚拟机108接收的网络分组。
动作308包括该虚拟交换机接收来自该虚拟机或该物理NIC之一的网络分组的动作(动作310)。例如,虚拟交换机104可通过虚拟总线216从虚拟机108或者通过数据路径118(以及物理功能驱动器124)从物理NIC 110接收网络分组。
动作308还包括该虚拟交换机将该网络分组与该一个或多个规则集中的规则相匹配的动作(动作312)。例如,如果该网络分组正被虚拟机108发送,则虚拟交换机104可将该分组对照传出规则集106a进行匹配。替代地,如果正代表虚拟机108接收该网络分组,则虚拟交换机104可将该分组对照传入规则集106b进行匹配。
动作308还包括,基于将该网络分组与该规则相匹配,该虚拟交换机在该一个或多个流表中创建流的动作(动作314)。例如,在将该网络分组对照传出规则集106a或传入规则集106b之一中的规则进行匹配之后,虚拟交换机可基于传出流表106c和/或传入流表106d中的规则创建一个或多个流。
动作308还包括,基于将该网络分组与该规则相匹配,该虚拟交换机将该流卸载到该物理NIC的动作(动作316)。例如,基于匹配规则,虚拟交换机104可将流卸载到传出流高速缓存112a和/或传入流高速缓存112b。
图4图解促进为联网设备虚拟化而将分组处理卸载到物理NIC并且相对于计算机体系结构100提供一项或多项潜在优化的替代计算机体系结构400。在一些实施例中,计算机体系结构400可与计算机体系结构100相组合。如图所示,计算机体系结构400包括类似于计算机体系结构100的组件,诸如主机402、虚拟机408以及物理NIC 410。然而,在计算机体系结构400中,虚拟机408处的虚拟NIC驱动器408b包括传出流列表408d。从而,虚拟NIC驱动器408b维护关于该传出流中的部分或全部的信息。如此,甚至在用虚拟功能驱动器408c将网络分组发送至虚拟功能420之前,虚拟NIC驱动器408b可基于传出流列表408d确定该网络分组是否与传出流相匹配。如果找到匹配,则该网络分组也可匹配传出流高速缓存412a中的流(如果该流已经被卸载到物理NIC 410的话)。当基于传出流列表408d该分组不与流相匹配时,虚拟NIC驱动器408b可将该分组直接转发至虚拟交换机404,而不首先将该分组发送至物理NIC 410。
在一些情形下,虚拟机408可以是不受信实体。因此,是否能够将该分组最终发送至目的地仍旧由物理NIC 410处的虚拟桥412和/或虚拟交换机404来确定。例如,即使在传出流列表408d中存在流且虚拟机408将网络分组发送至物理NIC 410,虚拟桥412仍旧对照传出流高速缓存412来验证该分组。
在一些实施例中,可能期望在传出流列表408d中仅存储传出流的一部分。例如,传出流中的一些信息可能是保密的(例如,将被用于NAT的IP地址)并且如前所述,虚拟机408可能是不受信实体。如此,传出流列表408d可包含不带动作信息的流列表(即,用于将分组匹配到流的条件信息)。传出流列表408d因此可仅提供足以使虚拟NIC驱动器408b做出将该分组传送至物理NIC 410还是主机402的决定的信息。
图5图解包括示例多层虚拟交换机的各层的示例计算机体系结构500。例如,虚拟交换机104包括针对每个虚拟机的规则和流的各层。所示出的每一层包括独立的规则集和流表的集合。如图所示,例如,这些层可包括层502和层504。网络分组基于该网络分组正被发送还是接收来在两个方向之一中横穿这些层。例如,当正代表虚拟机接收网络分组时,该分组可从底层向上地横穿这些层(即,从层504到层502,如箭头506所示)。相对地,当网络分组正被从虚拟机发送时,该分组可从顶层向下地横穿这些层(即,从层502到层504,如箭头508所示)。
在一些实施例中,每一层在将该分组转发至下一层之前将网络分组与其自己的流/规则集相匹配并且采取任何适当动作。例如,分组可在层504处被解封装并随后在层502处经受NAT操作。在一些实施例中,如果采取“阻挡”动作,则该分组停止横穿这些层并且被丢弃。尽管虚拟交换机104可包括多层流表,然而这些流在卸载到物理NIC 110时通常按扁平方式存储。
相应地,本发明提供了使得流能够被卸载到物理NIC的通用规则和流模型。将流卸载使得某些分组处理能够在物理NIC处执行,并消除了将某些分组发送至主机的虚拟交换机来进行处理的需要。如此,本发明能够减少与为虚拟机处理网络分组相关联的CPU使用和等待时间。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (10)

1.在包括一个或多个处理器和系统存储器的计算机系统处,所述计算机系统还包括物理网络接口卡NIC并执行主分区,一种用于为在所述计算机系统处执行的虚拟机处理网络分组的方法,所述方法包括:
所述主分区维护用于虚拟机的一个或多个规则集的动作;
所述物理NIC维护用于所述虚拟机的一个或多个流表的动作,所述一个或多个流表基于所述一个或多个规则集;以及
所述物理NIC接收与所述虚拟机相关联的网络分组的动作;
为所述虚拟机处理所述网络分组的动作,包括:
所述物理NIC将所述网络分组与所述一个或多个流表相比较的动作,以及
在所述网络分组与所述一个或多个流表中的流相匹配时,所述物理NIC基于匹配流对所述网络分组执行动作的动作,以及
在所述网络分组不与所述一个或多个流表中的流相匹配时,所述物理NIC将所述网络分组传递至所述主分区以对照所述一个或多个规则集进行处理的动作,所述网络分组通过所述虚拟机被传递至所述主分区。
2.如权利要求1所述的方法,其特征在于,还包括,当所述网络分组不与所述一个或多个流表中的流相匹配时,所述主分区将所述网络分组与所述一个或多个规则集相比较的动作。
3.如权利要求2所述的方法,其特征在于,在所述网络分组与所述一个或多个规则集中的规则相匹配时,所述主分区基于匹配规则对所述网络分组执行动作的动作。
4.如权利要求3所述的方法,其特征在于,在所述网络分组与所述一个或多个规则集中的规则相匹配时,所述主分区在所述一个或多个流表中在所述物理NIC处创建一个或多个流的动作。
5.如权利要求1所述的方法,其特征在于,还包括所述主分区维护用于所述虚拟机的一个或多个流表的动作,并且其中在所述物理NIC处维护的所述一个或多个流表包括在所述主分区处维护的所述一个或多个流表的子集。
6.一种用于为在计算机系统处执行的虚拟机处理网络分组的方法,所述方法包括:
虚拟交换机维护用于虚拟机的一个或多个规则集的动作,所述虚拟交换机包括多层规则集,每层包括规则集的独立集合;
所述虚拟交换机维护用于所述虚拟机的一个或多个流表的动作;
所述虚拟交换机将所述一个或多个流表的至少一部分卸载至物理NIC的动作;以及
所述虚拟交换机为所述虚拟机处理网络分组的动作,包括:
所述虚拟交换机从所述虚拟机或所述物理NIC之一接收所述网络分组;
所述虚拟交换机将所述网络分组与所述一个或多个规则集中的规则相匹配,包括所述网络分组穿过所述层且每个层将所述网络分组与其自己的规则集相匹配;以及
基于将所述网络分组与所述规则相匹配:
所述虚拟交换机在所述一个或多个流表中创建流;以及
所述虚拟交换机将所述流卸载到所述物理NIC。
7.如权利要求6所述的方法,其特征在于,维护用于虚拟机的一个或多个规则集的动作包括维护传入规则集和传出规则集的动作。
8.如权利要求6所述的方法,其特征在于,所述虚拟交换机为所述虚拟机处理网络分组的动作还包括:
所述虚拟交换机基于所述规则对所述网络分组执行至少一个动作。
9.如权利要求8所述的方法,其特征在于,所述至少一个动作包括分组检查或分组操纵操作中的一个或多个。
10.一种计算机系统,包括:
一个或多个处理器;
系统存储器;
物理网络接口卡NIC;以及
上面存储有计算机可执行指令的一个或多个计算机存储介质,所述计算机可执行指令在被所述一个或多个处理器执行时执行虚拟交换机,所述虚拟交换机被配置成:
在所述计算机系统的主分区内执行;
维护用于虚拟机的传入规则集和传出规则集,所述虚拟交换机包括多层规则集,每层包括规则集的独立集合;
维护用于该虚拟机的传入流表和传出流表;
将所述传入流表或所述传出流表中的一个或多个的至少一部分卸载到所述物理NIC的虚拟桥;以及
为所述虚拟机处理网络分组,包括:
从所述虚拟机或所述物理NIC中的一者或多者接收所述网络分组;
将所述网络分组与所述传入规则集或所述传出规则集之一中的规则相匹配,包括所述网络分组穿过所述层且每个层将所述网络分组与其自己的规则集相匹配;以及
基于将所述网络分组与所述规则相匹配:
在所述虚拟交换机处的所述传入流表或所述传出流表中的一者或多者中创建流;以及
将所述流卸载到所述物理NIC的所述虚拟桥处的传入流表或传出流表中的一者或多者。
CN201380015731.7A 2012-03-21 2013-03-06 为联网设备虚拟化卸载分组处理 Active CN104205080B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261613824P 2012-03-21 2012-03-21
US61/613,824 2012-03-21
US13/551,064 US8930690B2 (en) 2012-03-21 2012-07-17 Offloading packet processing for networking device virtualization
US13/551,064 2012-07-17
PCT/US2013/029222 WO2013142041A1 (en) 2012-03-21 2013-03-06 Offloading packet processing for networking device virtualization

Publications (2)

Publication Number Publication Date
CN104205080A CN104205080A (zh) 2014-12-10
CN104205080B true CN104205080B (zh) 2018-04-10

Family

ID=49213566

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380015731.7A Active CN104205080B (zh) 2012-03-21 2013-03-06 为联网设备虚拟化卸载分组处理

Country Status (7)

Country Link
US (1) US8930690B2 (zh)
EP (1) EP2828760B1 (zh)
JP (1) JP6254574B2 (zh)
KR (1) KR101969194B1 (zh)
CN (1) CN104205080B (zh)
ES (1) ES2720759T3 (zh)
WO (1) WO2013142041A1 (zh)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5691062B2 (ja) * 2011-04-04 2015-04-01 株式会社日立製作所 仮想計算機の制御方法及び管理計算機
US9397954B2 (en) 2012-03-26 2016-07-19 Oracle International Corporation System and method for supporting live migration of virtual machines in an infiniband network
CN104412621B (zh) * 2012-05-02 2018-05-15 诺基亚通信公司 方法和设备
US9137205B2 (en) 2012-10-22 2015-09-15 Centripetal Networks, Inc. Methods and systems for protecting a secured network
US9565213B2 (en) 2012-10-22 2017-02-07 Centripetal Networks, Inc. Methods and systems for protecting a secured network
US9203806B2 (en) 2013-01-11 2015-12-01 Centripetal Networks, Inc. Rule swapping in a packet network
US9124552B2 (en) 2013-03-12 2015-09-01 Centripetal Networks, Inc. Filtering network data transfers
US10051054B2 (en) * 2013-03-15 2018-08-14 Oracle International Corporation System and method for efficient virtualization in lossless interconnection networks
US9094445B2 (en) 2013-03-15 2015-07-28 Centripetal Networks, Inc. Protecting networks from cyber attacks and overloading
US9990221B2 (en) 2013-03-15 2018-06-05 Oracle International Corporation System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
US20150012606A1 (en) * 2013-07-02 2015-01-08 Dell Products, Lp System and Method to Trap Virtual Functions of a Network Interface Device for Remote Direct Memory Access
US9781041B2 (en) * 2013-07-24 2017-10-03 Dell Products Lp Systems and methods for native network interface controller (NIC) teaming load balancing
CN104753885B (zh) 2013-12-30 2018-06-26 杭州华为数字技术有限公司 一种流表匹配的方法、装置和OpenFlow交换系统
US10397105B2 (en) * 2014-03-26 2019-08-27 Oracle International Corporation System and method for scalable multi-homed routing for vSwitch based HCA virtualization
US10261817B2 (en) * 2014-07-29 2019-04-16 Nxp Usa, Inc. System on a chip and method for a controller supported virtual machine monitor
US10237354B2 (en) * 2014-09-25 2019-03-19 Intel Corporation Technologies for offloading a virtual service endpoint to a network interface card
WO2016099528A1 (en) * 2014-12-19 2016-06-23 Hewlett Packard Enterprise Development Lp Multicast advertisement message for a network switch in a storage area network
US10812632B2 (en) * 2015-02-09 2020-10-20 Avago Technologies International Sales Pte. Limited Network interface controller with integrated network flow processing
US9264370B1 (en) 2015-02-10 2016-02-16 Centripetal Networks, Inc. Correlating packets in communications networks
US9866576B2 (en) 2015-04-17 2018-01-09 Centripetal Networks, Inc. Rule-based network-threat detection
US10356012B2 (en) 2015-08-20 2019-07-16 Intel Corporation Techniques for routing packets among virtual machines
US10558482B1 (en) 2015-09-30 2020-02-11 Amazon Technologies, Inc. Client network instances for resources in provider network environments
KR102148371B1 (ko) * 2015-10-28 2020-08-26 에스케이텔레콤 주식회사 네트워크 기능 가상화 운영 장치 및 방법
US10298720B1 (en) 2015-12-07 2019-05-21 Amazon Technologies, Inc. Client-defined rules in provider network environments
US9912774B2 (en) * 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
US9917856B2 (en) 2015-12-23 2018-03-13 Centripetal Networks, Inc. Rule-based network-threat detection for encrypted communications
US11729144B2 (en) 2016-01-04 2023-08-15 Centripetal Networks, Llc Efficient packet capture for cyber threat analysis
WO2018023499A1 (zh) * 2016-08-03 2018-02-08 华为技术有限公司 网络接口卡、计算设备以及数据包处理方法
EP3340547B1 (en) * 2016-08-03 2019-11-27 Huawei Technologies Co., Ltd. Network interface card and data packet processing method
US10193968B2 (en) 2016-10-14 2019-01-29 Google Llc Virtual router with dynamic flow offload capability
US10715585B2 (en) 2017-03-10 2020-07-14 Microsoft Technology Licensing, Llc Packet processor in virtual filtering platform
CA3066826C (en) * 2017-06-30 2023-06-27 Huawei Technologies Co., Ltd. Network data processing method, network interface card, and server
US10503899B2 (en) 2017-07-10 2019-12-10 Centripetal Networks, Inc. Cyberanalysis workflow acceleration
US10284526B2 (en) 2017-07-24 2019-05-07 Centripetal Networks, Inc. Efficient SSL/TLS proxy
US11233777B2 (en) 2017-07-24 2022-01-25 Centripetal Networks, Inc. Efficient SSL/TLS proxy
US10547553B2 (en) * 2017-09-17 2020-01-28 Mellanox Technologies, Ltd. Stateful connection tracking
US10637828B2 (en) * 2017-09-17 2020-04-28 Mellanox Technologies, Ltd. NIC with stateful connection tracking
US10382346B2 (en) 2017-10-24 2019-08-13 Cisco Technology, Inc. Method and device for offloading processing of data flows
CN115037575A (zh) * 2017-12-26 2022-09-09 华为技术有限公司 报文处理的方法和装置
CN113542125B (zh) 2018-03-31 2022-11-25 华为技术有限公司 一种基于集成流表转发报文的方法及装置
US10333898B1 (en) 2018-07-09 2019-06-25 Centripetal Networks, Inc. Methods and systems for efficient network protection
US10834044B2 (en) * 2018-09-19 2020-11-10 Amazon Technologies, Inc. Domain name system operations implemented using scalable virtual traffic hub
US10831523B2 (en) * 2018-10-08 2020-11-10 Microsoft Technology Licensing, Llc RDMA with virtual address space
US20210336960A1 (en) * 2018-12-10 2021-10-28 Drivenets Ltd. A System and a Method for Monitoring Traffic Flows in a Communications Network
CN110149231B (zh) * 2019-05-21 2022-05-31 优刻得科技股份有限公司 更新虚拟交换机的方法、装置、存储介质和设备
US11436053B2 (en) 2019-05-24 2022-09-06 Microsoft Technology Licensing, Llc Third-party hardware integration in virtual networks
CN112019431B (zh) * 2019-05-29 2023-04-18 阿里巴巴集团控股有限公司 一种转发规则的处理方法、装置及设备
US11042392B2 (en) 2019-06-14 2021-06-22 Microsoft Technology Licensing, Llc Network policy and flow state save/restore for highly available servicing
US11743135B2 (en) 2019-07-23 2023-08-29 Vmware, Inc. Presenting data regarding grouped flows
US11398987B2 (en) 2019-07-23 2022-07-26 Vmware, Inc. Host-based flow aggregation
US11349876B2 (en) * 2019-07-23 2022-05-31 Vmware, Inc. Security policy recommendation generation
US11436075B2 (en) 2019-07-23 2022-09-06 Vmware, Inc. Offloading anomaly detection from server to host
US11340931B2 (en) * 2019-07-23 2022-05-24 Vmware, Inc. Recommendation generation based on selection of selectable elements of visual representation
LU101361B1 (en) * 2019-08-26 2021-03-11 Microsoft Technology Licensing Llc Computer device including nested network interface controller switches
US11831663B2 (en) * 2019-10-10 2023-11-28 Intel Corporation Secure networking protocol optimization via NIC hardware offloading
US11321213B2 (en) 2020-01-16 2022-05-03 Vmware, Inc. Correlation key used to correlate flow and con text data
CN113285892A (zh) * 2020-02-20 2021-08-20 华为技术有限公司 报文处理系统、方法、机器可读存储介质以及程序产品
US11474857B1 (en) * 2020-05-06 2022-10-18 Amazon Technologies, Inc. Accelerated migration of compute instances using offload cards
US11934330B2 (en) * 2020-05-08 2024-03-19 Intel Corporation Memory allocation for distributed processing devices
US11740919B2 (en) * 2020-05-18 2023-08-29 Dell Products L.P. System and method for hardware offloading of nested virtual switches
US11811559B2 (en) * 2020-07-21 2023-11-07 Vmware, Inc. Logical network packet handling on physical network interface controller (PNIC)
US20230195482A1 (en) * 2020-07-21 2023-06-22 Vmware, Inc. Offloading Packet Processing Programs from Virtual Machines to a Hypervisor and Efficiently Executing the Offloaded Packet Processing Programs
US11750532B2 (en) 2020-07-21 2023-09-05 Vmware, Inc. Logical network packet handling on physical network interface controller (PNIC)
KR102217114B1 (ko) * 2020-07-24 2021-02-18 넷록스 주식회사 엣지 플랫폼 네트워크의 가속화 제어 방법 및 이를 사용하는 전자 장치
US11792134B2 (en) 2020-09-28 2023-10-17 Vmware, Inc. Configuring PNIC to perform flow processing offload using virtual port identifiers
US11362996B2 (en) 2020-10-27 2022-06-14 Centripetal Networks, Inc. Methods and systems for efficient adaptive logging of cyber threat incidents
CN116866283A (zh) * 2020-10-31 2023-10-10 华为技术有限公司 一种流表处理方法及相关设备
KR102479757B1 (ko) * 2020-11-24 2022-12-22 한국과학기술원 네트워크 및 파일 입출력 연산 오프로딩 방법, 연산 오프로딩 시스템 및 컴퓨터 판독 가능 기록매체
US11363119B1 (en) 2020-12-03 2022-06-14 Wormhole Labs, Inc. Remote processing of augmented reality workloads
US11785032B2 (en) 2021-01-22 2023-10-10 Vmware, Inc. Security threat detection based on network flow analysis
CN114979028B (zh) * 2021-02-26 2024-02-23 中移(苏州)软件技术有限公司 一种数据包处理方法、装置以及存储介质
US11601365B2 (en) * 2021-03-30 2023-03-07 Amazon Technologies, Inc. Wide area networking service using provider network backbone network
US11824773B2 (en) 2021-03-30 2023-11-21 Amazon Technologies, Inc. Dynamic routing for peered virtual routers
US11159546B1 (en) 2021-04-20 2021-10-26 Centripetal Networks, Inc. Methods and systems for efficient threat context-aware packet filtering for network protection
US11831667B2 (en) 2021-07-09 2023-11-28 Vmware, Inc. Identification of time-ordered sets of connections to identify threats to a datacenter
US11792151B2 (en) 2021-10-21 2023-10-17 Vmware, Inc. Detection of threats based on responses to name resolution requests
KR102420606B1 (ko) * 2021-11-19 2022-07-13 넷록스 주식회사 캐시 경로를 이용하는 패킷 데이터 처리 방법 및 이를 사용하는 전자 장치
US11928367B2 (en) 2022-06-21 2024-03-12 VMware LLC Logical memory addressing for network devices
WO2023249748A1 (en) * 2022-06-21 2023-12-28 Vmware, Inc. Accelerating data message classification with smart nics

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904519B2 (en) 1998-06-12 2005-06-07 Microsoft Corporation Method and computer program product for offloading processing tasks from software to hardware
US7190668B1 (en) * 2001-11-27 2007-03-13 Nokia Corporation Method of anchoring flows
KR100429904B1 (ko) * 2002-05-18 2004-05-03 한국전자통신연구원 차등화된 QoS 서비스를 제공하는 라우터 및 그것의고속 IP 패킷 분류 방법
EP1547324A2 (de) * 2002-09-30 2005-06-29 Siemens Aktiengesellschaft Verfahren zur teilweisen erhaltung der paketreihenfolge bei verbindungsloser paketvermittlung mit alternativem routing
US7545809B2 (en) * 2003-05-28 2009-06-09 International Business Machines Corporation Packet classification
US20050190779A1 (en) 2004-03-01 2005-09-01 Cisco Technology, Inc., A California Corporation Scalable approach to large scale queuing through dynamic resource allocation
JP4343760B2 (ja) * 2004-04-28 2009-10-14 株式会社日立製作所 ネットワークプロトコル処理装置
US7936770B1 (en) 2005-03-08 2011-05-03 Enterasys Networks, Inc. Method and apparatus of virtual class of service and logical queue representation through network traffic distribution over multiple port interfaces
US7656894B2 (en) 2005-10-28 2010-02-02 Microsoft Corporation Offloading processing tasks to a peripheral device
US8230153B2 (en) * 2006-01-20 2012-07-24 Broadcom Corporation Method and system for HBA assisted storage virtualization
US7701849B1 (en) 2006-06-23 2010-04-20 Juniper Networks, Inc. Flow-based queuing of network traffic
US8006297B2 (en) * 2007-04-25 2011-08-23 Oracle America, Inc. Method and system for combined security protocol and packet filter offload and onload
US8001278B2 (en) * 2007-09-28 2011-08-16 Intel Corporation Network packet payload compression
US7792914B2 (en) * 2008-01-14 2010-09-07 Aten International Co., Ltd. Server with network-based remote access and server management functions using reduced number of network connections
US7983257B2 (en) 2008-07-18 2011-07-19 Emulex Design & Manufacturing Corporation Hardware switch for hypervisors and blade servers
US8385202B2 (en) 2008-08-27 2013-02-26 Cisco Technology, Inc. Virtual switch quality of service for virtual machines
US7961726B2 (en) 2008-10-07 2011-06-14 Microsoft Corporation Framework for optimizing and simplifying network communication in close proximity networks
US9740517B2 (en) * 2008-12-29 2017-08-22 Microsoft Technology Licensing, Llc Dynamic virtual machine memory management
US9059965B2 (en) 2009-06-30 2015-06-16 Oracle America, Inc. Method and system for enforcing security policies on network traffic
US8621460B2 (en) * 2009-11-02 2013-12-31 International Business Machines Corporation Endpoint-hosted hypervisor management
US8537860B2 (en) 2009-11-03 2013-09-17 International Business Machines Corporation Apparatus for switching traffic between virtual machines
JP5720577B2 (ja) 2009-12-04 2015-05-20 日本電気株式会社 サーバ及びフロー制御プログラム
US8234400B2 (en) 2010-03-16 2012-07-31 Microsoft Corporation Shaping virtual machine communication traffic
US8739177B2 (en) 2010-06-21 2014-05-27 Intel Corporation Method for network interface sharing among multiple virtual machines
US8804747B2 (en) * 2010-09-23 2014-08-12 Cisco Technology, Inc. Network interface controller for virtual and distributed services
US8561065B2 (en) * 2010-11-15 2013-10-15 International Business Machines Corporation Virtualization of vendor specific network interfaces of self-virtualizing input/output device virtual functions

Also Published As

Publication number Publication date
CN104205080A (zh) 2014-12-10
EP2828760A1 (en) 2015-01-28
JP6254574B2 (ja) 2017-12-27
EP2828760A4 (en) 2015-11-11
US8930690B2 (en) 2015-01-06
JP2015515798A (ja) 2015-05-28
WO2013142041A1 (en) 2013-09-26
KR101969194B1 (ko) 2019-08-13
US20130254766A1 (en) 2013-09-26
ES2720759T3 (es) 2019-07-24
EP2828760B1 (en) 2019-01-16
KR20140143155A (ko) 2014-12-15

Similar Documents

Publication Publication Date Title
CN104205080B (zh) 为联网设备虚拟化卸载分组处理
US11695731B2 (en) Distributed identity-based firewalls
CN104052789B (zh) 用于虚拟联网系统的负载平衡的方法和系统
CN103718164B (zh) 虚拟计算机和服务
CN102334112B (zh) 用于虚拟机网络的方法和系统
CN104685507B (zh) 向虚拟云基础结构提供虚拟安全装置架构
US20210243247A1 (en) Service mesh offload to network devices
CN1688989B (zh) 高数据率状态式协议处理方法、设备及系统
CN104717156B (zh) 使用网络接口卡管理软件定义网络中的数据流的方法和系统
CN110419200A (zh) 虚拟过滤平台中的分组处理器
EP2920940B1 (en) Method and device for data flow processing
WO2017114286A1 (zh) 基于混合云平台的网络管理系统
CN103650426B (zh) 用于在公共云与私有云之间进行云桥接的系统和方法
CN104348740B (zh) 数据包处理方法和系统
CN107872392A (zh) 在网络中分配服务功能链数据和服务功能实例数据
JP2021103895A (ja) 金融ネットワーク
CN107111576A (zh) 发布的中断架构
CN102904729B (zh) 根据协议、端口分流支持多应用的智能加速网卡
CN104717137A (zh) 管理覆盖网络中的数据流的方法和系统
CN107409096A (zh) 自适应负载平衡
CN105684357A (zh) 虚拟机中地址的管理
CN103346981A (zh) 虚拟交换方法、相关装置和计算机系统
CN102143218B (zh) web接入云体系结构及接入方法
CN108366018A (zh) 一种基于dpdk的网络数据包处理方法
CN104811431B (zh) 基于并行协议栈实例的数据包处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20171023

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant