转发表操作的方法、装置、计算机设备及可读存储介质与流程

文档序号:17861469发布日期:2019-06-11 22:53阅读:131来源:国知局
转发表操作的方法、装置、计算机设备及可读存储介质与流程

本发明涉及数据网络领域,尤其涉及一种转发表操作的方法、装置、计算机设备及可读存储介质。



背景技术:

为了解决现有网络中存在的源地址欺骗、多宿主问题、无法做更细粒度的流量划分等问题,提出了域间二维路由协议。域间二维路由协议通过在路由转发的过程中增加源地址匹配,获得更细粒度的流量切分,以及更灵活的负载均衡。然而在获得这些的同时,新增的源地址信息也为转发表的增删查改提出了新的挑战。传统转发表中通常只有两项,一项为目的前缀,一项为下一跳地址。转发表转换成转发表之后往往也只有目的前缀和下一跳地址,所以新的转发表结构设计成为一个难点。



技术实现要素:

本发明的主要目的在于提出一种转发表操作的方法、装置、计算机设备及可读存储介质,解决了以上技术问题。

根据本发明的一个方面,提供了一种转发表操作的方法,所述方法包括:根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,所述转发表为二维树结构;在找到相同的目的前缀及源前缀的情况下,依据查找到的目的前缀及源前缀,得到下一跳地址;在没有找到相同的目的前缀及源前缀的情况下,添加解析所述报文得到的目的前缀、源前缀及对应的下一跳地址,以增加所述转发表的表项。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,包括:解析接收的报文,得到目的地址及源地址;依据目的地址的目的前缀及源地址的源前缀,在所述转发表中查找相同的目的前缀;在找到相同的目的前缀的情况下,在所述转发表中查找相同的源前缀。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,还包括:将查找到的源前缀缓存入fifo存储器,以根据源前缀和目的前缀完成下一跳地址的查找。

可选的,所述依据查找到的目的前缀及源前缀,得到下一跳地址,包括:依据查找到的目的前缀及源前缀,找到下一跳地址的索引;依据所述下一跳地址的索引,查找到所述下一跳地址的存放列表,以找到所述下一跳地址。

可选的,所述转发表的存储结构包括目的前缀树及源前缀树,所述目的前缀树的叶节点指向所述源前缀树,所述源前缀树的叶子节点指向下一跳地址的索引,所述下一跳地址的索引指向下一跳地址的存放列表。

可选的,所述目的前缀树、所述源前缀树及所述下一跳地址的索引分别存入三个存储器。

可选的,在所述目的前缀树上添加新的叶子节点,且添加所述叶子节点指向的新的源前缀树,以实现插入新的目的前缀。

可选的,在所述目的前缀树上删除目标叶子节点,同时删除所述目标叶子节点指向的源地址树,以实现删除目标目的前缀。

可选的,依次通过所述删除目标目的前缀及插入新的目的前缀,以实现所述目的前缀树的更新。

可选的,在所述源前缀树上添加新的叶子节点,以实现插入新的源前缀。

可选的,在所述源前缀树上删除目标叶子节点,以实现删除目标源前缀。

可选的,依次通过所述删除目标源前缀及插入新的源前缀,以实现所述源前缀树的更新。

根据本发明的第二个方面,提供了一种转发表操作的装置,所述装置包括:查找模块,用于根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,所述转发表为二维树结构;得到模块,用于在找到相同的目的前缀及源前缀的情况下,依据查找到的目的前缀及源前缀,得到下一跳地址;增加模块,用于在没有找到相同的目的前缀及源前缀的情况下,添加解析所述报文得到的目的前缀、源前缀及对应的下一跳地址,以增加所述转发表的表项。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,包括:解析模块,用于解析接收的报文,得到目的地址及源地址;目的前缀查找模块,用于依据目的地址的目的前缀及源地址的源前缀,在所述转发表中查找相同的目的前缀;源前缀查找模块,用于在找到相同的目的前缀的情况下,在所述转发表中查找相同的源前缀。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,还包括:缓存模块,用于将查找到的源前缀缓存入fifo存储器,以根据源前缀和目的前缀完成下一跳地址的查找。

可选的,所述依据查找到的目的前缀及源前缀,得到下一跳地址,包括:索引模块,用于依据查找到的目的前缀及源前缀,找到下一跳地址的索引;列表模块,用于依据所述下一跳地址的索引,查找到所述下一跳地址的存放列表,以找到所述下一跳地址。

根据本发明的第三个方面,提供了一种计算机设备,包括处理器和存储器;所述存储器用于存储计算机指令,所述处理器用于运行所述存储器存储的计算机指令,以实现上述的转发表操作的方法。

所述方法包括:根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,所述转发表为二维树结构;在找到相同的目的前缀及源前缀的情况下,依据查找到的目的前缀及源前缀,得到下一跳地址;在没有找到相同的目的前缀及源前缀的情况下,添加解析所述报文得到的目的前缀、源前缀及对应的下一跳地址,以增加所述转发表的表项。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,包括:解析接收的报文,得到目的地址及源地址;依据目的地址的目的前缀及源地址的源前缀,在所述转发表中查找相同的目的前缀;在找到相同的目的前缀的情况下,在所述转发表中查找相同的源前缀。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,还包括:将查找到的源前缀缓存入fifo存储器,以根据源前缀和目的前缀完成下一跳地址的查找。

可选的,所述依据查找到的目的前缀及源前缀,得到下一跳地址,包括:依据查找到的目的前缀及源前缀,找到下一跳地址的索引;依据所述下一跳地址的索引,查找到所述下一跳地址的存放列表,以找到所述下一跳地址。

可选的,所述转发表的存储结构包括目的前缀树及源前缀树,所述目的前缀树的叶节点指向所述源前缀树,所述源前缀树的叶子节点指向下一跳地址的索引,所述下一跳地址的索引指向下一跳地址的存放列表。

可选的,所述目的前缀树、所述源前缀树及所述下一跳地址的索引分别存入三个存储器。

可选的,在所述目的前缀树上添加新的叶子节点,且添加所述叶子节点指向的新的源前缀树,以实现插入新的目的前缀。

可选的,在所述目的前缀树上删除目标叶子节点,同时删除所述目标叶子节点指向的源地址树,以实现删除目标目的前缀。

可选的,依次通过所述删除目标目的前缀及插入新的目的前缀,以实现所述目的前缀树的更新。

可选的,在所述源前缀树上添加新的叶子节点,以实现插入新的源前缀。

可选的,在所述源前缀树上删除目标叶子节点,以实现删除目标源前缀。

可选的,依次通过所述删除目标源前缀及插入新的源前缀,以实现所述源前缀树的更新。

根据本发明的第四个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的转发表操作的方法。

所述方法包括:根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,所述转发表为二维树结构;在找到相同的目的前缀及源前缀的情况下,依据查找到的目的前缀及源前缀,得到下一跳地址;在没有找到相同的目的前缀及源前缀的情况下,添加解析所述报文得到的目的前缀、源前缀及对应的下一跳地址,以增加所述转发表的表项。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,包括:解析接收的报文,得到目的地址及源地址;依据目的地址的目的前缀及源地址的源前缀,在所述转发表中查找相同的目的前缀;在找到相同的目的前缀的情况下,在所述转发表中查找相同的源前缀。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,还包括:将查找到的源前缀缓存入fifo存储器,以根据源前缀和目的前缀完成下一跳地址的查找。

可选的,所述依据查找到的目的前缀及源前缀,得到下一跳地址,包括:依据查找到的目的前缀及源前缀,找到下一跳地址的索引;依据所述下一跳地址的索引,查找到所述下一跳地址的存放列表,以找到所述下一跳地址。

可选的,所述转发表的存储结构包括目的前缀树及源前缀树,所述目的前缀树的叶节点指向所述源前缀树,所述源前缀树的叶子节点指向下一跳地址的索引,所述下一跳地址的索引指向下一跳地址的存放列表。

可选的,所述目的前缀树、所述源前缀树及所述下一跳地址的索引分别存入三个存储器。

可选的,在所述目的前缀树上添加新的叶子节点,且添加所述叶子节点指向的新的源前缀树,以实现插入新的目的前缀。

可选的,在所述目的前缀树上删除目标叶子节点,同时删除所述目标叶子节点指向的源地址树,以实现删除目标目的前缀。

可选的,依次通过所述删除目标目的前缀及插入新的目的前缀,以实现所述目的前缀树的更新。

可选的,在所述源前缀树上添加新的叶子节点,以实现插入新的源前缀。

可选的,在所述源前缀树上删除目标叶子节点,以实现删除目标源前缀。

可选的,依次通过所述删除目标源前缀及插入新的源前缀,以实现所述源前缀树的更新。

本发明有益效果如下:通过上述技术方案,在完成目的前缀及源前缀双重条件下的查询时,可以更加快速精准的完成下一跳地址的查询,同时,对报文的分流有着积极作用,可有效的缓解报文堵塞,还能通过源地址过滤掉部分的攻击报文,使得攻击报文在网络中就被消耗掉。而且,该转发表中的表项包括源前缀及目的前缀,且转发表为二维树结构,其中一级树是目的前缀,一级数的叶子节点存有指向二级树的指针,二级树中存放由源前缀,在转发表中完成了目的前缀与源前缀的关联,就此可以快速的完成转发表中的表项的增删。

附图说明

图1为本发明第一实施例的流程框图;

图2为转发表的结构示意图;

图3为转发表的存储结构;

图4为下一跳地址的查找流程图;

图5为本发明第二实施例的流程框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。

为了便于理解本发明实施例,对本发明第一实施例提供的一种转发表操作的方法。

第一实施例:

图1为本实施例的原理流程框图。根据图1所示,本发明第一实施例提供了一种转发表的操作方法,所述方法包括:

s1:根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,所述转发表为二维树结构;

s2:在找到相同的目的前缀及源前缀的情况下,依据查找到的目的前缀及源前缀,得到下一跳地址;

s3:在没有找到相同的目的前缀及源前缀的情况下,添加解析所述报文得到的目的前缀、源前缀及对应的下一跳地址,以增加所述转发表的表项。

本发明第一实施例提供的一种转发表操作的方法,在完成目的前缀及源前缀双重条件下的查询时,可以更加快速精准的完成下一跳地址的查询,同时,对报文的分流有着积极作用,可有效的缓解报文堵塞,还能通过源地址过滤掉部分的攻击报文,使得攻击报文在网络中就被消耗掉。而且,该转发表中的表项包括源前缀及目的前缀,且转发表为二维树结构,其中一级树是目的前缀,一级数的叶子节点存有指向二级树的指针,二级树中存放由源前缀,在转发表中完成了目的前缀与源前缀的关联,就此可以快速的完成转发表中的表项的增删。

具体的,根据图1所示,该方法包括:

s1:根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,所述转发表为二维树结构;

可选的,解析接收的报文,得到目的地址及源地址;依据目的地址的目的前缀及源地址的源前缀,在所述转发表中查找相同的目的前缀;具体的,需要对接收到的报文进行解析,以得到相应的目的地址及源地址。因为目的前缀及源前缀包括相应的目的前缀及源前缀,依据目的地址及源地址在转发表中查找是否有满足需求的表项,该表项中的目的前缀及源前缀与该目的前缀及该源地址的目的前缀及源前缀相同。此外,需要注明,在本实施例中,需要先在转发表中查找目的前缀,在目的前缀查找成功的的情况下,再从所述转发表中查找源前缀。

可选的,在查找到源前缀后,需要将查找到的源前缀缓存入fifo存储器,以根据源前缀和目的前缀完成下一跳地址的查找。

图2为转发表的结构示意图。根据图2所示,针对转发表,其每一个表项均由源前缀、目的前缀及下一跳地址的索引构成。初始转发表的生成是认为配置文件完成的,即初始转发表的生成是通过导入配置文件或命令交互完成的,在配置过程中需要使用关键字指明源地址和掩码,才能成功设置一条默认的二维路由。而且转发表的存储采用二维树结构,如图2所示,一级树是目的前缀,体现以目的前缀为优先的原则,叶子节点存有二级树的指针,二级树中存放由源前缀,按照最长匹配的原则进行查找,找到的叶子节点是指向下一跳的地址。两级树均是由trie树组成,通常由二叉(0和1)链表存储。

s2:在找到相同的目的前缀及源前缀的情况下,依据查找到的目的前缀及源前缀,得到下一跳地址;

图4为下一跳地址的查找流程图。根据图4可知,可选的,依据查找到的目的前缀及源前缀,找到下一跳地址的索引;依据所述下一跳地址的索引,查找到所述下一跳地址的存放列表,以找到所述下一跳地址。

s3:在没有找到相同的目的前缀及源前缀的情况下,添加解析所述报文得到的目的前缀、源前缀及对应的下一跳地址,以增加所述转发表的表项。

在没有找到与保文中的目的前缀及源前缀相同的表项时,就将从报文中得到的目的前缀及源前缀添加至转发表中形成新的表项,完成转发表的建立及学习。

就此,本发明第一实施例提供的一种转发表操作的方法,在完成目的前缀及源前缀双重条件下的查询时,可以更加快速精准的完成下一跳地址的查询,同时,对报文的分流有着积极作用,可有效的缓解报文堵塞,还能通过源地址过滤掉部分的攻击报文,使得攻击报文在网络中就被消耗掉。而且,该转发表中的表项包括源前缀及目的前缀,且转发表为二维树结构,其中一级树是目的前缀,一级数的叶子节点存有指向二级树的指针,二级树中存放由源前缀,在转发表中完成了目的前缀与源前缀的关联,就此可以快速的完成转发表中的表项的增删。

图3为转发表的存储结构。根据图3所示,针对转发表,其在路由器中实现则是将一张表拆分为源表、目的表,具体内容为前缀、掩码和索引。通过源、目的索引可以在转发矩阵里查找到下一跳的索引,按照索引去下一跳列表里查找就可以查找到转发到的端口号。

可选的,根据图2所示,所述转发表的存储结构包括一级树及二级树,即转发表包括目的前缀树及源前缀树,所述目的前缀树的叶节点指向所述源前缀树,所述源前缀树的叶子节点指向下一跳地址的索引,所述下一跳地址的索引指向下一跳地址的存放列表。

可选的,所述目的前缀树、所述源前缀树及所述下一跳地址的索引分别存入三个存储器。优选的,根据图3所示,在数据平面上采用三态内容寻址存储器和静态随机存取存储器存储转发表。所述目的前缀树及所述源前缀树分别存入两个三态内容寻址存储器,所述下一跳地址的索引存储于静态随机存取存储器。按照目的地址查找存放目的前缀的三态内容寻址存储器及查找到源前缀所在的三态内容寻址存储器地址,再通过源地址查找存放源前缀的三态内容寻址存储器,在存放下一跳索引的静态随机存取存储器中找到下一跳地址的索引(由于下一跳信息比较长,因此在静态随机存取存储器中存储的是一张映射表),再根据静态随机存取存储器中存放的索引找到下一跳地址。

图4为下一跳地址的查找流程图。可选的,根据图4所示,当一个数据包(报文)到达路由器时,路由器利用三态内容寻址存储器解析出数据包中的目的地址和源地址,然后在转发表中依次查找相同的目的前缀和源前缀,借此得到下一跳地址的映射值。为了避免静态随机存取存储器和三态内容寻址存储器时钟不同步引出的问题,将这些信息缓存入fifo存储器中,以便于根据源前缀和目的前缀完成下一跳地址的查找。。如果索引是空则使用默认映射值。利用静态随机存取存储器和三态内容寻址存储器的分离结构,这几个步骤可以同步进行,减少了完成查找下一跳地址所需要的时钟周期。

可选的,在本发明第一实施例中的转发表中,只需在所述目的前缀树上添加新的叶子节点,且添加所述叶子节点指向的新的源前缀树,就可以实现插入新的目的前缀。

可选的,在所述目的前缀树上删除目标叶子节点,同时删除所述目标叶子节点指向的源地址树,也就实现了删除目标目的前缀。

可选的,依次通过所述删除目标目的前缀及插入新的目的前缀,也就实现了所述目的前缀树的更新。当然,更新操作包括目标目的前缀的添加、目标目的前缀的删除和目标目的前缀的修改三种。

可选的,在所述源前缀树上添加新的叶子节点,以实现插入新的源前缀。

可选的,在所述源前缀树上删除目标叶子节点,以实现删除目标源前缀。

可选的,依次通过所述删除目标源前缀及插入新的源前缀,以实现所述源前缀树的更新。当然,更新操作包括源前缀的添加、目源前缀的删除和源前缀的修改三种。

可选的,下一跳插入则需要在下一跳索引表中新建索引和表项,如果已经有该表项则将该表项对应的计数器加一。

可选的,下一跳删除则需要查看计数器,如果没有源地址树指向该索引,则在索引表中删除该表项,如果还有源地址指向该索引则计数器减一。

就此可以看出,本实施例中的转发表的更新操作与传统路由器最大的不同就是一次更新不再是简单的单一数值修改,而可能是一行或者一列的数值修改。

为了便于理解本发明实施例,对本发明第二实施例提供的一种转发表的操作装置。

第二实施例:

图5为本实施例的路程框图。根据图5所示,本发明第二实施例提供了一种转发表操作的装置,所述装置包括:

查找模块,用于根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,所述转发表为二维树结构;得到模块,用于在找到相同的目的前缀及源前缀的情况下,依据查找到的目的前缀及源前缀,得到下一跳地址;增加模块,用于在没有找到相同的目的前缀及源前缀的情况下,添加解析所述报文得到的目的前缀、源前缀及对应的下一跳地址,以增加所述转发表的表项。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,包括:解析模块,用于解析接收的报文,得到目的地址及源地址;目的前缀查找模块,用于依据目的地址的目的前缀及源地址的源前缀,在所述转发表中查找相同的目的前缀;源前缀查找模块,用于在找到相同的目的前缀的情况下,在所述转发表中查找相同的源前缀。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,还包括:缓存模块,用于将查找到的源前缀缓存入fifo存储器,以根据源前缀和目的前缀完成下一跳地址的查找。

可选的,所述依据查找到的目的前缀及源前缀,得到下一跳地址,包括:索引模块,用于依据查找到的目的前缀及源前缀,找到下一跳地址的索引;列表模块,用于依据所述下一跳地址的索引,查找到所述下一跳地址的存放列表,以找到所述下一跳地址。

可选的,所述转发表的存储结构包括目的前缀树及源前缀树,所述目的前缀树的叶节点指向所述源前缀树,所述源前缀树的叶子节点指向下一跳地址的索引,所述下一跳地址的索引指向下一跳地址的存放列表。

可选的,所述目的前缀树、所述源前缀树及所述下一跳地址的索引分别存入三个存储器。优选的,所述目的前缀树及所述源前缀树分别存入两个三态内容寻址存储器,所述下一跳地址的索引存储于静态随机存取存储器。

可选的,在所述目的前缀树上添加新的叶子节点,且添加所述叶子节点指向的新的源前缀树,以实现插入新的目的前缀。

可选的,在所述目的前缀树上删除目标叶子节点,同时删除所述目标叶子节点指向的源地址树,以实现删除目标目的前缀。

可选的,依次通过所述删除目标目的前缀及插入新的目的前缀,以实现所述目的前缀树的更新。

可选的,在所述源前缀树上添加新的叶子节点,以实现插入新的源前缀。

可选的,在所述源前缀树上删除目标叶子节点,以实现删除目标源前缀。

可选的,依次通过所述删除目标源前缀及插入新的源前缀,以实现所述源前缀树的更新。

本发明第二实施例提供的一种转发表操作的装置,利用查找模块、得到模块及增加模块,在完成目的前缀及源前缀双重条件下的查询时,可以更加快速精准的完成下一跳地址的查询,同时,对报文的分流有着积极作用,可有效的缓解报文堵塞,还能通过源地址过滤掉部分的攻击报文,使得攻击报文在网络中就被消耗掉。而且,该转发表中的表项包括源前缀及目的前缀,且转发表为二维树结构,其中一级树是目的前缀,一级数的叶子节点存有指向二级树的指针,二级树中存放由源前缀,在转发表中完成了目的前缀与源前缀的关联,就此可以快速的完成转发表中的表项的增删。

为了便于理解本发明实施例,对本发明第三实施例提供的一种计算机设备。

第三实施例:

本发明第三实施例提供了一种计算机设备,包括处理器和存储器;所述存储器用于存储计算机指令,所述处理器用于运行所述存储器存储的计算机指令,以实现上述的转发表操作的方法。

所述方法包括:根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,所述转发表为二维树结构;在找到相同的目的前缀及源前缀的情况下,依据查找到的目的前缀及源前缀,得到下一跳地址;在没有找到相同的目的前缀及源前缀的情况下,添加解析所述报文得到的目的前缀、源前缀及对应的下一跳地址,以增加所述转发表的表项。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,包括:解析接收的报文,得到目的地址及源地址;依据目的地址的目的前缀及源地址的源前缀,在所述转发表中查找相同的目的前缀;在找到相同的目的前缀的情况下,在所述转发表中查找相同的源前缀。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,还包括:将查找到的源前缀缓存入fifo存储器,以根据源前缀和目的前缀完成下一跳地址的查找。

可选的,所述依据查找到的目的前缀及源前缀,得到下一跳地址,包括:依据查找到的目的前缀及源前缀,找到下一跳地址的索引;依据所述下一跳地址的索引,查找到所述下一跳地址的存放列表,以找到所述下一跳地址。

可选的,所述转发表的存储结构包括目的前缀树及源前缀树,所述目的前缀树的叶节点指向所述源前缀树,所述源前缀树的叶子节点指向下一跳地址的索引,所述下一跳地址的索引指向下一跳地址的存放列表。

可选的,所述目的前缀树、所述源前缀树及所述下一跳地址的索引分别存入三个存储器。优选的,所述目的前缀树及所述源前缀树分别存入两个三态内容寻址存储器,所述下一跳地址的索引存储于静态随机存取存储器。

可选的,在所述目的前缀树上添加新的叶子节点,且添加所述叶子节点指向的新的源前缀树,以实现插入新的目的前缀。

可选的,在所述目的前缀树上删除目标叶子节点,同时删除所述目标叶子节点指向的源地址树,以实现删除目标目的前缀。

可选的,依次通过所述删除目标目的前缀及插入新的目的前缀,以实现所述目的前缀树的更新。

可选的,在所述源前缀树上添加新的叶子节点,以实现插入新的源前缀。

可选的,在所述源前缀树上删除目标叶子节点,以实现删除目标源前缀。

可选的,依次通过所述删除目标源前缀及插入新的源前缀,以实现所述源前缀树的更新。

为了便于理解本发明实施例,对本发明第四实施例提供的一种计算机可读存储介质。

第四实施例:

本发明第四实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的转发表操作的方法。

所述方法包括:根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,所述转发表为二维树结构;在找到相同的目的前缀及源前缀的情况下,依据查找到的目的前缀及源前缀,得到下一跳地址;在没有找到相同的目的前缀及源前缀的情况下,添加解析所述报文得到的目的前缀、源前缀及对应的下一跳地址,以增加所述转发表的表项。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,包括:解析接收的报文,得到目的地址及源地址;依据目的地址的目的前缀及源地址的源前缀,在所述转发表中查找相同的目的前缀;在找到相同的目的前缀的情况下,在所述转发表中查找相同的源前缀。

可选的,所述根据解析接收的报文得到目的前缀及源前缀,在所述转发表中查找相同的目的前缀及源前缀,还包括:将查找到的源前缀缓存入fifo存储器,以根据源前缀和目的前缀完成下一跳地址的查找。

可选的,所述依据查找到的目的前缀及源前缀,得到下一跳地址,包括:依据查找到的目的前缀及源前缀,找到下一跳地址的索引;依据所述下一跳地址的索引,查找到所述下一跳地址的存放列表,以找到所述下一跳地址。

可选的,所述转发表的存储结构包括目的前缀树及源前缀树,所述目的前缀树的叶节点指向所述源前缀树,所述源前缀树的叶子节点指向下一跳地址的索引,所述下一跳地址的索引指向下一跳地址的存放列表。

可选的,所述目的前缀树、所述源前缀树及所述下一跳地址的索引分别存入三个存储器。优选的,所述目的前缀树及所述源前缀树分别存入两个三态内容寻址存储器,所述下一跳地址的索引存储于静态随机存取存储器。

可选的,在所述目的前缀树上添加新的叶子节点,且添加所述叶子节点指向的新的源前缀树,以实现插入新的目的前缀。

可选的,在所述目的前缀树上删除目标叶子节点,同时删除所述目标叶子节点指向的源地址树,以实现删除目标目的前缀。

可选的,依次通过所述删除目标目的前缀及插入新的目的前缀,以实现所述目的前缀树的更新。

可选的,在所述源前缀树上添加新的叶子节点,以实现插入新的源前缀。

可选的,在所述源前缀树上删除目标叶子节点,以实现删除目标源前缀。

可选的,依次通过所述删除目标源前缀及插入新的源前缀,以实现所述源前缀树的更新。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1