CN113454971A - 基于远程智能nic的服务加速 - Google Patents
基于远程智能nic的服务加速 Download PDFInfo
- Publication number
- CN113454971A CN113454971A CN202080014713.7A CN202080014713A CN113454971A CN 113454971 A CN113454971 A CN 113454971A CN 202080014713 A CN202080014713 A CN 202080014713A CN 113454971 A CN113454971 A CN 113454971A
- Authority
- CN
- China
- Prior art keywords
- network
- nic
- network element
- smart nic
- 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.)
- Granted
Links
- 230000001133 acceleration Effects 0.000 title description 6
- 238000012545 processing Methods 0.000 claims abstract description 87
- 238000000034 method Methods 0.000 claims abstract description 60
- 230000006870 function Effects 0.000 claims abstract description 52
- 230000005540 biological transmission Effects 0.000 claims abstract description 13
- 238000003860 storage Methods 0.000 claims description 24
- 230000015654 memory Effects 0.000 claims description 21
- 239000013598 vector Substances 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims 2
- 239000004744 fabric Substances 0.000 description 25
- 238000004891 communication Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 18
- 230000007246 mechanism Effects 0.000 description 12
- 238000005538 encapsulation Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 5
- 239000010410 layer Substances 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000002265 prevention Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101100016034 Nicotiana tabacum APIC gene Proteins 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000003054 catalyst Substances 0.000 description 1
- 210000001233 cdp Anatomy 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004637 computerized dynamic posturography Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
系统和方法用于将网络处理加速和卸载到远程智能网络接口卡(NIC)。包括第一智能NIC的第一网络元件可以发送第一智能NIC的能力信息,由相邻的第二网络元件接收。第二网络元件可以确定,在第二网络元件上实例化的虚拟化网络功能(例如,虚拟网络功能(VNF)、云原生网络功能(CNF)等)的网络处理任务可以卸载到第一智能NIC。第二网络元件可以从虚拟化网络功能接收处理信息,用于执行该网络处理任务。第二网络元件可以基于处理信息发送控制信息,该控制信息使第一智能NIC对第一网络元件接收的至少一部分网络数据执行该网络处理任务,以传输给第二网络元件。
Description
相关申请的交叉引用
本申请要求于2019年2月28日提交的、名称为“基于远程智能NIC的服务加速(REMOTE SMART NIC-BASED SERVICE ACCELERATION)”、申请号为16/289,412的美国非临时专利申请的利益和优先权,该申请的内容在此通过引用明确地并入本文。
技术领域
本公开的主题总体上涉及计算机网络领域,更具体地说,涉及用于加速网络处理任务和将网络处理任务卸载到远程智能网络接口卡(NIC)的系统和方法。
背景技术
智能NIC是网络适配器,其可以包括或包含专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理器(GPU)或其他用于加速各种网络处理任务和从网络元件(如服务器、网络设备、网络装置等)的中央处理器(CPU)或网络处理器(NPU)中卸载这些任务的硬件。智能NIC越来越多地被部署在虚拟化计算环境中,因为这些组件可以为网络元件提供智能和可编程性。例如,智能NIC可以允许网络元件卸载云原生服务状态信息并加速分组转发和处理任务,例如传输控制协议(TCP)加速、加密/解密、服务质量/访问控制列表(QoS/ACL)处理和流量监控/报告等。目前的实施方式将智能NIC执行的加速和卸载限制在其物理主机上,但在网络的每个元素中用智能NIC取代标准NIC,成本可能很高。
附图说明
为了提供对本公开及其特征和优点的更全面理解,结合附图参考以下描述,在附图中:
图1示出了根据一个实施例的网络示例的框图;
图2示出了根据一个实施例的应用容器编排平台示例的框图;
图3示出了根据一个实施例的服务网格平台示例的框图;
图4示出了根据一个实施例的用于交换智能网络接口卡(NIC)的能力信息的示例方法的框图;
图5示出了根据一个实施例的用于将网络任务从虚拟化网络功能卸载到远程智能NIC的示例方法的框图;
图6A-图6C示出了根据一些实施例的用于加速网络处理任务和将网络处理任务从虚拟化网络功能卸载到远程智能NIC的示例用例的框图;
图7示出了根据一个实施例的用于加速和卸载虚拟化网络功能的网络处理任务的示例过程的流程图;
图8示出了根据一个实施例的网络设备的示例的框图;以及
图9A和图9B示出了根据一些实施例的系统的示例的框图。
具体实施方式
下面所阐述的详细描述被当作实施例的各种配置的描述,并不旨在代表可以实践本公开的主题的唯一配置。附图并入本文,构成详细描述的一部分。详细描述包括具体细节,目的是提供对本公开的主题的更透彻理解。然而,清楚明白的是,本公开的主题并不局限于本文所述的具体细节,并且可以在没有这些细节的情况下进行实践。在一些实例中,结构和部件以框图形式示出,以避免模糊本公开主题的概念。
概述
本发明的各个方面在独立权利要求中阐述,优选特征在从属权利要求中阐述。一个方面的特征可以单独或与其他方面结合适用于每个方面。
系统和方法用于将虚拟化网络功能(V-NF)(例如,虚拟网络功能(VNF)、云原生网络功能(CNF)等)的网络处理任务加速和卸载到远程智能网络接口卡(NIC)(相对于V-NF的物理主机是远程的)。包括第一智能NIC的第一网络元件(例如物理或虚拟服务器或网络设备)可以与一个或多个相邻网络元件交换第一智能NIC的能力。该交换可以在数据平面(例如,通过界内(in-bound)或原地操作、管理和维护(IOAM))和/或控制平面(例如,通过思科发现协议(Discovery Protocol(CDP))、链路层发现协议(LLDP)、扩展地址解析协议(E-ARP)、邻居发现协议(NDP)等)上发生。第二网络元件可以确定在第二网络元件上实例化的V-NF的一个或多个网络处理任务可以卸载到第一智能NIC。也就是说,第二网络元件可以基于交换确定第一智能NIC能够执行该一个或多个网络处理任务。第二网络元件可以从V-NF接收处理信息,用于执行该一个或多个网络处理任务。例如,第二网络元件可以用信号传送第一智能NIC的能力信息到V-NF,V-NF可以确定卸载该一个或多个网络处理任务,然后发送卸载指令到第二网络元件。替代地,第二网络元件可以确定可从V-NF卸载该一个或多个网络处理任务,然后从V-NF取回卸载指令。第二网络元件可以基于处理信息发送控制信息,该控制信息使第一智能NIC对第一网络元件接收的至少一部分网络数据执行该一个或多个网络处理任务,以传输给第二网络元件。
在一些实施例中,第二网络元件可以访问第二智能NIC。例如,第二智能NIC可以集成在第一网络元件、第二网络元件或与第二网络元件相邻的第三网络元件中。如果这样的话,第二网络元件可以确定第一智能NIC和/或第二智能NIC中的至少一个的当前负载,并以使第一智能NIC对第一数量的网络数据执行该一个或多个网络处理任务和使第二智能NIC基于当前负载执行该一个或多个网络处理任务的方式发送控制信息。例如,第二网络元件可以基于当前负载确定如何将第一网络元件接收的网络数据按比例分配,以传输给第二网络元件。然后,第二网络元件可以向第一网络元件发送控制信息,该控制信息使第一智能NIC对第一按比例分配数量的网络数据执行该一个或多个网络处理任务,并使第二智能NIC对第二按比例分配数量的网络数据执行该一个或多个网络处理任务。
示例实施例
图1示出了用于实现本公开的各种实施例的网络100的示例的框图。网络100的实施方式的一个示例是思科系统公司(CiscoInc.)的应用中心基础设施(Cisco)。然而,本领域的普通技术人员将理解,对于网络100和本公开中讨论的任何其他系统,在类似或替代配置中可以有额外的或更少的组件。本公开中提供的图解和示例是为了简洁明了。其他实施例可以包括不同数量和/或类型的元素,但本领域的普通技术人员会明白,这种变化并不脱离本公开的范围。
在一些实施例中,网络100可以包括网络结构102,该网络结构包括脊交换机104A和104B(统称104)以及叶交换机106A、106B、106C、106D和106E(统称106)。叶交换机106可以按全网格拓扑结构或脊叶拓扑结构连接到脊交换机104。脊交换机104可以充当网络100的主干,并使叶交换机106相互连接。例如,每个叶交换机106可以连接到网络结构102中的每个脊交换机104,网络结构102内的路径可以随机选择,使得流量负载可以在脊交换机104之间均匀分配。以这种方式,如果其中一个脊交换机104发生故障,网络性能可能只会略有下降。如果发生链路超量预订(例如,如果产生的流量超过了活动链路上一次可以聚合的流量),扩大容量的过程可以包括增加额外的脊交换机104和将上行链路扩展到每个叶交换机106。这可以增加层间带宽和减少超量预订。如果接入端口的容量成为问题,可以通过如下方式增加一个新的叶交换机:将其连接到每个脊交换机104,并将网络配置添加到新的叶交换机。如果在叶交换机106和它们的上行链路之间没有发生超量预订,就可以实现无阻塞的架构。
叶交换机106可以包括结构端口和接入端口(非结构端口)。结构端口可以提供到达脊交换机104的上行链路,而接入端口可以提供与物理服务器(例如,机架式服务器、刀片服务器或其他计算设备)和虚拟化服务器(例如,虚拟机、容器或其他虚拟分区)的连接。在本示例中,叶交换机106可以使物理服务器110A、110B和110C(统称物理服务器110)以及虚拟机120A和容器120B(统称虚拟化服务器120)互相连接。物理服务器的一些例子包括统一计算系统(Cisco)B系列刀片服务器、CiscoC系列机架服务器、CiscoS系列存储服务器、CiscoE系列刀片服务器和Cisco HyperFlexTMHX系列节点等。
在一些实施例中,一个或多个物理服务器110(例如,物理服务器110B)可以各自在其上实例化用于创建和运行一个或多个虚拟机120A的管理程序118A。在一些实施例中,虚拟机120A可以托管一个或多个容器。在其他实施例中,一个或多个物理服务器110(例如,物理服务器110C)可以各自运行用于托管一个或多个容器120B(例如,裸金属容器)的容器引擎118B。在另外的其他实施例中,一个或多个物理服务器110可以运行其他软件并包括用于支持其他类型的虚拟分区的其他组件。根据各种实施例的网络可以包括托管任何数量的虚拟机、容器或其他虚拟分区的任何数量的物理服务器。物理服务器也可以充当裸金属服务器110A(例如,非虚拟化服务器或没有虚拟机、容器或其他虚拟分区的物理服务器)。
叶交换机106还可以提供与各种类型的物理和虚拟网络设备的连接,包括网络结构互连(例如Cisco6200系列结构互连、6300系列结构互连、6454结构互连等);交换机(例如,催化剂交换机、Cisco交换机、工业以太网交换机、CiscoMS交换机等);路由器(例如,集成服务路由器(ISR)、聚合服务路由器(ASR)、网络融合系统(NCS)路由器、CiscoMX系统等);接入点(例如,Cisco接入点,CiscoMR接入点,小型企业接入点等);无线网络控制器(例如,Cisco无线局域网控制器(WLC)、8540WLC、5520WLC、3504WLC等);网络管理装置(例如,应用策略基础设施控制器(APICTM)装置、Cisco数字网络架构(DNATM)中心装置、Cisco装置等);防火墙或其他网络安全装置和服务(例如,高级恶意软件防护(AMP)装置、工业安全装置(ISA)、自适应安全装置(ASA)、身份服务引擎(ISE)装置、Cisco装置、内容安全管理装置、安全数据分组分析器等);网络分析装置(例如,Cisco装置);以及其他网络装置和服务。在本示例中,叶交换机106被显示为将网络结构控制器108、边缘路由器114A和114B以及虚拟交换机116A和116B与网络结构102相互连接。
网络结构控制器108可以充当网络结构102的集中配置和管理点。在一些实施例中,网络结构控制器108可以使用Cisco APICTM来实现。Cisco APICTM可以为网络结构102提供一个集中的自动化和管理、策略编程、应用部署和健康监控点。在本示例中,APICTM可以实现为一组重复的、同步的、集群的网络结构控制器装置。在其他实施例中,可以利用其他配置或网络管理平台来管理网络结构102,例如Cisco DNATM中心、软件定义广域网(SD-WAN)和Cisco等。
网络结构控制器108可以与一个或多个虚拟机管理平台112A(例如,VMware系统中心虚拟机管理器等)或容器编排平台112B(例如,容器平台、(k8sTM)、DockerApacheLinux FoundationLinkerdTM、Hashicorp等)(统称虚拟化管理平台112)相结合运行,分别用于部署虚拟机120A和容器120B(统称虚拟服务器)。虚拟机管理平台112A可用于管理在单个物理服务器110B上实例化的虚拟交换机116A(例如,应用虚拟交换机(AVS)、Cisco ACITM虚拟边缘、Cisco1000VE、Cisco1000V、开放式虚拟交换机(OVS)等)、管理程序118A和一个或多个虚拟机120A;分布式虚拟交换机或多个虚拟交换机、多个管理程序和跨越多个物理服务器的多个虚拟机;或其他虚拟机计算环境。类似地,容器编排平台112B可用于管理在单个物理服务器110C上实例化的虚拟交换机116B(例如,OVS、带有数据平面开发套件(DPDK)的OVS、带有Contiv插件的OVS等)、容器引擎118B(例如,容器(LXC)等)和一个或多个容器120B;分布式虚拟交换机或多个虚拟交换机、多个容器运行时和跨越多个物理服务器或虚拟机的多个容器;以及其他容器化计算环境。
除了网络结构控制器108之外,叶交换机106还可以将网络结构102连接到其他物理和虚拟网络设备,如交换机、路由器、应用加速器、网络地址转换器(NAT)、负载均衡器、防火墙、分布式拒绝服务(DDoS)缓解器、深度分组检查器(DPI)、入侵防御系统(IPS)、入侵检测系统(IDS)、互联网协议安全(IPSec)系统、会话边界控制器(SBC)、流量监控器、演进分组核心(EPC)功能、WAN优化器等。这些网络设备可以作为物理网络设备在硬件中实现,和/或使用通用CPU、网络处理器(NPU)、网络接口控制器(NIC)、智能NIC等在软件中实现(例如,在虚拟机(例如,虚拟网络功能(VNF))、容器(例如,云原生功能(CNF))或其他虚拟分区内执行的虚拟化网络设备(V-NF))。在一些实施例中,网络结构控制器108可以基于网络100的运营商定义的策略提供自动服务插入。网络结构控制器108可以使用服务图(例如,为应用指定的一组端点和一组网络服务功能之间的有序的服务功能节点集)将所需的配置和安全策略推送到网络100。
在一些实施例中,叶交换机106还可以将端点组(EPG)连接到网络结构102和其他网络(例如,WAN 112)。EPG可以是应用或应用组件的分组,并且是用于实现转发和策略逻辑的层级。EPG可以通过使用逻辑应用边界实现将网络策略、安全和转发与寻址分离。EPG可以在网络100中用于映射网络中的应用。例如,EPG可以包括网络100中的端点的分组,指示应用的连接性和策略。
在本示例中,叶交换机106D和106E可以充当边界叶交换机,与边缘路由器114A和114B通信,以提供与广域网(WAN)112的连接。WAN可以通过长距离通信链路,如公共运营商电话线、光路、同步光网络(SONET)或同步数字体系(SDH)链路,连接地理上分散的节点。互联网是WAN的一个例子,它连接全世界不同的网络,在各种网络上的节点之间提供全球通信。节点通常通过根据预先定义的协议,如传输控制协议/互联网协议(TCP/IP),交换离散的数据帧或数据分组通过网络进行通信。在这种情况下,协议可以指一组定义节点之间如何互动的规则。计算机网络可以通过中间网络节点,如路由器,进一步互连,以扩大每个网络的有效规模。节点可以包括任何通信设备或组件,如计算机、服务器、刀片、管理程序、虚拟机、容器、进程(例如,在虚拟机、容器或其他虚拟分区中运行)、交换机、路由器、网关、主机、设备、网络等。
在一些实施例中,网络100可以通过专用网络连接(未示出)或WAN 112连接到公有云提供商的外部网络,以获得有时被称为混合云或多云的架构中额外的计算、存储和/或网络资源。混合云可以包括私有网络或云(例如,网络100)和公有云的组合计算、存储和/或网络资源,以执行网络100的运营商的工作负载。多云可以将私有云的计算、存储和/或网络资源与多个公有云供应商的资源相结合。
虽然网络结构102在此被图解和描述为脊叶结构,但本领域的普通技术人员将很容易认识到,各种实施例可以基于任何网络拓扑结构来实现,包括任何企业或数据中心网络结构。事实上,其他的架构、设计、基础设施和变化在本文中也考虑在内。例如,本文公开的原理适用于包括三层(例如,核心层、聚合层和接入层)、胖树、网格、总线、轴辐式等拓扑结构。在一些实施例中,叶交换机106可以是根据架顶架构配置的架顶交换机。在其他实施例中,叶交换机106可以是任何特定拓扑结构,如行末或行中拓扑结构的聚合交换机。在一些实施例中,叶交换机106也可以使用聚合交换机来实现。
此外,图1所示的和本文描述的拓扑结构是容易扩展的,可以容纳大量的组件以及更复杂的布置和配置。例如,网络可以包括任何数量的结构102,这些结构可以是地理上分散的或位于同一地理区域中。因此,网络节点可用于任何合适的网络拓扑结构,该拓扑结构可包括任何数量的物理服务器、虚拟机、容器、交换机、路由器、装置、控制器、网关或其他节点,它们互相连接以形成一个庞大而复杂的网络。节点可以通过采用任何合适的有线或无线连接的一个或多个接口耦合到其他节点或网络,该连接为电子通信提供可行的途径。
图2示出了用于管理网络(例如,网络100)中的容器的应用容器编排平台200(例如,容器编排平台112B)的示例的框图。在一些实施例中,应用容器编排平台200可以基于 是一个开源的应用容器编排系统,用于跨主机集群自动化部署、扩展和管理应用容器。然而,其他实施例可以部署其他应用容器编排平台(例如,容器平台、DockerApache等);其他服务容器编排平台或服务网格平台(例如,容器平台、Linux Foundation LinkerdTM、Hashicorp等);或其他容器编排器,而不偏离本公开的范围。
应用容器编排平台200可以包括一个或多个集群。一个集群可以是应用容器编排平台200可以用来运行网络的各种工作负载的计算、存储和网络资源的集合。每个集群可以包括一个或多个主机(例如,物理服务器或虚拟机)。在本示例中,主节点202以及工作节点220A和220B(统称220)可以代表一个集群。虽然这里有一个主节点202,但其他实施例可以包括多个主节点以提供高可用性。
主节点202可以充当集群的控制平面。例如,主节点202可以负责全局、集群级调度群聚(pod)(例如,一个或多个容器的集合)和处理事件(例如,当需要额外的计算资源时,启动一个新的群聚)。主节点202可以包括一个应用编程接口(API)服务器204、控制器管理器206、调度器208和分布式键值(KV)存储器210。主组件可以在集群中的任何主机上运行,但通常在没有工人节点的同一(物理或虚拟)机器上运行。
API服务器204(例如,kube-apiserver)可以充当控制平面的前端,并且可以暴露应用容器编排平台200的API(例如,API)。API服务器204可以横向扩展(例如,通过部署更多的实例进行扩展),因为它可以是无状态的,并在分布式KV存储器210中存储数据。
控制器管理器206(例如,kube-controller-manager、cloud-controller-manager等)可以是被编译到一个二进制文件中的各种管理器的集合。控制器管理器206可以包括节点控制器、副本控制器、端点控制器、服务控制器、卷控制器等。节点控制器可以负责管理群聚可用性,并在节点宕机时将其恢复。副本控制器可以确保系统中的每个副本控制器实例都有正确数量的群聚。端点控制器可以控制API中的端点记录,并管理对于支持定义选择器的服务的群聚或一组群聚的域名系统(DNS)解析。服务控制器可以负责创建、更新和删除网络服务(例如,防火墙、负载平衡、深度分组检查等)。卷控制器可以负责创建、挂载和装载卷。
调度器208(例如,kube-scheduler)可以负责将群聚调度到节点。这可能涉及评估资源要求、服务要求、硬件/软件策略约束、节点亲和性和反亲和性规范、群聚亲和性和反亲和性规范、数据本地性和截止期限等因素。
分布式KV存储器(例如,etcd)210可以是高可用性的分布式数据存储器。应用容器编排平台200可以使用分布式KV存储器210来存储集群状态信息。在一个小型、短寿命的集群中,KV存储器210的单个实例可以与其他主组件在同一主机上运行。对于较大的集群,分布式KV存储器210可以包括一个主机集群(例如,3-5个节点)以实现冗余和高可用性。
工作节点220可以维护运行中的群聚,并为应用容器编排平台200提供运行时环境(未示出)。容器运行时可以负责运行容器(例如,公司的rkt、OpenContainer InitiativeTM的runC等)。每个工作节点220可以对应单个主机,该主机可以是物理或虚拟机。每个工作节点220可以包括代理(agent)222(例如kubelet)和代理服务器(proxy)224(例如kube-proxy、OVS、OVS/Contiv等)。
代理222可以在集群中的每个节点220上运行,并确保容器(例如,容器228A、228B、228C等(统称228))在群聚(例如,群聚226A、226B、226C等)(统称226))中运行。代理222可以监督与主节点202的通信,包括从API服务器204下载秘密,装载卷,或报告节点220和每个群聚226的状态。
群聚是应用容器编排平台200中的工作单位。群聚可以帮助管理各组密切相关的容器,这些容器可能相互依赖,并且可能需要在同一主机上合作以完成其任务。每个群聚226可以包括一个或多个容器228。群聚可以被一起调度并在同一机器上运行。每个群聚226中的容器228可以有相同的IP地址和端口空间;它们可以使用本地主机(localhost)或标准进程间通信进行通信。此外,每个群聚226中的容器228可以访问托管群聚的节点220上的共享本地存储器。共享存储其可以安装在每个容器228上。
代理服务器224可以负责容器联网,包括每个节点上的低级网络管理(housekeeping)、本地服务的反射、TCP和UDP转发、通过环境变量或域名系统(DNS)查找集群IP。在一些实施例中,应用容器编排平台200可以采用联网模型,该模型涉及到主节点202、工作节点220、群聚226和容器228如何与彼此交互,例如确保容器可以在没有NAT的情况下与其他容器通信,节点可以在没有NAT的情况下与容器通信(反之亦然),以及一个容器认为是自己的IP地址与其他容器认为是它的IP地址相同。该联网模型可以在群聚级别上分配IP地址,这样一个群聚内的容器就可以共享IP地址和端口空间。该联网模型还可以使一个群聚内的容器能够到达本地主机上其他容器的端口。
应用容器编排平台200可以通过本地文件系统、IPC机制或本地主机实现节点内通信或同一节点内的群聚之间的通信。应用容器编排平台200可以支持各种用于节点间通信或跨节点的群聚之间的通信的方法,包括L2(交换)、L3(路由)和覆盖网络。L2方法可涉及将L2网络附接到节点的物理网络接口控制器(NIC),并将群聚直接暴露给底层物理网络,而无需端口映射。桥接模式可用于使群聚能够在内部互连,这样,除非必要,否则流量不会离开主机。L3方法可能不在数据平面使用覆盖,群聚之间的通信可以利用节点主机和外部网络路由器所做的路由决定通过IP地址发生。群聚之间的通信可以利用边界网关协议(BGP)对等来实现不离开主机,并利用NAT来实现传出流量。覆盖方法可以使用虚拟网络,该虚拟网络可以利用隧道技术(如虚拟可扩展局域网(VXLAN)、通用路由封装(GRE)、分段路由(SR)等)与底层物理网络解耦。虚拟网络中的群聚可以通过隧道找到对方。此外,L2网络可以相互隔离,而L3路由可用于节点间的群聚之间的通信。
在一些实施例中,应用容器编排平台200可以支持标签和选择器。标签是键值对,可用于将对象,如群聚的集合分组到一起。标签还可以用于指定对象的属性,这些属性对网络用户来说可能是有意义的和相关的。对象和标签之间可以有NxN的关系。每个对象可以有多个标签,每个标签可以应用于不同的对象。一个对象上的每个标签均可以具有唯一键。标签键可以包括前缀和名称。前缀可以是可选的。如果前缀存在,它可以用正斜杠(/)与名称分开,并且是有效的DNS子域。前缀和名称可以有指定的最大长度(例如,分别为253和63个字符)。名称可以以字母数字字符(a-z、A-Z,0-9)开头和结尾,中间包括字母数字字符、点、连接号和下划线。值可以遵循与名称相同的限制。
标签选择器可用于根据其标签来选择对象,并且可以包括基于等值的选择器和基于集合的选择器。基于等值(和不等值)的选择器可以实现通过键名或键值来选择对象。匹配对象必须满足指定的等号(=或==)或不等号(!=)运算符。基于集合的选择器可以实现根据一组值来选择对象,包括“在”或“不在”集合中的对象或者“存在”键的对象。空的(empty)标签选择器可以选择一个集合中的每个对象。空值(null)标签选择器(可能只适用于可选的选择器字段)可以不选择任何对象。
在一些实施例中,应用容器编排平台200可以支持容器服务。容器服务是一个抽象概念,它定义了一组群聚的逻辑集合和访问群聚的策略。容器服务所针对的群聚集合可由标签选择器确定。服务可以通过DNS或环境变量发布或发现。服务可以是不同的类型,如ClusterIP、NodePort、LoadBalancer或ExternalName。ClusterIP可以在集群内部的IP上暴露容器服务,这样容器服务只可以从集群内部到达。NodePort可以在每个节点的IP上通过静态端口暴露容器服务。可以自动创建ClusterIP容器服务,NodePort容器服务可以路由到它。可以通过请求<NodeIP>:<NodePort>从集群外部联系到NodePort容器服务。LoadBalancer可以使用云提供商的负载平衡器向外部暴露容器服务。可以自动创建NodePort和ClusterIP容器服务,外部的负载平衡器路由到它们。ExternalName可以将容器服务映射到DNS中指定的规范名称(CNAME)记录的内容。
图3示出了服务容器编排平台或服务网格平台300(例如,图2的应用容器编排平台200)的示例的框图。在一些实施例中,服务网格平台300可以基于服务网格平台和应用容器编排平台。然而,其他实施例可以使用其他服务网格平台(例如Linux Foundation LinkerdTM、Hashicorp等)和/或其他应用容器编排平台(例如DockerApache等)而不偏离本公开的范围。
服务网格平台300可在逻辑上划分为控制平面301和数据平面321。控制平面301可以负责管理和配置流量路由。此外,控制平面301可以执行策略并采集遥测数据。在本示例中,控制平面301可以包括引导器302、混合器330和认证组件332。
引导器302(可对应于图2的主节点202)可用于管理跨容器集群运行的全部服务或微服务。引导器302可以确保独立的和分布式的微服务中的每一个微服务均具有整体容器拓扑结构的当前视图和最新的路由规则,这些微服务可以被包装成服务容器328B、328B、328C(统称服务容器328)并且在群聚326A、326B、326C(统称群聚226)内。引导器302还可以提供诸如服务发现、RouteRule和DestinationPolicy等能力。RouteRule可以实现精细的请求分布。DestinationPolicy可以通过超时、重试、断路器等方式帮助解决弹性问题。
混合器330可以在整个服务网格平台300执行访问控制和使用策略,并从数据平面321和其他服务采集遥测数据。混合器330可用于创建访问控制列表(ACL),应用速率限制规则,并捕获自定义指标。在一些实施例中,混合器330可以具有可插拔的后端架构,以便与各种主机环境和基础设施后端对接。
认证组件332可以管理证书签名、证书颁发和吊销/轮换。在一些实施例中,认证组件332可以向服务和微服务颁发x509证书,实现这些服务和微服务之间的相互传输层安全性(mTLS)以及其流量的透明加密。在一些实施例中,认证组件332可以使用底层容器编排平台中内置的服务身份来生成证书。该身份可以实现策略的执行。
数据平面321可以包括一组智能代理服务器325A、325B和325C(统称“325”)作为边车。边车是一种可以与服务容器(例如,服务容器328)一起运行的容器,以便为服务容器提供额外的能力。边车代理服务器325可以促成和控制服务和微服务之间的网络通信(与混合器330一起)。在一些实施例中,边车代理服务器325可以实现为EnvoyTM代理服务器。边车代理服务器325可以支持超文本传输协议版本1.1(HTTP/1.1)、HTTP/2、快速用户数据协议(UDP)互联网连接(QUIC)和通用远程过程调用(gRPC)的负载平衡。此外,边车代理服务器325可以提供请求级指标、追踪跨度、主动和被动健康检查以及服务发现等任务。
图4示出了用于经由网络(例如,网络100)的数据平面交换智能网络接口卡(NIC)的能力信息的示例方法400的框图。示例方法400示出了叶交换机402(例如,叶交换机106),该叶交换机包括标准入接口404A(例如,标准NIC)、标准出接口404B和智能NIC接口406。叶交换机402可以利用界内或原地操作、管理和维护(IOAM)将智能NIC的能力信息传送到一个或多个相邻的网络元件(例如,服务器、网络设备、网络装置等)。例如,当流量进入了入接口404A以通过智能NIC接口406中转时,智能NIC可以将智能NIC的出口信息(例如,“Egress:sNIC”)和能力信息(例如,“Capabilities:offload,GPU”)附加到流量的IOAM部分410A。当流量进入标准入接口404A以通过标准出接口404B中转时,叶交换机402不提供流量的IOAM部分410B中的智能NIC的出口信息或能力信息。
IOAM可以指在数据分组穿越网络或特定网络域时在该数据分组内记录OAM和遥测信息的方法。术语“原地”或“界内”可以是指OAM和遥测数据在数据分组内携带,而不是在专门用于OAM的数据分组内发送。IOAM机制(有时也被称为嵌入式网络遥测)已被定义用于各种网络技术,如P4(一种用于分组转发平面编程的编程语言);用户数据报会话协议(SPUD);以及互联网协议版本4(IPv4)(例如,在互联网工程任务组(IETF)请求注解(RFC)791中定义的IPv4路由记录选项中)。
IOAM机制可以补足“带外”机制,如ping或traceroute。在带外机制可能不适用或不能提供网络运营商所需的特性或要求的情况下,如证明某些流量采用预先定义的路径,需要严格的一致性,检查实时数据流量的服务水平协议(SLA),详细统计在多个路径上分配流量的网络中的流量分配路径,或探测流量有可能被网络设备以不同于常规数据流量的方式处理的场景,可以利用IOAM机制。
IOAM可以具有以下能力或特征:
·灵活的数据格式,能够捕获不同类型的信息作为IOAM操作的一部分,包括路径跟踪信息和额外的操作和遥测信息,如时间戳、序列号或通用数据(如队列大小、转发节点的地理位置等);
·表达节点标识符和链路标识符的数据格式,以固定数量的添加数据记录数据分组所走的路径。
·在记录IOAM信息时能够检测是否跳过任何节点(例如,在这些节点上可能不支持或不启用IOAM)。
·能够主动处理数据分组中的信息(例如,使用某种流量引导方法,如服务链或流量工程,以加密安全的方式证明数据分组实际采用了预先定义的路径)。
·能够在各种不同的传输协议中包含OAM数据。
有关IOAM的其他细节可在以下IETF草案找到:“界内OAM的要求”(讨论了在数据分组穿越网络中两点之间的路径时将特定的操作和遥测信息包含在数据分组中的动机和要求)、“界内OAM的数据格式”(讨论了界内OAM数据记录的数据类型和数据格式)、“IOAM数据的GRE封装”、“IOAM数据的NSH封装”、“IOAM数据的Geneve封装”、“IOAM数据的VXLAN-GPE封装”、“IOAM数据的IPv6封装”、“IOAM数据的SRv6封装”、“经过证明”(讨论了安全地证明流量经过定义路径的机制)、“以原始格式导出IOAM数据”(讨论了可以如何使用IP流信息导出(IPFIX)将IOAM数据从网络设备以原始(例如,未解释的)格式导出到系统),其中每一项都通过引用并入本文。
利用IOAM来交换网络中智能NIC的能力信息可能特别有利,因为它可以确认数据分组流实际穿越或经过智能NIC,而且卸载并不需要对网络进行任何路径改变。
在一些实施例中,叶交换机402还可以通过网络的控制平面公布智能NIC的能力信息。例如,可以扩展发现协议(CDP)或链路层发现协议(LLDP),以使叶交换机402能够将智能NIC的能力信息提供给一个或多个相邻网络元件,包括服务器(例如,安装有的“lldap”分组的服务器)、网络设备和网络装置。特别地,可以扩展CDP和/或LLDP,以在这些协议的发现过程中添加智能NIC的能力信息。以这种方式,与托管虚拟化网络功能(V-NF)(例如,虚拟网络功能(VNF)、云原生网络功能(CNF)等)的服务器连接的节点可以通过CDP和/或LLDP以信号形式向服务器发送这些节点的智能NIC的能力信息。
在其他实施例中,叶交换机402可以使用扩展的地址解析协议(ARP)或邻居发现协议(NDP)通过信号发送其智能NIC的能力信息。例如,E-ARP已被提议作为一种在流量中携带额外数据(例如,多协议标签交换(MPLS)标签)的手段。E-ARP或NDP可以进一步扩展,以在节点对E-ARP或NDP请求的响应中包含节点的智能NIC的能力信息。
在另外的其他实施例中,叶交换机402可以根据网络运营商的偏好能够利用数据平面机制(例如IOAM)和控制平面机制(例如CDP、LLDP、E-ARP、NDP等)两者来交换能力信息。例如,Cisco3000系列交换机和Cisco7000系列交换机可包括这样的的ASIC:其支持IOAM技术,还可以支持CDP、LLDP、E-ARP、NDP或其他控制平面协议,以使网络运营商能够通过网络的数据平面和/或控制平面配置智能NIC能力信令。
图5示出了将网络处理任务从虚拟化网络功能(V-NF)(例如,虚拟网络功能(VNF)、云原生网络功能(CNF)等)卸载到远程智能NIC的示例方法500的框图。示例方法500示出了将其能力信息发送给物理服务器502的远程智能NIC 406(相对于物理服务器502是远程的)。特别地,远程智能NIC 406可以将能力信息嵌入到流量的IOAM部分410A中,以便传输到物理服务器502的标准NIC 504,在那里它可以被服务器的数据路径元素506(例如,OVS数据路径、OVS-DPDK数据路径、快速数据-输入/输出(FD.io)矢量分组处理(VPP)等)接收。数据路径元素506可以从流量的IOAM部分410A中提取远程智能NIC能力信息,并更新物理服务器502的控制路径元素508(例如,OVS、OVS/Contiv、代理服务器224、边车代理服务器325等)。
在一些实施例中,数据路径元素506可以使用FD.io VPP实现。VPP是一个开源的数据平面处理平台,用于优化虚拟化计算系统(例如,物理服务器110B和110C)中的I/O。VPP可以作为Linux用户空间进程运行,VPP驱动程序可以通过外设部件互连标准(PCI)提供NIC访问。VPP可以处理具有类似特征(被称为矢量)的多个数据分组。数据分组可以从接口的接收环中取出,并可以形成数据分组矢量,可以对该数据分组矢量应用处理图。处理图可以表示需要应用的网络功能(例如,IPv4转发、分类、多播等)。该方法可以最大限度地减少中断和遍历调用栈,从而最大限度地减少指令缓存和缺失的系统颠簸。VPP可以一次处理多个数据分组,使其成为可以支持各种先进网络功能(如动态主机配置协议(DHCP)、分段路由(SR)(如IPv6数据平面的分段路由(SRv6))、地址解析协议(ARP)、第2层传输协议版本3(L2TPv3)、虚拟路由和转发(VRF)、IPv6和基于以太网的MPLS等)的高性能处理栈。VPP能够从数据分组中插入、更新和提取IOAM数据,因此实现VPP的数据路径元素506可以被编程以从网络流量中提取IOAM数据并将IOAM数据传送到控制路径元素508。
在从数据路径元素506接收到智能NIC能力信息之后,控制路径元素508可以向虚拟化网络功能(V-NF)510A和510B(统称510)(例如,VNF、CNF等)发送可以卸载到远程智能NIC 406的网络处理任务的信号。当V-NF 510将特定的网络处理任务卸载到远程智能NIC406时,V-NF 510可以发送卸载指令到控制路径元素508。控制路径元素508可以向远程智能NIC 406提供处理信息(例如,匹配表、动作、状态信息、封装信息、统计数据等),以执行卸载的网络处理任务。
示例方法500利用卸载模型,其中控制路径元素508可以充当V-NF 510和远程智能NIC 406之间的中介物,并且数据路径元素506可以驻留在物理服务器502中。数据路径元素506在各种实施例中可以驻留在不同的位置,例如在网络功能虚拟化基础设施(NFVi)数据路径中,在物理服务器的内核空间中,在物理服务器的用户空间中,在物理服务器的虚拟交换机中,在物理服务器的智能NIC中,在连接到物理服务器的物理交换机中,在这些环境的嵌入式网络功能(eNF)或插件中,等等。在这些各种卸载模型中,控制路径元素508可以使用相邻智能NIC的能力信息对它们进行相关的匹配表、动作、状态信息、封装信息、统计数据等编程。
图6A-图6C示出了将网络处理任务从虚拟化网络功能(V-NF)(例如VNF、CNF等)加速和卸载到远程智能NIC的示例用例的框图。特别地,图6A示出了包括叶交换机402和物理服务器602的示例用例600。叶交换机402包括远程智能NIC 406(相对于物理服务器602是远程的)。物理服务器602没有智能NIC功能,但可以包括一个标准NIC 604。在示例用例600中,智能NIC 406和物理服务器602的控制路径元素608(例如,OVS、OVS/Contiv、代理服务器224、边车代理服务器325等)可以协商并建立控制平面会话。之后,物理服务器602中的V-NF610A和610B可以通过控制路径元素608将网络服务卸载到远程智能NIC 406。
图6B示出了包括叶交换机402和物理服务器622的示例用例620。叶交换机402包括智能NIC 406。在本示例中,物理服务器622包括智能NIC 626。在智能NIC 406和物理服务器622的控制路径元素628协商并建立控制平面会话后,为了负载平衡的目的,可以在任何一侧发生服务卸载。例如,控制路径元素628可以确定智能NIC 406的当前负载和/或智能NIC626的当前负载,并基于当前负载将物理服务器622中的V-NF 630A和630B的网络服务卸载到相应部分中的智能NIC。替代地或另外地,叶交换机402的控制路径元素(未示出)可以确定智能NIC 406的当前负载和/或智能NIC626的当前负载,并基于当前负载将网络服务卸载到相应部中分的智能NIC。
图6C示出了涉及基于IPv6数据平面的分段路由(SRv6)的示例用例640。示例用例640包括智能NIC机406和物理服务器642。物理服务器642可以包括标准NIC 644和645、数据路径元素646(例如,OVS数据路径、OVS-DPDK数据路径、FD.io VPP等)、控制路径元素648(例如,OVS、OVS/Contiv、代理服务器224、边车代理服务器325等)以及V-NF 650A和650B。在本示例中,智能NIC 406以前可能已通过数据平面(例如IOAM)或控制平面(例如CDP、LLDP、E-ARP、NDP等)与控制路径元素628交换其能力,并且控制路径元素628以前可能已向V-NF650A和650B发送智能NIC 406的能力的信号。V-NF 650A和650B可以被编程以对SRv6数据分组执行某些网络处理任务,但可以通过控制路径元素648将这些任务卸载到智能NIC 406。例如,控制路径元素648可以将SRv6结束行为与处理信息(例如,匹配表、动作、状态信息、封装信息、统计数据等)一起卸载到智能NIC,以应用于SRv6数据分组。当匹配的数据分组(例如,包括SRv6部分652A的数据分组)到达智能NIC 406时,智能NIC可以对数据分组(例如,包括SRv6部分652B的数据分组)执行由控制路径元素648提供的网络处理任务,并通过标准NIC 644、数据路径元素646和标准NIC 645转发该流量。
图7示出了加速和卸载虚拟化网络功能(V-NF)(例如,VNF、CNF等)的网络处理任务的过程700的示例的流程图。普通技术人员将会理解,对于本文讨论的任何过程,除非另有说明,否则在各种实施例的范围内,可以有额外的、更少的或替代的步骤以类似或替代的顺序或并行地执行。过程700可由网络元件,例如物理服务器(例如,物理服务器110)、虚拟化服务器(例如,虚拟机120A、容器120B或其他虚拟网络分区)、物理或虚拟网络设备(例如,交换机、路由器、应用加速器、网络地址转换器(NAT)、负载平衡器、防火墙、分布式拒绝服务(DDoS)缓解器、深度分组检查器(DPI)、入侵防御系统(IPS)、入侵检测系统(IDS)、互联网协议安全(IPSec)系统、会话边界控制器(SBC)、流量监控器、演进分组核心(EPC)功能、WAN优化器等),或网络元件的智能NIC执行。
过程700可以在步骤702开始,其中第一网络元件(例如,物理或虚拟服务器或网络设备)的第一智能NIC可以发送第一智能NIC的能力,由一个或多个相邻网络元件(例如,物理或虚拟服务器或网络设备)接收。在一些实施例中,交换可以通过数据平面(例如,通过界内或原地操作、管理和维护(IOAM))发生。例如,第一智能NIC可以将能力信息附加到数据分组的IOAM部分。替代地或另外地,该交换可以通过控制平面(例如,通过发现协议(CDP)、链路层发现协议(LLDP)、扩展地址解析协议(E-ARP)、邻居发现协议(NDP)等)发生。例如,可以扩展这些协议,从而可以在协议的发现阶段交换智能NIC的能力信息。
过程700可以进行到步骤704,其中该一个或多个相邻网络元件中的第二网络元件可以确定在第二网络元件上实例化的V-NF的一个或多个网络处理任务是否可以卸载到第一智能NIC。也就是说,第二网络元件可以基于在步骤702接收的能力信息确定第一智能NIC是否能够执行该一个或多个网络处理任务。
在步骤706,第二网络元件可以从V-NF接收处理信息,用于执行该一个或多个网络处理任务。在一些实施例中,第二网络元件可以用信号传送第一智能NIC的能力信息到V-NF,V-NF可以确定卸载该一个或多个网络处理任务,然后发送卸载指令到第二网络元件。在其他实施例中,第二网络元件可以确定可从V-NF卸载该一个或多个网络处理任务,然后从V-NF取回卸载指令。
该过程700可以继续到判定块708,其中可以确定第二网络元件是否可以访问第二智能NIC。例如,第二智能NIC可以集成在第二网络元件中,与第二网络元件相邻的第三网络元件中,或第一网络元件中,等等。
如果第二网络元件不能访问第二智能NIC,则过程700可在步骤716结束,其中第二网络元件可将在步骤706接收的处理信息转换成控制信息,并发送控制信息以使第一智能NIC对第一网络元件接收的至少一部分网络数据执行该一个或多个网络处理任务,以传输给第二网络元件。在一些实施例中,这可能涉及第二网络元件与第一智能NIC协商并建立控制平面会话,并对第一智能NIC进行编程以执行该一个或多个网络处理任务。在其他实施例中,第二网络元件可以将控制信息发送到网络控制器(例如,网络结构控制器108、网络功能虚拟化编排器(NFVO)、主节点202、引导器302等),用于对第一智能NIC进行编程以执行该一个或多个网络处理任务。
控制信息可以包括匹配表或规则(例如,n元组匹配、通配符匹配、字符串或正则表达式匹配等)、动作(例如,转发、服务质量(QoS)策略、头修改等)、封装信息(例如,隧道发起/终结、隧道转换等)和状态信息(例如,基于连接或会话的安全策略、监控/统计、镜像、日志、状态同步等)等。控制信息还可以包括更细化的信息,例如用于或关于以下各项的指示:在线收费和细化收费(例如,计费组)、防火墙(例如,基于规则的策略、访问控制列表等)、状态防火墙(例如,允许TCP连接或UDP会话的前向和反向流量或处理相关的流(例如,文件传输协议(FTP)控制和数据、会话发起协议(SIP)信令和媒体等))、用户防火墙(例如,速率限制,流计数等)、入侵防御(例如,扫描网络的恶意软件或漏洞利用,流量检查深度(例如,一旦没有进一步入侵的可能,就卸载微流的其余部分,等等)、反病毒、网络过滤、反垃圾邮件、流量监控/分析、加密/解密、压缩、转码,等等。在一些实施例中,第二网络元件可以直接对第一智能NIC进行编程,以执行该一个或多个网络处理任务。在其他实施例中,第二网络元件可将控制信息发送到集中式网络控制器,用于对第一智能NIC进行编程以执行该一个或多个网络处理任务。
在另一方面,如果在判定框708有可供第二网络元件使用的第二智能NIC,则过程700可以继续到步骤710,其中第二网络元件可以确定第一智能NIC和/或第二智能NIC(例如,并入第一网络元件、第二网络元件、与第二网络元件相邻的第三网络元件等中)的当前负载。在步骤712,,第二网络元件可以基于当前负载确定如何将第一网络元件接收的网络数据按比例分配,以传输给第二网络元件。在步骤714,第二网络元件可以向第一网络元件发送控制信息,该控制信息使第一智能NIC对第一按比例分配数量的网络数据执行该一个或多个网络处理任务。过程700可以在步骤716结束,其中第二网络元件可以发送控制信息,该控制信息使第二智能NIC对第二按比例分配数量的网络数据执行该一个或多个网络处理任务。
图8示出了网络设备800(例如,交换机、路由器、网络装置等)的示例的框图。网络设备800可以包括主中央处理器(CPU)802、接口804和总线806(例如,PCI总线)。当在适当的软件或固件控制下动作时,CPU 802可以负责执行分组管理、错误检测和/或路由功能。CPU802优选在软件,包括操作系统和任何适当的应用软件的控制下完成所有这些功能。CPU802可以包括一个或多个处理器808,例如摩托罗拉微处理器家族或MIPS微处理器家族的处理器。在另一个替代的实施例中,处理器808可以是为了控制网络设备800的操作而特别设计的硬件。在一个实施例中,存储器810(如非易失性RAM和/或ROM)也可以构成CPU 802的一部分。然而,有很多不同的方式可以将存储器与系统耦合。
接口804可以作为接口卡(有时被称为线卡)提供。接口804可以控制网络上数据分组的发送和接收,有时还支持与网络设备800一起使用的其他外围设备。可以提供的接口包括以太网接口、帧中继接口、电缆接口、DSL接口、令牌环接口等。此外,还可以提供各种非常高速的接口,例如快速令牌环接口、无线接口、以太网接口、千兆以太网接口、异步传输模式(ATM)接口、高速串行接口(HSSI)、基于SONET的分组传输(POS)接口、光纤分布数据接口(FDDI)等。接口804可以包括适合与适当媒体通信的端口。在某些情况下,接口804还可以包括独立的处理器,以及在某些情况下包括易失性RAM。独立的处理器可以控制通信密集型任务,如分组交换、媒体控制和管理。通过为通信密集型任务提供单独的处理器,接口804可以使CPU 802有效地执行路由计算、网络诊断、安全功能等。
虽然图8所示的系统是一个实施例的网络设备的示例,但它绝不是唯一的可以实现主题技术的网络设备架构。例如,也可以使用具有单个处理器的架构,该处理器可以处理通信以及路由计算和其他网络功能。此外,其他类型的接口和媒体也可以与网络设备800一起使用。
无论网络设备的配置如何,它都可以采用一个或多个存储器或存储器模块(包括存储器810),存储器或存储器模块被配置为存储用于通用网络操作的程序指令以及本文所述的漫游、路由优化和路由功能的机制。这些程序指令可以控制操作系统和/或一个或多个应用的操作。一个或多个存储器还可以被配置为存储表,例如移动性绑定、注册和关联表。
图9A和图9B示出了用于实现本公开的各种实施例的系统示例的框图。本领域的普通技术人员在实施各种实施例时,更合适的系统会显而易见。本领域的普通技术人员也会很容易理解其他系统是可能的。
图9A示出了总线计算系统900的示例,其中系统的组件使用总线905彼此电通信。计算系统900可以包括处理单元(CPU或处理器)910和系统总线905,该总线可以将包括系统存储器915(例如只读存储器(ROM)920和随机存取存储器(RAM)925)在内的各种系统组件耦合到处理器910。计算系统900可以包括与处理器910直接连接、接近或集成为其一部分的高速存储器的缓存912。计算系统900可以将数据从存储器915、ROM 920、RAM 925和/或存储设备930复制到缓存912,以便由处理器910快速访问。通过这种方式,缓存912可以提供性能提升,这避免了在等待数据时出现处理器延迟。这些和其他模块可以控制处理器910执行各种动作。其他系统存储器915也可以供使用。存储器915可以包括具有不同性能特征的多种不同类型的存储器。处理器910可以包括任何通用处理器和硬件模块或软件模块,例如存储在存储设备930中的模块1932、模块2 934和模块3 936,该模块被配置为控制处理器910以及专用处理器,其中软件指令被包含在实际的处理器设计中。处理器910本质上可以是一个完全独立的计算系统,包含多个内核或处理器,以及总线、存储控制器、缓存等。多核处理器可以是对称的或不对称的。
为了使用户能够与计算系统900进行交互,输入设备945可以代表任何数量的输入机制,例如用于说话的麦克风、用于手势或图形输入的触摸保护屏幕、键盘、鼠标、运动输入、语音等等。输出设备935也可以是本领域技术人员已知的若干输出机制中的一个或多个。在某些情况下,多模态系统可以使用户能够提供多种类型的输入来与计算系统900进行通信。通信接口940可以支配和管理用户输入和系统输出。对于在任何特定的硬件布置上操作可能没有限制,因此在开发出改进的硬件或固件布置时,这里的基本特征可以很容易地被其取代。
存储设备930可以是非易失性存储器,也可以是硬盘或其他类型的可存储计算机可访问的数据的计算机可读介质,如磁带、闪存卡、固态存储设备、数字通用光盘、卡带、随机存取存储器、只读存储器,以及它们的混合体。
如上所述,存储设备930可以包括用于控制处理器910的软件模块932、934、936。其他硬件或软件模块也是可以考虑的。存储设备930可以连接到系统总线905。在一些实施例中,执行特定功能的硬件模块可以包括存储在计算机可读介质中的软件组件,并与必要的硬件组件,如处理器910、总线905、输出设备935等连接,以执行该功能。
图9B示出了根据一个实施例可以使用的芯片组计算系统950的示例架构。计算系统950可以包括处理器955,该处理器代表任何数量的物理上和/或逻辑上不同的资源,这些资源能够执行用于实现所识别的计算(identified computations)的软件、固件和硬件。处理器955可以与芯片组960通信,该芯片组可以控制对处理器955的输入和输出。在本示例中,芯片组960可以将信息输出到输出设备965,例如显示器,并且可以对存储设备970读取和写入信息,存储设备可以包括磁介质、固态介质和其他合适的存储介质。芯片组960还可以对RAM 975读取和写入数据。可以提供用于与各种用户接口组件985对接的桥980,以用于与芯片组960对接。用户接口组件985可以包括键盘、麦克风、触摸检测和处理电路、指向装置,如鼠标,等等。对计算系统950的输入可以来自各种来源中任何来源(由机器生成和/或人类生成)。
芯片组960还可以与一个或多个通信接口990对接,这些接口可以有不同的物理接口。通信接口990可以包括用于有线和无线LAN、用于宽带无线网络,以及用于个人区域网络的接口。用于生成、显示和使用本文所公开的技术的方法的一些应用可以包括通过物理接口接收有序的数据集,或者通过处理器955分析存储在存储设备970或RAM 975中的数据由机器本身生成。此外,计算系统950可以通过用户接口组件985接收来自用户的输入,并通过使用处理器955解释这些输入来执行适当的功能,例如浏览功能。
可以理解的是,计算系统900和950可以分别具有一个以上的处理器910和955,或者是联网在一起的计算设备组或集群的一部分,以提供更大的处理能力。
系统和方法用于将网络处理加速和卸载到远程智能网络接口卡(NIC)。包括第一智能NIC的第一网络元件可以发送第一智能NIC的能力信息,由相邻的第二网络元件接收。第二网络元件可以确定,在第二网络元件上实例化的虚拟化网络功能(例如,虚拟网络功能(VNF)、云原生网络功能(CNF)等)的网络处理任务可以卸载到第一智能NIC。第二网络元件可以从虚拟化网络功能接收处理信息,用于执行该网络处理任务。第二网络元件可以基于处理信息发送控制信息,该控制信息使第一智能NIC对第一网络元件接收的至少一部分网络数据执行该网络处理任务,以传输给第二网络元件。
为了解释清楚起见,在某些情况下,各种实施例可以被表示为包括单独的功能块,这些功能块包括含有设备、设备组件、以软件或者硬件和软件的组合实现的方法中的步骤或例程的功能块。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括含有比特流等的电缆或无线信号。然而,当提到时,非暂时性计算机可读存储介质明确地排除了诸如能量、载波信号、电磁波和信号本身的介质。
根据上述示例的方法可以使用计算机可执行指令来实现,这些指令存储在计算机可读介质上或以其他方式可供使用。这种指令可以包括,例如,使得(或以其他方式配置)通用计算机、专用计算机或专用处理设备执行某种功能或一组功能的指令和数据。使用的部分计算机资源可以通过网络访问。计算机可执行指令可以是,例如,二进制文件、中间格式指令,如汇编语言、固件或源代码。可用于存储指令、使用的信息和/或根据所述示例的方法期间创建的信息的计算机可读介质的例子包括磁盘或光盘、闪存、设有非易失性存储器的USB设备、联网的存储设备,等等。
实现根据这些公开内容的方法的设备可以包括硬件、固件和/或软件,并可以采用各种形状因数中的任何一种。这些形状因数的一些例子包括通用计算设备,如服务器、机架式设备、台式计算机、膝上型计算机等,或通用移动计算设备,如平板计算机、智能电话、个人数字助理、可穿戴设备等。本文所述的功能也可以在外围设备或附加卡中实现。通过进一步的例子,这种功能也可以在电路板上的不同芯片或在单一设备中执行的不同过程中实现。
指令、传达此类指令的媒介、执行此类指令的计算资源以及支持此类计算资源的其他结构是提供这些公开内容中所述功能的手段。
尽管各种示例和其他信息被用来解释所附权利要求范围内的各个方面,但不应根据这些示例中的特定特征或布置来暗示对权利要求的限制,因为普通技术人员将能够使用这些示例得出各种各样的实施方式。此外,尽管可能已经使用结构特征和/或方法步骤的示例的具体语言描述了一些主题,但应该理解,所附权利要求中定义的主题不一定限于这些描述的特征或行为。例如,这种功能可能以不同的方式分布,或在本文所指明的组件之外的组件中执行。相反,所描述的特征和步骤是作为所附权利要求范围内的系统和方法的组成部分的示例而公开的。
Claims (23)
1.一种计算机实现的方法,包括:
通过第二网络元件从包括第一智能网络接口卡(NIC)的第一网络元件接收所述第一智能NIC的能力信息;
基于所述能力信息确定在所述第二网络元件中实例化的虚拟化网络功能的一个或多个网络处理任务能够被卸载到所述第一智能NIC;
从所述虚拟化网络功能接收用于执行所述一个或多个网络处理任务的处理信息;以及
基于所述处理信息发送控制信息,所述控制信息使所述第一智能NIC对由所述第一网络元件接收的至少一部分网络数据执行所述一个或多个网络处理任务,以传输给所述第二网络元件。
2.根据权利要求1所述的计算机实现的方法,还包括:
确定所述第二网络元件能够访问第二智能NIC;
确定所述第一智能NIC或所述第二智能NIC中至少一者的当前负载;以及
基于所述当前负载确定所述网络数据的按比例分配,
其中,所述控制信息进一步使所述第二智能NIC对按比例分配数量的所述网络数据执行所述一个或多个网络处理任务。
3.根据权利要求2的计算机实现的方法,其中,所述第二智能NIC被集成在所述第二网络元件中。
4.根据权利要求2的计算机实现的方法,其中,所述第二智能NIC被集成在与所述第二网络元件相邻的第三网络元件中。
5.根据权利要求1至4中任一项所述的计算机实现的方法,其中,所述能力信息是在数据流量的界内或原地操作、管理和维护(IOAM)部分内接收的。
6.根据权利要求5所述的计算机实现的方法,还包括:
通过所述第二网络元件的数据路径元素从所述数据流量的IOAM部分提取所述能力信息;以及
通过所述数据路径元素利用所述能力信息更新所述第二网络元件的控制路径元素。
7.根据权利要求6的计算机实现的方法,其中,所述数据路径元素包括快速数据输入/输出(Fd.IO)矢量分组处理器(VPP)。
8.根据权利要求6的计算机实现的方法,其中,所述数据路径元素驻留在所述第二网络元件的内核空间中。
9.根据权利要求6的计算机实现的方法,其中,所述数据路径元素驻留在第二网络元件的用户空间中。
10.根据权利要求6的计算机实现的方法,其中,所述数据路径元素驻留在所述第一智能NIC中。
11.根据权利要求6至10中任一项的计算机实现的方法,其中,所述控制路径元素包括开放虚拟交换机(OVS)、Contiv插件、Kubernetes代理服务器或Istio边车代理服务器中的至少一者。
12.根据权利要求1至11中任一项的计算机实现的方法,其中,所述能力信息是经由思科发现协议(CDP)、链路层发现协议(LLDP)、扩展地址解析协议(E-ARP)或邻居发现协议(NDP)中的至少一个来接收的。
13.一种系统,包括:
一个或多个处理器;以及
存储器,包括指令,所述指令在被所述一个或多个处理器执行时使所述系统执行以下操作:
从包括第一智能网络接口卡(NIC)的第一网络元件接收所述第一智能NIC的能力信息;
基于所述能力信息确定在所述系统中实例化的虚拟化网络功能的一个或多个网络处理任务能够卸载到所述第一智能NIC;
从所述虚拟化网络功能接收用于执行所述一个或多个网络处理任务的处理信息;以及
基于所述处理信息发送控制信息,所述控制信息使所述第一智能NIC对由所述第一网络元件接收的至少一部分网络数据执行所述一个或多个网络处理任务,以传输给所述系统。
14.根据权利要求13所述的系统,其中,所述指令在被执行时进一步使所述系统执行以下操作:
确定所述系统能够访问第二智能NIC;
确定所述第一智能NIC或所述第二智能NIC中至少一者的当前负载;以及
基于所述当前负载确定所述网络数据的按比例分配,
其中,所述控制信息进一步使所述第二智能NIC对按比例分配数量的所述网络数据执行所述一个或多个网络处理任务。
15.根据权利要求14的系统,其中,所述第二智能NIC被集成在所述第二网络元件中。
16.根据权利要求13至15中任一项的系统,其中,所述能力信息是通过控制平面协议接收的。
17.一种非暂时性计算机可读存储介质,包括指令,所述指令在被系统的一个或多个处理器执行时使所述系统执行以下操作:
从包括第一智能网络接口卡(NIC)的第一网络元件接收所述第一智能NIC的能力信息;
基于所述能力信息确定在所述系统中实例化的虚拟化网络功能的一个或多个网络处理任务能够卸载到所述第一智能NIC;
从所述虚拟化网络功能接收用于执行所述一个或多个网络处理任务的处理信息;以及
基于所述处理信息发送控制信息,所述控制信息使所述第一智能NIC对由所述第一网络元件接收的至少一部分网络数据执行所述一个或多个网络处理任务,以传输给所述系统。
18.根据权利要求17的非暂时性计算机可读存储介质,其中,所述能力信息是在数据流量中接收的。
19.根据权利要求18的非暂时性计算机可读存储介质,其中,所述指令在被执行时进一步使所述系统执行以下操作:
通过所述系统的数据路径元素从所述数据流量提取所述能力信息;以及
通过所述数据路径元素利用所述能力信息更新所述系统的控制路径元素。
20.根据权利要求19的非暂时性计算机可读存储介质,其中,所述数据路径元素包括快速数据输入/输出(Fd.IO)矢量分组处理器(VPP)。
21.一种设备,包括:
用于通过第二网络元件从包括第一智能网络接口卡(NIC)的第一网络元件接收所述第一智能NIC的能力信息的装置;
用于基于所述能力信息确定在所述第二网络元件上实例化的虚拟化网络功能的一个或多个网络处理任务可以卸载到所述第一智能NIC的装置;
用于从所述虚拟化网络功能接收用于执行所述一个或多个网络处理任务的处理信息的装置;以及
用于基于所述处理信息发送控制信息的装置,所述控制信息使所述第一智能NIC对所述第一网络元件接收的至少一部分网络数据执行所述一个或多个网络处理任务,以传输给所述第二网络元件。
22.根据权利要求21的设备,进一步包括用于实现根据权利要求2至12中任一项所述的方法的装置。
23.一种计算机程序、计算机程序产品或计算机可读介质,包括指令,所述指令在被计算机执行时使所述计算机执行权利要求1至12中任一项所述的方法的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/289,412 US11150963B2 (en) | 2019-02-28 | 2019-02-28 | Remote smart NIC-based service acceleration |
US16/289,412 | 2019-02-28 | ||
PCT/US2020/019979 WO2020176673A1 (en) | 2019-02-28 | 2020-02-26 | Remote smart nic-based service acceleration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113454971A true CN113454971A (zh) | 2021-09-28 |
CN113454971B CN113454971B (zh) | 2024-02-23 |
Family
ID=69846628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080014713.7A Active CN113454971B (zh) | 2019-02-28 | 2020-02-26 | 基于远程智能nic的服务加速 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11150963B2 (zh) |
EP (1) | EP3932041B1 (zh) |
CN (1) | CN113454971B (zh) |
WO (1) | WO2020176673A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244619A (zh) * | 2021-12-23 | 2022-03-25 | 北京天融信网络安全技术有限公司 | 一种基于网络安全网格的通信方法、装置及系统 |
CN114520752A (zh) * | 2022-02-11 | 2022-05-20 | 北京秒如科技有限公司 | 基于智能网卡的vxlan协议控制平面卸载方法及装置 |
CN114826608A (zh) * | 2022-04-02 | 2022-07-29 | 网宿科技股份有限公司 | 一种微服务的证书管理方法、装置及认证系统 |
CN115334153A (zh) * | 2022-08-12 | 2022-11-11 | 北京百度网讯科技有限公司 | 服务网格的数据处理方法和装置 |
Families Citing this family (104)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12058160B1 (en) | 2017-11-22 | 2024-08-06 | Lacework, Inc. | Generating computer code for remediating detected events |
US11973784B1 (en) | 2017-11-27 | 2024-04-30 | Lacework, Inc. | Natural language interface for an anomaly detection framework |
US11785104B2 (en) | 2017-11-27 | 2023-10-10 | Lacework, Inc. | Learning from similar cloud deployments |
US11741238B2 (en) | 2017-11-27 | 2023-08-29 | Lacework, Inc. | Dynamically generating monitoring tools for software applications |
US11979422B1 (en) | 2017-11-27 | 2024-05-07 | Lacework, Inc. | Elastic privileges in a secure access service edge |
US11792284B1 (en) | 2017-11-27 | 2023-10-17 | Lacework, Inc. | Using data transformations for monitoring a cloud compute environment |
US20220232024A1 (en) | 2017-11-27 | 2022-07-21 | Lacework, Inc. | Detecting deviations from typical user behavior |
US12034754B2 (en) | 2017-11-27 | 2024-07-09 | Lacework, Inc. | Using static analysis for vulnerability detection |
US20220232025A1 (en) | 2017-11-27 | 2022-07-21 | Lacework, Inc. | Detecting anomalous behavior of a device |
US11894984B2 (en) | 2017-11-27 | 2024-02-06 | Lacework, Inc. | Configuring cloud deployments based on learnings obtained by monitoring other cloud deployments |
US12095796B1 (en) | 2017-11-27 | 2024-09-17 | Lacework, Inc. | Instruction-level threat assessment |
US11765249B2 (en) | 2017-11-27 | 2023-09-19 | Lacework, Inc. | Facilitating developer efficiency and application quality |
US11818156B1 (en) | 2017-11-27 | 2023-11-14 | Lacework, Inc. | Data lake-enabled security platform |
US11849000B2 (en) | 2017-11-27 | 2023-12-19 | Lacework, Inc. | Using real-time monitoring to inform static analysis |
US11770398B1 (en) | 2017-11-27 | 2023-09-26 | Lacework, Inc. | Guided anomaly detection framework |
US10419469B1 (en) | 2017-11-27 | 2019-09-17 | Lacework Inc. | Graph-based user tracking and threat detection |
US11956203B2 (en) * | 2019-04-04 | 2024-04-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Service handling in software defined networking based container orchestration systems |
US11537421B1 (en) * | 2019-06-07 | 2022-12-27 | Amazon Technologies, Inc. | Virtual machine monitor providing secure cryptographic operations |
US11593140B2 (en) * | 2019-06-28 | 2023-02-28 | Hewlett Packard Enterprise Development Lp | Smart network interface card for smart I/O |
US11669468B2 (en) * | 2019-06-28 | 2023-06-06 | Hewlett Packard Enterprise Development Lp | Interconnect module for smart I/O |
DE102020113346A1 (de) * | 2019-07-02 | 2021-01-07 | Hewlett Packard Enterprise Development Lp | Bereitstellen von service-containern in einer adaptervorrichtung |
US10938717B1 (en) * | 2019-09-04 | 2021-03-02 | Cisco Technology, Inc. | Policy plane integration across multiple domains |
US11201955B1 (en) * | 2019-12-23 | 2021-12-14 | Lacework Inc. | Agent networking in a containerized environment |
US11256759B1 (en) | 2019-12-23 | 2022-02-22 | Lacework Inc. | Hierarchical graph analysis |
US11188571B1 (en) | 2019-12-23 | 2021-11-30 | Lacework Inc. | Pod communication graph |
US11483246B2 (en) | 2020-01-13 | 2022-10-25 | Vmware, Inc. | Tenant-specific quality of service |
US11599395B2 (en) | 2020-02-19 | 2023-03-07 | Vmware, Inc. | Dynamic core allocation |
US11606369B2 (en) * | 2020-03-20 | 2023-03-14 | Cisco Technology, Inc. | Intelligent quarantine on switch fabric for physical and virtualized infrastructure |
US11349866B2 (en) * | 2020-03-31 | 2022-05-31 | Fortinet, Inc. | Hardware acceleration device for denial-of-service attack identification and mitigation |
US11962518B2 (en) | 2020-06-02 | 2024-04-16 | VMware LLC | Hardware acceleration techniques using flow selection |
US11296947B2 (en) | 2020-06-29 | 2022-04-05 | Star2Star Communications, LLC | SD-WAN device, system, and network |
CN111541789A (zh) | 2020-07-08 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链一体机的数据同步方法及装置 |
CN111541726B (zh) | 2020-07-08 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链一体机的重放交易识别方法及装置 |
CN111539829B (zh) * | 2020-07-08 | 2020-12-29 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链一体机的待过滤交易识别方法及装置 |
CN112492002B (zh) | 2020-07-08 | 2023-01-20 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链一体机的交易转发方法及装置 |
CN113726875B (zh) | 2020-07-08 | 2024-06-21 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链一体机的交易处理方法及装置 |
US12052173B2 (en) * | 2020-07-22 | 2024-07-30 | CAST AI Group, Inc. | Executing workloads across multiple cloud service providers |
KR102217114B1 (ko) * | 2020-07-24 | 2021-02-18 | 넷록스 주식회사 | 엣지 플랫폼 네트워크의 가속화 제어 방법 및 이를 사용하는 전자 장치 |
US11539633B2 (en) * | 2020-08-31 | 2022-12-27 | Vmware, Inc. | Determining whether to rate limit traffic |
US11474873B2 (en) | 2020-09-22 | 2022-10-18 | Rockwell Automation Technologies, Inc. | Implementing serverless functions using container orchestration systems and operational technology devices |
US12066804B2 (en) * | 2020-09-22 | 2024-08-20 | Rockwell Automation Technologies, Inc. | Integrating container orchestration systems with operational technology devices |
US11513877B2 (en) | 2020-09-22 | 2022-11-29 | Rockwell Automation Technologies, Inc. | Updating operational technology devices using container orchestration systems |
US11606310B2 (en) | 2020-09-28 | 2023-03-14 | Vmware, Inc. | Flow processing offload using virtual port identifiers |
US11875172B2 (en) | 2020-09-28 | 2024-01-16 | VMware LLC | Bare metal computer for booting copies of VM images on multiple computing devices using a smart NIC |
US11636053B2 (en) | 2020-09-28 | 2023-04-25 | Vmware, Inc. | Emulating a local storage by accessing an external storage through a shared port of a NIC |
US11736566B2 (en) | 2020-09-28 | 2023-08-22 | Vmware, Inc. | Using a NIC as a network accelerator to allow VM access to an external storage via a PF module, bus, and VF module |
US12021759B2 (en) | 2020-09-28 | 2024-06-25 | VMware LLC | Packet processing with hardware offload units |
US12052360B2 (en) * | 2020-11-03 | 2024-07-30 | Ppip, Llc | Secure apparatus enabled secure platform integration |
US11196665B1 (en) * | 2020-11-12 | 2021-12-07 | Sap Se | Routing application calls |
CN112737933B (zh) * | 2020-12-24 | 2022-12-23 | 浪潮思科网络科技有限公司 | 一种基于云场景的网关系统及网关通信方法 |
US11552904B2 (en) * | 2021-01-19 | 2023-01-10 | Reliance Jio Infocomm Usa, Inc. | Architecture for high performing data plane applications with smart network interface on compute servers |
CN113098780B (zh) * | 2021-02-22 | 2023-04-28 | 网宿科技股份有限公司 | 虚拟网络的报文处理方法、电子设备及存储介质 |
US11812362B2 (en) * | 2021-03-01 | 2023-11-07 | Juniper Networks, Inc. | Containerized router with a disjoint data plane |
WO2022216432A1 (en) * | 2021-04-09 | 2022-10-13 | Microsoft Technology Licensing, Llc | Architectures for disaggregating sdn from the host |
US11757782B2 (en) * | 2021-04-09 | 2023-09-12 | Microsoft Technology Licensing, Llc | Architectures for disaggregating SDN from the host |
US11799785B2 (en) | 2021-04-09 | 2023-10-24 | Microsoft Technology Licensing, Llc | Hardware-based packet flow processing |
WO2022216441A1 (en) * | 2021-04-09 | 2022-10-13 | Microsoft Technology Licensing, Llc | High availability for hardware-based packet flow processing |
US11588740B2 (en) | 2021-04-09 | 2023-02-21 | Microsoft Technology Licensing, Llc | Scaling host policy via distribution |
JP2022166934A (ja) * | 2021-04-22 | 2022-11-04 | 富士通株式会社 | 情報処理装置、過負荷制御プログラムおよび過負荷制御方法 |
US12015562B2 (en) | 2021-04-29 | 2024-06-18 | Oracle International Corporation | Port addressing via packet header modification |
US11496599B1 (en) | 2021-04-29 | 2022-11-08 | Oracle International Corporation | Efficient flow management utilizing control packets |
US11245762B1 (en) | 2021-05-19 | 2022-02-08 | Red Hat, Inc. | Data request servicing using smart network interface cards |
US11799784B2 (en) | 2021-06-08 | 2023-10-24 | Vmware, Inc. | Virtualized QoS support in software defined networks |
US11689505B2 (en) | 2021-06-28 | 2023-06-27 | Cisco Technology, Inc. | Dynamic proxy response from application container |
US11936554B2 (en) * | 2021-06-30 | 2024-03-19 | Juniper Networks, Inc. | Dynamic network interface card fabric |
EP4298768A1 (en) * | 2021-06-30 | 2024-01-03 | Juniper Networks, Inc. | Edge services using network interface cards having processing units |
US20220335563A1 (en) * | 2021-07-06 | 2022-10-20 | Intel Corporation | Graphics processing unit with network interfaces |
US12015557B2 (en) | 2021-07-29 | 2024-06-18 | Oracle International Corportion | Efficient flow management utilizing unified logging |
US20230041806A1 (en) * | 2021-08-04 | 2023-02-09 | Oracle International Corporation | Location-independent programming data plane for packet processing |
US20230043202A1 (en) * | 2021-08-05 | 2023-02-09 | International Business Machines Corporation | Query and update of processor boost information |
US11956142B2 (en) * | 2021-08-19 | 2024-04-09 | Versa Networks, Inc. | Path selection for data traffic within a software-defined wide area network using traffic metrics |
US20230073891A1 (en) * | 2021-09-09 | 2023-03-09 | Beijing Bytedance Network Technology Co., Ltd. | Multifunctional application gateway for security and privacy |
US12079653B2 (en) | 2021-10-05 | 2024-09-03 | Hewlett Packard Enterprise Development Lp | Distributed state store supporting multiple protocols |
US12047440B2 (en) * | 2021-10-05 | 2024-07-23 | International Business Machines Corporation | Managing workload in a service mesh |
US11863455B2 (en) | 2021-11-23 | 2024-01-02 | Oracle International Corporation | Cloud based cross domain system—CDSaaS |
WO2023097155A1 (en) * | 2021-11-23 | 2023-06-01 | Oracle International Corporation | Cloud based cross domain system – virtual data diode |
US12095868B2 (en) | 2021-11-23 | 2024-09-17 | Oracle International Corporation | Cloud based cross domain system—virtual data diode |
US11853813B2 (en) | 2021-11-23 | 2023-12-26 | Oracle International Corporation | Cloud based cross domain system—CDS with disaggregated parts |
US11533362B1 (en) | 2021-12-01 | 2022-12-20 | International Business Machines Corporation | Network interface controller aware placement of virtualized workloads |
CN114301875A (zh) * | 2021-12-21 | 2022-04-08 | 锐捷网络股份有限公司 | 一种dhcp代理端的管控方法、装置及电子设备 |
US11863376B2 (en) | 2021-12-22 | 2024-01-02 | Vmware, Inc. | Smart NIC leader election |
US11995024B2 (en) * | 2021-12-22 | 2024-05-28 | VMware LLC | State sharing between smart NICs |
CN114500171B (zh) * | 2021-12-29 | 2023-05-26 | 曙光云计算集团有限公司 | 网络系统及报文传输方法 |
US11659027B1 (en) * | 2022-01-06 | 2023-05-23 | Vmware, Inc. | Multi-network/domain service discovery in a container orchestration platform |
US20230269201A1 (en) * | 2022-02-18 | 2023-08-24 | Microsoft Technology Licensing, Llc | Pooling smart nics for network disaggregation |
US11627061B1 (en) * | 2022-02-24 | 2023-04-11 | Microsoft Technology Licensing, Llc | Packet capture using VXLAN encapsulation |
US12032969B2 (en) * | 2022-04-27 | 2024-07-09 | Dell Products L.P. | Management controller as bios |
US11928367B2 (en) | 2022-06-21 | 2024-03-12 | VMware LLC | Logical memory addressing for network devices |
US11899594B2 (en) | 2022-06-21 | 2024-02-13 | VMware LLC | Maintenance of data message classification cache on smart NIC |
US11928062B2 (en) | 2022-06-21 | 2024-03-12 | VMware LLC | Accelerating data message classification with smart NICs |
CN115150464B (zh) * | 2022-06-22 | 2024-03-15 | 北京天融信网络安全技术有限公司 | 应用代理方法、装置、设备及介质 |
CN115277568B (zh) * | 2022-07-20 | 2024-07-30 | 重庆星环人工智能科技研究院有限公司 | 一种数据发送方法、装置、设备及存储介质 |
US11888737B1 (en) * | 2022-07-29 | 2024-01-30 | Red Hat, Inc. | Implementing network function logic in a virtual switch |
US12072688B2 (en) | 2022-09-08 | 2024-08-27 | Rockwell Automation Technologies, Inc. | Dynamic routing and edge orchestration for industrial automation data |
US11947342B1 (en) | 2022-09-19 | 2024-04-02 | Rockwell Automation Technologies, Inc. | Container registry and subscription service for industrial systems |
US11846918B1 (en) | 2022-09-22 | 2023-12-19 | Rockwell Automation Technologies, Inc. | Data driven digital twins for industrial automation device operation enhancement |
US12066806B2 (en) * | 2022-09-22 | 2024-08-20 | Rockwell Automation Technologies, Inc. | Chainable and nested edge for industrial automation device analytics |
US12085486B2 (en) | 2022-09-28 | 2024-09-10 | Rockwell Automation Technologies, Inc. | Systems and methods for container-based data collection and analysis in an operational technology network |
CN117834342A (zh) * | 2022-09-29 | 2024-04-05 | 中兴通讯股份有限公司 | 虚拟化隧道网络的ioam封装的实现方法及装置 |
US12088553B2 (en) | 2022-11-14 | 2024-09-10 | Rockwell Automation Technologies, Inc. | Implementing device modifications based on machine learning processes performed within a secure deployment system |
US12081565B2 (en) | 2022-11-14 | 2024-09-03 | Rockwell Automation Technologies, Inc. | Facilitating direct device-to-cloud communications within a secure deployment management system |
US20240179074A1 (en) * | 2022-11-30 | 2024-05-30 | Juniper Networks, Inc. | Self-learning egress traffic controller |
WO2024172817A1 (en) * | 2023-02-17 | 2024-08-22 | Rakuten Symphony, Inc. | Intelligent internet protocol security (ipsec) manager for ipsec simulation |
US12085920B1 (en) | 2023-07-10 | 2024-09-10 | Rockwell Automation Technologies, Inc. | Adaptive container deployment to hierarchical levels associated with an automation control system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060209718A1 (en) * | 2005-03-17 | 2006-09-21 | Microsoft Corporation | Enhanced network system through the combination of network objects |
CN103051510A (zh) * | 2011-09-07 | 2013-04-17 | 微软公司 | 网络策略向网络接口卡的安全和高效卸载 |
US20150052280A1 (en) * | 2013-08-19 | 2015-02-19 | Emulex Design & Manufacturing Corporation | Method and system for communications-stack offload to a hardware controller |
CN105978817A (zh) * | 2015-03-11 | 2016-09-28 | 国际商业机器公司 | 用于传输数据的方法、存储器和网络适配器 |
CN108777852A (zh) * | 2018-05-16 | 2018-11-09 | 国网吉林省电力有限公司信息通信公司 | 一种车联网内容边缘卸载方法、移动资源分配系统 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782199B2 (en) * | 1997-10-14 | 2014-07-15 | A-Tech Llc | Parsing a packet header |
US20030074473A1 (en) * | 2001-10-12 | 2003-04-17 | Duc Pham | Scalable network gateway processor architecture |
TWI220610B (en) * | 2002-05-24 | 2004-08-21 | Realtek Semiconductor Corp | Method and device for setting the autonegotiation mode of a repeater |
US8223654B2 (en) * | 2006-08-22 | 2012-07-17 | Embarq Holdings Company, Llc | Application-specific integrated circuit for monitoring and optimizing interlayer network performance |
US8560634B2 (en) * | 2007-10-17 | 2013-10-15 | Dispersive Networks, Inc. | Apparatus, systems and methods utilizing dispersive networking |
GB0723422D0 (en) * | 2007-11-29 | 2008-01-09 | Level 5 Networks Inc | Virtualised receive side scaling |
US9083651B2 (en) * | 2011-12-07 | 2015-07-14 | Citrix Systems, Inc. | Controlling a network interface using virtual switch proxying |
CN102523605B (zh) * | 2011-12-13 | 2016-01-06 | 华为技术有限公司 | 一种通信方法及设备 |
US10380686B2 (en) * | 2011-12-23 | 2019-08-13 | Chicago Mercantile Exchange Inc. | Method and apparatus for publishing market information |
US8977725B2 (en) * | 2012-05-02 | 2015-03-10 | Futurewei Technologies, Inc. | Method and apparatus for a unified virtual network interface |
GB2517097B (en) * | 2012-05-29 | 2020-05-27 | Intel Corp | Peer-to-peer interrupt signaling between devices coupled via interconnects |
CN105323085A (zh) * | 2014-07-10 | 2016-02-10 | 中兴通讯股份有限公司 | 创建性能测量任务、性能测量结果的处理方法及装置 |
WO2016089355A1 (en) * | 2014-12-01 | 2016-06-09 | Hewlett Packard Enterprise Development Lp | Auto-negotiation over extended backplane |
US10812632B2 (en) * | 2015-02-09 | 2020-10-20 | Avago Technologies International Sales Pte. Limited | Network interface controller with integrated network flow processing |
US9838272B2 (en) * | 2015-04-13 | 2017-12-05 | Ciena Corporation | Service enhancement discovery for connectivity traits and virtual network functions in network services |
US9674090B2 (en) * | 2015-06-26 | 2017-06-06 | Microsoft Technology Licensing, Llc | In-line network accelerator |
EP3395102B1 (en) * | 2015-12-23 | 2020-10-07 | Comptel OY | Network management |
BR112018016625A2 (pt) * | 2016-02-15 | 2018-12-26 | Ericsson Telefon Ab L M | técnicas para expor a profundidade máxima de identificador de segmento de nó e/ou de enlace utilizando is-is |
US20170366605A1 (en) * | 2016-06-16 | 2017-12-21 | Alcatel-Lucent Usa Inc. | Providing data plane services for applications |
US20180109471A1 (en) * | 2016-10-13 | 2018-04-19 | Alcatel-Lucent Usa Inc. | Generalized packet processing offload in a datacenter |
CN107979402B (zh) * | 2016-10-25 | 2020-09-08 | 华为技术有限公司 | 一种信道状态信息测量方法及装置 |
US10440096B2 (en) * | 2016-12-28 | 2019-10-08 | Intel IP Corporation | Application computation offloading for mobile edge computing |
CN108737124B (zh) * | 2017-04-13 | 2022-07-19 | 中兴通讯股份有限公司 | 一种信息通告方法及装置 |
CN108809674B (zh) * | 2017-04-28 | 2020-01-10 | 华为技术有限公司 | 配置链路组的方法和设备 |
EP3665866B1 (en) * | 2017-08-08 | 2022-11-16 | Telefonaktiebolaget LM Ericsson (publ) | Scalable network path tracing |
IL275859B2 (en) * | 2018-01-28 | 2024-05-01 | Drivenets Ltd | Method and device for improving bandwidth utilization in a communication network |
US11188394B2 (en) * | 2018-03-30 | 2021-11-30 | Intel Corporation | Technologies for synchronizing triggered operations |
US11388272B2 (en) * | 2018-03-30 | 2022-07-12 | Intel Corporation | Technologies for network packet processing between cloud and telecommunications networks |
US10831523B2 (en) * | 2018-10-08 | 2020-11-10 | Microsoft Technology Licensing, Llc | RDMA with virtual address space |
-
2019
- 2019-02-28 US US16/289,412 patent/US11150963B2/en active Active
-
2020
- 2020-02-26 CN CN202080014713.7A patent/CN113454971B/zh active Active
- 2020-02-26 EP EP20712808.3A patent/EP3932041B1/en active Active
- 2020-02-26 WO PCT/US2020/019979 patent/WO2020176673A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060209718A1 (en) * | 2005-03-17 | 2006-09-21 | Microsoft Corporation | Enhanced network system through the combination of network objects |
CN103051510A (zh) * | 2011-09-07 | 2013-04-17 | 微软公司 | 网络策略向网络接口卡的安全和高效卸载 |
US20150052280A1 (en) * | 2013-08-19 | 2015-02-19 | Emulex Design & Manufacturing Corporation | Method and system for communications-stack offload to a hardware controller |
CN105978817A (zh) * | 2015-03-11 | 2016-09-28 | 国际商业机器公司 | 用于传输数据的方法、存储器和网络适配器 |
CN108777852A (zh) * | 2018-05-16 | 2018-11-09 | 国网吉林省电力有限公司信息通信公司 | 一种车联网内容边缘卸载方法、移动资源分配系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244619A (zh) * | 2021-12-23 | 2022-03-25 | 北京天融信网络安全技术有限公司 | 一种基于网络安全网格的通信方法、装置及系统 |
CN114244619B (zh) * | 2021-12-23 | 2022-11-15 | 北京天融信网络安全技术有限公司 | 一种通信方法、装置、系统、电子设备及可读存储介质 |
CN114520752A (zh) * | 2022-02-11 | 2022-05-20 | 北京秒如科技有限公司 | 基于智能网卡的vxlan协议控制平面卸载方法及装置 |
CN114826608A (zh) * | 2022-04-02 | 2022-07-29 | 网宿科技股份有限公司 | 一种微服务的证书管理方法、装置及认证系统 |
CN114826608B (zh) * | 2022-04-02 | 2024-08-13 | 网宿科技股份有限公司 | 一种微服务的证书管理方法、装置及认证系统 |
CN115334153A (zh) * | 2022-08-12 | 2022-11-11 | 北京百度网讯科技有限公司 | 服务网格的数据处理方法和装置 |
CN115334153B (zh) * | 2022-08-12 | 2023-10-27 | 北京百度网讯科技有限公司 | 服务网格的数据处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3932041B1 (en) | 2023-10-18 |
US20200278892A1 (en) | 2020-09-03 |
CN113454971B (zh) | 2024-02-23 |
EP3932041A1 (en) | 2022-01-05 |
US11150963B2 (en) | 2021-10-19 |
WO2020176673A1 (en) | 2020-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113454971B (zh) | 基于远程智能nic的服务加速 | |
JP7355830B2 (ja) | マルチクラウド環境におけるオンデマンドフローに基づくポリシー実施のためのシステムおよび方法 | |
CN112740628B (zh) | 用于容器联网的利用快速重新路由的分段路由 | |
US11076019B2 (en) | Scheduling services on a platform including configurable resources | |
US10999163B2 (en) | Multi-cloud virtual computing environment provisioning using a high-level topology description | |
CN112470436A (zh) | 使用srv6和bgp的多云连通性 | |
US20230079209A1 (en) | Containerized routing protocol process for virtual private networks | |
EP3334103B1 (en) | Adaptive load balancing for application chains | |
KR20210088673A (ko) | 가상 네트워크 기능의 투명 마이그레이션 | |
CN115136561A (zh) | 多架构云网络中用于共享服务的vrf隔离 | |
Katsikas et al. | Metron: High-performance NFV service chaining even in the presence of blackboxes | |
Sharma et al. | Effect of load balancer on software-defined networking (SDN) based cloud | |
WO2024010699A1 (en) | Systems and methods for redirecting service and api calls for containerized applications | |
Sakellaropoulou | A qualitative study of SDN controllers | |
Zhang et al. | Efficient and verifiable service function chaining in NFV: Current solutions and emerging challenges | |
US12009998B1 (en) | Core network support for application requested network service level objectives | |
US11477274B2 (en) | Capability-aware service request distribution to load balancers | |
WO2024049765A1 (en) | Data sovereignty and service insertion in multisite network fabric | |
Magwenzi | Building a Flexible and Inexpensive Multi-layer Switch for Software-Defined Networks | |
CN118118207A (zh) | 智能防火墙流创建器 | |
CN118118362A (zh) | 自修正服务等级协议实施器 | |
Arezoumand | End to End Orchestration of Distributed Cloud Applications | |
CN118118208A (zh) | 智能防火墙流处理器 | |
CN118118205A (zh) | 自学习防火墙策略执行方 | |
CN118118349A (zh) | 自学习出口业务控制器 |
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 |