CN1249963C - 使用分组摘要信息快速和自适应处理分组的设备和方法 - Google Patents
使用分组摘要信息快速和自适应处理分组的设备和方法 Download PDFInfo
- Publication number
- CN1249963C CN1249963C CNB001319000A CN00131900A CN1249963C CN 1249963 C CN1249963 C CN 1249963C CN B001319000 A CNB001319000 A CN B001319000A CN 00131900 A CN00131900 A CN 00131900A CN 1249963 C CN1249963 C CN 1249963C
- Authority
- CN
- China
- Prior art keywords
- summary info
- packet
- grouping
- unit
- sequence
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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
-
- 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/56—Routing software
- H04L45/566—Routing instructions carried by the data packet, e.g. active networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本申请公开了一个分组处理设备能够实现快速分组处理,相对于协议变化具有高自适应性和根据网络环境选择最佳的功能实现方案的能力。该分组处理设备具有一个摘要信息产生单元,配置用于从输入分组中提取多个规定的比特序列并且根据多个规定的比特序列值,产生能够规定用于该输入分组的处理的至少一部分的一个摘要信息;和一个分组处理单元,配置用于使用该输入分组的一个指令序列处理该输入分组,它是根据由该摘要信息产生单元产生的摘要信息获得的,其中该摘要信息产生单元产生相对于下一输入分组的摘要信息,同时该分组处理单元实现对于一个分组的处理。
Description
技术领域
本发明涉及用于执行分组处理的一种分组处理设备和一种分组处理方法。
背景技术
最近几年,因特网业务的激烈的增加,对于能够实现在该因特网转发信息的分组快速处理的设备需要增加了。分组处理是通过查阅从外部设备输入的分组的标题部分并且根据在标题部分描述的信息执行期望的处理实现的。
在这里,期望的处理可以是例如包括在下面的任何不同的处理。
(1)通过查阅包含在该分组的标题部分中的目的地地址,转发分组到具体的输出链路的一个处理。
(2)通过查阅优先等级消息或者指示应用属性,即使用该分组执行通信的一个应用的属性的消息,控制每个输出链路的分组转发定时的处理,该分组包含在这个分组的标题部分中,使得当具有较高优先级的分组转发到这个分组转发的输出链路时,例如停止这个分组的转发。
(3)根据在它的分组长度超过在具体的输出端口允许的最大的分组长度的情况下的规定的方法用于划分该分组的处理。
(4)当这个具体的信息达到规定的值时,递增关于该分组的具体的信息和丢弃该分组的处理。
(5)根据需要,用于根据规定的方法重写目的地地址或者源地址的值的处理。
(6)根据需要,用于计算该分组的差错校正码的处理。
历史地讲,通过一个信息处理设备诸如小型的计算机或者微处理器实现用于处理分组的设备。在这种情况下,如上所述对每个分组在小型的计算机或者微处理器执行具体的处理是通过执行具体的命令序列实现的。但是,在这个方案中,它已经难于实现快速分组处理。由于这个原因,在最近几年习惯使用硬件通过执行分组处理实现快速分组处理。
但是,网际协议具有不断地变化的特性。例如,直到几年以前在分组中的目的地地址和源地址没有重写入因特网内部,但是由于最近几年因特网急速发展,按照IP地址不足的解决方案,在最近两三年重写目的地地址或者源地址到该因特网内部已经变得习惯了。
同样地,因特网是以这样的方式操作的:在操作该网络时任何时候出现问题,改变协议以便解决该问题。结果,网际协议将继续改变。因此,使用硬件实现协议处理来实现快速分组处理的上面描述的方案的问题是:通过该硬件执行该处理变得不可能了,即使该协议仅仅有微小的改变时,因此需要非常频繁地替换该分组处理设备。
而且,已经有实现分组处理所要求功能的方案的不同建议,诸如分析IP分组标题中的目的地地址的处理,但是鉴于不同的功能实现方案的不同的优点,每个功能实现方法在它的应用中具有它的最佳的区域。但是,现有技术分组处理设备没有装备容易地从这些多个功能实现方案中选择适当的方案的途径,并且在现有技术分组处理设备中仅仅从不同的分组处理方案中选择一个特定的方案已经实现。结果,不可能根据网络环境诸如不同的分组类型的混合速率选择最佳的方案,因此它不可能有效地执行分组处理。
正如所描述的,现有技术分组处理设备与以下问题有关的:(1)当该设备是通过在小型计算机或者微处理器执行特定的指令序列实现时很难实现快速处理;(2)当该设备是使用硬件实现分组处理实现时,它不能灵活地处理协议变化;和(3)它不能根据网络环境选择最佳的功能实现方案。
发明内容
因此本发明的一个目的是提供一个分组处理设备和一种分组处理方法,能够实现快速分组处理,相对于协议变化具有高自适应性和根据网络环境选择最佳的功能实现方案的能力。
根据本发明的一个方面,提供一种分组处理设备,包抱:摘要信息产生单元,用于从输入分组中提取多个规定的比特序列,并且根据多个规定的比特序列的值产生能够规定用于该输入分组的处理的至少一部分的摘要信息;和分组处理单元,用于根据由该摘要信息产生单元产生的摘要信息获得的该输入分组的指令序列处理该输入分组;其中,该摘要信息产生单元产生相对于下一个输入分组的摘要信息,同时该分组处理单元对一个分组执行处理;以及其中,所述分组处理单元包括:用于执行微指令序列的管道线处理的指令处理单元;用于存储对应于多个摘要信息的多个微指令序列的指令序列表;和用于根据由该摘要信息产生单元产生的摘要信息给出从该指令序列表选择的微指令序列给该指令处理单元的单元。
根据本发明的另一个方面,提供一种分组处理设备,包括:摘要信息产生单元,用于从输入分组中提取多个规定的比特序列,并且根据多个规定的比特序列的值产生能够规定用于该输入分组的处理的至少一部分的摘要信息;和分组处理单元,用于根据由该摘要信息产生单元产生的摘要信息获得的该输入分组的指令序列处理该输入分组;其中,该摘要信息产生单元产生相对于下一个输入分组的摘要信息,同时该分组处理单元对一个分组执行处理;以及其中,所述分组处理单元包括:用于执行微指令序列的管道线处理的指令处理单元;用于存储对应于多个摘要信息的多个宏指令序列的指令序列表;变换单元,用于根据由该摘要信息产生单元产生的该摘要信息变换从该指令序列表选择的宏指令序列为微指令;和用于将该变换单元获得的微指令给到该指令处理单元的单元。
根据本发明的另一个方面,提供另一种分组处理设备,包括:摘要信息产生单元,用于从输入分组中提取多个规定的比特序列,并且根据多个规定的比特序列的值产生能够规定用于该输入分组的处理的至少一部分的摘要信息;和分组处理单元,用于根据由该摘要信息产生单元产生的摘要信息获得的该输入分组的指令序列处理该输入分组;其中,该摘要信息产生单元产生相对于下一个输入分组的摘要信息,同时该分组处理单元对一个分组执行处理;其中,该摘要信息产生单元还从该输入分组提取用于该输入分组处理的参数和给出该参数以及该摘要信息给该分组处理单元;以及其中,所述分细处理单元包括:用于执行微指令序列的管道线处理的指令处理单元;用于存储对应于多个摘要信息的多个宏指令序列的指令序列表;变换单元,用于根据由该摘要信息产生单元产生的该摘要信息变换从该指令序列表选择的宏指令序列为微指令,同时计数该参数;和用于将该变换单元获得的微指令给到该指令处理单元的单元。
附图说明
从下面结合附图的描述中本发明的其它特性和优点变得明显了。
图1是表示根据本发明的第一实施例的分组处理设备的示例的配置的方框图。
图2是表示在图1的分组处理设备中摘要产生单元的示例的配置的方框图。
图3是表示在图2的摘要产生单元中由标题信息提取单元提取的示例的字段的图。
图4是表示根据本发明的第另一个实施例的分组处理设备的另一个示例的配置的方框图。
图5是表示在图1的分组处理设备中分组处理单元的示例的配置的方框图。
图6是表示根据本发明的第一个实施例的分组处理设备的另一个示例的配置的方框图。
图7是表示根据本发明的第一个实施例的分组处理设备的另一个示例的配置的方框图。
图8是表示根据本发明的第一个实施例的分组处理设备的另一个示例的配置的方框图。
图9是表示根据本发明的第二实施例的分组处理设备的一个示例的配置的方框图。
图10是表示图9的分组处理设备中微指令序列表的一个示例的配置的图。
图11是表示根据本发明的第二实施例的分组处理设备的另一个示例的配置的方框图。
图12是表示图11的分组处理设备中宏指令序列表的一个示例的配置的图。
图13是表示图11的分组处理设备中微指令序列表的一个示例的配置的图。
具体实施方式
现在参见图1至图8,详细描述根据本发明的分组处理设备和分组处理方法的第一实施例。
图1表示根据本发明的第一个实施例的分组处理设备(或者消息处理设备)的示例配置的方框图。
如在图1中所示的,第一实施例的分组处理设备包括一个摘要产生单元101,一个分组处理单元(分组传送器)102和一个分组传输单元103。到达这个分组处理设备的分组首先进入摘要产生单元101。
摘要产生单元101查阅该输入分组的标题部分,从该标题部分提取规定的多个比特序列(其中一比特序列可以仅仅包含1比特),和通过将码型匹配、逻辑计算等应用到提取的多个比特序列执行产生该分组的摘要信息的处理。
在这里“比特序列”代表例如由该协议技术规范定义的该分组标题内部的一部分或者全部的字段。
如上所述,该摘要信息是表示分组类型的信息,分组类型是通过查阅各个分组的标题部分中的规定位置获得的,并且是特定的,例如可以下面四个类型的任一个类型给出:
(1)以太网帧的IPv4分组UDP;
(2)以太网帧的IPv4分组,TCP SYN/FIN消息;
(3)以太网帧的IPv4分组,ICMP消息;和
(4)其它。
注意当摘要信息以四个类型给出时,该摘要信息可以是2比特数据。
当然除上面描述的之外,还可能考虑由该摘要产生单元101产生的该摘要信息的其它不同的详细配置。例如,还可能根据输入以太网帧或者用于广播、多播或者单播的IP分组的类别或者在输入的IP分组作为UDP或者TCP中预先假定的传输协议的类别配置该摘要信息,但是,在下面为了简单起见将描述以上面描述的四个类型给出的摘要信息的情况。
还要注意,为着要选择路由选择表的最佳的检索算法,除表示在这个实施例中描述的分组类型的信息之外,对于该摘要信息还可能包括从分组的目的地地址产生的信息,或者为着要提供QoS(服务质量)目的表示分组的优先次序的信息。在下面更详细地描述关于该摘要信息的这样的不同的修改。
而且在下面,上面描述的四个类型的摘要信息以实例的方式分别由“00”、“01”、“10”和“11”表示。
现在,当产生该摘要信息时,该摘要产生单元101转发这个摘要信息和相应的分组到分组处理单元102。
该分组处理单元102使用和该分组一起提供的摘要信息处理和输出这个分组。
例如,当该摘要信息是“00”时,通过启动预先提供的UDP处理程序(或者在此时产生和启动UDP处理程序)处理这个分组。类似地处理该摘要信息是“01”或者“10”的情况。当该摘要信息是“11”时,它是分类为“其它”的一个分组,因此通过启动一般的分组处理路由选择处理该分组,同时照惯例分类该分组类型。
而且,在上面描述的处理中(或者在分别地从上面描述的处理中激活的处理中),该分组处理单元102执行产生和输出传送控制信息的处理,传送控制信息包括规定这个分组应该输出到的输出端(输出接口)的信息和规定发送这个分组的优先等级的信息。然后具有附加的传送控制信息的分组进入分组传输单元103。
分组传输单元103根据附加到这个分组的传送控制信息选择一个特定的输出端执行输出该输入分组的处理。
图2表示摘要产生单元101的一个示例的配置。
这个摘要产生单元101包括一个标题信息提取单元201,用于提取该输入分组的标题部分中的规定的部分,和一个码型匹配单元202,用于通过判断由标题信息提取单元201提取的信息是否在规定的比特码型中产生该摘要信息。
在用于这个实施例的具体的例子中,如在图3中所示的,标题信息提取单元201提取该部分,即下面的部分:
*在该以太网标题中的一个协议类型字段(301);
*在该IF标题中的一个版本(version)字段(302);
*在该IP标题中的一个协议字段(303);
*在TCP标题中的一个SYN标志(304);和
*在TCP标题中的一个FIN标志(305)。
码型匹配单元202通过校验这些提取字段的值判断从上面描述的四个类型输出的一种摘要信息。
例如,如果在以太网标题中的协议类型字段具有一个值“0800”,在IP标题中的版本字段具有值“4”,在该IF标题中的协议类型字段具有值“6”,和在TCP标题中的SYN标志或者FIN标志为接通,则判定为TCP SYN/FIN消息。
注意,在图2的示例的配置中,该摘要信息是在码型匹配单元202执行码型匹配获得的,但是代替它,也可能使用从标题信息提取单元201给出的作为输入的比特码型通过执行用于输出该摘要信息的逻辑计算获得该摘要信息。
还要注意,在摘要产生单元101中,在使用该码型匹配的情况下或者在使用该逻辑计算的情况下提取的多个比特序列和用于码型匹配的比特码型最好可从外部改变。用这种方式,在这个分组处理设备应用的环境下,通过改变该摘要信息的详细的配置,根据分组类型的混合速率灵活地处理协议技术规范和优化该摘要信息变得可能了。
而且,如在图4中所示的,对于该摘要产生单元101可能给出从该输入分组(或者通过处理这样的规定信息获得的信息)提取的规定信息和该摘要信息一起作为分组处理单元102的附加信息(参数)。通过使用该接收参数,分组处理单元102可以实现快速处理。
图5表示分组处理单元102的一个示例的配置。
这个分组处理单元102具有一个程序存储器401,一个处理器402,一个分组缓冲器403和一个输入输出端口404。
程序存储器401存储对应于不同类型的摘要信息的处理程序。
在用于这个实施例的具体的例子的情况下,程序存储器401存储下面程序:
(1)UDP处理程序(4011);
(2)TCP SYN/FIN处理程序(4012);
(3)ICMP处理程序(4013);和
(4)一般的分组处理程序(4014);
相应于:
(1)以太网帧的IPv4分组UDP;
(2)以太网帧的IPv4分组,TCP SYN/FIN消息;
(3)以太网帧的IPv4分组,ICMP消息;和
(4)其它。
从摘要产生单元101输入的分组写入到分组缓冲器403。和这个分组一起给出的摘要信息给予处理器402作为一个中断信号。处理器402根据该摘要信息启动相应的处理路由选择,处理这个分组,和这个分组与传送控制信息一起通过输入输出端口404输出给分组传输单元103。
注意,也可能提供(不可执行)程序,从该程序可以产生可执行的处理程序,并且在接收该摘要信息时刻从相应的程序中产生可执行的处理程序,而不是预先提供可执行的处理程序。这例如可以通过在该程序的规定部分嵌入根据表示在图4的附加信息产生的比特序列实现,从该程序的规定部分可以产生可执行的处理程序,这些程序保持为二进制数据。
在这里,各个分组的属性预先由摘要产生单元101区别,并且根据这些属性该处理程序被激活,与对全部分组执行一般的分组处理程序比较,它可能减少该处理程序内部的分支的数量。因此,可能减少对该处理器内部的管道线的干扰并且根据这些属性应用最佳化到该处理程序,以便可能改善该分组处理设备的通过量。
在下面,将描述更详细的示例的配置的几个变形。
首先,将描述独立地执行该摘要产生单元101和分组处理单元102的情况。
如上所述,当分类该分组类型时处理分组的常规的方式存在一个问题:它包括许多分支并且是消耗时间的。由于这个原因,这个实施例中,有关类型的分类的分支由摘要产生单元101进行,和用于获得从该分组的目的地等等的输出路由选择的处理是在分组处理单元102实现的。
最好是独立地操作摘要产生单元101和分组处理单元102。为此目的,例如需要通过分组队列连接它们。在使用LSI实现的情况下,最好是采用要求较少存储器和较少访问该存储器数量的一个配置。由于这个原因,如在图6中所示的配置可用对为图1所示的配置的修改。
在图6的配置中,从外部输入的分组在存储器管理单元121的控制下存储到分组存储器122中。然后,该分组存储的存储器地址和表示输入接口的状态的信息被***作为到第一队列123的单个条目。
摘要产生单元101从第一队列123中取出包含存储被处理的分组的存储器地址的一个条目,经过存储器管理单元121访问该分组存储器122获得需要的信息,并且执行该摘要产生。
产生的摘要信息和该分组的存储器地址以及输入接口状态信息一起***作为到第二队列124的单个条目。
分组处理单元102从第二队列124中取出包含被处理的分组的一个条目,并且根据摘要信息执行该处理。此时,根据需要,该处理用于分组存储器122的分组。随后,一个存储该处理应用的该分组地址和规定输出接口的信息传送到分组传输单元103。分组传输单元103根据这些信息转发规定的分组到规定的输出终端。
以此方式,摘要产生单元101和分组处理单元102可能执行互相不同的分组的相应的处理,以便该管道线并联工作可以实现,同时减少要求的存储器量。而且,即使当摘要产生单元101和分组处理单元102的处理时间对于不同的分组是不同的,通过固定第二队列124的足够的长度可能吸收处理时间抖动。
随后,将描述作为上面描述的示例的配置的另一个修改的图7中表示的配置及其操作。
在图7的配置中,一个分组和表示输入接口的状态的信息一起从外部输入到摘要产生单元101。摘要产生单元101立即执行摘要产生和将产生的摘要信息与该分组以及输入接口状态信息一起***作为到第三队列125的单个条目。
分组处理单元102取出进入第三队列125的一个分组,根据附加的摘要信息应用该处理到该分组,和输出这个分组与规定这个分组应该输出到的输出端的信息给分组传输单元103。分组传输单元103根据这些信息转发这个分组到规定的输出终端。
在这种情况下,摘要产生单元101执行摘要产生而不查阅分组存储器122,并且其优点是:可以减少由摘要产生单元101和分组处理单元102对分组存储器122访问的冲突。还可能合并该输入接口功能的一部分的功能到摘要产生单元101。这样的情况的一个例子包括用于处理比特流,如由在链路层和CRC计算的帧同步表示的。
接下来,将描述由图5所示的分组处理单元102的更详细的操作实现在该分组到达时的中断的一个示例的配置。在实现中断处理的情况下,存在技术的问题,包括如何禁止许可的中断。
在这种情况下,处理器402具有两组寄存器,用于存储该摘要信息。一组用于存储对应于当前处理的分组的摘要信息,而另一组用于存储对应于待决状态的分组的摘要信息。前者称为处理寄存器,而后者称为待决的寄存器。
当该摘要信息到达处理器402时,这个摘要信息首先存储到待决的寄存器。当该摘要信息到达该待决的寄存器时,从该摘要信息产生中断数量,并且尝试到处理器402的中断。
当在该处理器402允许该中断时,控制被传送到该中断处理程序的分组处理程序。同时,该摘要信息传送到该处理寄存器。如果在分组处理单元102和摘要产生单元101之间有一个队列,在这个队列中的摘要信息队列是先进的,并且该顶部将传送到待决的寄存器。
处理器402是在中断禁止的状态,同时执行分组处理程序。通过在该分组处理结束的时间执行中断允许命令,开始下一个摘要信息的处理。
根据用于该分组的处理中的不同,在上面用于分类的示例的情况描述摘要信息产生和分组处理程序配置,但是根据该分类而不是根据处理中的不同也是可能。
现在描述摘要信息的不同的修改。
例如,甚至在执行相同的处理的情况下,可能存在用于实现这个处理的多个方式。在分组处理单元102中,将常常执行使用该分组的标题的特定的字段作为一个关键词对数据库(未表示)搜索。假定对于数据库搜索存在多个算法,以及根据一种键和在该数据库的关键词的分布,许多搜索的计算或者延迟是不同的。这是在使用一个网络地址作为一个关键词确定输出端(输出接口)的数据库搜索中经常遇见的情况。
现在假定存在四个检索算法,并且该检索关键字由一个32位字段给定。另外假定:这32比特空间被分成128个相等的部分,并且平均值的最有效率的检索算法可以对每个部分确定。这个操作是根据数据库的特性确定的并且分别地从分组处理的实时处理中脱机执行。结果,确定规定该检索算法的32比特的高位7比特和用于规定检索算法的2比特识别符之间的对应关系。还可能使该摘要信息包含也用于规定该检索算法和摘要产生单元101产生用于规定从如上所述的32比特网络地址的高位7比特的检索算法。这样的摘要信息可以通过半导体存储器实现的表查找或者通过一些逻辑计算产生。
还要注意,用于摘要产生的多个比特序列是在摘要产生单元101从该分组的标题中提取的,并且这样的比特序列经常还要求在分组处理单元102再提取一次。该比特序列提取正常地是与移位计算或者掩码计算相关的,并且一旦在摘要产生单元101中进行这些操作,就不需要在分组处理单元102中再一次执行这些操作。提取的信息可以直接地作为该摘要信息的一部分通知在分组处理单元102以便省略不必要的重复。用这种方式,可以减少分组处理单元102的处理负载并且可以减少相对于该分组缓冲器的读出请求,以便可以改善通过量。
随后,将描述从摘要产生单元101给出该参数以及该摘要信息给分组处理单元102的情况。
在摘要产生单元101,为了摘要信息,规定的一个或者多个比特序列可以分别地从多个比特序列的提取中提取并且(1)规定的一个或者多个比特序列;(2)为了摘要信息,提取的具有全部多个比特序列的一部分的数据的规定的一个或者多个比特序列(3)通过处理上面的(1)的数据获得的数据;(4)通过处理上面的(2)的数据获得的数据;(5)为了摘要信息提取的多个比特序列的一部分或者全部,或者(6)通过处理上面的(5)的数据获得的数据的任一个数据可以作为参数给予分组处理单元102。注意,它也可能使用全部分组标题作为附加信息。
在产生该摘要信息的处理中产生的参数可以在分组处理单元102也可以有效地使用(虽然这样的参数最好以不引起任何副作用的方式使用)。
例如,考虑使用一些字段的值作为关键词对数据库(未表示)搜索的情况是在分组处理单元102实现的,和使用一部分或者全部相同的字段的散列计算是在产生该摘要信息时执行的。这种情况下,通过划分数据库的关键词成为较小数据库的直接产物、根据该散列功能分类它们可能减少搜索目标的关键词的总数,以便它可能实现检索算法要求许多计算正比于关键词的总数的情况下实现加快处理。
还可能考虑如下配置的分组处理单元102。
在分组处理单元102中,时常使用的数据是经常临时存储在快速高速缓冲存储器中以便实现快速数据库搜索。在这种情况下,当在高速缓冲存贮器的数据和在相对于实际上到达的分组的搜索操作中要求的数据之间相关更高时,该高速缓冲存贮器命中率变得更高并且对快速实现的作用变得更大。
作为增加在该高速缓冲存贮器已经非常相关数据的可能性的一种方法,经常使用称为预取操作的方法。这个是一个操作,其中从主存储器读入高速缓冲存贮器是通过预先读入那些数据推测地进行,在未来那些数据具有被查阅的较高可能性。由于这些数据的读入,这仅仅在没有副作用时才进行,读入该高速缓冲存贮器的数据实际上是否使用没关系。
为了这个预取操作是有效的,由于从该主存储器读入该高速缓冲存贮器,从预取到使用的时间应该比该延迟充分地更长。换句话说,需要预先充分地执行预取操作。
但是,根据它们仅仅在该分组已经到达之后,如果预取是通过提取该分组的字段并且获得数据库的地址,实现充分地长延迟以便进行有效的预取操作是困难的。
鉴于此,可能采用摘要产生方法,其中在摘要产生单元101提取的比特序列是包括数据库搜索的关键词部分的比特序列和可以获得用于作为数据库搜索的存储器存取的地址的值作为摘要产生的中间结果。更具体地说,可能采用一种方案,其中散列表用于作为数据库检索算法和使用相同的散列功能产生该摘要信息,该摘要信息使用在如上所述的散列表。
在这种情况下,用于访问散列表的地址已经作为与摘要产生有关的计算的中间结果,以使这些地址作为附加到该摘要信息的参数通知分组处理单元102。在分组处理单元102,只要激活该分组处理程序,预取操作是使用接收参数的值作为数据库的地址执行的。用这种方式,在分组处理中在最早可能级执行预取操作变得可能了,以使实现隐藏该延迟的更大的效果。
另外,还可能通过将接收参数的值作为在一个定时的数据库搜索的存储器地址推测地执行该数据库搜索,其中通知分组处理单元102该摘要信息。在这种情况下,直到启动分组处理程序时间也将隐藏预取中的延迟,以使它可能预期该预取的更大的效果。
作为摘要信息的另外修改,还可能包括在摘要信息中的分组的优先权控制信息如下。
首先,将考虑分组的优先权控制信息和用于规定分组的上层协议的一个协议识别符的组合。在此,根据规定的各个分组处理的方式,分组处理方法大为不同。通过在上面已经提到的单个程序实现两者是低效率的。
在这里,如果优先权控制信息是8比特而上层协议技术规范是8比特,一个简单的组合将是16比特。还可能为他们中的每一个提供最佳的程序。
还可能集体地处理类似类型的处理。例如,通过单个程序处理全部要求相同处理的协议可以实现利用比简单的组合相当地少的程序的处理。
根据处理类似的类型的分类,例如8比特优先权控制信息转换为3比特识别符,并且根据处理类似的类型的分类,8比特协议号码转换为2比特识别符。这样获得的3比特识别符和2比特识别符转换为5比特的识别符或者应用一些逻辑计算(它可以是简单的级联)。然后这将使用作为摘要信息。根据这个摘要信息,分组处理单元102启动激活的分组处理程序。在这里描述的该例子中,可以选择分组处理程序的32个类型之一。每个分组处理程序包含与即由3比特识别符规定的该优先权控制有关处理。
这时,限定了用于作为该摘要信息的比特的数量。例如,在超过分组处理程序的存储容量中是不可能产生分类类型(图5的4011到4014)。由于摘要产生单元101和分组处理单元102之间的通信路径的比特宽度,还有一个限制。另一方面,分组的更多的分类类型将暗指摘要产生单元100可以进行更详细的分组类型判断,以便该分组处理程序可以更专门化和分组处理单元102的处理性能可以改善。
因此,一方面最好是设置由摘要产生单元101产生的该摘要信息的比特长度尽可能长,但是另一方面最好设置由分组处理单元102同时处理的该摘要信息的数量尽可能小。在下面,将描述满足这两个要求的方法。
在该摘要产生单元101,产生由大量的比特给定的信息作为虚拟摘要信息。对应这样的虚拟摘要信息提供该分组处理程序。
如在图8中所示的,在摘要产生单元101和分组处理单元102之间的接口连接,提供用于变换该虚拟摘要信息为由多个比特给出的物理摘要信息的一个摘要信息交换单元120,该多个比特实际上可以通知分组处理单元102。发送给分组处理单元102的该摘要信息可以通过使用这个摘要信息变换单元120变换该虚拟摘要信息为物理摘要信息而产生。
当通过摘要信息变换单元120的控制操作确定该虚拟摘要信息和该物理摘要信息之间的一致性时,通过换算表写入功能将这个一致性反映到该摘要信息变换单元120内部的一个换算表,而对应于该虚拟摘要信息的分类类型的分组处理程序存储到该分组处理单元102的程序存储器中,作为对应于物理摘要信息的分组处理程序。
虚拟摘要信息具有比该物理摘要信息更长的比特长度,以便有一些虚拟摘要信息不能分配给任何特定的物理摘要信息。表示“其它”的物理摘要信息分配给这些虚拟摘要信息,并且分配用于处理的一般的处理程序作为对应于表示“其它”的物理摘要信息的分组处理程序并且存储到该程序存储器中,而不假定任何分组类型分类。
一般的处理程序的处理性能是低于专门处理程序的处理性能,因此它最好抑制启动一般的处理程序的频率到最小值。由于这个原因,变换表控制功能应该找出在虚拟摘要信息和物理摘要信息之间这样的一个一致性,在放置这个分组处理设备的环境下,使得选择“其它”的频率尽可能低,并且将这样的一致性反映到换算表。
作为产生该换算表的更有效的方式,还可能使用下面的配置。
在用于从虚拟摘要信息变换为物理摘要信息的换算表中,对于各个虚拟摘要信息可以提供用于计数时间数量的一个计数器,在该时间输入该输入虚拟摘要信息。
根据单独的计数器值,换算表控制功能可以获得每个虚拟摘要信息出现的频率,并且分配该物理摘要信息给具有更高出现频率的虚拟摘要信息。
更具体地说,可能采用下面过程。
作为初始状态,表示“其它”的物理摘要信息分配给所有的虚拟摘要信息。在进行虚拟摘要信息出现频率的有意义的测量的状态操作分组处理设备之后,确定在该虚拟摘要信息和和该物理摘要信息之间一致性并且反射到该换算表。甚至在此之后,继续出现频率的测量,并且当它判定前面获得的一致性的显著的差别是可分别时,该换算表和该分组处理程序以反映新的一致性的那些换算表和分组处理程序替换。
现在参见图9至图13,详细描述根据本发明的分组处理设备和分组处理方法的第二实施例。
图9表示根据本发明的第二个实施例的分组处理设备(或者消息处理设备)的示例配置的方框图。
如在图9中所示的,第二实施例的分组处理设备包括一个***总线501,一个主存储器502,一个输入输出端口503,一个存储器存取控制单元504,一个高速缓冲存贮器505,一个管道线506,一个寄存器507,一个摘要产生单元508,一个分组处理指令序列产生单元509,一个微指令序列表510和一个指令序列队列511。
在这里,存储器存取控制单元504,高速缓冲存贮器505,管道线506和寄存器507构成一个指令处理单元520,用于翻译和执行包含在主存储器502中的指令序列和对数据应用由这些命令序列规定的处理。
注意,在这里高速缓冲存贮器505被分成一个指令高速缓冲存贮器505-1,用于高速缓存一部分的命令序列,和一个数据高速缓冲存贮器505-2,用于高速缓存该处理应用到的数据的一部分。
而且,可以有用于执行指令的管道线506的许多可能的配置,但是它被认为是一个公知的管道线,具有五级的取数506-1,解码506-2,执行506-3,存储器存取506-4和写回506-5。
用于存储表示信息处理过程和被处理的数据的指令序列的主存储器502,用于相对于外部输入/输出数据的硬件的输入输出端口503,摘要产生单元508,分组处理指令序列产生单元509和该指令处理单元520是由***总线501连接的。
第二实施例的基本的配置和操作类似于第一实施例的配置和操作(变化的描述也同样地适用),因此在下面主要地描述图9的配置特定的特性。
摘要产生单元508类似于第一实施例的摘要产生单元,它接收从外部输入的分组的标题部分和产生摘要信息。如在第一实施例中那样,它还可以产生附加信息(参数)。
分组处理指令序列产生单元509具有从摘要产生单元508接收该摘要信息的功能,产生命令序列,为着要根据在下面描述的过程处理这个分组,和将它给予指令序列队列511。在这里产生的指令序列是通过查阅微指令序列表510的内容产生的。
从外部到达的分组经过输入输出端口503和***总线501存储到主存储器502。
在此之后,规定的部分(多个比特序列),诸如数据链路层的标题,例如提取网络层的标题和传送层的标题被提取并且给予摘要产生单元508。这个处理可以由存储在主存储器502的指令序列执行。为了说明,此后这些规定部分将称为处理控制信息。而且,这个处理控制信息可以包含表示位置的信息,在该位置该分组存储在主存储器502中。
当从输入输出端口503接收该处理控制信息时,摘要产生单元508从该信息产生该摘要信息。
当从摘要产生单元508接收该摘要信息时,分组处理指令序列产生单元509产生该指令序列。
在这里,为着根据相应的分组类型实现该处理,微指令序列表510保持可执行指令序列(微指令序列),如在图10中所示的。分组处理指令序列产生单元509根据从微指令序列表510产生的摘要信息读出该指令序列,并且存储到指令序列队列511。
另一方面,根据在其中提供程序计数器(未表示),指令处理单元520从主存储器502读出该指令序列到指令高速缓冲存贮器505-1,并且使用管道线506序列地执行这个指令序列。
此时,每个级的管道线506分别起下面分配的作用。
*取数506-1从指令高速缓冲存贮器505-1取指令。
*解码506-2解码这个指令和确定随后的管道线和寄存器507的操作内容。
*根据解码506-2的命令,执行506-3应用处理到从寄存器507给出的数据。
*存储器存取506-4或者通过该数据高速缓冲存贮器505-2从执行506-3给出写数据,将它给予下一级。
*写回506-5写回从存储器存取506-4给出的数据到寄存器507。
在这个分组处理设备的情况下,处理的指令序列不仅仅在主存储器502而且在指令序列队列511,因此取数506-1交替地从主存储器502和指令序列队列511的指令序列取指令并且将所取的指令给予随后的级,任何时候保持规定的条件诸如该指令序列队列511不是空的。用这种方式,将执行由分组处理指令序列产生单元509产生的指令序列,从而相对于该输入分组执行期望的处理。
在以这种方式交替地执行多个独立的指令序列(即来自主存储器502的指令序列和来自该指令队列511的指令序列)的这种情况下,该寄存器可以独占地分配给每个指令序列。用这种方式,能够防止由于记录危险引起的管道线506停止。
在第二实施例中,用于对应于摘要信息的每个处理程序的指令序列包含在微指令序列表510中,但是这个微令序列表510可以由可重写的存储器介质形成,使得该表可以根据需要通过重写相应的处理程序来重新配置。用这种方式,灵活地处理该协议技术规范详细部分的改变变成可能。在这种情况下,它也可能采用一个配置,其中微指令序列表510连接到***总线501,使得微指令序列表510可以通过执行主存储器502的指令序列重新写入。
而且,在第二实施例中,根据指令处理单元520的程序计数器(未表示),为由分组处理指令序列产生单元509产生的协议处理的目的的指令序列和从主存储器502读出的指令序列可以容易地共享主存储器502(的数据存储区)。由于这个原因,例如它也可能容易地实现由来自分组处理指令序列产生单元509的指令序列通过由在主存储器502的指令序列执行的操作***的应用执行协议处理操作的监视控制。
这时,摘要信息可能不仅仅包含用于选择分组处理程序的信息,而且还包含关于该分组本身的信息。在这样的情况下,分组处理指令序列产生单元509可以使用摘要信息而不是简单地从该指令表输入该指令到该管道线产生有效的指令序列。现在描述在这样的情况下的配置。
图11表示用于这样的情况的分组处理设备的示例的配置。在下面,主要地描述与图9的配置的差别。
相对于该分组执行的处理程序包括许多公共的操作。例如,用于从该标题读出该比特序列的操作和在该分组标题处理中重写它,而散列操作和在多个存储器间接寻址中关键词匹配或者链接表穿程(traversal),作为相对于路由选择表的存取的可寻址的存储器存取是基本的操作,通常用于分组处理中。这些操作可以通过微指令序列实现,和可以定义编码该微指令序列的宏指令为单个指令。然后,以图12所示的形式存储该分组处理程序作为在图11的宏指令序列表531中的宏指令序列,同时每个宏指令的微指令序列以图13所示的形式存储图11的微指令序列表532中。
在从该摘要产生单元508接收该摘要信息之后,分组处理指令序列产生单元509从宏指令序列表531中读出对应于该摘要信息的宏指令序列,从微指令序列表532中读出该宏指令序列的每个宏指令的相应的微指令序列,和将它们写入指令序列队列511。
该分组处理是通过执行指令处理单元520的管道线506中的这些微指令序列来执行的。
在分组处理指令序列产生单元509产生该微指令序列中,代替直接地写入从微指令序列表532读出的微指令到该指令序列队列511,在写入指令序列队列511之前也可能在该微指令应用下面的变换,使得较短的、更有效的微指令可以在指令处理单元520执行。即,当该微指令具有一个操作数时,查阅该摘要信息,摘要信息可以嵌入到该微指令作为即时的摘要信息。
例如,当摘要信息D放在数据高速缓冲存贮器505的地址A,相对于另一个数据B执行加法计算的微指令序列可以由下面指令序列给出。
装入R,mem[A]//从存储器装入,从地址A到寄存器R
加上R,R,B//加上R和B到寄存器R
在这里,通过查阅即时的摘要信息变换该摘要信息,使得存储器存取变成寄存器代替,可能产生下面的指令序列。
移动R,D//移动值D到寄存器R
加上R,R,B//加上R和B到寄存器R
作为另一个例子,当可能规定一个数量时,它规定嵌入该摘要信息作为一个即时的摘要信息,代替寄存器号码,在微指令的一个寄存器数量部分,上面的指令序列可以表示如下。
加上R,摘要值,B//加上摘要值和B到寄存器R
在这种情况下,分组处理指令序列产生单元509通过替代具有该摘要信息的实际值的这个指令序列的摘要信息部分可以变换这个命令序列如下。
加上R,D,B//加上D和B到寄存器R
注意,在第一和第二实施例的任一个实施例中,根据输入分组的标题部分分类该分组类型,然后根据该分类类型产生该分组处理的指令序列,以便能够减少包含在该协议处理的命令序列中的条件转移的数量。在现有技术中,许多条件转移涉及协议处理的指令序列,因为执行必要的处理,同时通过序列地读标题部分的字段分类该分组类型,因此存在许多管道线干扰,并且这个是对现有技术中实现快速协议处理的主要妨害。在这点上,在本发明中,通过具有减少的条件转移的数量的指令序列执行协议处理变成可能,因此可以抑制管道线干扰到最小量和它可能实现该协议处理,该协议处理获得管道线性能的全部优点。
如所描述的,根据本发明,能够规定该处理的至少一部分应用于该输入分组的一个摘要信息从该输入分组中产生,并且该输入分组是使用加到该输入分组的指令序列进行处理,该输入分组是根据这个产生的摘要信息获得,以便可能实现快速分组处理,并且可能灵活地处理该协议变化。另外,根据该网络环境诸如分组类型,适当地改变该摘要信息,还可能有效地实现该协议处理。
应该注意,除在上面已经提到的之外,在不偏离本发明的新颖的和有利的特性下可以进行上面的实施例的许多修改和变化。
因此全部这样的修改和变化是指包括在所附的权利要求。
Claims (6)
1.一种分组处理设备,包括:
摘要信息产生单元,用于从输入分组中提取多个规定的比特序列,并且根据多个规定的比特序列的值产生能够规定用于该输入分组的处理的至少一部分的摘要信息;和
分组处理单元,用于根据由该摘要信息产生单元产生的摘要信息获得的该输入分组的指令序列处理该输入分组;
其中,该摘要信息产生单元产生相对于下一个输入分组的摘要信息,同时该分组处理单元对一个分组执行处理;以及
其中,所述分组处理单元包括:
用于执行微指令序列的管道线处理的指令处理单元;
用于存储对应于多个摘要信息的多个微指令序列的指令序列表;和
用于根据由该摘要信息产生单元产生的摘要信息给出从该指令序列表选择的微指令序列给该指令处理单元的单元。
2.根据权利要求1所述的分组处理设备,其中该指令处理单元能够交替地执行从该指令序列表选择的指令序列和写入主存储器用于实现处理而不是相对于该输入分组的处理的指令序列。
3.一种分组处理设备,包括:
摘要信息产生单元,用于从输入分组中提取多个规定的比特序列,并且根据多个规定的比特序列的值产生能够规定用于该输入分组的处理的至少一部分的摘要信息;和
分组处理单元,用于根据由该摘要信息产生单元产生的摘要信息获得的该输入分组的指令序列处理该输入分组;
其中,该摘要信息产生单元产生相对于下一个输入分组的摘要信息,同时该分组处理单元对一个分组执行处理;以及
其中,所述分组处理单元包括:
用于执行微指令序列的管道线处理的指令处理单元;
用于存储对应于多个摘要信息的多个宏指令序列的指令序列表;
变换单元,用于根据由该摘要信息产生单元产生的该摘要信息变换从该指令序列表选择的宏指令序列为微指令;和
用于将该变换单元获得的微指令给到该指令处理单元的单元。
4.根据权利要求3所述的分组处理设备,其中该指令处理单元能够交替地执行从该指令序列表选择的指令序列和写入主存储器用于实现处理而不是相对于该输入分组的处理的指令序列。
5.一种分组处理设备,包括:
摘要信息产生单元,用于从输入分组中提取多个规定的比特序列,并且根据多个规定的比特序列的值产生能够规定用于该输入分组的处理的至少一部分的摘要信息;和
分组处理单元,用于根据由该摘要信息产生单元产生的摘要信息获得的该输入分组的指令序列处理该输入分组;
其中,该摘要信息产生单元产生相对于下一个输入分组的摘要信息,同时该分组处理单元对一个分组执行处理;
其中,该摘要信息产生单元还从该输入分组提取用于该输入分组处理的参数和给出该参数以及该摘要信息给该分组处理单元;以及
其中,所述分组处理单元包括:
用于执行微指令序列的管道线处理的指令处理单元;
用于存储对应于多个摘要信息的多个宏指令序列的指令序列表;
变换单元,用于根据由该摘要信息产生单元产生的该摘要信息变换从该指令序列表选择的宏指令序列为微指令,同时计数该参数;和
用于将该变换单元获得的微指令给到该指令处理单元的单元。
6.根据权利要求5所述的分组处理设备,其中该指令处理单元能够交替地执行从该指令序列表选择的指令序列和写入主存储器用于实现处理而不是相对于该输入分组的处理的指令序列。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26521099A JP3643507B2 (ja) | 1999-09-20 | 1999-09-20 | パケット処理装置及びパケット処理方法 |
JP265210/1999 | 1999-09-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1291032A CN1291032A (zh) | 2001-04-11 |
CN1249963C true CN1249963C (zh) | 2006-04-05 |
Family
ID=17414066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB001319000A Expired - Fee Related CN1249963C (zh) | 1999-09-20 | 2000-09-20 | 使用分组摘要信息快速和自适应处理分组的设备和方法 |
Country Status (7)
Country | Link |
---|---|
US (3) | US6804240B1 (zh) |
EP (1) | EP1085723B1 (zh) |
JP (1) | JP3643507B2 (zh) |
KR (1) | KR100370937B1 (zh) |
CN (1) | CN1249963C (zh) |
DE (1) | DE60029710T2 (zh) |
TW (1) | TW502516B (zh) |
Families Citing this family (109)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7075926B2 (en) * | 2000-05-24 | 2006-07-11 | Alcatel Internetworking, Inc. (Pe) | Programmable packet processor with flow resolution logic |
US7747757B2 (en) * | 2000-11-17 | 2010-06-29 | Computer Associates Think, Inc. | Distributed network query |
FR2818066B1 (fr) | 2000-12-12 | 2003-10-10 | Eads Airbus Sa | Procede et dispositif de transmission deterministe de donnees asynchrones mises en paquet |
US8762581B2 (en) * | 2000-12-22 | 2014-06-24 | Avaya Inc. | Multi-thread packet processor |
WO2002096043A1 (en) * | 2001-05-21 | 2002-11-28 | Xelerated Ab | Method and apparatus for processing blocks in a pipeline |
US20020188732A1 (en) * | 2001-06-06 | 2002-12-12 | Buckman Charles R. | System and method for allocating bandwidth across a network |
US7095715B2 (en) | 2001-07-02 | 2006-08-22 | 3Com Corporation | System and method for processing network packet flows |
US20030033519A1 (en) * | 2001-08-13 | 2003-02-13 | Tippingpoint Technologies,Inc. | System and method for programming network nodes |
US7190695B2 (en) * | 2001-09-28 | 2007-03-13 | Lucent Technologies Inc. | Flexible application of mapping algorithms within a packet distributor |
US7239639B2 (en) | 2001-12-27 | 2007-07-03 | 3Com Corporation | System and method for dynamically constructing packet classification rules |
US7421515B2 (en) * | 2002-01-17 | 2008-09-02 | Hewlett-Packard Development Company, L.P. | Method and system for communications network |
US20030185220A1 (en) * | 2002-03-27 | 2003-10-02 | Moshe Valenci | Dynamically loading parsing capabilities |
US7590855B2 (en) * | 2002-04-30 | 2009-09-15 | Tippingpoint Technologies, Inc. | Steganographically authenticated packet traffic |
US7336660B2 (en) * | 2002-05-31 | 2008-02-26 | Cisco Technology, Inc. | Method and apparatus for processing packets based on information extracted from the packets and context indications such as but not limited to input interface characteristics |
US7304999B2 (en) | 2002-08-24 | 2007-12-04 | Cisco Technology Inc. | Methods and apparatus for processing packets including distributing packets across multiple packet processing engines and gathering the processed packets from the processing engines |
WO2004019571A2 (en) * | 2002-08-24 | 2004-03-04 | Cisco Technology, Inc. | Packet processing engine |
US7404015B2 (en) | 2002-08-24 | 2008-07-22 | Cisco Technology, Inc. | Methods and apparatus for processing packets including accessing one or more resources shared among processing engines |
JP3886432B2 (ja) * | 2002-09-17 | 2007-02-28 | 沖電気工業株式会社 | ルーティング処理装置及びパケット種類識別装置 |
US7286483B2 (en) * | 2002-11-14 | 2007-10-23 | Intel Corporation | Electronic data transfer based on selective storage of incoming packets |
US7310337B2 (en) * | 2002-12-31 | 2007-12-18 | Intel Corporation | Packet header alignment |
US7983239B1 (en) | 2003-01-07 | 2011-07-19 | Raytheon Bbn Technologies Corp. | Systems and methods for constructing a virtual model of a multi-hop, multi-access network |
US6981490B2 (en) * | 2003-03-13 | 2006-01-03 | Denso Corporation | Fuel feed apparatus having sub tank and jet pump |
US7747731B2 (en) | 2003-03-27 | 2010-06-29 | Nokia Corporation | Minimizing message processing latency in a communication network |
US20040246902A1 (en) * | 2003-06-02 | 2004-12-09 | Weinstein Joseph J. | Systems and methods for synchronizing multple copies of a database using datablase digest |
US7881229B2 (en) * | 2003-08-08 | 2011-02-01 | Raytheon Bbn Technologies Corp. | Systems and methods for forming an adjacency graph for exchanging network routing data |
US7606927B2 (en) | 2003-08-27 | 2009-10-20 | Bbn Technologies Corp | Systems and methods for forwarding data units in a communications network |
US7668083B1 (en) | 2003-10-28 | 2010-02-23 | Bbn Technologies Corp. | Systems and methods for forwarding data in a communications network |
US7562363B1 (en) | 2003-11-25 | 2009-07-14 | Cisco Technology, Inc. | Gang scheduling among one or more components or systems |
US7903555B2 (en) * | 2003-12-17 | 2011-03-08 | Intel Corporation | Packet tracing |
US7480308B1 (en) | 2004-03-29 | 2009-01-20 | Cisco Technology, Inc. | Distributing packets and packets fragments possibly received out of sequence into an expandable set of queues of particular use in packet resequencing and reassembly |
US8161270B1 (en) | 2004-03-30 | 2012-04-17 | Extreme Networks, Inc. | Packet data modification processor |
US7385984B2 (en) * | 2004-03-30 | 2008-06-10 | Extreme Networks, Inc. | Packet processing system architecture and method |
US7551617B2 (en) | 2005-02-08 | 2009-06-23 | Cisco Technology, Inc. | Multi-threaded packet processing architecture with global packet memory, packet recirculation, and coprocessor |
US7561589B2 (en) | 2005-02-23 | 2009-07-14 | Cisco Technology, Inc | Virtual address storage which may be of particular use in generating fragmented packets |
US7606250B2 (en) | 2005-04-05 | 2009-10-20 | Cisco Technology, Inc. | Assigning resources to items such as processing contexts for processing packets |
US7965708B2 (en) | 2005-06-07 | 2011-06-21 | Cisco Technology, Inc. | Method and apparatus for using meta-packets in a packet processing system |
US8068495B2 (en) * | 2005-09-27 | 2011-11-29 | Intel Corporation | Mechanisms for data rate improvement in a wireless network |
US20070076685A1 (en) * | 2005-09-30 | 2007-04-05 | Pak-Lung Seto | Programmable routing for frame-packet based frame processing |
US7739426B1 (en) | 2005-10-31 | 2010-06-15 | Cisco Technology, Inc. | Descriptor transfer logic |
FI119166B (fi) * | 2005-11-30 | 2008-08-15 | Tellabs Oy | Menetelmä ja laitteisto palvelunlaatuluokasta riippuvan reitityspäätöksen muodostamiseksi |
US8014299B2 (en) * | 2006-05-22 | 2011-09-06 | Alcatel Lucent | Method and apparatus for detecting forwarding loops |
US7765294B2 (en) | 2006-06-30 | 2010-07-27 | Embarq Holdings Company, Llc | System and method for managing subscriber usage of a communications network |
US8717911B2 (en) | 2006-06-30 | 2014-05-06 | Centurylink Intellectual Property Llc | System and method for collecting network performance information |
US8488447B2 (en) | 2006-06-30 | 2013-07-16 | Centurylink Intellectual Property Llc | System and method for adjusting code speed in a transmission path during call set-up due to reduced transmission performance |
US8194643B2 (en) | 2006-10-19 | 2012-06-05 | Embarq Holdings Company, Llc | System and method for monitoring the connection of an end-user to a remote network |
US8000318B2 (en) | 2006-06-30 | 2011-08-16 | Embarq Holdings Company, Llc | System and method for call routing based on transmission performance of a packet network |
US9094257B2 (en) | 2006-06-30 | 2015-07-28 | Centurylink Intellectual Property Llc | System and method for selecting a content delivery network |
US7948909B2 (en) | 2006-06-30 | 2011-05-24 | Embarq Holdings Company, Llc | System and method for resetting counters counting network performance information at network communications devices on a packet network |
US8289965B2 (en) | 2006-10-19 | 2012-10-16 | Embarq Holdings Company, Llc | System and method for establishing a communications session with an end-user based on the state of a network connection |
US8576722B2 (en) | 2006-08-22 | 2013-11-05 | Centurylink Intellectual Property Llc | System and method for modifying connectivity fault management packets |
US8125897B2 (en) | 2006-08-22 | 2012-02-28 | Embarq Holdings Company Lp | System and method for monitoring and optimizing network performance with user datagram protocol network performance information packets |
US7684332B2 (en) | 2006-08-22 | 2010-03-23 | Embarq Holdings Company, Llc | System and method for adjusting the window size of a TCP packet through network elements |
US8189468B2 (en) | 2006-10-25 | 2012-05-29 | Embarq Holdings, Company, LLC | System and method for regulating messages between networks |
US8743703B2 (en) | 2006-08-22 | 2014-06-03 | Centurylink Intellectual Property Llc | System and method for tracking application resource usage |
US8144587B2 (en) | 2006-08-22 | 2012-03-27 | Embarq Holdings Company, Llc | System and method for load balancing network resources using a connection admission control engine |
US7843831B2 (en) | 2006-08-22 | 2010-11-30 | Embarq Holdings Company Llc | System and method for routing data on a packet network |
US8015294B2 (en) | 2006-08-22 | 2011-09-06 | Embarq Holdings Company, LP | Pin-hole firewall for communicating data packets on a packet network |
US7808918B2 (en) | 2006-08-22 | 2010-10-05 | Embarq Holdings Company, Llc | System and method for dynamically shaping network traffic |
US8307065B2 (en) | 2006-08-22 | 2012-11-06 | Centurylink Intellectual Property Llc | System and method for remotely controlling network operators |
US8064391B2 (en) | 2006-08-22 | 2011-11-22 | Embarq Holdings Company, Llc | System and method for monitoring and optimizing network performance to a wireless device |
US8130793B2 (en) | 2006-08-22 | 2012-03-06 | Embarq Holdings Company, Llc | System and method for enabling reciprocal billing for different types of communications over a packet network |
US8619600B2 (en) | 2006-08-22 | 2013-12-31 | Centurylink Intellectual Property Llc | System and method for establishing calls over a call path having best path metrics |
US8537695B2 (en) | 2006-08-22 | 2013-09-17 | Centurylink Intellectual Property Llc | System and method for establishing a call being received by a trunk on a packet network |
US8199653B2 (en) | 2006-08-22 | 2012-06-12 | Embarq Holdings Company, Llc | System and method for communicating network performance information over a packet network |
US8750158B2 (en) | 2006-08-22 | 2014-06-10 | Centurylink Intellectual Property Llc | System and method for differentiated billing |
US7889660B2 (en) | 2006-08-22 | 2011-02-15 | Embarq Holdings Company, Llc | System and method for synchronizing counters on an asynchronous packet communications network |
US8407765B2 (en) | 2006-08-22 | 2013-03-26 | Centurylink Intellectual Property Llc | System and method for restricting access to network performance information tables |
US8223655B2 (en) | 2006-08-22 | 2012-07-17 | Embarq Holdings Company, Llc | System and method for provisioning resources of a packet network based on collected network performance information |
US8531954B2 (en) | 2006-08-22 | 2013-09-10 | Centurylink Intellectual Property Llc | System and method for handling reservation requests with a connection admission control engine |
US8194555B2 (en) | 2006-08-22 | 2012-06-05 | Embarq Holdings Company, Llc | System and method for using distributed network performance information tables to manage network communications |
US8224255B2 (en) | 2006-08-22 | 2012-07-17 | Embarq Holdings Company, Llc | System and method for managing radio frequency windows |
US8238253B2 (en) | 2006-08-22 | 2012-08-07 | Embarq Holdings Company, Llc | System and method for monitoring interlayer devices and optimizing network performance |
US8549405B2 (en) | 2006-08-22 | 2013-10-01 | Centurylink Intellectual Property Llc | System and method for displaying a graphical representation of a network to identify nodes and node segments on the network that are not operating normally |
US8223654B2 (en) * | 2006-08-22 | 2012-07-17 | Embarq Holdings Company, Llc | Application-specific integrated circuit for monitoring and optimizing interlayer network performance |
US8098579B2 (en) | 2006-08-22 | 2012-01-17 | Embarq Holdings Company, LP | System and method for adjusting the window size of a TCP packet through remote network elements |
US8040811B2 (en) | 2006-08-22 | 2011-10-18 | Embarq Holdings Company, Llc | System and method for collecting and managing network performance information |
US8228791B2 (en) | 2006-08-22 | 2012-07-24 | Embarq Holdings Company, Llc | System and method for routing communications between packet networks based on intercarrier agreements |
US7940735B2 (en) | 2006-08-22 | 2011-05-10 | Embarq Holdings Company, Llc | System and method for selecting an access point |
US8107366B2 (en) | 2006-08-22 | 2012-01-31 | Embarq Holdings Company, LP | System and method for using centralized network performance tables to manage network communications |
US9479341B2 (en) | 2006-08-22 | 2016-10-25 | Centurylink Intellectual Property Llc | System and method for initiating diagnostics on a packet network node |
US8274905B2 (en) | 2006-08-22 | 2012-09-25 | Embarq Holdings Company, Llc | System and method for displaying a graph representative of network performance over a time period |
US8144586B2 (en) | 2006-08-22 | 2012-03-27 | Embarq Holdings Company, Llc | System and method for controlling network bandwidth with a connection admission control engine |
US8228896B2 (en) * | 2006-09-22 | 2012-07-24 | Avaya Inc. | Method and apparatus for verification of at least a portion of a datagram's header information |
US8111692B2 (en) | 2007-05-31 | 2012-02-07 | Embarq Holdings Company Llc | System and method for modifying network traffic |
US7852486B2 (en) * | 2008-02-07 | 2010-12-14 | Board Of Regents, The University Of Texas System | Wavelength and intensity monitoring of optical cavity |
JP2009230476A (ja) * | 2008-03-24 | 2009-10-08 | Toshiba Corp | メッセージを処理する装置、方法およびプログラム |
US8175085B2 (en) * | 2008-03-25 | 2012-05-08 | Fusion-Io, Inc. | Bus scaling device |
US8068425B2 (en) | 2008-04-09 | 2011-11-29 | Embarq Holdings Company, Llc | System and method for using network performance information to determine improved measures of path states |
US7911982B1 (en) * | 2008-05-01 | 2011-03-22 | Juniper Networks, Inc. | Configuring networks including spanning trees |
TW201031141A (en) * | 2009-02-04 | 2010-08-16 | Univ Nat Taiwan | Packets inspection device and method |
US8139504B2 (en) * | 2009-04-07 | 2012-03-20 | Raytheon Bbn Technologies Corp. | System, device, and method for unifying differently-routed networks using virtual topology representations |
US8503456B2 (en) * | 2009-07-14 | 2013-08-06 | Broadcom Corporation | Flow based path selection randomization |
US8743877B2 (en) * | 2009-12-21 | 2014-06-03 | Steven L. Pope | Header processing engine |
US8605732B2 (en) | 2011-02-15 | 2013-12-10 | Extreme Networks, Inc. | Method of providing virtual router functionality |
US9201796B2 (en) | 2012-09-27 | 2015-12-01 | Apple Inc. | System cache with speculative read engine |
US10305959B2 (en) | 2014-12-11 | 2019-05-28 | At&T Intellectual Property I, L.P. | Self-organizing network communication |
US10015048B2 (en) | 2014-12-27 | 2018-07-03 | Intel Corporation | Programmable protocol parser for NIC classification and queue assignments |
US10044583B2 (en) | 2015-08-21 | 2018-08-07 | Barefoot Networks, Inc. | Fast detection and identification of lost packets |
US9826071B2 (en) | 2015-08-26 | 2017-11-21 | Barefoot Networks, Inc. | Configuring a switch for extracting packet header fields |
US9825862B2 (en) | 2015-08-26 | 2017-11-21 | Barefoot Networks, Inc. | Packet header field extraction |
KR102343999B1 (ko) | 2015-08-27 | 2021-12-28 | 한국단자공업 주식회사 | 커넥터 및 그 조립 방법 |
US9912774B2 (en) | 2015-12-22 | 2018-03-06 | Intel Corporation | Accelerated network packet processing |
KR101701086B1 (ko) * | 2016-04-26 | 2017-01-31 | 엘에스산전 주식회사 | 사용자 정의 프로토콜을 적용한 하드웨어 프로토콜 스택과 하드웨어 프로토콜 스택의 사용자 정의 프로토콜 적용 방법 |
WO2017198285A1 (en) * | 2016-05-16 | 2017-11-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Transporting udp packets over an mptcp connection |
US10419366B1 (en) | 2017-01-31 | 2019-09-17 | Barefoot Networks, Inc. | Mechanism for communicating to remote control plane from forwarding element |
US10694006B1 (en) | 2017-04-23 | 2020-06-23 | Barefoot Networks, Inc. | Generation of descriptive data for packet fields |
US10601732B1 (en) | 2017-07-23 | 2020-03-24 | Barefoot Networks, Inc. | Configurable packet processing pipeline for handling non-packet data |
US10771387B1 (en) | 2017-09-28 | 2020-09-08 | Barefoot Networks, Inc. | Multiple packet data container types for a processing pipeline |
US11831743B1 (en) * | 2019-01-08 | 2023-11-28 | Xilinx, Inc. | Streaming architecture for packet parsing |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4748618A (en) * | 1986-05-21 | 1988-05-31 | Bell Communications Research, Inc. | Telecommunications interface |
US5067104A (en) | 1987-05-01 | 1991-11-19 | At&T Bell Laboratories | Programmable protocol engine having context free and context dependent processes |
US5335325A (en) * | 1987-12-22 | 1994-08-02 | Kendall Square Research Corporation | High-speed packet switching apparatus and method |
US5249292A (en) * | 1989-03-31 | 1993-09-28 | Chiappa J Noel | Data packet switch using a primary processing unit to designate one of a plurality of data stream control circuits to selectively handle the header processing of incoming packets in one data packet stream |
US5544329A (en) * | 1992-07-31 | 1996-08-06 | Grumman Aerospace Corporation | Interface system with memory map locations for holding flags indicating a priority for executing instructions held within messages received by the interface |
US5394394A (en) * | 1993-06-24 | 1995-02-28 | Bolt Beranek And Newman Inc. | Message header classifier |
US5473607A (en) * | 1993-08-09 | 1995-12-05 | Grand Junction Networks, Inc. | Packet filtering for data networks |
GB9326476D0 (en) | 1993-12-24 | 1994-02-23 | Newbridge Networks Corp | Network |
JPH07182157A (ja) * | 1994-10-24 | 1995-07-21 | Mitsubishi Electric Corp | ディジタル信号処理プロセッサ |
US5598410A (en) * | 1994-12-29 | 1997-01-28 | Storage Technology Corporation | Method and apparatus for accelerated packet processing |
US5566170A (en) * | 1994-12-29 | 1996-10-15 | Storage Technology Corporation | Method and apparatus for accelerated packet forwarding |
US5608662A (en) * | 1995-01-12 | 1997-03-04 | Television Computer, Inc. | Packet filter engine |
US5825774A (en) * | 1995-07-12 | 1998-10-20 | 3Com Corporation | Packet characterization using code vectors |
US5748905A (en) * | 1996-08-30 | 1998-05-05 | Fujitsu Network Communications, Inc. | Frame classification using classification keys |
US5774739A (en) * | 1996-09-20 | 1998-06-30 | Bay Networks, Inc. | Using a lockup processor to search a table of keys whose entries contain instruction pointer values of code to execute if key is found |
JP3372455B2 (ja) * | 1997-07-03 | 2003-02-04 | 富士通株式会社 | パケット中継制御方法,パケット中継装置およびプログラム記憶媒体 |
US6141348A (en) * | 1997-08-25 | 2000-10-31 | Cisco Technology, Inc. | Constant-time programmable field extraction system and method |
US6307860B1 (en) * | 1998-04-03 | 2001-10-23 | Mmc Networks, Inc. | Systems and methods for data transformation and transfer in networks |
US6347087B1 (en) * | 1998-10-05 | 2002-02-12 | Packet Engines Incorporated | Content-based forwarding/filtering in a network switching device |
US6463059B1 (en) * | 1998-12-04 | 2002-10-08 | Koninklijke Philips Electronics N.V. | Direct memory access execution engine with indirect addressing of circular queues in addition to direct memory addressing |
FR2796168B1 (fr) * | 1999-07-08 | 2001-09-28 | Automa Tech Sa | Installation d'exposition a la lumiere d'une carte de circuit imprime double face |
-
1999
- 1999-09-20 JP JP26521099A patent/JP3643507B2/ja not_active Expired - Fee Related
-
2000
- 2000-09-12 DE DE2000629710 patent/DE60029710T2/de not_active Expired - Fee Related
- 2000-09-12 US US09/660,459 patent/US6804240B1/en not_active Expired - Fee Related
- 2000-09-12 EP EP20000307884 patent/EP1085723B1/en not_active Expired - Lifetime
- 2000-09-19 TW TW89119211A patent/TW502516B/zh not_active IP Right Cessation
- 2000-09-20 KR KR10-2000-0055090A patent/KR100370937B1/ko not_active IP Right Cessation
- 2000-09-20 CN CNB001319000A patent/CN1249963C/zh not_active Expired - Fee Related
-
2004
- 2004-09-07 US US10/934,440 patent/US7027442B2/en not_active Expired - Fee Related
- 2004-09-07 US US10/934,460 patent/US20050030949A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
DE60029710T2 (de) | 2006-11-30 |
US7027442B2 (en) | 2006-04-11 |
EP1085723A2 (en) | 2001-03-21 |
KR20010050528A (ko) | 2001-06-15 |
JP3643507B2 (ja) | 2005-04-27 |
DE60029710D1 (de) | 2006-09-14 |
TW502516B (en) | 2002-09-11 |
JP2001094596A (ja) | 2001-04-06 |
US20050086353A1 (en) | 2005-04-21 |
CN1291032A (zh) | 2001-04-11 |
US20050030949A1 (en) | 2005-02-10 |
EP1085723A3 (en) | 2003-05-14 |
EP1085723B1 (en) | 2006-08-02 |
US6804240B1 (en) | 2004-10-12 |
KR100370937B1 (ko) | 2003-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1249963C (zh) | 使用分组摘要信息快速和自适应处理分组的设备和方法 | |
CN1095116C (zh) | 执行两种指令长度代码的处理机及其指令码输入装置 | |
CN1178145C (zh) | 高效执行特长指令字的处理器 | |
CN1147794C (zh) | 具有静态转移预测支持的去耦取指令-执行引擎 | |
CN1910869A (zh) | 具有简化的顺序处理的tcp/ip卸载设备 | |
CN1199109C (zh) | 通过重排序存储器请求提高总线利用率的存储器控制器 | |
CN1586063A (zh) | 流数据处理器、流数据处理方法、程序和媒体 | |
CN1184562C (zh) | 处理器的转移指令 | |
CN1467965A (zh) | 分组处理装置 | |
CN1517869A (zh) | 处理器、运算处理方法和优先度决定方法 | |
CN1121014C (zh) | 具有risc结构的八位微控制器 | |
CN1503142A (zh) | 控制高速缓存的高速缓存***和高速缓存控制装置 | |
CN1271439A (zh) | 在数据库中存储元素的方法 | |
CN1399738A (zh) | 网络交换机和部件及其操作方法 | |
CN1122216C (zh) | 优化器 | |
CN1316696A (zh) | 用于网络处理器的全匹配搜索方法和设备 | |
CN1752934A (zh) | 编译器、编译方法以及编译程序 | |
CN1794236A (zh) | 高效的基于cam在分组有效载荷中进行串搜索的技术 | |
CN1877532A (zh) | 编译装置 | |
CN1918546A (zh) | 程序转换装置及程序转换方法 | |
CN1233016A (zh) | 具有事件相关矢量选择的历境控制器和采用其的处理器 | |
CN1533102A (zh) | 数据分组通信设备 | |
CN1554048A (zh) | 用于检查和操作数据的存储器引擎 | |
CN1228558A (zh) | 程序变换方法和程序变换*** | |
CN1758213A (zh) | 带有共享内容的异构型并行多线程处理器(hpmt) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060405 Termination date: 20091020 |