专利名称:路径控制器、路径控制方法及其程序的制作方法
技术领域:
本发明涉及路径控制器,具体来说,涉及用于从网络内的多台主计算机或从其他网络接收帧并传输帧的路径控制器。
背景技术:
用诸如路由器和第三层交换机之类的路径控制器执行的其中一种路径搜索技术是树方法。在树方法中,诸如MAC地址和IP地址之类的目标地址信息以树结构的方式存储。在进行路径搜索时,路径控制器根据搜索关键字(地址信息)追随节点(下文称为“节点”),并在到达外部节点(下文称为“叶”)时获取路径信息。
图10显示了当路径控制器具有表1中显示的7位目标地址信息时树结构的示例。
表1
图10的树采用Patricia树的形式。每一个节点N内的数值表明对于向属于节点N的叶L注册的每一个片段的目标地址通用的高阶位的数量。例如,当考虑节点N3时,属于节点N3的叶L内的目标地址信息包括“1000010”、“1000011”、和“1000111”,以及三个目标地址信息的高阶4位“1000”是通用的。因此,节点N3内的数值被设置为“4”。
边(枝)被从节点N3分成两个,具体情况取决于属于节点N3的叶L内的目标地址信息的第五高阶位的数值是“0”还是“1”。在上文所提及的三个目标地址信息中,“1000010”和“1000011”的第五高阶位是“0”,表明包括这些目标地址信息的叶L属于边“0”。另一方面,由于“1000111”的第五高阶位是“1”,具有此目标地址信息的叶L属于边“1”。
当从外部接收具有目标地址信息“1000010”的帧时,常规的路径控制器从接收到的帧中提取目标地址信息“1000010”。然后,路径控制器使用提取到的目标地址信息作为搜索关键字来在图10所示的Patricia树中执行路径搜索。在图10中,路径搜索起始于根R。由于搜索关键字的第一高阶位是“1”,则它从根R进入边“1”,并到达节点N1。节点N1内的数值是“1”(即,有关属于节点N1的叶L的所有目标地址信息的第一高阶位是“1”),以便从节点N1发出的边“0”和“1”中的任何一个由第二个高阶位的数值确定。那么,由于搜索关键字的第二个高阶位(“1000010”)是“0”,它将进入边“0”并到达节点N2。节点N2内的数值是“2”,如此,基于搜索关键字的第三个高阶位的数值“0”,它进入边“0”,并到达节点N3。它以同样的方式到达节点N4,并最终搜索到叶L1。除目标地址信息之外,表明具有目标地址信息的帧的位置应该转至其中的路径信息将注册在每一叶L中。路径控制器获取叶L1内的路径信息,并基于路径信息传输接收到的帧。
如此,在常规路径控制器的搜索方法中,在搜索过程中,需要穿过许多节点N1到N4。由于穿过的节点N的数量越多,搜索时间越长,优选情况下,穿过的节点的数量应该少一点。
因此,下面的专利文件1提出了使用新颖的树结构的路径搜索。在专利文件1中,使用具有“直接表”的树结构来执行路径搜索。图11显示了包括有关表1的目标地址信息的许多叶L的基于专利文件1的树结构。参考图11,具有直接的表的树结构包括直接表DT,而不是图10中的根R。在直接表DT中,注册了目标地址信息的高阶3位的八个组合(在下文中,组合被叫做DT条目0到7)。当两个或更多叶L属于同一个DT条目时,以与常规方法相同的方式提供了节点N。在图11中,由于三个叶L(目标地址信息=“1000010”、“1000011”、“1000111”)属于DT条目4(高阶3位为“100”),DT条目4具有节点N3和N4,与图10中的方式相同。提供直接表DT可以降低在路径搜索过程中到达叶L之前必须穿过的节点N的数量(在下文中叫做节点阶段的数量)。例如,在路径搜索过程中到达具有目标地址信息“1000010”的叶L1之前,必须穿过图10的树结构中的四个节点N1到N4。相比之下,在图11的树结构中,由于有直接表DT,在从DT条目4开始之后直到到达目标叶L1,只需要穿过两个节点N3和N4。如此,具有直接表DT的树结构可以降低节点阶段的数量,从而缩短搜索时间。
然而,甚至在具有直接表DT的树结构中,节点阶段的数量N可以随着许多叶L中包括的目标地址信息而变化。图12显示了当八个叶L属于一个DT条目时具有直接表DT的树结构。在图12A中,属于节点N10和N11的叶L的数量分别是四个,显示了叶L是均匀分布的情况。在此情况下,在此图中到达叶L2之前穿过的节点阶段的数量是2。另一方面,图12B显示了当叶L以可能的最不均匀的方式分布的树结构。在图12B中,到达叶L2的节点阶段的数量是7。因此,甚至在具有直接表DT的树结构中,当在树结构中发生偏差时,节点阶段的数量增大,从而增大了路径搜索时间。
日本专利公开号No.2001-357071[专利文件2]日本专利公开号No.2001-229169[专利文件3]日本专利公开号No.2000-188608[专利文件4]日本专利公开号No.10-210052[专利文件5]日本专利公开号No.06-139280发明内容本发明解决的问题本发明的目的是提供能够控制路径信息的树结构的叶的偏差的路径控制器。
本发明的另一个目的是提供能够降低路径搜索时间的路径控制器。
解决问题的手段根据本发明的一个方面,提供了一个路径控制器,用于从网络内的多台主计算机或从其他网络接收帧并传输帧,包括路由表、搜索单元,以及接收和传输单元。路由表包含许多叶,其中包括目标地址信息和对应于存储在树结构中的目标地址信息的路径信息。树结构包括多个成员树,并具有公共根。搜索单元通过使用接收到的帧中包括的目标地址信息作为搜索关键字,搜索单元搜索多个成员树中的叶。接收和传输单元根据搜索单元搜索到的叶中包括的路径信息接收帧,并传输接收到的帧。
在根据本发明的路径控制器中,路由表的树结构包括多个成员树(其中具有公共根)。因此,向每一个成员树注册的叶的数量低于向为根提供的单个树注册的叶的数量。这是因为通常向单个树注册的许多叶可以分布到多个成员树。这还降低了在搜索过程中到达叶之前穿过的节点的数量,从而防止树结构中的叶的偏差。
优选情况下,公共根包括多个直接表。多个直接表记录了有关目标地址信息内的高阶N位(其中N是一个自然数)的组合的组合信息。多个直接表以这样的方式对应于多个成员树,以便两者相互具有相同的组合信息。
在此情况下,由于多个成员树具有直接表,因此节点的数量可以降低。此外,每一个成员树的直接表内的组合信息是相同的,以便通常一个树结构可以被分成多个成员树。因此,每一个树的数量小于常规的树结构的叶的数量。它还可以降低叶的偏差。
优选情况下,搜索单元包括多个搜索引擎。提供了对应于多个成员树的多个搜索引擎,以便每一个搜索引擎使用接收到的帧中包括的目标地址信息作为搜索关键字来搜索每一个对应的成员树中的叶。
在此情况下,根据本发明的路径控制器使用多个搜索引擎来搜索多个成员树。此时,每一个搜索引擎搜索不同的成员树。与为路由表内的相同根形成的单个树的情况相比,它可以大大缩短搜索时间。
优选情况下,路径控制器进一步包括一个创建单元。创建单元基于从外部输入的成员树的数量的信息创建树结构,其中包括路由表内的多个成员树。
在此情况下,可以在路由表内设置任意数量的成员树。
优选情况下,创建单元从外部接收一个新叶,并向多个成员树中的具有最小数量的注册叶的成员树注册新叶。
在此情况下,向相同树结构内的多个成员树中的每一个成员树注册的叶在成员树之间在数量方面是均匀地分配的。因此,在成员树之间,可以平均地设置每一个成员树中的到达叶之前穿过的节点的数量。
优选情况下,路径控制器包括注册信息文件。注册信息文件存储了注册目标信息,所述注册目标信息指明一个成员树,新叶向该成员树进行注册。当从外部接收新叶时,创建单元基于注册目标信息注册新叶,并在注册之后,改变注册目标信息,以指明具有最小数量的注册叶的另一个成员树。
在此情况下,如果路径控制器基于在注册信息文件中预先注册的注册目标信息注册叶,则要向每一个成员树注册的叶可以在成员树之间均匀分布。
在注册新叶之后,创建单元优选情况下通过循环复用方法改变注册目标信息。
在此情况下,由于基于循环复用方法改变注册目标信息,始终设置具有最小数量的注册叶的成员树作为注册目标信息。
根据本发明的另一个方面,提供了一种通路控制方法,该方法使用路径控制器,该路径控制器用于从网络内的多台主计算机或从其他网络接收帧并传输帧。路径控制器包括一个路由表,用于存储多个叶,其中包括目标地址信息和对应于存储在树结构中的目标地址信息的路径信息,还包括一个搜索单元。树结构包括多个成员树,并具有公共根。该通路控制方法包括从外部接收帧的步骤,从帧中提取目标地址信息的步骤,搜索单元通过使用提取的目标地址信息作为搜索关键字搜索多个成员树的步骤,当搜索步骤中搜索对应于搜索关键字的叶时,基于搜索到的叶中包括的路径信息传输帧的步骤。
根据本发明的路径控制器从具有公共根的多个成员树构成了路由表的树结构。因此,向每一个成员树注册的叶的数量小于向为根提供的单个树注册的叶的数量。这是因为通常向单个树注册的多个叶可以分布到多个成员树。这还降低了在路径搜索过程中到达叶之前穿过的节点的数量,从而防止树结构中的叶的偏差。
优选情况下,公共根包括多个直接表。多个直接表记录了有关目标地址信息内的高阶N位(其中N是一个自然数)的组合的组合信息。多个直接表以这样的方式对应于多个成员树,以便两者相互具有相同的组合信息。
在此情况下,由于多个成员树具有直接表,因此节点的数量可以降低。此外,每一个成员树的直接表内的组合信息是相同的,以便通常一个树结构可以被分成多个成员树。因此,每一个树的数量小于常规的树结构的叶的数量。它还可以降低叶的偏差。
优选情况下,搜索单元包括多个搜索引擎,以便每一个搜索引擎在搜索步骤中搜索每一个对应的成员树。
在此情况下,根据本发明的路径控制器使用多个搜索引擎来搜索多个成员树。此时,每一个搜索引擎搜索不同的成员树。与为路由表内的相同根形成的单个树的情况相比,它可以大大缩短搜索时间。
优选情况下,路径控制方法进一步包括从外部接收新叶的步骤,以及向多个成员树中的具有最小数量的注册叶的成员树注册新叶的步骤。
在此情况下,向相同树结构内的多个成员树中的每一个成员树注册的叶在成员树之间在数量方面是均匀地分配的。因此,在成员树之间,可以平均地设置每一个成员树中的到达叶之前穿过的节点的数量。
优选情况下,路径控制器包括用于存储注册目标信息的注册信息文件,所述注册目标信息指明一个成员树,新叶向该成员树进行注册,而路径控制方法的注册步骤包括基于注册目标信息注册新叶的步骤,并在注册之后,改变注册目标信息,以指明具有最小数量的注册叶的另一个成员树。
在此情况下,如果路径控制器基于在注册信息文件中预先注册的注册目标信息注册叶,则要向每一个成员树注册的叶可以在成员树之间均匀分布。
优选情况下,在改变步骤中是通过循环复用方法改变注册目标信息的。
在此情况下,由于基于循环复用方法改变注册目标信息,始终设置具有最小数量的注册叶的成员树作为注册目标信息。
附图简要说明[图1]这是说明根据本发明的一个实施例的逻辑树结构的示意图。
这是说明根据本发明的实施例的逻辑树结构的另一个示意图。
这是说明根据本发明的实施例的逻辑树结构的又一个示意图。
这是显示根据本发明的实施例的一个路径控制器的一般结构的方框图。
这是图4的路径控制器的操作的流程图。
这是图4的路径控制器的叶注册处理的流程图。
这是图4的路径控制器的叶删除处理的流程图。
这是图4的路径控制器的逻辑树删除处理的流程图。
这是图4的路径控制器的路径搜索处理的流程图。
这是显示常规树方法的树结构的示意图。
这是显示使用直接表的树结构的示意图。
这是说明树结构中的叶的偏差的示意图。
引用编号和符号的说明1 应用程序2 逻辑树控制API3 逻辑树管理器4 搜索单元6 逻辑树搜索控制器7 应用程序微微代码51 注册信息文件52 路由表LT 逻辑树MT1、MT2 成员树SE1,SE2 搜索引擎具体实施方式
现在将参考附图详细描述本发明的实施例。在图形中,相同的或等效的部分被给予相同的引用编号,以引用相同的说明。
1.逻辑树在本发明的实施例中用于进行路径搜索的树结构是由多个成员树组成的逻辑树结构。下面描述了逻辑树结构。
参考图1A,逻辑树LT是由多个成员树MT1和MT2组成的树结构。两个成员树MT1和MT2的直接表DT1和DT2包括相同的DT条目0到n(其中n是一个自然数)。换句话说,常规的结构每一个根包含一个树(图1中的直接表DT),而本实施例是这样的分别准备两个或更多相同的根,以为根构成树(成员树MT)。成员树MT1和MT2如此制造,以便包括相同数量的叶L。这里请注意,虽然图1A中的结构为每一个成员树MT准备根(直接表DT1或DT2),但是,成员树MT可以共享一个根(直接表DT),如图1B所示。下面将描述创建成员树MT的方法。
图2A显示了使用直接表DT0的常规树结构。在此情况下,属于直接表DT0内的DT条目1的叶L的数量被设置为八个,在到达每一个叶L之前穿过的节点阶段的数量被设置为两个。图2B显示了具有图2A所示的直接表DT0的树结构被以根据本发明的逻辑树结构表示的情况。在图2B中,逻辑树LT包含两个成员树MT1和MT2。成员树MT1和MT2分别包括直接表DT1和DT2。直接表DT1和DT2与直接表DT0包括相同的DT条目0到n。在此情况下,属于成员树MT1的DT条目1的叶L的数量和属于成员树MT2的DT条目1的叶L的数量两者都是四个,是图2A中的情况的数量的一半。因此,节点阶段的数量被减少到1。
如上所述,当属于DT条目的叶的数量相同时,与常规的树结构相比,由多个成员树MT组成的逻辑树结构减少了在到达目标叶L之前穿过的节点阶段的数量。
图2显示了叶L最均匀分布的树结构。另一方面,图3显示了叶L的偏差变为最大的树结构。图3A显示了从DT条目1到叶L穿过的节点阶段的最大数量为6的常规树结构。另一方面,图3B显示了具有两个成员树MT1和MT2的逻辑树结构。在图3D中,属于DT条目1的叶的数量在成员树MT1和MT2都是四,从而将到达叶之前穿过的节点阶段的最大数量减少到2。
如此,逻辑树结构可以减少到达目标叶L之前穿过的节点阶段的数量。此外,由于逻辑树LT由多个成员树MT构成,如果路径控制器配备有多个搜索引擎,因此,可以并行地搜索成员树MT。在此情况下,可以缩短搜索时间。虽然图1到3中描述了具有直接表DT作为根R的树结构,但是,本发明还适用于具有正常的根R的树结构。本发明还可以进一步适用于Patricia树之外的任何搜索树。
下面描述了包括路由表中的一个逻辑树的路径控制器。
2.路径控制器的一般结构参考图4,路径控制器10包括应用程序1、逻辑树控制API(应用程序编程接口)2、逻辑树管理器3、搜索单元4、注册信息文件51、路由表52、逻辑树搜索控制器6,以及应用程序微微代码7。应用程序1、逻辑树控制API2,以及逻辑树管理器3创建逻辑树LT,包括路由表52中的多个成员树MT。应用程序微微代码7从网络内的多台主计算机或从其他网络接收帧,并基于路径信息传输接收到的帧。
应用程序1管理路由表52中注册的逻辑树LT。具体来说,应用程序1指示在路由表52内创建或删除逻辑树LT,以及添加或删除叶L。应用程序1指示在路径控制器10的初始设置时创建逻辑树LT。此外,当路径控制器10由于某种原因被软重置时,应用程序1指示从路由表52中删除逻辑树LT。路径控制器10还与相邻的路径控制器交换路径信息,并且当在交换路径信息时从相邻的路径控制器接收新路径信息时,应用程序1基于新添加的路径信息指示添加叶L。此外,由于从相邻的路径控制器接收路径信息,如果路径控制器10所持有的叶L需要删除,应用程序1指示删除叶L。
逻辑树控制API2在应用程序1和逻辑树管理器3之间进行仲裁。逻辑树管理器3基于从应用程序1通过逻辑树控制API2输出的指令和路径信息,创建或删除逻辑树,并添加或删除叶L。逻辑树LT存储在路由表52中。如图1所示,逻辑树LT由多个成员树MT1和MT2构成。虽然图4只显示了路由表52中的一个逻辑树LT,但是,可以注册两个或更多逻辑树LT。逻辑树LT的数量是被路径控制器10管理的路径信息的类型来确定。例如,如果路径控制器10将有关MAC地址的路径信息和有关IP地址的路径信息注册到路由表52中,MAC地址的逻辑树LT和IP地址的逻辑树LT将在路由表52中设置。图4还显示了逻辑树LT中的两个成员树MT1和MT2,但是也可以包括三个或更多成员树。基于稍后描述的搜索单元4中的搜索引擎SE的数量来确定成员树MT的数量。
应用程序微微代码7从外部接收帧,并将帧传输(执行转发)到帧应该去的位置。具体来说,应用程序微微代码7接收从与路径控制器10所在的同一个网络内的多台主机发出的帧,或从其他网络中的路径控制器发出的帧,从帧中提取目标地址信息,基于提取的目标地址信息获取路径信息,并基于所获取的路径信息发送帧。
逻辑树搜索控制器6控制搜索单元4以使用应用程序微微代码7提取的地址信息作为搜索关键字,以便搜索匹配搜索关键字的叶的逻辑树LT。两个搜索引擎SE1和SE2包括在搜索单元4中。搜索单元4从逻辑树管理器3或逻辑树搜索控制器6接收指令,以搜索路由表52内的逻辑树LT。注册信息文件51存储路由表52中注册的逻辑树LT的逻辑树ID和逻辑树LT中包括的每一个成员树MT的ID。此外,如稍后所述,注册信息文件51存储向其注册新叶L的注册目标成员树的ID。
3.逻辑树创建和编辑下面描述了使用路径控制器10进行的逻辑树设置和编辑操作。应用程序1发出创建、编辑逻辑树等操作的指令,逻辑树控制API2基于指令为逻辑树管理器3创建一个消息,接收到该消息的逻辑树管理器3创建或编辑逻辑树。
3.1.初始设置过程(逻辑树创建过程)当路径控制器10连接到网络(在初始设置时)执行逻辑树创建过程(S500)。参考图5,路径控制器10连接到网络并被激活(S101)。此时,应用程序1指示创建逻辑树(S102)。具体来说,它进行一个调用(API调用),以便创建到控制API2的逻辑树。此时,用于创建逻辑树LT的各种条件(参数)被发送到逻辑树控制API2。参数包括要创建的逻辑树LT的ID、逻辑树LT的类型,以及逻辑树LT中的成员树MT的数量,以及在搜索时使用的搜索引擎的数量。逻辑树LT的类型是基于用于进行路径搜索的搜索方法来划分的。例如,当路径控制器10管理Mac地址的路径信息时,最好通过FM(完全匹配)方法来执行路径搜索。FM方法是比较帧的目标MAC地址与为路由表52中的叶L注册的目标地址信息,以便只有在两者完全彼此匹配的情况(完全匹配)下才确定路径。在此情况下,逻辑树LT的类型是“FM类型”。另一方面,当路径控制器10管理IP地址的路径信息时,最好通过LPM(最长的前缀匹配)方法来执行路径搜索。LPM方法是比较帧的目标IP地址与路由表52中的叶L的注册的目标地址信息,以便IP地址和目标地址信息之间的匹配部分的叶是最长的路径信息被确定为最佳。???在此情况下,逻辑树LT的类型是“LPM类型”。参数中的使用搜索引擎的数量表示在进行路径搜索时使用的搜索引擎SE的数量。在路径控制器10中,在进行路径搜索时为参数指定的逻辑树ID使用的搜索引擎的数量可以被设置为最大值“2”。如果路径控制器10包括了n个搜索引擎SE(其中n是0除外的自然数),则使用搜索引擎的数量可以是不超过n的任何数量。此外,参数中的成员树MT的数量是由路径控制器10等等的管理员从外部输入的任何数量。
例如,假设路径控制器10以逻辑树LT的形式将有关MAC地址的路径信息注册在路由表52中。进一步假设逻辑树LT如此注册,以便包括两个成员树MT。在此情况下,在步骤S102进行了这样的设置逻辑树ID是任何数字(例如,ID=65),逻辑树的类型是“FM类型”,成员树的数量是“2”,使用搜索引擎的数量是“2”(因为两个搜索引擎都包括在路径控制器10中)。然后,将这些内容作为参数发送到逻辑树控制API2。
逻辑树控制API2从应用程序1接收逻辑树创建指令,并执行消息创建过程(S21)。具体来说,逻辑树控制API2从应用程序1接收逻辑树创建指令(S201),并检查接收到的指令中的参数(S202)。如果指令中参数有什么错误的话,逻辑树控制API2将错误注意事项发送到应用程序1(S203)。例如,如果即使只有两个搜索引擎SE包括在路径控制器10中的情况下,参数中的使用搜索引擎的数量是“3”,则会发送错误通知。应用程序1接收错误通知(S103),认为发生了某些异常情况(S104),并将错误事件通知给路径控制器10的用户或管理员。例如,路径控制器10发出嘟嘟的警报声或在显示屏幕(未显示)上显示一个说明发生错误的消息(S105)。
另一方面,当由于步骤S202中的参数检查的结果判断参数为正常时,逻辑树控制API2创建一个逻辑树创建请求的消息(S204),并将消息发送到逻辑树管理器3中(S205)。消息还包括步骤S201中接收到的参数。
逻辑树管理器3从逻辑树控制API2接收逻辑树创建的请求消息(S301)。然后,逻辑树管理器3判断接收到的消息中包括的参数中的逻辑树ID是否已经注册(S302)。当逻辑树ID已经注册,由于这意味着逻辑树LT已经在路由表52中进行了注册,逻辑树管理器3判断接收到的消息中包括了某些种类的错误。因此,逻辑树管理器3向逻辑树控制API2发送一个错误通知(S303)。逻辑树控制API2从逻辑树管理器3中接收错误通知,并执行通知处理(S22)。具体来说,逻辑树控制API2接收错误通知(S206),假设发生了错误(S207),并向应用程序1发送一个错误通知(S208)。应用程序1接收到错误通知(S103),认为发生了错误(S104),并给出一个警告(S105)。
另一方面,当由于步骤S302中的判断没有注册逻辑树LT时,逻辑树管理器3创建逻辑树LT和成员树MT(S304)。具体来说,逻辑树管理器3基于接收到的消息中的参数创建逻辑树LT和路由表52中的成员树MT。由于参数中的成员树的数量是“2”,逻辑树管理器3在逻辑树LT内创建成员树MT1和MT2。在创建成员树MT1和MT2之后,逻辑树管理器3将创建的逻辑树LT注册到路由表52中,将表2显示的路径控制信息注册到注册信息文件51中(S305)。
表2
参考表2,路径控制信息包括注册的逻辑树ID、在逻辑树ID中创建的成员树的ID、在进行路径搜索时使用的搜索引擎的数量,指出目标叶L的注册目标的注册目标成员树ID。在下面一节描述了有关叶注册过程的注册目标成员树ID的详细信息。
在将路径控制信息在注册信息文件51中注册之后,逻辑树管理器3将逻辑树LT的创建正常完成的通知发送到逻辑树控制API2(S306)。
逻辑树控制API2从逻辑树管理器3接收正常完成的通知(S206),认为逻辑树LT的创建已经正常地完成(S207),并将正常完成的通知发送到应用程序1(S209)。
在从逻辑树控制API2(S103)接收到正常完成的通知之后,应用程序1认为逻辑树LT的创建已经正常地完成(S104)。此时,应用程序1激活应用程序微微代码7(S106)。然后,应用程序1判断微微代码7是否被正常地激活(S107)。当判断它没有被正常地激活时,应用程序1执行如步骤S105中的警告过程(S108)。当判断它被正常地激活时,应用程序1允许应用程序微微代码7接收帧(S109)。应用程序微微代码7只有在从应用程序1接收到许可之后才能接收帧,并从相邻的路径控制器接收路径信息。
通过上文所提及的操作,路径控制器10创建逻辑树LT(和成员树MT)。然而,在此初始设置过程中创建的逻辑树LT没有叶L,即,它是空的。要将多个叶L给予逻辑树LT,以便它作为路径信息起作用,路径控制器10对叶L执行注册过程,如下面一节所示的。
3.2.叶注册过程当接收具有没有向逻辑树注册的目标地址信息的帧时,或者当与相邻的路径控制器交换路径信息时,路径控制器10执行叶注册过程(S600),以便向逻辑树LT注册新叶L。参考图6,当接收一个帧(其路径无法从路由表52内的逻辑树LT搜索到)时,应用程序微微代码7向应用程序1发送帧。应用程序1接收对其不能进行路径搜索的帧(S121),并试图判断应该沿着其发送帧的路径(S122)。具体来说,应用程序1从帧中提取目标地址信息。应用程序1试图使用提取的目标地址信息,根据路径控制器10所属的路由协议,判断帧应该沿着其发送的路径信息。在执行步骤S122之后,应用程序1判断是否已经确定有关帧的路径信息(S123)。当判断路径信息不能被确定时,应用程序1取消帧(S124)。另一方面,当判断路径信息能够被确定时,应用程序1通过逻辑树控制API2指示向逻辑树管理器3注册叶L(S126)。叶L包括目标地址信息和指出具有目标地址信息的帧应该转至其中的目标的路径信息。这里,应用程序1进行API调用,以便将叶L注册到逻辑树控制API2。请注意,应用程序1从在步骤S122中提取的目标地址信息选择叶L应该向其注册的逻辑树LT的ID。所选择的逻辑树ID和叶L(目标地址和路径信息)被作为参数发送到逻辑树控制API2。
逻辑树控制API2从应用程序1对叶注册的API调用,并执行消息创建过程(S21)。
逻辑树管理器3接收逻辑树控制API2创建的消息(S321),并启动叶注册过程(S322到S325)。首先,逻辑树管理器3从接收到的消息中的参数中读取逻辑树ID,并判断读取到的逻辑树ID是否已经在注册信息文件51中注册(S322)。当判断它没有注册时,逻辑树管理器3向逻辑树控制API2发送一个错误通知(S323)。逻辑树控制API2接收错误通知,对通知进行处理(S22),并向应用程序1发送错误通知。应用程序1接收错误通知(S127),认为发生了错误(S128),并取消在步骤S121中接收到的帧(S129)。
另一方面,当在步骤S322中判断逻辑树ID已经注册,逻辑树管理器3指定注册目标成员树(S324)。具体来说,逻辑树管理器3查询注册信息文件51内的路径控制信息,以引用对应于逻辑树ID的注册目标成员树列。在注册目标成员树列中,具有最小数量的注册叶L的成员树ID已经注册。稍后将描述注册目标成员树列中的注册方法。例如,当步骤S321中接收到的信息位于逻辑树ID是“65”时,由于对应于逻辑树ID=65的注册目标成员树MT是“MT1”时,逻辑树管理器3指定“MT1”作为叶L的注册目标成员树MT。然后,逻辑树管理器3向指定的成员树MT1注册叶L(S325)。
在完成叶L的注册之后,则指定另一个注册目标成员树MT以便对下一个新叶L进行注册(S30)。原则上,下一个新叶L向多个成员树MT中具有最小数量的注册叶L的成员树MT进行注册。此成员树MT的指定是通过循环方法来执行的。具体来说,首先判断在步骤S325中向其注册叶L的成员树MT是否为MT1(S326)。当判断向其注册叶L的成员树MT是MT1时,下一个叶L的注册目标被设置为成员树MT2(S327)。换句话说,在逻辑树ID=65的情况下注册信息文件51中的注册目标成员树列从“MT1”变为“MT2”。当判断向其注册叶L的成员树MT不是MT1时,则认为叶L在步骤S325中是在成员树MT2注册的,以便下一个叶L的注册目标成员树MT变为“MT1”(S328)。
虽然在本实施例中,成员树MT的数量是2(MT1、MT2),如果提供了三个或更多成员树,则叶L可以按照成员树ID的递增的顺序进行注册(循环复用方法)。例如,当叶L在步骤S325中向成员树MT1注册时,则下一个注册目标成员树MT被设置为MT2,当下一个叶L在步骤S325中向成员树MT2注册时,则随后的注册目标成员树MT被设置为MT3。当成员树的数量是n(其中n是0除外的一个自然数),如果叶L在步骤S325中向成员树MTn进行注册,则下一个注册目标成员树MT被设置为MT1。使用循环复用方法来选择注册目标成员树ID意味着,所选择的成员树MT是在多个成员树MT中具有最小数量的注册叶的成员树MT。
当逻辑树LT中包括了多个成员树MT时,每次注册叶L时,通过上文所提及的操作按顺序改变注册目标成员树MT,而不是在一个成员树MT中对叶L进行密集的注册。因此,向其注册新叶L的成员树MT始终是在逻辑树LT内的多个成员树MT中具有最小数量的注册叶的成员树MT,从而在注册叶L时,可以将它们均匀地分布到每一个成员树MT中。
在注册叶L之后,逻辑树管理器3向逻辑树控制API2发送正常完成的通知(S329)。在接收到通知之后逻辑树控制API2对通知进行处理(S22),并向应用程序1发送正常完成的通知。
当接收到正常完成的通知之后(S127),应用程序1认为叶L的注册已经正常地完成(S128)。此时,应用程序1在步骤S121中向应用程序微微代码7发送接收到的帧(S130)。应用程序微微代码7接收帧并执行稍后描述的路径搜索处理。
3.3.叶删除过程当路径控制器10与相邻的路径控制器交换路径信息时,如部分3.2中所描述的那样注册新叶L,或可以删除叶L。当由于某种原因删除最初存在于网络上的路径时,将删除叶L。下面将描述叶L的删除操作。参考图7,在从相邻的路径控制器接收路径信息之后,应用程序1认为路由表52内的特定的叶L需要删除(S131),并通过逻辑树控制API2指示逻辑树管理器3删除叶L(S132)。此时,应用程序1作为参数向要被删除的叶L所属的逻辑树的逻辑树ID,和叶L中包括的目标地址信息。逻辑树控制API2接收指令以删除叶L,并执行消息创建过程(S21)。
在接收逻辑树控制API2创建的消息之后(S331),逻辑树管理器3判断作为叶L删除的目标的逻辑树LT是否被注册为控制信息(S332)。具体来说,逻辑树管理器3从在步骤S331中接收到的消息中包括的参数中读取逻辑树ID,并查询注册信息文件51来判断读取的逻辑树ID是否被注册(S322)。当判断目标逻辑树ID没有注册时,逻辑树管理器3向逻辑树控制API2发送一个错误通知(S333)。逻辑树控制API2接收错误通知,对通知进行处理(S22),并向应用程序1发送错误通知。在接收错误通知之后(S133),应用程序1认为发生了错误(S134),并执行警告处理(S135)。
另一方面,当判断目标逻辑树ID已经注册,逻辑树管理器3查询注册信息文件51以获取属于逻辑树ID的成员树ID(S334)。在获取成员树ID之后,逻辑树管理器3使用搜索单元4中的搜索引擎SE1和SE2搜索要被删除的叶L(S335)。具体来说,逻辑树管理器3向搜索单元4发送成员树ID(MT1、MT2)和步骤S331中接收到的参数中的目标地址信息作为搜索键。搜索单元4使用搜索引擎SE1和SE2搜索所涉及的叶L。此时,搜索单元4中的搜索引擎SE分别搜索不同的成员树MT。换句话说,当搜索引擎SE1搜索成员树MT1时,搜索引擎SE2搜索成员树MT2。在部分3.1中描述的初始设置时根据从应用程序1发出的参数判断用于进行搜索的搜索引擎的数量。在实施例中,由于使用搜索引擎的数量被设置为“2”,搜索引擎SE1和SE2两者都执行搜索。请注意,可以由搜索单元4或基于在部分3.1中描述的初始设置时从应用程序1发出的参数时判断搜索引擎SE1搜索成员树MT1和MT2中的哪一个。包括多个成员树MI的逻辑树结构而不是常规的单个树结构,允许多个搜索引擎中的每一个搜索引擎来搜索不同的成员树MT,从而缩短搜索时间。
逻辑树管理器3判断已经完全搜索成员树MT中的哪一个(S336)。此判断是基于从搜索单元4发出的搜索完成包括作出的。在完成成员树MT中的一个成员树的搜索之后,搜索单元4向逻辑树管理器3发送一个通知,说搜索已经完成(下文称搜索完成通知)以及其搜索已经完成的成员树ID。当判断成员树MT中的任何一个的搜索没有完成时,逻辑树管理器3重复步骤S336的判断操作。
当从搜索单元4接收到搜索完成通知时,逻辑树管理器3认为成员树MT中的任何一个成员树的搜索已经完成(S336),并判断在其搜索已经完成的成员树MT是否查找到要删除的叶L(S337)。具体来说,逻辑树管理器3从搜索单元4接收是否查找到所涉及的叶L,并作出判断。当判断没有查找到所涉及的叶L时,那么逻辑树管理器3判断搜索单元4是否完成对所有成员树MT的搜索(S338)。当判断对所有成员树MT的搜索已经完成时,由于这意味着要被删除的叶L不存在,则逻辑树管理器3向逻辑树控制API2发送一个错误通知(S339)。步骤S339的错误通知之后的操作与步骤S333的错误通知之后的操作相同。
另一方面,当在步骤S338中判断对所有成员树的搜索没有完成时,逻辑树管理器3再次返回到步骤S336,以继续搜索过程。当在步骤S337判断查找到了要被删除的叶L时,逻辑树管理器3删除所涉及的叶L(S340)。
在删除叶L之后,逻辑树管理器3发送正常完成的通知(S341)。已经接收到正常完成的通知的逻辑树控制API2对通知进行处理(S22),并向应用程序1发送正常完成的通知。在接收正常完成的通知之后(S133),应用程序1认为叶L的删除正常完成(S134),并结束叶L的删除过程。
3.4.逻辑树删除除以如上所述的方式删除已经注册的叶L之外,路径控制器10还可以删除逻辑树LT。有一个软复位作为删除逻辑树LT的示例。术语“软复位”意味着,路由表52内的逻辑树LT被删除和重新创建(初始化),而不切断路径控制器10的电源。下面描述了在软复位的情况下逻辑树删除的过程。
参考图8,应用程序1接收软复位请求(S111)。由用户自己从应用程序1外部输入软复位请求。然后,应用程序1指示应用程序微微代码7停止接收帧(S112)。这就防止了应用程序微微代码7在软复位过程中从连接到路径控制器10的主机接收任何帧。在发出指令以停止接收任何帧之后,应用程序1指示逻辑树控制API2删除逻辑树LT(S113)。具体来说,应用程序1作出对逻辑树LT的删除的API调用。此时,发送要删除的逻辑树ID作为参数。
已经接收到删除逻辑树的指令的逻辑树控制API2执行消息创建过程(S21)。在从逻辑树控制API2接收消息之后(S311),逻辑树管理器3判断所涉及的逻辑树LT是否已经注册(S312)。具体来说,逻辑树管理器3读取消息中包括的参数中的逻辑树ID,并判断读取到的逻辑树ID是否已经在注册信息文件51中注册(S322)。当判断没有对应的逻辑树ID时,逻辑树管理器3认为发生了某些错误,并向逻辑树控制API2发送一个错误通知(S313)。在接收错误通知之后,逻辑树控制API2对通知进行处理(S22)以向应用程序1发送一个错误通知。在接收错误通知之后(S114),应用程序1认为发生了错误(S115),并执行警告处理(S116)。
另一方面,当判断对应的逻辑树ID已经在注册信息文件51中进行了注册时,逻辑树管理器3查询注册信息文件51,以指定要删除的逻辑树LT内的成员树ID(MT1、MT2)。在指定成员树ID之后,逻辑树管理器3删除指定的成员树(S315)。具体来说,逻辑树管理器3将要删除的成员树ID发送给搜索单元4,并指示搜索单元4删除对应的成员树MT。已经接收到指令的搜索单元4搜索并删除对应的成员树MT。
在删除成员树MT之后,逻辑树管理器3删除注册信息文件51内的逻辑树ID(S316)。然后,在删除逻辑树之后,逻辑树管理器3向逻辑树控制API2发送正常完成的通知(S317)。已经接收到正常完成的通知的逻辑树控制API2对通知进行处理(S22),并向应用程序1发送正常完成的通知。
在接收到正常完成的通知之后(S114),应用程序1认为逻辑树LT的删除已经正常地完成(S115)。此时,路径控制器10执行如部分3.1所描述的初始设置处理(S500)。
通过上文所提及的操作,根据本实施例的路径控制器可以删除已经注册的逻辑树。
4.路径信息搜索的操作从路径控制器10所连接的网络内的多台主机中或从网络外面的路径控制器中向已经向逻辑树LT注册了路径信息的路径控制器10发出帧。路径控制器10接收从多个主机发出的多个帧,并基于在路径搜索过程中搜索到的路径信息来传输每一个帧(执行帧的转发)。
参考图9,应用程序微微代码7从路径控制器10的外部接收帧(S701)。在接收帧之后,应用程序微微代码7从帧中提取目标地址信息作为搜索关键字(S702)。然后,在提取搜索关键字之后,应用程序微微代码7向逻辑树搜索控制器6发送一个搜索请求(S703)。要被搜索的逻辑树ID和目标地址信息作为搜索关键字被作为搜索请求中包括的参数而发送。要被搜索的逻辑树ID由应用程序微微代码7基于提取的目标地址信息来确定。
在从应用程序微微代码7接收搜索请求之后(S601),逻辑树搜索控制器6判断要被搜索的逻辑树LT是否已经注册(S602)。具体来说,逻辑树搜索控制器6从接收到的搜索请求中包括的参数读取要搜索的逻辑树ID,并判断读取到的逻辑树ID是否已经在注册信息文件51中注册。当判断逻辑树ID没有在注册信息文件51中进行注册时,逻辑树搜索控制器6向应用程序微微代码7发送逻辑树ID的错误通知(S603)。在接收错误通知之后(S704),应用程序微微代码7认为发生了错误(S705)。此时,应用程序微微代码7向应用程序1发送在步骤S701中接收到的帧(S706)。应用程序1接收帧并执行部分3.2中描述的叶注册处理过程(S600)。
另一方面,当在步骤S602中判断要被搜索的逻辑树ID已经注册时,逻辑树搜索控制器6执行路径搜索(S604到S610)。具体来说,从注册信息文件51中获取属于搜索请求的参数中的逻辑树ID的成员树ID(S604)。逻辑树搜索控制器6向搜索单元4发送获取的成员树ID和搜索请求的参数中的目标地址信息,并指示搜索单元4开始搜索(S605)。在接收到搜索指令时,搜索单元4中的搜索引擎SE1和SE2开始通过使用目标地址作为搜索关键字搜索成员树MT1和MT2。搜索引擎相互搜索不同的成员树MT。例如,搜索引擎SE1搜索成员树MT1,而搜索引擎SE2搜索成员树MT2。如此,由每一个搜索引擎搜索不同的成员树,以缩短搜索时间。从步骤S606到步骤S609的逻辑树搜索控制器6的操作顺序与在叶删除处理中逻辑树管理器3从步骤S336到步骤S339的操作顺序相同(图7)。当在步骤S609中作为路径搜索的结果发送错误通知时,这就意味着,没有对应于在步骤S701中接收到的帧的叶L在路由表52中进行了注册。因此,应用程序微微代码7向应用程序1发送在步骤S701中接收到的帧(S706)。应用程序1接收帧并执行部分3.2中描述的叶注册处理过程(S600)。
另一方面,当作为路径搜索的结果搜索匹配目标地址信息的叶L时,逻辑树搜索控制器6向应用程序微微代码7发送搜索的叶L(S610)。通过接收叶L(S704),应用程序微微代码7认为路径搜索正常地完成(S705)。结果,从接收到的叶L提取路径信息,并确定在步骤S701中接收到的帧的目标(S707)。在此确定之后,将帧传输到目标(S708)。
如上所述,路径控制器10包括具有路由表52内的多个成员树MT的逻辑树。由于向每一个成员树MT注册的叶的数量小于向为同一个根提供的单个树注册的叶的数量,在路径搜索过程中到达叶L之前穿过的节点的数量也可以缩短。此外,由于以这样的方式使用多个搜索引擎SE搜索多个成员树MT,以便每一个搜索引擎搜索不同的成员树MT,与常规的方法相比,搜索时间可以大大缩短。
在本实施例中,搜索引擎SE的数量是2,但是在路径控制器中可以提供更多的搜索引擎。此外,在本实施例中,为两个搜索引擎SE创建了两个成员树MT,但是成员树MT的数量可以大于搜索引擎SE的数量。例如,在路径控制器10中可以创建四个成员树MT1到MT4。在此情况下,搜索可以以这样的方式来完成以便搜索引擎SE1搜索成员树MT1和MT2,而搜索引擎SE2搜索成员树MT3和MT4。
此外,可以使用哈希函数对叶中包括的目标地址信息进行哈希处理。在此情况下,当搜索成员树MT(S605)时,由搜索单元4对在路径搜索过程中在步骤S702提取的搜索关键字(目标地址信息)(图9)进行哈希处理。
虽然上文描述了本发明的实施例,但是,如前所述的实施例只是实现本发明的一个说明性的示例。因此,本发明不仅限于如前所述的实施例,在不偏离本发明或范围或基本特征的情况下,可以执行适当的修改。
权利要求
1.一种用于从网络内的多台主计算机或从其他网络接收帧并传输帧的路径控制器,包括一个路由表,用于存储多个叶,所述叶包括树结构中的目标地址信息和对应于所述目标地址信息的路径信息,所述树结构包括多个具有公共根的成员树;搜索装置,用于通过使用所述接收到的帧中包括的目标地址信息作为搜索关键字,搜索所述多个成员树;以及接收和传输装置,用于根据所述搜索装置搜索到的叶中包括的路径信息接收所述帧,并传输所述接收到的帧。
2.根据权利要求1所述的路径控制器,其中所述公共根包括多个直接表,用于记录有关所述目标地址信息内的高阶N位的组合的组合信息,其中N是一个自然数,以及所述多个直接表以这样的方式对应于所述多个成员树,以便两者相互具有相同的组合信息。
3.根据权利要求1或2所述的路径控制器,其中所述搜索装置包括对应于所述多个成员树提供的多个搜索引擎,用于通过使用所述接收到的帧中包括的目标地址信息作为搜索关键字分别搜索对应的成员树。
4.根据权利要求1到3中的任何一个的路径控制器,进一步包括创建装置,用于基于从外部输入的成员树的数量的信息创建树结构,所述树结构包括所述路由表内的多个成员树。
5.根据权利要求4所述的路径控制器,其中所述创建装置从外部接收一个新叶,并向所述多个成员树中的具有最小数量的注册叶的成员树注册所述新叶。
6.根据权利要求5所述的路径控制器,进一步包括注册信息文件,用于存储注册目标信息,所述注册目标信息指明一个成员树,新叶向该成员树进行注册;其中,当从外部接收新叶时,所述创建装置基于所述注册目标信息注册所述新叶,并在注册之后,改变所述注册目标信息,以指明具有最小数量的注册叶的另一个成员树。
7.根据权利要求6所述的路径控制器,其中在注册所述新叶之后,所述创建装置通过循环复用方法改变所述注册目标信息。
8.一种使用路径控制器的路径控制方法,用于从网络内的多台主计算机或从其他网络接收帧并传输帧,所述路径控制器包括一个路由表,用于存储多个叶,所述叶包括树结构中的目标地址信息和对应于所述目标地址信息的路径信息,所述树结构包括多个具有公共根的成员树;以及搜索装置,其中,所述路径控制方法包括下列步骤从外部接收帧;从所述帧提取目标地址信息;通过使用所述提取的目标地址信息作为搜索关键字,搜索所述多个成员树;以及基于当在所述搜索步骤中搜索对应于所述搜索关键字的叶时搜索的所述叶中包括的路径信息,传输所述帧。
9.根据权利要求8所述的路径控制方法,其中所述公共根包括多个直接表,用于记录有关所述目标地址信息内的高阶N位的组合的组合信息,其中N是一个自然数,以及所述多个直接表以这样的方式对应于所述多个成员树,以便两者相互具有相同的组合信息。
10.根据权利要求8或9所述的路径控制方法,其中所述搜索装置包括多个搜索引擎,以及每一个所述搜索引擎都在所述搜索步骤中搜索对应的成员树。
11.根据权利要求8到10中的任何一个的路径控制方法,进一步包括下列步骤从外部接收新叶;以及向所述多个成员树中的具有最小数量的注册叶的成员树注册新叶。
12.根据权利要求11所述的路径控制方法,其中,所述路径控制器进一步包括用于存储注册目标信息的注册信息文件,所述注册目标信息指明一个成员树,新叶向该成员树进行注册,以及所述路径控制方法的所述注册步骤进一步包括基于所述注册目标信息注册所述新叶的步骤,并在注册之后,改变注册目标信息,以指明具有最小数量的注册叶的另一个成员树。
13.根据权利要求12所述的路径控制方法,其中所述注册目标信息在所述改变步骤中是通过循环复用方法改变的。
14.一种路径控制程序,用于指示计算机执行根据权利要求8到13中的任何一个权利要求的所述步骤。
全文摘要
公开了路径控制器、路径控制方法及其程序。为了提供能够缩短路径搜索时间,路径控制器10在初始设置时创建具有路由表52内的多个成员树MT1和MT2的逻辑树LT。成员树MT1和MT2的直接表DT1和DT2具有相同的DT条目(根)。与为同一个根制造单个树的常规树不同,因此,本发明为相同的根制造多个成员树,在到达叶L之前穿过的节点N的数量被减少。在执行路径搜索时,多个搜索引擎SE1和SE2分别搜索成员树MT1和MT2。
文档编号H04L12/56GK1578269SQ20041006211
公开日2005年2月9日 申请日期2004年7月2日 优先权日2003年7月8日
发明者冈田雅州, 近藤埋彦 申请人:国际商业机器公司