CN107450966B - 减负装置和用于基于减负装置的数据包处理的框架 - Google Patents

减负装置和用于基于减负装置的数据包处理的框架 Download PDF

Info

Publication number
CN107450966B
CN107450966B CN201710709078.4A CN201710709078A CN107450966B CN 107450966 B CN107450966 B CN 107450966B CN 201710709078 A CN201710709078 A CN 201710709078A CN 107450966 B CN107450966 B CN 107450966B
Authority
CN
China
Prior art keywords
packet
data packet
packets
rule
data
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
CN201710709078.4A
Other languages
English (en)
Other versions
CN107450966A (zh
Inventor
普拉迪普·文森特
马修·D·克莱恩
塞缪尔·J·麦凯尔维
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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
Priority claimed from US13/076,347 external-priority patent/US8774213B2/en
Priority claimed from US13/076,339 external-priority patent/US8462780B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN107450966A publication Critical patent/CN107450966A/zh
Application granted granted Critical
Publication of CN107450966B publication Critical patent/CN107450966B/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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Abstract

可在利用基于硬件的分割减负和其它这种功能的同时提供至和来自虚拟化环境的数据包的高速处理。硬件供应商(诸如网络接口卡(NIC)制造商)可使得硬件能结合诸如单根I/O虚拟化(SR‑IOV)的协议支持开放和专用的无状态隧道以实施虚拟化覆盖网络。硬件可利用各种规则,例如其可由所述NIC用于执行某些行动,诸如封装出口数据包和解封装数据包。

Description

减负装置和用于基于减负装置的数据包处理的框架
发明背景
随着在诸如因特网的网络上可获得日益增多的应用程序和服务,越来越多的内容、应用程序和/或服务提供商转向多租户共享资源技术。例如,云计算可通过服务(诸如Web服务)为用户提供电子资源的访问权,其中用于支持所述服务的硬件和/或软件可动态伸缩以在任意给定时间满足服务的需求。用户通常将通过云租赁、租用或以其它方式支付资源访问权且因此无需购买和维护所需的硬件和/或软件。
然而,这种访问权伴随着针对这些共享资源的提供商的风险,因为通常有多个用户在不同时间访问资源。在用户具有虚拟地址空间使得客户网络作为没有限制或不具有一个或多个附加物理网络的附加地址的的单个虚拟网络的情况下,可能需要提供有关这个虚拟地址空间的数据包的处理和路由。然而,当客户具有对装置的访问权时,对装置执行路由和处理可潜在地使得用户能够修改数据包的路由或其它此类处理。此外,出于诸如尺寸限制、协议限制等原因,这种功能无法轻易地移至未暴露给用户的许多现有硬件装置。
附图简述
将参考附图描述根据本公开的不同实施方案,其中:
图1图示其中可实施不同实施方案的环境;
图2图示可根据一个实施方案使用的用于提供对不同资源的访问权的环境;
图3图示可根据一个实施方案使用的用于访问特定硬件资源的配置;
图4图示可根据一个实施方案使用的数据包封装过程;
图5图示可根据一个实施方案使用的用于处理数据包的配置;
图6图示可根据不同实施方案使用的示例性数据包报头。
图7图示可根据不同实施方案使用的用于处理数据包的第五过程的实例;
图8图示可根据不同实施方案使用的用于处理数据包的第六过程的实例;和
图9图示可根据不同实施方案使用的用于处理数据包的示例性流程。
具体实施方式
根据本公开的不同实施方案的系统和方法可克服在电子环境中管理资源的常规方法中经历的一个或多个上述和其它缺陷。根据不同实施方案的系统和方法提供第一地址空间(诸如客户或虚拟地址空间)与第二地址空间(诸如云网络提供商或物理地址空间)之间的数据包处理。诸如消费型装置(诸如各种网络减负装置)的分割和合并减负部件的部件可用于帮助减小与网络流量相关的开销,尤其当其与虚拟化环境相关时。例如,在于“2009年9月9日”申请的标题为“Stateless Packet Segmentation and Processing”的共同待决的美国专利申请案第12/556,453号和于2010年9月17日申请的标题为“Framework forStateless Packet Tunneling”的申请案第12/885,258号中描述了提供分割和合并减负特征件的不同方法,每个申请案以引用的方法并入本文中。
不同的实施方案使得减负装置能够结合诸如单根I/O虚拟化(SR-IOV)的协议支持开放和专有的无状态隧道以实施虚拟化覆盖网络。SR-IOV通常涉及一种互操作性的标准规范,其使得装置(诸如外围组件互连(PCI)装置)能表现为多个独立物理装置。SR-IOV利用物理功能(PF)和虚拟功能(VF)。物理功能通常是完整的功能而虚拟功能通常是可能缺少至少一些配置资源的更轻量性的功能。SR-IOV通常需要支持BIOS以及支持运行在硬件上的管理程序或操作系统。
在至少一些实施方案中,减负装置(或这样一种装置的供应商或制造商)可提供用于数据包处理的特定功能。例如,基于Dom-0(即,零域,通常是在启动时由Xen管理程序起始的第一域)的实施方式可利用可由减负装置用于执行特定行动诸如封装出口数据包以及解封装入口数据包的不同规则。可基于源VM对每个出口数据包执行出口数据包源检查,包括验证源MAC地址和源IP地址。在一些实施方案中,减负装置可强制执行特定VLAN(虚拟局域网)标签或另外添加VLAN标签。在出口数据包源检查后,可针对现有规则列表匹配数据包。如果存在匹配,那么可对数据包采取相应的封装行动且数据包被相应地传输。如果不匹配,那么可将数据包发送至Dom-0控制软件以用于进一步处理。
对于入口数据包,在特定实施方案中,数据包可识别为使用基于例如,预定义IP协议号和与L2报头末端具有预定义偏移的预定义一字节的特殊格式封装。这些值可各通过Dom-0配置。可将未封装的所有入口数据包递送至Dom-0。对于封装的入口数据包,可使用预定义长度的非透明位识别任意非透明位(位于紧接在外L3报头之后)。还可使用预定义偏移下的非透明位的一个字节字段将每个数据包进一步分类为属于特定虚拟机(VM)(例如,SR-IOV向量)。
每个SR-IOV功能可配置有一组入口规则。每个规则可主要由将与封装的入口数据包的非透明位匹配的非透明位、外源IP地址、外目的地IP地址和源&目标MAC地址组成。当入口封装数据包与针对特定SR-IOV功能的入口规则之一匹配(即,非透明位匹配)时,数据包可被解封装(即,非透明位元被移除),内IP报头的TTL递减达规则中指定的值且数据包被递送至对应于SR-IOV功能的VM。可将未匹配任意规则的入口数据包递送至Dom-0。
在至少一些实施方案中,减负装置将针对可从Dom-0读取或重置的每个封装和解封装规则维持一个数据包计数和字节计数。不同实施方案还可提供将数据包从Dom-0注入SR-IOV功能的能力。某些实施方案可提供调试模式,其中每个数据包被强迫通过Dom-0,而不管生效的匹配规则。SR-IOV功能的最大传输单元(MTU)可从Dom-0设置,在至少一个实施方案中默认为1500。如果访客试图改变MTU大小,那么减负装置可确保所提出的MTU不超过由Dom-0设置的最大MTU。在一些实施方案中,减负装置还可执行连接跟踪,其可用于在减负装置上提供有状态防火墙实施方式。
在至少一些实施方案中,可提供管理入口数据包和出口数据包两者的封装和解封装规则的Dom-0控制软件。例如,Dom-0控制软件可使用由减负装置以及底层ARP查询提供的数据包计数统计数据来管理底层网络的地址解析协议(ARP)缓存。Dom-0控制软件还可确定在减负装置不支持所需的所有规则的情况下哪些规定(若有)必须推行至减负装置以及哪些规则必须由Dom-0管理作为溢出规则。
图1图示用于实施根据不同实施方案的方面的环境100的实例。将了解,虽然为了说明的目的使用基于Web的环境,但是可视情况使用不同环境以实施不同实施方案。所示的环境100包括测试或开发部分(或侧)和生产部分。电子客户端装置102可包括可操作以经由适当网络104发送及接收请求、消息或信息并且将信息传递回装置用户的任意适当装置。这种客户端装置的实例包括个人计算机、手机、手持消息传送装置、膝上型计算机、机顶盒、个人数据助理、电子书阅读器和类似装置。网络可包括任意适当网络,包括内联网、因特网、蜂窝网络、局域网或任意其它这种网络或其组合。用于这样一种系统的组件可至少部分取决于所选网络和/或环境的类型。用于经由这样一种网络通信的协议和组件是已知的并且将不在本文中详细说明。经由网络的通信可通过有线或无线连接和其组合实现。在本实例中,网络包括因特网,因为环境包括用于接收请求并且响应于此提供内容的Web服务器106,但是对于其它网络,如本领域的普通技术人员所知可使用服务类似目的的替代装置。
说明性环境包括至少一个应用程序服务器108和多个资源、服务器、主机、实例、路由器、开关、数据存储器和/或定义哪些将在本文中被称作数据平面110的其它这种组件,但是应了解这种平面的资源不限于存储数据以及提供数据的访问权。应了解存在若干应用程序服务器、层或其它元件、过程或组件,其可链接或以其它方式配置,其可互动以执行诸如从适当数据存储器获得数据的任务。如本文中所使用,术语“数据存储器”指能够存储、访问并且检索数据的任意装置或装置组合,其可包括任意标准、分布式或集群环境中任意组合和数量的数据服务器、数据库、数据存储装置和数据存储媒介。应用程序服务器可包括根据需要用于与数据存储器集成以执行客户端装置的一个或多个应用程序的方面,处理应用程序的大多数数据访问和业务逻辑的任意适当硬件和软件。应用程序服务器与数据存储器协作提供准入控制服务并且能够产生将传输给用户的内容,诸如文本、图形、音频和/或视频,在本实例中其可通过Web服务器以HTML、XML或另一种适当结构化语言提供给用户。在一些实施方案中,Web服务器106、应用程序服务器108和类似组件可被视为数据平面的部分。所有请求和响应的处理以及客户端装置102与应用程序服务器108之间的内容递送可由Web服务器处理。应了解,Web和应用程序服务器并非必要的并且只是示例性组件,因为如本文其它部分所述,结构化代码可在任意适当装置或主机上执行。
环境还包括可开发和/或测试侧,其包括允许用户(诸如开发者、数据管理员或测试者)访问系统的用户装置118。用户装置118可为诸如上文参考客户端装置102所述的任意适当装置或机器。环境还包括开发服务器120,其功能类似于应用程序服务器108但通常在开发和测试期间,例如在代码在生产侧部署并且执行并且可由外部用户访问之前运行代码。在一些实施方案中,应用程序服务器可充当开发服务器并且可能不使用单独的生产和测试存储器。
数据平面110的数据存储器可包括若干单独的数据表、数据库或用于存储与特定方面相关的数据的其它数据存储机制和媒介。例如,所示的数据平面包括用于存储生产数据112和用户信息116(其可用于为生产侧提供内容)的机制。数据平面还被示作包括用于存储测试数据114(其可结合用户信息用于测试侧)的机制。应了解,可能存在可能需存储在数据存储器中的许多其它方面,诸如针对页面图象信息和访问权信息,其可视情况存储在任意上列机制中或数据平面110中的附加机制中。数据平面110可通过与其相关的逻辑操作以从应用程序服务器108或开发服务器120接收指令并且响应于此获得、更新或另外处理数据、指令或其它这种信息。在一个实例中,用户可提交某一类型项目的搜索请求。在此情况下,数据平面的组件可访问用户信息以验证用户身份并且访问目录详细信息以获得有关所述类型的项目的信息。然后,信息可诸如以列示在用户能够经由用户装置102上的浏览器查看的Web页面上的结果的形式返回给用户。可在浏览器的专门页面或窗口中查看相关的特定项目的信息。
每个服务器通常将包括提供所述服务器的一般管理和操作的可执行程序指令的操作系统,且通常将包括存储在被服务器的处理器执行时使得服务器能执行其预期功能的指令的计算机可读媒介。操作系统的适当实施方式和服务器的一般功能是已知的或可商购,并且尤其在鉴于本文公开的内容的情况下易于由本领域的普通技术人员实施。
在一个实施方案中,环境是利用使用一个或多个计算机网络或直接连接经由通信链路互连的若干计算机系统和组件的分布式计算环境。但是本领域的普通技术人员应了解这样一种系统可同样好地在具有比图1所示更少或更大数量的组件的系统中运行。因此,图1中系统100的描绘应理解为本质上是说明性的并且不受限于公开的范围。
诸如图1中所示的环境可用于不同的内容提供商或其它这种实体,其中多个主机和不同类型的资源可用于执行诸如提供内容、认证用户、分配资源的任务或执行任意许多其它这种任务。这些主机的一些可被配置来提供类似功能,而其它服务器可被配置来执行至少一些不同功能。在这种情况下,电子环境可包括诸如下文详细讨论的图2的配置200中所示的附加组件和/或其它配置。
根据一个实施方案的系统和方法提供至少一个资源访问网关或控制平面,作为数据环境的部分或在用户与数据平面之间的路径中,其使得用户和应用程序能访问共享和/或专门资源,同时允许客户、管理员或其它经授权用户分配资源给不同用户、客户或应用程序并且确保遵守所述分配。这种功能使得用户能执行诸如在云中存储、处理和查询相关数据集的任务而无需担心由于其它用户共享资源而导致延迟退化或其它这种问题。这种功能还使得访客用户能获得资源访问权以执行任意适当功能,诸如呈现和/或提供流媒介或执行任意许多其它这种操作。虽然关于因特网、Web服务和基于因特网的技术讨论了这个实例,但是应了解不同实施方案的方面可结合在电子环境中经由网络可获得或提供的任意适当资源或服务使用。此外,虽然关于对磁盘、数据存储器、主机和外围装置的共享访问权提出不同实例,但是应了解任意适当资源可针对任意适当目的在不同实施方案的范围内使用且任意适当参数可被监控并且用于调整任意或所有各自用户对这样一种资源的访问或使用。
资源网关或控制平面208可在一些环境中用于提供和/或管理对数据平面232中的不同资源的访问权。在云计算环境中,这可对应于云管理器210或管理对云中的不同资源的访问权的类似系统。在一个实施方案中,提供一组应用程序编程接口(API)220或允许用户或客户请求访问不同资源的其它这种接口。一旦访问权建立、资源被分配等,用户就可直接与资源通信以执行与所述资源相关的特定任务,诸如资料存储或处理。一旦访问权建立,用户可使用直接接口或API以与数据实例、主机或其它资源通信,但使用控制平面组件以获得访问权。
图2图示诸如可包括可根据一个实施方案使用的云计算管理系统的配置200的实例。在本实例中,终端用户的计算装置202被示为能够通过网络206对控制平面208(或其它这种访问层)进行调用以执行诸如获得对指定资源或资源类型的访问权的任务。虽然为了说明的目的使用终端用户计算装置和应用程序,但是应了解在不同实施方案中,任意适当用户、应用程序、服务、装置、组件或资源可视情况访问连接组件和数据环境的接口和组件。此外,虽然特定组件被分组为数据“平面”,但是应了解这可指用于提供各自功能的至少一些资源(例如,硬件和/或软件)的实际或虚拟分离。此外,在特定实施方案中,控制平面可被视为数据平面的部分。虽然在本实施方案中示出单个控制平面,但是在其它实施方案中可能存在控制或访问管理组件或服务的多个实例。控制平面可包括硬件和/或软件的任意适当组合,诸如配置有计算机可执行指令的至少一个服务器。控制平面还可包括用于跨网络206接收Web服务调用或其它这种请求的一组API(或其它这种接口),Web服务层212可解析或另外分析所述API以确定作用于或处理调用所需的步骤或行动。例如,可接收包括建立至数据储存库的连接以执行用户的查询的Web服务调用。在本实例中,Web服务层可解析请求以确定所需连接或访问的类型、所需资源的适当类型或其它这种方面。
控制平面可包括一个或多个资源分配管理器210,每个资源分配管理器210负责诸如验证与请求相关的用户或客户和获得或分配对适当资源的访问权的任务。这样一种系统可处理不同类型的请求以及建立不同类型的连接。这样一种系统还可处理针对不同类型资源(诸如特定图形处理器或其它类型的硬件或硬件功能)的请求并且可提供对适当资源的访问权。数据平面的组件或云的资源层可执行所需任务以提供资源。例如,对于对数据实例的访问权,这可包括诸如供应数据存储器实例、分配非实例持久性存储卷、将永久存储卷附至数据存储器实例及分配并且附上客户可用于访问或以其它方式连接至数据实例的IP地址(源自DNS映射)或其它地址、端口、接口或标识符的任务。例如,针对诸如使用特定类型的硬件获得指令的处理的任务,数据平面的组件结合控制平面可执行诸如为用户供应装置及按对资源的特定访问级提供对资源的共享和/或专用访问权达一个时间周期。在本实例中,可为用户提供将用于访问资源的IP地址和端口地址。然后,用户可直接使用IP地址和端口访问资源,而无需访问或通过控制平面208。
在本实施方案中,控制平面208还包括至少一个监控组件214。当数据实例或其它资源在数据平面中被分配、创建或以其它方式可获得时,资源信息可写入可由控制平面(诸如监控数据存储器216)访问的数据存储器。应了解,监控数据存储器可以是单独的数据存储器或另一个数据存储器的一部分。监控组件214可访问监控数据存储器216中的信息以确定诸如不同用户对资源的过往使用、分配给用户的线程或资源的当前数量或类型和其它这种使用信息的信息。监控组件还可调用数据环境的组件以确定诸如数据环境中给定用户的活动连接数量和有关每个连接的使用的方面的信息。监控组件可不断监控具有经由连接管理器提供的分配的用户、客户等对每个资源的使用。监控组件还可访问存储在管理员(“Admin”)或类似数据存储器216中的信息,其可存储诸如授予用户的一般分配、用户的节流或限制信息、用户的资源许可或可由管理员或其它这种用户指定和/或更新的任意其它这种信息的信息。
在用户请求连接至不同数据实例的实例中,数据环境中的每个实例222可包括至少一个数据存储器226和提供对数据存储器的访问的机器的主机管理组件228。在一个实施方案中,主机管理器是在实例和/或应用程序服务器(诸如Tomcat或Java应用程序服务器)上执行的应用程序或软件代理,其被编程来管理诸如软件部署和数据存储器操作以及监控数据存储器和/或各自实例的状态的任务。主机管理器可负责管理和/或执行诸如设置新储存库的实例的任务,包括设置逻辑卷和文件系统、安装数据库二进制数据和种子及起始或停止储存库。主机管理器可监控数据存储器的健康、监控误差条件(诸如I/O误差或数据存储误差)的数据存储器并且若需要可重启数据存储器。主机管理器还可执行和/或管理软件补丁的安装和数据存储器和/或操作系统的更新。主机管理器还可收集诸如可能与CPU、存储器和I/O使用相关的相关度量。
资源管理器210可定期地与已针对其建立连接的每个主机管理器228进行通信或通信至资源环境的管理服务器或其它组件以确定诸如载荷、使用、容量等状态信息。
如所讨论,一旦供应资源并且为用户提供源自DNS映射或其它地址或位置的IP地址,用户就可使用Java数据库连接(JDBC)或其它这种协议经由网络与数据平面232的组件或资源“直接”通信以直接与资源222互动。在不同实施方案中,如所讨论,数据平面采用计算云环境(或至少包括计算云环境或作为计算云环境的部分)或一组Web服务和资源的形式,所述一组Web服务和资源跨硬件和/或软件组件的“云”或动态网络提供资料存储和访问。源自DNS映射的IP地址在这样一种动态云环境中是有利的,因为例如,可通过以编程方法将IP地址重新映射至任意适当的替换实例进行使用而掩盖实例或可用性故障。例如,接收自用户202或应用程序204的请求可定向至网络地址转换(NAT)路由器224或其它适当组件,其可将请求定向至对应于请求的映射地址的实际资源222或主机。这样一种方法允许实例动态移动、更新、复制等,而无需用户或应用程序改变用于访问实例的IP地址或其它地址。在一些情况下,在持久性存储中,资源222(诸如数据实例)可具有至少一个备份实例230或副本。
如所讨论,资源可在多个用户、客户、应用程序等之间同时或在不同时间共享,访问或分配级不同。当用户具有对机器或资源的专用访问权时,用户还可具有对资源的本机或“裸机”访问权达一个时间周期,这取决于所需访问类型和其它这种因素。提供对资源的这个访问级伴随针对资源提供商的潜在风险,因为具有对装置的本机访问权的用户可能具有修改资源的固件或其它配置信息的能力,其可影响后一用户在无需首先重建镜像或另外验证资源状态的情况下利用资源的能力。
不同实施方案使得提供商能为用户或客户授予合理安全级下对硬件资源的基本上完全的访问权。可针对例如,诸如服务器、主机和集群实例的资源提供对远程硬件的这种本机级访问权。对于诸如集群实例的资源,客户可具有对硬件资源的子集的本机访问权,诸如可包括使用诸如外围组件互连(PCI)总线的组件连接的外围装置。这些外围装置可包括网络接口卡(NIC)、图形处理单元(GPU)和可能通常在当前云环境中虚拟化的类似装置。在一些情况下,客户可能具有对整个机器或机器组(包括并入其中的任意或所有装置)完全的访问权。对于一组机器(诸如服务器的机架),用户可能被授予对整个机架基本上完全的访问权,包括提供作为机架的部分的任意开关或其它装置或组件。
某些提供商提出这种硬件资源作为虚拟化抽象使得物理硬件的管理可在“更可信”的执行背景下发生并且可提供附加益处,诸如不中断执行的情况下将客户迁移至不同资源而能力及由于客户或“访客”未被绑定至特定硬件,所以供应商竞争以针对价格提供最佳效用计算值的能力。此外,可使用更少或更多单个访客实例镜像,因为访客不需要大量特定于硬件的驱动器。然而,这种虚拟化可伴随潜在的高成本,因为虚拟化可引致硬件的任何数量级的性能损失,其不包括虚拟化的本机加速且特定硬件装置的虚拟化会消耗与所述装置(例如,用于虚拟化网络接口的处理器和/或存储器)无关的大量资源。此外,虚拟化支持会滞后于新硬件(例如,视频卡)的商品可购性数年且特定设备硬件通常太特定或“小众”而无法保证强制性虚拟化支持。在支持高利润的小众设备或作为新硬件类型的云支持的首入者方面存在大的潜在市场机会。然而,经由本机访问提供这种支持可脱离内部云脆弱的不同方面,例如,诸如供应技术、计费、资源利用和平衡和网络二层布局,并且会违反远超客户需求的线程模型。
不同实施方案可通过为用户提供对主机硬件或特定装置(诸如插入外围控制总线或类似硬件数据路径的卡)的本机访问权而提供对资源(诸如主机服务器)的“部分”或“基本上”完全的访问权。在特定性能级是一大问题的特定实施方案中,诸如输入/输出存储器管理单元(I/O MMU)的技术可用于“指派”外围装置给访客操作系统(定向I/O(Intel的VT-D)的虚拟化技术),有效地仅为访客赋予所述外围装置的本机访问权。如对本领域的普通技术人员显而易见的是,访客操作系统(OS)在不同实施方案中可指不同系统,诸如托管正在运行的OS的虚拟机,其具有对OS或管理程序所依赖的一些硬件或机器状态(包括BIOS、配置等)的至少部分非虚拟化访问权,其未在托管提供商的管理控制下的。在其它实施方案中,访客OS可指未在主机提供商的管理控制下在未完全虚拟化的情况下运行的OS。在一个实施方案中,MMU可将直接存储器访问(DMA)能力的I/O总线(例如,PCI总线)逻辑连接至主机上的主存储器并且可管理I/O装置至物理地址的映射以调节从访客至不同PCI或类似装置的信息流。例如,这些装置可包括图形处理单元(GPU)协处理器、高性能NIC、磁盘控制器或其它“小众”协处理装置,诸如密码卡或硬件编解码器。在一些实例中,虚拟化或其它这种技术可用于提供访客机器及主机机器与中央系统硬件(例如,CPU、存储器等)之间的分离程度,本机访问权潜在地可由给定主机上的特定装置获得。在其它实施方案中,可提供对特定主机中所包括或可获得的任意硬件的本机访问权。
为客户提供对特定硬件的本机访问权的主要问题之一在于客户可能具有修改特权配置或BIOS(基本I/O系统)设置或主机硬件上的其它固件镜像的能力。这些改变可在物理系统的重新启动期间持续使得在客户被授予对主机或其装置的访问权之前硬件不会返回硬件曾经所处的相同状态。例如,在由Ring-1管理程序管理的虚拟机监控器(VMM)的可动态配置设置的情况下,改变通常不会在重新启动期间持续,而是可能在访客操作系统在虚拟化环境中实例化期间持续(例如,支持IOMMU技术的芯片组设置)。客户修改另外不可变的设置或固件的这种能力可能具有严重的安全影响。例如,恶意软件(例如,木马或病毒)可插入不同装置的固件中。但是即使固件改变不涉及故意的恶意编程,改变仍会通过导致性能和/或兼容性问题而仍具有无意的破坏性。固件刷新会潜在地不可修复地物理毁坏硬件(也就是说,使硬件“变砖”)。已开发出特定技术,其可解决这些挑战的至少一些,尤其对于模板固件或芯片组配置。例如,这些技术包括可信平台模块(TPM)、来自Intel的LaGrande技术(LT)、测量启动技术、可信启动技术、信任动态根(DRTM)和信任静态根(SRTM)技术。然而,并不知道这些解决方案能够解决特定于装置固件、整个主机和其它这种硬件方面的各种问题。
根据不同实施方案的系统和方法可防止及/或监控用户在云或类似电子环境中对固件镜像或配置信息的访问和/或操作。在特定实施方案中,可为客户提供对硬件资源的专用访客访问权达任意所需时间期限,诸如数小时或甚至数秒。图3图示根据一个实施方案的可用于提供这种本机访问权给客户的的配置300的实例。将参考使用常规的基于PCI的技术授予对主机中的外围装置的用户访问权而讨论本实例,但是应了解这只是一个实例且不同实施方案范围内的方法可结合与目前使用或后续为这种目的而开发的任意适当硬件(包括基于不同的总线技术或以个别组件或“芯片”内的更大或更小程度的系统集成)、软件和协议使用。
本示例性配置300包括一组主机装置302,诸如服务器或类似装置,其各可具有一系列网络端口304。这些端口的一些可充当“生产”端口,其将每个主机连接至能够处理和路由至/来自每个装置的网络流量的至少一个网络开关306。在一些实施方案中,网络开关可以是“智能”网络开关,而在其它实施方案中,隔离可在网络中比第一层开关更高的级别下发生。例如,在数据中心实例中,针对每个机架的服务器308可能存在一个智能开关。这些网络端口304的至少一个可托管访客操作系统的流量,其中访客在具有对这个生产网络端口的访问权的分配或分区主机装置(例如,伺服器)302中的至少一个中央处理器(CPU)310的顶部上有效运行。主机装置302还可具有至少一个控制台端口312和控制台控制器314,其可连接至单独的控制台网络316。也可使用与“生产网络”相同的网络技术(诸如以太网技术)实施这种“控制台网络”。在一些实施方案中,这些端口的至少一些可合并但逻辑分离(例如,在相同物理端口上多工)。每个主机装置还可具有一个或多个专用电源单元(PSU)318,其可由控制台控制器和/或主CPU访问,由此,例如,机器可经由主机CPU或网络上的装置断电。机架中的每个服务器的电源可连接至机架配电单元(PDU)320,其可通过更高的电力电缆连接至一个或多个数据中心PDU 322,每个数据中心PDU 322可支持多个机架PDU。在一些情况下,可通过从机架PDU铺设线路至控制台控制器,由继电器或其它这种组件使每个装置重新通电而使主机302通电和断电。
至少一个路由器324可将主机装置连接至一个或多个供应系统326,并且开关和/或路由器可管理对这些供应系统的访问。在一些实施方案中,机架内的网络流量被聚集以便使离开每个机架的电缆数最小化。在一些实施方案中,诸如预启动执行环境(PXE)的能力存在于生产网络端口304上的主机302上,使得电力可使用控制台循环且当机器启动时,PXE代码可在网络端口上执行。还可取决于已被授权的重新启动的类型启用或停用PXE访问。例如,对于客户起始的重新启动,可允许来自主机上的局部镜像的重新启动,但PXE访问可在上游停用。当开关306被配置来将主机302连接至供应系统时,PXE可将装置连接至供应系统并且将机器启动至RAM(随机访问存储器)盘或其它存储块,例如,其启用诸如固件刷新或供应新客户镜像的控制操作。在一个实施方案中,具有专门驱动器的RAM磁盘可用于启动和/或运行可能无法另外在特定机器上启动的不受信任或未知镜像。供应镜像因此可经由网络接收至PXE,其含有供应代码或固件刷新代码。一旦供应完成,经授权客户网络328可经由开关306与装置302互动。供应和控制系统可在无需人参与的情况下实时控制开关,因为例如所述路径的自动切换可基于供应事件和外部协调。协调可由外部系统提供和/或管理,诸如云管理器数据库和系统330或如本文其它地方所述的其它这种控制平面或控制系统,其可命令供应系统326、控制台网络316和机架组件执行某些行动。云管理器330可包括一个实施方案中与中央数据库协作以执行资源管理的不同方面的一个或多个工作流系统。
在诸如其中不同物理服务器可用于在不同时间托管客户的云计算环境的环境中,可能需要提供用户或客户网络的抽象级以避免对可随时间而改变的资源分配的依赖性。也可使用覆盖网络技术实现虚拟网络设备表示,诸如客户网络路由器和客户网络防火墙。例如,在至少一些实施方案中,可通过经由将多个计算节点分离的一个或多个中间物理网络创建覆盖网络而提供客户的虚拟局部网络或多个计算节点之间的其它虚拟网络。在不同实施方案中,覆盖网络可以不同方法实施,诸如通过封装通信及在用于一个或多个中间物理网络的组网协议的较大物理网络地址空间中嵌入虚拟网络的虚拟网络地址信息。
这允许客户利用用于在客户网络中对资源寻址的标准化地址空间。通过利用标准化地址空间,客户可创建“虚拟”或覆盖网络,其可使用通用基地址、子网络等,而无底层网络置于物理地址空间上的限制。
使用虚拟化,可产生许多虚拟机实例,其对于用户表现并且作用为客户网络的一部分,但是被映射至单独或远程云、网络等中的实际服务器或其它物理资源。如所讨论,使用标准化地址空间可能要求建立并且维持物理底层地址与用作客户地址空间的虚拟覆盖地址之间的映射。在一些现有方法中,运行在主机装置上的中央处理器可控制虚拟地址和物理地址的映射使得接收自客户的请求可定向至适当资源。例如,这可采用数据包封装和解封装的形式,其中物理地址和/或报头信息可在不同时间与虚拟地址和/或报头信息“共存”,使得数据包可由客户网络上的源寻址至虚拟地址,但是可被正确地路由至适当的物理地址。
例如,图4图示其中根据一个实施方案,接收自客户或“覆盖”网络的数据包400被封装以在其上托管虚拟云环境的物理底层网络内路由。在本实例中,所接收的客户数据包400包括三个主要部分:虚拟地址402(诸如与客户覆盖网络相关的“虚拟IP地址”,本文中标注为“IPV”)、协议报头404(诸如如因特网协议组中存在的原始传输控制协议报头,本文中标注为“TCPO”)和数据或“有效载荷”部分406。虚拟IP地址可能是仅与客户或覆盖网络相关的地址。为了将数据包适当地路由至所要目的地主机,这个数据包可被封装以包括“外部”数据结构或帧,其可在底层网络或云或其它这种资源分组内路由数据包。在本实例中,封装过程示作产生“底层”数据包或数据报410,其包括原始客户数据包的IPV、TCPO和有效载荷但已将附加“报头”信息附至此,在此包括物理或“实”地址412(诸如云的底层网络内的IP地址或“IPR”)和控制报头414(诸如可由控制平面用于处理和/或路由数据包的协议报头)。在未附上任意这种“实”信息的情况下,托管云基础架构的路由器和其它这种组件通常无法适当地将数据包路由至适当目的地,因为客户路由信息(例如,由402具体体现)仅对客户的覆盖网络有意义而非云主机资源所连接的物理组网基础架构。在一些实施方案中,接收至云中的装置的任意客户数据包可被封装以包括将在云内使用的这种物理路由信息。由于将在云中接收数据包的第一装置可被视作在云的“边缘”上,所以在本文中这些装置将被称作“边缘”装置。如本文中所使用的“边缘”装置可指能够从云外接收信息数据包和/或能够从云内传输信息数据包的硬件和/或软件中的任意装置。在一些实施方案中,封装过程可在任意适当边缘装置上发生,而在其它实施方案中,边缘装置可将数据包路由至能够封装或解封装数据包的封装组件或其它装置。如应了解,当数据包将被传输回客户网络或以其它方式在云外传输时,可执行“解封装”过程,其中IPR 412和控制报头414被移除并且可使用客户网络的虚拟地址空间信息路由数据包。为了简化的目的,将参考不同实施方案讨论封装过程,但是应了解根据不同实施方案也可使用这种组件和过程执行解封装过程。
某些常规方法对诸如主机装置和服务器的硬件执行封装级。在这些方法中,中央处理机可执行封装程序已将所接收的数据包路由至网络端口、网络接口卡(NIC)或类似装置。封装过程通常不暴露给用户。在一些实施方案中,NIC的驱动可由处理器直接访问使得处理器可在经由NIC路由至或来自客户网络的数据包之前访问映射机制或分布式映射服务以将物理底层数据包映射至虚拟覆盖数据包且反之亦然。在一些情况下,映射信息可从集中式服务分布至跨云的每个适当节点。
然而,如所讨论,资源提供商可能想具有为用户或客户提供对硬件资源(诸如主机)的基本上完全的本地访问或“裸机”访问的能力。例如,如果映射由在主机的CPU上执行的应用程序管理,那么映射可能潜在地被在主机上执行的用户或访客操作系统(OS)访问。这种访问会潜在地损害映射服务并且会使得访客操作系统能重定向数据包、拒收数据包或以其它方式影响云网络中数据包的处理。此外,这种功能可能受损害使得数据包会被发送至云外的非期望位置。其它潜在问题包括“数据包伪装”,其中主机发送表现为源自不同主机或位置的数据包。这通常用于混淆,其中对抗性攻击来自并且也可以是“基于ACK”的拒绝服务(DoS)攻击的基础,其中作为标准网络协议的部分的确认数据包被发送至从未启用传输的主机等。当访客OS或CPU潜在地具有对映射和/或封装功能的访问权时,会出现各种其它潜在问题。
因此,根据不同实施方案的系统和方法可提供不同用户对资源基本上“裸机”的访问,同时使用未暴露给所供应的主机上的客户、访客OS、CPU或其它这种潜在的操作源来执行诸如封装、解封装和无状态防火墙操作。图5图示根据不同实施方案的可用于执行数据包处理和其它安全组网功能的配置500的实例。在本实例中,数据包在客户可访问的主机资源的“上游”封装,在此在网络卡级上封装,诸如就在数据包被帧化用于物理互连传输(例如,以太网帧化)之前。在本实例中,可见减负装置506具有外部端口508,其可与诸如云管理器504和映射服务502的组件通信。外部端口508可使得这些组件能独立于主机516上的CPU514或供应在主机上的任意访客镜像518或访客OS与减负装置通信。使用这样一种方法,传输至或传输自云的任意数据包可独立于访客可访问部分被处理使得映射无法被用户访问或修改。在本实例中,减负装置可具有存储器510和至少能够执行基本映射、封装、解封装和/或类似这种功能的处理装置512。这在本文中将通常被称作“基于减负装置的”封装,但是应了解其它外围装置或硬件组件可执行类似功能且功能不限于封装而是还可包括诸如解封装、防火墙等的其它功能。减负装置可充当未暴露给用户或访客操作系统的主机中的嵌入系统。在用户可能想要对减负装置的至少一些功能的本机访问权的情况下,减负装置可仅具有针对访客OS映射的特定存储器部分,使得仅一些功能可被访问。在一些实施方案中,这可采用虚拟减负装置镜像的形式,其中访客OS可发现和/或利用减负装置的部分,但无法访问用于安全行动(诸如封装)的部分。
基于减负装置的封装功能可按每个主机提供或至少针对能够接收和/或传输数据包和/或其上能够供应有客户镜像的那些主机提供。在这种情况下,云管理器504或类似组件或系统可管理映射信息至不同主机和/或节点的分布以及可用于这种过程的其它这种方面和配置信息。在这种情况下,云管理器可经由外部端口508与减负装置506通信以更新配置信息、固件或可用于执行封装和类似这种行动的其它信息。用于经由外部通道更新配置信息的过程公开于同时申请的2009年9月4日申请的美国专利申请案第12/554,690号[ATTYDOCKET 026014-010700US]中,其以引用的方法并入本文中。使用这样一种方法,减负装置的固件和/或配置信息可被更新以执行所要功能以及根据需要与映射装置502或其它适当组件通信。配置可定期更新,如可由云管理器和/或映射系统管理诸如以发送大的有效载荷或另外调整减负装置的功能。
在一些实施方案中,封装和类似过程可在未暴露给用户的其它组件上执行,诸如被配置来路由至和来自主机516的减负装置506和/或网络端口520的消息的智能开关520。这样一种开关可包括可操作以执行诸如数据包封装的操作的处理器522,由此开关可将数据包处理并且路由至物理和/或虚拟地址空间中的适当地址。在这种情况下,(从地址空间的角度看)主机可被视作在云或可信环境外,由此开关可充当边缘装置并且将接收自主机(和客户网络)的虚拟地址空间的数据包修改至云中资源的物理地址空间。在不同实施方案的范围内,也可使用多种其它组件,诸如路由器或专用边缘装置。
许多常规系统中的限制之一在于物理传输路径或“线”仅可允许信息的相对较小数据包,诸如1.5KB或9KB数据包。较小数据包的使用并非严格意义上的物理考虑,而是也因历史和协议定义原因所致。例如,在其中大多数或所有链路被切换且传输率高的现代网络中,这种限制可增大达多个数量级而不过度增加冲突。即使物理网络接口(诸如减负装置)仅可传输或接收1.5KB或9KB数据包,在至少一些实施方案中仍需将较大数据包从DOM-U传输至DOM 0网络堆栈及至减负装置上并且使减负装置将较大数据包分割为多个1.5KB或9KB数据包。许多消费型减负装置支持先进功能,诸如分割减负以解决这种要求。具有分割减负能力的减负装置可被配置来接收和/或缓冲相对较大的数据包并且将所述较大数据包分割或帧化为符合1.5KB、9KB或其它这种大小限制的较小数据包或以太网帧。接收这些数据包的装置可被配置来基于多个较小数据包重组较大数据包。
许多减负装置提供先进的部件,诸如可协助高速组网的TCP分割减负。根据不同实施方案的系统和方法可利用这种部件来提供“虚拟”组网,诸如其中客户具有对座落在客户地址空间和提供商网络地址空间之间的主机装置的访问权。通常,分割减负功能仅与已知的四级(“L4”)协议(诸如TCP)协作。当诸如在参考图4的前一段落中所述数据包被封装时,L4协议改变为除TCP以外的协议。因此,减负装置上的分割减负部件无法在这种被封装数据包上运行。如在本技术中用于描述物理硬件(“一级”)与运行在所述硬件上的应用程序(七级)之间的层,四级指“协议”级,其在因特网协议的情况下可指诸如传输控制协议(TCP)和用户数据报协议(UDP)的协议。接收侧TCP段处理假设TCP段有效载荷完全是客户数据(或其它这种数据)。因此,在传输侧上,封装相关的元数据无法添加至L4有效载荷以保持原始L4报头,因为元数据的添加会导致接收侧损坏具有封装/解封装元数据的数据包有效载荷。
现有封装和/或覆盖网络实施方式存在的另一个潜在问题在于报头通常不包括物理端口信息,其被常规硬件装置用于诸如路由和载荷平衡的目的。
不同的实施方案可利用具有伪造或在一些情况下原始端口数的伪造TCP报头,其中报头依照现有协议规则(例如,TCP选项)扩展且封装/解封装信息在协议扩展中传递。例如,除任意适当的TCP相关信息外,“伪造”TCP报头可包括任意的常规适当端口信息。通过包括这种伪造端口信息,常规路由器和其它这种装置可获得改进的载荷分布,因为许多常规的硬件装置将载荷分布决策至少部分基于报头中指定的端口。例如,路由器或减负装置可看见IP地址和TCP信息并且将数据包处理为标准数据包。这样一种方法可为有利的,因为其可主要使用常规的硬件装置和网络实施在软件中。
也可使用不改变四级有效载荷的协议(如上所述,在网络堆栈中)。接收自用户的原始数据包可包括有效载荷(在此是四级有效载荷),连同虚拟IP地址(网络堆栈中的三级)和原始TCP报头(四级)。使用如上所述的封装方法,控制主机可附上实地址,诸如IPR和伪造TCP表头TCPF(或例如,UDPF)用于在物理或安全网络中路由数据包(或帧)。对于封装后的数据包,原始虚拟IP地址、TCP(或UDP等)和有效载荷信息现有效形成四级有效载荷,IPR形成三级地址且TCPF形成四级协议报头。由于数据包具有原始或伪造端口数,因此这样一种格式还可解决诸如上述的路由器ECMP散列问题的问题。但是常规的NIC或类似装置不知如何根据经封装的帧适当地分割64K或类似数据包,因为NIC将无法适当地解释现含在四级有效载荷内的信息。此外,如所讨论,已通过包括IPV和TCPO信息而改变四级有效载荷。
不同实施方案可取而代之利用稍作修改的协议格式以处理经封装数据包。常规协议在TCP报头末端上提供额外空间,其通常允许被称作“TCP选项”或“TCP附加组件”的项目。这些TCP选项使得TCP协议能扩展为包括附加部件。在一些实施方案中,TCP数据包可有效扩展达大约24字节,附加信息被声明为TCP选项。如应了解,在不同实施方案中和/或实施方式中数据包可扩展达不同数量且24字节扩展只是一个实例。伪造TCP报头因此可包括原始TCP信息,加上控制报头信息。虚拟IP地址的信息还可包括在这种TCP选项空间中。因此,取代在封装期间添加实报头和修改有效载荷,IPV和TCPO信息可包括在伪造TCP的TCP选项段中使得有效载荷或数据部分不变。
在相对于虚拟化环境管理数据包信息的示例性过程中,接收包括虚拟地址信息的数据包。如果接收至主机或用户已具有基本上完全的访问权的其它机器,那么数据包被定向至用户可控制硬件上游的一个或多个装置或组件使得用户无法修改路由和其它这种处理。在一些实施方案中,在组件之间,诸如从访客至DOM-0传输的数据包的大小可高至64KB且因此可能需要分割。可诸如通过联系映射服务以确定对应于虚拟地址信息的物理地址信息而确定数据包的映射信息。地址信息可添加至所接收的消息,诸如至报头(诸如IPR段),其中地址信息对应于数据包所定向的物理地址。虚拟地址信息可在不修改有效载荷的情况下添加至数据包的协议报头(诸如TCP报头),使得数据包仍可被消费型硬件路由、分割和另外处理。数据包被传输至减负装置,其可使用TCP分割减负功能分割数据包并且将所得数据包传输至线及最终目的地上。如应了解,类似功能可用于处理接收自物理地址空间的数据包,其中针对数据包确定映射信息并且添加虚拟地址信息至数据包。在虚拟映射信息未指定端口的情况下,可使用“伪造”端口,其使得数据包能在其至虚拟目的地的途中被处理,诸如以实现载荷平衡或类似功能。
在用于相对于虚拟化环境管理数据包信息的类似过程的实例中,以太网帧被接收至物理网络接口(例如,NIC),其中帧包括物理地址信息。在一些实施方案中,具有诸如IPR和TCPF的信息的段可合并以产生一个或多个较大段,其可改进性能。这还可通过支持接收侧合并的消费型NIC完成,因为数据包格式依照所有TCP格式规则且TCP有效载荷与客户数据包的有效载荷完全相同。减负装置(或其它这种装置)在用户可控制硬件的上游使得用户无法修改路由和其它这种处理。例如,虚拟地址信息可在移除报头和报尾帧化信息后提取自有效载荷的协议报头(诸如TCP报头)。虚拟地址信息可用于组装提取自所接收的以太网帧的数据包的报头。随后可诸如通过将数据包传输至虚拟地址空间中的目的地而处理数据包。如应了解,类似功能可用于处理接收自虚拟地址空间的以太网帧,其中虚拟地址信息提取自数据包的报头。
然而,在一些实施方案中可能无需简单扩展TCP报头,就像所接收的每个数据包是1.5K且24字节的信息被添加至这些数据包的每个,随后数据包现将各超过1.5K传输极限且各将需被划分为两个数据包,其可导致不需要的开销量和附加流量。因此在至少一些实施方案中,可能需要在不显着增大开销的同时利用这种附加信息。
不同实施方案利用每个数据包在分割时无需诸如IPV和TCPO信息的信息,而是可在合并时确定的事实。一种方法因此是取得IPV和TCPO信息等的附加信息(在一个实例中大约24字节)并且创建编码信息(在一个实例中大约120字节),其在一个实施方案是不同实施方案中的信息的大约一至五个实例,但是也可使用其它长度的编码信息,诸如可取决于散列技术。可使用散列或类似机制重建编码信息使得原始信息可重建自至少24字节的散列元数据,其可从经分割数据包的一个或多个实例获得。因此,例如,取代添加24字节至每个数据包段,附加的大约120字节可分割为适当片数并且可沿着有效载荷策略定位,诸如在数据将被分割的边界上。例如,减负装置或类似装置可了解数据将基于特定位置上的大小(包括附加的50字节)自动分割。由于这些分割位置是已知的,所以减负装置可在这些分割线(或另外在不同段内)插入附加信息的实例使得至少五个1.5K数据包(或任意其它适当数量的适当大小)中将存储IPV和TCPO的信息,但是每个数据包将不包括所有10字节的附加信息。
当接收到数据包时,合并过程可如使用常规系统一样发生。当1.5K段被组装为64K有效载荷时或在合并过程期间,信息的部分可用于重建IPV和TCPO信息等。例如,使用散列过程及在不同数据包之间分布信息的优点在于即使一些1.5K数据包丢失,IPV和TCPO信息仍可重建,只要接收到具有信息部分的至少两段。整个有效载荷可能无法重建,但是至少报头信息可重建。此外,接收装置可简单请求未接收到的所述1.5K段(例如,以太网帧),因为报头信息可重建且因此无需请求整个有效载荷的重新发送。这样一种方法可具有少得多的抖动方差,因为通常无需重新发送大的数据包,其可能导致大的性能变化。例如,在视频流量的情况下,只要丢失的数据不大,丢失的流量就可忽略且因此在至少一些实施方案中无需被请求。这是能够成功接收部分段的优点。
在用于在虚拟化环境中处理数据包的示例性过程中,数据包接收自客户地址空间,其包括虚拟地址信息。如所讨论,接收自用户的初始数据包可为具有IPV和TCPO信息的64K数据包。数据包可接收至或定向至控制主机或另一个这种安全组件,其至少部分无法被客户分区装置的用户访问。可使用安全组件(诸如如上所述通过联系映射服务)将虚拟地址信息转换为实地址。若需要,TCP报头(或另一个协议报头)可更新,但是诸如IPV和TCPO信息的附加信息可取而代之插入数据中。当将IPV和TCPO信息添加至数据时,这种“虚拟化”信息可散列或另外分割为多个部分。如果尚未确定,那么安全装置可发现传输路径的分割极限并且可确定用户有效载荷的段的边界。虚拟化信息的部分可邻近有效载荷的中心数据包中的分割边界放置或相对于其定位。“新”数据包或帧随后可传递至减负装置或其它这种安全装置上,例如其可将数据包自动分割为一组确定大小的数据包,诸如1.5K数据包,段数至少部分取决于总数据包的大小。可使用减负装置或其它这种装置的分割减负过程针对每个数据包复制IP和TCP报头,潜在地一些小变化补偿大小的总体变化。然后,可将数据包传输至目的地。
类似过程可用于针对虚拟化环境处理数据包,其中接收到一组以太网帧,至少一些以太网帧包括已被散列或另外分割为多个部分的“虚拟化”信息。虚拟化信息可提取自每个帧的底层段,其包括相关有效载荷中的虚拟化信息的一部分。虚拟化信息(例如,报头数据)被重组,只要接收到包括虚拟化信息的足够数量的帧且所接收的数据包可合并至可行的程度。如果未接收到所有帧,但报头数据能够重组,那么可仅针对丢失段发送请求。
当最终在目的地或沿着至目的地的路径的装置上接收到至少绝大多数数据包时,装置可试图将这些数据包合并或重组为至少一个较大段(若非完整64K或其它数据包)。在至少一些实施方案中,只要接收到在有效载荷中具有附加报头信息的两个数据包(或比在分割期间原始产生的少的数量的数据包,其中通过特定散列技术确定所需数据包的数量),这些数据包就可用于重建报头数据及合并数据包,用虚拟或客户网络的信息替换实地址和协议信息,由此较大的组装段可传递至客户或其它目的地。在一些实施方案中,合并可在减负装置或类似装置上发生,而在其它实施方案中,合并可使用接收装置上的访客操作系统等发生。此外,上述过程的不同步骤可以任意适当顺序或并列执行且较少附加或替代步骤在不同实施方案的范围内是可行的。
使用虚拟化,可产生许多虚拟机实例,其对于用户表现并且作用为客户网络的一部分,但是被映射至单独或远程云、网络等中的实际服务器或其它物理资源。如所讨论,使用标准化地址空间可能要求建立并且维持物理底层地址与用作客户地址空间的虚拟覆盖地址之间的映射。在一些现有方法中,运行在主机装置上的中央处理单元可控制虚拟和物理地址的映射使得接收自客户的请求可定向至适当资源。例如,这可采用数据包封装和解封装的形式,其中物理地址和/或报头信息可在不同时间与虚拟地址和/或报头信息“共存”使得数据包可由客户网络上的源寻址至虚拟地址但是可通过添加而适当地路由至适当的物理地址。
框架可通过常规或其它组网组件(诸如消费型NIC装置)实施,其可使得这些组件能支持多个协议,诸如多种不同标准和专有协议。这些消费型装置随后可提供提高的性能和独立于数据包的客户特定格式用于这些装置的常规协议的其它优点。例如,NIC供应商可实施一种框架,其使得NIC能被具有任意兼容协议的客户使用,无需针对特殊硬件的任何自定义或需求。
在一个实例中,网络环境中的减负装置可处理TCP段。客户网络可利用一种大小(例如,64K)的数据包,其通常无法从减负装置中传出至网络上,因此减负装置可能只能够传输例如,大小为8K或9K数量级(其取决于网络配置和其它这种问题)的网络数据包。如上所述,存在允许较大数据包在减负装置上分割为适当大小(例如,1.5K或9K等)的多个以太网帧的技术。例如,TCP分割减负(TSO)和接收侧合并(RSC)可分别用在出口和入口终点上以通过使得主机能处理较大TCP段(例如,大小64K)而增大网络吞吐量性能。TSO是一种用于将TCP数据包分割为适当大小的段以经由网络传输的技术且RSC使得这些段能在网络的另一侧上重组。然而,通常,诸如TSO和RSC的技术不支持封装有专有协议信息(诸如图4(b)中所示的附加报头信息)的数据包。例如,使用专有格式封装的数据包通常大于TCP数据包且无预期的TCP报头信息,使得减负装置无法识别这些封装的数据包。
然而,通过实施适当的框架,减负装置或其它适当网络组件可具有将封装的数据包映射至组件可理解为TCP数据包的某物的能力和规范。例如,一旦减负装置将数据包识别为TCP数据包,减负装置就可分割数据包、添加适当的报头和/或进行减负装置通常对常规TCP数据包完成的任意其它事项。甚至对于用任意多种不同协议封装的数据包,TSO和RSC可提供显着改进(例如,高达80%性能提高)以及其它完善的优点。此外,通过实施框架,减负装置不仅可结合不同协议使用,而且可使得客户可升级或改变协议而无需购买、更新或修改其现有硬件。
非透明域可结合封装的数据包使用以包括被特定格式或协议(诸如GRE或其它这种协议)的客户网络利用的任意信息。在至少一些实施方案中,非透明域是基于TCP或UDP的报头或其它这种协议报头。在一个实例中,非透明报头具有在非透明字段中指定偏移量下的第一组信息,其指示或识别特定格式的段或数据包。例如,信息可以是两字节字段,其包括对应于特定格式的值。网络硬件可含有来自第一偏移值的值和相应格式的映射或具有对其的访问权以从第一组信息的值中确定适当格式的数据包。
在本实例中,非透明字段还包括非透明字段中指定第二偏移量下的第二字段的信息。这种第二字段可为适当长度(诸如两个字节)并且可包括如可用于合并的指定流标识符的值或特定流量流的标识符。在一些实施方案中,这种字段可识别唯一TCP流(或其它流,诸如UDP流)连同在对特定格式数据包执行TSO或RSC运算时的常规5元组。
这些实例可对应于特定协议的环境,例如其中报头具有诸如数据包所属虚拟网络、数据包所源自的虚拟机和/或数据包正前往的虚拟机的信息。在通用TCP流内的数据包之间这种信息不会变化。槽ID或虚拟机标识符可用作连接信息,因为例如,在虚拟化网络环境中,可能在属于两个不同虚拟网络的相同物理主机上存在两个不同虚拟机。所述虚拟机可能具有完全相同的IP地址并且可能潜在地与恰巧具有相同端口和IP地址的某人通信。从TCP的角度看,5元组可完全相同。其它信息(诸如源IP和目的地IP、源端口和目标端口等)也可完全相同。因此,从TCP的角度看,连接表现为相同连接,但可能实际上在两个不同的私有网络中。槽ID的使用可唯一地区分这些情况。如应了解,对于其它协议,可使用除虚拟机标识符以外的值。
在一个实例中,封装的数据包被接收至减负装置。减负装置可使用框架规范分析数据包以识别数据包被封装且需不同于常规TCP或UDP数据包处理。在一个实例中,封装的数据包包括内IP报头和外IP报头。封装的数据包还具有非透明字段(其可表现为有效载荷的部分),其可用作协议特定信息。非透明字段的长度和其中所含的信息可在实施方案之间变化。为了识别数据包被封装,外IP报头可含有预配置的协议信息。此外,数据包可在非透明字段中含有至少一个两字节字段(但是在其它实施方案的范围内也可使用其它大小和位置)。两字节字段可与非透明字段的开端相距预配置距离且两字节字段的值也可预配置。外IP报头中协议信息与非透明字段的两字节字段中的格式信息的组合可使得减负装置或另一个网络组件能识别数据包被封装以及封装格式。由于减负装置未另外考虑非透明报头中的其它信息,所以非透明报头可包括特定于任意特定协议的信息而不影响减负装置对数据包的处理。非透明报头中的两字节可识别特定格式的数据包,其可协助确定处理数据包的规则或政策。基于外IP报头和非透明字段中的这种信息,减负装置可分析每个所接收的数据包以确定数据包是否可使用常规方法处理或数据包是否是封装的数据包以及是否应根据框架指定的特殊规则处理。
例如,在TSO过程期间,可对从内IP报头开始的TCP段数据使用标准算法而执行入口(例如,输出)TCP段的分割。大的封装数据包被分割为许多一种大小的数据包,使得段能经由网络传输。为了使框架也能与无状态隧道协作,非透明字段被逐字复制至每个所得分割的TCP/IP数据包并且被放置在内IP报头与外IP报头之间。外IP报头被复制至每个所得数据包且可使用应用于内IP报头的相同逻辑进行适当调整,诸如“长度”信息的变化。此外,可连同IP报头的检查和产生IP ID(其是IP报头的一部分)。
类似地,在RSC过程期间,具有特殊协议格式信息的数据包或段的TCP流由TCP端口的常规5元组、内IP地址、内IP协议字段和内L4端口(例如,TCP端口或UDP端口)以及与非透明字段的开端具有预配置偏移量的附加两个字节定义。应了解,特殊格式数据包的TCP流不会与常规数据包流重叠。此外,应了解,为简化说明的目的,诸如“数据包”的术语在全文中使用,但是在其它位置或实例上,过程可能涉及更普遍地称作段或帧的对象且在本文所讨论的过程中的不同点上单个对象的通用名称可能在这些和其它术语之间变化。
对从内IP报头开始的TCP数据包数据使用常规算法而执行RSC。当合并相关TCP数据包时,来自第一TCP数据包的非透明字段可复制至内IP报头与外IP报头之间的所得TCP段。所得TCP段的外IP报头可以与内IP报头合并的相同方式合并。如果存在对IP标志的限制(例如,“禁止分割”或“更多位”),其迫使入口数据包对于RSC而言不适当,那么限制可应用于内IP报头和外IP报头中的IP标志。
RSC可针对接收到数据包的每个连接维持散列桶(hash bucket)(或其它队列或临时存储位置)。当接收到TCP数据包时,接收装置随后可使用诸如IP和TCP信息以及外TCP报头中的序号位的信息确定数据包所属的连接并且可将数据包排队至适当的散列桶。对于已存在数据包的桶,网络组件可试图合并分割的数据包直至合并出完整的数据包。常规的标准可适用,诸如当大小达到特定阈值或数据包排队达特定长度或时间范围时,将合并的数据包发送至操作系统上。
然而,在至少一些实施方案中,连接概念将不同于标准TCP数据包处理的连接。取代上述常规5元组,连接将基于6元组确定,其包括5元组的标准TCP连接信息连同两字节非透明字段中识别的新的一段连接信息。一旦网络组件使用特殊规则断定数据包将被处理,组件就使用6元组而非5元组来断定连接信息并且随后基本上与针对常规数据包相同地执行RSC过程以合并数据包、检查序号等。
此外,在许多情况下,RSC还需抛弃除被合并的数据包之一外的所有非透明位,诸如在一些实施方案中第一个接收的数据包。在一些实施方案中,当非透明字段不匹配时,RSC无法执行使得来自其它数据包的非透明字段至少直至所述数据包可被另外处理都不会被抛弃。在接收并且存储(例如,至少临时存储或缓存)非透明位的一个副本后,匹配非透明字段的所存储副本的将合并的所有其它数据包的非透明位可被减负装置抛弃。此外,由于数据包的总长度在合并期间变化,所以减负装置将需针对外IP和内IP报头对检查和、IP报头标志或其它这种信息进行适当调整。在非透明字段和其它位置中,字节计数和其它方面也可能被改变。除用于识别的两字节(或n字节)信息外,预期对于特定TCP流内的所有数据包,其余非透明位将完全相同。在一个协议实例中,非透明信息可能对应于特定网络标识符。还可能存在其它信息,诸如虚拟机标识符或槽ID,其将对于TCP流中的每个数据包都相同。尤其是,n字节可识别数据包为对应于特定虚拟机。
在许多实施方案中,框架依赖特定预配置值。例如,如上所述,框架可依赖预配置长度的非透明字段以及识别所接收的数据包的特定或特殊格式的IP协议值。在一些实施方案中,非透明字段的长度对应于特定格式的数据包的报头的长度。IP协议值可为特定协议的任意适当标识符。框架可预期预配置非透明字段中识别格式的n字节字段的偏移量。在一些实施方案中,这可对应于特定端口值。
非透明字段的特定预配置值可针对特定协定变化。例如,在一个实施方案中,GRE支持的非透明字段的长度可为16字节,识别特定数据包或段格式的IP协议值设置为诸如47的值。识别唯一流的偏移值可设置为诸如10的值以指向‘键’字段的一部分或其它这种值。
在示例性协议的情况下,非透明字段的长度可匹配协议特定报头的长度,值为诸如20。识别特定协议的数据包或段的IP协议值可设置为UDP的IANA协议数,值为诸如17。非透明字段中识别特定格式的数据包或段的偏移值可至少部分依赖所使用的特定UDP端口,诸如具有值2的UDP目的地端口。在执行TSO或RSC时识别唯一流的字段值可指定源槽和目标槽ID连同常规连接5元组以识别唯一TCP流。应了解类似方法可用于确定不同实施方案范围内的其它协议的值。
如上所述,诸如云计算平台的环境的一个目标可能是为每个客户提供一部分网络基础架构专属于所述客户的错觉。为了提供这种错觉,平台需提供特定性能级,诸如可包括低抖动、低延迟和高吞吐量网络性能。虽然抖动应总是普遍低的,但是针对给定实施方式的低延迟和高吞吐量的定义取决于诸如物理网络设备和产品设计的因素且将在实例之间变化。也可通过使得客户能定义自定义的二级(L2)或三级(L3)网络拓扑,而无由其它客户偏好导致的寻址限制而部分提供错觉。在特定环境中,诸如在由华盛顿州西雅图的Amazon.com,Inc.提供的虚拟私有云(VPC)环境中,可自定义的L2或L3可路由网络的选项大体上经由IP地址隧道的完善的软件实施方式实现。然而,在这些软件实施方式的至少一些中,可能难以在虚拟化环境中维持低抖动、低延迟和高吞吐量组网性能。随着当前硬件趋势继续朝向每个主机更多核心、RAM和虚拟机的方向发展,对组网子系统造成越来越大的负担,问题可能进一步恶化。虽然可通过使端到端软件堆栈最佳化而获利,但是在至少一些环境中可有利地提供网络资源虚拟化的硬件协助。
为了满足上述目标的至少一些,诸如不同减负装置的硬件可能需要包括不同部件。如本文中所使用,“基于硬件的”处理通常指其中硬件装置执行所述处理的至少一部分的任意处理或其中处理组件本文呈现为物理装置(例如,NIC),但是可能实际上实施为硬件和/或软件。在一些实施方案中,基于硬件的处理可能通过表现为将作为至少一个硬件组件的系统组件的一般减负装置或嵌入系统提供。作为一个实例,可使用自身呈现为SR-IOV装置的一般减负装置。这些部件的讨论将通过给出所提出的出口和入口路径的高度概述,随着给出有关可根据不同实施方案实施的个别阶段的细节而提供。例如,图6图示这样一种虚拟数据包的示例性格式600。图7图示根据至少一个实施方案的可结合虚拟化数据中心中的客户的这种客户数据包使用的示例性减负硬件出口过程700的高度概述。作为出口过程的部分,指派给客户虚拟机的SR-IOV虚拟功能(VF)接收前往客户的虚拟网络702的出口数据包。在这种初始状态中,数据包报头600的内组件608、610、612存在,而外组件602、604、606和614不存在。一个或多个一般检查可应用于出口数据包704。例如,这些检查可包括L2和/或L3源防欺骗以及针对所有非IP和广播数据包的捕获(即,以服务DHCP、ARP等)。减负装置可在预填充的规则表706中执行查找,诸如可基于具有子网掩码的L2目的地和L3目的地,一般情况是指定单个目标的IPV4“/32”子网。假设具有转发规则类型的规则命中,规则可还在系统存储器中指定指针至减负装置将前置于输出数据包的隧道报头。此时,数据包还可包括初始外组件602、604、606。减负装置可执行一个或多个度量更新708,其将在下文中更详细讨论。
至少部分基于规则匹配(或缺少规则匹配),减负装置可确定采取的适当行动710。行动可包括例如捕获至可信根域712、丢弃数据包714或转发具有封装和/或修改的数据包716。如果减负装置决定将数据包捕获至可信域712,那么驱动器调用可允许可信域执行数据包的进一步基于软件的处理。如果减负装置决定丢弃数据包714,那么不会进行进一步处理(在至少一些实施方案中)。如果减负装置取而代之决定转发数据包716,那么在数据包可被释放至物理网络上之前可能需要进一步处理。在本实例中,诸如在下文中进一步详细描述,减负装置对数据包718采取节流和QoS行动。减负装置还可建立及/或修改将馈送至减负引擎720的最终数据包。外数据包报头组件602、604、606可前置于数据包。这些可基于前一规则匹配经由分散和/或收集DMA连同数据包字节检索。减负装置随后可执行减负720,包括TSO(若适用)。如下文更详细讨论,数据包报头字段可视情况更新,包括但不一定限于内IP长度和外IP长度、内TCP检查和和外TCP检查和(即,若IP协议是TCP)、内L2 MAC源和目的地地址和内L3IP TTL。
图8图示可根据至少一个实施方案使用的虚拟化数据中心中的客户数据包的示例性减负装置基于硬件的入口过程800的类似高度概述。在本示例性过程800中,数据包接收在减负装置物理功能802上。减负装置可建立规则查找键,如下文更详细讨论,其将建立用于后续规则处理804。减负装置随后可基于得到的查找键806在预填充的规则表中执行查找。减负装置可视情况执行不同的度量更新808并且至少部分基于规则匹配(或缺少规则匹配)810而确定采取的适当行动。在第一行动中,减负装置可决定将数据包捕获至可信根域812。在此情况下,驱动器调用可允许可信域执行数据包的进一步基于软件的处理。在另一个可行的行动中,减负装置可决定丢弃数据包814使得不会进行所述数据包的进一步处理。作为另一个可行的行动,减负装置可决定将数据包转发至内部VF 816,诸如使用封装和/或修改。VF(VM)ID可在转发规则中指定。减负装置可将外封装报头602、604、606从数据包818中剥离。在本实例中无需内部修改,因为事先对出口完成所有这种修改。也可执行不同的其它数据包修改诸如以记录、分割或另外修改一个或多个数据包或数据包数据部分。在此阶段,可经由访客VF 820将数据包递送至访客VM。
如所述,这样一种方法可提供基于硬件、基于规则的数据包修改和数据包封装。这样一种方法允许多个(及可能重叠)客户虚拟网络覆盖在统一L3可路由物理底层上。通用规则表可用作出口和出口数据包路径,在至少一些实施方案中,规则表经由软件机制由可信根域填充。
下文提供有关可根据不同实施方案使用的示例性规则表实施方式的大小和性能的指南。示例性规则表可具有运行在主机上的每个虚拟机大约1,000个规则条目(在入口与出口之间共享)的数量级。虽然在至少一些实施方案中,可能需要利用可行的最大规则表大小,但是在至少一些情况下,存在由装置RAM强加的对规则表大小的限制,因为增大的表格大小的主要成本是对减负装置增大的RAM要求。随着主机上VM数量增加,规则数量可相应变化。例如,如果存在128个VM和128个相应的SR-IOV VF,那么在至少一个实施方案中可能存在128,000个规则条目,但是诸如32,000或16,000的数量可能是合理的。在至少一些实施方案中规则条目应可在如可信根域定义的VF之间分割。例如,一个VF可能具有10个规则条目而另一个VF具有规则条目的可行总数中的2,000个。规则表更新的性能还应足够快以不导致数据包处理管线中的过度暂停。在一些实施方案中,规则表可在正常操作期间完全按大约每五秒的数量级修改。
示例性出口规则表可具有多种不同字段。在一个实例中,规则表具有内L2目的地MAC(匹配目标)字段。所有出口规则可匹配在内L2 MAC地址上。如需要,这允许客户的虚拟网络仅为L2(并且支持像非L3感知的RoCE的协议)。表格还可具有任选的内IPV4/IPV6目的地,其具有子网掩码(匹配目标)字段。出口规则可任选地匹配在目标IP地址/子网上。若需要,子网规则的使用允许多个规则折叠。也可使用任选的内L2 MAC源/目的地修改替换。为了支持任意的L3拓扑,可支持交换内目的地和源MAC地址以支持“幻影路由器”的能力。例如,VM可能相信其在子网A上并且试图发送数据包至子网B。因此,数据包可具有如访客VM所建立的L2报头,诸如:
L2 MAC源地址:主机1(子网A)VF减负装置的MAC地址
L2 MAC目的地地址:子网A网关的MAC地址
在至少一些实施方案中,出口时可能需要能够修改动态内L2报头以看起来像下列实例(使得当数据包在目标上合并时,内L2报头看起来像预期在2个虚拟机之间存在实路由的情况):
L2 MAC源地址:子网B网关的MAC地址
L2 MAC目的地地址:主机2(子网B)VF减负装置的MAC地址
也可使用任选的内IP TTL减量字段。例如,为了支持“幻影路由器”,可能需要任选地使内IP TTL(若适用)自动减量的能力。如果TTL达到零,那么数据包应被捕获至可信根分区。
表格还可具有字段,诸如针对至系统RAM中的封装大对象的指针。大对象表格可存储在可信根分区所有的存储器中。例如,这些存储器地址可能是可信根分区的主机物理地址或访客物理地址,诸如可取决于机器特定DMA机制。表格还可同样包括附加字段,诸如针对度量的字段和针对规则行动的至少一个字段。如上所述,例如,规则行动可指定以捕获可信根分区、丢弃或封装/修改和转发数据包。
示例性入口规则表也可具有不同的字段。例如,匹配键(匹配目标)字段可用于入口规则匹配,其可为系统的更复杂方面之一。为了无需要求特定封装格式的硬件,可利用可在硬件中合理获得的情况内尽可能一般的方案。图9示出可根据一个实施方案使用的的入口匹配键创建的示例性实施方式。减负装置可利用若干系统定义的字节范围和/或字节范围排序器904,其可由可信根分区在系统初始化时编程以将来自输入数据包902的字节范围排序。这些数据包可被排序至临时字节缓冲器906或其它适当位置中。在至少一个实施方案中,0至128字节的四个字节范围(从数据包开端起不超过256个字节)可能是足够的,其中所有字节范围一起总数不大于128字节。另一个系统范围内的位掩码908(其由可信根分区编程)随后可应用至字节缓冲器以确定哪些字节用于在规则表中匹配。因此,随后可产生最终入口匹配键910,其中键可用于在入口规则表中查找适当的规则。
其它字段也可结合入口规则表使用。例如,可使用VM/VF ID字段,其可明确指定转发的VM/VF ID,其中规则行动包括转发至VM/VF。例如,类似于上述出口规则表,其它字段可包括度量字段和规则行动字段。度量可由硬件收集供将来由可信根分区检索。每个入口/出口规则可能需要的度量的实例包括所作用(丢弃、转发等)的字节数和所作用(丢弃、转发等)的数据包数。每个度量字段应可由可信根分区读取以及清除。例如,字节的大小可由硬件供应商判断并且可假设来自可信根分区的中断驱动收集方法。
在至少一些实施方案中,存在至少两种大致类型的可行的节流或服务质量(QoS)。第一类型在本文中称作“硬上限”型节流,其中每个被节流实体被限制在特定数量,而不管系统中其它被节流实体的使用。第二类型在本文中称作“可突破上限”型,其中被节流实体被允许取决于系统中是否存在可获得的超额容量而突破其上限。在示例性实施方案中,可能需要对SR-IOV虚拟功能设置硬上限的能力,诸如按50Mb/s间隔(或在一些实施方案中,10至25Mb/s间隔)。在至少一些实施方案中,在硬件中每个出口规则利用至少一个节流等级使得不同流量可按不同速率节流及每个出口规则利用一个QoS等级使得不同流量可优先化。在至少一些实施方案中,还可能需要提供每个规则一个或多个可配置、可突破节流等级使得未使用的系统容量若可用及需要可被耗用。
在至少一些实施方案中,可能需要提供对数据包的不同检查。例如,在一些实施方案中,必须针对已被指派给VF的正确L2 MAC地址检查所有出口数据包。在至少一些实施方案中,如果出口数据包是L3 IP,那么也必须检查源IP地址。在至少一些实施方案中,无正确的L2MAC和/或L3 IP地址的数据包应被丢弃。还可存在配置将捕获至可信根分区的所有L2和/或L3广播流量的能力,包括DHCP、ARP、IP广播和多播等。此外,在至少一些实施方案中,可信根分区将具有将入口数据包注入虚拟功能数据包队列的能力。这些数据包可绕过正常的修改/封装系统。
在至少一些实施方案中,减负装置硬件将支持至少一个标准组的减负及硬件提高同时对SR-IOV虚拟功能进行封装/修改。例如,这些可包括TCP分割减负(TSO),其包括不同的检查和减负、多队列能力和中断合并。所述组还可包括RDMA支持(例如,RoCE或iWARP)。例如,即使使用仅L2的RDMA协议,数据包封装在L3包装器内的事实意指应用级协议可与底层的物理网络底层无关。
使用SR-IOV可否定虚拟化的好处,因为底层硬件不再被抽象化。为了保留相同级别的灵活性同时提供先进功能给用户,硬件供应商可提供将来自VMM的驱动代码动态注入访客VM的方法。这样一种方法可使得访客VM中的单个抽象驱动器能经由通用接口在任意硬件上运行,因此将完全仿真的硬件装置包装在软件或大体上实施为硬件的项目中。
除上列规则外,也可实施不同的其它规则。例如,对于出口数据包,可能存在可允许目的地MAC地址和目的地IP子网的列表,其形成每个规则的‘匹配’部分。规则可具有目的地MAC地址和目的地IP子网或规则可仅具有目的地MAC地址,在此情况下,可接受所有IP地址。每个规则可具有‘N’字节非透明报头、源MAC地址和目标MAC地址作为规则的部分。当规则匹配时,‘N’字节非透明报头可在原始L2报头前插入且L2报头中的MAC地址可用预先指定值替换。新的外L2和L3报头(例如,MAC和IP)可在非透明字段之前插入,具有来自规则表的外源IP地址、外目的地IP地址、外目的地MAC和外源MAC。任选地,非透明报头可包括L2和L3报头,其中减负装置可动态填充字段,诸如ID、长度、检查和和标志。在一些实施方案中,内源和目的地IP地址也可替换,诸如以允许未来NAT、任播等的虚拟化。
可通过可操作以在可信主机平台(诸如Xen Dom-0)中执行的软件管理接口执行处理和管理的至少部分。这样一种接口可与分布式服务通信以实时载入每个租户网络规范,诸如可包括节流、安全组和伙伴组件。例如,接口可命令减负组件执行每个租户(SR-IOV)规范。这些命令可随规范改变而实时处理。如果硬件或其它减负组件无法在任意给定时间同时保持规则的整体性,那么接口还可执行基于减负组件的规则的扩展管理。例如,这些可包括诸如载入热规则或频繁使用规则的子集的技术,同时经由软件捕获或另一个这种过程处理较不常用规则的子集。接口可区分不同类型的流量,诸如前往可信主机平台或虚拟租户的流量并且可相应地递送。
在至少一些实施方案中,需要特殊处理的数据包(诸如地址分辨协议(ARP)数据包和多播数据包)还可由Dom-0中的软件管理组件管理。其它先进功能(诸如DNS、安全接口和Web服务器接口)也可由软件管理接口处理。对于安全接口,实例可在获得网络连接之前执行安全登录。例如,Web服务器接口可以是至元数据服务或其它这种应用程序的接口。
可参考下列条款描述不同实施方案:
1.一种用于在多租户环境中处理数据包的框架,其包括:
至少一个处理器;和
存储器,其包括在被所述处理器执行时使得所述框架能采取下列行动的指令:
与一个或多个分布式服务通信以载入一个或多个每个租户网络规范;
命令至少一个减负装置执行所述所载入的每个租户网络规范;
当所述至少一个减负装置无法同时存储一组规则的所有时,管理所述至少一个减负装置的所述一组规则;和
针对多个流量类型的每一个将数据包递送至适当目的地。
2.根据条款1所述的框架,其中所述框架提供可操作以在可信主机域中执行的软件管理接口。
3.根据条款2所述的框架,其中所述软件管理接口还可操作以管理需要特殊处理的数据包。
4.根据条款3所述的框架,其中要求特殊处理的所述数据包包括多播数据包、广播数据包和地址分辨协议(ARP)数据包。
5.根据条款2所述的框架,其中所述软件管理接口还可操作以管理包括域名服务(DNS)、安全接口连接和Web服务器接口连接的至少一个的功能。
6.根据条款2所述的框架,其中所述软件管理接口可操作以配置需由所述减负装置收集的网络统计数据和需由所述减负装置维持的统计数据。
7.根据条款1所述的框架,其中所述每个租户网络规范包括节流数据包、操作安全组和伙伴组件之间通信的至少一项的规范。
8.根据条款1所述的框架,其中所述每个租户网络规范是SR-IOV网络规范。
9.根据条款1所述的框架,其中所述每个租户网络规范随所述规范变化而实时处理。
10.根据条款1所述的框架,其中管理所述至少一个减负装置的一组规则包括在减负装置中载入第一子集的规则同时使用软件引导(strapping)处理第二子集的规则
11.根据条款10所述的框架,其中与所述第二子集的规则相比,所述第一子集的规则更常被利用。
12.根据条款1所述的框架,其中所述每个租户规范使得硬件供应商能在不获得有关多个协议的特定信息的情况下支持所述多个协议。
13.根据条款1所述的框架,其中流量类型包括前往可信主机平台的流量和前往虚拟租户的流量的至少一个。
14.一种减负装置,其包括:
处理器;和
存储器,其存储在被所述处理器执行时使得所述减负装置能采取下列行动的指令:
将所述减负装置暴露为硬件装置;
执行接收至与所述减负硬件装置相关的物理功能的用户数据包的处理的至少一部分,所述处理包括至少剥离所述数据包的内报头和外报头;执行任意数据包修改;和将所述用户数据包转发至内部虚拟功能,所述内部虚拟功能可操作以将所述用户数据包递送至访客虚拟机。
15.根据条款14所述的减负装置,其中所述处理包括将至少一个外封装报头从所述用户数据包移除。
16.根据条款14所述的减负装置,其中所述减负装置是网络接口卡(NIC)。
17.根据条款14所述的减负装置,其中所述减负装置可操作以在没有获得有关多个协议的特定信息的情况下支持所述多个协议。
18.一种用于在多租户环境中处理数据包的方法,其包括:
与一个或多个分布式服务通信以载入一个或多个每个租户网络规范;
命令至少一个减负装置执行所述所载入的每个租户网络规范;
当所述至少一个减负装置无法同时存储所述至少一个减负装置的一组规则时管理所述一组规则的所有;和
针对多个流量类型的每一个将数据包递送至适当目的地。
19.根据条款18所述的方法,其还包括:
暴露可操作以在可信主机域中执行的软件管理接口。
20.根据条款19所述的方法,其中所述软件管理接口还可操作以管理包括域名服务(DNS)、安全接口连接和Web服务器接口连接的至少一项的功能。
21.根据条款19所述的方法,其中所述减负装置根据SR-IOV网络规范操作。
22.一种用于在电子环境中处理数据包的计算机实施方法,其包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
接收用户数据包至与用户的虚拟网络相关的虚拟功能;
针对用于处理所述用户数据包的至少一个规则在规则表中执行查找;
响应于从所述规则表确定捕获规则而在可信域中执行所述用户数据包的基于软件的处理;
响应于从所述规则表确定丢弃规则而不执行所述用户数据包的进一步处理;和
响应于从所述规则表确定转发规则而使用减负装置执行所述用户数据包的所述处理的至少一部分,所述处理包括至少添加外报头至所述用户数据包及发送出所述用户数据包至物理网络上,所述外报头包括至少一个非透明字段并且包括特定于协议的信息。
23.根据条款22所述的计算机实施方法,其还包括:
在执行所述查找前对所述用户数据包执行至少一次一般检查。
24.根据条款23所述的计算机实施方法,其中所述至少一次一般检查包括二级(L2)或三级(L3)防欺骗或至少一种类型的数据包的捕获的至少一项。
25.根据条款22所述的计算机实施方法,其中所述查找由所述减负装置执行。
26.根据条款25所述的计算机实施方法,其中所述减负装置基于单个根I/O虚拟化(SR-IOV)协议提供虚拟化覆盖网络。
27.根据条款22所述的计算机实施方法,其还包括:
在执行所述查找前对所述用户数据包执行至少一次度量更新。
28.根据条款22所述的计算机实施方法,其中使用减负装置的所述处理还包括节流所述用户数据包或执行服务质量行动的至少一项。
29.根据条款22所述的计算机实施方法,其中执行将所述用户数据包发送出至物理网络上作为分割减负过程的部分。
30.根据条款22所述的计算机实施方法,其中使用减负装置的所述处理还包括更新所述用户数据包的报头字段,所述报头字段包括内数据包长度和外数据包长度、内检查和和外检查和、源地址和目的地地址和生存时间(TTL)值中的至少一个。
31.根据条款22所述的计算机实施方法,其中使用减负装置的所述处理包括至少部分基于源虚拟机对每个出口数据包执行数据包源检查。
32.根据条款22所述的计算机实施方法,其中所述基于软件的处理包括由Dom-0控制软件进行的处理。
33.根据条款22所述的计算机实施方法,其中所述处理利用一般格式使得能够通过改变查找键的参数而支持任意适当协议。
34.根据条款33所述的计算机实施方法,其中所述适当协议能够被映射至无状态隧道协议。
35.一种用于在电子环境中处理数据包的计算机实施方法,其包括:
在配置有可执行指令的一个或多个计算机系统的控制下,
接收用户数据包至与减负装置相关的物理功能;
使用所述减负装置建立所述用户数据包的查找键;
使用所述查找键针对用于处理所述用户数据包的至少一个规则在规则表中执行查找;
响应于从所述规则表确定捕获规则而在可信域中执行所述用户数据包的基于软件的处理;
响应于从所述规则表确定丢弃规则而不执行所述用户数据包的进一步处理;和
响应于从所述规则表确定转发规则而使用所述减负装置执行所述用户数据包的所述处理的至少一部分,所述处理包括至少剥离内报头和外报头;执行任意数据包修改;和将所述用户数据包转发至内部虚拟功能,所述内部虚拟功能可操作以将所述用户数据包递送至访客虚拟机。
36.根据条款35所述的计算机实施方法,其中使用所述减负装置的所述处理包括将至少一个外封装报头从所述用户数据包移除。
37.根据条款35所述的计算机实施方法,其中所述内部虚拟功能由所述转发规则识别。
38.根据条款35所述的计算机实施方法,其中使用所述减负装置的所述处理可操作以识别所述用户数据包为在预定义偏移量下使用预定义协议的格式封装。
39.根据条款35所述的计算机实施方法,其还包括:
当所述用户数据包未被封装时,使用基于软件的处理处理所述用户数据包。
40.根据条款35所述的计算机实施方法,其中所述减负装置是网络接口卡(NIC)。
41.根据条款35所述的计算机实施方法,其还包括:
使用所述用户数据包中预定偏移量下的所述非透明位中的固定长度字段确定对应于所述用户数据包的虚拟机。
42.根据条款35所述的计算机实施方法,其中每个物理功能具有一组入口规则,每个规则至少部分由能够与封装入口数据包的所述非透明位匹配的一组非透明位组成。
43.根据条款35所述的计算机实施方法,其中其它流量在不响应于从所述规则表确定通过规则而进行处理的情况下通过。
44.根据条款35所述的计算机实施方法,其中客户封装流量和控制流量独立于从所述规则表确定通过规则而被捕获。
45.一种用于在电子环境中处理数据包的系统,其包括:
处理器;和
存储器装置,其包括在被所述处理器执行时导致所述处理器采取下列行动的指令:
接收用户数据包至与用户的虚拟网络相关的虚拟功能;
针对用于处理所述用户数据包的至少一个规则在规则表中执行查找;
响应于从所述规则表确定捕获规则而在可信域中执行所述用户数据包的基于软件的处理;
响应于从所述规则表确定丢弃规则而不执行所述用户数据包的进一步处理;和
响应于从所述规则表确定转发规则而使用减负装置执行所述用户数据包的所述处理的至少一部分,所述处理包括至少添加外报头至所述用户数据包及发送出所述用户数据包至物理网络上,所述外报头包括至少一个非透明字段并且包括协议特定信息。
46.根据条款46所述的系统,其还包括:
至少一个减负装置,其可操作以执行所述查找。
47.根据条款46所述的系统,其中所述减负装置基于单个根I/O虚拟化(SR-IOV)协议提供虚拟化覆盖网络。
48.一种用于在电子环境中处理数据包的系统,其包括:
处理器;和
存储器装置,其包括在被所述处理执行时导致所述处理器采取下列行动的指令:
接收用户数据包至与减负装置相关的物理功能;
使用所述减负装置建立所述用户数据包的查找键;
使用所述查找键针对用于处理所述用户数据包的至少一个规则在规则表中执行查找;
响应于从所述规则表确定捕获规则而在可信域中执行所述用户数据包的基于软件的处理;
响应于从所述规则表确定丢弃规则而不执行所述用户数据包的进一步处理;和
响应于从所述规则表确定转发规则而使用所述减负装置执行所述用户数据包的所述处理的至少一部分,所述处理包括至少剥离内报头和外报头;执行任意数据包修改;和将所述用户数据包转发至内部虚拟功能,所述内部虚拟功能可操作以将所述用户数据包递送至访客虚拟机。
49.根据条款48所述的系统,其中使用减负装置的所述处理包括将至少一个外封装报头从所述用户数据包移除。
50.根据条款48所述的系统,其中所述减负装置是网络接口卡(NIC)。
如上所述,不同实施方案可在多种操作环境中实施,其在一些情况下可包括可用于操作任意许多应用程序的一个或多个用户计算机、计算装置或处理装置。用户或客户装置可包括任意许多通用个人计算机,诸如运行标准操作系统的台式或膝上型计算机,以及运行移动软件并且能够支持许多组网和消息发送协议的蜂窝、无线和手持装置。这样一种系统还可包括许多运行任意多种可购得的操作系统和用于诸如开发和数据库管理的目的的其它已知应用程序的许多工作站。这些装置还可包括其它电子装置,诸如虚拟终端、瘦客户端、游戏系统和能够经由网络通信的其它装置。
不同方面还可实施为至少一种服务或Web服务的部分,诸如可为服务定向架构的部分。诸如Web服务的服务可使用任意适当类型的消息发送通信(诸如通过使用可扩展标记语言(XML)格式的消息)并且使用适当的协议(诸如SOAP(源自“简单对象访问协议”))交流。通过这种服务提供或执行的过程可用任意适当语言(诸如Web服务描述语言(WSDL))编写。使用诸如WSDL的语言允许诸如不同SOAP框架中客户端侧代码的自动产生的功能。
多数实施方案利用本领域技术人员熟悉的支持使用任意多种可购得协议(诸如TCP/IP、OSI、FTP、UPnP、NFS、CIFS和AppleTalk)的通信。例如,网络可以是局域网、广域网、虚拟专用网络、因特网、内联网、外联网、公用交换电话网、红外线网、无线网络和其任意组合。
在利用Web服务器的实施方案中,Web服务器可运行任意多种服务器或中间层应用程序,包括HTTP服务器、FTP服务器、CGI服务器、数据服务器、Java服务器和业务应用程序服务器。服务器还可能能够响应于来自用户装置的请求执行程序或脚本,诸如通过执行可实施为用任意编程语言(诸如
Figure GDA0002966432750000361
C、C#或C++)或任意脚本语言(诸如Perl、Python或TCL)以及其组合编写的一个或多个脚本或程序的一个或多个Web应用程序。服务器还可包括数据库服务器,包括但不限于可购自
Figure GDA0002966432750000362
Figure GDA0002966432750000363
的数据库服务器。
如上所述,环境可包括多种数据存储器和其它存储器和存储媒介。这些可驻留在多种位置,诸如在局部于(和/或驻留在)一个或多个计算机的存储媒介上或远程于跨网络的任意或所有计算机。在特定组的实施方案中,信息可驻留在本领域技术人员所熟悉的存储区域网络(“SAN”)中。类似地,用于执行归属于计算机、服务器或其它网络装置的功能的任意所需文件可视情况局部和/或远程存储。在系统包括计算机化装置的情况下,每个这种装置可包括可经由总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(CPU)、至少一个输入装置(例如,鼠标、键盘、控制器、触屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。这样一种系统还可包括一个或多个存储装置,诸如磁盘驱动器、光学存储装置和固态存储装置,诸如随机访问存储器(“RAM”)或只读存储器(“ROM”)以及可卸除媒介装置、存储卡、闪存卡等。
如上所述,这种装置还可包括计算机可读存储媒介读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外线通信装置等)和工作存储器。计算机可读存储媒介读取器可与代表远程、局部、固定和/或可卸除装置的计算机可读存储媒介以及用于临时和/或更永久地容纳、存储、传输和检索计算机可读信息的存储媒介连接或可被配置来接收它们。系统和不同装置通常还将包括许多软件应用程序、模块、服务或位于至少一个工作存储装置内的其它元件,包括操作系统和应用程序,诸如客户应用程序或Web浏览器。应了解替代实施方案可具有与上述内容相比的许多变化。例如,还可使用自定义硬件和/或特定元件可实施为硬件、软件(包括可移植软件,诸如小程序)或两者。此外,可采用连接至其它计算装置,诸如网络输入/输出装置。
用于容纳代码或代码部分的存储媒介和计算机可读媒介可包括本领域中已知或使用的任意适当媒介,包括存储媒介和通信媒介,诸如但不限于实施为用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任意方法或技术的易失性和非易失性、可卸除和不可卸除媒介,包括RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字通用光盘(DVD)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁存储装置或可用于存储所要信息并且可被系统装置访问的任意其它媒介。基于本文提供的公开和教示,本领域的普通技术人员应了解实施不同实施方案的其它方式和/或方法。
说明书和附图相应地被视作说明性而非限制性意义。然而,明显地,在不脱离如权利要求所规定的本发明的更宽泛精神和范围的情况下,可对其作出各种修改和变化。

Claims (18)

1. 一种用于在多租户环境中处理多个数据包的系统,所述系统包括:
至少一个处理器;以及
存储器,其包括指令,当所述至少一个处理器执行所述指令时,所述指令促使所述至少一个处理器:
配置至少一个减负装置采用一组规则来处理所述多个数据包;
当所述至少一个减负装置无法同时存储所述一组规则中的所有规则时,管理用于所述至少一个减负装置的所述一组规则,同时所述至少一个减负装置存储所述一组规则中的至少一部分;
至少部分地通过所述至少一个减负装置采用所述一组规则来处理所述多个数据包中的至少一个数据包,
其中,处理所述至少一个数据包包括检查发送所述至少一个数据包的访客虚拟机的媒体访问控制地址或互联网协议地址以确定是否对所述至少一个数据包执行基于减负装置的封装处理以将包括在所述至少一个数据包中的数据转发至所述至少一个数据包的目的地。
2.根据权利要求1所述的系统,其特征在于,管理用于所述至少一个减负装置的所述一组规则还包括:
将所述一组规则中的第一子集加载进所述至少一个减负装置中,同时处理所述一组规则中的第二子集而无需所述至少一个减负装置。
3.根据权利要求1所述的系统,其特征在于,处理所述多个数据包中的至少一个数据包包括:
确定发送所述至少一个数据包的所述访客虚拟机的所述媒体访问控制地址或所述互联网协议地址是不正确的;以及
丢弃所述至少一个数据包。
4.根据权利要求1所述的系统,其特征在于,处理所述多个数据包中的至少一个数据包还包括:
确定所述至少一个数据包是广播包或多播包中的至少一个;以及
将所述至少一个数据包捕获在可信根域中,以便处理所述至少一个数据包。
5.根据权利要求1所述的系统,其特征在于,处理所述多个数据包中的至少一个数据包还包括:
确实所述至少一个数据包匹配用于将所述至少一个数据包转发至目的地的至少一个规则;
获得描述由所述至少一个规则指引的至少一个隧道报头的数据,所述隧道报头指引所述目的地;
将所述至少一个隧道报头插入所述至少一个数据包中;以及
将所述至少一个数据包发送至所述目的地。
6.一种用于在多租户环境中处理多个数据包的方法,所述方法包括:
指示至少一个减负装置采用一组规则来处理所述数据包;
当所述至少一个减负装置无法同时存储所述一组规则中的所有规则时,管理用于所述至少一个减负装置的所述一组规则;
至少部分地通过所述至少一个减负装置采用所述一组规则处理所述多个数据包中的至少一个数据包,
其中,处理所述至少一个数据包包括检查发送所述至少一个数据包的访客虚拟机的媒体访问控制地址或互联网协议地址以确定是否对所述至少一个数据包执行基于减负装置的封装处理以转发所述至少一个数据包,并且在转发所述至少一个数据包之前,检查所述访客虚拟机的带宽节流约束或服务质量(QoS)约束。
7.根据权利要求6所述的方法,其特征在于,处理至少一个数据包还包括:
至少部分地根据所述至少一个数据包,更新一个或多个网络度量,所述一个或多个网络度量描述受到所述减负装置的作用的多个字节或受到所述减负装置的作用的多个数据包中的至少一个。
8.根据权利要求6所述的方法,其特征在于,所述带宽节流约束或QoS约束至少部分地基于与所述访客虚拟机相对应的一个或多个网络度量,所述一个或多个网络度量描述受到所述减负装置的作用的多个字节或受到所述减负装置的作用的多个数据包中的至少一个。
9.根据权利要求6所述的方法,其特征在于,管理用于所述至少一个减负装置的所述一组规则还包括:
将所述一组规则中的第一子集加载进所述至少一个减负装置中,同时处理所述一组规则中的第二子集,其中,所述第一子集中的每个规则是热规则或频繁使用规则中的至少一个,并且至少部分地由软件处理所述第二子集。
10.一种减负装置,包括:
处理器;以及
存储器,其存储指令,当所述处理器执行所述指令时,所述指令促使所述处理器:
将所述减负装置暴露为硬件装置;
接收至少一个数据包至所述减负装置的物理功能,其中对所述至少一个数据包执行基于减负装置的封装处理;
确定所述至少一个数据包匹配至少一个规则;
确定与匹配的所述至少一个规则相对应的所述减负装置的内部虚拟功能,所述内部虚拟功能可操作以将所述至少一个数据包递送到至少一个访客虚拟机;以及
将所述至少一个数据包转发至所述内部虚拟功能。
11.根据权利要求10所述的减负装置,其特征在于,将所述至少一个数据包转发至所述内部虚拟功能还包括:剥离所述至少一个数据包的至少一个内报头或所述至少一个数据包的至少一个外报头中的至少一个。
12.根据权利要求10所述的减负装置,其特征在于,确定所述至少一个数据包匹配至少一个规则还包括:
创建与所述至少一个数据包相对应的规则查找键;以及
从规则表获得与所述规则查找键相匹配的至少一个规则。
13.根据权利要求10所述的减负装置,其特征在于,所述指令还包括:
接收至少一个第二数据包至所述减负装置的所述物理功能;
确定所述至少一个第二数据包匹配至少一个第二规则;以及
至少部分地根据所述至少一个第二规则,确定将所述至少一个第二数据包捕获至可信根域,以便处理所述至少一个第二数据包。
14.根据权利要求13所述的减负装置,其特征在于,所述至少一个第二规则配置为将多播数据包和广播数据包捕获至所述可信根域,所述至少一个第二数据包是多播包或广播包中的至少一个。
15.根据权利要求10所述的减负装置,其特征在于,所述指令还包括:
接收至少一个第二数据包至所述减负装置的所述物理功能;
确定所述至少一个第二数据包匹配至少一个第二规则;以及
至少部分地根据所述至少一个第二规则,确定将所述至少一个第二数据包丢弃。
16.根据权利要求15所述的减负装置,其特征在于,所述至少一个第二规则配置为丢弃具有不正确的媒体访问控制(MAC)地址或互联网协议(IP)地址的数据包,并且所述至少一个第二数据包具有不正确的MAC地址或不正确的IP地址中的至少一个。
17.根据权利要求10所述的减负装置,其特征在于,所述指令还包括:
至少部分地根据所述至少一个数据包更新一个或多个网络度量,所述一个或多个网络度量描述受到所述减负装置的作用的多个字节或受到所述减负装置的作用的多个数据包中的至少一个。
18.根据权利要求17所述的减负装置,其特征在于,可信根域利用所述一个或多个网络度量来强制执行所述至少一个访客虚拟机的带宽节流约束或服务质量(QoS)约束。
CN201710709078.4A 2011-03-30 2012-03-29 减负装置和用于基于减负装置的数据包处理的框架 Active CN107450966B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/076,347 US8774213B2 (en) 2011-03-30 2011-03-30 Frameworks and interfaces for offload device-based packet processing
US13/076,347 2011-03-30
US13/076,339 US8462780B2 (en) 2011-03-30 2011-03-30 Offload device-based stateless packet processing
US13/076,339 2011-03-30
CN201280015987.3A CN104054067B (zh) 2011-03-30 2012-03-29 基于减负装置的数据包处理的框架和接口

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201280015987.3A Division CN104054067B (zh) 2011-03-30 2012-03-29 基于减负装置的数据包处理的框架和接口

Publications (2)

Publication Number Publication Date
CN107450966A CN107450966A (zh) 2017-12-08
CN107450966B true CN107450966B (zh) 2021-08-06

Family

ID=46931909

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710709078.4A Active CN107450966B (zh) 2011-03-30 2012-03-29 减负装置和用于基于减负装置的数据包处理的框架
CN201280015987.3A Active CN104054067B (zh) 2011-03-30 2012-03-29 基于减负装置的数据包处理的框架和接口

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201280015987.3A Active CN104054067B (zh) 2011-03-30 2012-03-29 基于减负装置的数据包处理的框架和接口

Country Status (8)

Country Link
EP (2) EP4106301A1 (zh)
JP (4) JP5869099B2 (zh)
CN (2) CN107450966B (zh)
AU (1) AU2012236513B2 (zh)
BR (1) BR112013024883B8 (zh)
CA (4) CA2831705C (zh)
SG (1) SG194017A1 (zh)
WO (1) WO2012135442A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8774213B2 (en) 2011-03-30 2014-07-08 Amazon Technologies, Inc. Frameworks and interfaces for offload device-based packet processing
US9935841B2 (en) 2013-01-28 2018-04-03 Intel Corporation Traffic forwarding for processing in network environment
US9384025B2 (en) * 2013-01-28 2016-07-05 Intel Corporation Traffic and/or workload processing
US9426154B2 (en) * 2013-03-14 2016-08-23 Amazon Technologies, Inc. Providing devices as a service
US9747249B2 (en) 2014-12-29 2017-08-29 Nicira, Inc. Methods and systems to achieve multi-tenancy in RDMA over converged Ethernet
CN106528362B (zh) * 2015-09-10 2019-03-19 阿里巴巴集团控股有限公司 一种流量隔离方法及装置
US10419772B2 (en) 2015-10-28 2019-09-17 Qualcomm Incorporated Parallel arithmetic coding techniques
CN107291525B (zh) * 2016-04-01 2021-06-01 华为技术有限公司 一种部署虚拟机的方法、宿主机及系统
CN106411872B (zh) * 2016-09-21 2019-09-17 杭州迪普科技股份有限公司 一种基于数据报文分类的报文压缩的方法和装置
US10785020B2 (en) * 2018-01-19 2020-09-22 Microsoft Technology Licensing, Llc Hardware offload for QUIC connections
CN109847342B (zh) * 2019-03-19 2021-03-12 Oppo广东移动通信有限公司 网络检测方法及相关装置
CN112243046B (zh) 2019-07-19 2021-12-14 华为技术有限公司 通信方法和网卡
KR102524540B1 (ko) 2020-04-17 2023-04-24 한국전자통신연구원 멀티 클라우드 서비스 플랫폼 장치 및 방법
KR102217114B1 (ko) * 2020-07-24 2021-02-18 넷록스 주식회사 엣지 플랫폼 네트워크의 가속화 제어 방법 및 이를 사용하는 전자 장치
CN114070755B (zh) * 2020-07-29 2023-08-01 中移(苏州)软件技术有限公司 虚拟机网络流量确定方法、装置、电子设备和存储介质
US11290380B2 (en) 2020-07-30 2022-03-29 S.C Correct Networks S.R.L. Method for transferring information across a data center network
KR102479757B1 (ko) * 2020-11-24 2022-12-22 한국과학기술원 네트워크 및 파일 입출력 연산 오프로딩 방법, 연산 오프로딩 시스템 및 컴퓨터 판독 가능 기록매체
CN112600826B (zh) * 2020-12-10 2022-02-22 中国科学院深圳先进技术研究院 一种虚拟化安全网关系统
CN113497765B (zh) * 2021-09-08 2021-11-30 中兴通讯股份有限公司 一种路由管理的方法、装置、电子设备和存储介质
US11968115B2 (en) 2021-10-31 2024-04-23 Avago Technologies International Sales Pte. Limited Method for verifying data center network performance

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802258A (en) * 1996-05-03 1998-09-01 International Business Machines Corporation Loosely coupled system environment designed to handle a non-disruptive host connection switch after detection of an error condition or during a host outage or failure
US7269663B2 (en) * 2001-09-28 2007-09-11 Intel Corporation Tagging packets with a lookup key to facilitate usage of a unified packet forwarding cache
JP2003303053A (ja) * 2002-04-11 2003-10-24 Nec Corp ディスクアレイ装置及びこれによるデータ処理方法
US7496689B2 (en) * 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US7701963B2 (en) * 2002-10-15 2010-04-20 Qualcomm Incorporated Method and apparatus for the use of micro-tunnels in a communications system
US7620070B1 (en) * 2003-06-24 2009-11-17 Nvidia Corporation Packet processing with re-insertion into network interface circuitry
EP1515511B1 (en) * 2003-09-10 2011-10-12 Microsoft Corporation Multiple offload of network state objects with support for failover events
US20050060538A1 (en) * 2003-09-15 2005-03-17 Intel Corporation Method, system, and program for processing of fragmented datagrams
US7961683B2 (en) * 2004-09-30 2011-06-14 Alcatel-Lucent Usa Inc. Active session mobility solution for point-to-point protocol
US7957379B2 (en) * 2004-10-19 2011-06-07 Nvidia Corporation System and method for processing RX packets in high speed network applications using an RX FIFO buffer
US7783880B2 (en) * 2004-11-12 2010-08-24 Microsoft Corporation Method and apparatus for secure internet protocol (IPSEC) offloading with integrated host protocol stack management
US7797460B2 (en) 2005-03-17 2010-09-14 Microsoft Corporation Enhanced network system through the combination of network objects
JP4616732B2 (ja) * 2005-09-02 2011-01-19 株式会社日立製作所 パケット転送装置
US8069153B2 (en) * 2005-12-02 2011-11-29 Salesforce.Com, Inc. Systems and methods for securing customer data in a multi-tenant environment
JP5022691B2 (ja) * 2006-12-12 2012-09-12 キヤノン株式会社 通信装置、その制御方法及びプログラム
CN101207604B (zh) * 2006-12-20 2012-03-28 联想(北京)有限公司 一种虚拟机系统及其通信处理方法
US7715321B2 (en) * 2007-01-30 2010-05-11 International Business Machines Corporation Network interface card transmission control protocol acceleration offload failure detection and recovery mechanism
US8412809B2 (en) * 2007-10-24 2013-04-02 International Business Machines Corporation Method, apparatus and computer program product implementing multi-tenancy for network monitoring tools using virtualization technology
CN101179509A (zh) * 2007-12-10 2008-05-14 中兴通讯股份有限公司 基于点对点协议的mac地址与接入电路绑定方法和装置
US20090199290A1 (en) * 2008-02-01 2009-08-06 Secure Computing Corporation Virtual private network system and method
JP2009278261A (ja) * 2008-05-13 2009-11-26 Toshiba Corp 情報処理装置および通信制御方法
CN101753546B (zh) * 2008-12-16 2012-10-31 中国移动通信集团公司 一种数据包传送方法及装置
CN101459618B (zh) * 2009-01-06 2011-01-19 北京航空航天大学 虚拟机网络的数据包转发方法和装置
US8589919B2 (en) * 2009-04-28 2013-11-19 Cisco Technology, Inc. Traffic forwarding for virtual machines
WO2011068091A1 (ja) * 2009-12-04 2011-06-09 日本電気株式会社 サーバ及びフロー制御プログラム
JP5772946B2 (ja) * 2010-07-21 2015-09-02 日本電気株式会社 計算機システム、及び計算機システムにおけるオフローディング方法
CN101969475A (zh) * 2010-11-15 2011-02-09 张军 基于云计算的商业数据可控分发与融合应用系统

Also Published As

Publication number Publication date
SG194017A1 (en) 2013-11-29
EP2691865A1 (en) 2014-02-05
JP2014512760A (ja) 2014-05-22
CN104054067B (zh) 2017-09-08
CN107450966A (zh) 2017-12-08
CA2951949C (en) 2019-01-15
BR112013024883B1 (pt) 2021-06-29
JP6207559B2 (ja) 2017-10-04
JP2017126998A (ja) 2017-07-20
JP2016028479A (ja) 2016-02-25
JP2018011331A (ja) 2018-01-18
WO2012135442A1 (en) 2012-10-04
CA2951970C (en) 2018-02-13
JP6487979B2 (ja) 2019-03-20
AU2012236513A1 (en) 2013-10-31
CA2831705C (en) 2017-10-03
CA2951949A1 (en) 2012-10-04
BR112013024883B8 (pt) 2021-11-03
EP2691865A4 (en) 2016-05-25
AU2012236513A8 (en) 2013-12-05
CA2951970A1 (en) 2012-10-04
CA2951952C (en) 2019-01-15
BR112013024883A2 (pt) 2016-12-20
JP6360576B2 (ja) 2018-07-18
AU2012236513B2 (en) 2015-02-05
CA2951952A1 (en) 2012-10-04
EP4106301A1 (en) 2022-12-21
CN104054067A (zh) 2014-09-17
CA2831705A1 (en) 2012-10-04
JP5869099B2 (ja) 2016-02-24

Similar Documents

Publication Publication Date Title
US11941427B2 (en) Frameworks and interfaces for offload device-based packet processing
CN107450966B (zh) 减负装置和用于基于减负装置的数据包处理的框架
US9042403B1 (en) Offload device for stateless packet processing
US9602636B1 (en) Stateless packet segmentation and processing
US8155146B1 (en) Stateless packet segmentation and processing
US9385912B1 (en) Framework for stateless packet tunneling

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