CN102656850A - 用于处理多个数据的方法和用于交换通信分组的交换设备 - Google Patents
用于处理多个数据的方法和用于交换通信分组的交换设备 Download PDFInfo
- Publication number
- CN102656850A CN102656850A CN2010800574260A CN201080057426A CN102656850A CN 102656850 A CN102656850 A CN 102656850A CN 2010800574260 A CN2010800574260 A CN 2010800574260A CN 201080057426 A CN201080057426 A CN 201080057426A CN 102656850 A CN102656850 A CN 102656850A
- Authority
- CN
- China
- Prior art keywords
- packet
- sub
- engine
- header
- hash
- 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
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/552—Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
-
- 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/3081—ATM peripheral units, e.g. policing, insertion or extraction
- H04L49/309—Header conversion, routing tables or routing tags
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明涉及一种在包括至少一个交换设备(1)的分组交换通信网络中处理多个数据分组的方法以及对应的交换设备。交换设备(1)包括两个或更多子引擎(21,…,29)。至少一个交换设备(1)的控制单元(7)接收数据分组,其中,数据分组包括经由通信网络进行交换的通信分组的报头(10)。控制单元(7)对报头(10)施加至少一个过滤运算(50)并因此生成已过滤的信息(100)。控制单元(7)根据哈希函数(300)将已过滤信息(100)映射到哈希标签(30)。控制单元(7)借助于在数据分组的报头(10)中***哈希标签(30)提供已加标签的报头(11)。控制单元(7)根据已加标签的报头(11)将数据分组发送到两个或更多子引擎(21,…,29)中的一个子引擎(24),以便对数据分组作进一步处理。
Description
技术领域
本发明涉及用于在分组交换通信网络中处理多个数据分组的方法以及对应的交换设备。
背景技术
如今,与分组交换通信服务相关联的数据分组和/或通信分组正在数量上迅速增长。因此,分组交换通信网络上的负载正以类似方式增长。此外,关联于由分组交换通信网络支持的实时服务的数据分组的分数也正在增长。例如基于IP的语音服务、视频会议服务、多用户在线游戏服务等的实时服务是时间严格的服务,其要求与该实时服务相关联的数据分组的有序和快速传输及到达(IP=互联网协议)。然而,例如交换机、桥接器、路由器、网关等的交换设备对分组交换通信网络的支持在于,将一同属于源节点的数据分组选路到目的节点。源和目的节点属于分组交换通信网络。由此,交换设备的负载可以超比例增长。作为进一步的问题,基于实时服务的分组的QoS可能降低(QoS=服务质量)。
发明内容
由此,本发明的目的是提供一种用于在分组交换通信网络中处理多个数据分组的改进的方法。本发明的进一步目的是提供一种用于在分组交换通信网络中交换数据分组的改进的交换设备。
本发明的目的通过一种方法来达到,所述方法用于在包括至少一个交换设备的分组交换通信网络中处理多个分组,其中,所述至少一个交换设备的控制单元接收数据分组,其中所述数据分组包括经由所述通信网络被交换的通信分组的报头,所述控制单元对所述报头施加至少一个过滤运算并由此生成已过滤信息,所述控制单元根据哈希函数将所述已过滤信息映射到哈希标签上,所述控制单元借助于在所述数据分组的所述报头中***所述哈希标签而提供已加标签的报头,以及,所述控制单元根据已加标签的报头将所述数据分组发送到所述交换设备的两个或更多子引擎中的一个子引擎以便对所述数据分组进行进一步处理。本发明的目的还通过一种交换设备来达到,所述交换设备用于在分组交换通信网络中交换通信分组,其中,所述交换设备包括两个或更多子引擎以及控制单元,其中,所述控制单元适于:接收数据分组,其中所述数据分组包括经由所述通信网络被交换的通信分组中的一个的报头,对所述报头施加至少一个过滤运算并且由此生成已过滤信息,根据哈希函数将所述已过滤信息映射到哈希标签上,借助于在所述数据分组的所述报头中***所述哈希标签而提供已加标签的报头,以及,根据已加标签的报头将所述数据分组发送到两个或更多子引擎中的一子引擎以便对所述数据分组进行进一步处理。
术语通信分组可以同义地代替术语数据分组而被使用。然而,通常,通信分组可以是通信服务的数据分组,其中,所述通信服务与所述数据分组相关联。
借助于本发明,有可能在不明确或不完全知道(即具有不完全认识)数据分组和/或与数据分组相关联的数据业务流的内容的情况下将数据分组发送到子引擎以便进行进一步处理。与所述数据分组相关联的所述数据业务流可以由包括有序元素的五元组来指定,其中,所述元素是顺序排列的IP源地址、IP目的地址、IP源端口、IP目的端口以及传输协议的类型。特别地,有可能对所述数据分组和/或与所述数据分组相关联的数据业务流的该不完全认识不包括任何地址信息,例如IP源地址或IP目的地址、协议标识符、或者例如源或目的端口的其它与IP地址相关的信息。通过哈希函数所映射到的对应于所述已过滤信息的所述哈希标签——即所述哈希值可以是或类似于伪随机数,所述伪随机数被用作标识符或标签,所述标识符或标签指示用于进行进一步处理的所述子引擎。与同一哈希标签相关联的数据分组可以被发送到同一子引擎进行进一步处理。由此,本发明的实施例提供一种数据分组向用于对该数据分组进行进一步处理的子引擎的简单选路,例如,根据数据分组的报头和/或数据分组的内容来对所述数据分组进行交换和/或选路。因此,本发明的实施例提供基本上分为两个步骤的对所述多个数据分组进行的交换:在第一个步骤中,并且通过简单的方式,即通过数值和计算上快速的方式,在可能不涉及任何评估的情况下,提供哈希标签,其中,所述哈希标签指示哪个子引擎在第二个步骤中实施对所述数据分组的交换。特别地,本发明的实施例在所述第一个步骤期间可以不知道所述数据分组的状态、与所述数据分组相关联的信令和/或协议、与所述数据分组和/或关联于所述数据分组的数据业务流相关联的寻址。
通常,所述两个或更多子引擎可以是具有一个或更多处理核心的中央处理单元,例如并行处理计算机和/或网络计算集群的机架式处理节点。还有可能,所述子引擎是大规模并行处理体系结构的处理单元。例如,大规模并行处理体系结构是分别具有至少100个处理核心和/或处理节点、优选128到1048576个处理核心和/或处理节点的大规模并行处理器、大规模并行计算机和/或并行计算集群。有可能借助于MPLS标签(MPLS=多协议标签交换)的20位来寻址多达1048576个处理核心和/或处理节点,在这样的情况下,所述20位对应于220=1048576个不同地址。子引擎可以连接到包括与所述哈希标签和/或所述数据分组相关联的数据的数据库,其中,所述数据用于对所述数据分组进行进一步处理。由于根据本发明的实施例可以将关联于和/或用同一哈希标签标记的数据分组发送到同一子引擎,所以所述子引擎很少更新与所述哈希标签和/或所述数据分组相关联的数据或被处理的数据分组。由此,所述数据库很少被访问,优选仅被访问一次,以便进行更新,优选提供与所述哈希标签和/或所述数据分组相关联的数据或被处理的数据分组。于是,本发明的实施例提供一种关于所述两个或更多子引擎的数量的增强的可伸缩性。
因此,本发明的实施例可以为以下情况提供一种改进的可伸缩性,在所述情况下,高容量业务即数据业务流必须被处理,可伸缩性考虑阻碍***的增长或新特征的引入,所述新特征例如是数据业务流知晓。
本发明的实施例可以提供,例如大规模并行处理体系结构中的各个处理核心上的复杂度和负载限于由进行哈希和/或交换后可用的处理核心总数给出的分数。特别地,本发明的实施例可以被用于:纯负载分布;负载和复杂度的协议无关分布,其允许各个数据业务流的有状态行为;和/或子引擎的负载、复杂度和函数范围减少。
假如本发明的实施例被用于子引擎的负载、复杂度和函数范围减少,则所述用法可以通过在两个或更多步骤中级联所述实施例来达到:第一个步骤生成哈希分布,其使用与导出各个功能相关的分组报头的信息单元。哈希函数可以是由哈希函数生成的分布,或者可以是专用哈希函数。随后的步骤通过将属于一组函数的流分布到各个子引擎来维护可伸缩性。这样的用法对于用于为网络设备提供未来安全体系结构的施加启用是重要的,因为对可被分派到专用子引擎的数据业务流的特别对待,其仅通过知道“哪儿”——在报头结构里——关键信息是,在“什么”被定义和/或被确定之前。
应当理解,与本发明相关的术语哈希函数可以被用作一般意义上的函数。优选地,所述哈希函数将一个或更多一维或多维值满映射到或映射上分别一组哈希值。所述一个或更多一维或多维值可以也被称为所述哈希函数的输入值。所述哈希函数将给定输入值映射到输出值,所述输出值是哈希值,所述哈希值是所述一组哈希值的元素。术语哈希标签可以被用于所述哈希函数的输出值。此外,所述一组输入值的基数至少与所述一组哈希值或所述一组输出值的基数一样大。
有可能,所述控制单元是所述两个或更多子引擎中的子引擎。
根据本发明的交换设备的实施例优选包括交换机、桥接器、路由器、网关、核心和/或边缘设备等。
进一步的优点通过由相关权利要求指出的本发明的实施例来达到。
根据本发明的一个优选实施例,可以提供用于从所述报头过滤信息的至少一个过滤运算。优选地,所述控制单元提供用于从所述报头过滤信息的所述至少一个过滤运算。所述至少一个过滤运算过滤出标识符。所述标识符指示所述数据分组与关联于所述多个数据分组的一个或更多数据业务流中的数据业务流的关联。所述哈希函数将包括所述标识符的已过滤信息映射到优选为自然数的数字k。有可能所述控制单元提供和/或实施所述用于对已过滤信息进行映射的哈希函数。数字k是自然数区间[m,…,M]的元素。自然数m是最小值。优选地,最小值m=1。M是最大值,其中M<N或M=N。N是所述两个或更多子引擎的数量。特别地,有可能最小数m和最大数M是区间[m,…,M]中数字的最小数和最大数。优选地,区间[m,…,M]的基数大于或等于为根据已加标签报头将关联于所述多个数据分组中不同数据业务流的数据分组发送到所述两个或更多子引擎中的不同子引擎的一个或更多数据业务流的数量。
特别地,有可能两个或更多子引擎被编号、索引和/或加标签,优选从数字1开始并且以数字N结束,其中数字N是所述两个或更多子引擎的数量。因此,包括数字k的哈希标签可以被用作数据分组必须被发送到哪个子引擎进行进一步处理的信息。数字k由用于对已过滤信息进行映射的哈希函数生成。有可能,所述数字、索引和/或标签分别对应于地址,所述地址是MPLS标签或VLAN标签(VLAN=虚拟局域网)。所述哈希标签可以被用作MPLS标签或VLAN标签。
优选地,所述多个数据分组中的数据分组被指派给一个或更多数据业务流。所述控制单元可以根据已加标签报头将关联于所述一个或更多数据业务流中同一数据 业务流的数据分组发送到所述两个或更多子引擎中的同一子引擎,以便对关联于所述同一数据业务流的数据分组进行进一步处理。优选由所述控制单元生成所述至少一个过滤云轩,用于从所述报头过滤信息。所述至少一个过滤运算可以适于过滤出标识符,所述标识符指示所述数据分组与所述一个或更多数据业务流中的数据业务流的关联。
根据本发明的一个优选实施例,所述子引擎从所述控制单元接收数据分组,以便对所述已接收数据分组进行进一步处理。假设所述子引擎的存储器没有保存与所述已接收数据分组和/或所述哈希标签相关联的数据,则所述子引擎访问保存与所述已接收数据分组和/或哈希标签相关联的数据的数据库,以便对所述已接收数据分组进行进一步处理。所述子引擎通过使用所述报头、所述与所述已接收数据分组和/或所述哈希标签相关联的数据、和/或所述已接收数据分组的净荷来处理所述已接收数据分组。
有可能,所述子引擎访问保存与所述已接收数据分组和/或所述哈希标签相关联的数据的数据库,以便获取对于处理已接收数据分组必要的数据。优选地,子引擎仅在第一次或每一次子引擎进程或进一步处理关联于所述哈希标签的已接收数据分组时访问所述数据库。假设所述数据库仅在第一次时被访问,则网络负载和/或所述数据库上的负载可以被减少,而同时交换设备的子引擎的数量的可伸缩性被改进。
根据本发明的一个优选实施例,所述子引擎从所述控制单元接收所述数据分组,以便对所述已接收数据分组进行进一步处理。所述子引擎从已加标签报头提取所述哈希标签。如果所述哈希标签指示所述子引擎被指定用于对所述已接收数据分组进行进一步处理,则所述子引擎处理所述已接收数据分组。优选地,哈希标签通过数值数指示,子引擎被指定用于对所述已接收数据分组进行进一步处理。有可能数值数小于或等于所述两个或更多子引擎的数量。
根据本发明的一个优选实施例,已过滤信息包括从互联网协议源地址、互联网协议目的地址、互联网协议源端口、互联网协议目的端口、传输协议类型和服务类型位的组中选出的一个或更多信息单元。还有可能,所述已过滤信息被安排在五元组中,所述五元组包括互联网协议源地址、互联网协议目的地址、互联网协议源端口、互联网协议目的端口和服务类型位。
优选地,服务类型位包括IP报头中的8位。所述服务类型位可以被划分为一个或更多子字段。这些子字段可以提供优先级位、请求低延迟位、请求高吞吐量位、请求高可靠性位、请求低开销位和/或明确拥塞通知位的组中的一个或更多信息单元。优先级位可以被设置为例程、优先、立即、火速、火速覆写、紧要、网间控制或网络控制。然而,还有可能,所述八位的前六位是DSCP(DSCP=区分服务代码点)。所述服务类型位可以被用于标识所述数据分组可以被指派给的服务类型类别。
根据本发明的一个优选实施例,所述哈希函数包括模p函数。数字p是p<N或者p=N的数字,并且其中N是两个或更多子引擎的数量。数字p可以是素数。还有可能,数字p不是素数。优选地,数字p是紧挨的小于N的素数。如果使用数字p,其中数字p是紧挨的小于N的素数,则处理负载可以最优地在两个或更多子引擎之间被分布。有可能,如果p<N,则优选为N-p个的一个或更多子引擎不进一步处理数据分组。优选地,假设其中p>N,则优选为p-N个的一个或更多子引擎进一步处理与两个或更多哈希标签相关联的数据分组。
还有可能,所述哈希函数是包括多项式除法的函数。所述哈希函数适于所述已过滤信息的尺寸,特别是其位长。所述哈希函数可以是CRC函数(CRC=循环冗余检查)。优选地,CRC函数的类型取决于已过滤信息的尺寸,特别是其位长。所述CRC函数可以通过软件手段或通过硬件手段来实现。特别地,所述CRC函数优选用于,用快速硬件解决方案对所述过滤运算的大过滤结果计算所述哈希标签。
此外,有可能模p函数优选是数学函数,其返回整数用数字p除的整数除法的余数作为结果。模p函数可以将任意整数j映射到区间[0,…,p-1]中的数字k。在该情况下,模p函数可以用mod(j,p)来表示,其中,所述结果或返回值由mod(j,p)=k给出,并且区间[0,…,p-1]的基数等于数字p。关于此,通过h(j)=1+mod(j,p)可以给出合适的哈希函数h,因为所述两个或更多子引擎中的第一个子引擎可以被编号以数字1。优选地,数字p小于或等于数字N,因为否则的话模p函数可以将整数j’映射到数字k’,其中k’大于所述两个或更多子引擎的数量,以及因此数字k’将不适于作为哈希标签,哈希标签直接指示用于对所述数据分组进行进一步处理的子引擎。
根据本发明的一个优选实施例,哈希函数适于将已过滤信息映射到数字k。所述数字k是自然数区间[m,…,M]中的元素。自然数m是最小值。优选地,最小值m=1。M是最大值,M<N或者M=N,其中N是两个或更多子引擎的数量。特别地,有可能最小数m和最大数M分别是区间[m,…,M]中数字的最小数和最大数。
根据本发明的一个优选实施例,以这样的方式来安排所述哈希函数,使得所述哈希函数的全部值被平均地分布在所述哈希函数的最小值和最大值之间。因此,有可能对所述两个或更多子引擎的使用进行负载均衡。
根据本发明的一个优选实施例,所述控制单元适于施加多于一个过滤运算以进行对所述报头的连续施加,以便由此生成所述已过滤信息。所述对多于一个优选简单的过滤运算的连续施加可以提供,用于生成所述已过滤运算的所述控制单元的改进的执行时间。所述对多于一个过滤运算的连续施加可以用单一的、优选复杂的过滤运算来代替。术语简单意味着,关于此,所述过滤运算可使用少量软件和/或硬件努力来实现,而术语复杂意味着,关于此,所述过滤运算可使用大量软件和/或硬件努力来实现。因此,有可能,所述对多于一个简单过滤运算的连续施加提供比使用一个复杂过滤运算少的用于生成所述已过滤运算的所述控制单元的执行时间,其中,所述一个复杂过滤运算等价于所述多于一个简单过滤运算。
特别地,有可能通过测量函数的各自执行时间来测量或确定函数的软件和/或硬件努力的量,其中,所述函数例如是所述哈希函数、所述过滤运算、标签交换和/或例如对所述数据分组进行交换的交换运算。函数的大量软件和/或硬件努力对应于该函数的各个长执行时间,所述长执行时间大于另一函数的执行时间。在此情况下,另一函数的软件和/或硬件努力的量对应于该另一函数的相比于所述函数的各个较短执行时间,以及,所述另一函数的软件和/或硬件努力的量是软件和/或硬件努力的减少的量。例如,假设已提前确定函数的软件和/或硬件努力的量,其中,所述函数例如是所述哈希函数、所述过滤运算、标签交换和/或例如对所述数据分组进行交换的交换运算,则有可能最优化和/或改进所述交换设备的可伸缩性和/或数据分组吞吐量或带宽。
优选地,为生成所述已过滤信息的连续施加于所述报头的多于一个过滤运算由所述控制单元来施加,则所述控制单元适于生成所述已过滤信息的一个或更多单元。有可能,针对所述多于一个过滤运算中的每个,生成所述已过滤信息中的各个单元。所述控制单元适于对所述已过滤信息的单元中的一个或更多或者对所述已过滤信息的单元中的每个施加一个或更多中间哈希函数。因此,这些一个或更多中间哈希函数的结果可以也被认为是所述生成的已过滤信息或作为所述生成的已过滤信息的部分。然后对所述生成的已过滤信息和/或所述生成的已过滤信息的部分施加所述哈希函数。所述一个或更多中间哈希函数可以类似于所述哈希函数。优选地,所述一个或更多中间哈希函数是模p函数,和/或可以具有与所述哈希函数相同或类似的特征。之前已描述了所述哈希函数的特征。所述一个或更多中间哈希函数可以还被理解为所述多于一个过滤运算和/或所述过滤运算的功能。还有可能,所述一个或更多中间哈希函数是CRC函数。
优选地,假设子引擎的数量将被哈希方法准确匹配,其中,所述哈希方法由所述哈希函数来实现,以及所述子引擎中的优选为全部的两个或更多之间的负载均衡将以使其可以被外部控制的方式来实施,优选在所述哈希标签的计算与所述子引擎的寻址之间***哈希表。取决于本发明的实施例,所述哈希标签可以是所述表的进入或退出数据。如果所述哈希函数的结果被用作标签,并且因此是所述表的例如搜索键或索引的进入数据,则可以直接通过用指派给一个或更多标签的子引擎来切换表而实现所述哈希表。在其中关联于数据分组的不同数据业务流的数量T大于子引擎的数量N,并且进一步的模p函数被用作哈希函数,其中T>p>N或者T>>p>>N的情况下,所述实施例是优选的。
根据本发明的一个优选实施例,所述交换设备包括标签交换机。所述标签交换机根据已加标签报头将所述数据分组交换到所述子引擎。优选地,所述标签交换机是所述交换设备的所述控制单元和/或进一步实体或设备的功能。所述标签交换机的功能可以部分上或全部通过软件手段和/或硬件手段来实现。
根据本发明的一个优选实施例,所述交换设备从已加标签报头中移除所述报头标签。优选地,标签交换机从已加标签报头中移除所述报头标签。因此,在根据已加标签报头将所述数据分组交换到所述子引擎之前,提供原始报头。此外,可以不存在任何这样的需求:所述两个或更多子引擎适于进一步处理包括已加标签报头而非所述报头的数据分组。
根据本发明的一个优选实施例,所述控制单元和/或所述两个或更多子引擎中的每个包括至少一个中央处理单元。有可能,所述控制单元和/或所述两个或更多子引擎中的子引擎包括一个或更多进一步的设备,所述设备是存储器组、缓存器、通信装置和输入/输出单元。
根据本发明的一个优选实施例,所述控制单元通过硬件手段提供所述哈希函数和/或所述至少一个过滤运算。
优选地,通过软件手段和/或硬件手段来提供以下组中的一个或更多实体:控制单元、哈希函数、至少一个过滤运算、所述两个或更多子引擎中的一个或更多子引擎以及标签交换机。所述标签交换机根据已加标签报头将所述数据分组交换到所述子引擎。
根据本发明的一个优选实施例,所述控制单元和/或所述子引擎中的一个或更多借助于通信总线来互连。例如,所述控制单元和/或所述两个或更多子引擎中的一个或更多子引擎借助于以下组中的一个或更多技术来互连:以太网、无限带(InfiniBand)、无线网络技术和基于光纤的网络技术。优选地,将所述控制单元和/或所述两个或更多子引擎中的一个或更多子引擎互连的通信总线是串行总线或并行总线。所述交换设备可以包括通信装置。有可能,所述通信装置是或包括一个或更多优选是高速接口的接口。所述通信总线可以提供高带宽,所述高带宽可以是至少10G比特/秒。特别地,有可能所述一个或更多接口中的每个提供高带宽,所述高带宽可以是至少10G比特/秒。优选地,所述通信总线可以提供至少1或10T比特/秒,以便为传送借助于包括所述一个或更多接口的通信装置处理的数据分组的聚合业务提供足够大的带宽。
优选地,所述两个或更多子引擎由特别是大规模并行处理单元的并行处理单元提供和/或被其包括。
有可能,控制单元、通信装置、数据库和包括所述两个或更多子引擎的并行处理单元的组中的至少两个实体经由第一通信总线彼此互连。优选地,所述通信装置包括至少一个接口。此外,第二通信总线可以将所述两个或更多子引擎中的至少两个或每个彼此互连。有可能,所述第一通信总线与所述第二通信总线互连。如上面已描述的,可以用于实现所述第一通信总线和/或所述第二通信总线的优选技术是以下组中的一个或更多技术:以太网、无限带(InfiniBand)、无线网络技术以及基于光纤的网络技术。
优选地,将所述哈希标签***所述报头中作为MPLS标签和/或VLAN标签。还有可能,将所述哈希标签***所述数据分组的报头的MPLS标签和/或VLAN标签中。
所述控制单元可以还提供子引擎的功能。因此,有可能所述控制单元可以充当用于对所述数据分组进行进一步处理的子引擎。
将本发明的主要观点概括如下:根据本发明的实施例也适用于使用大规模并行体系结构——如上面所述的——优选包括数万到数十万个用于交换和/或选路的子引擎。假设使用所述处理多个数据分组的方法,则可以改进伸缩。仅如果不仅负载而还有复杂度在各个核心——即所述子引擎之间共享的情况下,所述方法伸缩为更好。将任务——即处理转移到根据流标签——即所述数据分组流的标签实施的单元确实仅次优化地解决问题,因为所有复杂度被转移到所述加标签设备。然而,根据本发明的实施例通过基本上两步骤的方法解决该困境:在第一个步骤中,一个或更多报头或报头单元的相关位被过滤出。从该信息生成对应于总负载将被分布到的核心或子引擎的数量的哈希——即哈希标签。所述哈希标签被用作标签,并被***到所述数据分组中。在第二个步骤中,将所述数据分组交换到分别通过所述哈希标签寻址到的核心或子引擎,以便进行进一步处理,所述进一步处理例如是最终的选路和/或交换决策。
本发明的实施例提供改进的可伸缩性。哈希或所述哈希函数分别提供“傻瓜式”算法运算,所述算法运算与已过滤出的位无关,并且生成类似于伪随机数的输出。如果所述哈希算法进行运算所基于的位选取得好,例如通过避免TTL(TTL=生存期)或顺序号字段,并且仅使用这样的信息,所述信息是对于每个特别地是数据业务流的流和/或连接静态的,则属于流和/或连接的所有数据分组可分别被传送到同一核心即子引擎。哈希基于特别是已过滤报头信息的已过滤信息进行运算,并且因此考虑仅“要看哪里”,并且不考虑“所述数据分组内的信息是什么”。因此,通过所述哈希标签寻址到的核心即子引擎可以处理全部特别是数据业务流的流的仅有限子集。通过对每级联或过滤运算使用不同过滤规则的级联可以在不知道所分派协议的详情的情况下,导致协议或服务特定的数据分组向各个核心即子引擎的分布。所述核心或子引擎作为回报然后可以聚焦于专门任务。如果VLAN标签被用作所述哈希标签的***位置,则扇出可以多达1:4096核心或子引擎——因为12位可被用于***所述哈希标签,该扇出对应于可用于计算的大规模并行处理器的规模。MPLS标签将提供1:1048576核心或子引擎,因为20位可以被用于***哈希标签。
附图说明
通过结合附图阅读以下对当前优选示例性实施例的详细描述,本发明的这些以及进一步的特征和优点将被更好地认识:
图1示出了交换设备的一个优选实施例的图。
图2示出了处理多个数据分组的方法的一个优选实施例的流程图。
具体实施方式
图1示出了交换设备1的一个优选实施例的图。交换设备1包括如下实体:并行处理单元2、通信装置3、第一通信总线5、数据库6和控制单元7。这些实体可以在单一机箱(未示出)内提供,或者可以由一个或更多子设备来提供,所述子设备包括这些子设备中的每一个或更多(未示出)。优选地,第一通信总线5是提供例如至少10G比特/秒的高带宽的串行总线或并行总线。交换设备1是分组交换通信网络(未示出)的实体。分组交换通信网络可以是核心通信网络、边缘和/或接入通信网络、电信网络、基于电线的通信网络、无线通信网络和/或电力线通信网络。
有可能,交换设备1包括进一步的通信总线,从而第一通信总线5和该进一步的通信总线提供两个通信通路,其中,这两个通信总线中的一个在并行处理单元2的N个子引擎21,…,29之间传输数据分组,以及其中,这两个通信总线中的另一个传输***控制数据和/或可以由数据库6提供的关联于数据分组的数据。因此,这两个通信总线中的另一个可以充当控制总线,其中,第一通信总线5被指定用于对数据分组进行交换和/或处理。
并行处理单元2包括N个子引擎21,…,29。优选地,N至少是256。N个子引擎21,…,29被顺序地标记以数字1,…,N。N个子引擎21,…,29通过第二通信总线51互连。优选地,第二通信总线51是提供例如至少10G比特/秒的高带宽的串行总线或并行总线。N个子引擎21,…,29中的每个子引擎提供至少中央处理单元、存储器、缓存器和用于经由第二通信总线51并且优选经由第一通信总线5进行通信的通信装置。此外,N个子引擎21,…,29中的每个子引擎适于实施数据分组的交换。特别地,N个子引擎21,…,29中的每个子引擎可以适于实施对数据分组的深度分组检测和/或评估并操作数据分组的报头。优选地,并行处理单元2是并行处理器,其中,该并行处理器的一个或更多处理核心提供所述N个子引擎21,…,29。
通信装置3包括至少一个接口31,...,35。例如,该通信装置包括48个接口,其中,所述接口可以充当端口。通信装置3提供至少用于根据至少OSI第2或3层(OSI=开放***互连参考模型)进行通信的功能以及各个协议和协议栈。接口31,…,35的每个提供例如至少1G比特/秒的高带宽。
第一通信总线5将并行处理单元2、通信装置3、数据库6或控制单元7彼此互连。并行处理单元2借助于第二通信总线51与第一通信总线5互连。
数据库6保存与多个数据分组的交换相关联的数据。优选地,数据库6包括中央处理单元、例如一个或更多硬盘或固态硬盘的存储装置以及用于经由第一通信总线5进行通信的通信装置。由数据库6保存的数据可以包括额外数据,额外数据提供例如实施服务的数据业务流的状态信息或通信会话信息,额外信息可用于交换所述多个数据分组。数据业务流与所述多个数据分组中的数据分组相关联。例如,数据业务流与基于IP的语音会话、IP会议会话、IP游戏会话和/或标准IP会话相关联,其中,所述标准IP会话例如是RTP会话、SIP会话、FTP会话、SSH会话、HTTP会话和/或HTTPS会话、SMTP等(RTP=实时传输协议,SIP=会话发起协议,FTP=文件传输协议,SSH=安全壳,HTTP=超文本传输协议,HTTPS=HTTP安全,SMTP=简单邮件传输协议)。
控制单元7包括至少一个中央处理单元、存储器、缓存器以及用于经由第一通信总线5进行通信的通信装置。控制单元7适于经由其通信装置3接收包括报头的数据分组。控制单元7适于对所述报头施加至少一个过滤运算。因此有可能生成已过滤信息。控制单元7还适于将已过滤信息映射到哈希标签。根据哈希函数执行所述映射。控制单元7适于提供已加标签的报头。已加标签的报头可以是原始报头,其中,哈希标签已由控制单元7***该报头中,并且因此形成已加标签的报头。例如,假设数据分组的报头包括MPLS标签和/或VLAN标签,则哈希标签可以被分别***该MPLS标签和/或VLAN标签中。在所述情况下,报头和已加标签的报头具有相同的位长。然而,还有可能,哈希标签被***报头是通过将其添加到该报头。在此情况下,已加标签报头具有至少与报头的位长和哈希标签的位长的和一样长的位长。在任意情况下,控制单元7适于将哈希标签***数据分组的报头中。此外,控制单元7适于根据已加标签报头将数据分组发送到N个子引擎21,…,29中的一个子引擎24,以便对数据分组进行进一步处理。
有可能,哈希标签被***以太网报头与IP报头之间、IP隧道报头与IP报头之间或IP报头之上的MPLS标签中。
图2示出了在分组交换通信***中处理多个数据分组的、本发明优选实施例的流程图。以下借助于图2对处理多个数据分组的本发明的优选实施例描述如下:
控制单元7提供用于从数据分组的报头10中过滤信息的过滤运算50。过滤运算50可以被划分为一个或更多也是过滤运算的子过滤运算,所述子过滤运算用于连续施加于报头10,以便因此生成已过滤信息100。优选地,数据分组的报头10包括一个或更多用于存储与数据分组相关联的一个或更多信息元素的位。过滤运算50过滤器可以从报头10中选出位和/或20个位的序列,并且因此生成报头分段10a。过滤运算50基于报头分段10a生成已过滤信息100。已过滤信息100被安排在五元组中,所述五元组包括IP源地址、IP目的地址、IP源端口、IP目的端口和传输协议类型。因此,已过滤信息100可以被用于将数据分组与各个数据业务流相关联。在以下,已过滤信息100可以用j表示。过滤运算50可以还适于过滤出标识符,所述标识符指示数据分组与关联于多个数据分组的一个或更多数据业务流中的一个数据业务流的关联。所述五元组可以被解释为这样的标识符。
还有可能,将从以下组中选出的一个或更多信息元素用作已过滤信息:DSCP、IP报头的协议字段、TCP端口、UDP端口、以太网类型、MPLS标签、VLAN标签、数据分组的净荷中的数据(TCP=传输控制协议,UDP=用户数据报协议)。如果在分组的净荷区域实施了哈希和标签交换,则优选地,一个或更多子引擎测试和/或检查数据分组以防止特别是病毒签名的计算机恶意软件签名或例如拒绝服务攻击的计算机犯罪的特征。
控制单元7提供哈希函数300,哈希函数300用于将包括标识符的已过滤信息100映射到使k为自然数区间[m,…,M]中的元素的数字k。自然数m是区间[m,…,M]的最小值,以及自然数M是区间[m,…,M]的最大值。例如,交换设备包括N=256个子引擎21,…,29。以下假设,由于某种原因,包括p=256的模p函数的哈希函数是不期望的,除非p是素数。然而,一般而言,p=256的模p函数将是优选的哈希函数。
存在两个最靠近的素数p1=251和p2=257。素数p1=251是紧挨的小于N=256的素数,N=256即子引擎21,…,29的数量。
在控制单元7不能充当子引擎的情况下,则p1=251可以被用于定义哈希函数300。哈希函数300是模p函数h1(j)=1+mod(j,p1)=k。于是,m=1且M=251。在此情况下,区间[m,…,M]的基数等于p1。
在控制单元7能够充当子引擎的另一情况下,则p2=257可以被用于定义哈希函数300。哈希函数300是模p函数h2(j)=mod(j,p2)=k。因此,实际上,N+1个子引擎可用。素数p2是紧挨的小于N+1的素数,其在该情况下根据定义与N+1相同。于是,m=0且M=256。在其中h2(j)=0即k=0的情况下,控制单元7实施对数据分组的进一步处理。在此情况下,区间[m,…,M]的基数等于p2。
在所述两种情况下,哈希函数300的全部值k被平均分布在哈希函数300的最小值m与最大值M之间,因为哈希函数在所述两种情况下都实际上是模p函数。哈希函数300的值k的该平均分布可以在对数据分组进行进一步处理期间提供对子引擎21,…,29的负载进行的负载均衡。
还有可能,在控制单元7不能充当子引擎的情况下,则p2=257可以被用于定义哈希函数300。然而,在此情况下,模p函数h3(j)=1+mod(j,p2)=k将j映射到区间[1,…,257]中的k。为使与比子引擎21,…,29的数量N大的哈希标签相关联的数据分组被处理,这些数据分组必须被定向到子引擎21,…,29中的一个或更多进行进一步处理,例如具有号码1的子引擎。特别地,有可能将多于一个哈希标签关联于一个子引擎。因此,可以保证所有数据分组被处理,然而可能不提供哈希函数300的值k的平均分布以便在对数据分组进行进一步处理期间对子引擎21,…,29的负载进行负载均衡。
此外,可替换地,并行处理单元2在多处理器体系结构内提供一个或更多核心。并行处理单元2可以作为虚拟子引擎提供两个或更多子引擎21,…,29,例如N=256个虚拟子引擎。使用虚拟子引擎使能使得虚拟子引擎的数量可以准确适于哈希函数300,其中哈希函数300优选是模p函数。对于确定哈希函数300的素数p的最优化选择可以是紧挨可用处理核心数量的下一个素数p’。然而,有可能,紧挨可用处理核心数量的下一个素数p’大于可用处理核心的数量。在此情况下,使k’在区间[0,…,p’-1]中的哈希函数h’(j,p’)=mod(j,p’)=k’可以将j映射到k’,其中,k’不能关联于处理核心。借助于子引擎的虚拟化,有可能,可用处理核心提供允许并行处理单元2的最优化使用的准确p’个虚拟子引擎21,…,29。
在以上示例中,数字p1和或数字p2可以用不是素数的自然数代替。
优选地,假设多于一个用于连续应用于报头以便生成已过滤信息100的过滤运算被控制单元7应用,则控制单元7适于生成已过滤信息100的一个或更多元素,例如位和/或20位的序列。有可能,针对所述多于一个过滤运算的每个,生成已过滤信息的各个元素。控制单元7适于将一个或更多中间哈希函数应用于已过滤信息的元素中的一个或更多,或应用于已过滤信息的元素中的每个。
因此,这些一个或更多中间哈希函数的结果可以被看作生成的已过滤信息,或看作生成的已过滤信息100的部分。然后对生成的已过滤信息100和/或生成的已过滤信息的部分应用哈希函数300。有可能,哈希函数300包括多于一个模p计算,例如模p求和和/或模p乘法,其中,p优选是素数,因为否则不能保证哈希函数300的优选为p个的全部值向两个或更多子引擎21,…,29的平均分布和/或完全映射。哈希函数300可以明确或暗含地包括多于一个模p计算。术语明确是指,关于此,该多于一个模p计算仅由哈希函数300提供,而术语暗含是指,关于此,该多于一个模p计算由哈希函数300和/或由一个或更多中间哈希函数来提供。
还有可能,多于一个处理核心被用于借助于虚拟化提供子引擎,其中所述子引擎是虚拟子引擎。因此,虚拟化可以允许使用任意选择的哈希函数。此外,有可能任意选择两个或更多子引擎的数量,其中,子引擎是虚拟子引擎。
此外,区间[m,…,M]的基数可以大于或等于一个或更多数据业务流的数量,其中,一个或更多数据业务流用于根据已加标签报头11将多个数据分组中关联于不同数据业务流的数据分组发送到N=256个子引擎21,…,29中的不同子引擎。因此,有可能暗含地将关联于同一数据业务流的数据分组指派给N=256个子引擎21,…,29中的同一子引擎。
现在详细转到所述方法:所述方法被进一步示例性地实施如下:
控制单元7接收数据分组,其中,所述数据分组包括经由通信网络被交换的通信分组的报头10。控制单元7如前面所描述的对报头10应用过滤运算50,并且因此生成已过滤信息100。控制单元7根据哈希函数300将已过滤信息100映射到哈希标签30。特别地,有可能控制单元7通过硬件手段提供哈希函数300和/或至少一个过滤运算50。控制单元7借助于在数据分组的报头10中***哈希标签30来提供已加标签的报头11。控制单元7借助于标签交换机40根据已加标签的报头11将数据分组发送到N=256个子引擎21,…,29中的一个子引擎24以便对数据分组进行进一步处理。标签交换机40根据已加标签的报头11将数据分组交换到子引擎24。交换设备1包括标签交换机40。标签交换机40在根据已加标签报头11将数据分组交换到子引擎24之前从已加标签报头11移除报头标签30,因此提供原始报头10。子引擎24从控制单元7接收数据分组,以便对接收的数据分组进行进一步处理。如果子引擎24的存储器中未保存关联于接收的数据分组和/或哈希标签30的数据,则子引擎24访问数据库6以便对接收的数据分组进行进一步处理,其中,数据库6保存了关联于接收的数据分组和/或哈希标签30的数据。子引擎24从已加标签报头11中提取哈希标签30。子引擎24通过使用报头10、关联于接收的数据分组和/或哈希标签30的数据和/或接收的数据分组的净荷来对接收的数据分组进行处理。可替换地,有可能标签交换机不从已加标签报头中移除报头标签30。在这样的情况下,优选为哈希标签30的数值数k允许:子引擎24可以检查该子引擎24是否被指定用于对接收的数据分组进行进一步处理,并且因此可以在肯定情况下对接收的数据分组进行进一步处理。
Claims (15)
1.一种在包括至少一个交换设备(1)的分组交换通信网络中处理多个数据分组的方法,其中,所述方法包括步骤:
由所述至少一个交换设备(1)的控制单元(7)接收数据分组,所述数据分组包括经由所述通信网络进行交换的通信分组的报头(10),
由所述控制单元(7)对所述报头(10)施加至少一个过滤运算(50),并且因此生成已过滤信息(100),
由所述控制单元(7)根据哈希函数(300)将已过滤信息(100)映射到哈希标签(30)上,
由所述控制单元(7)借助于在所述数据分组的所述报头(10)中***所述哈希标签(30)而提供已加标签的报头(11),以及
由所述控制单元(7)根据已加标签的报头(11)将所述数据分组发送到所述交换设备(1)的两个或更多子引擎(21,…,29)中的一子引擎(24),以便对所述数据分组进行进一步处理。
2.根据权利要求1的方法,
其中,所述至少一个过滤运算(50)过滤出标识符,所述标识符指示所述数据分组与关联于所述多个数据分组的一个或更多数据业务流中的一数据业务流的关联,以及,
所述哈希函数(300)将包括所述标识符的已过滤信息(100)映射到数字k,其中,k是自然数区间[m,…,M]中的元素,m是最小值,优选地m=1的,M是最大值,M<N或M=N,N是所述两个或更多子引擎(21,…,29)的数量,并且优选地,所述区间[m,…,M]的基数大于或等于一个或更多数据业务流的数量,以便根据已加标签报头(11)将所述多个数据分组中关联于不同数据业务流的数据分组发送到所述两个或更多子引擎(21,…,29)中的不同子引擎。
3.根据权利要求1的方法,
其中,所述方法包括步骤:
由所述子引擎(24)从所述控制单元(7)接收所述数据分组,以便对所述接收的数据分组进行进一步处理,
如果所述子引擎(24)的存储器中未保存关联于所述接收的数据分组和/或所述哈希标签(30)的数据,则由所述子引擎(24)访问数据库(60)以便对所述接收的数据分组进行进一步处理,其中,数据库(60)保存了关联于所述接收的数据分组和/或所述哈希标签(30)的数据,以及
通过使用所述报头(10)、所述关联于所述接收的数据和/或所述哈希标签(30)的数据、和/或所述接收的数据分组的净荷,由所述子引擎(24)处理接收的数据分组。
4.根据权利要求1的方法,
其中,所述方法包括步骤:
由所述子引擎(24)从所述控制单元(7)接收所述数据分组,以便对接收的数据分组进行进一步处理,
由所述子引擎(24)从已加标签的报头(11)中提取所述哈希标签(30),以及
如果所述哈希标签(30)优选通过数值数指示所述子引擎(24)被指定用于对接收的数据分组进行进一步处理,则由所述子引擎(24)处理接收的数据分组。
5.一种用于在分组交换通信网络中交换通信分组的交换设备(1),其中,所述交换设备(1)包括两个或更多子引擎(21,…,29)和控制单元(7),以及其中,所述控制单元(7)适于:接收数据分组,其中,所述数据分组包括经由所述通信网络进行交换的通信分组中的一个的报头(10);对所述报头(10)施加至少一个过滤运算(50)并因此生成已过滤信息(100);根据哈希函数(300)将已过滤信息映射到哈希标签(30)上;借助于在所述数据分组的报头(10)中***所述哈希标签(30)而提供已加标签的报头(11);以及,根据已加标签的报头(11)将所述数据分组发送到所述两个或更多子引擎(21,…,29)中的一子引擎(24),以便对所述数据分组进行进一步处理。
6.根据权利要求5的交换设备(1),
其中,所述已过滤信息(100)包括从以下组中选出的一个或更多信息元素:互联网协议源地址、互联网协议目的地址、互联网协议源端口、互联网协议目的端口、传输协议类型和服务类型位,
或者其中,所述已过滤信息(100)被安排在五元组中,所述五元组包括:互联网协议源地址、互联网协议目的地址、互联网协议源端口、互联网协议目的端口和服务类型位。
7.根据权利要求5的交换设备(1),
其中,所述哈希函数(300)包括模p函数,p<N或p=N,N是所述两个或更多子引擎(21,…,29)的数量,优选p是素数,和/或p是紧挨的小于N的素数。
8.根据权利要求5的交换设备(1),
其中,所述哈希函数(300)适于将所述已过滤信息(100)映射到数字k,其中k是自然数区间[m,…,M]中的元素,m是最小值,优选地m=1,M是最大值,M<N或M=N,以及,N是所述两个或更多子引擎(21,…,29)的数量。
9.根据权利要求5的交换设备(1),
其中,以所述哈希函数(300)的全部值平均地分布在所述哈希哈希函数(300)的最小值与最大值之间的方式来安排所述哈希函数(300)。
10.根据权利要求5的交换设备(1),
其中,所述控制单元(7)适于施加多于一个用于连续施加于所述报头(10)的过滤运算(50),以便因此生成所述已过滤信息(100)。
11.根据权利要求5的交换设备(1),
其中,所述交换设备(1)包括标签交换机(40),所述标签交换机(40)根据已加标签的报头(11)将所述数据分组交换到所述子引擎(24)。
12.根据权利要求5的交换设备,
其中,所述交换设备(1)优选借助于标签交换机(40),在根据已加标签报头(11)将所述数据分组交换到所述子引擎(24)之前,从已加标 签报头(11)移除所述报头标签(30),并且由此提供原始报头(10)。
13.根据权利要求5的交换设备(1),
其中,所述控制单元(7)和/或所述两个或更多子引擎(21,…,29)的每个包括至少一个中央处理单元。
14.根据权利要求5的交换设备(1),
其中,所述控制单元(7)借助于硬件提供所述哈希函数(300)和/或所述至少一个过滤运算(50)。
15.根据权利要求5的交换设备(1),
其中,所述控制单元(7)和/或所述子引擎(21,…,29)中的一个或更多借助于通信总线(5,51)互连,以及,所述子引擎(21,…,29)中的每个适于,如果所述哈希标签(10)指示所述子引擎(24)被指定用于对所述接收的数据分组进行进一步处理,则处理经由所述通信总线(5,51)接收的数据分组。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP09290960.5A EP2337274B1 (en) | 2009-12-17 | 2009-12-17 | Method for processing a plurality of data and switching device for switching communication packets |
EP09290960.5 | 2009-12-17 | ||
PCT/EP2010/067753 WO2011072978A1 (en) | 2009-12-17 | 2010-11-18 | Method for processing a plurality of data and switching device for switching communication packets |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102656850A true CN102656850A (zh) | 2012-09-05 |
CN102656850B CN102656850B (zh) | 2016-01-20 |
Family
ID=41809221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080057426.0A Active CN102656850B (zh) | 2009-12-17 | 2010-11-18 | 用于处理多个数据的方法和用于交换通信分组的交换设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9282064B2 (zh) |
EP (1) | EP2337274B1 (zh) |
JP (1) | JP5544429B2 (zh) |
KR (1) | KR101371858B1 (zh) |
CN (1) | CN102656850B (zh) |
WO (1) | WO2011072978A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187330A (zh) * | 2014-06-19 | 2015-12-23 | 凯为公司 | 使用唯一分组标识符来标识分组的结构的方法及其装置 |
US10616380B2 (en) | 2014-06-19 | 2020-04-07 | Cavium, Llc | Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof |
US10785169B2 (en) | 2013-12-30 | 2020-09-22 | Marvell Asia Pte, Ltd. | Protocol independent programmable switch (PIPS) for software defined data center networks |
US11050859B2 (en) | 2014-06-19 | 2021-06-29 | Marvell Asia Pte, Ltd. | Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9185073B2 (en) * | 2011-10-06 | 2015-11-10 | Qualcomm Incorporated | Systems and methods for data packet processing |
EP2592784B1 (en) * | 2011-11-14 | 2013-09-18 | Alcatel Lucent | Apparatus, method and computer program for routing data packets |
US8891364B2 (en) * | 2012-06-15 | 2014-11-18 | Citrix Systems, Inc. | Systems and methods for distributing traffic across cluster nodes |
US9264357B2 (en) * | 2013-04-30 | 2016-02-16 | Xpliant, Inc. | Apparatus and method for table search with centralized memory pool in a network switch |
US9571380B2 (en) * | 2013-09-10 | 2017-02-14 | Marvell World Trade Ltd. | Multi-stage interconnect network in a parallel processing network device |
US10193806B2 (en) * | 2014-03-31 | 2019-01-29 | Nicira, Inc. | Performing a finishing operation to improve the quality of a resulting hash |
CN106534394B (zh) * | 2015-09-15 | 2020-01-07 | 瞻博网络公司 | 用于管理端口的设备、***和方法 |
CN105187436B (zh) * | 2015-09-25 | 2019-03-08 | 中国航天科工集团第二研究院七〇六所 | 一种基于散列表的包过滤主机网络控制方法 |
US10659571B1 (en) * | 2016-12-27 | 2020-05-19 | Amazon Technologies, Inc. | Network device with integrated packet generators or packet checkers |
US10666775B1 (en) | 2016-12-27 | 2020-05-26 | Amazon Technologies, Inc. | Integrated packet generator and checker |
US10587491B1 (en) | 2016-12-27 | 2020-03-10 | Amazon Technologies, Inc. | Testing computer networks in real time |
US11076025B1 (en) | 2016-12-27 | 2021-07-27 | Amazon Technologies, Inc. | Generating network packet centric signatures |
KR102050828B1 (ko) * | 2018-10-26 | 2020-01-08 | 한국과학기술원 | 병렬 연산을 이용한 오픈 가상 스위치의 가속화 방법 및 이를 이용한 오픈 가상 스위치 |
US10805164B2 (en) * | 2018-12-14 | 2020-10-13 | At&T Intellectual Property I, L.P. | Controlling parallel data processing for service function chains |
US20220400079A1 (en) * | 2019-11-13 | 2022-12-15 | Nippon Telegraph And Telephone Corporation | Sort device, sort method, and sort program |
KR102229554B1 (ko) * | 2019-12-20 | 2021-03-18 | 한국과학기술원 | 해시 키 생성 방법 및 그 장치 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030081600A1 (en) * | 2001-10-30 | 2003-05-01 | Blaker David M. | Methods, systems and computer program products for packet ordering for parallel packet transform processing |
CN1497911A (zh) * | 2002-10-11 | 2004-05-19 | ������������ʽ���� | 分组通信装置 |
CN1533102A (zh) * | 2003-03-19 | 2004-09-29 | ������������ʽ���� | 数据分组通信设备 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5473607A (en) * | 1993-08-09 | 1995-12-05 | Grand Junction Networks, Inc. | Packet filtering for data networks |
US5708659A (en) * | 1993-10-20 | 1998-01-13 | Lsi Logic Corporation | Method for hashing in a packet network switching system |
US6567377B1 (en) * | 1999-03-18 | 2003-05-20 | 3Com Corporation | High performance load balancing of outbound internet protocol traffic over multiple network interface cards |
US7463648B1 (en) * | 1999-08-23 | 2008-12-09 | Sun Microsystems, Inc. | Approach for allocating resources to an apparatus based on optional resource requirements |
US8300534B2 (en) * | 2000-05-24 | 2012-10-30 | Alcatel Lucent | Programmable packet processor with flow resolution logic |
JP3963690B2 (ja) * | 2001-03-27 | 2007-08-22 | 富士通株式会社 | パケット中継処理装置 |
JP4196732B2 (ja) * | 2003-05-26 | 2008-12-17 | 日本電気株式会社 | データ転送装置及びプログラム |
US7366092B2 (en) * | 2003-10-14 | 2008-04-29 | Broadcom Corporation | Hash and route hardware with parallel routing scheme |
US7895431B2 (en) * | 2004-09-10 | 2011-02-22 | Cavium Networks, Inc. | Packet queuing, scheduling and ordering |
US7809009B2 (en) * | 2006-02-21 | 2010-10-05 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
US20070239891A1 (en) * | 2006-04-06 | 2007-10-11 | Wainner Warren S | Method and apparatus for point-to-multipoint distribution using pseudowires |
US8024787B2 (en) * | 2006-05-02 | 2011-09-20 | Cisco Technology, Inc. | Packet firewalls of particular use in packet switching devices |
US8249067B2 (en) * | 2008-02-27 | 2012-08-21 | Broadcom Corporation | Separation of fabric and packet processing source in a system |
US8503468B2 (en) * | 2008-11-05 | 2013-08-06 | Fusion-Io, Inc. | PCI express load sharing network interface controller cluster |
US8239610B2 (en) * | 2009-10-29 | 2012-08-07 | Red Hat, Inc. | Asynchronous page faults for virtual machines |
-
2009
- 2009-12-17 EP EP09290960.5A patent/EP2337274B1/en active Active
-
2010
- 2010-11-18 KR KR1020127018496A patent/KR101371858B1/ko not_active IP Right Cessation
- 2010-11-18 JP JP2012543568A patent/JP5544429B2/ja not_active Expired - Fee Related
- 2010-11-18 US US13/511,823 patent/US9282064B2/en not_active Expired - Fee Related
- 2010-11-18 CN CN201080057426.0A patent/CN102656850B/zh active Active
- 2010-11-18 WO PCT/EP2010/067753 patent/WO2011072978A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030081600A1 (en) * | 2001-10-30 | 2003-05-01 | Blaker David M. | Methods, systems and computer program products for packet ordering for parallel packet transform processing |
CN1497911A (zh) * | 2002-10-11 | 2004-05-19 | ������������ʽ���� | 分组通信装置 |
CN1533102A (zh) * | 2003-03-19 | 2004-09-29 | ������������ʽ���� | 数据分组通信设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10785169B2 (en) | 2013-12-30 | 2020-09-22 | Marvell Asia Pte, Ltd. | Protocol independent programmable switch (PIPS) for software defined data center networks |
US11824796B2 (en) | 2013-12-30 | 2023-11-21 | Marvell Asia Pte, Ltd. | Protocol independent programmable switch (PIPS) for software defined data center networks |
CN105187330A (zh) * | 2014-06-19 | 2015-12-23 | 凯为公司 | 使用唯一分组标识符来标识分组的结构的方法及其装置 |
US10616380B2 (en) | 2014-06-19 | 2020-04-07 | Cavium, Llc | Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof |
CN105187330B (zh) * | 2014-06-19 | 2020-08-11 | 马维尔亚洲私人有限公司 | 使用唯一分组标识符来标识分组结构的方法及网络交换机 |
US11050859B2 (en) | 2014-06-19 | 2021-06-29 | Marvell Asia Pte, Ltd. | Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof |
US11799989B2 (en) | 2014-06-19 | 2023-10-24 | Marvell Asia Pte, Ltd. | Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20120112568A (ko) | 2012-10-11 |
EP2337274B1 (en) | 2014-03-05 |
JP2013514691A (ja) | 2013-04-25 |
US20120275460A1 (en) | 2012-11-01 |
JP5544429B2 (ja) | 2014-07-09 |
KR101371858B1 (ko) | 2014-03-07 |
US9282064B2 (en) | 2016-03-08 |
WO2011072978A1 (en) | 2011-06-23 |
EP2337274A1 (en) | 2011-06-22 |
CN102656850B (zh) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102656850B (zh) | 用于处理多个数据的方法和用于交换通信分组的交换设备 | |
US10728176B2 (en) | Ruled-based network traffic interception and distribution scheme | |
CN1875585B (zh) | 利用mac限制来控制动态未知l2泛滥的方法和*** | |
US9013994B2 (en) | Distributed chassis architecture having integrated service appliances | |
JP6445015B2 (ja) | ミドルウェアおよびアプリケーションの実行のためにエンジニアド・システムにおいてデータサービスを提供するためのシステムおよび方法 | |
CN102282810B (zh) | 负载平衡 | |
CN108833299B (zh) | 一种基于可重构交换芯片架构的大规模网络数据处理方法 | |
CN103312615B (zh) | 使用可变数量前缀的最长前缀匹配搜索 | |
US20140092906A1 (en) | System and method for binding flows in a service cluster deployment in a network environment | |
CN108696402A (zh) | 虚拟路由器的基于会话的业务统计记录 | |
EP2291959B1 (en) | A method of data delivery across a network fabric in a router or ethernet bridge | |
EP2680536A1 (en) | Methods and apparatus for providing services in a distributed switch | |
CN107231269B (zh) | 一种集群精确限速方法和装置 | |
CN104869064B (zh) | 一种流表更新方法及装置 | |
CN102792651A (zh) | 在mac层应用服务路径路由选择的分组节点 | |
US9491098B1 (en) | Transparent network multipath utilization through encapsulation | |
EP2552054A2 (en) | Wide field indexing for packet tracking | |
Miguel-Alonso | A research review of OpenFlow for datacenter networking | |
US10432526B2 (en) | Enhanced traffic distribution using VRF tables | |
CN113497755B (zh) | 数据转发方法、***及设备 | |
CN113556364A (zh) | 一种基于DPDK的DDoS实时防御*** | |
CN115865802B (zh) | 虚拟实例的流量镜像方法、装置、虚拟机平台及存储介质 | |
US9152494B2 (en) | Method and apparatus for data packet integrity checking in a processor | |
CN105763296B (zh) | 用于在处理资源之间调度网络帧的方法 | |
CN117955913A (zh) | 一种报文处理方法以及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210513 Address after: texas Patentee after: Usao Investment Co.,Ltd. Address before: Fa Guobali Patentee before: Alcatel Lucent |
|
TR01 | Transfer of patent right |