自适应下发路由方法以及装置与流程

文档序号:11959830阅读:219来源:国知局
自适应下发路由方法以及装置与流程

本发明涉及通信技术领域,尤其涉及一种自适应下发路由方法以及装置。



背景技术:

当前,路由转发表在通过Tree(树)表方式存储时,若检测到路由发生变化,则直接将该发生变化的路由下发至预存的Tree表,使用这样的下发方式可以使路由较快生效。但是,在Tree表中存储的路由数量较大时,Tree表深度越来越深,若在大量路由连续下发时一味的按照上述方式进行路由下发,则会导致Tree表失平衡越来越严重,路由表项下发速度也越来越慢,进而降低路由下发效率。



技术实现要素:

针对现有技术的缺陷,本发明提供了一种自适应下发路由方法以及装置。

本发明提供一种自适应下发路由方法,应用于网络设备,其中该方法包括:

当检测到待下发路由时,获取历史路由下发数量;

判断所述历史路由下发数量是否小于第一预设数量;

若所述历史路由下发数量小于第一预设数量,将所述待下发路由下发至预存的Tree表;

若所述历史路由下发数量大于或等于第一预设数量,按照指定的下发方式将所述待下发路由下发至预存的Tree表。

本发明还提供一种自适应下发路由装置,应用于网络设备,该装置包括:

获取单元,用于当检测到待下发路由时,获取历史路由下发数量;

判断单元,用于判断所述历史路由下发数量是否小于第一预设数量;

第一下发单元,用于在所述历史路由下发数量小于第一预设数量时,将所述待下发路由下发至预存的Tree表;

第二下发单元,用于在所述历史路由下发数量大于或等于第一预设数量时,按照指定的下发方式将所述待下发路由下发至预存的Tree表。

本发明提供的自适应下发路由方法以及装置,当检测到待下发路由时,若确定历史路由下发数量小于第一预设数量,将所述待下发路由下发至预存的Tree表,若确定历史路由下发数量大于或等于第一预设数量,则按照指定的下发方式将所述待下发路由下发至预存的Tree表。由此可见,本发明可以在通过Tree表方式存储大规格路由时,可通过自适应调整路由的下发方式,提高路由下发效率。

附图说明

图1是本发明实施例中一种自适应下发路由方法流程示意图;

图2是本发明实施例中一种自适应下发路由装置的逻辑结构示意图;

图3是本发明实施例中自适应下发路由装置所在网络设备的硬件架构示意图。

具体实施方式

为使本申请的目的,技术方案及优点更加清楚明白,以下参照附图对本申请方案做进一步的详细说明。

为了解决现有技术中存在的问题,本发明提供了一种自适应下发路由方法以及装置。

请参考图1,为本发明提供的自适应下发路由方法的处理流程示意图,该自适应下发路由方法可应用于网络设备,该方法包括以下步骤:

步骤101,当检测到待下发路由时,获取历史路由下发数量。

当预存的路由表发生变化时,例如:新增、更改、删除路由时,则需要向保存至转发芯片等硬件的Tree表下发变化的路由,该变化的路由则是待下发路由。该路由可以是IPv4路由也可以是IPv6路由,Tree表也可以是通过多种算法模式实现,例如,Tcam(Ternary Content-Addressable Memory,三态内容可寻址存储器)与Tree表结合的算法模式。

本实施方式中的历史路由下发数量为Tree表保存的路由数量、存储在缓存表项中的待下发路由数量以及当前检测到的待下发路由数量的总和。至于,存储在缓存表项中的待下发路由数量在下文进行描述,暂不赘述。

步骤102,判断所述历史路由下发数量是否小于第一预设数量。

该第一预设数量用于判断历史已下发路由的数量是否过大的临界值,也是用于判断对当前的待下发路由使用何种下发方式的标准之一。该第一预设数量也可以称为第一阶段结束表项条数门限Nh,例如:典型值可以为150K。

本实施方式中,可以将历史路由下发数量小于第一预设数量的阶段作为第一阶段,等于或大于第一预设数量的阶段作为第二阶段。并在确定历史路由下发数量小于第一预设数量的第一阶段时,执行步骤103,在确定历史路由下发数量大于或等于第一预设数量的第二阶段时,执行步骤104。

步骤103,将所述待下发路由下发至预存的Tree表。

在第一阶段中,历史路由下发数量小于第一预设数量,说明历史已下发路由的数量较少,或者说是Tree表中储存的路由数量较少,可以将待下发路由直接下发至预存的Tree表,也不会影响Tree表的下发速度。

步骤104,按照指定的下发方式将所述待下发路由下发至预存的Tree表。

本实施方式中,每次检测到待下发路由时,都需要对待下发路由进行计数,并将该计数记录在待下发路由计数中。后续再对待下发路由计数时,则可以在待下发路由计数中记录的计数基础上加一。但是,对于路由表长时间未发生变化的情况,则会在较长间隔后才会检测到新的待下发路由,为了保证本发明路由下发效率最大化,可以事先设置时间窗t1,典型值可以为5min,用于确定在检测到待下发路由时,通过何种计数方式对待下发路由进行计数。在检测到待下发路由时,首先计算本次检测到待下发路由与上次检测到待下发路由时的第一间隔时间,并判断该第一间隔时间是否小于时间窗t1,若小于时间窗t1,则可以对待下发路由计数中记录的计数加一,若大于或等于时间窗t1则可以认为是另外一批路由下发,可以将待下发路由计数中记录的计数设为初始值,例如为0,并重新从0进行计数。

在第二阶段中,在历史路由下发数量大于或等于第一预设数量时,说明历史已下发路由的数量较多,或者说是Tree表中储存的路由数量较多,若直接将待下发路由下发至预存的Tree表,可能会影响Tree表的下发速度,降低处理效率。为此,本发明实施方式中,可以按照指定的下发方式将所述待下发路由下发至预存的Tree表。

该指定的下发方式为:

在当前待下发路由的计数大于或等于第一预设数量时,检查预存的缓存表项中是否存储有待下发路由;

若有,将所述待下发路由存储至所述缓存表项中,并在满足预设条件时,根据所述缓存表项中的所有待下发路由以及所述预设的Tree表中的所有路由生成最优树,并下发至所述Tree表;

否则,判断对当前检测到的待下发路由的计数是否小于第二预设数量;

在当前待下发的路由表项的计数小于第二预设数量时,将所述待下发路由下发至预存的Tree表;

在当前待下发路由的计数大于或等于第二预设数量时,将所述待下发路由存储至所述缓存表项中,并在满足预设条件时,根据所述缓存表项中的所有待下发路由以及所述预设的Tree表中的所有路由生成最优树,并下发至所述Tree表。

其中,该满足预设条件包括:

在到达轮询周期时,获取当前时间;

计算所述缓存表项中最后一次存储待下发路由的时间到达当前时间的第二间隔时间;

判断所述第二间隔时间是否小于时间窗t2;

若第二间隔时间小于或等于时间窗t2,计算所述缓存表项的表项建立时间,当所述表项建立时间大于或等于表项延时时间,且缓存表项中具有待下发路由时,确定满足预设条件;

若第二间隔时间大于或等于时间窗t2,且缓存表项中具有待下发路由时,确定满足预设条件。

本实施方式中,第二阶段的指定的下发方式可以包括使用优先下发方式下发路由,以及使用缓存下发方式。

具体地,在确定当前为待下发路由较多的第二阶段时,也即在当前待下发路由的计数大于或等于第一预设数量时,可以通过以下两种方式检查建立的缓存表项中是否存储有待下发路由:

第一种方式,检测rebuild(构建)表中存储的缓存状态,例如可以通过“Ture(是)”表示存储有待下发路由,用“False(否)”表示未存储待下发路由。

第二种方式,获取记录的缓存条目数量,该缓存条目数量也即步骤101中的存储在缓存表项中的待下发路由数量。例如,若缓存条目数量为0,表示未存储有待下发路由,缓存条目数量不为0,表示存储有待下发路由。

值得一提的是,在初始状态下可能并不存在该缓存表项,那么,在首次根据缓存下发方式下发路由过程中,需要将待下发路由添加至缓存表项时,则可以根据待下发路由生成缓存表项,并在rebuild表中存储缓存表项的缓存状态。当然,该缓存表项也可以在使能本发明提供的自适应下发路由功能时创建一个空的缓存表项,以备后用。

若根据上述方式确定缓存表项中存储有待下发路由时,说明当前已对待下发路由使用缓存下发方式进行路由下发,那么可以将该待下发路由保存至缓存中继续按照缓存下发方式下发该待下发路由,并更新缓存条目数量。

当根据上述方式确定缓存表项中未存储待下发路由时,则要进一步判断当前待下发路由数量是否过多,达到影响处理效率的程度。该判断是否过多的条件除了上述确定缓存表项中存储有待下发路由的情况外,还可以设置第二预设数量,在确定当前待下发路由的计数小于第二预设数量时,可以认为当前变化的路由数量较少,为兼顾缓存表项中路由的生效时间,可以按照步骤103中的方式将该待下发路由优先下发至Tree表,即,采用优先下发方式下发路由。

相反,在确定当前待下发路由的计数大于或等于第二预设数量时,可以认为当前变化的路由数量过多,已达到影响路由下发效率的程度,此时,可以使用缓存下发方式将该待下发路由保存至缓存表项中等待下发。

缓存下发方式下,将该待下发路由保存至缓存表项中后,则需要相应更新或记录缓存表项相关的信息,以便后续构建最优树。例如,需要更新的信息包括:更新缓存条目数量;需要记录的信息包括:记录该待下发路由保存至该缓存表项中的时间、另外还需要判断该缓存表项的表项建立时间是否为0,若是,说明该待下发路由是首个添加至该缓存表项中的路由,可以记录当前时间作为该缓存表项的建立起始时间。

本实施方式中还预设有轮询周期的时长,在到达轮询周期时,获取系统的当前时间,并计算缓存表项中最后一次存储待下发路由的时间到达当前时间的第二间隔时间,并通过预设的时间窗t2判断是否有较长时间都没有新的待下发路由,该时间窗t2也可以称为缓存下发finish时间窗Tpf,例如:典型值可以为5s。

若第二间隔时间大于或等于时间窗t2(Tpf),说明当前已有较长时间未有新的待下发路由需要下发,可以根据上述方式判断缓存表项中是否存在待下发路由,并在存在时,确定满足将待下发路由下发至Tree表的预设条件,可以将记录的待下发路由计数设为初始值,以进行新一轮的计数,同时清除缓存条目数量以及表项建立时间,并且通过rebuild动作,将缓存表项中的待下发路由以及预设的Tree表中的所有路由构建最优树,并下发至Tree表,以替换原始的Tree表,最后将rebuild表中存储的缓存状态修改为表示未存储待下发路由的“False”,以完成本轮的路由下发。

若第二间隔时间小于时间窗t2(Tpf),则可以进一步判断缓存表项的表项建立时间是否过长。具体地,可以预先设置表项延时时间,也可以称为缓存下发delay时间窗Td,表示缓存表项的缓存最长时间,例如:典型值可以为2min。当缓存表项中存储首个待下发路由时,即开始计时,在第二间隔时间小于时间窗t2时,获取当前缓存表项的表项建立时间,当该表项建立时间大于或等于表项延时时间(Td)时,说明已到达缓存表项的缓存最长时间,可以根据上述方式判断缓存表项中是否存在待下发路由,并在存在时,确定满足将待下发路由下发至Tree表的预设条件,可以将对待下发路由的计数设为初始值,以进行新一轮的计数,同时清除缓存条目数量以及表项建立时间,并且通过rebuild动作,根据缓存表项中的待下发路由以及预设的Tree表中的所有路由构建最优树下发至Tree表,以替换原始的Tree表,最后将rebuild表中存储的缓存状态修改为表示未存储待下发路由的“False”,以完成本轮的路由下发。

由此可见,本发明提供的自适应下发路由方法,当检测到待下发路由时,若确定历史路由下发数量小于第一预设数量,将所述待下发路由下发至预存的Tree表,若确定历史路由下发数量大于或等于第一预设数量,则按照指定的下发方式将所述待下发路由下发至预存的Tree表。由此可见,本发明可以在通过Tree表方式存储大规格路由时,可适应现网路由的变化,自适应调整路由的下发方式,兼顾Tree表的下发速度与生效时延,提高路由下发效率。

本发明还提供一种自适应下发路由装置,图2为该自适应下发路由装置的结构示意图,该装置可以应用于网络设备,该自适应下发路由装置可以包括获取单元、201判断单元202、第一下发单元203以及第二下发单元204,其中:

获取单元201,用于当检测到待下发路由时,获取历史路由下发数量;

判断单元202,用于判断所述历史路由下发数量是否小于第一预设数量;

第一下发单元203,用于在所述历史路由下发数量小于第一预设数量时,将所述待下发路由下发至预存的Tree表;

第二下发单元204,用于在所述历史路由下发数量大于或等于第一预设数量时,按照指定的下发方式将所述待下发路由下发至预存的Tree表。

进一步地,所述历史路由下发数量,为所述Tree表保存的路由数量、存储在缓存表项中的待下发路由数量以及当前检测到的待下发路由数量的总和。

进一步地,所述装置还可以包括计数单元205,用于对所述待下发路由进行计数;

所述第二下发单元204,可以用于:

若所述历史路由下发数量大于或等于第一预设数量,检查预存的缓存表项中是否存储有待下发路由;

若有,将所述待下发路由存储至所述缓存表项中,并在满足预设条件时,根据所述缓存表项中的所有待下发路由以及所述预设的Tree表中的所有路由生成最优树,并下发至所述Tree表;

否则,判断对当前检测到的待下发路由的计数是否小于第二预设数量;

在当前待下发的路由表项的计数小于第二预设数量时,将所述待下发路由下发至预存的Tree表;

在当前待下发路由的计数大于或等于第二预设数量时,将所述待下发路由存储至所述缓存表项中,并在满足预设条件时,根据所述缓存表项中的所有待下发路由以及所述预设的Tree表中的所有路由生成最优树,并下发至所述Tree表。

进一步地,所述计数单元205,可以用于:

计算本次检测到待下发路由与上次检测到待下发路由时的第一间隔时间;

判断所述第一间隔时间是否小于时间窗t1;

若小于,将上次检测到的待下发路由的计数加一后,作为对本次检测到待下发路由的计数;

若大于或等于,将所述待下发路由的计数设为初始值。

进一步地,所述预设条件可以包括:

在到达轮询周期时,获取当前时间;

计算所述缓存表项中最后一次存储待下发路由的时间到达当前时间的第二间隔时间;

判断所述第二间隔时间是否小于时间窗t2;

若第二间隔时间小于或等于时间窗t2,计算所述缓存表项的表项建立时间,当所述表项建立时间大于或等于表项延时时间,且缓存表项中具有待下发路由时,确定满足预设条件;

若第二间隔时间大于或等于时间窗t2,且缓存表项中具有待下发路由时,确定满足预设条件。

进一步地,所述装置还可以包括清除单元206,用于在确定满足预设条件时,将对待下发路由的计数设为初始值,并清除表项建立时间。

本发明应用于网络设备的自适应下发路由装置在具体的处理流程中可以与上述应用于网络设备的自适应下发路由方法的处理流程一致,在此不再赘述。

本发明应用于网络设备的自适应下发路由装置在具体的处理流程中可以与上述应用于网络设备的自适应下发路由方法的处理流程一致,在此不再赘述。

上述装置可以通过软件实现,也可以通过硬件实现,本发明自适应下发路由装置所在网络设备的硬件架构示意图均可参考图3所示,其基本硬件环境包括中央处理器CPU301、转发芯片302、存储器303以及其他硬件304,其中存储器303中包括机器可读指令,CPU301读取并执行机器可读指令执行图2中各单元的功能。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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