一种刷新硬件表项的方法

文档序号:7622977阅读:113来源:国知局
专利名称:一种刷新硬件表项的方法
技术领域
本发明涉及以太网技术,尤指一种刷新硬件表项的方法。
背景技术
随着以太网技术的发展,以太网交换机在转发设备中所占的比例越来越大。这里所述的转发设备为以太网交换机、路由器、三层交换机等具有转发功能的网络设备。以太网交换机与路由器相比,最大的区别在于以太网交换机是通过硬件芯片转发报文,而路由器则是通过软件来实现报文的转发。
在软件转发中,转发表为软件转发表,包括软件FIB表和软件ARP表,具体如图1所示;在硬件转发中,转发表为硬件转发表,包括硬件FIB表和硬件ARP表,具体如图2所示。在硬件FIB表的表项中存储的是路由前缀和与该硬件FIB表项对应的硬件ARP表项的索引;而在硬件ARP表项中存储的是下一跳IP地址、出端口及目的MAC地址。硬件转发和软件转发最大的不同之处在于在软件转发中需要进行两次查找过程,首先查找软件FIB表,再查找软件ARP表,根据查找到的内容转发报文;而硬件转发中,由于硬件FIB表项中存储了相应硬件ARP表项的索引,因此只需要进行一次查找过程,当查找硬件FIB表得到相应的硬件FIB表项时,就可以根据硬件FIB表项存储的硬件ARP表项的索引,直接得到相应的硬件ARP表项。
由此可见,硬件转发避免了软件转发中再次查找的过程,有效地提高了转发效率。在实际应用中,对于中高端转发设备,有可能上千万条硬件FIB表项指向同一个硬件ARP表项,因此,一条硬件ARP表项的变化可能会导致上千万条硬件FIB表项的重新刷新。但在现实过程中,并不是每次硬件ARP表项发生变化,硬件FIB表项都会发生变化。这里所指的硬件ARP表项发生变化指出端口发生变化、或目的MAC地址发生变化、或出端口和目的MAC地址均发生变化。例如在出端口发生变化而导致硬件ARP表项被刷新的情况下,当刷新后返回的硬件ARP表项索引没有发生变化,由于硬件FIB表项中存储只是路由前缀和相应硬件ARP表项索引,因此,刷新后的硬件FIB表项相对于刷新前的硬件FIB表项没有发生任何变化。因此,如果每次硬件ARP表项刷新,均要刷新相应的硬件FIB表项,则会引起转发表的大动荡,影响系统的稳定性,浪费系统资源。

发明内容
有鉴于此,本发明的主要目的在于提供一种刷新硬件表项的方法,应用该方法可以准确的刷新转发设备内的硬件表项。
为达到上述目的,本发明的技术方案是这样实现的一种刷新硬件表项的方法,执行以下步骤A、软件地址解析协议ARP表项获得变化;B、根据软件ARP表项发生的变化,软件ARP表项刷新相应的硬件ARP表项,并获得硬件ARP表项刷新后返回的硬件ARP表项索引,软件ARP表项判断获得的硬件ARP表项索引是否与刷新前的硬件ARP表项索引相同,如果相同,则结束流程;否则,根据返回的硬件ARP表项索引,刷新相应的硬件转发信息表FIB表项。
其中,所述刷新相应的硬件FIB表项为软件ARP表项根据返回的硬件ARP表项索引,触发软件FIB表项刷新硬件FIB表项中的硬件ARP表项索引。
其中,硬件ARP表由硬件介质访问控制地址MAC表和硬件出端口表组成,所述步骤B包括B11、判断是否仅由目的MAC地址变化而使软件ARP表项发生变化,当仅由目的MAC地址变化而使软件ARP表项发生变化时,执行步骤B12;B12、根据软件ARP表项发生的变化,软件ARP表项刷新相应的硬件MAC地址表项,并获得硬件MAC地址表项刷新后返回的硬件MAC地址表项索引;B13、软件ARP表项判断获得的硬件MAC地址表项索引是否与刷新前的硬件MAC地址表项索引相同,如果相同,则结束流程;否则,执行步骤B14;B14、根据返回的硬件MAC地址表项索引,软件ARP表项刷新相应的硬件出端口表项,并获得硬件出端口表项刷新后返回的硬件出端口表项索引;B15、软件ARP表项判断获得的硬件出端口表项索引是否与刷新前的硬件出端口表项索引相同,如果相同,则结束流程;否则,根据返回的硬件出端口表项索引刷新相应硬件FIB表项。
其中,硬件ARP表由硬件MAC表和硬件出端口表组成;所述步骤B,包括以下步骤B21、根据软件ARP表项发生的变化,软件ARP表项刷新相应的硬件MAC地址表项,并获得硬件MAC地址表项刷新后返回的硬件MAC地址表项索引;B22、根据软件ARP表项发生的变化以及返回的硬件MAC地址表项索引,软件ARP表项刷新相应的硬件出端口表项,并获得刷新硬件出端口表项后返回的硬件出端口表项索引;B23、软件ARP表项判断获得的硬件出端口表项索引是否与刷新前的硬件出端口表项索引相同,如果相同,则结束流程;否则,根据返回的硬件出端口表项索引刷新相应的硬件FIB表项。
其中,步骤B21中所述软件ARP表项发生变化为出端口发生变化和目的MAC地址发生变化。
其中,所述刷新相应的硬件FIB表项为软件ARP表项根据返回的硬件出端口表项索引,触发软件FIB表项刷新硬件FIB表项中的硬件出端口表项索引。
其中,所述硬件ARP表项索引为硬件ARP表项地址。
本发明所提供的一种刷新硬件表项的方法,当软件ARP表项发生变化时,在刷新硬件ARP表项之后,获得硬件ARP表项刷新之后返回的索引,并判断获得的硬件ARP表项索引与刷新之前的硬件ARP表项索引是否相同,在不相同的情况下,根据返回的硬件ARP表项索引刷新硬件FIB表项;否则,不执行刷新硬件FIB表项的操作。通过应用本发明所提供的方法,在刷新硬件FIB表项时,不会由于刷新表项后与刷新表项前,表项中的内容没有发生变化,而执行了无效的刷新过程,造成了转发表的动荡,本发明提出的方法有效地节约了系统资源,维护了系统的稳定性。


图1为软件转发表示意图;图2为硬件转发表示意图;图3为硬件转发的转发表示意图;图4为本发明第一较佳实施例的流程图;图5为硬件转发的又一转发表示意图;图6为本发明第二较佳实施例的流程图。
具体实施例方式
本发明的核心思想是在刷新硬件ARP表项之后,获得硬件ARP表项刷新之后返回的硬件ARP表项索引,并判断获得的硬件ARP表项索引与刷新之前的硬件ARP表项索引是否相同,如果相同,则不执行刷新硬件FIB表项的操作;否则,根据返回的硬件ARP表项索引刷新硬件FIB表项。
这里,硬件表项索引可以是硬件表项地址,即硬件ARP表项索引可以是硬件ARP表项地址。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举两个较佳实施例,对本发明进一步详细说明。
硬件转发过程中,为支持硬件表项的建立和维护,在软件中也同时保存一套软件FIB表项和软件ARP表项,其中,在软件ARP表项进一步存储了对应硬件ARP表项的索引,软件转发表和硬件转发表具体如图3所示。这里,软件ARP表项的作用为由于以太网交换机的软件ARP表项中的内容实时与软件控制协议所确定的出端口和目的MAC地址保持一致,因此当出端口和/或目的MAC地址发生变化时,软件ARP表项也会获得出端口或目的MAC地址发生的变化,产生相应的变化。其中,所述的软件控制协议,如路由协议、ARP协议等。
在本发明中,所述的软件ARP表项发生变化均为软件ARP表项通过实时与软件协议所确定的出端口和目的MAC地址保持一致,而使出端口发生变化、或目的MAC地址发生变化、或出端口和目的MAC地址均发生变化的情况。
本发明第一较佳实施例描述的是在硬件转发的环境下,硬件转发表包括硬件ARP表、硬件FIB表,以及为建立和维护硬件表项而设置的软件ARP表和软件FIB表。具体过程如图4所示步骤401~402当软件ARP表项获得变化,软件ARP表项根据发生的变化刷新相应的硬件ARP表项;在刷新完硬件ARP表项后,软件ARP表项获得硬件ARP表项刷新后返回的硬件ARP表项索引。
步骤403软件ARP表项判断获得的硬件ARP表项索引与自身当前存储的原硬件ARP表项索引是否相同,即与刷新硬件ARP表项前的硬件ARP表项索引进行比较,如果相同,则执行步骤404;否则,根据获得的硬件ARP表项索引更新自身存储的硬件ARP表项索引,执行步骤405。
步骤404结束流程,不执行刷新硬件FIB表项的操作。
步骤405软件ARP表项根据返回的硬件ARP表项索引触发软件FIB表项刷新硬件FIB表项中的硬件ARP表项索引。
本发明第一较佳实施例的流程结束。
本发明第二较佳实施例描述的是硬件转发的另一种模式,由硬件出端口表和硬件MAC地址表联合组成硬件ARP表,即硬件转发表包括硬件MAC地址表、硬件出端口表和硬件FIB表,以及为建立和维护硬件表项而设置的软件ARP表和软件FIB表,具体如图5所示。
在硬件FIB表的表项中,存储的是路由前缀和与该硬件FIB表项对应的硬件出端口表项的索引,在硬件出端口表项中存储的是下一跳IP地址和出端口以及与该硬件出端口表项对应的硬件MAC地址表项的索引,在硬件MAC地址表项中存储的是出端口和目的MAC地址。在软件ARP表项中进一步存储了对应硬件出端口表项的索引和对应的硬件MAC地址表项的索引。
在这种硬件转发模式下,具体硬件表项的刷新过程如图6所示步骤601~602软件ARP表项获得变化后,首先将软件ARP表项发生变化后的目的MAC地址以及出端口信息与发生变化前的软件ARP表项进行比较,判断是否仅由于目的MAC地址变化而使软件ARP表项内容发生变化,如果是,则执行步骤603;否则,执行步骤606。
在此,执行判断是否仅由于目的MAC地址变化而使软件ARP表项内容发生变化的目的为由于在硬件出端口表项中存储的是出端口、下一跳IP地址、及与该硬件出端口表项对应的硬件MAC地址表项的索引,而在硬件MAC地址表项中存储的是出端口和目的MAC地址,因此只要当出端口发生变化时,均要进行硬件出端口表项和硬件MAC地址表项的刷新;而仅当目的MAC地址发生变化时,当刷新后的硬件MAC地址表项索引没有发生,则只需要刷新硬件MAC地址表项索引,而不需要进行其它表项刷新的操作。
步骤603软件ARP表项根据自身发生的变化,刷新相应的硬件MAC地址表项,并获得硬件MAC地址表项刷新后返回的硬件MAC地址表项索引。
步骤604软件ARP表项判断获得的硬件MAC地址表项索引是否与自身当前存储的原硬件MAC地址表项索引相同,即与刷新硬件MAC地址表项前的硬件MAC地址表项索引进行比较,如果相同,则执行步骤609;否则,根据更新自身存储的硬件MAC地址表项索引,执行步骤605。
步骤605软件ARP表项根据返回的硬件MAC地址表项索引,刷新相应的硬件出端口表项,并获得刷新硬件出端口表项后返回的硬件出端口表项索引,执行步骤608。
步骤606根据软件ARP表项发生的变化,软件ARP表项刷新相应的硬件MAC地址表项,并根据硬件MAC地址表项刷新后返回的硬件MAC地址表项索引,更新自身存储的硬件MAC地址表项索引。
步骤607软件ARP表项根据自身发生的变化以及返回的硬件MAC地址表项索引,刷新相应的硬件出端口表项,并获得刷新硬件出端口表项后返回的硬件出端口表项索引。
步骤608判断返回的硬件出端口表项索引是否与自身当前存储的原硬件出端口表项索引相同,即与刷新前的硬件出端口表项的硬件出端口表项索引进行比较,如果相同,则执行步骤609;否则,软件ARP表项根据获得的硬件出端口表项索引更新自身存储的硬件出端口表项索引,执行步骤610。
步骤609结束流程,不执行刷新硬件FIB表项的操作。
步骤610软件ARP表项根据刷新硬件出端口表项返回的硬件出端口表项索引,触发软件FIB表项刷新相应的硬件FIB表项中的硬件出端口表项索引。
本发明第二较佳实施例的流程结束。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种刷新硬件表项的方法,其特征在于,执行以下步骤A、软件地址解析协议ARP表项获得变化;B、根据软件ARP表项发生的变化,软件ARP表项刷新相应的硬件ARP表项,并获得硬件ARP表项刷新后返回的硬件ARP表项索引,软件ARP表项判断获得的硬件ARP表项索引是否与刷新前的硬件ARP表项索引相同,如果相同,则结束流程;否则,根据返回的硬件ARP表项索引,刷新相应的硬件转发信息表FIB表项。
2.根据权利要求1所述的方法,其特征在于,所述刷新相应的硬件FIB表项为软件ARP表项根据返回的硬件ARP表项索引,触发软件FIB表项刷新硬件FIB表项中的硬件ARP表项索引。
3.根据权利要求1所述的方法,其特征在于,硬件ARP表由硬件介质访问控制地址MAC表和硬件出端口表组成,所述步骤B包括B11、判断是否仅由目的MAC地址变化而使软件ARP表项发生变化,当仅由目的MAC地址变化而使软件ARP表项发生变化时,执行步骤B12;B12、根据软件ARP表项发生的变化,软件ARP表项刷新相应的硬件MAC地址表项,并获得硬件MAC地址表项刷新后返回的硬件MAC地址表项索引;B13、软件ARP表项判断获得的硬件MAC地址表项索引是否与刷新前的硬件MAC地址表项索引相同,如果相同,则结束流程;否则,执行步骤B14;B14、根据返回的硬件MAC地址表项索引,软件ARP表项刷新相应的硬件出端口表项,并获得硬件出端口表项刷新后返回的硬件出端口表项索引;B15、软件ARP表项判断获得的硬件出端口表项索引是否与刷新前的硬件出端口表项索引相同,如果相同,则结束流程;否则,根据返回的硬件出端口表项索引刷新相应硬件FIB表项。
4.根据权利要求1所述的方法,其特征在于,硬件ARP表由硬件MAC表和硬件出端口表组成;所述步骤B,包括以下步骤B21、根据软件ARP表项发生的变化,软件ARP表项刷新相应的硬件MAC地址表项,并获得硬件MAC地址表项刷新后返回的硬件MAC地址表项索引;B22、根据软件ARP表项发生的变化以及返回的硬件MAC地址表项索引,软件ARP表项刷新相应的硬件出端口表项,并获得刷新硬件出端口表项后返回的硬件出端口表项索引;B23、软件ARP表项判断获得的硬件出端口表项索引是否与刷新前的硬件出端口表项索引相同,如果相同,则结束流程;否则,根据返回的硬件出端口表项索引刷新相应的硬件FIB表项。
5.根据权利要求4所述的方法,其特征在于,步骤B21中所述软件ARP表项发生变化为出端口发生变化和目的MAC地址发生变化。
6.根据权利要求3、4或5所述的方法,其特征在于,所述刷新相应的硬件FIB表项为软件ARP表项根据返回的硬件出端口表项索引,触发软件FIB表项刷新硬件FIB表项中的硬件出端口表项索引。
7.根据权利要求1至5中任一权利要求所述的方法,其特征在于,所述硬件ARP表项索引为硬件ARP表项地址。
全文摘要
本发明公开了一种刷新硬件表项的方法,执行以下步骤A、软件地址解析协议ARP表项获得变化;B、根据软件ARP表项发生的变化,软件ARP表项刷新相应的硬件ARP表项,并获得硬件ARP表项刷新后返回的硬件ARP表项索引,软件ARP表项判断获得的硬件ARP表项索引是否与刷新前的硬件ARP表项索引相同,如果相同,则结束流程;否则,根据返回的硬件ARP表项索引,刷新相应的硬件转发信息表FIB表项。通过应用本发明所提供的方法,在刷新硬件表项时,不会由于执行了无效的刷新过程而使转发表产生动荡,有效地节约了系统资源,维护了系统的稳定性。
文档编号H04L12/24GK1794695SQ200510097469
公开日2006年6月28日 申请日期2005年12月28日 优先权日2005年12月28日
发明者常向青, 赵丽娜, 王珍异, 苏兴山 申请人:杭州华为三康技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1