CN1377543A - 用于四路散列表的方法和装置 - Google Patents

用于四路散列表的方法和装置 Download PDF

Info

Publication number
CN1377543A
CN1377543A CN00813708A CN00813708A CN1377543A CN 1377543 A CN1377543 A CN 1377543A CN 00813708 A CN00813708 A CN 00813708A CN 00813708 A CN00813708 A CN 00813708A CN 1377543 A CN1377543 A CN 1377543A
Authority
CN
China
Prior art keywords
index
sending item
keyword
hash table
key
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
Application number
CN00813708A
Other languages
English (en)
Other versions
CN1179523C (zh
Inventor
戴维·A·布朗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mosaid Technologies Inc
Original Assignee
Mosaid Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mosaid Technologies Inc filed Critical Mosaid Technologies Inc
Publication of CN1377543A publication Critical patent/CN1377543A/zh
Application granted granted Critical
Publication of CN1179523C publication Critical patent/CN1179523C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

多个散列表被计算所得的每个散列表的不同索引同时访问。每个索引识别散列表之一的存储散列项的位置。为了搜索发送项,由在搜索关键字上产生的散列函数计算的索引所识别的位置被搜索,以匹配搜索关键字。如果不要求单一周期内插入,并且由在插入关键字上产生散列函数计算的索引识别的所有位置都已被占用,为了插入发送项,数据库则被重新排序,以便发送项能够插入由计算所得插入关键字的索引之一识别的位置。如果要求单一周期内插入,并且由计算的索引识别所有位置都已被占用,则由计算而得的插入关键字的索引之一识别的位置之一,可被发送项随机地重写。

Description

用于四路散列表的方法和装置
发明背景
在计算机网络中,连网开关从连接于开关的若干入口接收数据包,并将数据包发送至连接于开关的若干出口。开关根据在入口之一接收到的数据包中所含的目的地址确定数据包将要被发送到哪个出口。
数据包将要按目的地址发往的出口被存储在网络开关的散列表的项中。在散列表中,对与具体的目的地址有关的发送项(forwarding entry)进行搜索。
一般来说,为通过开关访问每个可能的目的地址而在散列表中提供项是不行的。例如,为了48位以太网目的的地址,即介质访问控制(“MAC”)地址,在散列表中要求有248个项,以便为全部可能的MAC地址存储发送信息。取代的办法是只有一部分MAC地址被存储在散列表中,然后在目的地址的基础上执行散列函数,以提供较小的数目,用来检索散列表。
作为在目的地址上执行散列函数的结果,多个目的地址可以映射到同一索引,即可能出现混淆。因此,向散列表中的一个位置插入项可能被阻断,如果这个位置正存有另一目的地址的发送项的话。
一种解决混淆问题的途径是产生目的地址的第二散列函数,以便在第一索引中找不到散列项时,提供第二索引。但是,由于搜索散列项增加延迟,多级散列法引起一种不确定的搜索。
一种减少混淆并提供确定的搜索的公知技术是在每个索引中提供多于一个的位置。这也被称为多存储桶技术(bucket technique)。在散列表中实施多存储桶,在每个索引中提供预定数的位置或存储桶。
图1A是说明现有技术的多存储桶散列表136的方框图。散列表136包括215个索引(经过索引位14:0)134。在每个索引中有四个存储桶138A-D。每个存储桶138-D存储一个发送项。散列表136的规模由位置138-D的规模和索引134的总数确定。例如,如果每个存储桶138-D是一字节宽,则要求128千字节(324千字节×4)的散列表。
但是,多个存储桶的散列表引起存储器的无效使用,并且,如果在一个索引中的所有位置都被占用,发送项的插入可能被阻断。因此,对于映射到索引的目的地址来说,没有更多的发送项能被存储在散列表的这个索引中,即使散列表中别的索引有未被占用的位置可以使用。
发明内容
一种网络开关,包括多个散列表,每个散列表用不同计算的索引同时访问。索引从依赖于目的地址的关键字由散列函数逻辑来计算。关键字的发送项被插在由计算关键字的索引识别的位置之一中。当接收到数据包时,对索引进行计算,以便访问四个散列表,并在定位的发送项中搜索具有匹配关键字的发送项。在插入过程中,通过适当存储发送项,能在一个搜索周期中完成匹配搜索。
在检测到未占用的位置后,发送项最好插在通过插入选择逻辑计算的索引识别的未占用位置中。但如果插入选择逻辑确定:所有由计算的关键索引识别的位置已被占用,插入选择逻辑可以对已被占用的位置中的一个位置进行重写。
在优选实施例种,已确定由关键字计算的索引识别的全部位置被占用,插入选择逻辑把具有另一关键字的一个发送项移动到可用于其它关键字的另一位置,然后插入新的发送项。由于这个项的移动可能还引起另一项的移动,所以发送项可以递归地重新排序。
当数据包被接收时,关键字匹配逻辑在计算的索引所指定的地址之一中搜索用于存储在发送项中的搜索关键字的散列表。由于在插入过程中的重新排序,可以确保在一个索引位置的适当发送项。
散列函数逻辑最好通过由关键字产生的CRC的方法为每个散列表计算索引,并选择CRC的一部分作为索引,散列表和相应索引的数目最好是4个。
附图说明
本发明的上述和其他目的、特点和优点从下面对本发明的优选实施例和参考附图的具体描述中将变得清晰,其中,所有不同图中的相同参考符号表示同一部件。附图的比例不是必要的,着重的是对本发明的原理的图解说明。
图1A是现有技术为提供发送项所使用的多个存储桶的散列表方框图;
图1B是根据本发明原理的为提供发送项所使用的散列表的方框图;
图1C是能使用图1B的散列表的无阻塞公用存储器开关的方框图;
图1D是现有技术在入口被接收的现有技术以太网数据包的方框图;
图2是包含发送逻辑的散列表的搜索逻辑的方框图,这个发送逻辑被表示在图1C中的无阻塞公用存储器中;
图3是图2中所示的散列函数逻辑的方框图;
图4是存储在图1B所示的任一散列表中的发送项格式的方框图;
图5是为搜索匹配一个散列表中的搜索关键字的发送项搜索逻辑的步骤流程图;
图6是为在散列表之一中插入新项的插入逻辑的方框图;
图7是图6中所示的插入逻辑的步骤流程图,用于把发送项插入重写所用项的一个散列表中;
图8是图6中所示的插入逻辑的步骤流程图,用于递归地重排存储在散列表中的发送项,以便为插入发送项而在散列表中释放一个位置。
具体实施方式
图1B是根据本发明原理在网络转接中用于存储发送项的散列表190A-D的方框图。每个散列表190A-D只提供213个索引,每个索引以一个位置存储发送项。组合的散列表190A-D具有215(213×22)个索引。因此,四个散列表190A-D提供与图1A中所示的现有技术多存储桶散列表相同数目的索引,一个散列表具有现有技术多存储桶散列表的四分之一规模。每个索引中的位置数和每个位置的比特数是一种设计选择,而非本发明的限制。
根据目的地址,用散列函数逻辑同时地计算四个不同的索引。对散列函数逻辑将参考图3作进一步描述。每个计算的索引被提供给不同的散列表190A-D。例如,根据Key_A生成四个不同的索引,即Key_A index1-4 172A-D。关键字的发送项被插入由四个计算的索引之一识别的一个位置中,以便在对关键字的依次搜索中,关键字在一个搜索周期内被定位。
例如,为了在一个搜索周期内提供Key_A的发送项,Key_A必须被存储在由Key_A Index 1_4 172A-D识别的位置138,146,156,164之一中。如果所有的位置138,146,156,164正存储着其他插入关键字的发送项,则发送项之一被移动到散列表190A-D之一的另一个位置,以提供用于存储Key_A的位置138,146,156,164之一。下面参考图8描述对存储在散列表190A-D中的发送项进行重排的方法,。
如图8所示,四个Key_A indices 172A-D识别散列表_1 190A中的位置138,散列表_2 190B中的位置146,散列表_3 190C中的位置156,散列表_4 190D中的位置164。所有位置138,146,156,164正存储着不同于Key_A的关键字的发送项。Key_B被存储在位置138,Key_C被存储在位置146,Key_D被存储在位置156,Key_E被存储在位置164。未被占用或空的位置在散列表中可以被使用;例如,位置140,142,144在散列_1 190A中是未被占用的。
为了提供确定的搜索即不必排列的转接,Key_A必须被存储在由Key_A 172A-D的索引识别的位置之一中。因此,已被存储在位置138,146,156,164的关键字之一必须被移动到未被占用的位置,以便Key_A的发送项能被存储在空闲的位置,而被移动的关键字的发送项则被存储到由被移动关键字的其他索引之一识别的一个位置。
Key_A与Key_B共用位置138。因此,存储在位置138的Key_B的项能被移动到由Key_B 174B-D的任何其他索引识别的空闲位置。如图8所示,由Key_B 174B-D的其他索引识别的其他位置148,156,166被占用;所以,Key_B不能被移动到其他位置148,158,166之一。但是,由Key_C 176A,176D的两个其他索引识别的两上位置140,168是空闲的。因此,Key_C的发送项可从146移动到位置168或140。在移动Key_C的发送项以后,Key_A的发送项被插入由Key_A index_2 172B识别的位置。对Key_A或Key_C的发送项的搜索是确定的,也就是说每次搜索能在一个搜索周期内完成。类似地,Key_D的发送项能从位置156移动到位置142,150或170,以提供Key_A插入的位置156,或者,Key_E能从位置164移动到位置144,152或162,以提供Key_A插入的位置164。
因此,为了提供对存储在散列表190A-D中的每个发送项的确定的搜索,存储在散列表190A-D中的每个发送项被重排,以便与目的地地址有关的发送项被存储在目的地址而计算的索引之一中。
为使本发明的方法与图1A中表示的现有技术方法的比较变得容易,可考虑将图1B的各个的索引位置扩展为每个包括四个存储桶,每个都如同图1所表示的那样。这种结构使用与图1A相同的32K×4的存储器。进入散列表的每个索引类似地提供四个发送项,它们可以真正地与目的地址匹配,但与图1A的单一索引相对的是,对于每个关键字,有四个索引进入散列表。
就本发明来说,每个索引与其他的目的地址有较多的共享性。当在图1B的方法中插入发送项时,在任一索引上的冲突更像是由于较多的共享性,但每个关键字有多个索引和多个存储桶的整个图1B的方法不会在插入过程中提供较多的初始冲突。从有利的方面说,本方法附加地提供了将发送项移动(而不是阻止)到与具体的关键字不共享的其他位置的可能性,因此,在插入过程中提供了较大的灵活性。在具体的索引上有可能冲突的任何关键字不大会在发送项移动到的任何其他索引上发生冲突。这个优点能够得到而不必顾及多个存储桶是否被使用,图1B的单个存储桶方法能做到这一点,而所要求的存储区域减少到四分之一。
虽然插入过程可能需求附加的处理时间,用于与具体实现有关的递归层次成正比的重新排位,但处理一次插入所需求的时间大大少于在路由处理期间的单个周期内寻求匹配所需要的时间。就本发明来说,这种匹配基本上是更为可能的。事实上,在整个存储器规模范围内匹配是肯定的。
图1C是公用存储器开关100的方框图,其中,图1B中所示的散列表可被使用。在入口102接收到的全部数据在被转接至一个或多个出口112之前被存储在分段缓冲存储器108中。数据包存储管理器106控制访问分段缓冲存储器108的写和读。
开关100包括入口引擎104和出口引擎110。数据包串行地在入口102被接收。在入口引擎104的发送逻辑单元128,入口引擎104检测和处理所接收的数据包的报头,并选择存储在入口引擎104中的发送逻辑128的用于数据包的发送项中的发送向量114。发送向量是位映射,对应多个出口112的每一个的位,并指示数据包是否要被发送至依赖报头中的目的地址的那个出口112。发送向量114被向前传递至数据包存储管理器106。例如,目的地址X的数据包经出口_1 112A被发送至目的地址为136A的网络节点;目的地址为Y的数据包经出口_2 112N被发送至目的地址为Y 136C的网络节点;目的地址为Z的数据包经出口_N 112N被发送至目的地址为Z 136B的网络节点。
数据包存储管理器106提供到分段缓冲存储器108的通路。数据包存储管理器106向分段缓冲存储器108提供由于读和写操作的分段缓冲存储器地址122,并在管理器106中存储每个数据包在分段缓冲存储器108中的存储位置。出口引擎110通过对控制信号120的选择,选择要在那里发送一个数据包的多个出口112之一,并向所选的出口112提供所存储的数据包。
分段缓冲存储器108是由所有入口102和出口112共享的公用存储器。开关100是无阻塞的,就是说,在任何入口102到达的数据包无阻塞地被发送至任何出口112。开关100提供并行处理,入口引擎104对入口102接收到的数据包进行处理,出口引擎110对被存储的数据包进行处理,以供应出口112。
图1D是表示可在入口102接收的现有技术以太网数据包120的方框图。以太网数据包包括报头122、数据段134和帧检验序列132。报头122包括目的地址122、源地址126和长度或类型段130。源地址126和目的地址124是唯一的48位地址,分别识别源端和目的端的物理设备。数据包也可以包括12位VLAN Identifier(“VID”)(未示)。数据包120的大小依赖于数据段134的大小,它可从46字节变化至1500字节。
图2是根据本发明的原理的图1C无阻塞公用存储器开关100的入口引擎104中所示的发送逻辑128中的搜索逻辑的方框图。搜索逻辑216包括四个散列表190A-D。散列表190A-D的数目是一种设计选择,而非本发明的限制。
搜索逻辑216还包括散列函数逻辑200和关键字匹配逻辑204。散列函数逻辑200根据搜索关键字并行地生成四个索引208A-D。搜索关键字206类似于超高速存储器的标记。关键字匹配逻辑204确定由索引208A-D识别的四个位置中的那个位置存储与搜索关键字206有关的发送项。在找到匹配的发送项之后,这个发送项的发送向量114部分被发送至数据包存储管理器106(图1C)。
为搜索与数据包报头中的目的地址对应的发送项,随着数据包正在被入口102(图1C)之一接收,入口引擎104检查数据包120的报头122(图1D)。48位目的地址124(图1D)的复本与12位VLAN Identifier(“VID”)拼接,形成60位搜索关键字206。目的地址与VID的拼接是一种设计选择,而非本发明的限制,因此,搜索关键字可以是目的地址124(图1D)。搜索关键字206被发送至散列函数逻辑200。散列函数逻辑200提供四个13位索引208A-D,作为在搜索关键字上执行散列函数的结果。
图1D中所示的以太网数据包120描述了本发明。但本发明不局限于以太网数据包,它可被用于任何其他类型数据包的发送项的插入和搜索。
图3是说明图2中所示的散列函数逻辑200的方框图。散列函数逻辑200包括周期性冗余码检验(“CRC”)生成逻辑300和散列表索引逻辑302。散列函数是CRC函数,它是在CRC生成逻辑300中在搜索关键字206上被完成的。CRC生成逻辑是那些熟练的技术人员已知的。散列函数不限于CRC生成,被使用的散列函数可以是那些熟练的技术人员所用的任何散列函数。CRC生成逻辑从60位搜索关键字206生成32位CRC 304。
32位CRC 304被发送至散列表索引逻辑302。散列表索引逻辑302从32位CRC 304生成四个索引208A-D。四个索引208A-D每个有13位,因此提供8K地址,以在每个散列表190A-D中寻址8K位置。通过将32位CRC 304的位映射至四个索引208A-D,生成四个索引208A-D,方法如下:CRC 304的位12:0被映射至索引_1 208A的位12:0;CRC 304的位18:6被映射至索引_2 208B的位12:0;CRC 304的位25:13被映射至索引_3 208C的位12:0;CRC 304的位31:19被映射至索引_4 208D的位12:0。
回到图2,在索引208A-D已被散列函数逻辑200生成以后,存储在由索引208A-D指定的散列表190A-D中的位置上的项210A-D被发送至关键字匹配逻辑204。搜索关键字206也被发送至关键字匹配逻辑204。
图4是被存储在图2中所示的散列表190A-D中任一位置上的发送项格式的方框图。发送项210包括指示数据包在哪里被发送的字段。发送项210包括下列字段:使用期限标志402,远程超高速缓存更新标志404,学习端口号码406,地址相关的QoS有效408,地址相关的QoS 410,逻辑端口发送向量412,静态项指示器标志414,类型标志416,有效项指示器标志418,关键字420。
一位使用期限标志402指明发送项210的使用期限。一位远程超高速缓存更新标志404指示超时是否被允许。学习端口号码406指示发送项中的关键字420中存储的MAC地址在哪个界面上被学习过。例如,如果MAC地址在局部外部访问端口被学习过,这就是实际的入口号码104。关于地址的服务质量(“QoS”)字段410,指示被指定的关于地址有服务质量管理。一位地址相关的QoS有效字段408指示QoS字段410是否被用于以后的排队考虑。32位逻辑发送向量412指示数据包将被发送至哪个端口。一位静态项指示器标志414指明发送项是静态还是动态。一位类型标志416指示发送项是否能被用于2级发送项。一位有效端口指示器标志418指示发送项210是否有效。60位关键字420存储与发送项210有关的搜索关键字。
回到图2,关键字匹配逻辑204将存储器在从散列表190A-D发送的发送项210A-D中的关键字项420与搜索关键字206进行比较。如果存在匹配,则32位逻辑端口发送向量412(图4),从发送向量114上,发送项在发送向量114上被发送至数据包存储管理器106(图1)。如果不存在匹配,则失败信号214被生成,并由入口引擎104中的不匹配发现逻辑(未示)处理。
图5是一个流程图,用于搜索散列表190A-D中与搜索关键字匹配的发送项210的搜索逻辑216的步骤。
在步骤500中,搜索逻辑216等待搜索请求。如果有搜索请求,则处理过程继续至步骤502。如果没有,则搜索逻辑216继续等待搜索请求。
在步骤502中,散列函数逻辑200从搜索关键字200生成四个索引208A-D,并发送四个索引208A-D至散列表A-D。处理过程继续至步骤504。
在步骤504中,存储在由索引208A-D指定的散列表190A-D的位置上的发送项210A-D被发送至关键字匹配逻辑204。处理过程继续至步骤506。
在步骤506中,关键字匹配逻辑204将存储在每个发送项210A-D中的关键字420(图4)与搜索关键字206进行比较,并确定是否匹配。如果匹配,处理过程继续至步骤508。如果不匹配,处理过程继续至步骤510。
在步骤508中,用于搜索关键字206的发送项210A-D已被查找到。存储在发送项210中的逻辑端口发送向量412(图4)在发送向量114上(图1C)被发送至数据包存储管理器106(图1C)。数据包经过数据包存储管理器106、分段缓冲存储器108和出口引擎110被发送至预定的出口112。处理过程继续至步骤500。
在步骤510中,没有查找到与搜索关键字206匹配的发送项210A-D。入口引擎104用如扩散法处理这一次失败,即将数据包发送至所有出口引擎112。这种处理是桥式协议的一部分。处理过程继续至步骤500。
图6是一个方框图,表示为在散列表190A-D之一中的位置上插入发送项210,在发送逻辑128(图1C)中的插入逻辑608。48位目的地址124(图1D)的复本与12位VLAN Identifier(“VID”)拼接,以形成60位插入关键字606。目的地址和VID的拼接是一种设计选择,而非本发明的限制。同一散列函数在插入关键字606上被完成,如同在搜索关键字上被完成那样。搜索关键字206的散列函数已结合图3描述过。四个索引208A-D作为散列函数的结果被生成。每路索引识别在各自的散列表190A-D中可插入关键字606的位置。
存储在由索引208A-D识别的散列表190A-D的位置上的发送项210A-D被发送至发送项插入逻辑600。发送项插入逻辑600根据散列表210A-D的内容和重写信号602的状态,确定在由索引208A-D识别的哪个位置上把插入关键字606插入。
发送项插入逻辑600确定由索引208A-D指定的位置中哪个位置未被占用。如果找到未被占用的位置,则包含插入关键字606的发送项210在由索引208识别的未被占用的位置上被插入。如果没有找到未被占用的位置,而且重写信号602指示允许重写,则索引208A-D被随机选择,并且包含插入关键字606的发送项被插入由所选择的索引208识别的位置上。
如果所有的位置都被占用,而且重写信号指示重写不被允许,则存储在散列表190A-D中的发送项被执行重排,以提供一个由索引208A-D识别的未被占用的位置,插入包含插入关键字606的发送项。将结合图8描述在散列表190A-D中重排发送项210A-D的方法。图7是表示图6所示插入逻辑608中的步骤流程图,用于将包含插入关键字606的发送项插入散列表190A-D之一中的一个位置。
在步骤700中,散列函数逻辑200接受关于将发送项插入散列表190A-D之一中的一个位置上的请求。处理过程继续至步骤702。
在步骤702中,散列函数逻辑200根据插入关键字606同时生成并行的四个索引208A-D。索引208A-D的生成已结合图3描述过。处理过程继续至步骤704。
在步骤704中,由生成的索引208A-D识别的散列表190A-D中的位置的内容被发送至发送项插入逻辑600。处理过程继续至步骤716。
在步骤716中,如果插入关键字606已被存储在由生成的索引208A-D识别的位置,则在这个位置上重写发送项插入。
在步骤706中,发送项插入逻辑600(图6),根据被发送的内容确定位置是否被占用。例如,用检查发送项210中的有效项字段418(图4)的方法。如果位置之一未被占用,处理过程继续至步骤708。如果由生成的索引208A-D识别的所有位置已被占用,处理过程则继续至步骤710。
在步骤708中,发送项插入逻辑600(图6)将包含插入关键字606的发送项210插入由生成的索引208A-D在识别一个未被占用的位置后识别的位置。
在步骤710中,发送项插入逻辑600(图6)根据重写信号602(图6)的状态确定重写是否被允许。如果单次周期插入被请求,并且散列表中的发送项连续被更新,例如,如果散列表190A-D正被用在以太网桥中,那么,重写被设置。如果重写被允许,处理过程则继续至步骤712。如果重写不被允许,处理过程则继续至步骤714。
在步骤712中,发送项插入逻辑600(图6),选择由任一个生成的索引208A-D识别的被占用的位置,在其中重写包含插入关键字606的发送项。
在步骤714中,发送项插入逻辑600(图6)执行对存储在由生成的索引208A-D识别的位置上的发送项210 A-D的重排,以便将发送项中的一个移动到由散列表190 A-D之一中的另一索引指定的位置。重排的方法将结合图8予以描述。在重排完成和由生成的索引208 A-D识别的位置中有一个未被占用的位置被提供以后,包含插入关键字606的发送项210被插入未被占用的位置。
图8是图6中所示的发送项插入逻辑600中的步骤流程图,用于重排在图1B中所示的散列表190 A-D中的发送项,以便将Key_A插入Key_A 172A-D的索引识别的位置。
在步骤800中,已经确定Key_A未被存储在由Key_A 172A-D的索引识别的位置,发送项插入逻辑600(图6)确定是否有任何由Key_A172A-D的索引识别的位置是未被占用的。如果存在未被占用的位置,则无需重排发送项,处理过程继续至814。如果全部位置都被占用,则请求重排,以提供由Key_A 172A-D的索引之一识别的未被占用的位置,在其中,存储Key_A并且处理过程继续至步骤802。
在步骤802中,发送项插入逻辑600(图6)根据Key_B被存储在由Key_A index_1 172A和Key_B index_1 172A识别的位置138,确定Key_B 174B-D的其他索引,其中Key_B可以被存储。通过在Key_B上执行散列函数,以生成Key_B 174B-D的索引,或者通过利用Key_B去索引递归的索引表(未示出),在Key_B被插入位置138时,Key_B174B-D的索引曾在这个递归的索引表中存储过。确定了与Key_B 174B-D有关的其他索引以后,处理过程继续至步骤804。
在步骤804中,发送项插入逻辑600(图6)检查被存储在由Key_B174B-D的索引识别的位置148,158,166上的发送项。如图1B中所示,Key_F被存储在由Key_B index_2 174B和Key_F index_2 182B识别的位置148上,Key_H被存储在由Key_B index_3 174C和Key_H index_3186C识别的位置158上,Key_I被存储在Key_B index_4 174D和Key_Iindex_4 188D识别的位置166上。如果由Key_B 174B-D的其他索引识别的所有位置148,158,166,如图1B所示都是在用的,处理过程则继续至步骤806。如果发送项插入逻辑600(图6)发现由Key_B 174B-D的其他索引识别的所有位置148,158,166中的一个未被占用,处理过程则继续至步骤816。
在步骤806中,发送项插入逻辑600(图6)根据Key_C被存储在位置146上确定Key_C 176A,176C-D的其他索引,其中,Key_C可以被存储,这些位置不同于由Key_A index_2 172B和Key_C index_2 176B识别位置。确定了与Key_C有关的其他索引以后,处理过程继续至步骤808。
在步骤808中,发送项插入逻辑600(图6)检查被存储在由Key_C176A,176C-D的索引识别的位置上的发送项。如图1B中所示,Key_Cindex_1 172A识别的位置140未被占用,Key_G被存储在由Key_C index_3176C和Key_G index_3 184C识别的位置160上,由Key_C index_4 176D识别的位置168未被占用。如果由Key_C 176A,176C-D的索引识别的位置140,160,168中的任何位置为图1B中所示未被占用,处理过程则继续至步骤810。如果发送项插入逻辑600(图6)发现由Key_C176A,176C-D的索引识别的位置140,160,168没有未被占用的,处理过程则继续至步骤818。
在步骤810中,发送项插入逻辑600(图6)将Key_C从由Key_Cindex_2 176B和Key_A index_2 172B识别的位置146移动到Key_Cindex_1 176A识别的位置140。Key_A插入由Key_A index_2 172B识别的位置146。
在步骤814中,Key_A被插入由Key_A索引172A-D之一识别的一个未被占用的位置。
在步骤816中,发送项插入逻辑600(图6)将Key_B从由Key_Aindex_1 172A和Key_B index_1 174A识别的位置138移动到由Key_B174B-D的索引之一识别的未被占用的位置。Key_A被插入由Key_Aindex_1 172A和Key_B index_1 174A识别的位置138。
在步骤818中,发送项插入逻辑600(图6)根据Key_D被存储在由Key_A index_3 172C和Key_D index_3 178C识别的位置156上,确定Key_D 178A-B,178D的其他索引,其中,Key_D可以被存储。确定了Key_D的其他索引以后,处理过程继续至步骤820。
在步骤820中,发送项插入逻辑600(图6)检查被存储在由Key_D178A-B,187D的其他索引识别的位置上的关键字。如图1B中所示,由Key_D index 178A-B,178D识别的所有位置142,150,170都是未被占用的。如果由Key_D index 178A-B,178D的索引识别的任何位置142,150,170如图1B所示都是未被占用的,处理过程继续至步骤822。如果发送项插入逻辑600(图6)发现由Key_D index 178A-B,178D识别的位置142,150,170没有未被占用的,处理过程继续至步骤824。
在步骤822中,发送项插入逻辑600(图6)将Key_D从由Key_Aindex_3 172C识别的位置156移动到由Key_D index 178A-B,178D识别的未被占用的位置142,150,170中的一个位置上。将Key_A插入由Key_D index_3 178C识别的位置156。
在步骤824中,发送项插入逻辑600(图6)根据Key_E被存储在由Key_A index_4 172D和Key_E index_4 180D的识别的位置164上,确定Key_E 180A-B的其它索引,其中,Key_E可以被存储。确定了Key_E的其他索引以后,处理过程继续至826。
在步骤826中,发送项插入逻辑600(图6)检查被存储在由Key_E180A-C的其他索引识别的地址上的关键字。如图1B中所示,由Key_E180A-C的索引识别的位置144,152,162都未被占用。如果由Key_E 180A-C的索引识别的任何位置144,152,162,如图1B中所示都未被占用,处理过程则继续至步骤828。如果发送项插入逻辑600(图6)发现由Key_E180A-C的索引识别的位置144,152,162没有未被占用的,处理过程则继续至步骤830。
在步骤828中,发送项插入逻辑600(图6)将Key_E从由Key_Aindex_4 172D和Key_E index_4 180D识别的位置164移动到由Key_E180A-C的其他索引识别的位置144,152,162中的一个位置上。最好是,Key_E被插入第一个被检测到的空位,如果Key_E 180A-C的索引依A-C的次序被搜索,那就是位置144。Key_A被插入由Key_A index 4172D识别的位置164。
在步骤830中,发送项插入逻辑600(图6)通过检查被存储在由Key_B,Key_C,Key_D和Key_E共享的其他位置上的发送项,考查所有与Key_F,Key_G,Key_H和Key_I有关的发送项,继续搜索一个未被占用的位置,直至在Key_A indices 172A-D之一上的发送项卸空,并将Key_A插入。
一般来说,以预定的次序例如A-D的次序,对由关键字的索引识别的位置进行搜索。关键字被插入第一被发现的空位。因此,项被插入由index_1 208A识别的位置,随后是由index_2 208B,index_3 208C和index_4 208D识别的位置。
在散列表中重排发送项,提供散列表的有效利用,并增加这种可能性,即当散列表几乎充满时,发送项能被插入。
尽管本发明已参考优选实施例进行了具体地表示和描述,熟练的技术员将会理解,在不偏离所附权利要求包含的本发明范围的情况下,在形式和细节上的各种变化是能被做成的。

Claims (24)

1.一种网络开关,包括:
多个散列表,每个散列表包括多个位置,每个位置能存储可被索引访问的发送项;
散列函数逻辑,它从依赖于目的地址的关键字共同地计算散列表的单个索引。
2.如权利要求1所述的网络开关,其特征在于还包括发送项插入逻辑,根据检测由计算的索引识别的散列表中的所有位置都已被占用,以发送项重写被占用的位置之一。
3.如权利要求2所述的网络开关,其特征在于,将被重写的位置是随机地选择的。
4.如权利要求1所述的网络开关,其特征在于还包括发送项插入逻辑,根据检测由计算的索引识别的散列表中的所有位置都已被占用,将具有另一关键字的发送项之一移动到其它关键字可用的另一位置。
5.如权利要求1所述的网络开关,其特征在于还包括发送项插入逻辑,根据检测由计算的索引识别的散列表中的所有位置都已被占用,递归地对被存储在散列表中的发送项再定位,以便提供由计算的索引之一识别的位置,在其中存储发送项。
6.如权利要求1所述的网络开关,其特征在于还包括:
关键字匹配逻辑,它搜索由计算的索引识别的位置,查找被存储在位置中的发送项之一中所存储的关键字,并在找到关键字以后,提供一个发送向量,这个发送向量被存储在其中存有关键字的位置中。
7.如权利要求1所述的网络开关,其特征在于,散列函数逻辑通过生成关键字的CRC计算索引,并选择CRC的一部分作为索引。
8.如权利要求1所述的网络开关,其特征在于,散列表的数目为四。
9.一种网络开关,包括:
多个散列表,每个散列表包括多个位置,每个位置能存储可被索引访问的发送项;
装置,用于根据依赖于目的地址的关键字,同时地计算散列表的单个索引。
10.如权利要求9所述的网络开关,其特征在于还包括:
装置,用于在检测由计算的索引识别的散列表中的所有位置都已被占用时,通过重写发送项被占用位置之一插入这个发送项。
11.如权利要求10所述的网络开关,其特征在于,将被重写的位置是随机选择的。
12.如权利要求9所述的网络开关,其特征在于还包括:
装置,用于在检测由计算的索引识别的散列表中的所有位置都已被占用时,通过将具有另一关键字的发送项之一移动到其它关键字可用的另一位置插入发送项。
13.如权利要求9所述的网络开关,且特征在于还包括:
装置,用于在检测由计算的索引识别的散列表中的所有位置都已被占用时,递归地对被存储在散列表中的发送项重新定位,以提供由计算的索引之一识别的位置,将发送项存储于其中。
14.如权利要求9所述的网络开关,其特征在于还包括:
装置,用于在由计算的索引识别的位置中,搜索被存储在这些位置上所存的发送项之一的关键字,并在查找到关键字后,提供识别其中存储这个关键字的位置的索引。
15.如权利要求9所述的网络开关,其特征在于,用于同时地计算的装置,通过产生关键字的CRC计算索引,并选择CRC的一部分作为这个索引。
16.如权利要求9所述的网络开关,其特征在于,散列表的数目为四。
17.一种在网络开关中存储发送项的方法,包括:
提供多个散列表,每个散列表包括多个位置,每个位置能存储可被索引访问的发送项;和
根据目的地址,同时地计算散列表的单个索引。
18.如权利要求17所述的方法,其特征在于还包括:
在检测所有位置被占用时,通过以发送项重写被占用的位置之一,将发送项插入由计算的索引识别的位置之一。
19.如权利要求18所述的方法,其特征在于,有待重写的位置是随机地选择的。
20.如权利要求17所述的方法,其特征在于还包括:
在检测所有位置被占用时,通过将具有另一关键字的发送项之一移动到其它关键字可用的另一位置,将发送项插入由计算的索引识别的位置之一。
21.如权利要求17所述的方法,其特征在于还包括:
在检测由计算的索引识别的散列表中的所有位置都已被占用时,通过递归地对存储在散列表中的发送项重新定位,以提供由计算的索引之一识别的位置,并在该位置存储发送项,将发送项插入由计算的索引识别的位置之一。
22.如权利要求17所述的方法,其特征在于还包括:
在由计算的索引识别的位置中,搜索被存储在这些位置之一上的所存的发送项之一的关键字;
在查找到关键字后,提供识别其中存储这个关键字的位置的索引。
23.如权利要求17所述的方法,其特征在于计算还包括:
产生关键字的CRC;
选择CRC的一部分作为索引。
24.如权利要求17所述的方法,进中,散列表的数目为四。
CNB008137080A 1999-09-30 2000-09-18 用于四路散列表的方法和装置 Expired - Lifetime CN1179523C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/409,184 1999-09-30
US09/409,184 US6775281B1 (en) 1999-09-30 1999-09-30 Method and apparatus for a four-way hash table

Publications (2)

Publication Number Publication Date
CN1377543A true CN1377543A (zh) 2002-10-30
CN1179523C CN1179523C (zh) 2004-12-08

Family

ID=23619397

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008137080A Expired - Lifetime CN1179523C (zh) 1999-09-30 2000-09-18 用于四路散列表的方法和装置

Country Status (7)

Country Link
US (3) US6775281B1 (zh)
JP (1) JP4482259B2 (zh)
CN (1) CN1179523C (zh)
AU (1) AU7264400A (zh)
CA (1) CA2385331C (zh)
GB (1) GB2370187B (zh)
WO (1) WO2001024440A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100378725C (zh) * 2003-09-04 2008-04-02 摩托罗拉公司 一种产生用于提供与文本对应的语音的信号的方法
CN100452043C (zh) * 2006-09-06 2009-01-14 南京中兴软创科技有限责任公司 一种多索引散列表的存储和检索方法
WO2012071992A1 (en) * 2010-12-03 2012-06-07 Huawei Technologies Co., Ltd. Method and apparatus for high performance, updatable, and deterministic hash table for network equipment
CN102843287A (zh) * 2011-05-18 2012-12-26 株式会社日立制作所 计算机及标识符管理方法
CN104579948A (zh) * 2013-10-29 2015-04-29 国家计算机网络与信息安全管理中心 一种报文分片处理方法及装置

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7549056B2 (en) 1999-03-19 2009-06-16 Broadcom Corporation System and method for processing and protecting content
US7810152B2 (en) * 2002-05-08 2010-10-05 Broadcom Corporation System and method for securely controlling access to device functions
US6775281B1 (en) * 1999-09-30 2004-08-10 Mosaid Technologies, Inc. Method and apparatus for a four-way hash table
EP1175035B1 (en) * 2000-07-07 2005-12-28 Broadcom Corporation System and method for the concealment of device input parameters
US6633567B1 (en) * 2000-08-31 2003-10-14 Mosaid Technologies, Inc. Method and apparatus for searching a filtering database with one search operation
JP2002334114A (ja) * 2001-05-10 2002-11-22 Allied Tereshisu Kk テーブル管理方法及び装置
US7099325B1 (en) * 2001-05-10 2006-08-29 Advanced Micro Devices, Inc. Alternately accessed parallel lookup tables for locating information in a packet switched network
US6990102B1 (en) 2001-05-10 2006-01-24 Advanced Micro Devices, Inc. Parallel lookup tables for locating information in a packet switched network
US7586940B1 (en) * 2001-07-24 2009-09-08 Cisco Technology, Inc. Forwarding packets in a gateway performing network address translation (NAT)
US7203317B2 (en) * 2001-10-31 2007-04-10 Hewlett-Packard Development Company, L.P. System for enabling lazy-revocation through recursive key generation
US7058642B2 (en) * 2002-03-20 2006-06-06 Intel Corporation Method and data structure for a low memory overhead database
US7277426B2 (en) 2002-05-24 2007-10-02 Mosaid Technologies, Inc. Method and apparatus for reordering entries in a multi probe lookup
US7274694B1 (en) * 2003-01-09 2007-09-25 Cisco Technology, Inc. Defining link aggregation across a stack
US7069268B1 (en) * 2003-01-13 2006-06-27 Cisco Technology, Inc. System and method for identifying data using parallel hashing
JP3823089B2 (ja) * 2003-01-27 2006-09-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 固定長データ検索装置、及び固定長データ検索方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記録媒体
US7408930B2 (en) * 2003-02-07 2008-08-05 Fujitsu Limited Address learning to enable high speed routing table lookups
US7047453B2 (en) * 2003-11-13 2006-05-16 Nokia, Inc. Method and apparatus for managing network traffic using cyclical redundancy check hash functions
US7474653B2 (en) * 2003-12-05 2009-01-06 Hewlett-Packard Development Company, L.P. Decision cache using multi-key lookup
US8085772B2 (en) * 2003-12-31 2011-12-27 Intel Corporation Packet forwarding
US7359381B2 (en) * 2004-01-30 2008-04-15 Hewlett-Packard Development Company, L.P. Parallel hardware arrangement for correlating an external transport address pair with a local endpoint association
US7634655B2 (en) * 2004-02-13 2009-12-15 Microsoft Corporation Efficient hash table protection for data transport protocols
US7424016B2 (en) * 2005-04-05 2008-09-09 Cisco Technology, Inc. Distributing a stream of packets across available output paths within a network
US7680806B2 (en) * 2005-05-17 2010-03-16 Cisco Technology, Inc. Reducing overflow of hash table entries
US7822033B1 (en) * 2005-12-30 2010-10-26 Extreme Networks, Inc. MAC address detection device for virtual routers
US7894451B2 (en) 2005-12-30 2011-02-22 Extreme Networks, Inc. Method of providing virtual router functionality
CN100407705C (zh) * 2006-04-12 2008-07-30 华为技术有限公司 一种路由器控制方法和系统
TWI324471B (en) * 2006-06-01 2010-05-01 Via Tech Inc Mac address management method
US8345685B2 (en) * 2006-06-09 2013-01-01 Ethernety Networks Ltd Method and device for processing data packets
DE102007018403B4 (de) * 2007-04-17 2009-06-25 Vita-X Ag Computersystem und Verfahren zur Speicherung von Daten
US8312541B2 (en) * 2007-07-17 2012-11-13 Cisco Technology, Inc. Detecting neighbor discovery denial of service attacks against a router
US20090025351A1 (en) * 2007-07-26 2009-01-29 Harry T. Faeldan Tri-wheeled modular housing telescopic grass trimmer
US8463610B1 (en) * 2008-01-18 2013-06-11 Patrick J. Bourke Hardware-implemented scalable modular engine for low-power speech recognition
US7852486B2 (en) * 2008-02-07 2010-12-14 Board Of Regents, The University Of Texas System Wavelength and intensity monitoring of optical cavity
US7916735B2 (en) 2008-12-02 2011-03-29 At&T Intellectual Property I, L.P. Method for applying macro-controls onto IP networks using intelligent route indexing
CN101692651B (zh) * 2009-09-27 2014-12-31 中兴通讯股份有限公司 一种哈希查找表的方法和装置
US20110249676A1 (en) * 2010-04-09 2011-10-13 Bijendra Singh Method and System for Forwarding and Switching Traffic in a Network Element
US8605732B2 (en) 2011-02-15 2013-12-10 Extreme Networks, Inc. Method of providing virtual router functionality
EP2515499B1 (de) * 2011-04-21 2015-10-28 Wibu-Systems AG Verfahren zum Erzeugen eines kryptographischen Schlüssels für ein geschütztes digitales Datenobjekt auf Basis von aktuellen Komponenten eines Rechners
US9596222B2 (en) 2011-08-02 2017-03-14 Cavium, Inc. Method and apparatus encoding a rule for a lookup request in a processor
US8775776B2 (en) 2012-01-18 2014-07-08 International Business Machines Corporation Hash table using hash table banks
US8787373B2 (en) 2012-01-19 2014-07-22 International Business Machines Corporation Multicast miss notification for a distributed network switch
CN102682116B (zh) * 2012-05-14 2014-06-11 中兴通讯股份有限公司 基于哈希表的表项处理方法及其装置
US8854973B2 (en) 2012-08-29 2014-10-07 International Business Machines Corporation Sliced routing table management with replication
US9215171B2 (en) 2012-08-29 2015-12-15 International Business Machines Corporation Hashing-based routing table management
US9124527B2 (en) * 2012-08-29 2015-09-01 International Business Machines Corporation Sliced routing table management
US8792494B2 (en) 2012-09-14 2014-07-29 International Business Machines Corporation Facilitating insertion of device MAC addresses into a forwarding database
CN103874047B (zh) * 2012-12-17 2017-08-04 华为终端有限公司 服务信息发现方法及设备
US8854972B1 (en) * 2013-01-25 2014-10-07 Palo Alto Networks, Inc. Security device implementing flow lookup scheme for improved performance
US10474652B2 (en) * 2013-03-14 2019-11-12 Inpixon Optimizing wide data-type storage and analysis of data in a column store database
US9276846B2 (en) * 2013-03-15 2016-03-01 Cavium, Inc. Packet extraction optimization in a network processor
US9154934B2 (en) 2013-03-28 2015-10-06 Futurewei Technologies, Inc. System and method for pre-association discovery
US9363178B2 (en) 2013-12-18 2016-06-07 Telefonaktiebolaget L M Ericsson (Publ) Method, apparatus, and system for supporting flexible lookup keys in software-defined networks
US10419267B2 (en) * 2014-01-22 2019-09-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Network control software notification with advance learning
CN105099913B (zh) * 2014-04-21 2018-07-20 新华三技术有限公司 一种报文转发方法及设备
US9935831B1 (en) * 2014-06-03 2018-04-03 Big Switch Networks, Inc. Systems and methods for controlling network switches using a switch modeling interface at a controller
JP6520259B2 (ja) 2015-03-18 2019-05-29 富士通株式会社 通信装置及び通信制御方法
US9898069B1 (en) 2016-03-31 2018-02-20 Amazon Technologies, Inc. Power reduction methods for variable sized tables
US10003555B1 (en) 2016-05-06 2018-06-19 Amazon Technologies, Inc. Power management of routing tables using vertical scaling
US10200312B1 (en) 2016-05-06 2019-02-05 Amazon Technologies, Inc. Power management of routing tables using horizontal scaling
US11539622B2 (en) 2020-05-04 2022-12-27 Mellanox Technologies, Ltd. Dynamically-optimized hash-based packet classifier
US11782895B2 (en) * 2020-09-07 2023-10-10 Mellanox Technologies, Ltd. Cuckoo hashing including accessing hash tables using affinity table
US11917042B2 (en) 2021-08-15 2024-02-27 Mellanox Technologies, Ltd. Optimizing header-based action selection
US11929837B2 (en) 2022-02-23 2024-03-12 Mellanox Technologies, Ltd. Rule compilation schemes for fast packet classification
US11968285B2 (en) 2022-02-24 2024-04-23 Mellanox Technologies, Ltd. Efficient memory utilization for cartesian products of rules

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5032987A (en) 1988-08-04 1991-07-16 Digital Equipment Corporation System with a plurality of hash tables each using different adaptive hashing functions
JPH0285927A (ja) * 1988-09-22 1990-03-27 Hitachi Vlsi Eng Corp 記憶装置
US5027350A (en) 1988-10-20 1991-06-25 Hewlett-Packard Method and apparatus for providing a local area network bridge
US5371499A (en) * 1992-02-28 1994-12-06 Intersecting Concepts, Inc. Data compression using hashing
US5473607A (en) * 1993-08-09 1995-12-05 Grand Junction Networks, Inc. Packet filtering for data networks
US6091725A (en) * 1995-12-29 2000-07-18 Cisco Systems, Inc. Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US5802054A (en) 1996-08-15 1998-09-01 3Com Corporation Atomic network switch with integrated circuit switch nodes
US5949786A (en) * 1996-08-15 1999-09-07 3Com Corporation Stochastic circuit identification in a multi-protocol network switch
US5914938A (en) 1996-11-19 1999-06-22 Bay Networks, Inc. MAC address table search unit
US6034958A (en) * 1997-07-11 2000-03-07 Telefonaktiebolaget Lm Ericsson VP/VC lookup function
US6223172B1 (en) * 1997-10-31 2001-04-24 Nortel Networks Limited Address routing using address-sensitive mask decimation scheme
US6430184B1 (en) * 1998-04-10 2002-08-06 Top Layer Networks, Inc. System and process for GHIH-speed pattern matching for application-level switching of data packets
US6775281B1 (en) * 1999-09-30 2004-08-10 Mosaid Technologies, Inc. Method and apparatus for a four-way hash table
US6690667B1 (en) * 1999-11-30 2004-02-10 Intel Corporation Switch with adaptive address lookup hashing scheme
US6865577B1 (en) * 2000-11-06 2005-03-08 At&T Corp. Method and system for efficiently retrieving information from a database

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100378725C (zh) * 2003-09-04 2008-04-02 摩托罗拉公司 一种产生用于提供与文本对应的语音的信号的方法
CN100452043C (zh) * 2006-09-06 2009-01-14 南京中兴软创科技有限责任公司 一种多索引散列表的存储和检索方法
WO2012071992A1 (en) * 2010-12-03 2012-06-07 Huawei Technologies Co., Ltd. Method and apparatus for high performance, updatable, and deterministic hash table for network equipment
CN103238145A (zh) * 2010-12-03 2013-08-07 华为技术有限公司 用于网络装备中的高性能、可更新和确定的哈希表的方法和设备
CN103238145B (zh) * 2010-12-03 2016-11-16 华为技术有限公司 用于网络装备中的高性能、可更新和确定的哈希表的方法和设备
CN102843287A (zh) * 2011-05-18 2012-12-26 株式会社日立制作所 计算机及标识符管理方法
CN102843287B (zh) * 2011-05-18 2015-05-06 株式会社日立制作所 计算机及标识符管理方法
CN104579948A (zh) * 2013-10-29 2015-04-29 国家计算机网络与信息安全管理中心 一种报文分片处理方法及装置

Also Published As

Publication number Publication date
JP2003510963A (ja) 2003-03-18
US6775281B1 (en) 2004-08-10
US20050147113A1 (en) 2005-07-07
US20030026259A1 (en) 2003-02-06
JP4482259B2 (ja) 2010-06-16
AU7264400A (en) 2001-04-30
CN1179523C (zh) 2004-12-08
GB2370187A (en) 2002-06-19
WO2001024440A3 (en) 2001-11-08
US7990958B2 (en) 2011-08-02
CA2385331C (en) 2008-08-12
US6862287B2 (en) 2005-03-01
CA2385331A1 (en) 2001-04-05
GB0207003D0 (en) 2002-05-08
WO2001024440A2 (en) 2001-04-05
GB2370187B (en) 2003-12-10

Similar Documents

Publication Publication Date Title
CN1179523C (zh) 用于四路散列表的方法和装置
CN1270487C (zh) 用于三重内容可寻址存储器(tcam)表管理的方法和设备
CN102124703B (zh) 以太网网桥的交换表
US8208408B2 (en) Tree-based node insertion method and memory device
US7827182B1 (en) Searching for a path to identify where to move entries among hash tables with storage for multiple entries per bucket during insert operations
US8855121B2 (en) Congestion management in a network
CN1653763A (zh) 在基于硬件的包交换中用于存储器有效的快速vlan查找和插入的方法和设备
CN105426408B (zh) 一种多索引的数据处理方法及装置
US7373514B2 (en) High-performance hashing system
US20040230583A1 (en) Comparison tree data structures of particular use in performing lookup operations
EP2040184A1 (en) Database and database processing methods
CN1826591A (zh) 反向路径转发保护
US7162481B2 (en) Method for increasing storage capacity in a multi-bit trie-based hardware storage engine by compressing the representation of single-length prefixes
JPH077524A (ja) 通信加入者のアドレス識別子へのアクセス方法
WO2000051298B1 (en) Network router search engine using compressed tree forwarding table
CN1543150A (zh) 分组分类装置和使用字段级特里结构的方法
CN101043421A (zh) 一种基于内存的ip地址最长匹配快速查找的方法
CN1675635A (zh) 具有增强能力的关联存储器
TW201618505A (zh) 用於網路交換機中的可擴展且靈活的表格搜索的裝置和方法
CN100397816C (zh) 在网络设备中对接收数据包进行分类的方法
CN1333616A (zh) 路由选择检索系统及其方法以及使用的路由器
CN1581846A (zh) 一种检索ip地址的方法
CN115967675A (zh) 一种基于布隆过滤器的ndn路由表建立查找方法
US20050102428A1 (en) Memory management for ternary CAMs and the like
CN1852259A (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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20090116

Address after: Delaware

Patentee after: Mosaid Technologies Inc.

Address before: Ontario, Canada

Patentee before: Mosaid Tech Inc

ASS Succession or assignment of patent right

Owner name: STEC GROUP AB CO.,LTD.

Free format text: FORMER OWNER: MOSAID TECHNOLOGIES INCORP.

Effective date: 20090116

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20041208