路由器中用于有效的周期性csnp的csnp缓存的制作方法

文档序号:7948803阅读:324来源:国知局
专利名称:路由器中用于有效的周期性csnp的csnp缓存的制作方法
技术领域
本发明一般地涉及联网设备,更具体而言,涉及在诸如路由器之类的联网设备中处理CSNP分组。
背景技术
在计算机网络中,路由协议在诸如路由器之类的联网设备被添加到网络或从网络中删除时,被用来动态传输路由信息。路由器可以基于它们的本地接口建立被称为链路状态分组(LSP)的分组或消息,并且LSP分组描述了路由器的接口和在网络中的邻居(即邻近路由器)。通常,LSP消息包括发起该LSP分组的路由器的名称、序号以及“链路”或相邻路由器的列表。
每个路由器使用传统的“泛播(flooding)”算法向邻近路由器发送其LSP,并且LSP未经改变地被传递到其他邻近路由器,直到区域中的所有路由器都已接收到它们为止。当被收集在一起时,LSP可被用来描述网络的拓扑。
每个路由器维护着链路状态数据库(LSDB),其包括路由器已经接收到的所有LSP。当网络拓扑发生改变时,一个或多个LSP将跟着发生相应的改变。
指定的路由器发送被称为CSNP分组(完整序号协议数据单元(PDU))的分组到其他路由器,以便维持与网络拓扑信息相关的数据库同步。CSNP分组包括发送该CSNP分组的路由器已知的所有链路状态。例如,在路由协议IS-IS(中间系统-中间系统)中,指定的路由器发送CSNP分组,以确保参与该协议的所有路由器都具有链路状态数据库的完整拷贝。通常,CSNP消息包括这样的条目,其中每个条目具有源标识(LSP ID,标识针对各个LSP的源路由器)和对应于该LSP的序号。
每个接收CSNP分组的路由器将CSNP分组中的链路状态列表(即来自LSP ID和序号)与其自己的内部链路状态数据库相比较。例如,接收到CSNP的路由器中的序号不匹配指示接收方路由器可能不具有网络中的另一路由器报告的最近的链路状态。这些差异可以通过发送接收者的数据库中的LSP或通过向另一路由器发送要其发送丢失的LSP的请求(以部分序号(PSNP)的形式)来解决。
CSNP分组或消息是基于CSNP间隔计时器来周期性地发送的,所述CSNP间隔计时器定义从接口发送CSNP分组之间的秒数。在根据IS-IS规范的局域网(LAN)上需要周期性的CSNP发送。传统上,周期性的CSNP分组发送是通过使用CPU资源遍历其链路状态数据库并且在每次CSNP计时器期满时重建所产生的CSNP分组的方式在路由器中实现的。例如,如图1所示,传统的路由器10包括IS-IS软件进程12,其操作性地包括链路状态数据库14和周期性CSNP功能16。
但是,当拓扑变得更密集时,会出现扩展问题。如本发明的发明人所意识到的,存在很多使得周期性的CSNP发送成问题的问题。在给定接口上的CSNP间隔是可配置的,各个接口上的最大发送单元(MTU)可能不相同,并且可能存在成百上千个诸如对等链路(P2P)之类的接口或链路需要支持。此外,可专用于CSNP处理的CPU时间量可能非常有限。在每次CSNP计时器期满后通过遍历链路状态数据库重建CSNP分组的做法可能需要路由器的过多的CPU资源。
因此,如本发明的发明人所意识到的,需要一种在减少CPU消耗和增大可扩展性的同时提供周期性的CSNP功能的方法和装置。
本发明的各个实施例的特征、功用和优点将从以下结合附图对本发明实施例的具体描述中变得更加明显。


图1示出传统路由器的框图。
图2示出根据本发明一个实施例的具有CSNP缓存的路由器的示例的框图。
图3示出本发明的实施例可以使用的各种数据结构的示例。
图4示出根据本发明一个实施例的数据结构的示例。
图5示出根据本发明一个实施例,用于初始化CSNP缓存的逻辑操作的示例。
图6示出根据本发明一个实施例,用于改变CSNP缓存的条目的逻辑操作的示例。
图7示出根据本发明一个实施例,用于处理期满的CSNP计时器的逻辑操作的示例。
图8示出根据本发明一个实施例,用于计算CSNP片断(fragment)的逻辑操作的示例。
图9示出根据本发明一个实施例接合CSNP条目的示例。
具体实施例方式
本发明的实施例提供了在形成将发送的CSNP分组时可用使用的缓存。缓存可被实现在诸如路由器之类的联网设备中。本发明的各个实施例在这里被公开。
如图2所示,本发明的实施例提供了可被用于形成将从路由器24发送的CSNP消息22的缓存20。缓存20提供了在每次CSNP计时器期满时无需CPU资源遍历链路状态数据库26重建CSNP值的情况下执行CSNP功能所需的条目。这里描述了可以在缓存中实现的各个特征。在一个示例中,路由器24还可以包括IS-IS软件进程28、包含一个或多个链路状态的链路状态数据库(LSDB)26以及周期性CSNP进程30。
在一个实施例中,链路状态数据库26可以包括描述网络中的链路的一个或多个条目,并且这些条目可以从接收自网络中其他路由器的链路状态分组(LSP)消息中得到,或者可以从当前路由器的接口得到,并描述了与其相邻的路由器。链路状态数据库26可以利用任意用于管理链路状态数据库26的传统进程或技术来实现。一般而言,链路状态数据库26可以包括来自LSP的所有相关数据,包括LSP头部、LSP ID以及可以包括序号和相邻路由器或链路的链路状态分组的主体或有效载荷。例如,在一个示例中,链路状态数据库26可以包括所有LSP的树。
图2的示例的路由器24可以实现周期性CSNP功能30,其中路由器24向网络中的其他路由器周期性地发送(一个或多个)CSNP消息22,其中CSNP消息22被用来向其他路由器传达路由器24的链路状态数据库26的内容。根据本发明一个示例,路由器24可以具有多个接口32、34,其中每个接口可以具有独立的CSNP计时器和“下一LSP ID”路由器。
为了减少在建立用于大量接口(例如(但不局限于)P2P和DIS LAN接口)的CSNP分组时由复制的LSDB遍历所消耗的CPU资源,本发明的实施例提供了CSNP缓存20。在一个示例中,缓存20中的每个条目代表一个CSNP片断,其尺寸可能局限于LSP MTU尺寸,以确保它可以通过任意IS-IS接口来发送。在CSNP计时器期满之后,接口从缓存20中拾取下一片断用于发送。结果,只要LSDB 26是稳定的,当CSNP计时器期满时就不需要LSDB遍历。
在一个示例中,路由器24的每个接口32、34可以访问CSNP缓存20,以便生成CSNP分组22。所有CSNP接口计时器可经由计时器轮来分配。这可以提供时间上处理的统一分配。
图3示出根据本发明实施例可被用作CSNP缓存20中的条目40的数据结构。CSNP条目40可以包括范围字段42,其包括开始和结束链路状态PDU标识44、46,例如开始和结束LSP ID。优选地,每个缓存条目40的范围字段42具有开始和结束链路状态标识,从而使得当在缓存中被列出时,所有范围字段42覆盖了缓存20中代表的可能的链路状态标识的完整范围。
缓存条目40还可以包括“有效”标志48(真或假),其指示缓存条目40是有效的还是无效的。缓存条目40还可以包括PDU内容50,其可以包括标识相应LSP的LSP头部的列表。在另一示例中,PDU内容50可以包括CSNP片断,所述CSNP片断可以包括将被包括在CSNP消息中的LSP ID的列表并且可以包括开始和结束LSP ID和PDU头部。例如,每个缓存条目40可以包括标识相应LSP的一个或多个LSP头部。
根据本发明一个实施例,缓存20的示例还如图3所示。在一个示例中,CSNP缓存20可以包括标志“ALL_VALID”60(真或假),其指示缓存是有效的还是无效的。
缓存20还可以包括缓存条目40的AVL树或其他数据结构62(例如链表),并且允许快速插入、删除和搜索数据结构62。在一个示例中,AVL树62包括所有缓存条目或CSNP片断40。AVL树62(例如平衡的二元搜索树)可被用来存储记录或条目40。在一个示例中,AVL树实现方式62可以利用用于处理缓存条目40的线程化进程。
在一个示例中,缓存20可以利用缓存条目中列出的第一LSP ID来索引。在一个示例中,AVL树中的每个节点可被单独地使之无效,并且完整的缓存可被自动地使之无效。
对于正在提供CSNP分组22的路由器24的每个接口32、34,CSNP计时器值33、36可以与这样的接口32、34相关联。例如,CSNP计时器33可以是每隔10秒期满一次的周期性计时器。此外,用于“下一LSP标识”的值或地址35、37也可以与这样的接口32、34相关联。
下面图4示出根据本发明一个实施例的缓存条目的示例。在图4的示例中,假设LSP ID范围是A到Z,其中在链路状态数据库26中存在六个LSP(A、C、M、N、O、Y)。
还假设LSP最大发送单元(MTU)被设置为使得一个CSNP缓存条目/CSNP片断40中仅装入两个LSP ID。由于在此示例中,在数据库26中存在六个LSP,因此将存在三个缓存条目/CSNP片断40。
在该示例中,CSNP缓存20可以如图4所示“ALL_VALID”标志60对于该缓存为真,并且存在如下三个CSNP条目40(A,C,真,[A,C])(D,N,真,[M,N])
(O,Z,真,[O,Y])缓存20中的第一条目的范围字段42为(A,C),因为缓存条目40中的LSP具有的LSP ID为(A,C),其范围从(A)到(C)。缓存20中的第二条目的范围字段42为(D,N),因为缓存条目中的LSP具有的LSP ID为(M,N),它是总体范围(D,N)的一部分。缓存20中的第三条目的范围字段42为(O,Z),因为缓存条目中的LSP具有的LSP ID为(O,Y),它是总体范围(O,Z)的一部分。因此,每个缓存条目的范围字段一起覆盖了从(A)到(Z)的总体范围。
在操作中,例如,当路由器24的CSNP进程31使得CSNP计时器33在接口32(例如IS-IS接口)上期满时,CSNP进程31查看缓存20以形成第一CSNP分组22。利用“下一LSP标识”35,CSNP进程31从适当的CSNP缓存条目获得LSP信息,并将该信息通过接口32发送到其他路由器。“下一LSP标识”35被更新,并且CSNP进程31随后通过接口32发送带有来自下一CSNP缓存条目的LSP信息的CSNP分组22。该进程的实施例在图7中有所描述。
图5示出根据本发明实施例用于初始化CSNP缓存的操作示例。图5用于CSNP缓存初始化的操作例如可以发生在LSP MTU(最大发送单元)的配置或重配置被指定时。在操作70处,CSNP缓存中的所有现有条目被删除。在操作72中,向缓存添加条目。在一个示例中,缓存条目可以包括范围字段(即指定开始LSP ID和结束LSP ID)、有效标志或位(真或假)以及PDU内容。如图5所示,在一个示例中,当添加了新条目时,它可能具有初始设置,其中范围字段覆盖了LSP ID的整个范围(被示为(A,Z)),有效标志或位为假并且PDU内容为空或null。
图6的操作涉及根据本发明一个实施例单个LSP中的改变,其将影响CSNP缓存中的相应改变。这些操作可能发生在存在对本地LSP的更新或者路由器接收较新的LSP时。在操作80,在接收到LSP之后,对缓存中针对覆盖或包括了受影响的LSP的范围的条目进行查找。在操作82,与受影响的LSP相关联的CSNP缓存条目被标记为无效的或假的。新LSP将被存储在LSDB 26中。
图7示出根据本发明一个实施例用于利用CSNP缓存形成和发送CSNP分组或消息的操作的示例。当CSNP计时器期满时,例如通过路由器的一个或多个接口,图7的示例性操作可以被执行。在一个示例中,CSNP计时器周期性地期满,并因此,图7的一个或多个示例性操作被周期性地执行。
在操作90,接口的“下一LSP ID”被用于从缓存中找到将发送的下一个缓存条目,并取得适当的缓存条目。在一个示例中,一旦该“下一LSP ID”缓存条目被找到,如果需要,“下一LSP ID”可被更新到被设置为缓存条目中的结束LSP ID,或被更新到LSP ID范围的开始。如果希望,操作90可以利用图8来操作来实现,如下所述。
在操作92,包含在操作90中取得的缓存条目中的CSNP片断/PDU内容作为CSNP分组或消息通过各自的路由器接口被发送(即路由器将CSNP片断作为分组从CSNP计时器已经期满的接口发送出去)。CSNP分组或消息的发送可以利用传统的用于发送CSNP分组的方法。在同一接口上的其他IS-IS路由器将接收CSNP片断并检查其与它们自己的链路状态数据库的一致性。
在一个示例中,操作92发送多个CSNP片断,以覆盖LSP ID范围。例如,在图4的示例中,如果下一LSP ID是“A”,则操作92发送第一缓存条目(A,C,真,(A,C))的相关内容,从而LSP LD为A、C的CSNP消息被发送。
在操作94处,如果CPU被加载,则控制传递到操作96,该操作96利用例如配置值的八倍的指数回退来启动CSNP计时器。该计时器可加载其他值,或利用其他传统的计时器加载程序或值来加载。因此,在操作96,计时器被重新加载,然后发送下一缓存条目。当操作96的计时器期满时,控制可以返回操作90,以从下一缓存条目获得和发送LSP信息。
在一个示例中,系统的加载可以在计算在重启计时器时将提供给计时器的值时被使用。如果1分钟加载平均值大于0.5,则例如可以使先前的CSNP间隔加倍。在一个示例中,该操作的上限可以是一个乘数,例如配置值的8倍,但是其他上限也是可能的。这可以确保某种CSNP生成将发生。
在操作94,如果CPU未被加载,控制则传递到操作98。操作98判断发送CSNP片断的一个周期是否已经完成。如果没有,控制则传递到操作100(可选的),操作100利用短步调(pacing)值来启动CSNP计时器,例如短步调值66毫秒。当操作100的计时器期满时,控制可以返回操作90,以从下一缓存条目获得和发送LSP。
为了覆盖整个链路状态数据库,可能需要发送多于一个CSNP片断。常规配置的CSNP计时器可以是发送整组CSNP片断的间隔(一个周期)。例如,假设存在CSNP片断1、2和3和10秒的CSNP计时器,则CSNP片断1、2、3将被发送;保持安静10秒;发送CSNP片断1、2、3;保持安静10秒,以此类推。在一种实现方式中,作为短步调延时的等待时间(例如66毫秒)可被用作发送片断1-2和2-3之间的等待时间量。
但是,如果操作98确定一个周期已经完成,则控制传递到操作102,其利用配置值启动CSNP计时器。当操作102的计时器期满时,控制可以返回操作90以从下一缓存条目获得和发送LSP。
在一个示例中,在常规操作过程期间,用于接口的CSNP计时器将期满,以指示到了路由器发送CSNP消息的时间,该CSNP消息具有来自该路由器的链路状态数据库的所有链路状态。CSNP缓存不是遍历链路状态数据库,而是将被用来生成CSNP消息。操作90将利用“下一LSP ID”获得下一缓存条目。从该条目,操作92将发送存储在该缓存条目中的LSP,作为CSNP消息。如果需要,操作98(可选的)随后将引入短步调延时,直到进程返回操作90,以利用“下一LSP ID”获得下一缓存条目,从而使得具有存储在该缓存条目中的LSP的CSNP消息被发送。在一个示例中,该进程将继续,直到缓存中的所有LSP都被发送为止。
图8示出用于计算CSNP缓存条目的逻辑操作的示例。如果需要,这些操作可被用于图7的操作90。
在图8的操作110处,缓存标志“ALL_VALID”被检查以判断是否CSNP缓存中的所有条目都是有效的,还是某些条目是无效的。如果某些条目无效,则在操作112,所有CSNP缓存条目都被标记为无效或假,并且控制传递到操作114(如下所述)。如果在操作110,缓存的“ALL_VALID”标志为假(即缓存有效),控制则传递到操作114。
在操作114,基于下一LSP ID,对范围覆盖下一LSP ID的CSNP缓存条目进行查找。
在操作116,如果缓存条目无效,则控制传递到操作118-122。但是,如果操作116确定CSNP缓存条目有效,则控制传递到操作124,其返回有效的CSNP缓存条目,并且该进程的迭代完成。
如果在操作116,CSNP缓存条目无效,控制则传递到操作118,其中所有先前CSNP无效缓存条目都被定位到并在一个实施例中被删除。该操作还可以包括更新CSNP缓存条目的“开始LSP ID”以覆盖新范围。
操作120找到无效的所有后续CSNP缓存条目,并且在一个示例中,这些条目被删除,下一有效的CSNP条目被包括进来,并且“结束LSPID”被更新以覆盖新范围。在操作122,CSNP缓存条目根据新范围被重建,并且“有效”标志针对该缓存条目被设置为真。
操作126判断重建的缓存条目是否完全覆盖新范围,如果是,控制则传递到操作124,该操作124返回有效的CSNP片断,并且该进程迭代完成。否则,操作126传递控制到操作128,在一个示例中,该操作128对范围的其余部分添加无效的CSNP缓存条目。该无效的条目将在下一CSNP计时器期满之后被重建。
图9示出根据本发明一个实施例,接合缓存20中的条目的一个示例。在图9的示例中,假设链路状态数据库26已被从具有六个LSP(A、C、M、N、O、Y)改变到新的只具有三个LSP(A、M、O)。
在CSNP缓存20中,“ALL_VALID”标志60可被设置为真,并且CSNP缓存条目40的AVL树或链路列表62可以包括(A,C,假,[A,C])(D,N,假,[M,N])(O,Z,假,[O,Y])此外,还假设来自缓存条目(A,C)的LSP已被发送,并且接口“下一LSP ID”等于D。
利用D的下一LSP ID,缓存条目(D,N,假,[M,N])被找到。由于它是无效的,因此使用条目的接合/合并,并且它与周围的无效片断组合在一起。在接合以针对范围(A,Z)建立并产生片断(A,M,真,[A,M])时,由于完整的范围(A,Z)未被覆盖,因此添加新的无效条目(N,Z,假,[空])。
因此,CSNP缓存20将使得“ALL_VALID”标志60设置为真,并且将具有CSNP缓存条目40(A,M,真,[A,M])(N,Z,假,[空])现在,片断(A,M)作为CSNP消息被发送,并且片断(N,Z)可以在下次下一CSNP计时器期满之后被重建为(N,Z,真,
),然后被发送。
如这里所述,当链路状态数据库26的相应部分改变时,单独的缓存条目40可以被无效。在一个示例中,每个被无效的缓存条目40只能针对已经发出该片断的接口被重建一次。如果LSDB 26在CSNP计时器下次期满之前没有改变,如果需要,缓存20则可以被其他接口重复使用。
在最坏情况下,LSDB 26一直改变,在每次CSNP计时器期满时,覆盖片断范围的LSDB 26的遍历可以被执行,这将与在第一阶段中没有实现缓存20的情况具有类似的处理量。但是,缓存20可以提供在长时间段期间可实现的良好命中率。
如果计时器线程遇到已被全局无效的缓存20,则在一个示例中,在其他操作之前,计时器线程可以无效掉缓存20中的所有条目40,然后再全局地使缓存20有效。
缓存20可以被路由器24的每个接口32、34单独参考。在一个实施例中,可能存在在每个接口(即32、34)上运行的一个计时器(即33或36),并且每个这样的计时器将以各自独立地期满。通过使用缓存20,可以在遍历LSP数据库26时实现高效率,并且对PDU的格式化将在任意缓存命中时已经完成。
为了进一步减小所需处理量,在一个示例中,如果所有接口32和34都被配置为支持LSP MTU尺寸,则CSNP分组可被格式化为该尺寸。虽然这可能产生更多的CSNP片断,但PDU可以在所有接口上重复使用。
在一个示例中,当使用点对点链路时,由于接收CSNP分组的节点可以通过发送PSNP或LSP作出响应,因此正在接收CSNP分组的节点也不发送它们。因此,当接收到CSNP分组时,该接口上的CSNP计时器可以被重启。
当接口的CSNP计时器期满时,可以执行作为计时器线程一部分的缓存清除和重计算。这允许在其他线程上保持轻负载。
本发明的实施例还可被用于生成用于以太网的CSNP分组。由于只有指定的路由器(DIS)发送用于以太网的CSNP分组,因此如果需要,CSNP计时器可以只在接口或路由器变为DIS时启动。此时,缓存的内容可被再次发送。
在一个示例中,缓存中的条目(即范围字段42)不再重叠。如果需要,条目40可以按单调递增的顺序被布置在AVL树62中。在一个示例中,缓存20中的所有缓存条目40(无效的和有效的)都覆盖完整的可能LSP ID范围,因此完全代表数据库26。缓存条目40可以例如通过使用上述图9的示例的操作而被接合。
在一个示例中,每个缓存条目40可以承载它上次被重计算时保存的条目数目的计数值。这可被用来估计下次计算时的条目40的数目。
缓存无效可能发生在环境中的某些情况发生极大改变的情况下(例如LSP MTU改变)。如果需要,整个缓存20可以被无效掉。
在一个示例中,如果单个LSP改变(即被刷新、清除、添加),则只有包含该LSP的缓存条目40可以被无效。清除和添加可以更新缓存条目40中的LSP的数目,以辅助估计用于缓存条目40的LSP的数目。
在一个示例中,如果缓存条目40是无效的并且需要被重新计算,则可以将其与其他缓存条目40接合。任意缓存条目40可以具有0、1或2个直接邻居。每个缓存条目40可能包含该条目中列出的LSP的数目,但是对于无效的缓存条目,该数目可能不准确。优选地,尽可能地将三个缓存条目40接合在一起。在每个缓存条目40中列出的LSP的数目被用作对缓存条目40的尺寸的估计。如果无效的缓存条目40加上其左手边的邻居可以被接合,它们的LSP ID的范围则可以被合并,并且可以从LSP数据库26中删除该左手边的邻居。关于接合后的缓存条目,可以判断它是否可以与右手边的片段接合。如果可以,则可以接合LSP范围并且可以从AVL树62中删除该右手边的邻居。接下来,缓存条目40可以被重新计算。如果尺寸估计是不正确的,则将被返回的第一缓存条目将不覆盖整个范围。该缓存条目可以被插入到AVL树62中,并且该范围可以被从将被计算的缓存条目中减去。缓存条目40可以被迭代地计算,直到整个范围被计算出为止,并且用于发送的第一片断可以被使用。
如果将装入到缓存条目40中的LSP的数目超过可能的数目(由于MTU限制或其他原因),则在一个示例中,缓存条目40的计算将指示出这一点,并且LSP空间可以被再分成多个缓存条目。当缓存条目40被计算时,计算出的缓存条目被存储,并且覆盖的LSP空间可以被从正被计算的范围中减去。
在其他实施例中,LSP到CSNP功能30、31的索引可以被维护。由于CSNP分组的格式是已知的,因此开销是固定的。在一个示例中,每个LSP条目具有固定尺寸,因此整个CSNP分组可被视为LSP条目的阵列。如果LSP条目的索引被作为链路状态数据库26中的LSP的一部分存储,则可以在常规的LSP刷新时更快速地更新LSP条目。在另一示例中,如果需要,CSNP分组可以按不同方式被重新打包。
如果需要,CSNP缓存条目40的无效和重计算的速率可以被限制。例如,可以为每个缓存条目维护一个时间戳,并且当没有准备好重计算时,可以跳过一个缓存条目40,从而确保它在被重新计算时可以被发送。一种方法是使用用于此目的的发送列表。另一种方法是确保每个接口不会周期性地跳过某个给定的缓存条目。
本发明的实施例可以在联网设备、通信设备或计算设备(例如路由器)中被使用或实现。
本发明的实施例可以被包含在计算机程序产品中。将会理解,包括本发明的特征的计算机程序产品可以在具有计算机可读代码的计算机可用介质(例如CD-ROM或其他介质)中创建。计算机可用介质优选地包含被配置用于致使计算机执行实现本发明所需的各个功能的多个计算机可读程序代码设备,如这里所述。
虽然这里公开的方法被描述并示为参考按特定顺序执行的特定操作,但是将会理解,这些操作可以被组合、细分或重新排序,以形成等同方法,而不会脱离本发明的教导。因此,除非特别指明,否则操作的顺序和组合不是对本发明的限制。
应该意识到,说明书中对“一个实施例”或“实施例”或“一个示例”或“示例”的引用意味着如果需要,结合该实施例描述的特定特征、结构或特性可以被包括在本发明的至少一个实施例中。因此,应该意识到,在说明书不同部分中对“一个实施例”或“实施例”或“一个示例”或“示例”的两次或更多次引用不一定都引用同样的实施例。此外,特定特征、结构或特性可以按需要被组合在本发明的一个或多个实施例中。
应该意识到,在前面对本发明的示例性实施例的描述中,本发明的各个特征有时被组合在单个实施例、附图或描述中,以用于理清公开并付诸对各个发明方面的理解的目的。但是,该方法的公开不能理解为反映所要求保护的发明需要比每个权利要求中明确提出的特征更多的特征这一意图。相反,如所附权利要求所反映的,发明的各个方面在于比单个所公开的实施例中的所有特征更少的特征,并且这里描述的每个实施例可以包含多于一个发明特征。
虽然已经参考实施例具体描述并示出了本发明,但是本领域技术人员将理解,在不脱离本发明的精神和范围的情况下,可以对本发明的形式和细节作出各种其他修改。
权利要求
1.一种用在网络中的联网设备,包括存储多个链路状态条目的数据库;以及可操作地耦合到所述数据库的缓存,该缓存存储了与所述数据库的链路状态条目相关的条目。
2.如权利要求1所述的联网设备,其中所述链路状态条目是从由所述联网设备接收的链路状态分组中得出的。
3.如权利要求1所述的联网设备,其中所述联网设备具有多个接口。
4.如权利要求1所述的联网设备,还包括用于通过所述网络发送包括链路状态数据的分组的模块,该模块可操作地耦合到所述缓存。
5.如权利要求4所述的联网设备,还包括计时器,用于提供控制包括链路状态数据的网络分组的发送的周期性间隔。
6.如权利要求5所述的联网设备,其中当所述计时器期满时,所述模块访问所述缓存,以创建包括链路状态数据的一个或多个分组。
7.如权利要求1所述的联网设备,其中存储在所述缓存中的条目包括范围字段,该范围字段包含开始链路状态标识和结束链路状态标识。
8.如权利要求1所述的联网设备,其中存储在所述缓存中的条目包括指示所述条目是否有效的有效标志。
9.如权利要求1所述的联网设备,其中存储在所述缓存中的条目包括链路状态头部的列表。
10.如权利要求1所述的联网设备,其中存储在所述缓存中的条目包括标识一个或多个链路状态的数据。
11.如权利要求1所述的联网设备,其中所述缓存包括指示所述缓存是否具有有效条目的有效标志。
12.如权利要求1所述的联网设备,其中存储在所述缓存中的条目是按树数据结构布置的。
13.如权利要求1所述的联网设备,其中存储在所述缓存中的条目是按链表数据结构布置的。
14.如权利要求1所述的联网设备,其中所述联网设备是路由器。
15.如权利要求4所述的联网设备,其中所述分组是CSNP分组。
全文摘要
本发明公开了一种诸如路由器之类的联网设备,在一个实施例中,其可以包括存储多个链路状态条目的数据库和与数据库可操作地耦合的缓存,该缓存存储了与数据库的链路状态条目相关的条目。该联网设备还可以包括用于通过网络发送包括链路状态数据的分组的模块,该模块可操作地耦合到缓存。在一个示例中,模块访问缓存以创建包括链路状态数据的一个或多个分组。本发明的实施例可被用于在无需重复遍历链路状态数据库以形成CNSP分组的情况下形成CSNP分组(完整序号分组)。
文档编号H04L12/56GK101036349SQ200580031052
公开日2007年9月12日 申请日期2005年11月15日 优先权日2004年11月15日
发明者德里克·延格, 克利斯汀·侯浦斯, 那伊尔·凡高帕勒, 安东尼·J·李 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1