CN105391648A - 使网络流对准处理资源的技术 - Google Patents
使网络流对准处理资源的技术 Download PDFInfo
- Publication number
- CN105391648A CN105391648A CN201510440535.5A CN201510440535A CN105391648A CN 105391648 A CN105391648 A CN 105391648A CN 201510440535 A CN201510440535 A CN 201510440535A CN 105391648 A CN105391648 A CN 105391648A
- Authority
- CN
- China
- Prior art keywords
- network
- processing node
- information
- computing equipment
- target processing
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/33—Flow control; Congestion control using forward notification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/321—Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/044—Network management architectures or arrangements comprising hierarchical management structures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/35—Flow control; Congestion control by embedding flow control information in regular packets, e.g. piggybacking
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
用于使网络流对准处理资源的技术包括计算设备,其具有多个处理节点、网络交换机和在软件定义网络中操作的网络控制器。计算设备的每个处理节点可包括处理器、存储器和网络适配器。网络交换机可接收网络包并且请求来自网络控制器的转发信息。网络控制器可确定对应于网络包的流信息,其指示网络包所针对的应用和执行该应用的处理节点。流信息可传输到计算设备,其可对执行应用的处理节点的网络适配器中的流过滤器编程。网络控制器还可将转发信息传输到网络交换机,其可基于转发信息将接收的网络包转发到执行应用的处理节点网络适配器。
Description
背景技术
现代的计算设备已经变成个人、商业和社会使用的普遍工具。如此,许多现代计算设备能够连接到各种数据网络(其包括互网络化和企业内网络化)以通过这样的网络检索并且接收数据通信。连接到一个网络的计算设备经常需要与在不同网络上连接的计算设备通信。
软件定义网络化(SDN)是这样的网络化架构,其中关于要如何处理网络业务的决策和实际处理网络业务的设备或部件解耦成独立平面(即,控制平面和数据平面)。在SDN环境中,集中式SDN控制器用于对网络业务而不是网络设备(例如网络交换机)做出转发决策。典型地,转发决策传送到在SDN环境中操作的网络设备,其进而基于由SDN控制器做出的转发决策将与网络业务关联的网络包转发到下一个目的地。然而,SDN控制器通常缺乏对网络业务做出细粒度转发决策的能力。具体地,典型的SDN控制器关于系统级而不是设备架构级做出转发决策。即,典型的SDN控制器不能基于最佳地接收和处理特定类型的网络业务的目的计算设备的个体部件和/或部件组做出转发决策。
附图说明
本文描述的概念通过示例而非限制的方式在附图中图示。为了图示的简单和清楚起见,在图中图示的元件不一定按比例绘制。在认为适当的地方,标号在图之中重复来指示对应或类似元件。
图1是对于用于使网络流对准计算设备的处理资源的系统的至少一个实施例的简化框图;
图2是图1的系统的计算设备的环境的至少一个实施例的简化框图;
图3是图1的系统的网络控制器的环境的至少一个实施例的简化框图;
图4是图1的系统的网络交换机的环境的至少一个实施例的简化框图;
图5是用于使网络流对准可由图1和3的网络控制器执行的处理资源的方法的至少一个实施例的简化流程图;
图6是用于使网络流对准可由图1和2的计算设备执行的处理资源的方法的至少一个实施例的简化流程图;
图7是用于使网络流对准可由图1和4的网络交换机执行的处理资源的方法的至少一个实施例的简化流程图;
图8是用于使网络流对准可由图1和4的网络交换机执行的处理资源的方法的至少一个其他实施例的简化流程图。
具体实施方式
尽管本公开的概念易受各种修改和备选形式影响,其特定示范性实施例已通过图中的示例示出并且将在本文详细描述。然而应该理解没有将本公开的概念限制于公开的特别形式的意图,而相反,意图是要涵盖所有与本公开和附上的权利要求一致的所有修改、等同物和备选项。
在说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示描述的实施例可包括特定特征、结构或特性,但每个实施例可包括或可不一定包括该特定特征、结构或特性。此外,这样的短语不一定指相同的实施例。此外,当特定特征、结构或特性连同实施例描述时,认为连同其他无论是否明确描述的实施例实现这样的特征、结构或特性,这在本领域内技术人员的知识内。另外,应意识到采用“A、B和C中的至少一个”形式包括在列表中的项可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。相似地,采用“A、B或C中的至少一个”形式列出的项可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。
公开的实施例在一些情况下可采用硬件、固件、软件或其任何组合来实现。公开的实施例还可实现为由一个或多个暂时性或非暂时性机器可读(例如,计算机可读)存储介质携带或存储在其上的指令,这些指令可由一个或多个处理器读取并且执行。机器可读存储介质可体现为用于采用机器可读的形式存储或传输信息的任何存储设备、机构或其他物理结构(例如,易失性或非易失性存储器、媒体盘或其他媒体设备)。
在图中,一些结构或方法特征可采用特定设置和/或排序示出。然而,应意识到可不需要这样的特定设置和/或排序。相反,在一些实施例中,这样的特征可采用与在说明性图中示出的不同的方式和/或顺序设置。另外,在特定图中包括结构或方法特征并不意在暗指在所有实施例中需要这样的特征,并且在一些实施例中,可不包括这样的特征或其可与其他特征组合。
现在参考图1,在说明性实施例中,用于使网络流对准处理资源的系统100包括计算设备110、网络控制器170、远程计算设备180和网络交换机190,其中的每个可能够在软件定义网络化(SDN)环境中操作。在使用中,网络交换机190可从远程计算设备180接收网络包。在一些实施例中,网络包可针对或用别的方式定向到由计算设备110的处理节点112(例如,处理节点114或处理节点116)中的一个的处理器(例如,处理器120或处理器140)执行的应用。在这样的实施例中,网络交换机190请求从网络控制器170转发对于接收网络包的信息,其包括与计算设备110和/或SDN环境关联的架构信息(例如,拓扑数据、配置数据、布局数据和/或描述计算设备110和/或网络的硬件或软件部件的任何其他类型的数据)。在一些实施例中,网络控制器170还包括指示在计算设备110的哪个处理节点112内执行什么应用的信息。使用架构信息,网络控制器170确定和/或生成对应于接收网络包的网络流信息。该网络流信息可识别或用别的方式指示执行接收网络包所针对的应用的特定处理节点112(例如,处理节点114或处理节点116)。在一些实施例中,网络流信息还可识别或用别的方式指示接收网络包应转发到的特定处理节点112的网络适配器(例如,NIC 136或NIC 156)。
在确定网络流信息后,网络控制器170将网络流信息传输到计算设备110,其对识别的网络适配器(例如,NIC 136或NIC 156)中的流过滤器编程或用别的方式配置它。在一些实施例中,流过滤器可配置成将与网络流(例如,接收的网络包和任何后续网络包)关联的网络包复制到分配给识别的网络适配器(例如,NIC 136或NIC 156)的特定网络存储器队列(例如,Q0 132、Q1 134、Q2 152、Q3 154)。在一些实施例中,网络存储器队列(例如,Q0 132、Q1 134、Q2 152、Q3 154)可配置成作为双向或单向存储器队列操作。
在流过滤器已经由计算设备110编程后,网络控制器170基于流信息确定对于接收网络包的转发信息。该转发信息可识别或用别的方式指示接收网络包应转发到的特定处理节点112的网络适配器(例如,NIC 136或NIC 156)。在一些实施例中,转发信息可包括指示通信耦合于识别的网络适配器(例如,NIC
136或NIC 156)的网络交换机190的特定接口或端口(例如,PA 192、PB 194、PC 196)的信息。网络控制器170可将转发信息传输到网络交换机190,其可利用转发信息来将接收的网络包转发到通信耦合于识别的网络适配器(例如,NIC 136或NIC 156)的网络交换机190的特定端口(例如,PA 192、PB 194、PC 196)。应意识到通过维持与计算设备110和/或SDN环境关联的架构信息,网络控制器170可使网络流对准执行特定应用的特定处理节点112。那样,与特定网络流关联的网络包的处理以及该流所针对的应用的执行可在相同处理节点112内出现,这是存储器资源和可用网络带宽的更高效使用、降低网络和/或处理延迟、使计算设备110能够消耗更少的功率并且使更少的处理资源能够用于处理网络包。例如,处理与在执行目标应用的处理节点相同的处理节点112内的网络流的网络包比处理一个处理节点112(例如,处理节点112)中的网络流的网络包更高效并且将那些包传输(例如,转发、发送,等)到不同处理节点112(例如,处理节点114),在该处理节点112内经由一个或多个通信链路(例如,QuickPath互连(QPI)118、点到点链路、总线链路、线、电缆、光导、印刷电路板迹线,等)执行目标应用。采用这样的方式在处理节点112之间传输网络包可潜在地影响计算设备110的延迟、抖动和吞吐量。这在其中存在需要大量新的和/或现有网络流或网络包(其需要在与其中执行目标应用的那个不同的处理节点112中处理)的情况下可尤其真实。
计算设备110可体现为或用别的方式包括能够执行本文描述的功能的任何类型的计算设备,其包括但不限于服务器计算机、台式计算机、膝上型计算设备、消费者电子设备、移动计算设备、移动电话、智能电话、平板计算设备、个人数字助理、可佩戴计算设备、智能电视、智能家电和/或其他类型的计算设备。在一些实施例中,计算设备110能够在软件定义网络化(SDN)环境中操作。如在下文更详细论述的,说明性计算设备110包括多个处理节点112,其中的每个包括处理器、存储器和网络适配器。如在图1中示出的,说明性计算设备110还包括输入/输出(I/O)子系统162和数据存储164。当然,在其他实施例中,计算设备110可包括其他或额外部件,例如通常在计算机(例如,各种输入/输出设备)中发现的那些。
在一些实施例中,计算设备110的每个处理节点112可体现为非均匀存储器访问(NUMA)节点。在说明性实施例中,计算设备110包括处理节点114和处理节点116。说明性处理节点114包括处理器120、存储器126和网络接口卡(NIC)136。在一些实施例中,处理节点114内的处理器120、存储器126和NIC 136可经由一个或多个通信链路(例如,点到点链路、总线链路、线、电缆、光导、印刷电路板迹线,等)而通信耦合于彼此。另外,在一些实施例中,处理节点114的说明性部件中的一个或多个可包含在另一个部件中或用别的方式形成其一部分。例如,在一些实施例中,存储器126或其部分可包含在处理器120中。
处理节点114的处理器120可体现为能够执行本文描述的功能的任何类型的处理器。例如,在一些实施例中,处理器120可体现为单核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。在其他实施例(例如在图1中说明性地示出的)中,处理器120可体现为多核处理器,其具有多个处理器核(例如,核A 122和核B 124)。在这样的实施例中,处理器120的每个处理器核122、124能够执行一个或多个应用。
处理节点114的存储器126可体现为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储。在操作中,存储器126可存储在计算设备110的操作期间使用的各种数据和软件,例如操作系统、应用、程序、库和驱动器。例如,在一些实施例中,可分配或用别的方式预留存储器126的一部分(例如,应用存储器空间128)以供由处理器核A 122和/或处理器核B 124执行的应用使用。另外,在一些实施例中,可分配或用别的方式预留存储器126的另一个部分(例如,NIC存储器空间130)以用于存储要由NIC 136发送的数据和/或由NIC 136接收的数据的存储。在这样的实施例中,NIC存储器空间130可包括一个或多个存储器队列(例如,Q0 132和Q1 134),用于存储要经由NIC 136的端口P1 137(例如,接口)发送或接收的数据(例如,网络包,等)。在说明性实施例中,存储器126经由一个或多个通信链路(即,点到点链路、总线链路、线、电缆、光导、印刷电路板迹线,等)通信耦合于处理器120。
计算节点110的处理节点114的NIC 136可体现为能够经由一个或多个通信网络(例如,局域网、个人区域网、广域网、蜂窝网络、例如互联网等全局网络,等)在计算设备110和/或计算设备110的处理节点114与其他计算设备之间实现通信的任何类型的通信电路、设备或其集合。例如,在一些实施例中,处理节点114的NIC 136可能够在计算设备110的处理节点114与远程计算设备180之间实现通信。NIC 136可配置成使用任意一个或多个通信技术(例如,无线或有线通信)和关联协议(例如,以太网、Wi-Fi®、WiMAX,等)来实施这样的通信。在说明性实施例中,NIC 136包括或用别的方式通信耦合于端口(例如,P1 137)或通信接口。端口(例如,P1 137)可配置成使处理节点114通信耦合于任何数量的其他计算设备(例如,远程计算设备180)和/或网络(例如,物理或逻辑网络)。例如,说明性端口137使处理节点114的NIC 136通信耦合于网络交换机190,其可通信耦合于远程计算设备180、网络控制器170和/或任何数量的其他计算设备或网络。
在说明性实施例中,NIC 136经由一个或多个通信链路(即,点到点链路、总线链路、线、电缆、光导、印刷电路板迹线,等)通信耦合于处理器120。例如,在一些实施例中,NIC 136体现为外围部件互连高速(PCIe)设备,其经由处理节点114的PCIe I/O总线而通信耦合于处理器120。当然,应意识到NIC 136可体现为通信耦合于处理节点114的处理器120的任何其他类型的通信设备。
在一些实施例中,NIC 136还可包括一个或多个流过滤器138。如在下文更详细论述的,一个或多个流过滤器138可在NIC 136中由计算设备110至少部分基于从网络控制器170接收的流信息或用别的方式作为该流信息的函数而编程。在一些实施例中,流过滤器138在NIC存储器空间130中规定被指派或用别的方式分配以用于存储由NIC 136接收的网络包和/或要由NIC 136传输的网络包的特定存储器队列(例如,Q0 132、Q1 134,等)。另外,在一些实施例中,流过滤器138在NIC存储器空间130中规定分配以用于存储由NIC 136的特定端口(例如,P1 137)接收的网络包和/或要由NIC 136的特定端口(例如,P1 137)传输的网络包的特定存储器队列(例如,Q0 132、Q1 134,等)。另外或备选地,在一些实施例中,NIC 136(或NIC 136或驱动器)可在NIC存储器空间130中对NIC 136内包括的每个端口(例如,P1 137)预先分配或预先指派存储器队列(例如,Q0 132、Q1 134,等)。即,在计算设备110在NIC 136中对流过滤器138编程之前可在NIC存储器空间130中对NIC 136的每个端口(例如,P1 137)分配或用别的方式指派特定存储器队列(例如,Q0 132、Q1 134,等)。例如,在一些实施例中,NIC 136和/或关联的驱动器可在计算设备110的初始化期间在处理节点114的NIC存储器空间130中预先分配一个或多个存储器队列(例如,Q0 132、Q1 134,等)。那样,在与NIC 136相同的处理节点114内为NIC 136内包括的每个端口(例如,P1 137)分配存储器队列(例如,Q0 132、Q1 134,等)。应意识到,在一些实施例中,网络存储器队列(例如,Q0 132、Q1 134、Q2 152、Q3 154)可配置成作为双向存储器队列(即,传输和接收)或单向存储器队列(即,传输或接收)操作。
说明性处理节点116包括处理器140、存储器146和NIC 156。处理节点116的处理器140可包括多个处理器核(例如,核A 142和核B 114)。处理节点116的存储器146包括分配以供由处理器核A 142和/或处理器核B 144执行的应用使用的存储器的一部分(例如,应用存储器空间148)、分配以用于存储要由NIC 156发送和/或由NIC 156接收的数据(例如,网络包等)的存储器的一部分(例如,NIC存储器空间150)和要经由NIC 156的端口157(例如,接口)发送或接收的一个或多个存储器队列(例如,Q2 152和Q3 154)。说明性NIC 156包括或用别的方式通信耦合于端口(例如,P2 157)。另外,在一些实施例中,NIC 156包括一个或多个流过滤器158。处理节点116的那些部件可与处理节点114的对应部件相似,其的描述能适用于处理节点116的对应部件并且为了描述的清楚起见而不在本文重复。
在一些实施例中,NIC 136和NIC 156可结合、集群或用别的方式聚合(如由逻辑连接160说明性示出的)以便增加吞吐量、实现负载平衡和/或提供容错。在这样的实施例中,NIC 136和NIC 156可形成逻辑网络接口,可对其指派单个互联网协议(IP)地址用于从其他计算设备(例如,远程计算设备180)接收网络包。当然,应意识到尽管由使NIC 136和NIC 156结合而形成的逻辑网络接口可被指派单个IP地址,NIC 136和NIC 156中的每个可具有独立媒体访问控制(MAC)地址。另外,在一些实施例中,计算设备110可包括一个或多个管理端口(未示出),其可使计算设备110通信耦合于网络控制器170。在这样的实施例中,计算设备110的管理端口可用于将信息或消息(例如,架构信息、转发信息等)发送到网络控制器170并且从网络控制器170接收信息或消息,如在下文更详细论述的。
处理器120和处理器140中的每个可通信耦合于I/O子系统162,其可体现为促进计算设备110的其他部件的输入/输出操作的电路和/或部件。例如,I/O子系统162可体现为或用别的方式包括存储器控制器集线器、输入/输出控制集线器、固件设备、通信链路(即,点到点链路、总线链路、线、电缆、光导、印刷电路板迹线,等)和/或用于促进输入/输出操作的其他部件和子系统。在一些实施例中,I/O子系统162可形成片上系统(SoC)的一部分并且连同处理节点112的部件(例如,处理器、存储器和网络适配器)和计算设备110的其他部件一起包含在单个集成电路芯片上。例如,在一些实施例中,I/O子系统162、处理器120、存储器126和NIC 136可包含在单个集成电路芯片上。
数据存储设备164可体现为为了数据的短期或长期存储而配置的任何类型的设备或多个设备,例如存储器设备和电路、存储卡、硬盘驱动、固态驱动或其他数据存储设备。例如,数据存储164可配置成存储要由计算设备110初始化和/或执行的一个或多个操作系统。在一些实施例中,操作系统的部分可为了更快速处理和/或任何其他原因而在操作期间复制到存储器126和/或存储器146。
网络控制器170可体现为或用别的方式包括能够执行本文描述的功能的任何类型的计算设备,其包括但不限于服务器计算机、台式计算机、膝上型计算设备、消费者电子设备、移动计算设备、移动电话、智能电话、平板计算设备、个人数字助理、可佩戴计算设备、智能电视、智能家电和/或其他类型的计算或网络化设备。如此,网络控制器170可包括通常在网络控制器或例如处理器、存储器设备、通信电路和数据存储等相似计算设备中发现的设备和结构,其为了描述的清楚起见而未在图1中示出。在说明性实施例中,网络控制器170能够在软件定义网络化(SDN)环境中操作。如此,网络控制器170可从计算设备110、网络交换机190和/或能够在SDN环境中操作的其他计算设备接收数据和/或信息请求。例如,网络控制器170可从计算设备110接收架构信息,其定义或用别的方式指示计算设备110的每个处理节点112的架构。网络控制器170还可从网络交换机190接收连接信息,其定义或用别的方式指示网络交换机190的一个或多个端口(例如,PA 192、PB 194、PC 196)与计算设备110、网络控制器170、远程计算设备180和/或任何其他计算设备或通信网络之间的一个或多个网络连接(例如,通信链路)。
在一些实施例中,网络控制器170配置成从网络交换机190接收对于转发信息的一个或多个请求。每个转发信息请求可与由网络交换机190接收的网络包关联。响应于接收对于转发信息的请求,网络控制器170可至少部分基于从计算设备110接收的架构信息和从网络交换机190接收的连接信息或用别的方式作为其的函数而确定与由网络交换机190接收的网络包关联的网络流信息和转发信息。在操作中,网络控制器170可向计算设备110发送确定的网络流信息使得可对网络适配器(例如,NIC 136或NIC 156)中的一个中的流过滤器编程。另外,网络控制器170可向网络交换机190发送转发信息,该网络交换机190可使用该转发信息来将接收的网络包转发到对流过滤器编程所在的计算设备110的网络适配器(例如,NIC 136或NIC 156)。那样,网络控制器170可基于计算设备110的架构信息使网络流对准计算设备110的特定处理部件。
在一些实施例中,网络控制器170可将从计算设备110接收的架构信息维持或用别的方式存储在计算设备架构数据库172中。另外,网络控制器170可将从网络交换机190接收的连接信息维持或用别的方式存储在网络交换机连接数据库174中。在其他实施例中,架构信息和连接信息可存储或维持在相同数据库而不是独立数据库中。当然,应意识到尽管架构信息和连接信息在说明性实施例中描述为存储在一个或多个数据库中,架构信息和/或连接信息在其他实施例中可存储在具有不同格式的数据结构(例如,文档、文件等)中。例如,架构信息和/或连接信息可体现为逗号分隔值(CSV)文件、文本文件、加密数据文件、可扩展标记语言(XML)文档(具有一个或多个XML元素)或适合存储架构信息和/或连接信息的任何其他格式。
远程计算设备180可体现为或用别的方式包括能够执行本文描述的功能的任何类型的计算设备,其包括但不限于台式计算机、膝上型计算设备、服务器计算机、消费者电子设备、移动计算设备、移动电话、智能电话、平板计算设备、个人数字助理、可佩戴计算设备、智能电视、智能家电和/或其他类型的计算设备。如此,远程计算设备180可包括通常在例如处理器、存储器设备、通信电路和数据存储等计算设备中发现的设备和结构,其为了描述的清楚起见而未在图1中示出。在一些实施例中,远程计算设备180可配置成经由网络交换机190将网络包传输到计算设备110和/或从计算设备110接收网络包。在这样的实施例中,远程计算设备180可直接连接到网络交换机190的端口(例如,PB 194)。当然,应意识到在其他实施例中,远程计算设备180可未直接连接到网络交换机190。例如,在一些实施例中,远程计算设备180可连接到通信耦合于网络交换机190的远程网络(或一系列远程网络)。
网络交换机190可体现为或用别的方式包括能够执行本文描述的功能的任何类型的网络化或计算设备,其包括但不限于网络交换机、网络路由器、网络集线器、无线接入点、台式计算机、膝上型计算设备、服务器计算机、消费者电子设备、移动计算设备、移动电话、智能电话、平板计算设备、个人数字助理、可佩戴计算设备、智能电视、智能家电和/或其他类型的计算设备。如此,网络交换机190可包括通常在网络交换机或例如处理器、存储器设备、通信电路和数据存储等计算设备中发现的设备和结构,其为了描述的清楚起见而未在图1中示出。在说明性实施例中,网络交换机190能够在软件定义网络化(SDN)环境中操作,其除其他设备外还可包括计算设备110和网络控制器170。说明性网络交换机190包括一个或多个端口或接口,其可经由一个或多个通信链路(例如,点到点链路、总线链路、线、电缆、光导等)通信耦合于计算设备110的一个或多个端口或接口、网络控制器170、远程计算设备180和/或任何其他计算设备和/或通信网络。例如,说明性网络交换机190包括第一端口(例如,PA 192),其可通信耦合于计算设备110的NIC 136的端口(例如,P1 137)。说明性网络交换机190还包括第二端口(例如,PB 194),其可通信耦合于远程计算设备180的端口。另外,网络交换机190还可包括第三端口(例如,PC 196),其可通信耦合于计算设备110的NIC 156的端口(例如,P2 157)。当然,在其他实施例中,网络交换机190可包括额外或比PA 192、PB 194和PC 196更少的端口。在一些实施例中,网络交换机190还可包括管理端口(未示出),其可使网络交换机190和网络控制器170通信耦合。
在一些实施例中,网络交换机190从远程计算设备180接收一个或多个网络包,该远程计算设备180可经由网络交换机190的端口(例如,PB 194)通信耦合于网络交换机190。应意识到在一些实施例中,网络交换机190还可从计算设备110的网络适配器(例如,NIC 136或NIC 156)接收一个或多个网络包。另外,在一些实施例中,网络交换机190配置成将连接信息传输到网络控制器170,该连接信息定义或用别的方式指示网络交换机190的一个或多个端口(例如,PA 192、PB 194、PC 196)与计算设备110、网络控制器170、远程计算设备180和/或任何其他计算设备或通信网络之间的一个或多个网络连接(例如,通信链路)。在一些实施例中,传输到网络控制器170的连接信息可基于由网络交换机190维持的本地连接信息。网络交换机190的这样的本地连接信息可包括与通信耦合于网络交换机190的每个计算设备(例如,计算设备110、网络控制器170、远程计算设备180和/或任何其他计算设备)关联的媒体访问控制(MAC)地址。另外,网络交换机190的本地连接信息可包括识别每个计算设备通信耦合的网络交换机190的端口(例如,PA 192、PB 194、PC 196)的数据。在一些实施例中,本地连接信息可用于将计算设备的MAC地址映射到计算设备连接或用别的方式通信耦合的网络交换机190的特定端口(例如,PA 192、PB 194、PC 196)。
另外,在一些实施例中,网络交换机190还配置成请求来自网络控制器170的转发信息。在一些实施例中,转发信息可与从远程计算设备180、计算设备110和/或任何其他计算设备或通信网络接收的网络包关联。在这样的实施例中,网络交换机190可配置成基于从网络控制器170接收的转发信息来转发接收的网络包。为了这样做,网络交换机190可维持一个或多个流表,其包括一个或多个流条目。在一些实施例中,流表的每个流条目可由网络交换机190使用来识别一个或多个网络流、与每个网络流关联的网络包和每个网络流的网络包应转发到的目的计算设备。在这样的实施例中,流表的流条目可由网络交换机190使用来确定接收的网络包(以及随后接收的网络包)应转发到的网络交换机190的特定端口(例如,PA 192、PB 194、PC 196)。另外,在其中网络交换机190维持转发表的实施例中,网络交换机190可配置成基于从网络控制器170接收的转发信息向转发表添加流条目。
现在参考图2,在使用中,计算设备110在操作期间建立环境200。说明性环境200包括架构通知模块202、本地流管理模块204和一个或多个流过滤器138、158。环境200的模块、逻辑和其他部件中的每个可体现为硬件、软件、固件或其组合。例如,环境200的模块、逻辑和其他部件中的每个可形成计算设备110的处理器120、140或其他硬件部件的一部分,或用别的方式由其建立。应意识到计算设备110可包括通常在计算设备中发现的其他部件、子部件、模块和设备,其为了描述的清楚起见而未在图2中图示。
架构通知模块202可配置成将架构信息传输到网络控制器170。该架构信息定义计算设备110的每个处理节点112的架构。在一些实施例中,由架构通知模块202传输的架构信息包括指示由计算设备110的处理节点112(例如,处理节点114和处理节点116)中的每个执行的应用的应用数据、指示处理节点112中的每个的处理器(例如,处理器120和处理器140)的处理器核(例如,核A 122、核B 124、核A 142、核
B 144)的处理器核数据、指示处理节点112中的每个中的分配存储器队列(例如,Q0 132、Q1 134、Q2 152、Q3 154)的存储器队列数据和/或指示处理节点112中的每个的网络适配器(例如,NIC 136和NIC 156)的端口(例如,P1 137和P2 157)的端口数据。另外或备选地,由架构通知模块202传输的架构信息可包括指示由计算设备110的每个处理节点112(例如,处理节点114和处理节点116)的每个处理器(例如,处理器120和处理器140)的每个处理器核(例如,核A 122、核B 124、核A 142、核
B 144)执行的应用的数据。
在一些实施例中,架构通知模块202可配置成在计算设备110或其部件初始化时将架构信息传输到网络控制器170。例如,架构通知模块202可配置成响应于由计算设备10完成启动过程和/或响应于由计算设备110的处理节点112或处理器的处理器核初始化或执行特定应用而将架构信息传输到网络控制器170。在另一个实施例中,架构通知模块202可配置成基于可配置的参考架构通知间隔和/或基于从网络控制器170接收的请求架构通知模块202传输架构信息的一个或多个指令或命令将架构信息传输到网络控制器170。在一些实施例中,架构通知模块202可配置成将架构信息作为一个或多个表述性状态转移(REST)消息传输到网络控制器170。当然,应意识到任何其他适合的消息传递协议和/或格式(例如,基于XML的协议和/或格式(例如简单对象访问协议(SOAP))、基于开放标准的协议和/或格式(例如JavaScript对象表示(JSON),等))可由架构通知模块202使用来将架构信息传输到网络控制器170。
本地流管理模块204可配置成从网络控制器170接收网络流信息。从网络控制器170接收的该网络流信息可与由远程计算设备180传输并且由网络交换机190接收的网络包关联。网络流信息可识别计算设备110的目标处理节点112(例如,处理节点114)以基于由目标处理节点112(例如,处理节点114)执行的应用来处理网络包。在一些实施例中,网络流信息还可识别目标处理节点112(例如,处理节点114)以基于由目标处理节点112(例如,处理节点114)的特定处理器核(例如,核A 122或核B 124)执行的应用来处理网络包。应意识到在一些实施例中,本地流管理模块204可体现为计算设备110的导流器模块和/或计算设备110的网络适配器(例如,NIC 136或NIC 156)。
在一些实施例中,本地流管理模块204还可配置成基于从网络控制器170接收的网络流信息来对目标处理节点(例如,处理节点114)的网络适配器(例如,NIC 136)中的一个或多个流过滤器138编程。该一个或多个流过滤器(例如,流过滤器138)可规定目标处理节点112(例如,处理节点114)的存储器(例如,存储器126)中的存储器队列(例如,Q0 132或Q1 134)从网络交换机190接收网络包(和后续相关网络包)。在一些实施例中,由本地流管理模块204编程的一个或多个流过滤器(例如,流过滤器138)可由目标处理节点112的网络适配器(例如,NIC 136)使用以将从网络交换机190接收的网络包复制到目标处理节点112(例如,处理节点114)的存储器(例如,存储器126)中的规定存储器队列(例如,Q0 132或Q1 134)。
现在参考图3,网络控制器170在操作期间建立环境300。说明性环境300包括架构管理模块302、计算设备架构数据库172、网络交换机连接数据库174和流管理模块304。在一些实施例中,流管理模块304可包括流确定模块306和转发确定模块308。环境300的模块、逻辑和其他部件中的每个可体现为硬件、软件、固件或其组合。例如,环境300的模块、逻辑和其他部件中的每个可形成网络控制器170的处理器或其他硬件部件的一部分,或用别的方式由其建立。应意识到网络控制器170可包括通常在计算设备中发现的其他部件、子部件、模块和设备,其为了描述的清楚起见而未在图3中图示。
架构管理模块302可配置成从计算设备110接收架构信息。如上文论述的,架构信息定义计算设备110的每个处理节点112的架构。例如,在一些实施例中,由架构管理模块302接收的架构信息可包括应用数据、处理器数据、处理器核数据、存储器队列数据、处理器核应用执行数据和/或端口数据。在说明性实施例中,架构管理模块302配置成将从计算设备110接收的架构信息存储或用别的方式维持在计算设备架构数据库172或用于存储架构信息的任何其他适合的数据结构中。
在一些实施例中,架构管理模块302可配置成响应于计算设备110或其部件的初始化而从计算设备110接收架构信息。例如,架构管理模块302可配置成响应于由计算设备110完成启动过程和/或响应于由计算设备110的处理节点112或处理器的处理器核初始化或执行特定应用而从计算设备110接收架构信息。在另一个示例中,架构管理模块302可配置成基于可配置的参考架构通知间隔和/或基于传输到计算设备110的请求计算设备110传输架构信息的一个或多个指令或命令而从计算设备110接收架构信息。在一些实施例中,架构管理模块302可配置成从计算设备110接收作为一个或多个简单对象访问协议(SOAP)消息的架构信息。当然,应意识到任何其他适合的消息传递和/或通知协议可由架构管理模块302使用以从计算设备110接收架构信息。
架构管理模块302还可配置成从网络交换机190接收连接信息。该连接信息定义或用别的方式指示网络交换机190的一个或多个端口(例如,PA 192、PB 194、PC 196)与计算设备110、网络控制器170、远程计算设备180和/或任何其他计算设备或通信网络之间的一个或多个网络连接(例如,通信链路)。在一些实施例中,架构管理模块302可配置成从网络交换机190接收作为一个或多个OpenFlow消息的连接信息。另外或备选地,架构管理模块302可配置成从网络交换机190接收作为一个或多个表述性状态转移(REST)消息的连接信息。当然,应意识到任何其他适合的消息传递协议和/或格式(例如,基于XML的协议和/或格式(例如简单对象访问协议(SOAP))、基于开放标准的协议和/或格式(例如JavaScript对象表示(JSON),等))可由架构管理模块302使用以从网络交换机190接收连接信息。
在一些实施例中,架构管理模块302可配置成当在网络交换机190与计算设备110、网络控制器170、远程计算设备180和/或任何其他计算设备或通信网络之间建立或终止网络连接(例如,通信链路)时从网络交换机190接收连接信息。例如,架构管理模块302可配置成响应于网络交换机190检测到网络交换机190的端口(例如,PA 192、PB 194、PC 196)中的一个或多个的链路状态(例如,“连接”、“未连接”、“有效”、“无效”、“上”、“下”等)中的改变而接收连接信息。在一些实施例中,架构管理模块302可配置成响应于网络交换机190检测到与新近连接到网络交换机190的端口(例如,PA 192、PB 194、PC 196)的计算设备(例如,计算设备110、网络控制器170、远程计算设备180和/或任何其他计算设备)关联的新的MAC地址而从网络交换机190接收连接信息。另外或备选地,在一些实施例中,架构管理模块302可配置成基于可配置的参考连接通知间隔和/或基于发送到计算设备110的请求计算设备110传输连接信息的一个或多个指令或命令而从网络交换机190接收连接信息。在说明性实施例中,架构管理模块302配置成将从网络交换机190接收的连接信息存储或用别的方式维持在网络交换机连接数据库174或用于存储连接信息的任何其他适合的数据结构中。
流管理模块304可配置成确定与由网络交换机190接收的网络包关联的网络流信息。为了这样做,在一些实施例中,流管理模块304包括流确定模块306。在这样的实施例中,流确定模块306基于从计算设备110接收的架构信息来确定与由网络交换机190接收的网络包关联的网络流信息。如论述的,从计算设备110接收的架构信息可存在计算设备架构数据库172中。在一些实施例中,由流确定模块306确定的网络流信息识别或用别的方式指示计算设备110的目标处理节点112(例如,处理节点114)以至少部分基于由目标处理节点112(例如,处理节点114)执行的应用或用别的方式作为该应用的函数来处理网络包。在这样的实施例中,流确定模块306可确定或用别的方式识别由网络交换机190接收的网络包所针对的特定应用。流确定模块306可将识别的应用与存储在计算设备架构数据库172中的架构信息比较来确定执行识别应用的计算设备110的目标处理节点112(例如,处理节点114)。在一些实施例中,流确定模块306可将识别的应用与存储在计算设备架构数据库172中的架构信息比较来确定执行识别应用的特定处理器核(例如,核A 122、核B 124、核A 142或核
B 144)。另外或备选地,流确定模块306可基于存储在计算设备架构数据库172中的架构信息来确定或用别的方式识别与执行识别应用的目标处理节点112(例如,处理节点114)关联的特定网络适配器(例如,NIC 136)和存储器组(例如,存储器126)。在确定与网络包关联的网络流信息后,流确定模块306可配置成将确定的网络流信息传输到计算设备110。
流管理模块304还可配置成确定与由网络交换机190接收的网络包关联的转发信息。为了这样做,在一些实施例中,流管理模块304包括转发确定模块308。在这样的实施例中,转发确定模块308基于从计算设备110接收的架构信息和从网络交换机190接收的连接信息来确定对于网络包的转发信息。如论述的,从计算设备110接收的架构信息可存储在计算设备架构数据库172中并且从网络交换机190接收的连接信息可存储在网络交换机连接数据库174中。在一些实施例中,由转发确定模块308确定的转发信息识别或用别的方式指示接收的网络包应转发到的网络交换机190的特定端口(例如,PA 192、PB 194或PC 196)。在这样的实施例中,转发确定模块308可配置成利用架构信息和连接信息来确定执行网络包所针对的应用的目标处理节点112(例如,处理节点114)的网络适配器(例如,NIC 136)通信耦合于网络交换机190的特定端口(例如,PA 192)。在确定与网络包关联的转发信息后,转发确定模块308可配置成将确定的转发信息传输到网络交换机190。
另外或备选地,流管理模块304可配置成将指示特定处理节点112(例如,处理节点114或处理节点116)和/或处理节点112中的一个的特定处理器核(例如,核A 122、核B 124、核A 142或核
B 144)初始化或执行应用的一个或多个指令或命令传输到计算设备110。在一些实施例中,流管理模块304可响应于确定由网络交换机190接收的一个或多个网络包针对还未被计算设备110的处理节点112执行的应用而将这样的指令传输到计算设备110。在一些实施例中,流管理模块304可确定被最少利用的处理节点112中的一个的特定处理节点112(例如,处理节点114或处理节点116)和/或特定处理器核(例如,核A 122、核B 124、核A 142或核
B 144)。即,流管理模块304可确定具有最多资源和/或最大处理容量的处理节点112中的特定处理器核和/或处理节点。在这样的实施例中,由流管理模块304传输的指令和/或命令可指示计算设备110初始化或用别的方式执行确定为具有最多资源和/或最大处理容量的特定处理节点112(例如,处理节点114或处理节点116)和/或特定处理器核(例如,核A 122、核B 124、核A 142或核
B 144)上的新应用。
现在参考图4,在使用中,网络交换机190在操作期间建立环境400。说明性环境400包括连接管理模块402和包转发模块404。环境400的模块、逻辑和其他部件中的每个可体现为硬件、软件、固件或其组合。例如,环境400的模块、逻辑和其他部件中的每个可形成网络交换机190的处理器或其他硬件部件的一部分,或用别的方式由其建立。应意识到网络交换机190可包括通常在计算设备中发现的其他部件、子部件、模块和设备,其为了描述的清楚起见而未在图4中图示。
连接管理模块402可配置成将连接信息传输到网络控制器170。该连接信息定义或用别的方式指示网络交换机190的一个或多个端口(例如,PA 192、PB 194、PC 196)与计算设备110、网络控制器170、远程计算设备180和/或任何其他计算设备或通信网络之间的一个或多个网络连接(例如,通信链路)。在一些实施例中,连接管理模块402可配置成将连接信息作为一个或多个OpenFlow消息传输到网络控制器170。另外或备选地,连接管理模块402可配置成将连接信息作为一个或多个表述性状态转移(REST)消息传输到网络控制器170。当然,应意识到任何其他适合的消息传递协议和/或格式(例如,基于XML的协议和/或格式(例如简单对象访问协议(SOAP))、基于开放标准的协议和/或格式(例如JavaScript对象表示(JSON),等))可由连接管理模块402使用来将连接信息传输到网络控制器170。
在一些实施例中,连接管理模块402可配置成当在网络交换机190与计算设备110、网络控制器170、远程计算设备180和/或任何其他计算设备或通信网络之间建立或终止网络连接(例如,通信链路)时将连接信息传输到网络控制器170。例如,连接管理模块402可配置成响应于检测到网络交换机190的端口(例如,PA 192、PB 194、PC 196)中的一个或多个的链路状态(例如,“连接”、“未连接”、“有效”、“无效”、“上”、“下”等)中的改变而传输连接信息。在一些实施例中,连接管理模块402可配置成响应于检测到与新近连接到网络交换机190的端口(例如,PA 192、PB 194、PC 196)的计算设备(例如,计算设备110、网络控制器170、远程计算设备180和/或任何其他计算设备)关联的新的MAC地址而将连接信息传输到网络控制器170。另外或备选地,在一些实施例中,连接管理模块402可配置成基于可配置的参考连接通知间隔和/或基于从网络控制器170接收的请求连接管理模块402传输连接信息的一个或多个指令或命令而将连接信息传输到网络控制器170。
包转发模块404可配置成经由网络交换机190的端口(例如,PA 192、PB 194或PC 196)从远程计算设备180接收网络包。响应于从远程计算设备180接收网络包,包转发模块404配置成将与接收网络包关联的转发信息的请求传输到网络控制器170。包转发模块404还可配置成从网络控制器170接收请求的转发信息。转发信息可识别或用别的方式指示接收网络包应转发到的计算设备110的特定处理节点112的网络适配器(例如,NIC 136或NIC 156)。在一些实施例中,转发信息可包括指示通信耦合于计算设备110的识别网络适配器(例如,NIC 136或NIC 156)的网络交换机190的特定接口或端口(例如,PA 192、PB 194、PC 196)的信息。另外,在一些实施例中,包转发模块404可配置成维持一个或多个流表,其包括一个或多个流条目。在这样的实施例中,包转发模块404可配置成基于从网络控制器170接收的转发信息来向转发表添加流条目。
包转发模块404还可配置成基于接收的转发信息将由远程计算设备180接收的网络包转发到由网络控制器170识别的计算设备110的特定处理节点112的网络适配器(例如,NIC 136或NIC 156)。为了这样做,在一些实施例中,包转发模块404可配置成基于从网络控制器170接收的转发信息将从接收网络包的网络交换机190的端口(例如,PB 194)转发到通信耦合于计算设备110的识别网络适配器(例如,NIC 136或NIC 156)的网络交换机190的另一个端口(例如,PA 192)。在其中网络交换机190维持包括一个或多个流条目的流表的实施例中,包转发模块404可配置成基于流表的一个或多个流条目将由远程计算设备180接收的网络包转发到由网络控制器170识别的计算设备110的特定处理节点112的网络适配器(例如,NIC 136或NIC 156)。
现在参考图5,网络控控制器170可执行方法500用于使网络流对准计算设备110的处理资源。该方法500以框502开始,其中网络控制器170从计算设备110接收架构信息。如上文论述的,架构信息可定义计算设备110的每个处理节点112的架构。例如,在一些实施例中,在框504中,网络控制器170从计算设备110接收指示在计算设备110的哪些处理节点112(例如,处理节点114和处理节点116)内包括哪些处理器(例如,处理器120和处理器140)和存储器组(例如,存储器126和存储器146)的架构信息。在一些实施例中,架构信息还可包括识别在哪些处理器(例如,处理器120和处理器140)中包括哪些处理器核(例如,核A 122、核B 124、核A 142和核B 144)的信息。另外,在框506中,网络控制器170从计算设备110接收指示哪些应用在由计算设备110的哪些处理节点112(例如,处理节点114和处理节点116)执行的架构信息。在一些实施例中,这样的架构信息还可识别处理器(例如,处理器120和处理器140)的哪些处理器核(例如,核A 122、核B 124、核A 142或核B 144)在执行哪些应用。另外或备选地,接收的架构信息可包括识别指派或用别的方式分配给执行的每个应用的存储器空间(例如,应用存储器空间128和应用存储器空间148)的信息。在一些实施例中,在框508中,网络控制器170还可从计算设备110接收指示哪些存储器队列(例如,Q0 132、Q1 134、Q2 152和Q3 154)指派或用别的方式分配给哪个网络适配器(例如,NIC 136或NIC 156)的哪些端口(例如,P1 137或P2 157)的架构信息。当然应意识到在其他实施例中,网络控制器170可从计算设备110接收任何其他类型的架构信息。
在决策框510中,网络控制器170确定是否从网络交换机190接收对于转发信息的请求。对于转发信息的请求可响应于网络交换机190经由网络交换机190的端口(例如,PA 192、PB 194、PC 196)从远程计算设备180接收网络包而从网络交换机190接收。如果在决策框510中网络控制器170确定对于转发信息的请求从网络交换机190接收,方法500前进到框512。然而,如果网络控制器相反确定对于转发信息的请求未从网络交换机190接收,方法500环回到决策框510并且网络控制器170继续确定是否接收对于转发信息的请求。
在框512中,网络控制器170确定与由网络交换机190接收的网络包关联的网络流信息。该网络流信息识别或用别的方式指示计算设备110的目标处理节点112(例如,处理节点114)以至少部分基于由目标处理节点执行的应用或用别的方式作为该应用的函数来处理网络包。在操作中,网络控制器170基于从计算设备110接收并且维持在计算设备架构数据库172中的架构信息来确定网络流信息。如此,在一些实施例中,网络控制器170在框514中可确定或用别的方式识别由网络交换机190接收的网络包所针对的特定应用。为了这样做,网络控制器170可检查与网络包关联的报头信息(例如,来自5元组的端口号和类型)来确定目标应用。当然,应认识到网络控制器170可使用任何其他过程用于确定或识别由网络交换机190接收的网络包所针对的特定应用。在这样的实施例中,网络控制器170可将确定的应用于从计算设备110接收的架构信息比较来确定网络流信息。例如,在一些实施例中,网络控制器170可确定由接收网络包所针对的应用在由计算设备110的特定处理节点112(例如,处理节点114)执行。在这样的实施例中,网络控制器170可确定执行接收网络包所针对的应用的计算设备110的特定处理节点112(例如,处理节点114)是目标处理节点112。另外,在一些实施例中,网络控制器170在框516中还可确定执行网络包所针对的应用的特定处理器核(例如,核A 122、核B 124、核A 142或核B 144)。在这样的实施例中,网络控制器170可确定执行接收网络包所针对的应用的计算设备110的特定处理节点112(例如,处理节点114)(其包括处理器核(例如,核A 122或核B 124))是目标处理节点112。
在框518中,网络控制器170将网络流信息传输到计算设备110。网络流信息然后可由计算设备110使用来对执行网络包所针对的应用的特定目标处理节点112(例如,处理节点114)的网络适配器(例如,NIC 136)中的流过滤器(例如,流过滤器138)编程。在一些实施例中,特定目标处理节点112(例如,处理节点114)的网络适配器(例如,NIC 136)中的流过滤器(例如,流过滤器138)规定目标处理节点(例如,处理节点114)的存储器(例如,存储器126)中的存储器队列(例如,Q0 132或Q1 134)接收由网络交换机190接收的网络包(和后续相关网络包)。
在框520中,网络控制器170确定与由网络交换机190接收的网络包关联的转发信息。转发信息识别接收网络包应转发到的网络交换机190的特定端口(例如,PA 192、PB 194或PC 196)。在操作中,网络控制器170基于从计算设备110接收并且维持在计算设备架构中的架构信息和/或从网络交换机190接收并且维持在网络交换机连接数据库174中的连接信息来确定转发信息。例如,在一些实施例中,网络控制器170可利用架构信息和连接信息来确定执行网络包所针对的应用的目标处理节点112(例如,处理节点114)的网络适配器(例如,NIC 136)通信耦合于网络交换机190的特定端口(例如,PA 192)。
在框522中,网络控制器将转发信息传输到网络交换机190。该转发信息然后可由网络交换机190使用以将接收网络包转发到通信耦合于执行接收网络包所针对的应用的目标处理节点112(例如,处理节点114)的网络适配器(例如,NIC 136)的特定端口(例如,PA 192)。
现在参考图6,计算设备110可执行方法600用于使网络流对准计算设备110的处理资源。该方法600以框602开始,其中计算设备110将架构信息传输到网络控制器170。再次,如上文论述的,架构信息可定义计算设备110的每个处理节点112的架构。例如,在一些实施例中,在框604中,计算设备110将指示在计算设备110的哪些处理节点112内包括哪些处理器和存储器组的架构信息传输到网络控制器170。在一些实施例中,架构信息还可包括识别在哪些处理器中包括哪些处理器核的信息。另外,在框606中,计算设备110将指示哪些应用由计算设备110的哪些处理节点112执行的架构信息传输到网络控制器170。在一些实施例中,这样的架构信息还可识别处理器的哪些处理器核在执行哪些应用。另外或备选地,传输的架构信息可包括识别指派或用别的方式分配给执行的每个应用的存储器空间的信息。在一些实施例中,在框608中,计算设备110还可将指示哪些存储器队列指派或用别的方式分配给哪个网络适配器(例如,NIC)的哪些端口的架构信息传输到网络控制器170。当然应意识到在其他实施例中,计算设备110可将任何其他类型的架构信息传输到网络控制器170。
在决策框610中,计算设备110确定与由网络交换机190接收的网络包关联的网络流信息是否从网络控制器170接收。在一些实施例中,网络信息可经由计算设备110的使计算设备110通信耦合于网络控制器170的一个或多个管理端口(未示出)接收。网络流信息识别或用别的方式指示计算设备110的目标处理节点112(例如,处理节点114)以至少部分基于由目标处理节点112执行的应用或用别的方式作为该应用的函数来处理网络包。在一些实施例中,网络流信息还可识别或用别的方式指示执行网络包所针对的应用的特定处理器核(例如,核A 122、核B 124)。如果在决策框610中,计算设备110确定与网络包关联的网络流信息从网络控制器170接收,方法600前进到框612。然而,如果计算设备110相反确定与网络包关联的网络流信息未从网络控制器170接收,方法600前进到决策框616。
在框612中,计算设备110对执行网络包所针对的应用的目标处理节点112(例如,处理节点114)的网络适配器(例如,NIC 136)中的流过滤器(例如,流过滤器138)编程。在一些实施例中,在框614中,计算设备110对目标处理节点112(例如,处理节点114)的网络适配器(例如,NIC 136)中的流过滤器(例如,流过滤器138)编程来规定目标处理节点112(例如,处理节点114)的存储器(例如,存储器126)中的存储器队列(例如,Q0 132或Q1 134)接收由网络交换机190接收的网络包(和后续相关网络包)。
在决策框616中,计算设备110确定网络包是否从网络交换机190接收。为了这样做,在一些实施例中,计算设备110确定网络包是否由目标处理节点112(例如,处理节点114)的网络适配器(例如,NIC 136)接收。如果在决策框616中,计算设备110确定网络包从网络交换机190接收,方法600前进到框618。然而,如果计算设备110相反确定网络包未从网络交换机190接收,方法600环回到决策框610并且计算设备110确定是否接收网络流信息。
在框618中,目标处理节点112(例如,处理节点114)的网络适配器(例如,NIC 136)将接收的网络包复制到目标处理节点112的存储器(例如,存储器126)中的规定存储器队列(例如,Q0 132或Q1 134)。为了这样做,目标处理节点112的网络适配器(例如,NIC 136)将之前编程的流过滤器(例如,流过滤器138)应用于从网络交换机190接收的网络包。在其中计算设备110确定接收网络包但未接收与该网络包关联的网络流信息的实施例中,接收网络包的网络适配器(例如,NIC 136或NIC 156)将接收的网络包复制到与之关联的NIC存储器空间(例如,NIC存储器空间130或NIC存储器空间150)中的存储器队列(例如,Q0 132、Q1 134、Q2 152或Q3 154)。
在框620中,网络包所针对的特定应用从目标处理节点112(例如,处理节点114)的存储器(例如,存储器126)中的规定存储器队列(例如,Q0 132或Q1 134)接收或用别的方式检索网络包。在一些实施例中,目标应用可确定网络包是否可用于从规定存储器队列(例如,Q0 132或Q1 134)检索。为了这样做,在一些实施例中,目标应用可轮询规定的存储器队列(例如,Q0 132或Q1 134)来确定网络包是否可用于检索。另外或备选地,目标应用可接收由计算设备110的另一个部件生成的指示网络包可用于从规定存储器队列(例如,Q0 132或Q1 134)检索的中断。在这样的实施例中,目标应用可响应于确定网络包可用于检索而从规定存储器队列(例如,Q0 132或Q1 134)检索网络包。在一些实施例中,目标应用在检索网络包后清除或用别的方式重设规定的存储器队列(例如,Q0 132或Q1 134)。在其中计算设备110确定接收网络包但未接收与该网络包关联的网络流信息的实施例中,网络包所针对的特定应用从网络包存储在其内的处理节点112(例如,处理节点114或处理节点116)的存储器(例如,存储器126或存储器146)中的存储器队列(例如,Q0 132、Q1 134、Q2 152或Q3 154)接收或用别的方式检索网络包。应意识到在一些实施例中,网络包所针对的特定应用可在与包括存储接收网络包的NIC存储器空间(例如,NIC存储器空间150)的处理节点112(例如,处理节点116)不同的处理节点112(例如,处理节点114)中执行。在这样的实施例中,目标应用可经由使处理节点114通信耦合于处理节点116的通信链路(例如,QPI 118,等)从处理节点112(例如,处理节点116)的NIC存储器空间(例如,NIC存储器空间150)接收或用别的方式检索网络包。
现在参考图7,网络交换机190可执行方法700用于使网络流对准计算设备110的处理资源。该方法700以决策框702开始,其中网络交换机190确定网络包是否从远程计算设备180接收。在一些实施例中,网络交换机190确定网络包是否经由网络交换机190的端口(例如,PA 192、PB 194、PC 196)从远程计算设备180接收。如果在决策框702中,网络交换机190确定从远程计算设备180接收网络包,方法700前进到框704。然而,如果网络交换机190相反确定未从远程计算设备180接收网络包,方法700环回到决策框702并且网络交换机190继续确定是否接收网络包。
在决策框704中,网络交换机190可确定网络交换机190所维持的转发表是否包括与接收网络包关联的流条目。如论述的,流表的每个流条目可基于从网络控制器170接收的转发信息并且可由网络交换机190使用来识别一个或多个网络流、与每个网络流关联的网络包和每个网络流的网络包应转发到的目的计算设备(或其部件)。如果在决策框704中,网络交换机190确定转发表包括与接收网络包关联的流条目,方法700前进到框712。然而,如果网络交换机190相反确定转发表不包括与接收网络包关联的流条目,方法700前进到框706。
在框706中,网络交换机190请求与来自网络控制器170的接收网络包关联的转发信息。在一些实施例中,该转发信息识别接收网络包应转发到的网络交换机190的特定端口(例如,PA 192、PB 194或PC 196)。例如,在一些实施例中,转发信息可识别通信耦合于接收网络包应转发到的计算设备110的目标处理节点112(例如,处理节点114)的特定网络适配器(例如,NIC 136)的特定端口(例如,PA 192)。
在决策框708中,网络交换机190确定是否从网络控制器170接收对于网络包的请求转发信息。如果在决策框708中,网络交换机190确定从网络控制器170接收对于网络包的转发信息,方法700前进到框710。然而,如果网络交换机190相反确定未从网络控制器170接收对于网络包的转发信息,方法700环回到决策框708并且网络交换机190继续确定是否接收对于网络包的请求转发信息。
在框710中,网络交换机基于从网络控制器170接收的转发信息向网络交换机190所维持的转发表添加流条目。添加到流表的流条目可识别网络流、与该网络流关联的网络包和每个网络流的网络包应转发到的目的计算设备(或其部件)。例如,在一些实施例中,添加到流表的流条目可指示通信耦合于计算设备110(或其特定部件,例如NIC 136)并且接收网络包(和随后接收的网络包)应转发到的网络交换机190的特定端口(例如,PA 192、PB 194、PC 196)。
在框712中,网络交换机190基于与接收网络包关联的转发表的流条目来转发网络包。例如,在一些实施例中,网络交换机190可基于与接收网络包关联的转发表的流条目经由网络交换机190中的一个端口(例如,PB 194)将从远程计算设备180接收的网络包转发到网络交换机190的不同端口(例如,PA 192)。
现在参考图8,网络交换机190可执行方法800用于使网络流对准计算设备110的处理资源。在一些实施例中,网络交换机190可与上文论述的方法700并行地执行方法800。方法800以决策框802开始,其中网络交换机190确定是否从网络控制器170接收对于网络包的转发信息。如果在决策框802中,网络交换机190确定从网络控制器170接收对于网络包的转发信息,方法800前进到框804。然而,如果网络交换机190相反确定未从网络控制器170接收对于网络包的转发信息,方法800环回到决策框802并且网络交换机190继续确定是否接收转发信息。
在框804中,网络交换机190基于从网络控制器170接收的转发信息向网络交换机190所维持的转发表添加流条目。添加到流表的流条目可识别网络流、与该网络流关联的网络包和每个网络流的网络包应转发到的目的计算设备(或其部件)。例如,在一些实施例中,添加到流表的流条目可指示通信耦合于计算设备110(或其特定部件,例如NIC 136)并且接收网络包(和随后接收的网络包)应转发到的网络交换机190的特定端口(例如,PA 192、PB 194、PC 196)。
示例
本文公开的技术的说明性示例在下文提供。技术的实施例可包括下文描述的示例中的任何一个或多个和其任何组合。
示例1包括用于使网络流对准处理资源的计算设备,该计算设备包括:架构通知模块,用于将架构信息传输到网络控制器,该架构信息定义计算设备的多个处理节点中的每个处理节点的架构,其中每个处理节点包括处理器、存储器和网络适配器;本地流管理模块,用于(i)从网络控制器接收网络流信息,其中该网络流信息与网络包关联并且识别多个处理节点中的目标处理节点以至少基于由目标处理节点执行的应用来处理网络包和(ii)至少基于网络流信息来对目标处理节点的网络适配器中的流过滤器编程来规定目标处理节点的存储器中的存储器队列接收网络包;并且其中目标处理节点的网络适配器从网络交换机接收网络包,网络包要由目标处理节点所执行的应用处理。
示例2包括示例1的主题,并且其中架构信息指示由多个处理节点中的每个处理节点执行的应用。
示例3包括示例1和2中的任一个的主题,并且其中每个处理节点的处理器包括多个处理核;其中架构信息包括指示由每个处理节点的每个处理器的每个处理核执行的应用的数据;并且其中接收网络流信息包括从网络控制器接收网络流信息,其识别目标处理节点以至少基于由目标处理节点的处理核执行的应用来处理网络包。
示例4包括示例1-3中的任一个的主题,并且其中目标处理节点的网络适配器进一步(i)对网络适配器的端口分配目标处理节点的存储器中的存储器队列,其中从网络交换机接收网络包包括经由网络适配器的端口从网络交换机接收网络包以及(ii)将接收的网络包复制到分配给网络适配器的端口的目标处理节点的存储器中的存储器队列。
示例5包括示例1-4中的任一个的主题,并且其中由目标处理节点执行的应用(i)确定接收的网络包是否可用于从目标处理节点的存储器中的存储器队列检索以及(ii)响应于接收的网络包可用于从存储器队列检索的确定来从目标处理节点的存储器中的存储器队列检索接收的网络包。
示例6包括示例1-5中的任一个的主题,并且其中确定网络包是否可用于从存储器队列检索包括以下中的至少一个:(i)作为参考轮询间隔的函数地轮询目标处理节点的存储器中的存储器队列或(ii)接收指示网络包可用于从存储器队列检索的中断。
示例7包括示例1-6中的任一个的主题,并且其中网络包包括第一网络包,网络流信息包括第一网络流信息,流过滤器包括第一流过滤器,目标处理节点的存储器包括第一存储器,目标处理节点的存储器中的存储器队列包括目标处理节点的第一存储器中的第一存储器队列,并且目标处理节点的网络适配器包括目标处理节点的第一网络适配器;其中本地流管理模块进一步(i)从网络控制器接收第二网络流信息,其中该第二网络流信息与第二网络包关联并且识别多个处理节点的不同处理节点以至少基于由不同处理节点执行的另一个应用来处理第二网络包以及(ii)至少基于第二网络流信息来对不同处理节点的第二网络适配器中的第二流过滤器编程来规定不同处理节点的第二存储器中的第二存储器队列接收第二网络包;并且其中不同处理节点的第二网络适配器从网络交换机接收第二网络包,第二网络包要由不同处理节点执行的另一个应用处理。
示例8包括示例1-7中的任一个的主题,并且其中目标处理节点至少基于从网络控制器接收的指令来执行另一个应用。
示例9包括用于使网络流对准处理资源的方法,该方法包括:由具有多个处理节点的计算设备将架构信息传输到网络控制器,该架构信息定义每个处理节点的架构,其中每个处理节点包括处理器、存储器和网络适配器;由计算设备从网络控制器接收网络流信息,其中网络流信息与网络包关联并且识别多个处理节点的目标处理节点以至少基于由目标处理节点执行的应用来处理网络包;由计算设备至少基于网络流信息来对目标处理节点的网络适配器中的流过滤器编程来规定目标处理节点的存储器中的存储器队列接收网络包;以及由目标处理节点的网络适配器从网络交换机接收网络包,网络包要由目标处理节点执行的应用处理。
示例10包括示例9的主题,并且其中架构信息指示由多个处理节点中的每个处理节点执行的应用。
示例11包括示例9和10的主题,并且其中每个处理节点的处理器包括多个处理核;其中架构信息包括指示由每个处理节点的每个处理器的每个处理核执行的应用的数据;并且其中接收网络流信息包括从网络控制器接收网络流信息,其识别目标处理节点以至少基于由目标处理节点的处理核执行的应用来处理网络包。
示例12包括示例9-11中的任一个的主题,并且进一步包括由目标处理节点的网络适配器对网络适配器的端口分配目标处理节点的存储器中的存储器队列,其中从网络交换机接收网络包包括经由网络适配器的端口从网络交换机接收网络包;以及由目标处理节点的网络适配器将接收的网络包复制到分配给网络适配器的端口的目标处理节点的存储器中的存储器队列。
示例13包括示例9-12中的任一个的主题,并且进一步包括由目标处理节点执行的应用确定接收的网络包是否可用于从目标处理节点的存储器中的存储器队列检索;以及由目标处理节点执行的应用响应于接收的网络包可用于从存储器队列检索的确定而从目标处理节点的存储器中的存储器队列检索接收的网络包。
示例14包括示例9-13中的任一个的主题,并且其中确定网络包是否可用于从存储器队列检索包括以下中的至少一个:(i)作为参考轮询间隔的函数地轮询目标处理节点的存储器中的存储器队列或(ii)接收指示网络包可用于从存储器队列检索的中断。
示例15包括示例9-14中的任一个的主题,并且其中网络包包括第一网络包,网络流信息包括第一网络流信息,流过滤器包括第一流过滤器,目标处理节点的存储器包括第一存储器,目标处理节点的存储器中的存储器队列包括目标处理节点的第一存储器中的第一存储器队列,并且目标处理节点的网络适配器包括目标处理节点的第一网络适配器;并且进一步包括由计算设备从网络控制器接收第二网络流信息,其中该第二网络流信息与第二网络包关联并且识别多个处理节点的不同处理节点以至少基于由不同处理节点执行的另一个应用来处理第二网络包;由计算设备至少基于第二网络流信息来对不同处理节点的第二网络适配器中的第二流过滤器编程来规定不同处理节点的第二存储器中的第二存储器队列接收第二网络包;以及由不同处理节点的第二网络适配器从网络交换机接收第二网络包,第二网络包要由不同处理节点执行的另一个应用处理。
示例16包括示例9-15中的任一个的主题,并且进一步包括由计算设备的多个处理节点中的一个或多个至少基于从网络控制器接收的指令来执行另一个应用。
示例17包括用于使网络流对准处理资源的计算设备,该计算设备包括:处理器;和存储器,其具有存储在其中的多个指令,该多个指令在由处理器执行时促使计算设备执行示例9-16中的任一个的方法。
示例18包括一个或多个机器可读介质,其包括存储在其上的多个指令,该多个指令响应于被执行而导致计算设备执行示例9-16中的任一个的方法。
示例19包括用于使网络流对准处理资源的计算设备,该计算设备包括:用于将架构信息传输到网络控制器的装置,该架构信息定义计算设备的多个处理节点中的每个处理节点的架构,其中每个处理节点包括处理器、存储器和网络适配器;用于从网络控制器接收网络流信息的装置,其中网络流信息与网络包关联并且识别多个处理节点的目标处理节点以至少基于由目标处理节点执行的应用来处理网络包;用于至少基于网络流信息来对目标处理节点的网络适配器中的流过滤器编程来规定目标处理节点的存储器中的存储器队列接收网络包的装置;以及用于由目标处理节点的网络适配器从网络交换机接收网络包的装置,网络包要由目标处理节点执行的应用处理。
示例20包括示例19的主题,并且其中架构信息指示由多个处理节点中的每个处理节点执行的应用。
示例21包括示例19和20中的任一个的主题,并且其中每个处理节点的处理器包括多个处理核;其中架构信息包括指示由每个处理节点的每个处理器的每个处理核执行的应用的数据;并且其中用于接收网络流信息的装置包括用于从网络控制器接收这样的网络流信息的装置,该网络流信息识别目标处理节点以至少基于由目标处理节点的处理核执行的应用来处理网络包。
示例22包括示例19-21中的任一个的主题,并且进一步包括用于由目标处理节点的网络适配器对网络适配器的端口分配目标处理节点的存储器中的存储器队列的装置,其中从网络交换机接收网络包包括经由网络适配器的端口从网络交换机接收网络包;以及用于由目标处理节点的网络适配器将接收的网络包复制到分配给网络适配器的端口的目标处理节点的存储器中的存储器队列的装置。
示例23包括示例19-22中的任一个的主题,并且进一步包括用于由目标处理节点执行的应用确定接收的网络包是否可用于从目标处理节点的存储器中的存储器队列检索;以及用于由目标处理节点执行的应用响应于接收的网络包可用于从存储器队列检索的确定而从目标处理节点的存储器中的存储器队列检索接收的网络包的装置。
示例24包括示例19-23中的任一个的主题,并且其中用于确定网络包是否可用于从存储器队列检索的装置包括以下中的至少一个:(i)用于作为参考轮询间隔的函数地轮询目标处理节点的存储器中的存储器队列的装置或(ii)用于接收指示网络包可用于从存储器队列检索的中断的装置。
示例25包括示例19-24中的任一个的主题,并且其中网络包包括第一网络包,网络流信息包括第一网络流信息,流过滤器包括第一流过滤器,目标处理节点的存储器包括第一存储器,目标处理节点的存储器中的存储器队列包括目标处理节点的第一存储器中的第一存储器队列,并且目标处理节点的网络适配器包括目标处理节点的第一网络适配器;并且进一步包括用于从网络控制器接收第二网络流信息的装置,其中该第二网络流信息与第二网络包关联并且识别多个处理节点的不同处理节点以至少基于由不同处理节点执行的另一个应用来处理第二网络包;用于至少基于第二网络流信息来对不同处理节点的第二网络适配器中的第二流过滤器编程来规定不同处理节点的第二存储器中的第二存储器队列接收第二网络包的装置;以及用于由不同处理节点的第二网络适配器从网络交换机接收第二网络包的装置,第二网络包要由不同处理节点执行的另一个应用处理。
示例26包括示例19-25中的任一个的主题,并且进一步包括用于由计算设备的多个处理节点中的一个或多个至少基于从网络控制器接收的指令来执行另一个应用。
示例27包括用于使网络流对准处理资源的网络控制器,该网络控制器包括:架构管理模块,用于从计算设备接收架构信息,该架构信息定义计算设备的多个处理节点中的每个的架构;和流管理模块,用于(i)从网络交换机接收对于与网络包关联的转发信息的请求,(ii)至少基于架构信息来确定与网络包关联的网络流信息,其中网络流信息识别计算设备的多个处理节点的目标处理节点以至少基于由目标处理节点执行的应用来处理网络包,(iii)将确定的网络流信息传输到计算设备以至少基于网络流信息来对目标处理节点的网络适配器中的流过滤器编程,其中流过滤器规定目标处理节点的存储器中的存储器队列接收网络包,(iv)确定与网络包关联的转发信息,其中转发信息识别通信耦合于目标处理节点的网络适配器并且网络包要转发到的网络交换机的端口以及(v)将确定的转发信息传输到网络交换机,网络包要由网络交换机至少基于转发信息来转发。
示例28包括示例27的主题,并且其中从计算设备接收架构信息包括接收指示由每个处理节点执行的应用的应用数据、指示处理节点中的每个的处理器的处理器数据、指示处理节点中的每个的处理器的处理核的处理器核数据、指示处理节点中的每个中的分配存储器队列的存储器队列数据或指示处理节点中的每个的网络适配器的端口的端口数据中的至少一个。
示例29包括示例27和28中的任一个的主题,并且其中从计算设备接收架构信息包括接收指示由处理节点中的每个的处理器的每个处理核执行的应用的应用执行数据;并且其中确定网络流信息包括至少基于应用执行数据来确定与网络包关联的网络流信息,其中该网络流信息识别计算设备的多个处理节点的目标处理节点以至少基于由目标处理节点的处理核执行的应用来处理网络包。
示例30包括示例27-29中的任一个的主题,并且其中转发信息包括第一转发信息,对于转发信息的请求包括对于第一转发信息的请求,网络包包括第一网络包,网络流信息包括第一网络流信息,流过滤器包括第一流过滤器,目标处理节点的存储器包括第一存储器,目标处理节点的存储器中的存储器队列包括目标处理节点的第一存储器中的第一存储器队列,并且目标处理节点的网络适配器包括目标处理节点的第一网络适配器;并且其中流管理模块进一步(i)从网络交换机接收对于与第二网络包关联的第二转发信息的第二请求,(ii)至少基于架构信息来确定与第二网络包关联的第二网络流信息,其中第二网络流信息识别计算设备的多个处理节点的不同处理节点以至少基于由该不同处理节点执行的另一个应用来处理第二网络包,(iii)将确定的第二网络流信息传输到计算设备以至少基于第二网络流信息来对不同处理节点的第二网络适配器中的第二流过滤器编程,其中第二流过滤器规定不同处理节点的第二存储器中的第二存储器队列接收第二网络包,(iv)确定与第二网络包关联的第二转发信息,其中第二转发信息识别通信耦合于不同处理节点的第二网络适配器并且第二网络包要转发到的网络交换机的第二端口以及(v)将确定的第二转发信息传输到网络交换机,第二网络包要由网络交换机至少基于第二转发信息来转发。
示例31包括示例27-30中的任一个的主题,并且其中流管理模块进一步将指令消息传输到计算设备,其中该指令消息指示计算设备利用计算设备的多个处理节点中的一个或多个来执行另一个应用。
示例32包括用于使网络流对准处理资源的方法,该方法包括:由网络控制器从计算设备接收架构信息,该架构信息定义计算设备的多个处理节点中的每个的架构;由网络控制器从网络控制器接收对于与网络包关联的转发信息的请求;由网络控制器至少基于架构信息来确定与网络包关联的网络流信息,其中网络流信息识别计算设备的多个处理节点的目标处理节点以至少基于由目标处理节点执行的应用来处理网络包;由网络控制器将确定的网络流信息传输到计算设备以至少基于网络流信息来对目标处理节点的网络适配器中的流过滤器编程,其中流过滤器规定目标处理节点的存储器中的存储器队列接收网络包;由网络控制器确定与网络包关联的转发信息,其中转发信息识别通信耦合于计算设备的目标处理节点的网络适配器并且网络包要转发到的网络交换机的端口;以及由网络控制器将确定的转发信息传输到网络交换机,网络包要由网络交换机至少基于转发信息来转发。
示例33包括示例32的示例,并且其中从计算设备接收架构信息包括接收指示由每个处理节点执行的应用的应用数据、指示处理节点中的每个的处理器的处理器数据、指示处理节点中的每个的处理器的处理核的处理器核数据、指示处理节点中的每个中的分配存储器队列的存储器队列数据或指示处理节点中的每个的网络适配器的端口的端口数据中的至少一个。
示例34包括示例32和33中的任一个的主题,并且其中从计算设备接收架构信息包括接收指示由处理节点中的每个的处理器的每个处理核执行的应用的应用执行数据;并且其中确定网络流信息包括至少基于应用执行数据来确定与网络包关联的网络流信息,其中该网络流信息识别计算设备的多个处理节点的目标处理节点以至少基于由目标处理节点的处理核执行的应用来处理网络包。
示例35包括示例32-34中的任一个的主题,并且其中转发信息包括第一转发信息,对于转发信息的请求包括对于第一转发信息的请求,网络包包括第一网络包,网络流信息包括第一网络流信息,流过滤器包括第一流过滤器,目标处理节点的存储器包括第一存储器,目标处理节点的存储器中的存储器队列包括目标处理节点的第一存储器中的第一存储器队列,并且目标处理节点的网络适配器包括目标处理节点的第一网络适配器;并且进一步包括由网络控制器从网络交换机接收对于与第二网络包关联的第二转发信息的第二请求;由网络控制器至少基于架构信息来确定与第二网络包关联的第二网络流信息,其中第二网络流信息识别计算设备的多个处理节点的不同处理节点以至少基于由该不同处理节点执行的另一个应用来处理第二网络包;由网络控制器将确定的第二网络流信息传输到计算设备以至少基于第二网络流信息来对不同处理节点的第二网络适配器中的第二流过滤器编程,其中第二流过滤器规定不同处理节点的第二存储器中的第二存储器队列接收第二网络包;由网络控制器确定与第二网络包关联的第二转发信息,其中第二转发信息识别通信耦合于不同处理节点的第二网络适配器并且第二网络包要转发到的网络交换机的第二端口;以及由网络控制器将确定的第二转发信息传输到网络交换机,第二网络包要由网络交换机至少基于第二转发信息来转发。
示例36包括示例32-35中的任一个的主题,并且进一步包括由网络控制器将指令消息传输到计算设备,其中该指令消息指示计算设备利用计算设备的多个处理节点中的一个或多个来执行另一个应用。
示例37包括用于使网络流对准处理资源的网络控制器,该网络控制器包括:处理器;和存储器,其具有存储在其中的多个指令,该多个指令在由处理器执行时促使网络控制器执行示例32-36中的任一个的方法。
示例38包括一个或多个机器可读介质,其包括存储在其上的多个指令,该多个指令响应于被执行而导致网络控制器执行示例32-36中的任一个的方法。
示例39包括用于使网络流对准处理资源的网络控制器,该网络控制器包括:用于从计算设备接收架构信息的装置,该架构信息定义计算设备的多个处理节点中的每个的架构;用于从网络交换机接收对与网络包关联的转发信息的请求的装置;用于至少基于架构信息来确定与网络包关联的网络流信息的装置,其中网络流信息识别计算设备的多个处理节点的目标处理节点以至少基于由目标处理节点执行的应用来处理网络包;用于将确定的网络流信息传输到计算设备以至少基于网络流信息来对目标处理节点的网络适配器中的流过滤器编程,其中流过滤器规定目标处理节点的存储器中的存储器队列接收网络包;用于确定与网络包关联的转发信息的装置,其中转发信息识别通信耦合于计算设备的目标处理节点的网络适配器并且网络包要转发到的网络交换机的端口;以及用于将确定的转发信息传输到网络交换机的装置,网络包要由网络交换机至少基于转发信息来转发。
示例40包括示例39的主题,并且其中用于从计算设备接收架构信息的装置包括接收指示由每个处理节点执行的应用的应用数据、指示处理节点中的每个的处理器的处理器数据、指示处理节点中的每个的处理器的处理核的处理器核数据、指示处理节点中的每个中的分配存储器队列的存储器队列数据或指示处理节点中的每个的网络适配器的端口的端口数据中的至少一个的装置。
示例41包括示例39和40中的任一个的主题,并且其中用于从计算设备接收架构信息的装置包括用于接收指示由处理节点中的每个的处理器的每个处理核执行的应用的应用执行数据的装置;并且其中用于确定网络流信息的装置包括至少基于应用执行数据来确定与网络包关联的网络流信息的装置,其中该网络流信息识别计算设备的多个处理节点的目标处理节点以至少基于由目标处理节点的处理核执行的应用来处理网络包。
示例42包括示例39-41中的任一个的主题,并且其中转发信息包括第一转发信息,对于转发信息的请求包括对于第一转发信息的请求,网络包包括第一网络包,网络流信息包括第一网络流信息,流过滤器包括第一流过滤器,目标处理节点的存储器包括第一存储器,目标处理节点的存储器中的存储器队列包括目标处理节点的第一存储器中的第一存储器队列,并且目标处理节点的网络适配器包括目标处理节点的第一网络适配器;并且进一步包括用于从网络交换机接收对于与第二网络包关联的第二转发信息的第二请求的装置;用于至少基于架构信息来确定与第二网络包关联的第二网络流信息的装置,其中第二网络流信息识别计算设备的多个处理节点的不同处理节点以至少基于由该不同处理节点执行的另一个应用来处理第二网络包;用于将确定的第二网络流信息传输到计算设备以至少基于第二网络流信息来对不同处理节点的第二网络适配器中的第二流过滤器编程的装置,其中第二流过滤器规定不同处理节点的第二存储器中的第二存储器队列接收第二网络包;用于确定与第二网络包关联的第二转发信息的装置,其中第二转发信息识别通信耦合于不同处理节点的第二网络适配器并且第二网络包要转发到的网络交换机的第二端口;以及用于将确定的第二转发信息传输到网络交换机的装置,第二网络包要由网络交换机至少基于第二转发信息来转发。
示例43包括示例39-42中的任一个的主题,并且进一步包括用于将指令消息传输到计算设备的装置,其中该指令消息指示计算设备利用计算设备的多个处理节点中的一个或多个来执行另一个应用。
示例44包括用于使网络流对准处理资源的网络交换机,该网络交换机包括包转发模块,用于(i)经由网络交换机的第一端口从远程计算设备接收网络包,(ii)将对于与接收网络包关联的转发信息的请求传输到网络控制器,(iii)从网络控制器接收转发信息,转发信息指示接收网络包要转发到的网络交换机的第二端口,以及(iv)将接收网络包转发到第二端口以传输到计算设备,接收网络包要由计算设备的多个处理节点的目标处理节点执行的应用处理。
示例45包括示例44的主题,并且进一步包括连接管理模块,用于将连接信息传输到网络控制器,其中该连接信息指示网络交换机与计算设备或远程计算设备中的至少一个之间经由网络交换机的一个或多个端口的一个或多个网络连接。
示例46包括用于使网络流对准处理资源的方法,该方法包括:由网络交换机经由网络交换机的第一端口从远程计算设备接收网络包;由网络交换机将对于与接收网络包关联的转发信息的请求传输到网络控制器;由网络交换机从网络控制器接收转发信息,转发信息指示接收网络包要转发到的网络交换机的第二端口;以及由网络交换机将接收网络包传输到第二端口以传输到计算设备,接收网络包要由计算设备的多个处理节点的目标处理节点执行的应用处理。
示例47包括示例46的主题,并且进一步包括由网络交换机将连接信息传输到网络控制器,其中该连接信息指示网络交换机与计算设备或远程计算设备中的至少一个之间经由网络交换机的一个或多个端口的一个或多个网络连接。
示例48包括用于使网络流对准处理资源的网络交换机,该网络交换机包括:处理器;和存储器,其具有存储在其中的多个指令,该多个指令在由处理器执行时促使网络交换机执行示例46或47中的任一个的方法。
示例49包括一个或多个机器可读介质,其包括存储在其上的多个指令,该多个指令响应于被执行而导致网络交换机执行示例46或47中的任一个的方法。
示例50包括用于使网络流对准处理资源的网络交换机,该网络交换机包括:用于经由网络交换机的第一端口从远程计算设备接收网络包的装置;用于将对于与接收网络包关联的转发信息的请求传输到网络控制器的装置;用于从网络控制器接收转发信息的装置,转发信息指示接收网络包要转发到的网络交换机的第二端口;和用于将接收网络包转发到第二端口以传输到计算设备的装置,接收网络包要由计算设备的多个处理节点的目标处理节点执行的应用处理。
示例51包括示例50的主题,并且进一步包括用于将连接信息传输到网络控制器的装置,其中该连接信息指示网络交换机与计算设备或远程计算设备中的至少一个之间经由网络交换机的一个或多个端口的一个或多个网络连接。
Claims (25)
1. 一种用于使网络流对准处理资源的计算设备,所述计算设备包括:
架构通知模块,用于将架构信息传输到网络控制器,所述架构信息定义所述计算设备的多个处理节点中的每个处理节点的架构,其中每个处理节点包括处理器、存储器和网络适配器;
本地流管理模块,用于(i)从所述网络控制器接收网络流信息,其中所述网络流信息与网络包关联并且识别所述多个处理节点中的目标处理节点以至少基于由所述目标处理节点执行的应用来处理所述网络包和(ii)至少基于所述网络流信息来对所述目标处理节点的网络适配器中的流过滤器编程以规定所述目标处理节点的存储器中的存储器队列来接收所述网络包;并且
其中所述目标处理节点的网络适配器从网络交换机接收所述网络包,所述网络包要由所述目标处理节点所执行的应用处理。
2. 如权利要求1所述的计算设备,其中所述架构信息指示由所述多个处理节点中的每个处理节点执行的应用。
3. 如权利要求2所述的计算设备,其中每个处理节点的处理器包括多个处理核;
其中所述架构信息包括指示由每个处理节点的每个处理器的每个处理核执行的应用的数据;并且
其中接收所述网络流信息包括从所述网络控制器接收网络流信息,所述网络流信息识别所述目标处理节点以至少基于由所述目标处理节点的处理核执行的应用来处理所述网络包。
4. 如权利要求1-3中的任一项所述的计算设备,其中所述目标处理节点的网络适配器进一步(i)对所述网络适配器的端口分配所述目标处理节点的存储器中的存储器队列,其中从所述网络交换机接收网络包包括经由所述网络适配器的端口从所述网络交换机接收所述网络包以及(ii)将接收的网络包复制到分配给所述网络适配器的端口的目标处理节点的存储器中的存储器队列。
5. 如权利要求4所述的计算设备,其中由所述目标处理节点执行的应用(i)确定接收的网络包是否可用于从所述目标处理节点的存储器中的存储器队列检索以及(ii)响应于接收的网络包可用于从所述存储器队列检索的确定来从所述目标处理节点的存储器中的存储器队列检索接收的网络包。
6. 如权利要求5所述的计算设备,其中确定所述网络包是否可用于从所述存储器队列检索包括以下中的至少一个:(i)作为参考轮询间隔的函数地轮询所述目标处理节点的存储器中的存储器队列或(ii)接收指示所述网络包可用于从所述存储器队列检索的中断。
7. 如权利要求4所述的计算设备,其中所述网络包包括第一网络包,所述网络流信息包括第一网络流信息,所述流过滤器包括第一流过滤器,所述目标处理节点的存储器包括第一存储器,所述目标处理节点的存储器中的存储器队列包括所述目标处理节点的第一存储器中的第一存储器队列,并且所述目标处理节点的网络适配器包括所述目标处理节点的第一网络适配器;
其中所述本地流管理模块进一步(i)从所述网络控制器接收第二网络流信息,其中所述第二网络流信息与第二网络包关联并且识别所述多个处理节点的不同处理节点以至少基于由所述不同处理节点执行的另一个应用来处理所述第二网络包以及(ii)至少基于所述第二网络流信息来对所述不同处理节点的第二网络适配器中的第二流过滤器编程来规定所述不同处理节点的第二存储器中的第二存储器队列接收所述第二网络包;并且
其中所述不同处理节点的第二网络适配器从所述网络交换机接收所述第二网络包,所述第二网络包要由所述不同处理节点执行的另一个应用处理。
8. 如权利要求1-3所述的计算设备,其中所述目标处理节点至少基于从所述网络控制器接收的指令来执行另一个应用。
9. 一种用于使网络流对准处理资源的方法,所述方法包括:
由具有多个处理节点的计算设备将架构信息传输到网络控制器,所述架构信息定义每个处理节点的架构,其中每个处理节点包括处理器、存储器和网络适配器;
由所述计算设备从所述网络控制器接收网络流信息,其中所述网络流信息与网络包关联并且识别所述多个处理节点的目标处理节点以至少基于由所述目标处理节点执行的应用来处理所述网络包;
由所述计算设备至少基于所述网络流信息来对所述目标处理节点的网络适配器中的流过滤器编程来规定所述目标处理节点的存储器中的存储器队列接收所述网络包;以及
由所述目标处理节点的网络适配器从所述网络交换机接收所述网络包,所述网络包要由所述目标处理节点执行的应用处理。
10. 如权利要求9所述的方法,其中所述架构信息指示由所述多个处理节点中的每个处理节点执行的应用。
11. 如权利要求10所述的方法,其中每个处理节点的处理器包括多个处理核;
其中所述架构信息包括指示由每个处理节点的每个处理器的每个处理核执行的应用的数据;并且
其中接收所述网络流信息包括从所述网络控制器接收网络流信息,所述网络流信息识别所述目标处理节点以至少基于由所述目标处理节点的处理核执行的应用来处理所述网络包。
12. 如权利要求9-11中的任一项所述的方法,其进一步包括:
由所述目标处理节点的网络适配器对所述网络适配器的端口分配所述目标处理节点的存储器中的存储器队列,其中从所述网络交换机接收所述网络包包括经由所述网络适配器的端口从所述网络交换机接收所述网络包;以及
由所述目标处理节点的网络适配器将接收的网络包复制到分配给所述网络适配器的端口的目标处理节点的存储器中的存储器队列。
13. 如权利要求12所述的方法,其进一步包括:
由所述目标处理节点执行的应用确定接收的网络包是否可用于从所述目标处理节点的存储器中的存储器队列检索;以及
由所述目标处理节点执行的应用响应于接收的网络包可用于从所述存储器队列检索的确定而从所述目标处理节点的存储器中的存储器队列检索接收的网络包。
14. 如权利要求13所述的方法,其中确定所述网络包是否可用于从所述存储器队列检索包括以下中的至少一个:(i)作为参考轮询间隔的函数地轮询所述目标处理节点的存储器中的存储器队列或(ii)接收所述指示网络包可用于从所述存储器队列检索的中断。
15. 如权利要求12所述的方法,其中所述网络包包括第一网络包,所述网络流信息包括第一网络流信息,所述流过滤器包括第一流过滤器,所述目标处理节点的存储器包括第一存储器,所述目标处理节点的存储器中的存储器队列包括所述目标处理节点的第一存储器中的第一存储器队列,并且所述目标处理节点的网络适配器包括所述目标处理节点的第一网络适配器;并且进一步包括:
由所述计算设备从所述网络控制器接收第二网络流信息,其中所述第二网络流信息与第二网络包关联并且识别所述多个处理节点的不同处理节点以至少基于由所述不同处理节点执行的另一个应用来处理所述第二网络包;
由所述计算设备至少基于所述第二网络流信息来对所述不同处理节点的第二网络适配器中的第二流过滤器编程来规定所述不同处理节点的第二存储器中的第二存储器队列接收所述第二网络包;以及
由所述不同处理节点的第二网络适配器从所述网络交换机接收所述第二网络包,所述第二网络包要由所述不同处理节点执行的另一个应用处理。
16. 如权利要求9-11中的任一项所述的方法,其进一步包括由所述计算设备的多个处理节点中的一个或多个至少基于从所述网络控制器接收的指令来执行另一个应用。
17. 一种用于使网络流对准处理资源的网络控制器,所述网络控制器包括:
架构管理模块,用于从计算设备接收架构信息,所述架构信息定义所述计算设备的多个处理节点中的每个的架构;和
流管理模块,用于(i)从网络交换机接收对于与网络包关联的转发信息的请求,(ii)至少基于所述架构信息来确定与所述网络包关联的网络流信息,其中所述网络流信息识别所述计算设备的多个处理节点的目标处理节点以至少基于由所述目标处理节点执行的应用来处理所述网络包,(iii)将确定的网络流信息传输到所述计算设备以至少基于所述网络流信息来对所述目标处理节点的网络适配器中的流过滤器编程,其中所述流过滤器规定所述目标处理节点的存储器中的存储器队列接收所述网络包,(iv)确定与所述网络包关联的转发信息,其中所述转发信息识别通信耦合于所述计算设备的所述目标处理节点的网络适配器并且所述网络包要转发到的网络交换机的端口,以及(v)将确定的转发信息传输到所述网络交换机,所述网络包要由所述网络交换机至少基于所述转发信息来转发。
18. 如权利要求17所述的网络控制器,其中从所述计算设备接收所述架构信息包括接收指示由每个处理节点执行的应用的应用数据、指示所述处理节点中的每个的处理器的处理器数据、指示所述处理节点中的每个的处理器的处理核的处理器核数据、指示所述处理节点中的每个中的分配存储器队列的存储器队列数据或指示所述处理节点中的每个的网络适配器的端口的端口数据中的至少一个。
19. 如权利要求17所述的网络控制器,其中从所述计算设备接收所述架构信息包括接收指示由所述处理节点中的每个的处理器的每个处理核执行的应用的应用执行数据;并且
其中确定所述网络流信息包括至少基于所述应用执行数据来确定与所述网络包关联的网络流信息,其中所述网络流信息识别所述计算设备的多个处理节点的目标处理节点以至少基于由所述目标处理节点的处理核执行的应用来处理所述网络包。
20. 如权利要求17-19中的任一项所述的网络控制器,其中所述转发信息包括第一转发信息,对于转发信息的请求包括对于所述第一转发信息的请求,所述网络包包括第一网络包,所述网络流信息包括第一网络流信息,所述流过滤器包括第一流过滤器,所述目标处理节点的存储器包括第一存储器,所述目标处理节点的存储器中的存储器队列包括所述目标处理节点的第一存储器中的第一存储器队列,并且所述目标处理节点的网络适配器包括所述目标处理节点的第一网络适配器;并且
其中所述流管理模块进一步(i)从所述网络交换机接收对于与第二网络包关联的第二转发信息的第二请求,(ii)至少基于所述架构信息来确定与所述第二网络包关联的第二网络流信息,其中所述第二网络流信息识别所述计算设备的多个处理节点的不同处理节点以至少基于由所述不同处理节点执行的另一个应用来处理所述第二网络包,(iii)将确定的第二网络流信息传输到所述计算设备以至少基于所述第二网络流信息来对所述不同处理节点的第二网络适配器中的第二流过滤器编程,其中所述第二流过滤器规定所述不同处理节点的第二存储器中的第二存储器队列接收所述第二网络包,(iv)确定与所述第二网络包关联的第二转发信息,其中所述第二转发信息识别通信耦合于所述计算装置的所述不同处理节点的第二网络适配器并且所述第二网络包要转发到的网络交换机的第二端口,以及(v)将确定的第二转发信息传输到所述网络交换机,所述第二网络包要由所述网络交换机至少基于所述第二转发信息来转发。
21. 如权利要求17-19中的任一项所述的网络控制器,其中所述流管理模块进一步将指令消息传输到所述计算设备,其中所述指令消息指示所述计算设备利用所述计算设备的多个处理节点中的一个或多个来执行另一个应用。
22. 一种用于使网络流对准处理资源的方法,所述方法包括:
由网络控制器从计算设备接收架构信息,所述架构信息定义所述计算设备的多个处理节点中的每个的架构;
由所述网络控制器从网络控制器接收对于与所述网络包关联的转发信息的请求;
由所述网络控制器至少基于所述架构信息来确定与所述网络包关联的网络流信息,其中所述网络流信息识别所述计算设备的多个处理节点的目标处理节点以至少基于由所述目标处理节点执行的应用来处理所述网络包;
由所述网络控制器将确定的网络流信息传输到所述计算设备以至少基于所述网络流信息来对所述目标处理节点的网络适配器中的流过滤器编程,其中所述流过滤器规定所述目标处理节点的存储器中的存储器队列接收所述网络包;
由所述网络控制器确定与所述网络包关联的转发信息,其中所述转发信息识别通信耦合于所述计算设备的目标处理节点的网络适配器并且所述网络包要转发到的网络交换机的端口;以及
由所述网络控制器将确定的转发信息传输到所述网络交换机,所述网络包要由所述网络交换机至少基于所述转发信息来转发。
23. 如权利要求22所述的方法,其中从所述计算设备接收所述架构信息包括接收指示由每个处理节点执行的应用的应用数据、指示所述处理节点中的每个的处理器的处理器数据、指示所述处理节点中的每个的处理器的处理核的处理器核数据、指示所述处理节点中的每个中的分配存储器队列的存储器队列数据或指示所述处理节点中的每个的网络适配器的端口的端口数据中的至少一个。
24. 如权利要求22所述的方法,其中从所述计算设备接收所述架构信息包括接收指示由所述处理节点中的每个的处理器的每个处理核执行的应用的应用执行数据;并且
其中确定所述网络流信息包括至少基于所述应用执行数据来确定与所述网络包关联的网络流信息,其中所述网络流信息识别所述计算设备的多个处理节点的目标处理节点以至少基于由所述目标处理节点的处理核执行的应用来处理所述网络包。
25. 如权利要求22-24中的任一项所述的方法,其中所述转发信息包括第一转发信息,对于转发信息的请求包括对于所述第一转发信息的请求,所述网络包包括第一网络包,所述网络流信息包括第一网络流信息,所述流过滤器包括第一流过滤器,所述目标处理节点的存储器包括第一存储器,所述目标处理节点的存储器中的存储器队列包括所述目标处理节点的第一存储器中的第一存储器队列,并且所述目标处理节点的网络适配器包括所述目标处理节点的第一网络适配器;并且进一步包括:
由所述网络控制器从所述网络交换机接收对于与第二网络包关联的第二转发信息的第二请求;
由所述网络控制器至少基于所述架构信息来确定与所述第二网络包关联的第二网络流信息,其中所述第二网络流信息识别所述计算设备的多个处理节点的不同处理节点以至少基于由所述不同处理节点执行的另一个应用来处理所述第二网络包;
由所述网络控制器将确定的第二网络流信息传输到所述计算设备以至少基于所述第二网络流信息来对所述不同处理节点的第二网络适配器中的第二流过滤器编程,其中所述第二流过滤器规定所述不同处理节点的第二存储器中的第二存储器队列接收所述第二网络包;
由所述网络控制器确定与所述第二网络包关联的第二转发信息,其中所述第二转发信息识别通信耦合于所述计算装置的所述不同处理节点的第二网络适配器并且所述第二网络包要转发到的网络交换机的第二端口;以及
由所述网络控制器将确定的第二转发信息传输到所述网络交换机,所述第二网络包要由所述网络交换机至少基于所述第二转发信息来转发。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/467917 | 2014-08-25 | ||
US14/467,917 US10200292B2 (en) | 2014-08-25 | 2014-08-25 | Technologies for aligning network flows to processing resources |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105391648A true CN105391648A (zh) | 2016-03-09 |
CN105391648B CN105391648B (zh) | 2019-06-04 |
Family
ID=53716332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510440535.5A Active CN105391648B (zh) | 2014-08-25 | 2015-07-24 | 用于使网络流对准处理资源的方法、计算设备和网络控制器 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10200292B2 (zh) |
EP (1) | EP2991306B1 (zh) |
JP (1) | JP6116072B2 (zh) |
KR (1) | KR101724552B1 (zh) |
CN (1) | CN105391648B (zh) |
TW (1) | TWI589136B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108702339A (zh) * | 2016-04-01 | 2018-10-23 | 英特尔公司 | 结构架构中用于基于服务质量进行节流的技术 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11324022B1 (en) | 2014-10-06 | 2022-05-03 | Sprint Spectrum L.P. | Method and system for selecting a carrier on which to schedule communications of a type of bearer traffic |
US9807766B1 (en) * | 2015-01-30 | 2017-10-31 | Sprint Spectrum L.P. | Method and system for component carrier selection based on content type |
KR20170056879A (ko) * | 2015-11-16 | 2017-05-24 | 한국전자통신연구원 | Sdn 다중 오케스트레이터 |
CN106936739B (zh) | 2015-12-30 | 2020-02-11 | 新华三技术有限公司 | 一种报文转发方法及装置 |
KR20170087602A (ko) * | 2016-01-21 | 2017-07-31 | 현대자동차주식회사 | 네트워크에서 동작 모드의 전환 방법 |
US10142231B2 (en) | 2016-03-31 | 2018-11-27 | Intel Corporation | Technologies for network I/O access |
TWI646805B (zh) * | 2016-11-23 | 2019-01-01 | 財團法人資訊工業策進會 | 網路通訊協定轉譯系統及方法 |
KR102078744B1 (ko) * | 2018-03-13 | 2020-02-19 | (주) 시스메이트 | 멀티 코어 프로세서 및 범용 네트워크 컨트롤러 하이브리드 구조의 네트워크 인터페이스 카드 |
US11042416B2 (en) * | 2019-03-06 | 2021-06-22 | Google Llc | Reconfigurable computing pods using optical networks |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090300209A1 (en) * | 2008-06-03 | 2009-12-03 | Uri Elzur | Method and system for path based network congestion management |
US20110158254A1 (en) * | 2009-12-30 | 2011-06-30 | International Business Machines Corporation | Dual scheduling of work from multiple sources to multiple sinks using source and sink attributes to achieve fairness and processing efficiency |
US20140056141A1 (en) * | 2012-08-24 | 2014-02-27 | Advanced Micro Devices, Inc. | Processing system using virtual network interface controller addressing as flow control metadata |
US20140162903A1 (en) * | 2012-10-31 | 2014-06-12 | Purdue Research Foundation | Metabolite Biomarkers For Forecasting The Outcome of Preoperative Chemotherapy For Breast Cancer Treatment |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6865160B1 (en) * | 1998-05-04 | 2005-03-08 | Hewlett-Packard Development Company, L.P. | Broadcast tree determination in load balancing switch protocols |
US6338078B1 (en) | 1998-12-17 | 2002-01-08 | International Business Machines Corporation | System and method for sequencing packets for multiprocessor parallelization in a computer network system |
US8103797B2 (en) * | 2003-03-07 | 2012-01-24 | Tria Networks Systems, Llc | Parameterized recursive network architecture with topological addressing |
US7765405B2 (en) | 2005-02-25 | 2010-07-27 | Microsoft Corporation | Receive side scaling with cryptographically secure hashing |
JP2007265089A (ja) * | 2006-03-29 | 2007-10-11 | Fujitsu Ltd | ソフトウェア保守支援プログラム,処理方法および装置 |
US7756027B1 (en) * | 2007-06-13 | 2010-07-13 | Juniper Networks, Inc. | Automatic configuration of virtual network switches |
EP2176773B1 (en) | 2007-07-09 | 2015-09-02 | Hewlett-Packard Development Company, L. P. | Data packet processing method for a multi core processor |
US8023425B2 (en) * | 2009-01-28 | 2011-09-20 | Headwater Partners I | Verifiable service billing for intermediate networking devices |
US20110004597A1 (en) * | 2009-03-16 | 2011-01-06 | Yehiel Engel | System and method for content aware routing of data within a platform hub |
US9098335B2 (en) * | 2009-12-23 | 2015-08-04 | Citrix Systems, Inc. | Systems and methods for managing spillover limits in a multi-core system |
US9680750B2 (en) * | 2010-07-06 | 2017-06-13 | Nicira, Inc. | Use of tunnels to hide network addresses |
JP5808700B2 (ja) | 2012-03-05 | 2015-11-10 | 株式会社Nttドコモ | 通信制御装置、通信制御システム、仮想化サーバ管理装置、スイッチ装置および通信制御方法 |
US9143557B2 (en) * | 2012-06-27 | 2015-09-22 | Juniper Networks, Inc. | Feedback loop for service engineered paths |
TWI487331B (zh) | 2012-12-18 | 2015-06-01 | Wistron Corp | 管理網路傳輸順序之方法及其非揮發性電腦可讀媒體 |
US10057387B2 (en) * | 2012-12-26 | 2018-08-21 | Realtek Singapore Pte Ltd | Communication traffic processing architectures and methods |
US9450817B1 (en) * | 2013-03-15 | 2016-09-20 | Juniper Networks, Inc. | Software defined network controller |
US9485187B2 (en) * | 2013-07-08 | 2016-11-01 | Futurewei Technologies, Inc. | Intelligent software-defined networking based service paths |
US9787586B2 (en) * | 2013-10-24 | 2017-10-10 | University Of Houston System | Location-based network routing |
US10009287B2 (en) * | 2013-12-26 | 2018-06-26 | Huawei Technologies Co., Ltd. | Hierarchical software-defined network traffic engineering controller |
US9588923B2 (en) * | 2014-01-24 | 2017-03-07 | Applied Micro Circuits Corporation | Flow pinning in a server on a chip |
US9825860B2 (en) * | 2014-05-30 | 2017-11-21 | Futurewei Technologies, Inc. | Flow-driven forwarding architecture for information centric networks |
US20170318082A1 (en) * | 2016-04-29 | 2017-11-02 | Qualcomm Incorporated | Method and system for providing efficient receive network traffic distribution that balances the load in multi-core processor systems |
-
2014
- 2014-08-25 US US14/467,917 patent/US10200292B2/en active Active
-
2015
- 2015-07-14 EP EP15176666.4A patent/EP2991306B1/en active Active
- 2015-07-16 JP JP2015141757A patent/JP6116072B2/ja active Active
- 2015-07-17 TW TW104123265A patent/TWI589136B/zh not_active IP Right Cessation
- 2015-07-23 KR KR1020150104443A patent/KR101724552B1/ko active IP Right Grant
- 2015-07-24 CN CN201510440535.5A patent/CN105391648B/zh active Active
-
2019
- 2019-01-28 US US16/258,852 patent/US10757031B2/en active Active
-
2020
- 2020-08-24 US US17/001,499 patent/US11792132B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090300209A1 (en) * | 2008-06-03 | 2009-12-03 | Uri Elzur | Method and system for path based network congestion management |
US20110158254A1 (en) * | 2009-12-30 | 2011-06-30 | International Business Machines Corporation | Dual scheduling of work from multiple sources to multiple sinks using source and sink attributes to achieve fairness and processing efficiency |
US20140056141A1 (en) * | 2012-08-24 | 2014-02-27 | Advanced Micro Devices, Inc. | Processing system using virtual network interface controller addressing as flow control metadata |
US20140162903A1 (en) * | 2012-10-31 | 2014-06-12 | Purdue Research Foundation | Metabolite Biomarkers For Forecasting The Outcome of Preoperative Chemotherapy For Breast Cancer Treatment |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108702339A (zh) * | 2016-04-01 | 2018-10-23 | 英特尔公司 | 结构架构中用于基于服务质量进行节流的技术 |
US11343177B2 (en) | 2016-04-01 | 2022-05-24 | Intel Corporation | Technologies for quality of service based throttling in fabric architectures |
Also Published As
Publication number | Publication date |
---|---|
JP6116072B2 (ja) | 2017-04-19 |
US11792132B2 (en) | 2023-10-17 |
KR20160024747A (ko) | 2016-03-07 |
CN105391648B (zh) | 2019-06-04 |
EP2991306A1 (en) | 2016-03-02 |
TWI589136B (zh) | 2017-06-21 |
KR101724552B1 (ko) | 2017-04-07 |
EP2991306B1 (en) | 2017-08-23 |
US20190158412A1 (en) | 2019-05-23 |
US20200389408A1 (en) | 2020-12-10 |
TW201630384A (zh) | 2016-08-16 |
JP2016046806A (ja) | 2016-04-04 |
US10200292B2 (en) | 2019-02-05 |
US20160057066A1 (en) | 2016-02-25 |
US10757031B2 (en) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105391648A (zh) | 使网络流对准处理资源的技术 | |
JP6224244B2 (ja) | 作業密度を増加させ、エネルギー効率を向上させるための電力バランシング | |
EP3072260B1 (en) | Methods, systems, and computer readable media for a network function virtualization information concentrator | |
US20150215228A1 (en) | Methods, systems, and computer readable media for a cloud-based virtualization orchestrator | |
KR20180052582A (ko) | 조립단위 및 세립단위 로드 밸런싱 사이에서 매개하는 기술 | |
US10348683B2 (en) | Network packet filtering via media access control (MAC) address learning | |
CN103746911A (zh) | 一种sdn网络结构及其通信方法 | |
CN108319509B (zh) | 一种事件管理方法、系统及主控设备 | |
US20150244782A1 (en) | Server for distributed controller system | |
CN105281944B (zh) | 网络协议地址的设定方法及服务管理系统 | |
KR101911359B1 (ko) | 저전력 블루투스 어댑터 및 그를 이용한 데이터 교환 시스템 | |
US10270701B2 (en) | Management node, terminal, communication system, communication method, and program storage medium | |
US10382338B2 (en) | Mitigation of processing load on control device controlling transfer devices within network | |
JP6488557B2 (ja) | 通信制御システム、通信システム、通信制御方法および通信制御プログラム | |
CN115277424B (zh) | 软件定义网络中的决策下发方法、装置及存储介质 | |
KR101814411B1 (ko) | 네트워크 어드레스화가 가능한 디바이스 | |
CN104104593A (zh) | 一种基于多节点网络报文传输的请求响应管理机制 | |
CN114936126A (zh) | 一种采集服务器数据的装置、方法、设备及介质 | |
JP2015153299A (ja) | 処理制御システム、処理制御方法、及びプログラム | |
CN108111571A (zh) | 一种基于iSCSI协议的存储QoS方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |