交换机加速arp表项老化的方法

文档序号:7759111阅读:2088来源:国知局
专利名称:交换机加速arp表项老化的方法
技术领域
本发明属于网络通信技术领域,尤其涉及交换机中ARP(Address ResolutionProtocol,地址解析协议)表项的老化方法。
背景技术
通常的应用中,交换机中ARP表项通过定时器进行老化,ARP管理任务为每个表项维护一个超时时间,在表项更新时设置超时值为系统ARP老化时间,ARP任务的定时器周期轮询每个表项,查看表项的上一次更新距今是否已经超过ARP表项的超时时间,如果超过,则发送ARP请求,收到响应,则更新ARP表项,从新设置超时值为系统ARP老化时间,否则删除此ARP表项,并相应完成其他软硬件处理,例如,删除硬件中ARP表项对应的三层地址表项。
由于软件处理能力的限制,交换机中ARP的老化时间都比较长。上面的ARP表项老化机制使交换机无法迅速检测到用户已经离线,不能及时清除硬件中设置的已经没有意义的表项,而硬件表项的数目是有限的,不及时清除这些无意义的表项就可能影响其他路由的转发。

发明内容
通常情况下,交换机的FDB(Forwarding DataBase,转发数据库)表项老化时间远小于ARP表项的老化时间,基于此,为采用FDB驱动ARP老化的机制提供了可能。
本发明的目的是提供一种交换机加速无用ARP表项老化的方法。
本发明的技术方案如下交换机加速无用ARP表项老化的方法,是由FDB表项老化驱动ARP表项老化。
所述的交换机加速ARP表项老化的方法,FDB可以按照如下方法驱动ARP表项老化当交换机中一个FDB表项老化时,则通知ARP任务,ARP任务查找和这个FDB表项匹配的所有ARP表项,为这些ARP表项设置一个较小数值的超时时间,并发送相应的ARP请求,如果在设置的超时时间内收到响应,则从新为该ARP表项设置一个较大数值的超时时间,并从新学习FDB表项,否则,删除ARP表项,并相应完成其他软硬件处理。所述的较大数值一般取系统中的ARP表项老化时间值。
其中为ARP表项设置的一个较小数值的超时时间,是相对于为ARP表项设置的老化时间而言。譬如,一个刷新的ARP表项的超时时间值设置为系统的ARP老化时间(一般为20分钟),FDB触发ARP老化时,该较小的超时时间值可以设为10秒,二者属于不同数量级,主要是为加速ARP的老化,对该较小的超时时间的值没有要求,只要满足一次ARP请求相应过程的时间即可。
图1示出了一个具体的响应处理流程。当FDB任务检测到硬件表项老化时,发送消息到ARP任务,通知FDB老化事件,消息中包括FDB表项的VLAN-ID和MAC地址。ARP任务消息中的VLAN-ID和MAC地址查找所有对应的ARP表项,设置每个表项的超时时间为一个较小的数值(例如10秒),对每个ARP表项的IP地址发送ARP请求。如果在所设置的较小的超时时间内接收到对应的ARP响应,则从新学习对应的FDB表项,设置ARP表项的超时时间为系统的ARP表项老化时间(例如20分钟);否则,删除ARP表项。
本发明的优点和积极效果由于FDB表项的老化时间小于ARP表项的老化时间,这种机制使交换机能够迅速地检测到用户是否离线,及时删除无用的ARP表项,减少了不必要的软硬件资源占用。


图1为本发明的FDB驱动ARP老化机制流程图,说明了响应的处理流程。
图2为FDB老化驱动ARP老化实例的ARP任务消息处理流程
具体实施例方式图2所示的ARP任务消息流程图,说明了一个具体实施本发明的FDB表项老化驱动ARP表项老化的实例。定时器消息是由定时器任务产生的,FDB老化事件是由FDB任务产生的,对图中出现的时间数据的解释如下Sys_current_time(图中简写为Tc)系统当前时间,读取系统时钟来获取;Entry_out_time(图中简写为To)表项超时时间,当系统当前时间大于表项超时时间时,表项被删除;arp_expire_time(图中简写为Te)系统ARP老化时间,一个ARP表项上一次刷新距今如果超过系统ARP老化时间,则需要被删除;伯克利衍生的系统中一般设置为20分钟;fdb_expire_time(图中简写为Tf)系统FDB老化时间,一个FDB表项上一次刷新距今如果超过系统FDB老化时间,则需要被删除;FDB老化一般由硬件完成,硬件老化后通知软件同步更新;这个时间通常远小于系统ARP老化时间;wait_reply_time(图中简写为Tr)等待响应时间,接收到FDB老化通知后,如果在等待响应时间内没有接收到ARP响应,则这个表项需要被删除;这个时间要远小于系统ARP老化时间,否则就失去了快速老化的意义;我们设置为10秒。
在系统接收到一个ARP报文后,ARP任务查找系统的ARP表,查看对应的ARP表项是否存在,如果不存在,则在ARP表中增加一个新表项,设置表项的超时时间To为系统的ARP老化时间Te加上系统当前时间Tc(To=Tc+Te),如果表项已经存在,则从新设置表项的超时时间To为系统的ARP老化时间Te加上系统当前时间Tc(To=Tc+Te)。
ARP任务在初始化时创建一个定时器,这个定时器每个周期向ARP任务发送一个定时器消息,ARP任务接收到定时器消息后,遍历ARP表,比较每个表项的超时时间To和系统当前时间Tc,如果Tc大于To,则删除这个表项。
当没有FDB表项老化驱动ARP表项老化的机制时,一个表项如果在系统ARP老化时间Te内没有得到刷新,这个表项就会被删除,也就是说,一个ARP表项创建后,如果没有得到刷新,这个表项在系统中继续存在的时间是系统的ARP老化时间Te(伯克利衍生的系统中,这个时间值通常设置为20分钟)。这样的情况下,一个与交换机相连的设备,即使已经不进行任何报文的收发,交换机仍然把对应此设备的ARP表项保存了Te的时间,这就会占用不必要的软硬件资源。
当系统中有了本发明的FDB表项老化驱动ARP表项老化的机制后,一个FDB表项老化后,FDB任务发送消息给ARP任务,通知FDB表项老化事件。ARP任务接收到这个消息后,遍历ARP表,查找和此FDB表项对应的ARP表项,设置每个表项的超时时间To为系统当前时间Tc加上等待响应时间Tr(To=Tc+Tr),并对表项的IP地址发送一个ARP请求。如果在Tr的时间内,系统接收到一个对应的ARP响应报文,则从新设置表项的超时时间To为系统的ARP老化时间Te加上系统当前时间Tc(To=Tc+Te);如果在Tr的时间内,这个ARP表项没有得到刷新,ARP任务的定时器消息处理中就会把这个表项删除。通常情况下,系统中ARP的表项老化时间都远大于FDB表项的老化时间,当一个设备不进行任何报文收发时,经过系统FDB老化时间Tf后对应的FDB表项老化,有了FDB表项老化驱动ARP表项老化的机制后,FDB任务将这个事件通知ARP任务,ARP为对应的表项设置超时时间To为系统当前时间Tc加上等待响应时间Tr(To=Tc+Tr),也就是说,如果得不到刷新(接收到对应的ARP请求和响应报文),这个表项在系统中继续存在的时间为等待响应时间Tr。
从上面的分析中可以看出,使用FDB表项驱动ARP表项老化的机制前,在连接的设备不进行任何报文收发的情况下,对应此设备的ARP表项要在系统中继续存在的时间为系统ARP老化时间Te;使用FDB表项驱动ARP表项老化的机制后,在连接的设备不进行任何报文收发的情况下,对应此设备的ARP表项要在系统中继续存在的时间为系统FDB老化时间Tf加上等待响应时间Tr。通常情况下,系统FDB老化时间和等待响应时间Tr都远小于系统ARP老化时间Te,因此,在使用了FDB表项老化驱动ARP表项老化的机制后,一个设备停止报文的收发后,对应的ARP表项能够更加快速的老化。
权利要求
1.交换机加速ARP表项老化的方法,其特征在于,所述ARP表项老化是由FDB表项老化驱动的。
2.如权利要求1所述的交换机加速ARP表项老化的方法,其特征在于,所述FDB按照如下方法驱动ARP表项老化当交换机中一个FDB表项老化时,则通知ARP任务,ARP任务查找和这个FDB表项匹配的所有ARP表项,为这些ARP表项设置一个较小数值的超时时间,并发送相应的ARP请求,如果在设置的超时时间内收到响应,则从新为该ARP表项设置一个较大数值的超时时间,并从新学习FDB表项,否则,删除ARP表项。
3.如权利要求2所述的交换机加速ARP表项老化的方法,其特征在于,所述的较大数值为系统的ARP表项老化时间值。
全文摘要
本发明提供了一种交换机加速ARP表项老化的方法,是由FDB表项老化驱动ARP表项老化。当交换机中一个FDB表项老化时,则通知ARP任务,ARP任务查找和这个FDB表项匹配的所有ARP表项,为这些ARP表项设置一个较小数值的超时时间,并发送相应的ARP请求,如果在设置的超时时间内收到响应,则从新为该ARP表项设置一个较大数值的超时时间,并从新学习FDB表项,否则,删除ARP表项,并相应完成其他软硬件处理。采用本发明的技术方案,由于FDB表项的老化时间小于ARP表项的老化时间,这种机制使交换机能够迅速地检测到用户是否离线,及时删除无用的ARP表项,减少了不必要的软硬件资源占用。
文档编号H04Q3/545GK1484405SQ03153250
公开日2004年3月24日 申请日期2003年8月11日 优先权日2003年8月11日
发明者郑炎, 李忠志, 郑 炎 申请人:北京港湾网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1