基于部分转发流水交换的转发交换方法及路由器体系结构的制作方法

文档序号:7645533阅读:312来源:国知局
专利名称:基于部分转发流水交换的转发交换方法及路由器体系结构的制作方法
技术领域
本发明主要涉及到路由器体系结构的设计领域,特指一种基于部分转发流水交换的转发交换方法及路由器体系结构。
背景技术
随着Internet链路速率和IP前缀数目的不断增长,对Internet互联的核心设备-路由器提出了越来越高的要求。新一代高性能路由器面临着几个方面的挑战链路速率越来越高,目前已经从OC192(10Gb/s)向OC768(40Gb/s)甚至OC3072(160Gb/s)发展;路由表规模越来越大,目前路由表中的前缀数目已经达到50万条并且仍在继续增长,不久的将来将达到100万条;随着IPv6协议的应用,路由表中的前缀长度将从32位增长到128位。上述发展趋势对于路由器的转发和交换能力提出了严峻的挑战。
目前已有的路由器体系结构是基于精确转发、集中式交换的体系结构,即首先由转发部件对报文进行精确查表确定其转发决策,然后由集中式的交换网络将报文交换至目的端口。在这种传统的路由器体系结构中,转发部件难以满足大规模路由转发表的存储需求和线速查表的速度需求,而集中式的交换网络难以满足端口速率和端口数目的需求。更重要的是,在固有的路由器体系结构下,路由器转发和交换能力受限于存储和逻辑器件工艺水平的发展速度远远落后于链路速率的增长速度。目前国内外研究界也认识到仅仅对路由器的转发技术和交换技术进行研究和改进,已经难以满足未来互联网发展的需要,必须在路由器体系结构上寻求创新和突破,并在新型路由器体系结构下研究新的报文转发技术和交换技术,这也是近年来国内外对路由器技术进行研究的热点。

发明内容
本发明要解决的技术问题就在于针对现有技术存在的技术问题,本发明提供一种通过开发转发和交换操作的并行度,以流水的方式执行报文转发和交换,从而降低对单个转发交换部件的要求,提高路由器的整体转发和交换能力的基于部分转发流水交换的转发交换方法及路由器体系结构。
为解决上述技术问题,本发明提出的解决方案为一种基于部分转发流水交换的转发交换方法,其特征在于步骤为
(1)路由转发表的分解将原始的IP路由转发表自上而下分解成S层,S等于路由器流水线的级数,构成路由转发表的最小单位为子树,路由转发表经分解后成为上下关联的子树结构;子树的输出端口集合为在原始的IP查找树结构中,该子树的根结点可到达的所有前缀结点对应的输出端口集合;(2)子树到转发交换结点的映射将路由表分割后得到的子树映射到转发交换结点,每个转发交换结点具有独立的转发交换功能,能够独立执行报文转发并根据转发结果将报文发送到正确的输出端口而不依赖于其它任何转发交换操作,数个转发交换结点组成多级流水线结构,以流水的方式执行报文转发和交换;(3)基于子树查找的下一级转发交换结点的确定报文到达转发交换结点时,根据其目的IP地址相应的位信息搜索子树,决定其交换路径。
在步骤(2)中,将第i层的第j′棵子树记做STij′,其输出端口集合表示为STOij′,1≤i≤S,j′=1,2,3,...;转发交换节点的输出端口集合则定义为位于第i级的转发交换结点可通过第i+1级…第N级的转发交换结点交换可达的输出端口集合,第i级的第j个转发交换结点记做Fij,其输出端口集合表示为FOij,1≤j≤K,K为每级转发交换结点的个数,从第i级开始执行以下步骤,直到i=S,变量i初始化为1(1)对于第i级的每一个转发交换结点Fij,将那些输出端口集合STOij包含于FOij的子树映射到Fij,第i层所有子树的集合表示为Ωi,映射到Fij的子树集合表示为Ωij;如果ΩiΩi1∪...∪ΩiK则映射成功,将变量i加1返回到步骤(1);否则第i层存在不能映射到第i级任何转发交换节点的子树,跳转至步骤(2);(2)采取子树迁移的办法来解决映射失败的问题将不能映射的子树迁移到其父子树所在的转发交换节点,由于在原始的IP查找树中,子树的输出端口集合具有可包含性,即任何子树的输出端口集合必定包含其孩子子树的输出端口集合,因此父子树所在的转发交换节点的输出端口集合也一定包含被迁移的孩子子树的输出端口集合,故该迁移操作符合子树的映射条件a)将被迁移的孩子子树从第i层的子树集合Ω1中删除;b)将被迁移子树的所有后代子树添加到其上一层的子树集合,变量i加1返回到步骤(1)。
所述转发交换结点的部分转发引擎对到达报文进行部分查表的处理过程为(1)报文是否附有目的端口?“是”,则转下述步骤(3),“否”则转下述步骤(2);
(2)提取报文目的IP地址对应的位信息,查找子树表,如果匹配前缀结点,则为报文附上目的端口;如果匹配边界结点,则从边界结点可用的下一级转发交换结点集合中选择负载较轻的转发交换结点作为目的转发交换结点;如果同时匹配前缀结点和边界结点,则记录所匹配前缀的下一跳信息,同时为报文选择轻负载的目的转发交换结点;如果未匹配任何结点,则判定是否存在最近匹配的前缀信息,若存在则将其作为最长匹配前缀,为报文附上路由标签,否则为报文附上缺省目的端口;为了获得最长匹配前缀,只记录最近匹配的前缀,当查找失败时,最近匹配前缀就是最长匹配前缀;(3)交换部件处理。
所述转发交换结点的交换部件对输入报文的处理过程为(1)交换请求含目的端口?“是”则转下述步骤(2),“否”则转下述步骤(4);(2)根据目的端口查找交换表,得到所有匹配目的端口的下一级可用转发交换结点集合;(3)从全部可用的下一级转发交换结点中选择负载最轻的转发交换结点作为报文的目的转发交换结点;(4)根据目的转发交换结点标识将报文缓冲到对应转发交换结点的输出队列。
一种基于部分转发流水交换的路由器体系结构,其特征在于它包括数个具有独立的转发交换功能,能够独立执行报文转发并根据转发结果将报文发送到正确的输出端口的转发交换结点,每个转发交换结点仅完成报文的部分转发操作,直至出口结点才能得到报文的最终转发决策;数个转发交换结点组成多级流水线结构,以流水的方式执行报文转发和交换。
所述转发交换结点的部分转发引擎对到达报文进行部分查表的处理过程为(1)报文是否附有目的端口?“是”,则转下述步骤(3),“否”则转下述步骤(2);(2)提取报文目的IP地址对应的位信息,查找子树表,如果匹配前缀结点,则为报文附上目的端口;如果匹配边界结点,则从边界结点可用的下一级转发交换结点集合中选择负载较轻的转发交换结点作为目的转发交换结点;如果同时匹配前缀结点和边界结点,则记录所匹配前缀的下一跳信息,同时为报文选择轻负载的目的转发交换结点;如果未匹配任何结点,则判定是否存在最近匹配的前缀信息,若存在则将其作为最长匹配前缀,为报文附上路由标签,否则为报文附上缺省目的端口;为了获得最长匹配前缀,只记录最近匹配的前缀,当查找失败时,最近匹配前缀就是最长匹配前缀;(3)交换部件处理。
所述转发交换结点的交换部件对输入报文的处理过程为(1)交换请求含目的端口?“是”则转下述步骤(2),“否”则转下述步骤(4);(2)根据目的端口查找交换表,得到所有匹配目的端口的下一级可用转发交换结点集合;(3)从全部可用的下一级转发交换结点中选择负载最轻的转发交换结点作为报文的目的转发交换结点;(4)根据目的转发交换结点标识将报文缓冲到对应转发交换结点的输出队列。
与现有技术相比,本发明的优点就在于1、降低了报文查表交换的硬件实现复杂度。本发明将分解后的路由表分散在各个FSN结点,降低了单个转发结点IP路由查找的复杂度以及对路由表存储空间的要求,缓解了高链路速率和大容量转发表在路由器体系结构设计中的尖锐矛盾;FSN结点直接对变长报文进行交换,消除了对报文的分割和重组操作,报文调度过程简单,消除了系统加速的必要性,降低了交换操作的复杂度,易于低成本的硬件实现并获得较高性能;2、复用多个低速FSN结点构成多级流水线结构,以低成本的执行部件获得更高的交换性能和IP查找速率;3、报文转发交换流水线的深度、资源复用度(每一级FSN结点的个数)、FSN结点端口数目均可自由配置,因而具有很好的灵活度和可扩展性;4、充分利用路由器多路径转发的优点。报文最终的输出端口在整个流水交换的过程中都不会被确定。FSN结点根据多个输出端口对应的下一级可用的FSN结点的负载状况,为报文选择轻负载的交换路径;直到最后一级FSN结点根据输出链路的忙闲状况为报文选择最终的输出端口。


图1是本发明中基于部分转发流水交换的路由器体系结构;图2是本发明将原始IP查找树分解后得到的子树结构;图3是本发明中将图2中的子树映射到图1所示的转发交换结点后得到的映射结果;图4是本发明中子树映射失败时,子树迁移示意图;图5是FSN结点的部分转发引擎对到达报文进行部分查表处理的流程示意图;图6是FSN结点的交换部件对输入报文处理的流程示意图。
具体实施例方式
以下将结合附图和具体实施例对本发明做进一步详细说明。
参见图1、图2、图3和图4所示,本发明的基于部分转发流水交换的路由器体系结构,它包括数个具有独立的转发交换功能,能够独立执行报文转发并根据转发结果将报文发送到正确的输出端口的转发交换结点,我们称之为转发交换结点FSN(Forwardingand Switching Node)。每个转发交换结点仅完成报文的部分转发操作,直至出口结点才能得到报文的最终转发决策;数个转发交换结点组成多级流水线结构,以流水的方式执行报文转发和交换。如图1所示,基于部分转发流水交换的路由器体系结构实例中,共由4级2×2的转发交换结点FSN构成,到达的报文被分派到两个FSN结点并行处理,每个FSN结点执行部分IP查找之后确定下一级可用的FSN集合,将报文缓冲到相应的输出队列中等待交换到下一级FSN结点。
本发明的路由器体系结构采用的转发交换方法为(1)路由转发表的分解将原始的IP路由转发表自上而下分解成S层,S等于路由器流水线的级数,构成路由转发表的最小单位为子树,路由转发表经分解后成为上下关联的子树结构;子树的输出端口集合为在原始的IP查找树结构中,该子树的根结点可到达的所有前缀结点对应的输出端口集合;(2)子树到转发交换结点的映射将路由表分割后得到的子树映射到转发交换结点,每个转发交换结点具有独立的转发交换功能,能够独立执行报文转发并根据转发结果将报文发送到正确的输出端口而不依赖于其它任何转发交换操作,数个转发交换结点组成多级流水线结构,以流水的方式执行报文转发和交换;(3)基于子树查找的下一级转发交换结点的确定报文到达转发交换结点时,根据其目的IP地址相应的位信息搜索子树,决定其交换路径。报文到达FSN结点时,根据其目的IP地址相应的位信息搜索子树,决定其交换路径。每棵子树包含有效前缀的下一跳信息以及下一级可用的FSN结点信息。
在步骤(2)中,将第i层的第j′棵子树记做STij′,其输出端口集合表示为STOij′,1≤i≤S,j′=1,2,3,...;转发交换节点的输出端口集合则定义为位于第i级的转发交换结点可通过第i+1级…第N级的转发交换结点交换可达的输出端口集合,第i级的第j个转发交换结点记做Fij,其输出端口集合表示为FOij,1≤j≤K,K为每级转发交换结点的个数,从第i级开始执行以下步骤,直到i=S,变量i初始化为1(1)对于第i级的每一个转发交换结点Fij,将那些输出端口集合STOij包含于FOij的子树映射到Fij,第i层所有子树的集合表示为Ωi,映射到Fij的子树集合表示为Ωij;如果ΩiΩi1∪...∪ΩiK则映射成功,将变量i加1返回到步骤(1);否则第i层存在不能映射到第i级任何转发交换节点的子树,跳转至步骤(2);(2)采取子树迁移的办法来解决映射失败的问题将不能映射的子树迁移到其父子树所在的转发交换节点,由于在原始的IP查找树中,子树的输出端口集合具有可包含性,即任何子树的输出端口集合必定包含其孩子子树的输出端口集合,因此父子树所在的转发交换节点的输出端口集合也一定包含被迁移的孩子子树的输出端口集合,故该迁移操作符合子树的映射条件a)将被迁移的孩子子树从第i层的子树集合Ωi中删除;b)将被迁移子树的所有后代子树添加到其上一层的子树集合,变量i加1返回到步骤(1)。
被迁移的孩子子树并不作为独立的子树而存在,也不为其分配子树标识,父子树和所有被迁移的孩子子树作为一个整体构成一棵新的子树。因为任何查找过程都只会先访问父子树,由相应的后继IP目的地址的位信息来触发对孩子子树的访问,父子树中保存指向孩子子树块的指针。
参见图5所示,转发交换结点的部分转发引擎对到达报文进行部分查表的处理过程为报文是否附有目的端口?“是”,则转下述步骤(3),“否”则转下述步骤(2);(2)提取报文目的IP地址对应的位信息,查找子树表,如果匹配前缀结点,则为报文附上目的端口;如果匹配边界结点,则从边界结点可用的下一级转发交换结点集合中选择负载较轻的转发交换结点作为目的转发交换结点;如果同时匹配前缀结点和边界结点,则记录所匹配前缀的下一跳信息,同时为报文选择轻负载的目的转发交换结点;如果未匹配任何结点,则判定是否存在最近匹配的前缀信息,若存在则将其作为最长匹配前缀,为报文附上路由标签,否则为报文附上缺省目的端口;为了获得最长匹配前缀,只记录最近匹配的前缀,当查找失败时,最近匹配前缀就是最长匹配前缀;(3)交换部件处理。
参见图6所示,转发交换结点的交换部件对输入报文的处理过程为(1)交换请求含目的端口?“是”则转下述步骤(2),“否”则转下述步骤(4);(2)根据目的端口查找交换表,得到所有匹配目的端口的下一级可用转发交换结点集合;(3)从全部可用的下一级转发交换结点中选择负载最轻的转发交换结点作为报文的目的转发交换结点;(4)根据目的转发交换结点标识将报文缓冲到对应转发交换结点的输出队列。
下面以一个实例进一步对本发明做详细说明。图2显示了将一个带有10个前缀的原始IP查找树分解后得到的子树结构,按照自上而下、从左到右的顺序为每一棵子树分配唯一的标识符,作为访问子树的地址。子树到转发交换节点的映射算法必须能够保证每个报文能被交换到正确的目的端口,故而采用一种基于输出端口集合的子树映射算法。图3(a)显示了图2中用虚线勾勒的子树的输出端口集合,图3(b)则显示了图1中每一级FSN结点的输出端口集合。首先STO11包含于第1级每一个FSN结点的输出端口集合中,即STO11={1,2,3,4}FO11,FO12,FO13,FO14,故将子树ST11映射到第一级全部的FSN结点中。又因为STO21={2,3,4)FO21={1,2,3,4),将子树ST21映射到FSN结点F21,即ST21∈Ω21;同理,由STO22={1,2,3,4)FO21={1,2,3,4}得到ST22∈Ω21,从而得到Ω21={ST21,ST22),同理可得Ω22,Ω23,Ω24,如图3(c)所示,由Ω22={ST21,ST22}Ω21∪Ω22∪Ω23∪Ω24知第二层子树映射成功,映射算法推进到第3级。第3级的子树映射结果如图3(c)的阴影部分所示,Ω3={ST31,ST32,ST33} Ω31∪Ω32∪Ω33∪Ω34,由于STO33={1,3}不能被映射到第3级的任何转发交换结点,因此进入子树的迁移步骤。图4显示了映射失败的子树ST33迁移到其父子树ST22所在的FSN结点后,与父子树作为一个整体构成一个新的子树ST22。执行子树块查找时,先访问父子树,当搜索到达孩子子树根结点时,根据父子树保存的指针信息,访问孩子子树。这样,第三层中映射失败的子树ST33经过迁移后,从子树集合Ω3中删除,其孩子子树ST43加入到子树集合Ω3,最终得到如图3(c′)所示的映射结果,图3(a′)显示了迁移操作之后STO集合的变化。
在基于部分转发流水交换的路由器体系结构中,根据子树的搜索结果来决策报文的交换路径。每一棵子树包括前缀的下一跳信息及其孩子子树在下一级FSN结点的分布信息。因此包含路由信息的结点分为两种前缀结点以及孩子子树的根结点我们称之为边界结点。前缀结点保存其下一跳信息;边界结点保存其孩子子树在下一级FSN结点的分布信息,即包含该孩子子树拷贝的FSN结点集合。这些信息从子树映射阶段得到。
在报文流水转发的过程中,一旦匹配最长前缀,则根据最长匹配前缀的下一跳信息为报文附上目的端口,后继FSN结点根据报文的目的端口交换报文,无须再进行子树查找操作。目的端口对应的下一级可用FSN结点就是那些输出端口集合中包含了该输出端口的下一级FSN结点,这些路由信息完全由FSN结点的互联拓扑结构决定,与子树的映射结果无关。为了确保报文能够被发送到正确的目的端口,FSN结点需保存其输出端口集合中每个输出端口的下一级可用FSN结点集合,这些和输出端口相关的路由信息保存在FSN结点交换部件的交换表中;而那些和子树相关的路由信息,即有效前缀的下一跳信息以及边界结点对应的下一级可用FSN结点集合则保存在部分转发引擎的子树表里。
权利要求
1.一种基于部分转发流水交换的转发交换方法,其特征在于步骤为(1)路由转发表的分解将原始的IP路由转发表自上而下分解成S层,S等于路由器流水线的级数,构成路由转发表的最小单位为子树,路由转发表经分解后成为上下关联的子树结构;子树的输出端口集合为在原始的IP查找树结构中,该子树的根结点可到达的所有前缀结点对应的输出端口集合;(2)子树到转发交换结点的映射将路由表分割后得到的子树映射到转发交换结点,每个转发交换结点具有独立的转发交换功能,能够独立执行报文转发并根据转发结果将报文发送到正确的输出端口而不依赖于其它任何转发交换操作,数个转发交换结点组成多级流水线结构,以流水的方式执行报文转发和交换(3)基于子树查找的下一级转发交换结点的确定报文到达转发交换结点时,根据其目的IP地址相应的位信息搜索子树,决定其交换路径。
2.根据权利要求l所述的基于部分转发流水交换的转发交换方法,其特征在于在步骤(2)中,将第i层的第j′棵子树记做STij′,其输出端口集合表示为。STOij′,1≤i≤S,j’=1,2,3,...;转发交换节点的输出端口集合则定义为位于第i级的转发交换结点可通过第i+1级…第N级的转发交换结点交换可达的输出端口集合,第i级的第j个转发交换结点记做Fij,其输出端口集合表示为FOij,1≤j≤K,K为每级转发交换结点的个数,从第i级开始执行以下步骤,直到i=S,变量i初始化为1(1)对于第i级的每一个转发交换结点Fij,将那些输出端口集合STOij,包含于FOij的子树映射到Fij,第i层所有子树的集合表示为Ωi,映射到Fij的子树集合表示为Ωij;如果ΩiΩi1∪...∪ΩiK则映射成功,将变量i加1返回到步骤(1);否则第i层存在不能映射到第i级任何转发交换节点的子树,跳转至步骤(2);(2)采取子树迁移的办法来解决映射失败的问题将不能映射的子树迁移到其父子树所在的转发交换节点,由于在原始的IP查找树中,子树的输出端口集合具有可包含性,即任何子树的输出端口集合必定包含其孩子子树的输出端口集合,因此父子树所在的转发交换节点的输出端口集合也一定包含被迁移的孩子子树的输出端口集合,故该迁移操作符合子树的映射条件a)将被迁移的孩子子树从第i层的子树集合Ωi中删除;b)将被迁移子树的所有后代子树添加到其上一层的子树集合,变量i加1返回到步骤(1)。
3.根据权利要求1或2所述的基于部分转发流水交换的转发交换方法,其特征在于所述转发交换结点的部分转发引擎对到达报文进行部分查表的处理过程为(1)报文是否附有目的端口?“是”,则转下述步骤(3),“否”则转下述步骤(2);(2)提取报文目的IP地址对应的位信息,查找子树表,如果匹配前缀结点,则为报文附上目的端口;如果匹配边界结点,则从边界结点可用的下一级转发交换结点集合中选择负载较轻的转发交换结点作为目的转发交换结点;如果同时匹配前缀结点和边界结点,则记录所匹配前缀的下一跳信息,同时为报文选择轻负载的目的转发交换结点;如果未匹配任何结点,则判定是否存在最近匹配的前缀信息,若存在则将其作为最长匹配前缀,为报文附上路由标签,否则为报文附上缺省目的端口;为了获得最长匹配前缀,只记录最近匹配的前缀,当查找失败时,最近匹配前缀就是最长匹配前缀;(3)交换部件处理。
4.根据权利要求1或2所述的基于部分转发流水交换的转发交换方法,其特征在于所述转发交换结点的交换部件对输入报文的处理过程为(1)交换请求含目的端口?“是”则转下述步骤(2),“否”则转下述步骤(4);(2)根据目的端口查找交换表,得到所有匹配目的端口的下一级可用转发交换结点集合;(3)从全部可用的下一级转发交换结点中选择负载最轻的转发交换结点作为报文的目的转发交换结点;(4)根据目的转发交换结点标识将报文缓冲到对应转发交换结点的输出队列。
5.一种基于部分转发流水交换的路由器体系结构,其特征在于它包括数个具有独立的转发交换功能,能够独立执行报文转发并根据转发结果将报文发送到正确的输出端口的转发交换结点,每个转发交换结点仅完成报文的部分转发操作,直至出口结点才能得到报文的最终转发决策;数个转发交换结点组成多级流水线结构,以流水的方式执行报文转发和交换。
6.根据权利要求5所述的基于部分转发流水交换的路由器体系结构,其特征在于所述转发交换结点的部分转发引擎对到达报文进行部分查表的处理过程为(1)报文是否附有目的端口?“是”,则转下述步骤(3),“否”则转下述步骤(2);(2)提取报文目的IP地址对应的位信息,查找子树表,如果匹配前缀结点,则为报文附上目的端口;如果匹配边界结点,则从边界结点可用的下一级转发交换结点集合中选择负载较轻的转发交换结点作为目的转发交换结点;如果同时匹配前缀结点和边界结点,则记录所匹配前缀的下一跳信息,同时为报文选择轻负载的目的转发交换结点;如果未匹配任何结点,则判定是否存在最近匹配的前缀信息,若存在则将其作为最长匹配前缀,为报文附上路由标签,否则为报文附上缺省目的端口;为了获得最长匹配前缀,只记录最近匹配的前缀,当查找失败时,最近匹配前缀就是最长匹配前缀;(3)交换部件处理。
7.根据权利要求5所述的基于部分转发流水交换的路由器体系结构,其特征在于所述转发交换结点的交换部件对输入报文的处理过程为(1)交换请求含目的端口?“是”则转下述步骤(2),“否”则转下述步骤(4);(2)根据目的端口查找交换表,得到所有匹配目的端口的下一级可用转发交换结点集合;(3)从全部可用的下一级转发交换结点中选择负载最轻的转发交换结点作为报文的目的转发交换结点;(4)根据目的转发交换结点标识将报文缓冲到对应转发交换结点的输出队列。
全文摘要
本发明公开了一种基于部分转发流水交换的转发交换方法及路由器体系结构。在这种体系结构下,路由器包括数个具有独立的转发交换功能,能够独立执行报文转发并根据转发结果交换报文的转发交换结点。每个转发交换结点仅完成报文的部分转发操作,直至出口结点才能得到报文的最终转发决策;数个转发交换结点组成多级流水线结构,以流水的方式执行报文转发和交换。其转发交换方法为路由转发表的分解→子树到转发交换结点的映射→基于子树查找的下一级转发交换结点的确定。本发明通过开发转发和交换操作的并行度,以流水的方式执行报文转发和交换,从而降低对单个转发交换部件的要求,提高路由器的整体转发和交换能力。
文档编号H04L12/56GK101018202SQ20071003440
公开日2007年8月15日 申请日期2007年2月9日 优先权日2007年2月9日
发明者孙志刚, 戴艺, 管剑波, 时向泉, 陈一骄, 吕高峰 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1