CN104283939B - 用于灵活流卸载的装置、方法及非暂时性计算机可读媒体 - Google Patents

用于灵活流卸载的装置、方法及非暂时性计算机可读媒体 Download PDF

Info

Publication number
CN104283939B
CN104283939B CN201410328050.2A CN201410328050A CN104283939B CN 104283939 B CN104283939 B CN 104283939B CN 201410328050 A CN201410328050 A CN 201410328050A CN 104283939 B CN104283939 B CN 104283939B
Authority
CN
China
Prior art keywords
many
general processor
processing unit
core network
stream
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
CN201410328050.2A
Other languages
English (en)
Other versions
CN104283939A (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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Brocade Communications Systems 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 Brocade Communications Systems LLC filed Critical Brocade Communications Systems LLC
Publication of CN104283939A publication Critical patent/CN104283939A/zh
Application granted granted Critical
Publication of CN104283939B publication Critical patent/CN104283939B/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供用于实现层4‑7装置中的灵活的流卸载的技术。在一个实施例中,所述装置可包含通用处理器以用于执行对网络流的流知晓的处理。所述装置可进一步包含与所述通用处理器通信的众核网络处理器,及其上存储有可由所述众核网络处理器执行的程序代码的非暂时性计算机可读媒体。所述程序代码在被执行时可致使所述众核网络处理器从所述通用处理器卸载对所述网络流的至少一部分的所述流知晓的处理的至少一部分,进而减少所述通用处理器上的负载且改进所述装置的整体性能。所述卸载的性质(例如,时序、所卸载的所述流的部分等)可为可由运行在所述通用处理器上的应用配置的。

Description

用于灵活流卸载的装置、方法及非暂时性计算机可读媒体
相关申请案的交叉参考
本申请案根据35U.S.C.119(e)主张以下申请案的权益和优先权:2013年7月10日申请的标题为“灵活的流卸载(FLEXIBLE FLOW OFFLOAD)”的第61/844,709号美国临时申请案;2013年8月13日申请的标题为“网络装置中的灵活的流卸载(FLEXIBLE FLOW OFFLOADIN A NETWORK DEVICE)”的第61/865,525号美国临时申请案;及2013年9月5日申请的标题为“网络装置中的灵活的流卸载(FLEXIBLE FLOW OFFLOAD IN A NETWORK DEVICE)”的第61/874,259号美国临时申请案。这些临时申请案的全部内容以引用的方式并入本文中以用于所有目的。
技术领域
背景技术
在计算机网络设计中,层4-7装置(有时被称作等4-7开关或应用递送控制器(ADC))是优化从服务器到客户端的基于云的应用的递送的装置。举例来说,层4-7装置提供若干功能,例如服务器负载平衡、TCP连接管理、业务重新引导、自动化故障切换、数据压缩、网络攻击预防,及更多。层4-7装置可经由硬件与软件的组合(例如,专用ADC)或纯粹经由软件(例如,运行在通用计算机系统上的虚拟ADC)来实施。
一般来说,层4-7装置对传入的网络业务执行两种类型的处理:无状态(即,流不可知)的处理和有状态(即,流知晓的)的处理。无状态处理离散地对待包,使得对每一包的处理是独立于其它包的。无状态处理的实例包含无状态防火墙过滤、业务整形等。另一方面,有状态处理以相同的方式对待相关的包(即,相同流中的包)。通过此类型的处理,包处理将通常取决于针对流中的第一包而建立的特性。有状态处理的实例包含有状态服务器负载平衡、网络地址转译(NAT)、事务速率限制等。
常规的层4-7装置通常经由通用处理器(例如,x86、PowerPC或基于ARM的CPU)以软件执行有状态处理,而不是经由专用逻辑电路(例如,FPGA或ASIC)以硬件处理。换句话说,对于每一传入的流,将流中的所有包发送到通用处理器以用于流知晓的处置。
甚至对于基于硬件的层4-7装置(例如,专用ADC)也是如此,因为有状态处理通常更复杂且还需要大量的存储器来维持流信息,从而使得其在硅中实施较不具吸引力。
然而,前述方法(其中流中的所有包被发送到通用处理器)由于若干原因而是低效的。首先,在许多情况下,流中的所有包不需要相同处理水平,替代地,一些包可能需要复杂的处理(例如,第一个和最后一个包),而其它包可能需要极少的处理(例如,中间的包)。因此,将流中的所有包发送到通用处理器可为浪费的,因为通用处理器将花费电力和资源来检查根本不需要较多的处置的包。
其次,对于历时长久的流,例如视频流或大文件下载,通常存在非常大量的中间的包,其包括正被传送的包块。如上所述,这些中间的包中的每一者可能仅需要少量的处理,但绝对量的这些包可能消耗通用处理器的绝大部分处理时间。这又可显著地削弱通用处理器实行其它所指派的任务的能力。
因此,将需要具有用于在层4-7装置中执行有状态(即,流知晓的)处理的改进的技术。
发明内容
提供用于实现层4-7装置中的灵活的流卸载的技术。在一个实施例中,所述装置可包含通用处理器以用于执行对网络流的流知晓的处理。所述装置可进一步包含与通用处理器通信的众核网络处理器,及其上存储有可由所述众核网络处理器执行的程序代码的非暂时性计算机可读媒体。所述程序代码在被执行时可致使所述众核网络处理器从所述通用处理器卸载对网络流的至少一部分的流知晓的处理的至少一部分,进而减少所述通用处理器上的负载且改进所述装置的整体性能。所述卸载的性质(例如,时序、所卸载的流的部分等)可为可由运行在通用处理器上的应用配置的。
以下详细描述和附图提供对特定实施例的性质和优点的更好理解。
附图说明
图1描绘根据一实施例的网络环境。
图2描绘根据一实施例的层4-7装置。
图3描绘根据一实施例的另一层4-7装置。
图4描绘根据一实施例的又一层4-7装置。
图5描绘根据一实施例的数据平面软件架构。
图6A和6B描绘根据一实施例的用于执行层4负载平衡的流程图。
图7描绘根据一实施例的用于与SYN攻击保护组合地执行层4负载平衡的流程图。
图8A和8B描绘根据一实施例的用于执行层7负载平衡的流程图。
具体实施方式
在以下描述中,出于解释的目的,阐述众多实例和细节以便提供对各种实施例的理解。然而,所属领域的技术人员将清楚,可在没有这些细节中的一些细节的情况下或可在其修改或等效物的情况下实践某些实施例。
1.概述
本发明描述用于从层4-7装置的通用处理器卸载有状态(即,流知晓的)处理的硬件架构及对应的软件架构。在高层级处,硬件架构可包含与通用处理器通信的众核网络处理器(NP)。此众核NP一个实例是由帝莱拉(Tilera)公司开发的TILE-Gx8036 NP,但可使用任何类似的众核处理器。可经由软件架构编程众核NP以执行先前仅由通用处理器执行的流知晓的任务,进而将那些任务从通用处理器卸载到众核NP。以此方式,可减少通用处理器上的负载且可改进层4-7装置的整体性能。
为了促进上文所描述的卸载,软件架构可包含在众核NP上运行的流卸载引擎。所述流卸载引擎可使得运行在通用处理器上的网络应用能够灵活地控制应如何、何时从通用处理器将流知晓的任务卸载到众核NP、应将什么流知晓的任务卸载到众核NP以及应卸载多长时间。举例来说,在某些实施例中,流卸载引擎可使得所述应用能够指定仅应卸载连接中的反向流、仅应卸载流中的某些包(例如,控制包或给定序列号范围内的包),等等。流卸载引擎可随后致使众核NP根据那些指令实行流处理,而不涉及通用处理器。
在以下节中进一步详细地描述本发明的这些和其它特征。
2.网络环境
图1是根据一实施例的网络环境100的简化框图。如图所示,网络环境100包含若干客户端装置102-1、102-2及102-3,其通过网络104和层4-7装置106与应用服务器108-1和108-2通信地耦合。虽然图1描绘三个客户端装置、两个应用服务器及一个层4-7装置,但可支持任何数目的这些实体。
客户端装置102-1、102-2及102-3是终端用户计算装置,例如桌上型计算机、膝上型计算机、个人数字助理、智能电话、平板计算机等。在一个实施例中,客户端装置102-1、102-2及102-3可各自执行(例如,经由标准网络浏览器或专有软件)在应用服务器108-1和/或108-2上托管的分布式软件应用的客户端组件,进而使得装置102-1、102-2及102-3的用户能够与所述应用交互。
应用服务器108-1和108-2是经配置以提供可在其中执行分布式软件应用的服务器组件的环境的计算机系统(或计算机系统的群集/群组)。举例来说,应用服务器108-1和108-2可从客户端102-1、102-2或102-3接收被引导到服务器上托管的应用的请求、使用为所述应用界定的交易逻辑来处理所述请求,且随后产生响应于所述请求的信息以供传输对客户端。在其中应用服务器108-1和108-2经配置以托管一或多个网络应用的实施例中,应用服务器108-1和108-2可与一或多个网络服务器系统(未图示)交互。这些网络服务器系统可处置从客户端102-1、102-2和102-3接收超文本传递协议(HTTP)请求且通过返回HTTP响应而服务那些请求的网络专有任务。
层4-7装置106是计算装置,其经配置以执行各种功能来增强对托管在应用服务器108-1和108-2上且由客户端装置102-1、102-2和102-3消耗的应用的递送。举例来说,层4-7装置106可拦截且处理在应用服务器与客户端装置之间传输的包,以提供(例如)层4-7业务重新引导、服务器负载平衡、自动化故障切换、TCP连接多路复用、服务器卸载功能(例如,SSL加速和TCP连接管理)、数据压缩、网络地址转译等。除了层4到7特征之外,层4-7装置106还可提供整合的层2/3功能性。
在一个实施例中,层4-7装置106可为专用网络装置,例如基于硬件的ADC。在其它实施例中,层4-7装置106可为经配置以在软件中实行其层4-7功能的通用计算机系统。在这些实施例中,层4-7装置106可为(例如)数据中心中的托管虚拟ADC(除了其它虚拟装置/机器之外)的服务器。
应了解,网络环境100是说明性的且无意限制本发明的实施例。举例来说,网络环境100中所描绘的各种实体可具有其它能力或包含未具体描述的其它组件。所属领域的技术人员将认识到许多变化、修改和替代方案。
3.层4-7装置的硬件架构
图2是根据一实施例的层4-7装置200的简化框图。在各种实施例中,层4-7装置200可用于实施图1的层4-7装置106。
如图所示,层4-7装置200包含通用处理器202和网络接口204。通用处理器202可为(例如)x86、PowerPC或基于ARM的CPU,其在存储于相关联的存储器(未图示)中的软件的控制下操作。网络接口204可包括使得层4-7装置200能够经由一或多个端口206传输和接收数据包的硬件和/或软件组件的任何组合。在一个实施例中,网络接口204可为基于以太网的接口。
如背景部分中所述,当常规的层4-7装置执行对传入的数据业务的有状态处理时,将给定流的所有数据包转发到装置的通用处理器。通用处理器执行所述包所需的任何流知晓的任务,且随后将所述包切换出(即,转发)到其既定目的地。此常规方法的问题在于,流中的许多包可能不需要较多的有状态处理,且因此让通用处理器检查每个单一包是低效的。
为了解决前述和其它类似问题,层4-7装置200可实施包含如图2中所示的众核NP208的新颖硬件架构。如本文中所使用,“众核NP”是一种处理器,其与通用处理器一样是软件可编程的,但包括大量(例如,数十、数百或更多个)轻量级处理核,而不是在典型的通用处理器中发现的相对少的重量级核。众核NP还可包含用于加速某些功能(例如,压缩、加密等)的专用硬件块。众核NP的实例包含由帝莱拉(Tilera)公司开发的TILE-Gx8036处理器、由凯威(Cavium)公司开发的Octeon处理器,及由博通(Broadcom)公司开发的XLP多核处理器。
众核NP 208可充当网络接口204与通用处理器202之间的通信桥接器。举例来说,众核NP 208可经编程以相对于经由网络接口204接收且被重新引导到通用处理器202的数据包执行包缓冲管理。此外,在其中网络接口204和通用处理器202支持不同物理接口(例如,分别为XAUI和PCI-e)的情形中,众核NP 208可包含硬件以桥接那两个物理接口。
更重要的是,众核NP 208可接管(即,卸载)先前由通用处理器202处置的层4-7包处理的至少一部分。举例来说,众核NP 208可从通用处理器202卸载无状态处理任务,例如拒绝服务(DoS)保护和无状态防火墙过滤。另外,众核NP 208可从通用处理器202卸载有状态或流知晓的处理任务,例如层4或7负载平衡。在此后一种情况下,众核NP 208可执行流卸载引擎(在下文节4中详述),所述流卸载引擎使得运行在通用处理器202上的应用能够灵活地控制卸载的性质(例如,卸载哪些任务、卸载哪些流或其部分等)。通过此流卸载能力,众核NP 208可显著地减少通用处理器202上的流处理负载,进而释放通用处理器202来处置其它任务或实施新的特征/能力。
应了解,图2描绘层4-7装置200的高度简化表示,且各种修改或替代表示是可能的。举例来说,虽然仅展示单一通用处理器和单一众核NP,但可支持任何数目的这些处理器。
此外,在某些实施例中,可用基于硬件的逻辑电路(例如FGPA或ASIC)来取代众核NP 208。在这些实施例中,硬件逻辑电路可经设计/配置以执行归于众核NP 208的流卸载功能。然而,出于若干原因,使用众核NP一般是优选的。首先,FPGA或ASIC针对给定大小/成本/功率包络可处置的流的数目小于众核NP。因此,这些硬件逻辑电路不会随着数据业务量增加而良好地缩放,这在高容量(例如,企业或服务提供商)网络中是显著的缺点。第二,归因于它们的基于硬件的性质,FPGA和ASIC设计和维持起来是固有困难/昂贵的,尤其在实施例如流知晓的处理逻辑等复杂逻辑时。这意味着对于给定成本,图2的众核NP设计使得网络供应商能够将更灵活的、可缩放的且经济的层4-7装置而不是基于FPGA/ASIC的设计提供给客户。
另外,取决于层4-7装置200的性质,所述装置可包含图2中未展示的额外组件和/或子组件。举例来说,图3描绘其中将所述装置实施为专用ADC 300的层4-7装置200的版本。ADC 300包含与图2的层4-7装置200相同的通用处理器202、众核NP 208和端口206。然而,ADC 300还包含包处理器302和以太网PHY 304(其共同表示网络接口204),以及PCI-e交换器306。以太网PHY 304经由因特网XAUI接口308通信地耦合到众核NP 208,而PCI-e交换器306分别经由PCI-e接口310和312与通用处理器202和众核NP 208通信地耦合。
作为另一实例,图4描绘其中将所述装置实施为通用计算机系统400的层4-7装置200的版本。计算机系统400包含与图2的层4-7装置200相同的通用处理器202、网络接口204、端口206,及众核NP 208。然而,计算机系统400的通用处理器202、网络接口204及众核NP 208全部经由共用总线子系统402(例如,PCI-e)进行通信。在此实施例中,众核NP 208可位于(例如)PCI-e加速器卡上,所述PCI-e加速器卡可插入到计算机系统400的底架中且可从所述底架移除。计算机系统400还包含通常在常规计算机系统中发现的各种组件,例如存储子系统404(包括存储器子系统406和文件存储子系统408)及用户输入/输出装置410。子系统406和408可包含存储可由本发明的实施例使用的程序代码和/或数据的计算机可读媒体(例如,RAM 412、ROM 414、磁性/快闪/光学盘等等)。
4.层4-7装置的软件架构
如上文所论述,为了促进将流知晓的处理从通用处理器202卸载到众核NP 208,层4-7装置200可实施包含新颖的流卸载引擎的软件架构。图5是根据一实施例的此类软件架构500的简化框图。软件架构500被视为“数据平面”软件架构,因为其运行在层4-7装置200的数据平面组件(例如,众核NP 208和/或通用处理器202)上。
如图所示,软件架构500包括操作系统502、转发层504及会话层506。操作系统502可为此项技术中已知的任何操作系统,例如里纽克斯(Linux)、尤尼克斯(Unix)的变体等。在特定实施例中,操作系统502是多线程操作系统,且因此可利用众核NP 208中的多个处理核。转发层504负责执行低层级包转发操作,例如包健全检查和层2/3转发。会话层506负责会话管理,例如创建、删除及老化会话。
除了前述组件之外,软件架构500包含若干特征模块508和流卸载引擎510。特征模块508可对应于由众核NP 208和/或通用处理器202支持的各种无状态和有状态包处理特征,例如L4负载平衡、L7负载平衡、SYN攻击保护、高速缓冲、压缩、脚本等。运行在众核NP208上的流卸载引擎510可包含用于调用特征模块508中的一或多者以便在某些传入的数据包上执行流知晓的任务而不必将那些包发送到通用处理器202的逻辑。
值得注意的是,流卸载引擎510在本质上不是固定的;换句话说,所述引擎不限于相对于每个传入流调用相同的流处理。而是,流卸载引擎510可被动态配置/控制(通过(例如)运行在通用处理器202上的网络应用)以相对于不同的流或其部分执行不同类型的流处理。以此方式,流卸载引擎510可完全充分利用由众核NP 208提供的架构性优点以提高层4-7装置200的性能。
仅举例来说,流卸载引擎510可经配置以:
·仅卸载流中的中间的包(和/或流中的某些控制包,例如TCP SYN-ACK、第一FIN等)。
·基于指定的准则而开始/终止流的流卸载(例如,在接收到指定的控制包后即刻,在接收到X量的数据之后等)。
·卸载流的全部、仅正向流(即,客户端到服务器)、仅反向流(即,服务器到客户端),或仅流内的某一范围的包(例如,指定的序列号或数据范围内的包)。
·仅卸载某些流知晓的任务或任务的组合(例如,用于HTTP响应的L7负载平衡、L4负载平衡及SYN攻击预防等)。
·启用/停用某些应用/服务的流卸载任务(HTTP网络服务、邮件服务等)。
为了进一步阐明流卸载引擎510的操作和可配置性,以下子节描述若干示范性流卸载情景及层4-7装置200的众核NP 208和通用处理器202可如何处置所述情景。在这些情景中,假设经由流卸载引擎510来执行归于众核NP 208的步骤。
4.1层4负载平衡
图6A和6B描绘根据一实施例的示范性层4负载平衡情景的流程图600。开始于图6A,在框602处,众核NP 208可接收从客户端到服务器的流中的第一包(例如,TCP SYN包)。
在框604处,众核NP 208可将所述流识别为新流(即,先前尚未被众核NP 208看到的流)。作为响应,众核NP 208可在NP可存取的存储器中创建所述流的待决会话表条目,且可将所述包转发到通用处理器202(框606和608)。
在框610处,通用处理器202可基于层4负载平衡度量(例如,每个服务器的连接的数目等)来选择用于处置所述流的应用服务器,且可在所述处理器可存取的存储器中创建所述流的会话表条目。此会话表条目可与在框606处由众核NP 208创建的待决会话表条目分开。
通用处理器202可随后确定此时可将所述流卸载到众核NP 208且可因此将流卸载命令发送到众核NP 208(框612)。在各种实施例中,所述流卸载命令可包含(例如)识别待卸载的流的信息、待卸载的任务的指示(例如,服务器负载平衡)及所选择的服务器的指示。
在接收到流卸载命令之后,众核NP 208可即刻基于流卸载命令中所包含的信息将待决会话表条目转换为有效条目(框614)。以此方式,众核NP 208可准备处置在相同的流中所接收的其它数据包。众核NP 208可随后将第一包转发到所选择的应用服务器(框616)。
现在转向图6B,在框618处,众核NP 208可接收与图6A相同的流(即,客户端到服务器的流)中的第二包。作为响应,众核NP 208可基于在框614处创建/转换的有效会话表条目将所述流识别为已知流(框620)。最后,在框622处,众核NP 208可基于有效会话表条目将第二包直接转发到所选择的应用服务器,而不涉及通用处理器。
4.2层4负载平衡+SYN攻击保护
图7描绘根据一实施例的示范性层4负载平衡+SYN攻击保护情景的流程图700。在框702处,众核NP 208可接收从客户端到服务器的流中的第一包(例如,TCP SYN包)。
在框704处,众核NP 208可将所述流识别为新流(即,先前尚未被众核NP 208看到的流)。此外,在框706处,众核NP 208可确定已启用SYN攻击保护。
在框708处,众核NP 208可将TCP SYN-ACK发送到客户端(不涉及通用处理器或应用服务器)。众核NP 208可随后响应于SYN-ACK而从客户端接收到TCP ACK(框710)。
在接收到TCP ACK后,众核NP 208可即刻确定客户端是有效的(即,无恶意的)客户端(框712)。因此,众核NP 208可创建所述流的待决会话表条目,且将ACK包转发到通用处理器202(框714)。流程图700的处理可随后根据图6A和6B的框208到622而进行,以便实行层4负载平衡。
4.3层7负载平衡(响应主体卸载)
图8A和8B描绘根据一实施例的示范性层7负载平衡情景的流程图800。具体来说,流程图800对应于其中将HTTP响应的主体部分从通用处理器202卸载到众核NP 208的情景。
在框802和804处,众核NP 208可接收从客户端到服务器的流中的第一包(例如,TCP SYN包)且可将所述包转发到通用处理器202。
在框806处,通用处理器202可创建所述流的会话表条目且可致使TCP SYN-ACK返回到客户端。随后,在框808处,众核NP 208/通用处理器202可从客户端接收TCP ACK包且可完成TCP 3路握手。
现在转向图8B,在框810处,众核NP 208可从客户端接收HTTP GET请求且将所述请求转发到通用处理器202。作为响应,通用处理器202可检查HTTP GET请求的内容、基于所检查的内容而选择应用服务器,且可用所选择的服务器信息来更新其会话表条目(框812)。通用处理器202可随后致使将HTTP GET请求转发到所选择的服务器(框814)。
在某一时间周期之后,众核NP 208可从应用服务器接收HTTP响应且可将所述响应转发到通用处理器202(框816)。在接收到所述响应后,通用处理器202可即刻致使将所述HTTP响应转发到客户端。另外,通用处理器202可将指示HTTP响应的主体应由众核NP 208处置的流卸载命令发送到众核NP 208(框818)。在特定实施例中,流卸载命令可识别用于卸载的TCP序列号的范围。
在框820处,众核NP 208可基于流卸载命令中的信息而创建本地会话表条目。最后,对于位于指定的序列号范围内的后续服务器到客户端的包(即,HTTP响应主体包),众核NP 208可基于所述会话表条目将那些包直接转发到客户端,而不涉及通用处理器202(框822)。应注意,一旦用尽序列号范围,众核NP 208便可在框820处移除会话表条目,进而致使将后续HTTP响应标头发送到通用处理器202以用于常规处置。
应了解,图6A、6B、7、8A和8B中所示的情景是说明性的,且打算展示可经由图5的流卸载引擎510实现的灵活性。对这些情景的各种修改和变化是可能的。举例来说,在图6A和6B的L4负载平衡情景中,众核NP 208可不在接收到新流时创建待决会话表条目;替代地,众核NP 208可在由通用处理器202指令时直接创建新有效条目。或者,众核NP 208可仅创建直至某一阈值的待决会话表条目(例如,会话表的50%使用率),且随后在其后不再创建待决条目。这将避免在层4-7装置经受攻击时不会用伪条目完全填满会话表。在这些情况中的任一者中,当通用处理器202指令众核NP 208开启流的卸载时,通用处理器202可需要发送一些额外信息(在存在待决条目的情况下其将不具有的信息),使得众核NP 208可正确地创建有效会话表条目。这没有首先创建待决条目有效,但被视为用以避免在经受攻击时填满会话表的可接受的折衷。
作为另一实例,在某些实施例中,众核NP 208可经编程以卸载归于图6A、6B、7、8A和8B中的通用处理器202的某些任务(例如,第一包处理)。这可需要NP 208与通用处理器202之间的额外状态同步。
作为又一实例,众核NP 208可经编程以处置流知晓的任务的某些组合或卸载未具体描述的流的某些部分。所属领域的技术人员将认识到许多变化、修改和替代方案。
以上描述说明本发明的各种实施例以及可如何实施本发明的各方面的实例。不应将上述实例和实施例视为仅有的实施例,且呈现上述实例和实施例以说明如通过所附权利要求书定义的本发明的灵活性和优点。举例来说,虽然已相对于特定过程流和步骤而描述了某些实施例,但所属领域的技术人员应明白,本发明的范围未严格受限于所描述的流程和步骤。被描述为连续的步骤可并行地执行,步骤的次序可改变,且步骤可被修改、组合、添加或省略。作为另一实施例,虽然已使用硬件与软件的特定组合来描述了某些实施例,但应认识到,硬件与软件的其它组合是可能的,且被描述为实施于软件中的特定操作也可实施于硬件中,且反之亦然。
因此将以说明性的而非约束性的意义来看待说明书和图。所属领域的技术人员将清楚其它布置、实施例、实施方案和等效物,且可在不偏离如在所附权利要求书中阐述的本发明的精神及范围的情况下使用。

Claims (20)

1.一种装置,其包括:
通用处理器;
众核网络处理器,其与所述通用处理器通信;及
其上存储有程序代码的非暂时性计算机可读媒体,所述程序代码在由所述众核网络处理器执行时致使所述众核网络处理器:
在网络流中接收第一包;
将所述第一包转发至所述通用处理器;
响应于转发所述第一包,从所述通用处理器接收信息,所述信息包含对开始卸载从所述通用处理器到所述众核网络处理器的所述网络流的流知晓的处理的指示;及
响应于接收所述信息,基于所接收的信息执行所述网络流中的一个或多个第二包的本地流知晓的处理,而不将所述一个或多个第二包转发至所述通用处理器。
2.根据权利要求1所述的装置,其中所述程序代码包含致使所述众核网络处理器进行以下操作的代码:
基于从所述通用处理器接收到的所述信息而在所述众核网络处理器可存取的存储器中创建用于所述网络流的会话表条目。
3.根据权利要求2所述的装置,其中所述众核网络处理器
基于所述会话表条目来执行所述一个或多个第二包的所述本地流知晓的处理。
4.根据权利要求3所述的装置,其中所述会话表条目识别所述一个或多个第二包的目的地,且其中执行所述一个或多个第二包的所述本地流知晓的处理包括基于所述目的地将所述一个或多个第二包转发到所述装置的出口端口。
5.根据权利要求2所述的装置,其中从所述通用处理器接收的所述信息进一步包含所述网络流的待卸载的部分的指示。
6.根据权利要求5所述的装置,其中所述网络流的待卸载的所述部分的所述指示包括传输控制协议TCP序列号的范围。
7.根据权利要求5所述的装置,其中所述网络流的待卸载的所述部分的所述指示包括一或多个控制包识别符。
8.根据权利要求2所述的装置,其中从所述通用处理器接收的所述信息进一步包含启用所述网络流的部分的所述卸载的状态信息。
9.根据权利要求2所述的装置,其中从所述通用处理器接收的所述信息进一步包含应被卸载的任务的指示。
10.根据权利要求1所述的装置,其中所述装置是专用网络装置。
11.根据权利要求10所述的装置,其进一步包括与所述众核网络处理器通信的层2/3包处理器。
12.根据权利要求11所述的装置,其中所述众核网络处理器经由第一接口与所述通用处理器通信地耦合,且其中所述众核网络处理器经由不同于所述第一接口的第二接口与所述层2/3包处理器通信地耦合。
13.根据权利要求12所述的装置,其中所述第一接口是PCI-e,且其中所述第二接口是XAUI。
14.根据权利要求1所述的装置,其中所述装置是通用计算机装置。
15.一种其上存储有可由众核网络处理器执行的程序代码的非暂时性计算机可读媒体,
其中所述众核网络处理器与通用处理器通信,且其中所述程序代码包括:
致使所述众核网络处理器在网络流中接收第一包的代码;
致使所述众核网络处理器将所述第一包转发至所述通用处理器的代码;
致使所述众核网络处理器响应于转发所述第一包,从所述通用处理器接收信息的代码,所述信息包含对开始卸载从所述通用处理器到所述众核网络处理器的所述网络流的流知晓的处理的指示;及
致使所述众核网络处理器响应于接收所述信息,基于所接收的信息执行所述网络流中的一个或多个第二包的本地流知晓的处理,而不将所述一个或多个第二包转发至所述通用处理器的代码。
16.根据权利要求15所述的非暂时性计算机可读媒体,其中所述程序代码进一步包括:
致使所述众核网络处理器基于从所述通用处理器接收到的所述信息而在可存取的存储器中创建用于所述网络流的会话表条目的代码。
17.根据权利要求16所述的非暂时性计算机可读媒体,其中所述众核网络处理器基于所述会话表条目来执行所述一个或多个第二包的所述本地流知晓的处理。
18.一种可由众核网络处理器执行的方法,所述众核网络处理器与通用处理器通信,所述方法包括:
在网络流中接收第一包;
将所述第一包转发至所述通用处理器;
响应于转发所述第一包,从所述通用处理器接收信息,所述信息包含对开始卸载从所述通用处理器到所述众核网络处理器的所述网络流的流知晓的处理的指示;及
响应于接收所述信息,基于所接收的信息执行所述网络流中的一个或多个第二包的本地流知晓的处理,而不将所述一个或多个第二包转发至所述通用处理器。
19.根据权利要求18所述的方法,其进一步包括:
基于从所述通用处理器接收到的所述信息而在所述众核网络处理器可存取的存储器中创建用于所述网络流的会话表条目。
20.根据权利要求19所述的方法,其中所述众核网络处理器基于所述会话表条目来执行所述一个或多个第二包的所述本地流知晓的处理。
CN201410328050.2A 2013-07-10 2014-07-10 用于灵活流卸载的装置、方法及非暂时性计算机可读媒体 Active CN104283939B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201361844709P 2013-07-10 2013-07-10
US61/844,709 2013-07-10
US201361865525P 2013-08-13 2013-08-13
US61/865,525 2013-08-13
US201361874259P 2013-09-05 2013-09-05
US61/874,259 2013-09-05
US14/308,992 2014-06-19
US14/308,992 US20150019702A1 (en) 2013-07-10 2014-06-19 Flexible flow offload

Publications (2)

Publication Number Publication Date
CN104283939A CN104283939A (zh) 2015-01-14
CN104283939B true CN104283939B (zh) 2018-05-22

Family

ID=51225231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410328050.2A Active CN104283939B (zh) 2013-07-10 2014-07-10 用于灵活流卸载的装置、方法及非暂时性计算机可读媒体

Country Status (3)

Country Link
US (1) US20150019702A1 (zh)
EP (1) EP2824880B1 (zh)
CN (1) CN104283939B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8776207B2 (en) 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
US10171423B1 (en) * 2015-05-21 2019-01-01 Juniper Networks, Inc. Services offloading for application layer services
US9971724B1 (en) * 2015-06-18 2018-05-15 Rockwell Collins, Inc. Optimal multi-core network architecture
CN105162657A (zh) * 2015-08-28 2015-12-16 浪潮电子信息产业股份有限公司 一种网络测试性能优化的方法
US11394804B2 (en) * 2015-09-30 2022-07-19 Radware, Ltd. System and method for stateless distribution of bidirectional flows with network address translation
US10523598B2 (en) * 2016-04-04 2019-12-31 Futurewei Technologies, Inc. Multi-path virtual switching
US11115385B1 (en) 2016-07-27 2021-09-07 Cisco Technology, Inc. Selective offloading of packet flows with flow state management
CN110710139A (zh) 2017-03-29 2020-01-17 芬基波尔有限责任公司 具有光置换器的无阻塞全网状数据中心网络
US10686729B2 (en) 2017-03-29 2020-06-16 Fungible, Inc. Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths
WO2018183553A1 (en) 2017-03-29 2018-10-04 Fungible, Inc. Non-blocking any-to-any data center network having multiplexed packet spraying within access node groups
CN117971715A (zh) 2017-04-10 2024-05-03 微软技术许可有限责任公司 多处理器系统中的中继一致存储器管理
WO2019014265A1 (en) * 2017-07-10 2019-01-17 Fungible, Inc. DATA PROCESSING UNIT FOR CALCULATION NODES AND STORAGE NODES
WO2019014268A1 (en) 2017-07-10 2019-01-17 Fungible, Inc. DATA PROCESSING UNIT FOR FLOW PROCESSING
US11178262B2 (en) 2017-09-29 2021-11-16 Fungible, Inc. Fabric control protocol for data center networks with packet spraying over multiple alternate data paths
US10965586B2 (en) 2017-09-29 2021-03-30 Fungible, Inc. Resilient network communication using selective multipath packet flow spraying
WO2019104090A1 (en) 2017-11-21 2019-05-31 Fungible, Inc. Work unit stack data structures in multiple core processor system for stream data processing
WO2019152063A1 (en) 2018-02-02 2019-08-08 Fungible, Inc. Efficient work unit processing in a multicore system
US10929175B2 (en) 2018-11-21 2021-02-23 Fungible, Inc. Service chaining hardware accelerators within a data stream processing integrated circuit
CN112311731A (zh) * 2019-07-29 2021-02-02 联合汽车电子有限公司 车载处理器、车载控制器及通信方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101330390A (zh) * 2008-03-12 2008-12-24 武汉理工大学 基于多核网络处理器的慢速路径、快速路径及其接口设计方法
WO2010129516A1 (en) * 2009-05-05 2010-11-11 Citrix Systems, Inc. Systems and methods for providing a multi-core architecture for an internet protocol acceleration appliance
CN102446158A (zh) * 2010-10-12 2012-05-09 无锡江南计算技术研究所 多核处理器及多核处理器组

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7602798B2 (en) * 2004-08-27 2009-10-13 Intel Corporation Techniques to reduce latency in receive side processing
US7564847B2 (en) * 2004-12-13 2009-07-21 Intel Corporation Flow assignment
KR100608136B1 (ko) * 2005-02-18 2006-08-08 재단법인서울대학교산학협력재단 티씨피 연결의 스테이트풀 인스펙션에 있어서의 보안성능향상방법
US8194690B1 (en) * 2006-05-24 2012-06-05 Tilera Corporation Packet processing in a parallel processing environment
US8626955B2 (en) * 2008-09-29 2014-01-07 Intel Corporation Directing packets to a processor unit
US8948013B1 (en) * 2011-06-14 2015-02-03 Cisco Technology, Inc. Selective packet sequence acceleration in a network environment
US9430239B2 (en) * 2013-03-12 2016-08-30 Qualcomm Incorporated Configurable multicore network processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101330390A (zh) * 2008-03-12 2008-12-24 武汉理工大学 基于多核网络处理器的慢速路径、快速路径及其接口设计方法
WO2010129516A1 (en) * 2009-05-05 2010-11-11 Citrix Systems, Inc. Systems and methods for providing a multi-core architecture for an internet protocol acceleration appliance
CN102446158A (zh) * 2010-10-12 2012-05-09 无锡江南计算技术研究所 多核处理器及多核处理器组

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于多核处理器的分组数据通信网关系统设计与实现";朱辰,;《中国优秀硕士学位论文全文数据库-信息科技辑》;20120315(第3期);I136-396起全文 *

Also Published As

Publication number Publication date
US20150019702A1 (en) 2015-01-15
EP2824880A1 (en) 2015-01-14
CN104283939A (zh) 2015-01-14
EP2824880B1 (en) 2017-02-15

Similar Documents

Publication Publication Date Title
CN104283939B (zh) 用于灵活流卸载的装置、方法及非暂时性计算机可读媒体
US10700979B2 (en) Load balancing for a virtual networking system
US11368385B1 (en) System and method for deploying, scaling and managing network endpoint groups in cloud computing environments
US20220206908A1 (en) Techniques for replicating state information for high availability
US9246819B1 (en) System and method for performing message-based load balancing
US11394649B2 (en) Non-random flowlet-based routing
US9535871B2 (en) Dynamic routing through virtual appliances
US9454392B2 (en) Routing data packets between virtual machines using shared memory without copying the data packet
US9363172B2 (en) Managing a configurable routing scheme for virtual appliances
US20180357086A1 (en) Container virtual switching
US20140229945A1 (en) Network control using software defined flow mapping and virtualized network functions
US10230795B2 (en) Data replication for a virtual networking system
CN106878457B (zh) 分布式网络附属存储方法及系统
CN110609746B (zh) 管理网络系统的方法、设备和计算机可读介质
US11777897B2 (en) Cloud infrastructure resources for connecting a service provider private network to a customer private network
US20230024408A1 (en) Efficient flow management utilizing control packets
CN106557444A (zh) 实现sr-iov网卡的方法和装置、实现动态迁移的方法和装置
CN105556929A (zh) 在云计算系统中运行应用的网络元件和方法
US11102139B1 (en) Shared queue management utilizing shuffle sharding
CN110855726B (zh) 通信方法、装置以及网关、计算设备和介质
EP3235198A1 (en) Network load balancer
CN105100101A (zh) 一种基于ssl会话的方法、装置及系统
EP4292262A1 (en) Cloud infrastructure resources for connecting a service provider private network to a customer private network
CN115380279A (zh) 动态平衡启用多网络接口的处理系统中的入站流量
CN104994093A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Brocade Communications Systems, Inc.

Address before: American California

Applicant before: BROCADE COMMUNICATIONS SYSTEMS, INC.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181101

Address after: Singapore Singapore

Patentee after: Annwa high tech Limited by Share Ltd

Address before: American California

Patentee before: Brocade Communications Systems, Inc.