最长匹配地址查询的方法和装置制造方法及图纸

技术编号:4225443 阅读:166 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及最长匹配地址查询的方法和装置,更具体地,提出了一种 在给出可用于搜索的查询表时对查询表进行增量更新的方法和装置。为了 增加或删除查询表,在提供对查询表中的第一存储空间中存储的第一组路 由的访问时,把第二组路由存储在查询表中的第二存储空间中。通过子树 入口中存储的第一指针提供对第一存储空间的访问。将第二组路由存储到 第二存储空间后,通过用指向第二存储空间的第二指针替换子树入口中存 储的第一指针,将访问切换到第一存储空间中的第一组路由。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】

因特网是由路由器连接的一组网络。路由器维护表示每个可能的目的网络,即接收的数据包应被转发到的下一跳的路由表。下一跳可以是另一个路由器或最终的目的地。
技术介绍
在路由器中的端口接收的网际协议("工P")数据包包括一个IP目的地址。该IP目的地址是该IP数据包的最终目的地。目前,存在两种版本的IP, IP版本4 ( "IPv4")和IP版本6 ( "IPv6" ) 。 IPv4提供包含在用来存储IP目的地址的数据包中IP首部中的32位字段。根据存储在IP首部中的IP目的地址,如果目的地在本地网,路由器转发接收到的与下一跳路由器或最终目的地相连的数据包。一个32位的IPv4目的地址提供40亿个可能的路由。 一个互连网路由器通常存储40亿个可能的路由中的5万个路由。然而,存储的路由数量会随着互连网的发展和IPv6的普及而增加。起初,IP地址空间分为A, B和C三类IP地址。每个IP地址空间分为网络地址和主机地址。A类可容纳126个网络,每个网络可包含16, 000, 000台主机。B类可容纳16382个网络,每个网络可包含64, 000台主机,以及C类可容纳2, 000, 000个网络,每个网络可包含256台主机。然而,将IP地址空间划分为不同的类减少了可用IP地址的数量。C类只允许每个网络最多256台主机对于大多数组织来说太少了。因此,大多数组织分配到一个B类地址,多达64,000个主机地址,这些地址即使该组织用不了也不能由其它组织使用。具有B类IP地址的组织的主机都在16位最高有效位("MSBs")中存储相同的网络地址,例如27. 32. xx. xx。引入无级域间路由("CIDR")以便释放未使用的IP主机地址。剩余的未使用网络分配给规模不同的组织。一个需要500个地址的组织得到500个连续的地址。例如, 一个组织可以分配到以128. 32. xx为起始的500个可用地址。自从引入了无级域间路由,增加了存储在路由器中的路由数量。无级域间路由需要最长前缀匹配来寻找相应路由来代替为找到相应的工P目的地址的下一跳而寻找匹配的网络地址。例如,因为128. 32. 4. xx可能已经分配给其它需要不同下一跳的组织,所以在B类IP地址的16MSB,例如128. xx. xx之后,不再停止寻找。一种用来査询关键字最长前缀匹配的方法是使用二叉树搜索。二叉树搜索与输入的32位逐位匹配到32层,需要32次搜索才能找到与32位关键字匹配的入口。另一种搜索匹配的方法是使用Patricia树。如果二叉树没有入口的叶子,Patricia树减少所需的搜索次数。Brodnick等人于 1998年5月11日提交的题为"快速路由查询的方法和系统",序号为PCT/SE98/00854的PCT申请中描述了有效地搜索与IP目的地址有关的下一跳的另一种方法。Brodnick描述的方法通过不再存储重复路由来减少所存储的下一跳的数量。通过减少下一跳的数量,减小了对内存的需求,因此路由査询表可以存储在快速超高速缓冲存储器中。Brodnick等人将二叉树划分为三层。将二叉树划分为三层使搜索次数减少到三。第一层中的索引入口表示搜索是否可以利用从入口获得的路由在第一层结束,或者该搜索必须利用IP目的地址另外的部分将继续到下一层。图1A说明了表示二叉树第一层的现有技术的64K (65536)位表。64K位表30代表在深度16层的二叉树的叶子或节点44,每个节点44对应一位。位表被划分为长度为16的位屏蔽。在64K位表中共有212 = 4096个位屏蔽。图1A中显示了一个位屏蔽。如果有子树或路由索引存储在与节点44对应的指针数组中,则位表30中的一位赋置为"1"。如果该节点与前一节点44共享路由入口,则位表30中的一位赋置为"0"。图1B说明了在超高速缓冲存储器中实现查询表的当前技术。査询表包括码字数组36,基索引数组34和映射表40。图1B中还显示了 32位IP地址38。针对位表30 (图1A)中的每个位屏蔽,将码字46存储在码字数组36中。码字46包括一个6位的值46a和一个10位的位移46b。针对码字数组36的数组中的每四个码字46,将基索引42存储在基索引数组34中。码字数组36,基索引数组34和映射表40用来在指针数组(未显示)中选择指针。指针存储一个路由索引或一个索引以便执行进一步的搜索。通过在码字数组36中选择码字46和在基索引数组34中选择基索引42来在指针数组中选择一组指针。利用IP地址38的前12位50来选择码字46。利用IP地址38的前10位来选择基索引42。利用映射表32在一组指针中选择正确的指针。所选码字36中10位的值46b作为到映射表32的索引。映射表32将一个位屏蔽中的位数映射到4位的位移。该位移指定在指针数组中所选的一组指针中的指针。10位的值46b选择映射表32中的行,并且IP地址52的位19: 16选择4位的位移54。这样,搜索指针需要下面的超高速缓冲存储器访问(1)读取16位码字46; (2)读取16位基地址42; (3)从映射表32中读取4位位移54; (4)从指针索引读取指针,其中指针索引是基地址42,码字位移46a和4位位移54之和。二叉树的每一层需要同样的存储器访问。这样,3层的搜索需要访问存储器12次。
技术实现思路
David A. Brown提交的代理案编号2037. 2004 — 001,题为"长匹配地址查询的方法和装置"描述了用来执行多层搜索符合关键字的值的査询表。能够存储在查询表中的路由索引的数量由査询表中存储单元的数量来限制。根据本专利技术的原理,给出包括第一查询单元和第二査询单元的査询表。第一査询单元接收关键字并且通过第一单元中的多层搜索提供第一结果。第二査询单元接收关键字并且通过第二单元中的多层搜索提供第二结果。第一査询单元和第二查询单元二者都并行地接收关键字,但根据第一结果和第二结果,只有一个单元提供只存储在一个査询单元中的关键字的最终结果。根据存储在查询表中的最终结果的总数将最终结果分配到表中。关键 字可以是IP地址,最终结果是IP地址的路由索引。由关键字索引的第一查询单元中的第一存储单元存储最终结果,由关 键字索引的第二查询单元中的第二存储单元存储最终结果存储在第一査 询单元的指示。第一査询单元和第二查询单元都包括多个映射程序层并且 每一个映射程序层包括用于存储结果的存储单元。在一个实施例中,把与存储在第一查询单元中的多个映射程序层的任 何一层中的单元中的关键词对应的最终结果转发到第二查询单元,并由第 一查询单元提供。在另一个实施例中,由存储最终结果的查询单元提供与该关键字对应 的最终结果。附图说明图1A示出代表二叉树第一层的现有技术的位表; 图1B示出在超高速缓冲存储器中实现的现有技术的査询表; 图2A示出根据本专利技术原理的最长匹配前缀査询表; 图2B示出存储在图2A所示的查询表中的路由索引的二叉树表示; 图3示出根据本专利技术原理的40位关键字的最长匹配前缀査询表; 图4示出能够存储在图2A所示的直接映射的映射程序的映射程序入 口的类型;图5示出对应图2B所示的映射程序层2 112b中的节点的映射程序; 图6A是子树的二叉树表示;图6B示出对应图6A所示的子树底层中的节点的图5所示的本文档来自技高网
...

【技术保护点】
一种更新查询表的装置,包括: 指向第一子树入口的第一指针,第一子树入口提供对第一存储空间中存储的第一组路由的访问; 当通过第一指针提供对第一存储空间中存储的第一组路由的访问时,用来存储第二组路由和相关的第二子树入口的第二存储空间 ;和 通过用指向第二子树入口的第二指针替换第一指针来提供对第二组路由的访问的逻辑,在第二组路由存储到第二存储空间中之后,第二子树入口提供对第二存储空间的访问。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:大卫·A·布朗
申请(专利权)人:赛泰克集团AB有限责任公司
类型:发明
国别省市:US

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1