用于以太网的数据包处理方法和装置的制作方法

文档序号:7683413阅读:197来源:国知局
专利名称:用于以太网的数据包处理方法和装置的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种用于以太网的数据 包处理方法和装置。
背景技术
目前,在以太网交4奂才几4页i或,ASIC ( Application Specific Integrated Circuits,专用集成电^各)4支术已广泛运用到以太网交换:才几 设备中。在二层/三层交换中,ASIC芯片通常采用学习MAC (Media Access Control,々某体访问控制)地址的方式,然后再同步到交换机 的CPU,这样MAC地址学习比较快。在二层交换^/U贞域ASIC是 专门用来做数据交换的硬件芯片,而CPU是用来专门做控制的,不 参与数据转发。ASIC芯片和CPU芯片是两个不同功能的芯片,在 一个交4奂系统中至少包含一个ASIC芯片和一个CPU芯片。然而,在目前的以太网使用领域,在组网失误的情况下,可能 导致环路的出现。环路会导致广播风暴,MAC地址频繁地在端口间 漂移,造成CPU繁忙,给用户带来灾难性后果。特别是对于三层交 换机,导致协议断链,所有使用协议的用户无法正常上网。图1示出了环^各形成广播风暴的示意图,交换机1的A, B端 口和交换才几2的C, D端口形成环^各,且和用户端口 E在一个广4番 域中。当乂人E 口收到 一个广4番包(Br packet)时,交4奐才几2会向C , D 口广播。交换机1上A, B 口会同时收到这个广播流,发生MAC漂移,而交换机1又会向A, B口广播出去,这样一个数据包会在 环路上累积形成广播风暴,不停地做MAC漂移处理,造成CPU忙。 广播风暴一旦形成即使是把E 口断掉也无法停止广播风暴了 ,只能 通过断4卓环^各解决问题。为了解决环^各广播风暴的问题,提出了生成树协议。生成树协 议4吏用生成树算法,在环^各存在的时候,阻断数据流在端口上的转 发,/人而避免广播风暴。但是在实现本发明过程中,发明人发现现有才支术中至少存在如 下问题生成树协议运算比较复杂,不是很稳定,导致运营商很少 启用这个协议来避免环路。因此在目前的使用环境中, 一旦发生环 路,则没有更好的办法,依然只能通过解除环路来排除广播风暴对 整个交换机的影响。发明内容本发明旨在提供一种用于以太网的数据包处理方法和装置,能 够解决现有技术中以太网组网失误导致环路造成广播风暴的问题。根据本发明的一个方面,才是供了 一种用于以太网的数据包处理 方法,包括以下步骤判定发生MAC地址漂移;将漂移的数据包 上送到以太网中的交换:才几的CPU学习MAC地址;以及交换才几的 ASIC芯片终止学习MAC地址,终止漂移的凄史据包的继续转发。优选的,在第二层判断是否发生MAC地址漂移。优选的,将漂移的数据包带上漂移的标志后,上送到交换才几以 太网中的交换才几的CPU学习MAC地址。优选的,在将漂移的数据包上送到以太网中的交换机的CPU学习MAC地址时,还包括判断CPU漂移的队列是否满或者上送速 度超过门限;如果是,则设置反压,禁止ASIC芯片继续发送漂移 的数据包,并丢弃本数据包;如果不是,则将漂移的数据包放到CPU 漂移的队列中,等待学习。优选的,在将漂移的数据包上送到以太网中的交换机的CPU学 习MAC地址时,还包括扫描CPU漂移的队列是否空;如果不是, 则从CPU漂移的队列中取出漂移的数据包,学习MAC地址,然后 继续队列扫描;如果是,则判断是否设置了反压;如果未设置反压, 则结束本次队列扫描;如果是设置了反压,则取消反压设置,并允 许ASIC芯片继续上送漂移数据包,结束本次队列扫描。上述的实施例为以太交换机产生环路引起的广播风暴提供了 一 种可靠的处理方法,显著地减轻了环路导致的协议断4连等问题,使 得一个端口发生环路不至于影响到其他端口的用户。根据本发明的另 一方面,才是供了 一种用于以太网的数据包处理 装置,包括判断模块,用于判定发生MAC地址漂移;上送模块, 用于将漂移的数据包上送到以太网中的交换机的CPU学习MAC地 址;以及终止才莫块,用于使ASIC芯片终止学习MAC地址,终止 漂移的数据包的继续转发。优选的,上送才莫块包括标记单元,用于将漂移的数据包带上漂 移的才示志。优选的,上送才莫块包括满判断单元,用于判断CPU漂移的队 列是否满或者上送速度超过门限;满处理单元,用于如果是,则设 置反压,禁止ASIC芯片继续发送漂移的数据包,并丟弃本数据包; 如果不是,则将漂移的数据包放到CPU漂移的队列中,等待学习。优选的,上送模块包括扫描单元,用于判断CPU漂移的队列 是否空;空处理单元,用于如果不是,则从CPU漂移的队列中取出 漂移的凄t据包,学习MAC地址,然后继续队列扫描;如果是,则 判断是否i殳置了反压;如果未"i殳置反压,则结束本次队列扫描;如 果是设置了反压,则取消反压设置,并允许ASIC芯片继续上送漂 移数据包,结束本次队列扫描。优选的,交换机包括二层和或三层交换才几。上述的实施例为以太交换机产生环路引起的广纟番风暴4是供了 一 种可靠的处理装置,显著地减轻了环路导致的协议断^l连等问题,使 得一个端口发生环^各不至于影响到其他端口的用户。


此处所说明的附图用来提供对本发明的进一步理解,构成本申 请的一部分,本发明的示意性实施例及其说明用于解释本发明,并 不构成对本发明的不当限定。在附图中图1示出了现有技术中环路引起的广播风暴的形成;图2示出了才艮据本发明实施例的用于以太网的数据包处理方法 的流程图;图3示出了根据本发明实施例的MAC漂移包转发处理的流程;图4示出了才艮据本发明实施例的CPU收到漂移包的处理;图5示出了才艮据本发明实施例的CPU对漂移包的学习处理;以及的方框图。
具体实施方式
下面将参考附图并结合实施例,来详细i兌明本发明。图2示出了才艮据本发明实施例的用于以太网的翁:据包处理方法 的流禾呈图,包4舌以下步艰《步-骤SIO,判定发生MAC i也址漂移;步骤S20,将漂移的数据包上送到以太网中的交换机的CPU学 习MAC地址;以及步骤S30,交换^L的ASIC芯片终止学习MAC地址,终止漂移 的数据包的继续转发。该数据包处理方法由于判定发生环路失误时,终止了 ASIC芯 片学习MAC地址,终止漂移的凄t据包的继续转发,所以避免了环 路引起的广播风暴。从而,显著地减轻了环路导致的协议断链等问 题,使得一个端口发生环路不至于影响到其他端口的用户。优选的,在第二层判断是否发生MAC i也址漂移。优选的,将漂移的数据包带上漂移的标志后,上送到交换机以 太网中的交换d:几的CPU学习MAC ;也址。优选的,在步骤S20中还包括判断CPU漂移的队列是否满 或者上送速度超过门限;如果是,则设置反压,禁止ASIC芯片继 续发送漂移的数据包,并丟弃本lt据包(即丟弃来自ASIC芯片继续上报的包);如果不是,则将漂移的数据包放到CPU漂移的队列 中,等待学习。工'优选的,在步骤S20中还包括扫描CPU漂移的队列是否 如果不是,则从CPU漂移的队列中取出漂移的数据包,学习MAC 地址,然后继续队列扫描;如果是,则判断是否设置了反压;如果 未设置反压,则结束本次队列扫描;如果是设置了反压,则取消反 压设置,并允许ASIC芯片继续上送漂移数据包,结束本次队列扫 描。上述的优选步骤通过限制漂移包上送的速度,对于大量的漂移 数据包存在的情况下进行反压, 一旦漂移队列满,对包采取丟弃处 理,/人而降^f氐对CPU的沖击。显然,上述的交换机可以是二层/三层交换机。具体实施,主要在两个方面 一个是转发层, 一个是控制层。 步冬聚如下图3示出了根据本发明实施例的MAC漂移包转发处理的流程, 包括步驶《302、是否是MAC漂移的包,是继续下一步处理,否则 进行正常的转发处理(步骤304);步骤S306、 CPU漂移的队列是否满或者上送速度超过门限(即 判断是否CPU漂移反压),是的话丢弃这个数据包(步骤S308 ), 结束转发处理,否则的话继续下一步;步骤S310、漂移的包上送到CPU,并带上漂移的标志, <更于 CPU进行MAC学习和控制。图4示出了根据本发明实施例的CPU收到漂移包的处理,包括 以下步-骤步骤S402、 CPU收到数据包,判断是否为漂移标志的数据包, 如果是正常数据包,则继续步骤S404的处理,如果是MAC漂移的 包,贝'J进入^J步驶《S406;步骤S406、判断是否漂移队列满或者速度超过门限;步骤S408,如果是,则设置反压,禁止ASIC芯片继续发送漂 移凄t:梧包,并丢弃本包,完成本次收包;步骤S410、如果不是,则将包力文到漂移队列中,等待学习,完 成本次收包。图5示出了根据本发明实施例的CPU对漂移包的学习处理。包 4舌以下步吝聚步骤S502,判断漂移队列是否为空;步骤S504,如果不是,则从队列中取出数据包,学习MAC地 址,然后回到步骤S502;步骤S506,如果是,则判断是否设置了反压;步艰《S508,如果不是,则结束本次队列扫描步骤S510,如果是,则取消反压设置,允许ASIC芯片继续上 送漂移lt据包,结束本次队列扫描。上述的实施例在一定程度上避免了环路形成广播风暴的可能,也降^f氐了环^各导致的大量的MAC地址漂移对CPU造成的压力,不 至于影响到其他用户的数据流的转发。图6示出了根据本发明实施例的用于以太网的数据包处理装置 的方才匡图,包4舌判断才莫块10,用于判定发生MAC地址漂移;上送模块20,用于将漂移的数据包上送到以太网中的交换机的 CPU学习MAC i也址;以及终止模块30,用于使ASIC芯片终止学习MAC地址,终止漂移的^:据包的继续转发。优选的,上送才莫块20包括标记单元,用于将漂移的数据包带上 漂移的标志。优选的,上送才莫块20包括满判断单元,用于判断CPU漂移 的队列是否满或者上送速度超过门限;满处理单元,用于如果是, 则设置反压,禁止ASIC芯片继续发送漂移的数据包,并丢弃本漂 移的数据包(即丟弃来自ASIC芯片继续上才艮的包),并可以终止 CPU的学习(但学习会一直继续,直到队列空);如果不是,则将 漂移的数据包放到CPU漂移的队列中,等待学习。优选的,上送才莫块20包括扫描单元,用于判断CPU漂移的 队列是否空;空处理单元,用于如果不是,则从CPU漂移的队列中 耳又出漂移的lt据包,学习MAC地址,然后继续队列扫描;如果是, 则判断是否设置了反压;如果未设置反压,则结束本次队列扫描; 如果是设置了反压,则取消反压设置,并允许ASIC芯片学习MAC地址,并继续漂移的数据包的转发(允许ASIC芯片继续上送MAC 漂移的lt据包),结束本次队列扫描。优选的,交换机包括二层和或三层交换机。上述的处理装置,如果ASIC芯片能支持上述MAC漂移的处 理方法,也可以在ASIC芯片上实现。在本发明的一个实施例中采 用网络处理器处理,网络处理器对包的处理可以更为灵活,满足方 案中的处理。从以上的描述中,可以看出,本发明实现了如下技术效果本发明为以太交换机产生环路引起的广播风暴提供了 一种可靠 的处理方法和装置,显著地减轻了环^各导致的协议断纟连等问题,使 ;彈一个端口发生环^各不至于影响到其^f也端口的用户。显然,本领域的技术人员应该明白,上述的本发明的各模块或 各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算 装置上,或者分布在多个计算装置所组成的网络上,可选地,它们 可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成 电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模 块来实现。这样,本发明不限制于任何特定的石更件和软件结合。以上所述〗又为本发明的优选实施例而已,并不用于限制本发明, 对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在 本发明的精神和原则之内,所作的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。
权利要求
1.一种用于以太网的数据包处理方法,其特征在于,包括以下步骤判定发生MAC地址漂移;将漂移的数据包上送到所述以太网中的交换机的CPU学习MAC地址;以及所述交换机的ASIC芯片终止学习MAC地址,终止所述漂移的数据包的继续转发。
2. 才艮据;K利要求1所述的^:据包处理方法,其特4正在于,在第二 层判断是否发生MAC地址漂移。
3. 根据权利要求1所述的数据包处理方法,其特征在于,将所述 漂移的数据包带上漂移的标志后,上送到所述交换a几以太网中 的交换机的CPU学习MAC地址。
4. 根据权利要求1所述的数据包处理方法,其特征在于,在将漂 移的数据包上送到所述以太网中的交换^^几的CPU学习MAC 地址时,还包括判断CPU漂移的队列是否满或者上送速度超过门限;如果是,则设置反压,禁止所述ASIC芯片继续发送所述 漂移的数据包,并丢弃本数据包;如果不是,则将所述漂移的数据包放到所述CPU漂移的 队列中,等4寺学习。
5. 根据权利要求4所述的数据包处理方法,其特征在于,在将漂 移的数据包上送到所述以太网中的交换^^几的CPU学习MAC ;也iiL时,还包4舌扫描CPU漂移的队列是否空;如果不是,则乂人所述CPU漂移的队列中取出所述漂移的 凄t悟包,学习MAC;也址,然后继续队列扫描;如果是,则判断是否设置了反压;如果未"i殳置反压,则结束本次队列扫描;如果是设置了反压,则取消反压设置,并允许ASIC芯片 继续上送漂移数据包,结束本次队列扫描。
6. —种用于以太网的数据包处理装置,其特征在于,包括判断模块,用于判定发生MAC地址漂移;上送模块,用于将漂移的数据包上送到所述以太网中的交 才灸才几的CPU学习MAC地址;以及终止模块,用于使所述交换机的ASIC芯片终止学习MAC 地址,终止所述漂移的数据包的继续转发。
7. 根据权利要求6所述的数据包处理装置,其特征在于,所述上 送^^莫块包括标记单元,用于将所述漂移的数据包带上漂移的标志o
8. 根据权利要求6所述的数据包处理装置,其特征在于,所述上 送才莫块包括满判断单元,用于判断CPU漂移的队列是否满或者上送 速度超过门限;满处理单元,用于如果是,则i殳置反压,禁止所述ASIC 芯片继续发送所述漂移的数据包,并丢弃本数据包;如果不是, 则将所述漂移的数据包放到所述CPU漂移的队列中,等待学 习。
9. 才艮据权利要求6所述的数据包处理装置,其特征在于,所述上 送模块包括扫描单元,用于判断CPU漂移的队列是否空;空处理单元,用于如果不是,则从所述CPU漂移的队列 中取出所述漂移的数据包,学习MAC地址,然后继续队列扫 描;如果是,则判断是否设置了反压;如果未设置反压,则结 束本次队列扫描;如果是设置了反压,则取消反压设置,并允 许ASIC芯片继续上送漂移数据包,结束本次队列扫描。
10. 根据权利要求6至9任一项所述的数据包处理装置,其特征在 于,所述交换才几包括二层和或三层交换:才几。
全文摘要
本发明提供了一种用于以太网的数据包处理方法和装置,该方法包括以下步骤判定发生MAC地址漂移;将漂移的数据包上送到以太网中的交换机的CPU学习MAC地址;以及交换机的ASIC芯片终止学习MAC地址,终止漂移的数据包的继续转发。本发明为以太交换机产生环路引起的广播风暴提供了一种可靠的处理方法,显著地减轻了环路导致的协议断链等问题,使得一个端口发生环路不至于影响到其他端口的用户。
文档编号H04L12/56GK101227400SQ20081000684
公开日2008年7月23日 申请日期2008年2月1日 优先权日2008年2月1日
发明者张宝亚 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1