一种基于分布式系统的arp实现方法

文档序号:7801337阅读:177来源:国知局
专利名称:一种基于分布式系统的arp实现方法
技术领域
本发明涉及网络数据传输技术,具体涉及一种分布式系统数据处理技术。
背景技术
在分布式系统上,当收到跨线卡转发的报文时,为了提高整机的处理性能,通常会考虑由入口线卡完成整个转发工作。因此,要求在入口线卡上,能够查询到出口线卡的ARP信息。通常情况下,首先线卡可以将学习到的ARP表项同步到主控,然后,当其他线卡需要跨线卡解析ARP时,再将主控上的ARP表项同步到线卡上。但是,如果主控上也没有该ARP表项,主控将向目的线卡请求,然后目的线卡再发送ARP请求。这样这样的处理机制带来的问题就是效率不高,需要多次板间通信才能完成整个ARP学习过程,而当遇到突发流量时,将对主控和板间通信造成很大的压力。

发明内容
本发明针对上述现有方案中分布式系统在处理ARP信息时,间接向主控请求ARP所存在的效率低下,且当遇到突发流量时,将对主控和线板间通信造成压力等问题,而提供一种新型的基于分布式系统的ARP实现方法。该方法能够大大简化和加速分布式系统的ARP解析过程。为了达到上述目的,本发明采用如下的技术方案:一种基于分布式系统的ARP实现方法,该方法中当线卡需要跨线卡解析ARP时,直接向目的线卡请求ARP表项;如果目的线卡存在该ARP表项,则直接将ARP表项返回给请求线卡;否则,目的线卡将发送ARP请求,进行ARP解析,并将解析到的ARP表项同步给其他线卡。在本发明的实例中,所述ARP实现过程中线卡ARP解析的步骤如下:I)首先在本地线卡ARP表中生成一条不完整的ARP表项,并将报文缓存在ARP表项下;(2)如果目的端口是本地端口,直接发送ARP请求,等待ARP回应;否则,则转步骤4 ;(3)如果ARP请求超时,则转步骤8 ;否则,向其他线卡同步ARP表项,并进行关联,接着转步骤7 ; (4)如果目的端口不是本地端口,则向目的线卡请求ARP表项,如果目的线卡存在该ARP表项,则该ARP表项关联请求线卡,并转步骤7 ;否则,则在目的线卡ARP表项中生成一条不完整的ARP表项,并发送ARP请求;(5)如果ARP请求超时,则转步骤9 ;否则,先完成目的线卡ARP表项,再向其他线卡同步ARP表项,并进行关联;(7)完成线卡ARP表项,并发送缓存的报文(结束);(8)删除线卡ARP表项,并释放缓存的报文(结束);
(9)删除目的线卡ARP表项(结束);。在本发明的实例中,所述ARP实现过程中ARP的查询过程是当线卡收到转发报文时,只需要查询本地线卡ARP表项,如果存在该ARP表项,返回查询结果,否则返回查询失败。在本发明的实例中,所述ARP实现过程中ARP表项的老化步骤如下:首先,线卡删除本地的ARP表项;然后,通知目的线卡取消与该ARP表项的关联;接着,目的线卡检查该ARP表项的关联关系;最后,如果目的线卡发现该ARP表项没有任何关联,将删除该ARP表项。在本发明的实例中,所述ARP实现过程中ARP的更新步骤如下:首先,更新本地线卡的ARP表项;然后,通知当前关联该ARP表项的线卡,更新相应的ARP表项。本发明采用直接向目的线卡请求ARP的方法避免给主控造成压力,其与现有技术相比,ARP解析效率得到了极大的提高,并且还使主控的稳定性得到提高。
以下结合附图和具体实施方式
来进一步说明本发明。

图1为基于本发明实施的ARP解析流程图。图2为基于本发明实施的ARP查询流程图。图3为基于本发明实施的ARP老化流程图。图4为基于本发明实施的ARP更新流程图。
具体实施例方式为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。针对现有技术中采用间接向主控请求ARP的方案所存在的效率低下,当遇到突发流量时,将对主控和板间通信造成压力等问题,本发为简化和加速分布式系统的ARP解析过程,提供一种直接向目的线卡请求ARP的方法避免给主控造成压力,其具体过程是:当线卡需要跨线卡解析ARP时,直接向目的线卡请求ARP表项;如果目的线卡存在该ARP表项,则直接将ARP表项返回给请求线卡;否则,目的线卡将发送ARP请求,进行ARP解析,并将解析到的ARP表项同步给其他线卡。基于上述原理,本发明的具体实施如下:每块线卡都维护着两种ARP表项:本地ARP表项和非本地ARP表项。本地ARP表项是本线卡通过发送ARP请求解析到的,而非本地ARP表项是向目的线卡请求ARP获得的。每个本地ARP表项都有一个Slot_Mask,每Ibit代表一块线卡,表示与其他线卡之间的关联关系。当其他线卡从本线卡学习到ARP时,就会建立与该ARP表项的关联关系(相应bit置位)。当非本地ARP表项老化后,需要通知目的线卡,取消与该ARP表项的关联关系(相应bit清除)。而目的线卡将检查该ARP表项的关联关系,当没有任何关联时,将删除该ARP表项。当本地ARP有更新时,根据当前关联关系,向相关线卡同步ARP表项,而无需向所有线卡全部同步。ARP同步有两种方式:即时同步与批量同步。对于其他线卡请求的ARP表项以及有更新的ARP表项,需要及时通知其他线卡,因此采用即时同步方式;而对于本地主动解析到的ARP表项,则采用批量同步的方式。批量同步使用一个定时器,当定时器超时的时候,将需要同步的ARP表项一次性批量同步给其他线卡,从而达到减少线卡间通信次数的目的。1、ARP resolve参见图1,线卡ARP解析包括本地和非本地端口的ARP解析。其中,本地端口的ARP解析与单板相同,从本地端口发送ARP请求,当收到ARP回应后,将完成本地ARP表项,并向其他线卡进行同步ARP表项。而非本地端口的ARP解析,需要从目的线卡获取ARP表项。如果,目的线卡有该表项,则将表项返回给线卡;否则,目的线卡需要发送ARP请求进行解析。具体步骤如下:(I)首先在本地线卡ARP表中生成一条不完整的ARP表项,并将报文缓存在ARP表项下。(2)如果目的端口是本地端口,直接发送ARP请求,等待ARP回应;否则,则转步骤4。(3)如果ARP请求超时,则转步骤8 ;否则,向其他线卡同步ARP表项,并进行关联,接着转步骤7。(4)如果目的端口不是本地端口,则向目的线卡请求ARP表项。如果目的线卡存在该ARP表项,则该ARP表项关联请求线卡,并转步骤7 ;否则,则在目的线卡ARP表项中生成一条不完整的ARP表项,并发送ARP请求。(5)如果ARP请求超时,则转步骤9 ;否则,先完成目的线卡ARP表项,再向其他线卡同步ARP表项,并进行关联。(7)完成线卡ARP表项,并发送缓存的报文(结束)。(8)删除线卡ARP表项,并释放缓存的报文(结束)。(9)删除目的线卡ARP表项(结束)。2、ARP lookup参见图2,由于线卡上有本线卡及其他线卡的ARP表项,因此在线卡收到转发报文时,只需要查询本地线卡ARP表项,如果存在该ARP表项,返回查询结果并结束查询;如果不存在该ARP表项,同样返回查询结果并结束查询。其查询过程与单板无异。3、ARP aging参见图3,各线卡分别对ARP表项进行老化,而线卡老化后需要通知目的线卡“取消与该ARP表项的关联”。步骤如下:首先,线卡删除本地的ARP表项;然后,通知目的线卡取消与该ARP表项的关联;接着,目的线卡检查该ARP表项的关联关系;最后,如果目的线卡发现该ARP表项没有任何关联,将删除该ARP表项。4、ARP update参见图4,当线卡收到免费ARP,需要更新系统的ARP表项。步骤如下:首先,更新本地线卡的ARP表项;然后,通知当前关联该ARP表项的线卡,更新相应的ARP表项。以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
权利要求
1.一种基于分布式系统的ARP实现方法,其特征在于,所述方法中当线卡需要跨线卡解析ARP时,直接向目的线卡请求ARP表项;如果目的线卡存在该ARP表项,则直接将ARP表项返回给请求线卡;否则,目的线卡将发送ARP请求,进行ARP解析,并将解析到的ARP表项同步给其他线卡。
2.根据权利要求1所述的一种基于分布式系统的ARP实现方法,其特征在于,所述ARP实现过程中线卡ARP解析的步骤如下: (1)首先在本地线卡ARP表中生成一条不完整的ARP表项,并将报文缓存在ARP表项下; (2)如果目的端口是本地端口,直接发送ARP请求,等待ARP回应;否则,则转步骤4; (3)如果ARP请求超时,则转步骤8;否则,向其他线卡同步ARP表项,并进行关联,接着转步骤7 ; (4)如果目的端口不是本地端口,则向目的线卡请求ARP表项,如果目的线卡存在该ARP表项,则该ARP表项关联请求线卡,并转步骤7 ;否则,则在目的线卡ARP表项中生成一条不完整的ARP表项,并发送ARP请求; (5)如果ARP请求超时,则转步骤9;否则,先完成目的线卡ARP表项,再向其他线卡同步ARP表项,并进行关联; (7)完成线卡ARP表项,并发送缓存的报文,结束解析; (8)删除线卡ARP表项,并释放缓存的报文,结束解析; (9)删除目的线卡ARP表项,结束解析。
3.根据权利要求1所述的一种基于分布式系统的ARP实现方法,其特征在于,所述ARP实现过程中ARP的查询过程是当线卡收到转发报文时,只需要查询本地线卡ARP表项,如果存在该ARP表项,则返回查询结果;否则,返回查询失败。
4.根据权利要求1所述的一种基于分布式系统的ARP实现方法,其特征在于,所述ARP实现过程中ARP表项的老化步骤如下: 首先,线卡删除本地的ARP表项; 然后,通知目的线卡取消与该ARP表项的关联; 接着,目的线卡检查该ARP表项的关联关系; 最后,如果目的线卡发现该ARP表项没有任何关联,将删除该ARP表项。
5.根据权利要求1所述的一种基于分布式系统的ARP实现方法,其特征在于,所述ARP实现过程中ARP的更新步骤如下: 首先,更新本地线卡的ARP表项; 然后,通知当前关联该ARP表项的线卡,更新相应的ARP表项。
全文摘要
本发明公开了一种基于分布式系统的ARP实现方法,该方法中当线卡需要跨线卡解析ARP时,直接向目的线卡请求ARP表项;如果目的线卡存在该ARP表项,则直接将ARP表项返回给请求线卡;否则,目的线卡将发送ARP请求,进行ARP解析,并将解析到的ARP表项同步给其他线卡。本发明采用直接向目的线卡请求ARP的方法避免给主控造成压力,其与现有技术相比,ARP解析效率得到了极大的提高,并且还使主控的稳定性得到提高。
文档编号H04L12/757GK103188155SQ20111044591
公开日2013年7月3日 申请日期2011年12月27日 优先权日2011年12月27日
发明者汪革, 彭双庭, 蒋晓刚, 陈少春 申请人:上海博达数据通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1