CN110959278A - 使用基于图路径的预分类的数据包批处理 - Google Patents
使用基于图路径的预分类的数据包批处理 Download PDFInfo
- Publication number
- CN110959278A CN110959278A CN201880027838.6A CN201880027838A CN110959278A CN 110959278 A CN110959278 A CN 110959278A CN 201880027838 A CN201880027838 A CN 201880027838A CN 110959278 A CN110959278 A CN 110959278A
- Authority
- CN
- China
- Prior art keywords
- packets
- protocol
- packet
- receive queue
- central processor
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/247—Multipath using M:N active or standby paths
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/741—Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3018—Input queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/167—Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6
-
- 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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- 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/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种使用网络接口控制器的预分类机制实现的批处理方法。所述方法包括:所述网络接口控制器的所述预分类机制接收用于填充第一接收队列和第二接收队列的规则(1002);所述预分类机制接收与对应第二协议的数据包混合的对应第一协议的数据包(1004);以及所述网络接口控制器的所述预分类机制基于所述规则用对应所述第一协议的所述数据包以独占方式填充所述第一接收队列,用对应所述第二协议的所述数据包以独占方式填充所述第二接收队列,使得中央处理器能够从所述第一接收队列获取第一批所述数据包,并使用相同的节点图路径处理所述第一批数据包中的每个所述数据包(1006)。
Description
背景技术
数据包处理性能是软件定义网络(software defined networking,SDN)和网络功能虚拟化(network function virtualization,NFV)成功的关键因素。在SDN和NFV中,通过与网络接口控制器(network interface controller,NIC)耦合在一起的通用中央处理器(central processing unit,CPU)来执行数据包处理。
为了提高性能,使用节点图的数据包批处理架构在业界被广泛接受。在数据包批处理过程中,作了一个基本假设:单独一批数据包中的所有数据包都将通过相同的节点图路径。然而,在实际应用中,一批数据包中的数据包使用不同的协议,因此,最终不会通过相同的图路径。
发明内容
根据本发明的一个方面,提供了一种使用网络接口控制器的预分类机制实现的批处理方法。所述方法包括:所述预分类机制接收用于填充第一接收队列和第二接收队列的规则;所述预分类机制接收与对应第二协议的数据包混合的对应第一协议的数据包;以及所述预分类机制基于所述规则用对应所述第一协议的所述数据包以独占方式填充所述第一接收队列,用对应所述第二协议的所述数据包以独占方式填充所述第二接收队列,使得中央处理器能够从所述第一接收队列获取第一批所述数据包,并使用相同的节点图路径处理所述第一批数据包中的每个所述数据包。
可选地,在上述任一方面中,所述方面的另一实现提供:基于所述规则,用对应所述第一协议的所述数据包以独占方式填充所述第一接收队列,用对应所述第二协议的所述数据包以独占方式填充所述第二接收队列,使得在初始缓存未命中后,随后处理的所述第一批数据包中的每个所述数据包命中缓存。可选地,在上述任一方面中,所述方面的另一实现提供:从配置所述网络接口控制器的操作员处接收所述规则。可选地,在上述任一方面中,所述方面的另一实现提供:从所述中央处理器中的规则创建器处接收所述规则。可选地,在上述任一方面中,所述方面的另一实现提供:检查数据包报头以区分对应所述第一协议的所述数据包和对应所述第二协议的所述数据包。可选地,在上述任一方面中,所述方面的另一实现提供:对应所述第一协议的所述数据包和对应所述第二协议的所述数据包分别是Internet协议版本4(Internet Protocol version 4,IPv4)数据包、Internet协议版本6(Internet Protocol version 6,IPv6)数据包、多协议标签交换(multi-protocol labelswitched,MPLS)数据包、传输控制协议(transmission control protocol,TCP)数据包和用户数据报协议(User Datagram Protocol,UDP)数据包中的一种。可选地,在上述任一方面中,所述方面的另一实现提供:在处理后从中央处理器接收所述数据包,然后将所述数据包传输到另一设备。
根据本发明的一个方面,提供了一种服务器,包括:具有预分类机制的网络接口控制器,其用于:接收与对应第二协议的数据包混合的对应第一协议的数据包;以及用对应所述第一协议的所述数据包以独占方式填充第一接收队列,用对应所述第二协议的所述数据包以独占方式填充第二接收队列。所述服务器还包括可操作地耦合到所述网络接口控制器的中央处理器,其用于:从所述第一接收队列获取第一批所述数据包;以及使用相同的第一节点图路径处理所述第一批数据包中的每个所述数据包。
可选地,在上述任一方面中,所述方面的另一实现提供:可操作地耦合到所述中央处理器的缓存,其中,在缓存未命中后处理的所述第一批数据包中的每个所述数据包都命中缓存。可选地,在上述任一方面中,所述方面的另一实现提供:所述中央处理器用于从所述第二接收队列获取第二批所述数据包,并使用相同的第二节点图路径处理所述第二批数据包中的每个所述数据包。可选地,在上述任一方面中,所述方面的另一实现提供:所述预分类机制通过检查每个所述数据包报头中的以太网类型来填充所述第一接收队列和所述第二接收队列。可选地,在上述任一方面中,所述方面的另一实现提供:对应所述第一协议的所述数据包和对应所述第二协议的所述数据包分别是Internet协议版本4(InternetProtocol version 4,IPv4)数据包、Internet协议版本6(Internet Protocol version 6,IPv6)数据包、多协议标签交换(multi-protocol label switched,MPLS)数据包、传输控制协议(transmission control protocol,TCP)数据包和用户数据报协议(User DatagramProtocol,UDP)数据包中的一种。可选地,在上述任一方面中,所述方面的另一实现提供:所述预分类机制至少部分在硬件中实现。可选地,在上述任一方面中,所述方面的另一实现提供:所述网络接口控制器包括用于接收所述数据包的以太网端口。可选地,在上述任一方面中,所述方面的另一实现提供:所述中央处理器包括流量路径观测器,所述流量路径观测器用于监测所述中央处理器接收的所述数据包,并在流量模式超过预定阈值时向操作员发送报告。可选地,在上述任一方面中,所述方面的另一实现提供:所述中央处理器包括流量路径观测器和规则创建器,其中,所述流量路径观测器用于监测所述中央处理器接收的所述数据包,并在流量模式超过预定阈值时向所述规则创建器报警;所述规则创建器用于基于所述警报生成新规则,并指示所述预分类机制开始使用所述新规则来填充所述第一接收队列和所述第二接收队列。可选地,在上述任一方面中,所述方面的另一实现提供:所述网络接口控制器用于在处理后从中央处理器接收所述数据包,并将处理后的所述数据包传输到另一设备。
根据本发明的一个方面,提供了一种服务器,包括:具有预分类机制的网络接口控制器,其用于:接收与对应第二协议的数据包混合的对应第一协议的数据包;以及用对应所述第一协议的所述数据包以独占方式填充第一接收队列,用对应所述第二协议的所述数据包以独占方式填充第二接收队列。所述服务器还包括:可操作地耦合到所述网络接口控制器的中央处理器,其用于:向所述网络接口控制器提供填充所述第一接收队列和所述第二接收队列的规则;从所述第一接收队列获取第一批所述数据包;以及使用相同的节点图路径处理所述第一批数据包中的每个所述数据包。所述服务器还包括:可操作地耦合到所述中央处理器的主存和缓存,其中,从主存中获取指令,并在缓存未命中后将所述指令存储在缓存中,在缓存未命中后处理的所述第一批数据包中的每一个所述数据包都命中缓存。可选地,在上述任一方面中,所述方面的另一实现提供:所述中央处理器包括流量路径观测器,所述流量路径观测器用于监测所述中央处理器接收的所述数据包,并在流量模式超过预定阈值时向操作员发送报告。可选地,在上述任一方面中,所述方面的另一实现提供:所述中央处理器包括流量路径观测器和规则创建器,其中,所述流量路径观测器用于监测所述中央处理器接收的所述数据包,并在流量模式超过预定阈值时向所述规则创建器报警;所述规则创建器用于基于所述警报生成新规则,并指示所述预分类机制开始使用所述新规则来填充所述第一接收队列和所述第二接收队列。
为了清晰起见,在本发明的范围内,上述实施例中的任何一个可以与上述其它实施例的任何一个或多个组合来创建新的实施例。
结合附图和权利要求,可以在下文的详细描述中更清楚地理解这些和其它特征。
附图说明
为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。
图1为服务器架构的示意图。
图2为包含预分类机制的服务器架构的实施例的示意图。
图3为具有预分类机制并使用静态规则的服务器架构的实施例的示意图。
图4为具有预分类机制并使用部分静态规则的服务器架构的实施例的示意图。
图5为具有预分类机制并使用动态规则的服务器架构的实施例的示意图。
图6至图8共同示出了使用测试装置对网络接口控制器中具有预分类机制的服务器相对于没有任何预分类机制的服务器进行的测试。
图9示出了在网络接口控制器中具有预分类机制的服务器和不具有任何预分类机制的服务器的测试结果的图。
图10示出了可使用网络接口控制器的预分类机制实现的批处理方法的实施例的流程图。
图11为适于实现本文所公开的发明概念的网络设备的示意图。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
本发明公开了一种在网络接口控制器中实现的预分类机制,该机制克服了现有数据包处理方案的低效性。预分类机制接收与对应第二协议(如IPv6)的数据包混合的对应第一协议(如IPv4)的数据包,下文将详细阐述。此后,预分类机制用相同类型的数据包以独占方式填充每个接收队列。因此,第一接收队列仅填充IPv4数据包,第二接收队列仅填充IPv6数据包。由于每个接收队列中的所有数据包类型相同,中央处理器能够使用第一节点图路径处理第一批数据包中的每个数据包,以及使用第二节点图路径处理第二批数据包中的每个数据包。通过这种方式处理,从预热缓存中受益的数据包数量显著增加。
图1示出了服务器100架构的示意图。如图所示,服务器100包括网络接口控制器102、中央处理器104、缓存106和主存108。本领域技术人员将理解,在实际应用中服务器100中可能包含其它组件和/或设备。但是,为了简洁起见,这些附加设备和/或元件将不会详细描述。
网络接口控制器102是将服务器100连接到计算机网络的计算机硬件组件。网络接口控制器102实现使用诸如以太网、光纤通道、无线保真(Wireless Fidelity,Wi-Fi)或令牌环等特定物理层和数据链路层标准进行通信所需的电子电路。这为完整的网络协议栈提供了基础,允许计算机网络中的计算机组之间进行通信。计算机网络可以是Internet、广域网(wide area network,WAN)、局域网(local area network,LAN)、虚拟专用网(virtualprivate network,VPN)或允许共享数据的其它类型的计算机或电信网络。可通过可路由协议,例如Internet协议(Internet Protocol,IP),进行通信。
中央处理器104表示服务器100内的电子电路,通过执行指令规定的基本算术、逻辑、控制和输入/输出(input/output,I/O)操作来执行计算机程序或软件的指令。中央处理器104的主要部件包括,例如,执行算术和逻辑操作的算术逻辑单元(arithmetic logicunit,ALU),向ALU提供操作数并存储ALU运算结果的寄存器,以及控制单元,该控制单元通过发送ALU、寄存器和其它部件的协调操作来对指令的获取(从存储器中)和执行进行编排。
中央处理器104可以是微处理器,这意味着中央处理器104包含在单个集成电路(integrated circuit,IC)芯片上。包含中央处理器104的集成电路芯片还可以包含存储器(例如,主存108和/或缓存106)、外围接口和计算机的其它组件。这种集成设备可称为微控制器或片上系统(system on a chip,SoC)。尽管图1中未示出,服务器100可使用多核处理器,该处理器是一个包含两个或两个以上中央处理器104的单芯片,中央处理器104称为核。
缓存106是一个硬件或软件组件,其用于存储数据,使得与从主存108中获取数据相比,之后对该数据的请求能够更快地得到服务。存储在缓存106中的数据可能是早期计算的结果,也可能是存储在其它位置的数据的副本。当在缓存106中找到所请求的数据时,会发生缓存命中;当在缓存106中找不到数据时,会发生缓存未命中。缓存命中是通过从缓存106中读取数据来实现的,这比重新计算结果或从较慢的数据存储如主存108中读取数据更快。因此,缓存106可以服务的请求越多,系统的执行速度就越快。为了节约成本并实现数据的有效使用,与主存108相比,缓存106相对较小。虽然示出了单个缓存106,但本领域技术人员将了解,缓存106可以表示在缓存层次结构中组织的多个缓存。
主存108是指用于存储服务器100中使用的信息(如数据、指令、计算机程序、软件等)的计算机硬件设备。主存108是主存储器的同义词,可以称为主存储器。如下文详细阐述,主存108可以是不同的类型。
服务器100能够处理网络数据包,或简称为数据包。典型的数据包包含控制信息和用户数据。用户数据也可称为净荷。控制信息提供传送净荷所需的信息。例如,控制信息可以包括源和目的网络地址、错误检测码和排序信息。控制信息可在数据包的报头和/或包尾中找到。
数据包处理性能是SDN和NFV成功的关键因素。在SDN和NFV中,使用连接到一个或多个网络接口控制器(例如网络接口控制器102)的通用CPU(例如,中央处理器104)来执行数据包处理。为提高处理性能,可使用具有节点图110的数据包批处理架构。使用节点图110的数据包批处理在业界被广泛接受。数据包批处理架构的例子包括伯克利可扩展软件交换机(Berkeley Extensible Software Switch,BESS),它是加利福尼亚大学伯克利分校的产品;以及fd.io,它是加利福尼亚旧金山Linux基金会的产品。
为获得合适的结果,数据包批处理架构的基本假设是:一批数据包中的所有数据包都将通过相同的节点图路径。节点图路径通常是由数据包报头确定的一系列节点118。例如,图1中的节点图路径112可在Internet协议版本4(Internet Protocol version 4,IPv4)数据包的报头中表示为:dpdk-in-->ipv4-input-->ipv4-lookup-->ipv4-rewrite-->dpdk-out。同样地,图1中的节点图路径114可在Internet协议版本6(Internet Protocolversion 6,IPv6)数据包的报头中表示为:dpdk-in-->ipv6-input-->ipv6-lookup-->ipv6-rewrite。其它数据包的其它节点图路径可能包括,例如,ethe-in、ipv4-mcast等。
尽管如此,在实际应用中,服务器100的一个接口接收的数据包使用多个协议(例如,IPv4、IPv6、多协议标签交换(multi-protocol label switching,MPLS)、传输控制协议(transmission control protocol,TCP)、用户数据报协议(User Datagram Protocol,UDP)等)。图1用于说明这一点。如图1所示,服务器100的网络接口控制器102接收一系列数据包116。这一系列数据包116包括与IPv6数据包混合或混杂在一起的IPv4数据包。网络接口控制器102将一批IPv4和IPv6数据包放入每个接收队列120中,这些接收队列分别标记为RxQ1、RxQ2和RxQ3。虽然本领域技术人员将认识到,可能存在其它的批大小,但假定每个接收队列120的批大小为255个数据包。因此,每个接收队列120总共包含255个数据包,其中一些是IPv4数据包,一些是IPv6数据包。
例如,中央处理器104使用轮询模式驱动程序(未示出)从标记为RxQ1的接收队列120获取第一批数据包。为了便于说明,假设第一批数据包中的140个数据包是IPv4数据包,第一批数据包中的另外115个数据包是IPv6数据包。如果这一批数据包中的第一个数据包是IPv4数据包,则将使用IPv4节点图路径112进行处理。在本例中处理IPv4数据包时,ipv4-input节点118可以从缓存106处请求信息(例如,客户端或用户设备所请求的数据)。如果在缓存中找不到所请求的信息,则发生缓存未命中。因此,ipv4-input节点118必须从主存108处获取信息。一旦从主存108处获得信息,该信息将用于处理IPv4数据包。该信息也加载到缓存106中用于后续处理,这可称为缓存预热。一旦缓存106通过加载用于处理IPv4数据包的信息进行了预热,剩余139个IPv4数据包中的每一个都将从存储在缓存106中的信息中获益。实际上,随后的139个IPv4包不需要访问主存108,从而加快了处理速度。
第一批数据包中的IPv6数据包处理方式与IPv4数据包类似。当遇到IPv6数据包时,使用IPv6节点图路径114处理IPv6数据包。在本例中,处理IPv6数据包时,ipv6-input节点118可以从缓存106处请求信息。如果在缓存中找不到所请求的信息,则发生缓存未命中。因此,ipv6-input节点118必须从主存108处获取信息。一旦从主存108处获得信息,该信息将用于处理IPv6数据包。该信息也加载到缓存106中用于后续处理。一旦缓存106通过加载用于处理IPv6数据包的信息进行了预热,剩余114个IPv6数据包中的每一个都将从存储在缓存106中的信息中获益。事实上,随后的114个IPv6包不需要访问主存108,从而加快了处理速度。
由于在每个接收队列120中找到的数据包混合了图1中不同类型数据包(例如,IPv4数据包和IPv6数据包),因此数据包处理效率低下。事实上,只有139个IPv4数据包受益于缓存106预热,只有114个IPv6数据包受益于缓存106预热。此外,主存108至少需要访问两次,一次是获取处理IPv4数据包所需的信息,另外一次是获取处理IPv6数据包所需的信息。
为了克服现有数据包处理方案的低效性,提供了一种在网络接口控制器中实现的预分类机制。该预分类机制接收与对应第二协议(如IPv6)的数据包混合的对应第一协议(如IPv4)的数据包。此后,预分类机制用相同类型的数据包以独占方式填充每个接收队列。因此,第一接收队列仅填充IPv4数据包,第二接收队列仅填充IPv6数据包。由于每个接收队列中的所有数据包类型相同,中央处理器能够使用第一节点图路径处理第一批数据包中的每个数据包,以及使用第二节点图路径处理第二批数据包中的每个数据包。通过这种方式处理,从预热缓存中受益的数据包数量显著增加。事实上,如果从接收队列120获得的第一批数据包中的第一个数据包是IPv4数据包,则该数据包由ipv4-input节点118处理。如果在这种处理过程中遇到缓存未命中,但在此之后对缓存进行了预热,则来自第一批的254个后续IPv4数据包中的每一个都将受益于已预热的缓存。
图2示出了服务器200架构的实施例的示意图。如图所示,服务器200包括网络接口控制器202、中央处理器204、缓存206和主存208。图2的中央处理器204、缓存206和主存208类似于图1的中央处理器104、缓存106和主存108。图2的服务器200利用节点图210、IPv4节点图路径212、IPv6节点图路径214、节点218和接收队列220,类似于图1的节点图110、IPv4节点图路径112、IPv6节点图路径114、节点118和接收队列120。
图2的服务器200还包括网络接口控制器202。网络接口控制器202类似于图1的网络接口控制器102。然而,与图1的网络接口控制器102不同,图2的网络接口控制器202包括预分类机制222。预分类机制222可以以硬件、软件或两者结合的形式来实现。
预分类机制222从网络接口控制器202接收一系列不同类型的数据包216。在一实施例中,在网络接口控制器202的以太网端口224处接收数据包。一旦网络接口控制器202接收到数据包,这些数据包就提供给预分类机制222。在一实施例中,预分类机制222通过解析数据包的报头来确定每个数据包的类型(例如,数据包是IPv4数据包还是IPv6数据包)。本领域技术人员将认识到,包的类型可以以不同的方式确定。
预分类机制222用于从中央处理器204处接收规则。预分类机制222使用这些规则来填充接收队列220。举例来说,规则可包括以下内容:ipv4-->RxQ1;ipv6-->RxQ2。在本例中,预分类机制222将检查数据包报头中的以太网类型(例如,以太网帧中的双八位字节字段)以对数据包进行分类,然后只使用IPv4数据包填充标记为RxQ1的第一接收队列220,只使用IPv6数据包填充标记为RxQ2的第二接收队列220。规则可以由服务器200的操作员静态设置,也可以根据流量模式的变化动态设置,下文将详细阐述。此外,考虑规则可从中央处理器204以外的来源处接收。
预分类机制222从中央处理器204或其它地方收到规则后,预分类机制222应用规则来填充接收队列220。在图2中,用IPv4数据包以独占方式填充标记为RxQ1的接收队列220,以及用IPv6数据包以独占方式填充标记为RxQ2的接收队列220。因此,标记为RxQ1的接收队列220仅包含对应第一协议的数据包,而标记为RxQ2的接收队列220仅包含对应第二协议的数据包。
一旦根据协议类型将数据包分类并分批放置在接收队列220中,中央处理器204使用例如轮询模式驱动程序等从接收队列220中一次获取一批数据。轮询模式驱动程序轮询网络接口控制器(network interface controller,NIC)202的队列以接收传入的数据包216。例如,中央处理器204从标记为RxQ1的接收队列220中获取第一批255个IPv4数据包。由于预分类机制222的操作,这一批数据包中的每个数据包都是一个IPv4数据包,因此,这一批数据包中的所有数据包都将使用节点图210中的IPv4节点图路径212进行处理。例如,如果ipv4-input节点218从缓存206处请求信息,但发生缓存未命中,则ipv4-input节点从主存208处获取信息。一旦从主存208中获得信息,该信息将用于处理IPv4数据包。该信息也加载到缓存206中用于后续处理。一旦缓存206通过加载用于处理IPv4数据包的信息进行了预热,这一批数据包中剩余的254个IPv4数据包都将从存储在缓存206中的信息中获益。
通过使用图2的服务器200中的预分类机制222处理数据包,在缓存206预热后进行批处理的所有数据包(例如254个数据包)都将从预热后的缓存206中获益。相比之下,当使用图1中的服务器100处理数据包时,在缓存106预热后的批处理中,只有部分数据包(例如139或114个数据包)从预热后的缓存106中获益。因此,图2中利用预分类机制222的数据包处理系统比图1的数据包处理系统更有效。实际上,预分类机制222确保从任一接收队列220获取的一批数据包中的每个数据包都将通过相同的节点图路径(例如,节点图路径212或214),更多的数据包将从预热后的缓存206获益,并减少了缓存未命中的次数。
图3示出了服务器300架构的实施例的示意图。如图所示,服务器300包括具有预分类机制322的网络接口控制器302、中央处理器304、缓存306、主存308、包含各种节点318的节点图310以及接收队列320。图3的服务器300、网络接口控制器302、预分类机制322、中央处理器304、缓存306、主存308、节点图310、节点318和接收队列320类似于图1和图2的服务器100、200、网络接口控制器102、202、预分类机制222、中央处理器104、204、缓存106、206、主存108、208、节点图110、210、节点118、218以及接收队列120、220。服务器300用于接收一系列数据包316,类似于图1和图2中的一系列数据包116、216。
与图2中中央处理器204提供给网络接口控制器202的规则不同,图3中中央处理器304提供给网络接口控制器302的规则是静态的。举例来说,如果事先知道流量模式(例如,业务流类型),则可以在系统配置中设置规则,并在服务器300启动时应用这些规则。如果业务流中有三种类型的数据包,如IPv4数据包、IPv6数据包和MPLS数据包,则预分类机制322可以使用规则将数据包分发到三个可用接收队列320,使得每个接收队列只包含一种类型的数据包。
图3的中央处理器304、缓存306和主存308类似于图1和图2的中央处理器104、204、缓存106、206以及主存108、208。图3的服务器300使用节点图310、IPv4节点图路径312、IPv6节点图路径314、节点318和接收队列320,类似于图1和图2的节点图110、210、IPv4节点图路径112、212、IPv6节点图路径114、214、节点118、218以及接收队列120和220。
图3的服务器300还包括网络接口控制器302。网络接口控制器302类似于图2的网络接口控制器202。事实上,图3的网络接口控制器302包括一个预分类机制322,类似于图2的预分类机制222。预分类机制322可以以硬件、软件或两者结合的形式来实现。在一实施例中,可从负责配置网络接口控制器302的操作员处接收规则。
图4示出了服务器400架构的实施例的示意图。如图所示,服务器400包括具有预分类机制422的网络接口控制器402、中央处理器404、缓存406、主存408、包含各种节点418的节点图410以及接收队列420。图4的服务器400、网络接口控制器402、预分类机制422、中央处理器404、缓存406、主存408、节点图410、节点418和接收队列420类似于图1至图3的服务器100、200、300、网络接口控制器102、202、302、预分类机制222、322、中央处理器104、204、304、缓存106、206、306、主存108、208、308、节点图110、210、310、节点118、218、318以及接收队列120、220、320。服务器400用于接收一系列数据包416,类似于图1至图3中的一系列数据包116、216、316。
与图3中中央处理器304提供给网络接口控制器302的规则不同,图4中中央处理器404提供给网络接口控制器402的规则是部分静态的。由于在中央处理器404中包含了一个流量路径观测器426,因此这些规则被认为是部分静态的。举例来说,流量路径观测器426记录每个活动节点图路径(例如,图2的节点图路径212、214)处理的数据包数。在一实施例中,流量路径观测器426用于在观察到流量模式变化时向服务器400的操作员发送警报和/或报告。例如,流量模式变化可能是IPv4流量超过预定的阈值(例如,在5分钟内超过总流量的百分之四十(40%))。根据警报和/或报告,服务器操作员可以调整或更改规则,并将新规则应用于预分类机制422。
图5示出了服务器500架构的实施例的示意图。如图所示,服务器500包括具有预分类机制522的网络接口控制器502、中央处理器504、缓存506、主存508、包含各种节点518的节点图508和接收队列520。图5的服务器500、网络接口控制器502、预分类机制522、中央处理器504、缓存506、主存508、节点图510、节点518和接收队列20类似于图1至图4的服务器100、200、300、400、网络接口控制器102、202、302、402、预分类机制222、322、422、中央处理器104、204、304、404、缓存106、206、306、406、主存108、208、308、408、节点图110、210、310、410、节点118、218、318、418、以及接收队列120、220、320、420。服务器500用于接收一系列数据包516,类似于图1至图4中的一系列数据包116、216、316、416。
与图4中中央处理器404提供给网络接口控制器402的规则不同,图5中中央处理器504提供给网络接口控制器502的规则是动态的。由于在中央处理器504中包含了流量路径观测器526和规则创建器528,因此规则被认为是动态的。图5中的流量路径观测器526类似于图4中的流量路径观测器426。举例来说,流量路径观测器526记录每个活动节点图路径(例如,图2的节点图路径212、214)处理的数据包数。在一实施例中,流量路径观测器526用于在观察到流量模式变化时向规则创建器528发送警报和/或报告。例如,流量模式变化可能是IPv4流量超过预定的阈值(例如,在5分钟内超过总流量的百分之四十(40%))。根据警报和/或报告,规则创建器528可以调整或更改规则,并将新规则应用于预分类机制522。
图6示出了测试装置600,测试装置600用于测试如图7所示的网络接口控制器702中具有预分类机制722的服务器700,相对于如图8所示的没有任何预分类机制的服务器800。图7的服务器700类似于图1至图5的服务器200、300、400、500,服务器800类似于图1的服务器100。因此,为了简洁起见,服务器700、800的组件和功能不会详细重复。如图所示,服务器700包括多个节点718,服务器800包括多个节点818。
图6中的测试装置600包括被测服务器660、一对网络接口控制器602和测试模块650。在测试期间,被测服务器660是图7中的服务器700或图8中的服务器800。举例来说,图6中被测服务器660(亦称,被测设备(device under test,DUT))可以是美国德克萨斯州圆石城的戴尔公司市售的服务器。测试过程中使用的测试模块650是英国西苏塞克斯郡克劳利的思博伦通信公司市售的Spirent N4U型号。在一实施例中,可使用SpirentN4U模型按照征求意见(Request for Comments,RFC)2544中的方法进行测试。然而,在其它情况下也可使用其它测试方法。在本实施例中示出在被测服务器660之外的用于测试的网络接口控制器602是美国加利福尼亚州圣克拉拉的英特尔公司商用的Intel 82599型号。
图9为示出了图7中服务器700的测试结果的图900,相对于图8中不包含任何预分类器的服务器800,该结果得益于服务器700中包含了预分类机制722。图900包括以每秒百万数据包(million packets per second,Mpps)为单位的纵轴962和以用字节表示的帧长(例如,数据包长度)为单位的横轴964。如图900所示,在测试的不同帧长度下,列966描述的具有预分类机制722的服务器700的性能优于列968描述的服务器800的性能。事实上,据观察,当使用单个IPv4节点图路径和单个IPv6节点图路径时,对于与IPv6数据包混合的IPv4数据包,使用预分类机制722将性能提高了20%。在256字节的帧长下,测试期间吞吐量达到每秒10千兆位(Gigabits per second,Gps),使用预分类机制与不使用预分类机制的性能差异较小。
图10为批处理方法1000的实施例的流程图,方法1000可以使用诸如图2至图5的网络接口控制器202、302、402、502的预分类机制222、322、422、522来实现。在块1002中,网络接口控制器接收用于填充第一接收队列和第二接收队列的规则(例如,图2中标记为RxQ1的第一接收队列220,以及标记为RxQ2的第二接收队列220)。在一实施例中,规则由服务器的操作员或规则创建器(例如,图5中的规则创建器528)提供。在块1004中,预分类机制接收与对应第二协议(例如,IPv6)的数据包混合的对应第一协议(例如,IPv4)的数据包。在块1006中,用对应第一协议的数据包以独占方式填充第一接收队列,用对应第二协议的数据包以独占方式填充第二接收队列。因此,中央处理器(例如,图2的中央处理器204)能够从第一接收队列获得第一批数据包,并使用相同的节点图路径处理第一批数据包。
图11示出了根据本发明一实施例的网络设备1100的示意图。设备1100适用于实现本文所述的组件(例如,图2至图5中的服务器200、300、400、500)。设备1100包括用于接收数据的入端口1110和接收器单元(receiver unit,Rx)1120;用于处理数据的处理器、逻辑单元或中央处理器1130;用于传输数据的发射器单元(transmitter unit,Tx)1140和出端口1150;以及用于存储数据的存储器1160。设备1100还可包括光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,它们耦合到入端口1110、接收器单元1120、发射器单元1140和出端口1150,并用于光信号或电信号的出入。
处理器1130由硬件和软件实现。处理器1130可以实施为一个或多个CPU芯片、核(例如,实施为多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)和数字信号处理器(digital signal processor,DSP)。处理器1130与入端口1110、接收器单元1120、发射器单元1140、出端口1150和存储器1160通信。处理器1130包括预分类模块1170。预分类模块1170实现上述公开的实施例。例如,预分类模块1170实现了图2至图5中的预分类机制222、322、422、522的功能。因此,包含预分类模块1170对设备1100的功能进行了实质性改进,并将设备1100转换为不同的状态。或者,预分类模块1170实现为存储在存储器1160中的指令,并由处理器1130执行。
存储器1160包括一个或多个磁盘、磁带驱动器和固态硬盘,并可用作溢流数据存储设备,用来在程序被选择执行时存储这类程序,以及用来存储在程序执行期间读取的指令和数据。存储器1160可为易失的或非易失的,并可为只读存储器(read-only memory,ROM)、随机存取存储器(random-access memory,RAM)、三重内容寻址存储器(ternarycontent-addressable memory,TCAM)和静态随机存取存储器(static random-accessmemory,SRAM)。
本文所述的实施例提供许多优点。例如,由于接收队列一批数据包中的每个数据包的类型相同,因此所有数据包都将在节点图中使用相同的节点图路径。此外,由于所有数据包的类型都相同,因此在初始数据包之后的一批数据包中的每个数据包都将受益于已被初始数据包预热的缓存。因此,相对于传统的数据包处理方法,处理效率更高。
在一实施例中,本发明提供了一种批处理方法,该方法包括:接收用于填充第一接收队列和第二接收队列的规则的构件;用于接收与对应第二协议的数据包混合的对应第一协议的数据包的构件;以及基于该规则用对应第一协议的数据包以独占方式填充第一接收队列,用对应第二协议的数据包以独占方式填充第二接收队列,使得中央处理器能够从第一接收队列获取第一批数据包,并使用相同的节点图路径处理第一批数据包中的每个数据包的构件。
在一实施例中,本发明提供了一种服务器,该服务器包括具有预分类机制的网络接口控制构件,该构件用于:接收与对应第二协议的数据包混合的对应第一协议的数据包;以及用对应第一协议的数据包以独占方式填充第一接收队列,用对应第二协议的数据包以独占方式填充第二接收队列。该服务器还包括可操作地耦合到网络接口控制构件的处理构件,该处理构件用于:从第一接收队列获取第一批数据包;以及使用相同的第一节点图路径处理第一批数据包中的每个数据包。
在一实施例中,本发明提供了一种服务器,该服务器包括具有预分类机制的网络接口控制构件,该构件用于:接收与对应第二协议的数据包混合的对应第一协议的数据包;以及用对应第一协议的数据包以独占方式填充第一接收队列,用对应第二协议的数据包以独占方式填充第二接收队列。该服务器还包括可操作地耦合到网络接口控制构件的处理构件,该处理构件用于:向网络接口控制器提供填充第一接收队列和第二接收队列的规则;从第一接收队列获取第一批数据包;以及使用相同的节点图路径处理第一批数据包中的每个数据包。服务器还包括可操作地耦合到处理构件的存储器构件,其中,从存储器构件中获取指令,并在存储器构件未命中后存储该指令,在存储器构件未命中后处理的第一批数据包中的每一个数据包都命中存储器构件。
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,本发明所公开的系统和方法可以以许多其它特定形式来体现。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文中所给出的细节。例如,各种元件或组件可以在另一系统中组合或整合,或者某些特征可以省略或不实施。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或集成。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。
Claims (20)
1.一种使用网络接口控制器的预分类机制实现的批处理方法,其特征在于,包括:
所述网络接口控制器的所述预分类机制接收用于填充第一接收队列和第二接收队列的规则;
所述预分类机制接收与对应第二协议的数据包混合的对应第一协议的数据包;以及
所述网络接口控制器的所述预分类机制基于所述规则用对应所述第一协议的所述数据包以独占方式填充所述第一接收队列,用对应所述第二协议的所述数据包以独占方式填充所述第二接收队列,使得中央处理器能够从所述第一接收队列获取第一批所述数据包,并使用相同的节点图路径处理所述第一批数据包中的每个所述数据包。
2.根据权利要求1所述的批处理方法,其特征在于,还包括:基于所述规则,用对应所述第一协议的所述数据包以独占方式填充所述第一接收队列,用对应所述第二协议的所述数据包以独占方式填充所述第二接收队列,使得在初始缓存未命中后,随后处理的所述第一批数据包中的每个所述数据包都命中缓存。
3.根据权利要求1所述的批处理方法,其特征在于,还包括:从配置所述网络接口控制器的操作员处接收所述规则。
4.根据权利要求1所述的批处理方法,其特征在于,还包括:从所述中央处理器上的规则创建器处接收所述规则。
5.根据权利要求1所述的批处理方法,其特征在于,还包括:检查数据包报头以区分对应所述第一协议的所述数据包和对应所述第二协议的所述数据包。
6.根据权利要求1所述的批处理方法,其特征在于,对应所述第一协议的所述数据包和对应所述第二协议的所述数据包分别是Internet协议版本4(Internet Protocol version4,IPv4)数据包、Internet协议版本6(Internet Protocol version 6,IPv6)数据包、多协议标签交换(multi-protocol label switched,MPLS)数据包、传输控制协议(transmission control protocol,TCP)数据包和用户数据报协议(User DatagramProtocol,UDP)数据包中的一种。
7.根据权利要求1所述的批处理方法,其特征在于,还包括:在处理后从中央处理器接收所述数据包,然后将所述数据包传输到另一设备。
8.一种服务器,其特征在于,包括:
具有预分类机制的网络接口控制器,用于:
接收与对应第二协议的数据包混合的对应第一协议的数据包;以及
用对应所述第一协议的所述数据包以独占方式填充第一接收队列,用对应所述第二协议的所述数据包以独占方式填充第二接收队列;以及
可操作地耦合到所述网络接口控制器的中央处理器,用于:
从所述第一接收队列获取第一批所述数据包;以及
使用相同的第一节点图路径处理所述第一批数据包中的每个所述数据包。
9.根据权利要求8所述的服务器,其特征在于,还包括可操作地耦合到所述中央处理器的缓存,其中,在缓存未命中后处理的所述第一批数据包中的每个所述数据包都命中缓存。
10.根据权利要求8所述的服务器,其特征在于,所述中央处理器用于从所述第二接收队列获取第二批所述数据包,并使用相同的第二节点图路径处理所述第二批数据包中的每个所述数据包。
11.根据权利要求8所述的服务器,其特征在于,所述预分类机制通过检查每个所述数据包报头中的以太网类型来填充所述第一接收队列和所述第二接收队列。
12.根据权利要求8所述的服务器,其特征在于,对应所述第一协议的所述数据包和对应所述第二协议的所述数据包分别是Internet协议版本4(Internet Protocol version4,IPv4)数据包、Internet协议版本6(Internet Protocol version 6,IPv6)数据包、多协议标签交换(multi-protocol label switched,MPLS)数据包、传输控制协议(transmission control protocol,TCP)数据包和用户数据报协议(User DatagramProtocol,UDP)数据包中的一种。
13.根据权利要求8所述的服务器,其特征在于,所述预分类机制至少部分在硬件中实现。
14.根据权利要求8所述的服务器,其特征在于,所述网络接口控制器包括用于接收所述数据包的以太网端口。
15.根据权利要求8所述的服务器,其特征在于,所述中央处理器包括流量路径观测器,所述流量路径观测器用于监测所述中央处理器接收的所述数据包,并在流量模式超过预定阈值时向操作员发送报告。
16.根据权利要求8所述的服务器,其特征在于,所述中央处理器包括流量路径观测器和规则创建器,其中,所述流量路径观测器用于监测所述中央处理器接收的所述数据包,并在流量模式超过预定阈值时向所述规则创建器报警;所述规则创建器用于基于所述警报生成新规则,并指示所述预分类机制开始使用所述新规则来填充所述第一接收队列和所述第二接收队列。
17.根据权利要求8所述的服务器,其特征在于,所述网络接口控制器用于在处理后从中央处理器接收所述数据包,并将处理后的所述数据包传输到另一设备。
18.一种服务器,其特征在于,包括:
具有预分类机制的网络接口控制器,用于:
接收与对应第二协议的数据包混合的对应第一协议的数据包;以及
用对应所述第一协议的所述数据包以独占方式填充第一接收队列,用对应所述第二协议的所述数据包以独占方式填充第二接收队列;以及
可操作地耦合到所述网络接口控制器的中央处理器,用于:
向所述网络接口控制器提供填充所述第一接收队列和所述第二接收队列的规则;
从所述第一接收队列获取第一批所述数据包;以及
使用相同的节点图路径处理所述第一批数据包中的每个所述数据包;以及
可操作地耦合到所述中央处理器的主存和缓存,其中,从主存中获取指令,并在缓存未命中后将所述指令存储在缓存中,在缓存未命中后处理的所述第一批数据包中的每一个所述数据包都命中缓存。
19.根据权利要求18所述的服务器,其特征在于,所述中央处理器包括流量路径观测器,所述流量路径观测器用于监测所述中央处理器接收的所述数据包,并在流量模式超过预定阈值时向操作员发送报告。
20.根据权利要求18所述的服务器,其特征在于,所述中央处理器包括流量路径观测器和规则创建器,其中,所述流量路径观测器用于监测所述中央处理器接收的所述数据包,并在流量模式超过预定阈值时向所述规则创建器报警;所述规则创建器用于基于所述警报生成新规则,并指示所述预分类机制开始使用所述新规则来填充所述第一接收队列和所述第二接收队列。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/498,136 US10439930B2 (en) | 2017-04-26 | 2017-04-26 | Packet batch processing with graph-path based pre-classification |
US15/498,136 | 2017-04-26 | ||
PCT/CN2018/084535 WO2018196794A1 (en) | 2017-04-26 | 2018-04-26 | Packet batch processing with graph-path based pre-classification |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110959278A true CN110959278A (zh) | 2020-04-03 |
CN110959278B CN110959278B (zh) | 2021-11-26 |
Family
ID=63916223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880027838.6A Active CN110959278B (zh) | 2017-04-26 | 2018-04-26 | 使用基于图路径的预分类的数据包批处理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10439930B2 (zh) |
EP (1) | EP3610615B1 (zh) |
CN (1) | CN110959278B (zh) |
WO (1) | WO2018196794A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11362968B2 (en) * | 2017-06-30 | 2022-06-14 | Intel Corporation | Technologies for dynamic batch size management |
CN111343008B (zh) * | 2020-02-13 | 2021-09-21 | 中国科学院信息工程研究所 | 一种用于发现IPv6加速部署状态的综合性测量方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859283A (zh) * | 2005-10-28 | 2006-11-08 | 华为技术有限公司 | 报文调度方法及装置 |
CN1913486A (zh) * | 2005-08-10 | 2007-02-14 | 中兴通讯股份有限公司 | 一种增强协议报文安全的方法和装置 |
US20080273878A1 (en) * | 2006-01-18 | 2008-11-06 | Huawei Technologies Co., Ltd. | Method, system and optical network terminal for mapping a service flow into a service transmission channel |
US20090116504A1 (en) * | 2004-12-08 | 2009-05-07 | Jin-Ho Hahm | Packet processing apparatus for realizing wire-speed, and method thereof |
CN101699817A (zh) * | 2009-11-04 | 2010-04-28 | 杭州华三通信技术有限公司 | 报文上送cpu的控制方法和装置 |
US7961636B1 (en) * | 2004-05-27 | 2011-06-14 | Cisco Technology, Inc. | Vectorized software packet forwarding |
US20130155902A1 (en) * | 2011-12-16 | 2013-06-20 | Cisco Technology, Inc. | System and method for non-disruptive management of servers in a network environment |
CN104954283A (zh) * | 2014-03-31 | 2015-09-30 | 中国电信股份有限公司 | 一种双栈差异化调度方法和装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7856019B2 (en) * | 2008-08-29 | 2010-12-21 | Extreme Networks, Inc. | Convergence of multicast traffic |
US8503468B2 (en) * | 2008-11-05 | 2013-08-06 | Fusion-Io, Inc. | PCI express load sharing network interface controller cluster |
US8984309B2 (en) * | 2008-11-21 | 2015-03-17 | Intel Corporation | Reducing network latency during low power operation |
CN102148746A (zh) | 2010-02-05 | 2011-08-10 | 中兴通讯股份有限公司 | 一种报文分类方法和系统 |
US10103939B2 (en) * | 2010-07-06 | 2018-10-16 | Nicira, Inc. | Network control apparatus and method for populating logical datapath sets |
US9525647B2 (en) * | 2010-07-06 | 2016-12-20 | Nicira, Inc. | Network control apparatus and method for creating and modifying logical switching elements |
US8667126B2 (en) * | 2010-12-03 | 2014-03-04 | International Business Machines Corporation | Dynamic rate heartbeating for inter-node status updating |
EP2768200B8 (en) * | 2013-02-18 | 2019-09-18 | Forcepoint Finland Oy | Receiving data packets |
US9323676B2 (en) * | 2013-03-05 | 2016-04-26 | International Business Machines Corporation | Non-data inclusive coherent (NIC) directory for cache |
US9734100B2 (en) * | 2013-03-21 | 2017-08-15 | Insyde Software Corp. | Network controller sharing between SMM firmware and OS drivers |
US9882832B2 (en) * | 2013-09-10 | 2018-01-30 | Robin Systems, Inc. | Fine-grained quality of service in datacenters through end-host control of traffic flow |
US10037617B2 (en) * | 2015-02-27 | 2018-07-31 | Cisco Technology, Inc. | Enhanced user interface systems including dynamic context selection for cloud-based networks |
US20180285151A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Dynamic load balancing in network interface cards for optimal system level performance |
-
2017
- 2017-04-26 US US15/498,136 patent/US10439930B2/en active Active
-
2018
- 2018-04-26 EP EP18792011.1A patent/EP3610615B1/en active Active
- 2018-04-26 WO PCT/CN2018/084535 patent/WO2018196794A1/en unknown
- 2018-04-26 CN CN201880027838.6A patent/CN110959278B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7961636B1 (en) * | 2004-05-27 | 2011-06-14 | Cisco Technology, Inc. | Vectorized software packet forwarding |
US20090116504A1 (en) * | 2004-12-08 | 2009-05-07 | Jin-Ho Hahm | Packet processing apparatus for realizing wire-speed, and method thereof |
CN1913486A (zh) * | 2005-08-10 | 2007-02-14 | 中兴通讯股份有限公司 | 一种增强协议报文安全的方法和装置 |
CN1859283A (zh) * | 2005-10-28 | 2006-11-08 | 华为技术有限公司 | 报文调度方法及装置 |
US20080273878A1 (en) * | 2006-01-18 | 2008-11-06 | Huawei Technologies Co., Ltd. | Method, system and optical network terminal for mapping a service flow into a service transmission channel |
CN101699817A (zh) * | 2009-11-04 | 2010-04-28 | 杭州华三通信技术有限公司 | 报文上送cpu的控制方法和装置 |
US20130155902A1 (en) * | 2011-12-16 | 2013-06-20 | Cisco Technology, Inc. | System and method for non-disruptive management of servers in a network environment |
CN104954283A (zh) * | 2014-03-31 | 2015-09-30 | 中国电信股份有限公司 | 一种双栈差异化调度方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3610615B1 (en) | 2021-07-21 |
US20180316609A1 (en) | 2018-11-01 |
EP3610615A4 (en) | 2020-03-18 |
US10439930B2 (en) | 2019-10-08 |
CN110959278B (zh) | 2021-11-26 |
EP3610615A1 (en) | 2020-02-19 |
WO2018196794A1 (en) | 2018-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11134132B2 (en) | Accelerated network packet processing | |
US10015090B2 (en) | Packet steering | |
CN110324198B (zh) | 丢包处理方法和丢包处理装置 | |
Woodruff et al. | P4dns: In-network dns | |
US10348603B1 (en) | Adaptive forwarding tables | |
US9819587B1 (en) | Indirect destination determinations to forward tunneled network packets | |
US7948979B2 (en) | Programmable network interface card | |
CN110959278B (zh) | 使用基于图路径的预分类的数据包批处理 | |
WO2022040570A1 (en) | Systems for building data structures with highly scalable algorithms for a distributed lpm implementation | |
US10887234B1 (en) | Programmatic selection of load balancing output amongst forwarding paths | |
US10616116B1 (en) | Network traffic load balancing using rotating hash | |
US9898069B1 (en) | Power reduction methods for variable sized tables | |
US10877911B1 (en) | Pattern generation using a direct memory access engine | |
US20090285207A1 (en) | System and method for routing packets using tags | |
US20100238930A1 (en) | Router and method of forwarding ipv6 packets | |
US9473383B1 (en) | Method and apparatus for routing in transaction management systems | |
US10608937B1 (en) | Determining destination resolution stages for forwarding decisions | |
US11770449B2 (en) | Methods and systems for extending RDMA for dynamic/programmable remote operation registration and invocation | |
US20060274654A1 (en) | Range matching | |
Sapio et al. | Cross-platform estimation of network function performance | |
US10484304B2 (en) | Determining actions to be immediately performed on a network packet with an application specific integrated circuit | |
Baldi et al. | Network Function Modeling and Performance Estimation. | |
US10454831B1 (en) | Load-balanced forwarding of network packets generated by a networking device | |
US9112766B2 (en) | Method and apparatus having improved line rate IP packet communication | |
CN111865713B (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 |