发明概述
相应的,本发明的方向是在路由设备中为分组选择路由的方法,
该方法基本上避免了由于现有技术的局限和不足导致的一个或多个问
题。
本发明的一个目的是提供一种在路由设备中为分组选择路由的方
法,其中路由选择路径与每个数据分组的特性相关。
本发明的另一个目的是提供一种为分组选择路由的方法,它通过
最小化每个分组的数据处理时间而优化路由设备的路由选择性能。
本发明的其它优点、目的和特征部分将在以下的说明书中进行阐
述,部分则对于本领域的技术人员经过对以下内容的检验后会变得明
了,或者通过本发明的实践而体会到。本发明的目的和其它优点可以
通过说明书和权利要求书以及附图所具体指出的结构来实现和获得。
为了实现这些目的和其他优点,根据本发明的目的,正如这里所
体现并详细描述的,一种在路由设备中为分组选择路由的方法包括:
(a)接收包含目标地址的分组,(b)检验目标地址是否属于该路由
设备,(c)如果目标地址不属于该路由设备,则检验目标地址是否
与新近地址相同,和(d)如果目标地址与新近地址相同则将分组传
送到新近接口。其中的路由设备具有主处理器,主处理器包含主缓存
表和瞬时缓存表。
本方法还包括如下步骤:(e)如果在步骤(c)确定目标地址与
新近地址不同,则计算目标地址的散列密钥值(N),(f)检验目标
地址是否与存储在主缓存表的第N个缓存地址相同,和(g)如果目标
地址与第N个缓存地址相同则将分组传送到对应于第N个缓存地址的第
一接口。
最后,该方法包括步骤(h)将存储在瞬时缓存表中的新近地址
和新近接口分别重新设置成第N个缓存地址和第一接口。
在本发明的另一个方面,一种在路由设备中为分组选择路由的方
法包括:(a)接收包含目标IP地址的分组,(b)检验目标IP地址是
否属于该路由设备,(c)如果目标IP地址不属于该路由设备,则检验
目标IP地址是否与当前IP地址相同,和(d)如果目标IP地址与当前IP
地址相同则将分组传送到当前IP接口。其中的路由设备具有主处理器,
主处理器包含主缓存表和瞬时缓存表。
该方法还包括步骤:(e)如果在步骤(c)确定目标IP地址与当
前IP地址不同,则计算目标IP地址的散列密钥值(N),(f)检验目
标IP地址是否与存储在主缓存表的第N个缓存IP地址相同,和(g)如果
目标IP地址与第N个缓存IP地址相同则将分组传送到对应于第N个缓存
IP地址的第一IP接口。
最后,该方法包括步骤(h)将存储在瞬时缓存表的当前IP地址
和当前IP接口分别重新设置成第N个缓存IP地址和第一IP接口。
可以理解本发明的上面的概述和下面的详细说明是示例性的和说
明性的,旨在对权利要求所限定的本发明作进一步解释。
优选实施例详述
以下详细说明本发明的优选实施例,在附图中说明了这些实施
例。相同的标号在所有的附图中用于表示相同或类似的部件。
图3说明了包含根据本发明的路由设备20的网络系统。由图可见,
该装置包括主处理器11、协议层12、顶层应用模块13和路由表14。
协议层12可以包括IP(互联网协议)层12A、IPX(内联网分组交
换)层12B、桥接器层12C等等的任何一个。
包含在本发明路由设备20中的主处理器11包括主缓存表11A和瞬
时缓存表11B。主缓存表11A另外存储一些存在路由表14中的核心信
息。
例如,在路由表14存储各种信息的情况下,例如目标互联网协议
(IP)地址、子集掩码、网关、量度、协议和接口,主缓存表11A另
外存储包含缓存IP地址和接口的核心信息。当然,存储在主缓存表11A
的缓存IP地址等同于存在路由表14(例如IP路由表14A)中的目标地
址。
另外,瞬时缓存表11B存储新近地址和与路由设备20进行的最近
的分组传输相关的相应接口。
当路由设备20收到来自另一个节点或路由设备的分组时,主处理
器11能够在不需要传送分组到协议层12的情况下,利用两个表(11A
和11B)完成分组传输处理。
在图1所示的现有路由设备中,所有的核心信息存储在路由表4
中,因此,每个分组必须通过包含主处理器1和IP层2A的路由选择路
径而传输。
另一方面,在本发明的路由设备中,与确定分组选择路由有关的
核心信息不仅存储在与协议层12相连的路由表14中,而且存储在主处
理器11所包含的主缓存表11A和瞬时缓存表11B中。
因此,可以选择只包括主处理器11的路由选择路径或包括主处理
器11和协议层12的另一条路由选择路径来传输分组。该选择取决于分
组的特性。
例如,如图4所示,只包括主处理器11的路由选择路径可用于传
送分组。结果可以减少处理分组所需的时间。
现在将详细说明根据本发明的在路由设备中为分组选择路由的方
法,该方法的例子在图5中示出。
首先,路由设备20的主处理器11周期地检验每个端口6是否收到
分组(S1)。如果没有收到分组,则等待直到预定的时间过去(S2),
并在每个端口再次重复步骤S1。
如果在步骤S1确定通过端口收到分组,则主处理器11检验分组的
目标地址(例如,目标IP地址)是否属于该路由设备(S3)。也就是说,
主处理器11检验该分组是否应当传送到另一个节点或路由设备。例
如,主处理器11通过搜索14个字节的IP报头之后得到分组的目标地址
(例如,IP地址)。
如果收到的分组目标地址(例如,IP地址)属于包含主处理器11
的路由设备20,则主处理器11确定该分组应当在协议层12(例如,IP
层12A)处理。因此,它把分组发送到协议层12(例如,IP层)(S20)。
当协议层12收到来自主处理器11的分组时,IP层12开始确定分组
是否在协议层(例如,IP层)12处理(选择路由)(S21)。
如果否,则协议层12将分组发送到顶层应用模块(TAM)13(S22)。
否则,协议层12通过搜索路由表14(例如,IP路由表14A)而找到对
应于分组目标地址的接口(S23),并将该分组发送到所找到的接口
(S24)。
再回到步骤S3,如果分组的目标地址对应于另一个路由设备,则
主处理器11检验分组的目标地址是否是单点传送(S4)。
如果否(例如,多点传送、广播等等),则主处理器11向协议层
12发送分组(S20)。然后协议层12重复步骤S21到S24。
否则,主处理器11搜索存储在瞬时缓存表11B中的核心信息(S5),
检验分组的目标地址是否与瞬时缓存表11B中的新近地址相同(S6)。
如前所述,新近地址表示与路由设备最近进行的分组传输相关的地
址。
如果分组的目标地址与瞬时缓存表11B中存储的新近地址相同,
则主处理器11找到对应于新近地址的接口并将分组发送到所找到的接
口(S7)。
另一方面,如果分组的目标地址不同于瞬时缓存表11B中存储的
新近地址,则主处理器11利用散列函数得到对应于目标地址的散列密
钥(S8)。
例如,可以由下面的等式1得到散列密钥
K=(N1+N2+N3+N4)/T
其中,K和T表示散列密钥和主缓存表11A的大小,N1、N2、N3
和N4表示分组目标地址的第1、第2、第3和第4字节。
此后,主处理器11通过搜索主缓存表11A找到对应于计算出的散
列密钥的缓存地址(S9)。例如,如果散列密钥是4,则在主缓存表11A
的第4入口找到缓存地址。如果散列密钥15,则在主缓存表11A的第15
入口找到缓存地址。
接下来,主处理器11检验分组的目标地址是否与在步骤S9找到的
缓存地址相同(S10)。
例如,如果散列密钥是4,则主处理器11检验属于主缓存表11A第
4入口的缓存地址是否与分组的目标地址相同。
如果分组的目标地址不同于在步骤S9找到的缓存IP地址,则主处
理器11判断主缓存表11A中没有目标地址。因此,它将分组发送到协
议层12(S30)。
当协议层12收到分组时,协议层12开始确定分组是否应该在协议
层12中处理(S31)。
如果否,则协议层12将分组发送到顶层应用模块(TAM)12(S32)。
否则,协议层12通过搜索路由表14(例如,IP路由表14A)找到对应
于分组目标地址的接口(S33),并将分组发送到所找到的接口(S34)。
接下来,主处理器11将与步骤S34中进行的分组传送处理相关的
地址和接口存储在主缓存表11A中(S55)。还将同样的信息存储在瞬
时缓存表11B中(S36)。相应地,瞬时缓存表11B包含与最新的分组
传送信息相关的新近地址和接口。
回到步骤S10,如果在步骤S10中确定分组的目标地址与步骤S9找
到的缓存地址相同,则主处理器11将分组发送到对应于缓存地址的接
口(S11)。
同样,主处理器11将与步骤S11中进行的分组传送处理相关的接
口和缓存地址存储到瞬时缓存表11B中(S12)。
总而言之,与确定路由选择路径相关的核心信息不仅存储在协议
层12的路由表14中,而且存储在包含在主处理器11中的瞬时缓存表
(11A和11B)之中。因为给定分组的路由路径的选择取决于分组的特
性,所以减少了分组的数据处理时间。结果,增强了路由设备的路由
选择性能。
对于本领域技术人员来说,很显然可以对本发明进行各种修改和
变化。因此,在所附权利要求及其等同物的范围内,本发明包括对本
发明的各种改进和变化。