用于媒体访问控制地址学习的方法及装置的制作方法

文档序号:7691033阅读:117来源:国知局
专利名称:用于媒体访问控制地址学习的方法及装置的制作方法
技术领域
本发明涉及通信网络领域,更具体来说,涉及媒体访问控制(MAC) 地址学习。
背景技术
以太网是用于局域网(LAN)的基于帧的组网技术。以太网使用以 太网交换机来连接LAN。以太网交换机使用媒体访问控制(MAC)地址、 即分配给网络节点的唯一标识符将以太网帧从源节点转发给目标节 点。MAC地址学习是桥接以太网的基本属性,例如电气和电子工程师 协会(正EE)802.1Q-2003(第8.7条)和正EE 802.1D-2004(第7.8条)等的 标准中定义的那样。MAC地址学习被执行以保存用于转发帧的转发 表,即使得可将以太网交换机的入口端口上接收的帧转发给以太网交 换机的正确的出口端口 。
具有执行控制功能的控制平面和执行帧转发功能的转发平面的以 太网交换机,通常分为跨越若干物理线卡的若千以太网桥。由于MAC 地址学习用转发数据库来执行,因此,现有以太网交换机中的以太网 桥的物理分布,作为控制平面中保存的主转发数据库和转发平面中保 存的本地转发数据库来实现。本地转发数据库由主转发数据库更新。 具体来说,线卡对保持主转发数据库的中央控制处理器转发数据库更 新。中央控制处理器将数据库更新从主转发数据库分发到分别由各线 卡保持的本地转发数据库。
MAC地址学习可产生极大量的信息。例如,如果只有先前未学习 的地址到达10GBps以太网端口(例如由于网络重新配置),则单独对于 该以太网端口可产生超过每秒一千六百万个学习请求。不利的是,尽
管在非分布MAC地址学习中(其中学习请求集中于单个线卡)处理如 此大量的学习请求是可行的,但是在分布MAC地址学习中处理如此 大量的学习请求可能并不是可行的。而且,丟弃这类学习请求会使整 体网络性能降级(因为未学习的MAC地址产生额外涌入的以太网业务量)。
不利的是,由于线卡与中夬控制处理器之间的有限带宽,极复杂 的控制通路只能处理转发通路带宽的一小部分。由于控制通路只能处 理转发通路带宽的一小部分,所以许多学习请求^支丟弃,从而引起网 络降级。此外,在价格压力不断推动控制平面复杂度降低的同时,高 容量以太网设备对带宽的需求持续增加,因此加剧了学习请求的丟弃 (以及所产生的网络降级)。

发明内容
通过本发明的使线卡转发数据库同步的方法及装置,使现有技术 的各种缺点得到解决。 一种方法包括在线卡上接收数据包;为至少 一个其他线卡中的每一个生成控制包,以能够在其上进行地址更新操 作;以及向至少一个其他线卡传播至少一个控制包。响应"对所接收 数据包执行地址更新操作"这一确定,生成该(该等)控制包。地址 更新过程可作为入口地址更新过程或出口地址更新过程来实现。该地 址更新过程与地址老化过程一起^l行。


研读以下结合附图的详细描述,可易于理解本发明的教导,附图

图1是表示通信网络的高级框图2是表示图1的网桥的高级框图3是表示图1的网桥的高级框图4表示根据本发明的一个实施例的方法;
图5表示根据本发明的一个实施例的方法; 图6表示根据本发明的一个实施例的方法; 图7表示适合于在转发平面中分发地址学习信息的作为示例的学 习请求包(LRP);
图8表示才艮据本发明的一个实施例的方法;
图9是表示用于MAC地址老化的线卡的一部分的高级框图IO表示根据本发明的一个实施例的方法;
图11是地址老化和地址刷新的时序图12是根据本发明的一个实施例的基于入口的分布地址更新的 状态图13是根据本发明的一个实施例的基于出口的分布地址更新的 状态图;以及
图14是表示适合用于执^f亍文中所述功能的通用计算机的高级框图。
为有助于理解,在可能的情况下用相同的附图标记来表示附图中 共有的相同元件。
具体实施例方式
布MAC地址学习),本发明克月艮了对于在控制平面中实现MAC地址 学习的限制(慢通道中的集中MAC地址学习)。具体来说,在转发平面 (快通道)中实现转发数据库中涉及MAC地址学习的部分。通过完全在 转发平面中实现MAC地址学习,本发明消除了对于使用控制平面与 转发平面之间的复杂控制接口进行通信的需要,由此消除了目前引起 现有以太网中的网络降级的瓶颈。因此,与控制平面中的MAC地址 学习相比,本发明具有显著的优点。
如文中所述,虽然术语"MAC地址学习,,往往用作一般术语,但是, MAC地址学习操作可包括MAC地址学习操作(即,对转发数据库添加 条目)、MAC地址刷新操作(即,刷新转发数据库条目的地址时间戳)
条目端口)。因此,为了防止对"MAC地址学习"的一般说法与不同MAC 地址学习操作之间的混淆,典型术语"MAC地址学习"在本文中更一般 地称作"MAC地址更新",类似i也,典型术语"MAC地址学习操作,,在 本文更一般地称作"MAC地址更新操作,,(或者"转发数据库更新操 作")。
图1说明通信网络的高级框图。通信网络100包括互连多个局域 网(LAN)120A-120c(统称为LAN 120)的网桥110,每个LAN 120支持多 个终端130(统称为终端130)。在一个实施例中,网桥和LAN120可以 是基于以太网的,但是本发明不限于这样一种实现方式(即,可使用其 它各种桥接技术)。网桥110包括分别服务于LAN 120r1203的多个线 卡112A-112c(统称为线卡112)。网桥110的线卡112交换数据包,以在LAN120之间传播数据包。网桥110的线卡112交换MAC地址更 新信息,以同步由线卡112保持的分布式转发数据库。
图2是表示图1的网桥的高级框图。网桥100包括控制平面210 和转发平面220。控制平面210和转发平面220用控制信道215进行 通信。控制平面210包括提供转发平面220的控制功能的控制才莫块211。 转发平面220包括转发莫块221(例如线卡112及关联模块)。转发平面 220转发数据包,并且还根据本发明执行分布MAC地址学习(与控制 平面210利用控制信道215来才丸行集中MAC地址学习的现有网桥不同)。结合本文所描述的图3-图13可更好地理解本发明的分布MAC 地址学习功能。
如图2所示,网桥100使用支持本发明的分布MAC地址更新功 能的增强硬件和软件。控制it块211可包括一个或多个控制平面硬件芯片(例如控制处理器、存储器等)及关联软件。转发平面模块220均可 包括一个或多个转发平面硬件芯片(例如网络处理器、存储器等)及关 联软件。转发平面硬件芯片由控制平面硬件芯片控制。转发平面硬件 芯片支持数据包转发功能和分布MAC地址更新功能。换言之,根据 本发明,MAC地址更新(例如MAC地址学习)完全在转发平面220中
执行,由此消除为进行MAC地址更新在控制平面210与转发平面220 之间的通信(即慢通道通信)。
转发平面硬件芯片包括根据本发明增强的转发平面硬件芯片。转 发平面硬件芯片经过增强,以支持跨越线卡的MAC地址的分布式同 步。在一个实施例中,增强转发平面硬件芯片包括增强以太网芯片。 具体来说,在一个实施例中,以太网芯片经过增强,从而包括控制包 复制器引擎和MAC地址老化引擎。在另一个(其中以太网芯片包括 多播复制器引擎和MAC地址老化引擎的)实施例中,如文中所描述, 多播复制器引擎和MAC地址老化引擎可经过增强以支持本发明的分 布MAC地址更新功能。
虽然本文主要就网桥110的特定实现(包括控制平面210和转发平 面220的特定实现)作了描述,^f旦是,也有各种其它的控制平面和转发 平面实现可用来提供本发明的分布MAC地址更新功能。具体来说, 本发明的分布MAC地址更新功能可用各种硬件和/或软件的组合来实 现。在特定硬件和/或软件实现的上下文中对本发明的描述只是说明性 的。本发明不限于本文描迷的特定硬件和/或$欠件实现,它们只是作为 描述本发明的分布MAC地址更新功能的示例。
图3是表示图1的网桥的高级框图。如图3所示,网桥110包括 多个线卡112A-112c(统称为线卡122)。线卡112A-112C包括相应端口 302A-302c(统称为端口 302)。端口 302从其它网桥或终端(未示出)接收 数据包,并向其它网桥或终端(未示出)发送数据包。线卡112A-112c包 括相应的处理器304A-304c(统称为处理器304)。线卡112A-112C包括相 应的转发数据库305A-305c(统称为转发数据库305)。线卡112(具体指 处理器304和转发数据库305)支持本发明的数据包转发功能和MAC 地址更新功能,参照图4 -图13可更好地理解这一点。
如图3所示,各线卡112支持数据包转发功能。其上接收到数据 包的线卡112确定所接收数据包的转发。端口 302接收数据包(用作所 接收数据包的入口端口)。与入口端口 302关联的处理器304确定将所 接收数据包转发到的一个或多个其它端口 302(用作数据包的出口端
口)。处理器304确定使用(入口端口 302的线卡的)关联转发数据库305 将所接收数据包转发给哪个(哪些)出口端口 302。具体来说,处理器304 确定所接收数据包的目标MAC地址,并搜索关联转发数据库305中 的目标MAC地址。
如图3所示,各线卡112支持MAC地址更新功能。与通过网桥 110转发的数据包关联的线卡112(即在其上接收数据包的入口线卡 112或者从其中发送数据包的出口线卡112),确定是否分发数据包的 MAC地址更新信息。与该线卡112关联的处理器304,确定是否使用 关联转发数据库305来分发所接收数据包的MAC地址信息。如果要 分发MAC地址更新信息,则处理器304将关联的MAC地址更新信息 分发到线卡112中的其它线卡。具体来说,处理器304生成包含MAC 地址学习信息的控制包(文中指学习请求包(LRP)),并将这些控制包转 发给线卡112中的其它线卡。
如图3所示,转发数据库305包括多个MAC地址条目(示为转发 数据库中的行)。转发数据库305包括存储MAC地址条目中每一个条 目的信息的字段(描述为转发数据库中的列)。在一个实施例中,各转 发数据库包括"MAC地址"字段、"端口"字段(标示服务于关联的MAC 地址的端口)和"地址老化时间戳"字段(指示关联的MAC地址的使用 期)。如文中所述,"地址老化时间戳,,字段存储的老化时间戳值可由相 应的老化计时器(它可以是向下计数或向上计数,具体取决于实现方式) 来更新。 一个或多个转发数据库305可包括用于提供各MAC地址条 目的附加信息的一个或多个附加字段(文中为清楚起见而省略)。
如文中所述,线卡112交换数据包和MAC地址更新信息。线卡 112用通信通路(CP)308(统称为CP 308)进行通信,以交换数据包和 MAC地址更新信息。具体来说,如图3所示,线卡302A和302B用CP 308!进行通信,线卡302B和302c用CP 3082进行通信,以及线卡302c 和302a用CP 3083进行通信。CP 308可用线卡122之间的任何通信手 段(例如使用 一个或多个交换卡、底板等以及它们的各种组合)来实现。 本发明不限于卡间通信的任何特定实现方式。
虽然本文中主要描述为包括端口、处理器和转发数据库,但是,
各线卡302可包括用于提供本发明的功能的其它各种组件(例如处理 器、存储器、配套电路等以及它们的各种组合)。虽然为清楚起见仅就 具有一个端口的线卡作了描述,但是线卡也可包括多个端口。虽然为 清楚起见就三个线卡作了描述,但是网桥110也可包括更多或更少的 线卡。
如文中所描述,线卡112交换数据包和MAC地址更新信息。线 卡112用相应的转发数据库305来执行数据包转发功能(对于单播业务 和/或多播业务)。线卡112用相应的转发数据库305来执行MAC地址 更新功能(包括执行MAC地址更新操作、分发MAC地址更新信息、 执行MAC地址老化处理等以及它们的各种组合)。线卡112用控制包 (文中表示学习请求包(LRP))来分发MAC地址更新信息。文中参照图6 -图8来描述MAC地址更新操作的执行和关联的MAC地址更新信息 的分发。文中参照图9 -图10来描述MAC地址老化处理的执行。
图4说明根据本发明的一个实施例的方法。具体来说,图4的方 法400包括用于处理所接收数椐包的方法,其中包括转发所接收数据 包并对所接收数据包执行MAC地址更新功能。虽然就一个数据包作 了描述,但是可对于方法400在其上运作的网桥上所接收的每个数据 包执行方法400。虽然描述为依次执行,但是,图4的方法400的步 骤的至少一部分可同时或以不同于本文针对图4所描述的顺序来执 行。方法400开始于步骤402,然后进入步骤404。
在步骤404,接收数据包。该数据包在入口端口接收。该数据包 包括数据包报头和数据包有效载荷。该数据包的格式取决于基础技术。 例如,在一个实施例中,该数据包可以是以太网包。在本实施例中, 数据包报头可包括标示包的始发终端的源MAC地址字段和标示该数 据包要发送到的终端(或多个终端)的目标MAC地址字段,以及其它数 据包报头字段。虽然本文主要就以太网数据包作了描述,但是,本发 明可用来为交换各种其它类型的数据包的网络提供增强MAC地址更 新功能。
在步骤406,转发数据包。该数据包转发给一个或多个线卡。该 数据包祐^转发,以通过一个或多个出口端口 (可设置在一个或多个线卡 上)进行传送。文中参照图5来描述数据包的转发。在步骤408,执行 MAC地址更新过程。对于所4秦收数据包执行MAC地址更新过程。 MAC地址更新过程可在入口线卡上执行(对于入口 MAC地址更新), 或者在其它线卡之一上执行(对于出口 MAC地址更新)。文中参照图6 -图10来描述MAC地址更新过程的执行。方法400在步骤410结束。
图5说明根据本发明的一个实施例的方法。具体来说,图5的方 法500包括用于转发所接收数据包的方法。虽然描述为依次执行,但 是,图5的方法500的步骤的至少一部分可同时或者以不同于本文针 对图5所描述的顺序来执行。方法500开始于步骤502(在接收到数据 包之后,如参照图4的方法400所描述),然后进入步骤504。
在步骤504,(例如从数据包的报头)确定数据包的目标MAC地址。 在步骤506,确定目标MAC地址的条目是否存在于转发数据库(即, 入口端口的线卡的转发数据库)。通过搜索转发数据库中的目标MAC 地址(即包含目标MAC地址的转发数据库条目),来执行关于目标MAC 地址的条目是否存在于转发数据库的确定。如果目标MAC地址的条 目包含在转发数据库中,则方法500进入步骤508。如果目标MAC地 址的条目未包含在转发数据库中,则方法500进入步骤512。
在步骤508,确定数据包的出口端口 (即,数据包离开网桥的端口 )。 数据包的出口端口用转发数据库(例如根据与包含目标MAC地址的转 发数据库条目相关联的"端口"值)来确定。在步骤510,数据包被转发 到数据包的出口端口(它可以是与入口端口相同的线卡上的不同端口、 不同线卡上的端口或者一个或多个线卡上的一个以上的端口 (对于多 播))。方法500从步骤510进入步骤514,在该步骤方法500结束。在 步骤512,数据包被转发到所有端口(即,网桥上除了端口X以外的其 它所有端口,包括与入口端口相同的线卡上和网桥的其它线卡上的其 它端口)。方法500从步骤512进入步骤514,在该步骤方法500结束。
图6说明根据本发明的一个实施例的方法。具体来说,图6的方
法600包括用于对一个线卡上的所接收数据包执行MAC地址更新并 将关联的MAC地址更新信息分发给至少一个其他线卡的方法。虽然 作为独立方法来描述,但是,图6的方法600与图9的方法900 —起 执行,以提供本发明的MAC地址更新功能。虽然描述为依次执行, 但是,图6的方法600的步骤的至少一部分可同时或者以不同于文中 参照图6所描述的顺序来执行。方法600在步骤602开始(在接收到数 据包之后,如参照图4的方法400所描述),然后进入步骤604 。
在步骤604,(例如从所接收数据包的报头)确定所接收数据包的源 MAC地址。在步骤606,确定可对所接收数据包执行的MAC地址更 新操作的类型。如图6所示,确定所接收数据包可能需要的MAC地 址更新操作的类型的步骤取决于(1)确定源MAC地址的条目是否存 在于转发数据库;以及(2)如果源MAC地址的条目存在于转发数据 库,则取决于关于现有条目的关联端口是未改变还是已改变(与根据所 接收数据包确定的、当前与该MAC地址关联的端口地址进行比较)。 MAC地址更新操作可以是MAC地址学习操作、MAC地址刷新操作 或者MAC地址再学习操作,本文将更详细地描述其中的每一个。
如图6所示,通过搜索转发数据库中的源MAC地址(即包舍源 MAC地址的转发数据库条目),来执行关于源MAC地址的条目是否存 在于转发数据库的确定。对于入口 MAC地址更新,搜索入口线卡的 转发数据库,以确定MAC地址更新操作的类型。对于出口 MAC地址 更新,搜索出口线卡的转发数据库,以确定MAC地址更新操作的类 型。关于现有条目的关联端口是未改变还是已改变的确定,包括确定 现有数据包被接收的入口端口是否匹配转发数据库中的相应条目的 "端口"值。
如图6所示,MAC地址更新操作的类型之一净皮识别并可一支执行 (即,学习和再学习操作被执行,但刷新操作可执行或可不执行)。如
果转发数据库中不存在源MAC地址的条目,则执行学习操作(如步骤 608所示)。如果转发数据库中存在源MAC地址的条目,并且现有条 目的关联端口未改变,则可执行或可不执行刷新操作(如步骤610、 612
和614所示)。如果转发数据库中存在源MAC地址的条目,并且现有 条目的关联端口已改变,则执行再学习操作(如步骤616所示)。对于每 种类型的MAC地址学习操作,对于其它线卡生成LRP(如步骤618所 示),并将其分发给其它线卡(如步骤620所示)。
在步骤608,执行学习操作。在其上保持转发数据库的当前线卡 上执行学习操作。该学习操作包括学习源MAC地址。具体来说,该 学习操作包括对转发数据库添加源MAC地址的条目。在一个实施例 中,该源MAC地址的条目可包括源MAC地址、与源MAC地址关联 的出口端口(即,接收关联数据包的端口)以及关联老化时间戳。在一 个实施例中,该老化时间戳4支初始化为最小值然后递增(例如从0秒到 600秒)。在一个实施例中,将老化时间戳祐匸初始化为最大值然后递减 (例如从600秒到0秒)。
在步骤610、 612和614,刷新操作可执行或可不执行。在步骤610, 确定源MAC地址的老化时间戳。在一个实施例中,根据转发数据库
612,确定老化时间戳是否达到(或满足)阈值。阈值在本文中指刷新阈 值,因为该阈值被用来确定是否应当执行MAC地址刷新操作。
如果老化时间戳没有达到刷新阈值(这意味着老化时间戳在老化 时间戳向上计数时小于刷新阈值,或者老化时间戳在老化时间戳向下 计数时大于刷新阈值),则方法600进入步骤622,在该步骤方法600 结束(即,不为那个数据包生成LRP)。如果老化时间戳达到刷新阈值(这 意味着老化时间戳在老化时间戳向上计数时大于刷新阈值,或者老化 时间戳在老化时间戳向下计数时小于刷新阈值),则方法600进入步骤 614(在该步骤执行刷新操作)。
在步骤614,执行刷新操作。在保持转发数据库的当前线卡上执 行刷新操作。该刷新#:作包括刷新源MAC地址条目。具体来说,刷 新操作包括更新转发数据库中的源MAC地址条目(即,将转发数据库 的那个源MAC地址的"老化时间戳,,字段中的老化时间戳重设)。在一 个实施例中,老化时间戳被刷新为最小值然后递增(例如从0秒到600
秒)。在一个实施例中,老化时间戳^皮刷新为最大值然后递减(例如从
600秒到0秒)。
在步骤616,执行再学习操作。在保持转发数据库的当前线卡上 执行再学习操作。该再学习操作包括再学习源MAC地址。具体来说, 再学习操作包括更新转发数据库中的源MAC地址条目(即,将"端口 ,, 字段更新以包含与该源MAC地址关联的新端口 ,并将该源MAC地址 的"老化时间戳"字段中的老化时间戳重设)。在一个实施例中,将老化 时间戳刷新为最小值然后递增(例如从0秒到600秒)。在一个实施例中, 将老化时间戳刷新为最大值然后递减(例如从600秒到0秒)。
在步骤618,分别对于其它线卡生成LRP。在一个实施例中,不 对于其上接收关联数据包的线卡或发送关联数据包的线卡生成LRP, 因为那个线卡或那些线卡可用数据包来执行适当的MAC地址更新操 作(即,不需要对于通过其上传递关联数据包的线卡或多个线卡另外生 成一个或多个LRP)。在另一实施例中,对于其它线卡中的每一个生成 LRP,并将生成的LRP分发到其它线卡中的每一个(虽然在这样的实施 例中可能需要附加的处理,以防止接收数据包和从该数据包生成的 LRP的线卡对同 一数据包执行多个MAC地址操作)。
发数据库的同步。换言之,通过将该数据包(在该数据包通过的线卡上) 的处理和一个或多个LRP的生成、分发及处理相组合,本发明的分布 MAC地址更新功能使得所有线卡上的所有转发数据库的同步成为可 能。虽然可执行三种不同类型的MAC地址更新操作(即MAC地址学 习操作、MAC地址刷新操作和MAC地址再学习操作),但在一个实施 例中,生成的LRP的格式与引发LRP生成的MAC地址更新操作的类 型无关。
在一个实施例中,通过复制关联的所接收数据包来生成各LRP。 在一个这样的实施例中,利用 一个或多个多播复制功能来复制所接收 数据包。在一个实施例中,生成各LRP而不复制关联数据包。在一个 这样的实施例中,生成LRP来包含线卡中的其它线卡所需的信息,以
更新其它线卡的相应转发数据库。在此实施例中,LRP可包括适于向 线卡中的其它线卡传递MAC地址更新信息的任何信息。
通过复制数据包而形成关联LRP,确保LRP中一定包含接收
息(例如源AC地址、入口端口等)。如文中所述,由于LRP在数据包 转发通路上分发(并且由于LRP可包含关联数据包的副本),所以必须 区分LRP和数据包。在一个实施例中,LRP可经过适配,使得接收数 据包转发通路中的数据包和LRP这二者的线卡可区分所接收数据包和 LRP。可通过多种不同方式(文中参照图7描述它们的一些实例)将LRP 跟数据包区分开。
在步骤620,对于其它线卡生成的LRP被分发给其它线卡。从所 接收数据包生成的LRP转发平面中分发给其它线卡(即,使用数据包 转发通路,线卡之间通过该(该等)通路转发数据包)。在一个实施例 中,可将多播组用于分发LRP,以减少不必要的LRP。在一个实施例 中,可用一个或多个专用队列(例如专用于某些实体,例如网桥分区、 滤波标识符等)来分发LRP,以减少不必要LRP的数量。可利用其它 分发方案将LRP在转发平面中分发给其它线卡。
通过对于其它线卡生成LRP,并在转发平面中将生成的LRP分发 给其它线卡(即,使用数据包转发通路),分别对于所有线卡的所有转 发数据库实现同步,而无需使用分布式转发数据库须从中更新的中央 转发数据库。换言之,本发明可实现转发平面中有效的分布MAC地 址更新,从而提供了优于现有MAC地址更新(学习)方案的改进性能。
图7示出适于在转发平面中分发地址更新信息的作为示例的学习 请求包(LRP)。如文中所述,在一个实施例中,从关联数据包生成LRP。 在一种这样的实施例中,通过复制关联数据包来生成LRP。如文中所 述,由于在数据包转发通路中分发LRP(与数据包一起),因此必须区 分LRP和数据包,以佳j矣收数才居包和LRP的线卡易于区分数据包与 LRP。在一个实施例中,如文中所描述,可通过在LRP中设置一个或 多个位(即,复制数据包,并在复制的数据包中设置一个或多个位,以 将所复制的数据包标示为LRP)来区分LRP和数据包。
如图7所示,从其中生成LRP的数据包是以太网数据包。以太网 数据包包括以太网包寺艮头和以太网包有效载荷。以太网包报头包括例 如目标MAC地址(DAMAC)、源MAC地址(SAMAC)、类型、标志、 类型等的标准字段。以太网包有效载荷包括数据。内部"^艮头可前挂到 以太网数据包上以在以太网交4灸机内使用。内部才艮头可在生成LRP期 间从数据包复制,或者前挂到从数据包生成的LRP上。可通过多种不 同方式(例如,通过在数据包的复制副本中设置将复制数据包标示为 LRP的信息)来区分LRP和数据包。
如图7所示,在一个实施例中,通过在内部才艮头中设置一个或多 个位,将包(例如,包710)指示为LRP(与数椐包不同)。可在内部才良头 的一个或多个字段设置位。例如,设为0的位可指示包是LRP,而设 为等于1的位可指示包是数据包(反之亦然)。也可通过其它各种方式来 标记包的内部净良头,以将包标示为LRP。除了f^改内部净艮头的一部分 之外,在一个实施例中,也可将一个或多个附加字段附加到内部报头, 以将该包标示为LRP。
如图7所示,在一个实施例中,通过在包才艮头中设置一个或多个 位,将包(例如,包720)示为LRP(与数据包不同)。可在包净艮头的一个 或多个字段设置位。在从以太网包生成LRP的一个实施例中,通过在 复制包的以太网包报头的"标志"字段(即正EE 802.1Q VLAN标志字段) 设置某个值,可将复制的数据包标示为LRP。例如,等于0x000的"标 志"字段可指示该包是LRP,而等于其它任何值的"标志"字段可指示该 包是数据包。虽然以上描述为包括以太网包有效载荷,但是在一个实 施例中,以太网包有效载荷可从LRP分离(在数据包复制期间或之后)。 也可通过其它各种方式来标示包的包报头,以将该包标示为LRP。
虽然主要就以太网包作了描述,但也可从其它各种类型的数据包 生成LRP。虽然主要就包含内部报头的数据包作了描述,但也可从没 有内部报头的数据包生成LRP。虽然主要描述为具有有效载荷,但是 在一个实施例中,复制数据包以形成相应LRP的步骤可包括将数据包
有效载荷分离,以减小所得到的LRP的大小。虽然主要就通过复制关 联数据包而生成的LRP作了描述,但是在一个实施例中,控制包可在 不复制关联数据包的情况下生成。
图8说明根据本发明的一个实施例的方法。具体来说,图8的方 法800包括用于处理通过数据转发通絲4秦收的包的方法(例如包括响应 数据包而执行MAC地址更新操作并通过出口端口转发该数据包,以 及响应学习请求包而执行MAC地址更新操作,但不通过出口端口转 发该学习请求包)。虽然就其它线卡中的一个作了描述,但是方法800 可在其它线卡中的每一个上执4亍,因为数据包和学习请求包都可由线 卡中的每一个通过数据转发通if各从其它线卡接收。虽然描述为依次执
行,但是,图8的方法800的步骤的至少一部分可同时或者以不同于 文中参照图8所描述的顺序来4丸行。方法800开始于步骤802,然后 进入步骤804。
在步骤804接收包。该包通过内部通信通路在线卡上接收(即,不 是在线卡的外部端口接收的数椐包)。在步骤806,确定所接收的包的 包类型。所接收的包可以是数椐包或控制包(例如LRP)。在一个实施 例中,可通过4企查所4妄收的包的 一个或多个位(例如包的内部净艮头的一 个或多个位、包的包报头的一个或多个位等,如文中参照图7所描述) 来确定所接收的包的包类型。
如果所接收的包是数据包,则方法800进入步骤808。在步骤808, 执行MAC地址更新操作。使用来自数据包的信息来执行MAC地址更 新操作。可用图6的方法600来才丸行MAC地址更新操作。在步骤810, 通过线卡的出口端口来转发数椐包。可用图5的方法500的相关部分 来执行数据包转发操作。如果所接收的包是控制包,则方法800进入 步骤810。在步骤812,;执行MAC地址更新4喿作。利用来自控制包的 信息来执行MAC地址更新操作。可用图6的方法600的相关部分来 执行MAC地址更新操作。方法800在步骤814结束。
如文中所述,若包是控制包,则净皮从中接收该控制包的线卡为线 卡中的其它线卡生成控制包,并分别将所生成的包分发给线卡中的其
它线卡。在其它线卡接收到控制包时,分别在其它线卡上重复图8的
方法800。由于应当使相应线卡(包括始发LRP的线卡和接收LRP的 线卡)的转发数据库中的每一个同步,其它线卡中的每一个应当执行与 生成并分发LRP的始发线卡上才丸行的MAC地址更新操作相同的MAC 地址更新操作。
如文中所述,执行MAC地址老化以支持MAC地址更新功能。对 于网桥中的每一个线卡、对于线卡的转发数据库中的各MAC地址条 目执行本文所描述的MAC地址老化功能。给定线卡的MAC地址老化 功能可由与该线卡关联的控制器(例如,网桥110的线卡112a-112c各 自的处理器304A-304C,如文中参照图1、图3所描述)来执行和/或控 制。文中参照图9来描述MAC地址老化;溪块的作为示例的实现。文 中参照图10来描述(对于 一个线卡上的 一个转发数据库的 一个MAC地 址条目的)作为示例的MAC地址老化过程。
图9是表示用于MAC地址老化的线卡的一部分的高级框图。具 体来说,可对于网桥的线卡中的每一个(例如,网桥110的线卡 112A-112C,如文中所描述)实现线卡900。如图9所示,线卡900包括 控制器910、转发数据库920和MAC地址老化过程930。转发数据库 920包括多个MAC地址条目922广922N(统称为MAC地址条目922), 它们可与参照图3所描述的MAC地址条目相似。MAC地址老化过程 930分别对于MAC地址条目922r922M提供MAC地址老化功能(用 MAC地址过程930与MAC地址条目922之间的虚线表示)。
虽然文中就用于提供本发明的增强MAC地址老化功能的具体实 现方式作了描述,但是,本发明的增强MAC地址老化功能也可使用 其它方式(例如,使用一个或多个其它组件,如控制模块、存储器等以 及它们的各种组合)来实现。由于本发明的增强MAC地址老化功能可 用各种实现方式提供,因此仅一般地描述MAC地址老化才莫块900的 操作,而没有具体提到MAC地址老化斗莫块900的组件。
在MAC地址老化中,对转发数据库的各MAC地址条目保存一个 MAC地址老化时间戳。在转发数据库的MAC地址条目中定期更新该
MAC地址条目的MAC地址老化时间戳。定期递增(或递减)MAC地址 的MAC地址老化时间戳。MAC地址的MAC地址老化时间戳通过 MAC地址老化过程930来递增,它确定是否使MAC地址条目过期(如 下文所述)。MAC地址条目的MAC地址老化时间戳具有关联的分辨率 (本文中表示为分辨率时,.,,戮),它是MAC地址老化时间戳的递增量(例如 按10秒、20秒等来递增)。
在MAC地址老化中,对转发数据库的各MAC地址条目执行MAC 地址老化过程。MAC地址条目的MAC地址老化过程定期地执行。 MAC地址条目的MAC地址老化过程定期地确定是否应当使关联的 MAC地址条目无效。MAC地址条目的MAC地址老化过程具有关联 的分辨率(表示为分辨率扭),它是MAC地址老化过程的执行频度(在 没有使MAC地址条目无效时,也是对于该MAC地址条目更新MAC 地址老化时间戳的频度)。
通过将MAC地址条目的MAC地址老化时间戳与老化阈值(表示 为阈值老化)进行比较,MAC地址老化过程确定关联的MAC地址条目是 否被无效(即过期)。如果MAC地址条目的MAC地址老化时间戳达到 老化阈值(例如,老化时间戳向上计数时大于老化阈值,或者老化阈值 向下计数时小于老化阈值),则MAC地址条目被无效(即,从转发数据 库消除该MAC地址条目) 。如果MAC地址条目的MAC地址老化时间 戳没有达到老化阈值(例如,老化时间戳向上计数时小于老化阈值,或 者老化阈值向下计数时大于老化阈值),则MAC地址条目不邱皮无效; 而是对该MAC地址条目更新该MAC地址条目的MAC地址老化时间 戳(例如将MAC地址老化时间戳的当前值改变MAC地址老化时间戳 4皮设定改变的量)。
如文中所述,本发明在线卡中的每一个上4是供增强的MAC地址 老化功能。参照图IO(该图表示MAC地址老化的方法)可更好地理解 本发明的增强MAC地址老化功能(包括MAC地址老化过程)。此外, 参照图ll(该图是表示本发明的增强MAC地址更新功能的时序图),
MAC地址老化过程之间的关系(包括关联的参数分辨率扭、分辨率时间 戮和阈值老化之间的关系)以及MAC地址刷新(包括关联的参数阈值刷新)。
图IO表示根据本发明的一个实施例的方法。具体来il,图10的 方法1000包括MAC地址老化的方法(即MAC地址老化过程)。对于 网桥的各线卡的转发数据库的各MAC地址条目执行作为图10的方法 1000描述的MAC地址老化过程。虽然描述为依次执行,但是,图10 的方法1000的步骤的至少一部分可同时或者以不同于文中参照图10 所描述的顺序来执行。方法1000开始于步骤1002,然后进入步骤1004。
在步骤1004,确定MAC地址老化时间戳。通过搜索转发数据库 中的关联的MAC地址条目并从"地址老化时间戳"字段检索出MAC地 址老化时间戳的当前值,来确定MAC地址老化时间戳。在步骤1006, 确定MAC地址老化时间戳是否大于老化阈值。老化阈值可以是任何 值(例如300秒、600秒等),并且可根据许多考虑因素(包括MAC地址 老化时间戳的分辨率即分辨率,戮、MAC地址老化过程的分辨率即分 辨率舰等以及它们的各种组合)来设置。
如图10所示,如果MAC地址老化时间戳小于老化阈值,则方法 1000进入步骤1008;否则,如果MAC地址老化时间戳大于老化阈值, 则方法100进入步骤1012。在步骤1008,更新MAC地址条目的MAC 地址老化时间戳。递增或递减该MAC地址条目的MAC地址老化时间 戳,这取决于实现方式。例如,转发数据库中的MAC地址老化时间 戳可递增10秒、递减15秒等。从步骤1008,方法1000进入步骤IOIO(下 面进行论述)。在步骤1012, MAC地址条目^支无效(即,从转发数据库 删除该MAC地址)。方法1000 A人步骤1012进入步骤1014,方法1000 在该步骤结束。
在步骤IOIO,确定是否执行MAC地址老化过程(即,确定是否为 再次对该MAC地址条目执行MAC地址老化过程的时机)。虽然描述 为直接的确定(an explicit determination) , ^旦步骤1010表示定期地(即 按照MAC地址老化过程的分辨率)执行方法1000。换言之,在通过 MAC地址老化过程更新MAC地址老化时间戳之后,方法IOOO等待,
直到MAC地址老化过程纟皮再次:执行,这时,方法1000进入步骤1004, 以重复MAC地址等待过程(例如等待10秒、15秒或任何用以设定MAC 地址老化过程重复进行的时间长度)。
由于MAC地址条目可添加到转发数据库(在MAC地址学习操作
发数据库删除,以下步骤可能纟支执行(为了清楚起见图示省略)(1) 每次向转发数据库添加MAC地址条目时,为了对新的MAC地址条目 执行MAC地址老化处理,可由关联控制器对关联的MAC地址老化过 程进行例示(instantiated);以及(2)每次从转发数据库删除MAC地 址条目时,可将对先前为该MAC地址条目保持的关联的MAC地址老 化过程撤销例示(un-instantiated )。
图11是表示MAC地址老4t和MAC地址刷新的时序图。具体来 说,时序图IIOO说明MAC地址老化功能与MAC地址刷新功能之间 的关系。时序图llOO示出沿x轴的时间(包含各包到达线卡的时间)以 及沿y轴的MAC地址老化时间戳。时间沿x轴增加。MAC地址老化 时间戳沿y轴增力口(由于MAC地址老化时间戳定期地递增,因此逐步 地增加)。MAC地址老化时间戳对阈值刷新和阈值老化计数(在不同条件下 与每个进行比较,如文中所述)。如果MAC地址老化时间戳超过阈值刷 新参数,则通过重设关联的MAC地址老化时间戳来更新MAC地址条 目。如果MAC地址老化时间戳超过阈值老化,则MAC地址条目被无效。
时序图包括各参数之间的关系,包括分辨率狄参数(相对于时间测 定)以及分辨率时间戮、阈值刷新和阈值老化参数(相对于MAC地址老化时间 戳的值测定)。参数分辨率姊和分辨率關戮通过用Cts表示的参数相关, 使得分辨率时纖-分辨率錄xCt3。在一个实施例中,参数Qs的默认值是 1/每秒。实际老化时间(表示为t老化)可根据分辨率狄、分辨率时间戳和Qs 参数来计算,例如t老化〈[(分辨率扭+分辨率时戰)/Cts]。因此,如果分 辨率扭《分辨率时间戮,则不确定性很小。
如文中所述,刷新阔值(阈值刷新)用来确保不为每个所接收数据包 生成刷新LRP(因为这类LRP会在数量上掩盖转发平面中分发的学习
和再学习LRP以及数据包)。如文中所述,老化阈值(阈值老化)用以确保 无效MAC地址条目在转发数据库中的保留时间不超过必要的数据长 度(例如,终端从网络的一个部分移动到网络的另一部分时)。根据所 描述的时序图,如果关联的MAC地址的数据包在至少下列时间内仍 未#^送,则MAC地址条目过期(即无效)[(阈值老化-阈值刷新+分辨率时
间戳)/Cts]。
虽然对于全部MAC地址主要就一个老化阈值作了描述,但在一 个实施例中,可对每个MAC地址分配一个关联的老化阈值。虽然主 要就静态的老化阈值作了描述,但在一个实施例中,也可动态地修改
阈值)。例如,可响应网络操作员命令、网络业务条件之改变及其他情
其自身的老化阈值的情况下的多个老化阈值中的一个或多个)。
虽然根据本发明的增强MAC地址更新在本文中主要描述为入口 MAC地址更新,但是,根据本发明的增强MAC地址更新也可实现为 出口 MAC地址更新。在分布式网桥中,由于数据包可进入一个线卡 上的网桥并退出另一线卡上的网桥,因此,在各线卡的入口侧和各线 卡的出口侧上均须存在包处理功能性。由于在各线卡的入口侧和出口 侧均实现包处理功能性,因此,可在各线卡的入口侧或在各线卡的出 口侧或者它们两者的组合上执行MAC地址更新。
如文中所述,文中参照图1 -图11描述一般化的MAC地址更新, 它可实现为入口 MAC地址更新或出口 MAC地址更新。因此,文中参 照图1 -图11才是供的描述可一4殳地适用于入口 MAC地址更新和出口 MAC地址更新。为了说明入口 MAC地址更新和出口 MAC地址更新 均可根据本发明执行,本文分别参照图12、图13描述入口 MAC地址 更新和出口 MAC地址更新的作为示例的状态图。
图12是冲艮据本发明的一个实施例的基于入口的分布MAC地址更 新的状态图。如图12的状态图1200所示,随时间(在y轴上示出)在入 口线卡接收数据包。在接收到每个数据包时,将数据包转发给出口线
卡(意指出口(目标)),并且还在入口线卡上执行关联的MAC地址更新 操作。如果在入口线卡上对所接收数据包执行MAC地址更新操作, 则LRP由入口线卡生成并分发到线卡中的其它线卡,并且其它线卡在 接收到LRP时执行MAC地址更新操作。在各线卡上保持老化功能(例 如,图9的MAC地址老化过程930)。
图13是根据本发明的一个实施例的基于出口的分布MAC地址更 新的状态图。如图13的状态图1300所示,随时间(在y轴上示出)在入 口线卡接收数据包。在接收到每个数据包时,将数据包转发给出口线 卡(意指出口 (目标));但在入口线卡上不执行关联的MAC地址更新操 作。而是在接收到转发数据包时,出口线卡可^l行MAC地址更新操 作。如果在出口线卡上对所接收数据包执行MAC地址更新操作,则 LRP由出口线卡生成并分发到线卡中的其它线卡,且其它线卡在接收 到LRP时执行MAC地址更新^喿作。各线卡上保持老化功能(例如,图 9的MAC地址老化过程930)。
虽然本文主要就响应单播数据业务而执行本发明的增强地址更新 功能作了描述,但是,本发明的增强地址更新功能可响应其它类型的 业务(例如多播业务、广播业务等以及它们的各种组合)来执行。此外, 根据本发明的增强地址更新可与桥接网络的其它各种功能结合使用 (为了行文清楚起见而被省略)。例如,根据本发明的增强地址更新 可与环路预防算法(如生成树算法等)、端口保护功能、虚拟LAN(VLAN) 功能、链路聚合功能等以及它们的各种组合结合起来使用。
虽然本文主要就一个具体交换机体系结构作了描述,但是本发明 并不限于交换机体系结构。例如,在一个实施例中, 一个物理交换机 可分为相互独立地进行操作的多个虚拟交换机。例如,在另一实施例 中,多个物理交换机可作为一个逻辑交换机进行操作。换言之,本发 明的MAC地址更新功能并不限于本文为了清楚描述这类MAC地址更 新功能而描述的特定交换机体系结构。
虽然本文主要就桥接以太网作了描述,但是,本发明可用于提供 其它各种类型的网络(例如令牌环网、光纤分布数据接口 (FDDI)网络等
以及它们的各种组合)中的地址更新功能。类似地,虽然本文主要就以
太网MAC地址的增强地址更新作了描述,但是,增强地址更新可用 于其它各种类型的地址,具体取决于基础网络。因此,本发明并不限 于在桥接以太网中实现;本发明的增强分布地址更新功能而是可在各 种其它网络中实现。
图14是表示适合用于执-f亍文中所述功能的通用计算机的高级框 图。如图14所示,系统1400包括处理器部件1402(例如中央处理器 CPU));存储器1404,例如随机存取存储器(RAM)和/或只读存储器 (ROM);地址更新模块1405;以及各种输7v/输出装置606(例如存储设 备,包括但不限于磁带驱动器、软盘驱动器、硬盘驱动器或光盘驱动 器、接收器、发射器、扬声器、显示器、输出端口和用户输入装置(如 键盘、小键盘、鼠标等))。
应当注意,本发明可通过l欠件和/或软硬件的组合来实现,例如使 用专用集成电路(ASIC)、通用计算机或者其它任何硬件等效方案来实 现。在一个实施例中,本地址更新过程1405可加载到存储器1404中, 由处理器1402运行,以实现如上所述的功能。因此,本发明的地址更 新过程1405(包括关联数据结构)可存储在例如RAM存储器、磁或光 驱动器或者磁盘等的计算机可读i某体或载体中。
文中所述的作为车欠件方法步骤的一部分,预期可在硬件中实现, 例如实现为与处理器配合工作以执行各种方法步骤的电路。本发明的 若干部分可作为计算机程序产品实现,其中,计算机指令在由计算机 进行处理时调整计算机的操作,以调用或者以其它方式提供本发明的 方法和/或技术。用来调用本发明方法的指令可存储在固定々某体或可移 动媒体中、经由广播或其它信号承载媒体中的数据流发送和/或存储在 按照指令进行操作的计算装置的工作存储器中。
本文详细描述了结合本发明的教导的各种实施例,但是,本领域 技术人员不难设计出仍汲取这些教导的许多其它不同的实施例。
权利要求
1.一种用于使线卡转发数据库同步的方法,包括在线卡上接收数据包;响应“对所接收数据包执行地址更新操作”之确定而为至少一个其他线卡中的每一个生成控制包,以能够在其上进行地址更新操作;以及向所述至少一个其他线卡传播所述至少一个控制包。
2. 如权利要求l所述的方法,其中,确定是否对所述数据包执行 地址更新操作的步骤包括确定所述数据包的源地址;确定所述源地址的条目是否存在于其上所述数据包被接收的所述 线卡的转发数据库中。
3. 如权利要求2所述的方法,还包括如果所述源地址的条目没有存在于所述转发数据库,则执行其中 包括将所述源地址的新条目添加到所述转发数据库的地址学习操作, 其中,所述源地址的所述新条目包含所述源地址、关联出口端口和老 化时间戳;以及如果所述源地址的条目存在于所述转发数据库,则确定所述源地 址的条目中包含的出口端口是否同与所接收数据包关联的出口端口匹配。
4. 如权利要求3所述的方法,还包括如果所述出口端口匹配,则确定是否执行地址刷新操作,其中, 确定是否执行所述地址刷新操作的步骤包括确定所述源地址的条目 的老化时间戳是否满足刷新阈值,并响应所述老化时间戳之满足所述 刷新阈值而执行所述地址刷新操作,其中,执行所述地址刷新操作的步骤包括重设所述源地址的条目的老化时间戳;或者如果所述出口端口不匹配,则执行地址再学习操作,其中,执行 所述地址再学习操作的步骤包括更新所述源地址的条目的出口端口 , 并重设所述源地址的条目的老化时间戳。
5. 如权利要求l所述的方法,其中,生成控制包的步骤包括 生成所述数据包的副本;以及修改所述数据包的副本以将所述数据包的副本标记为所述控制包。
6. 如权利要求l所述的方法,还包括在所述线卡中的每一个上运行地址老化过程,各老化过程包括 对于关联转发数据库的多个条目中的每一个,确定与所述条目关联的地址老化时间戳是否满足老化阈值;对于所述关联地址老化时间戳不满足所述老化闳值的所述多个条目中的每一个,递增与所述条目关联的所述地址老化时间戳;以及对于所述关联地址老化时间戳满足所述老化阈值的所述多个 条目中的每一个,使所述条目无效。
7. —种用于使有关的多个线卡的多个转发数据库同步的装置,包括用于在线卡上接收数据包的部件;用于响应"对所接收数据包执行地址更新操作"之确定而为至少 一个其他线卡中的每一个生成控制包、以能够在其上进行地址更新操 作的部件;以及用于向所述至少一个其他线卡传播所述至少一个控制包的部件。
8. 如权利要求7所述的装置,其中,用于确定是否对数据包执行地址更新操作的部件包括用于确定所述数椐包的源地址的部件;用于确定所述源地址的条目是否存在于所述数据包在其上^皮接收 的所述线卡的转发数据库中的部件;习操作的部件,所述地址学习操作包括将所述源地址的新条目添加到所述转发数据库,其中,所述源地址的新条目至少包含所述源地址、 关联出口端口和老化时间戳;用于在所述源地址的条目存在于所述转发数据库时、确定所述源 地址的条目中包含的出口端口是否同与所接收数据包关联的出口端口 匹配的部^f牛;用于在所述出口端口不匹配时执行地址再学习操作的部件,所述 地址再学习操作包括更新所述源地址的条目的出口端口和重设所述源 地址的条目的老化时间戳;用于在所述出口端口匹配时、通过确定所述源地址的条目的老化 时间戳是否满足刷新阈值来确定是否执行地址刷新操作的部件;以及用于响应"所述老化时间戳之满足所述刷新阈值"而通过重设所 述源地址的条目的老化时间戳来执行所述地址刷新操作的部件。
9.如权利要求7所述的装置,还包括用于在所述线卡中的每一个上运行地址老化过程的部件,其中包括用于对于关联转发数据库的多个条目中的每一个确定与所述 条目关联的地址老化时间戳是否满足老化阈值的部件;用于使所述关联地址老化时间戳不满足所述老化阈值的所述 多个条目中的每一个的所述地址老化时间戳递增的部件;以及用于使所述关联地址老化时间戳满足所述老化阈值的所述多 个条目中的每一个无效的部件。
10. —种用于保持有关的多个线卡上的多个转发数据库的方法, 包括对于所述转发数据库中的每一个,存储多个地址条目,各地址条 目包含地址值、端口值和地址老化时间戳;以及对于所述转发数据库中的每一个,对所述所存储地址条目中的每 一个定期地运行地址老化过程,其中包括确定与所述条目关联的所述地址老化时间戳是否满足老化阈值;如果所述地址老化时间戳不满足所述老化阈值,则使与所述条目关联的所述地址老化时间戳递增;以及如果地址老化时间戳满足所述老化阈值,则使所述表条目无效。
全文摘要
本发明提供用于媒体访问控制地址学习的方法及装置,其中包括用于使线卡转发数据库同步的方法及装置。一种方法包括在线卡上接收数据包;为至少一个其他线卡中的每一个生成控制包,以能够在其上进行地址更新操作;以及向至少一个其他线卡传播至少一个控制包。响应“对所接收数据包执行地址更新操作”这一确定而生成控制包或多个包。地址更新过程可作为入口地址更新过程或出口地址更新过程来实现。该地址更新过程与地址老化过程一起执行。
文档编号H04L12/28GK101340366SQ200810090930
公开日2009年1月7日 申请日期2008年3月28日 优先权日2007年3月30日
发明者R·施伦克 申请人:卢森特技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1