首页> 中国专利> 一次搜索操作搜索滤波数据库的方法和设备

一次搜索操作搜索滤波数据库的方法和设备

摘要

滤波数据库的多次搜索增加了由开关接收的数据分组滤波的时间。本发明给出了包括翻译器和滤波数据库的开关,用于执行一次搜索。翻译器提供被翻译的识别符,用于与开关收到的数据分组有关的识别符。被翻译的识别符包括对应于虚拟LAN组(FID)的一组识别符和对应于被识别的虚拟LAN(VID)的一组成员号。滤波数据库存储静态和动态项。静态项储存转发决策,用于与被翻译的识别符有关的数据分组。动态项储存转发决策,用于含在被翻译的识别符内的组识别符有关的数据分组,且组成员号置于不管理状态。被翻译的识别符允许滤波数据库提供存在静态项或动态项中的转发决策,用于来自一次搜索操作的识别符。

著录项

  • 公开/公告号CN1468482A

    专利类型发明专利

  • 公开/公告日2004-01-14

    原文格式PDF

  • 申请/专利权人 睦塞德技术公司;

    申请/专利号CN01817135.4

  • 发明设计人 戴维·A·布朗;

    申请日2001-08-30

  • 分类号H04L 12/46;H04L 12/44;

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人戎志敏

  • 地址 加拿大安大略省

  • 入库时间 2023-12-17 15:05:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-10-26

    未缴年费专利权终止 IPC(主分类):H04L12/46 授权公告日:20051130 终止日期:20150830 申请日:20010830

    专利权的终止

  • 2014-10-29

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L12/46 变更前: 变更后: 申请日:20010830

    专利权人的姓名或者名称、地址的变更

  • 2005-11-30

    授权

    授权

  • 2004-03-17

    实质审查的生效

    实质审查的生效

  • 2004-01-14

    公开

    公开

说明书

背景技术

第一个以太网LAN(“局域网”)已在共用介质上实现,例如连接所有LAN中设备的同轴电缆。共用介质对物理介质上的信号长度有限制,并且由于在某一时刻在共用介质上只能一台设备传输数据,能连接到LAN的设备数有限。

开关提供了增加LAN规模的手段,因为它可在连到同一物理介质或LAN段的一组设备之间搭桥。LAN可看成由一个或多外开关连在一起的多个LAN段,例如,开关的第一端口连到第一LAN段,第二端口连到第二LAN段。开关作为LAN段之间的桥,把数据分组从第一LAN段传到第二LAN段的设备。

在LAN中连到LAN段的每个设备指派一个唯一的介质访问控制(“MAC”)地址,每一数据分组包括指派给发送数据分组的设备MAC源地址和数据分组要传递到的设备MAC目的地址。

开关借助于把目的地MAC地址与开关中的端口相关来确定是否把在一个LAN段接收到的数据分组转发到另一个LAN段;该端口连到MAC地址所属的LAN段。这一关系可存在开关的转发表中的静态转发项中。静态转发项是由管理动作明确设定的,并在开关工作期间不能修改,例如,例如设备A连到LAN段A,LAN段A连到开关的端口1,那么设备A的静态转发项与把设备A的MAC地址与端口1关系。如果设备A物理地移到连接开关中端口2的B段,则设备A转换表中的静态项并不自动更新到端口2代替端口1。为更新静态转发项,需要由管理动作重新设定开关。

MAC地址与开关中端口之间的关系可在开关操作期间学习而不是在开关中明确设定静态转发项,学习允许MAC地址与开关中端口的关系动态产生并在开关操作期间修改。学到的关系存入开关中转发表的动态转发项中。为了知道MAC地址,开关要收听连到开关端口的所有LAN段上传输的数据分组。动态项把MAC地址与连到LAN的数据流段的端口联系起来。

开关根据检测的MAC地址产生新的转换表中的动态转换项,该MAC地址存在源地址字段中,它含在转换表中没有相应转换项的数据分组中。开关在接收来自MAC地址的数据分组的每一时刻,更新与MAC地址相关的动态转发项。

例如,如果开关看到连接端口1的A段与存在源地址字段的MAC地址A上的数据分组,则开关在转发表中为MAC地址A建立动态转发项。该动态转发项把MAC地址A与端口1相联系。从开关中包含作为目的地址的MAC地址A的另一端口接收的顺序数据分组通过端口1转发。如果MAC地址A的设备移到连接到开关中端口2的另一个LAN段,则开关根据接收端口2来自MAC地址A的数据分组知道了新的关系。开关为MAC地址A更新动态转发项,把数据分组通过端口2而不是端口1转发到MAC地址A。

通过开关的使用来提供多个LAN段,增加了LAN的规模增加了LAN的带宽,于是也增加了可连到LAN的设备的数目。但是,由于增加连到LAN的设备数据,由广播业务量消耗的带宽也增加了。由于根据接收未知MAC地址数据分组,广播业务量增加了,为了了解对未知MAC地址的转发信息,广播数据分组要转发给所有连到LAN的设备。广播数据分组包括源自一个MAC地址的专门MAC地址,它要转发给所有连到LAN的其它设备。不同于单点转发业务量;即,从单个源地址转发到单个目的地址的数据分组,广播业务量不可能限于单个LAN段。这样,由于连到LAN的设备数增加,广播业务总量增加,与在LAN中物理LAN段的数目无关,LAN的有效带宽减少了。

减少在LAN中广播业务量的一个解决方案是把LAN逻辑分段引入到虚拟局域网(“VLAN”)中。逻辑分段LAN引入VLAN的一种方法已描述在电子和电气工程师协会p802.IQ.标准中。在开关支持的VLAN中,如果该端口是接收数据分组的同一成员,则广播数据分组只通过一个端口转发。这样,广播业务量只传给作为与数据分组源同一VLAN成员的设备。

在VLAN中逻辑分段的LAN中,在LAN上转发的每个数据分组包括识别VLAN的VLAN识别符(“VID”),从该VLAN发出数据分组。VLAN的全体成员是根据分配的逻辑地址VID,而不是物理地址。这样,VLAN的成员并不需要是同一物理LAN段的成员。所有在LAN上的业务量,包括广播,单点和多点转发的数据业务量被限于虚拟的发送数据源的VLAN,限制把业务量传给包括在数据分组中的VID识别的VLAN成员。如果该设备也是包括在接收的数据分组中的VID识别的VLAN的成员,那么该设备只能与VLAN成员通信。这样,VLAN包含广播业务量在发送广播数据分组源的VLAN内,并提供VLAN成员间数据转发的安全性。

借助于应用VLAN于LAN,存在静态或动态项中的转发决策与VID和含在接收的数据分组中的MAC地址有关。MAC地址可以是多于一个VLAN的成员,每个VLAN为每个成员在转发表中要求静态或动态转发项,其中MAC地址是VLAN中的成员。如果开关实现独立学习,则一组动态转发项供给MAC地址,一个动态转发项供给知道MAC地址的VLAN。

为了减少对每个学习的MAC地址储存和更新动态转发项的数目,开关可实行共享学习。共享学习允许在一个VLAN上对MAC地址学习的转发信息可由一组给定的VLAN中的其它VLAN共享。转发信息用于对该MAC地址的转发决策。

为了实现在开关的共享学习,在开关中的每个VLAN与一个滤波器识别(“FID”)建立确切的关系,对于独立地学习,在VID和FID之间有一一对应的关系,对于共享学习,一组VID分配给一个FID,只有VID在数据分组中转发,FID是由开关随机分配的,并在开关的内部使用。在共享学习开关中,所有独立学习或共享学习的学习信息存入与FID有关而不是VID的转发表内的动态转发项中。明确设定的转发信息存入与VID有关的静态转发项中。开关可同时支持共享学习和独立学习。

共享VLAN学习允许学习的MAC地址信息在一组VLAN中共享,因为只有一个与FID有关的动态转发项存在FID的转发表中。但是,即使MAC地址转发信息在FID中的该组VLAN中共享,开关只通过这一端口转发数据分组,该端口是发送数据分组源的VLAN的成员。这一转发决策可通过出口滤波的使用获得。这样,在共享学习开关中,广播业务量限于发射数据源的VLAN,并提供VLAN之间的安全性。

图1A表示在共享学习开关中实现的现有技术转发表130。现有技术转发表130包括静态转发项132和动态转发项。静态转发项132把转发矢量140与MAC地址136b和VID138相关。动态项134把转发矢量140与MAC地址136a和FID 142相关。转发矢量140a,140b是比特图,包括对开关中每一端口指示端口或传输数据要通过的端口的比特。静态转发项132中的VID138是包含在由开关接收的数据分组中相同的VID。存在动态动态转发项134中的FID142与VID组或单个VID相关。与MAC地址和含在接收的数据分组中的VID相关的转发项可存在静态转发项132或动态转发项134中,根据MAC地址是否由开关学习或由管理明确确定而定。这样。为了确定与MAC地址和含在接收数据分组中的VID有关的转发项的转发决策,需要转发表130的两次搜索。

第一次搜索是对与含在数据分组中的VID 138有关或VID缺省的静态转发项132。VID缺省分配给与这种端口有关的数据分组,在该端口,如果VID没有包含在数据中,则数据在该端口接收。如果在与MAC地址有关的转发表130中没有静态转发项132,则执行对包括FID 142和MAC地址136a的动态转发项134的第二搜索,FID 142由开关分配给VID138。

发明内容

滤波数据库的多次搜索增加了用于滤波由开关接收的数据分组的时间。我们提出了包括翻译机和执行一次搜索的滤波数据库的开关。翻译机提供经翻译的识别符,用于与由开关接收的数据分组有关的识别符。经翻译的识别符包括一组对应于一组虚拟LAN(FID)的识别符和一组对应于被识别的虚拟LAN(VID)成员号。滤波数据库储存静态项和动态项。静态项储存转发决策,用于与经翻译的识别符有关的数据分组。动态项储存转发决策,用于与含在经翻译的识别符中的组识别符和置于不管理的组成员号有关的数据分组。经翻译的识别符允许滤波数据库提供存在静态项或动态项中的转发决策,用于来自信号搜索操作的识别符。

含在翻译的识别符中的组识别符存入静态项和动态项。在动态项中,组成员号置于不管理。这样,单次搜索操作可用来寻找对识别符的匹配,它可以存入滤波数据库中的静态项或动态项。

在一个实施例中,组成员号识别与组识别符有关的数个成员中的一个。滤波数据库可以是按内容存取存储器。按内容存取存储器可以是三进制按内容存取存储器,用于支持不管理条件。

识别符可以存入含在收到的数据分组的报头中或由开关派给接收的数据分组的缺省识别符。

附图说明

本发明前述和其它目标、特性和优点从下面实施例的详细描述中将十分明显,如附图中所示,其中不同图中的同一部分使用同样的参考符号。附图并不需要比例尺,强调的是本发明的原理。

图1A是现有技术转发表130,它是在开关支持共享的学习中实现的;

图1B是现有技术数据分组,它可以在开关的入口端接收;

图1C是现有技术以太数据链接层(L2)报头,它已包括在图1A所示的数据分组中;

图2是开关的方块图,包括转发逻辑,用于把收到的数据分组转发到连接开关端口的VLAN;

图3是图2所示的转发逻辑方块图;

图4是图3所示的转发逻辑中翻译器的方块图;

图5是图3所示的转发逻辑中滤波数据库的方块图;

图6是流程图,表示用于为收到的数据分组选择转换矢量的方法。

具体实施方式

本发明的实施例说明如下。

图1B是现有技术数据分组100。数据分组包括物理层(L1)报头102,数据链接层(L2)报头104,网络层(L3)报头106和转发层(L4)报头108。用于数据分组的有效载荷存在数据字段110中,数据分组110也包括检验和112。

图1C表示现有技术以太网协议的报头,存在图1B所示的数据链接(L2)报头104中。以太网协议报头的长度是一个固定的比特数,它由标准以太网协议规定。数据链接(L2)报头104包括6字节L2目的地址字段114,6字节L2源地址字段116,虚拟局域网识别符(“VID”)字段118和2字节长度/类型字段120。VID 118包括标记协议识别符(“TPID”)118a和标记控制信息(“TCI”)118b。

图2是开关200的方块图,包括转发逻辑210,用来确定在入口端206a-b收到的数据分组的转发决策。出口端208a-b和入口端206a-b的数目并不限于图2所示的数量。在一个实施例中,开关200中有26个出口端208a-b和入口端206a-b。

开关200包括入口端引擎216、出口端引擎218、数据分组存储管理器220和段缓存存储器224。根据在入口端206a或206b接收的数据分组100,入口端的转发逻辑210滤波数据分组100,以决定数据分组100是否转发到开关100中的出口端208a-b或删除。

转发逻辑210包括滤波数据库302。滤波数据库包括静态项500和动态项502。每个静态项500和动态项502包括指向转发矢量202的指针,指向转发矢量的指针与VID 118(图1C)和MAC OA 114(图1C)有关,它们含在收到的数据分组的数据层(L2)报头104(图1B)中。静态项500明确地由管理动作加到滤波数据库302。动态项502由开关200学习。

如果有静态项500或动态项502存在与VID 118(图1C)和MAC DA114(图1C)有关的滤波数据库中,后者含在数据分组100中,则转发数据分组100。如果没有静态项500或动态项502供给数据分组100,那么放弃数据分组100。如果有静态项100或动态项502,则动态项502或静态项500为数据分组100提供转发矢量202的位置。转发矢量202识别一个或多个出口端208a-b,数据分组100通过该端口转发。

两个物理LAN段212a-b连到开关200,物理LAN段212a包括设备204a-c和204i-j。物理LAN 212b段包括设备204d-h。设备204a-j可以是主计算机,用户机,终端,工作站或任何其它能连到LAN的设备。物理LAN段212a通过入口端206b和出口端208b连到开关200。物理LAN段212b通过入口端206a和出口端208a连到开关。

连到物理LAN段212a-b的设备204a-j也是虚拟局域网(“VLAN”)214a-e的成员。VLAN 214a-e的成员不需要是同一物理LAN 212a-b的成员,因为VLAN 214a-e的会员资格是基于逻辑地址,而不是物理地址。VLAN 214a-e的成员被分配同一逻辑地址或VID。VID可由管理动作定义和构成。

VID可存入数据分组的数据链接层(L2)报头104中的VID字段118,或能根据检测收到的数据分组没有VID而由开关分配有关的入口端206a-b。VID允许同一VLAN 214a-e的成员通信,好像它们在同一物理LAN段212a-b一样。每一设备204a-j只能与虚拟LAN 214a-e的成员通信,如果该设备也是VLAN 214a-e的成员的话。

VLAN 214a包括设备204b,204c和204h。虚拟LAN 214b包括设备204a,204e和204h。VLAN 214c包括设备204f,204g和204h。VLAN214d包括设备204d,204e和204h。VLAN 214e包括设备204i和204j。设备204h和204e是多于一个VLAN 214a-d的成员。设备204h是VLAN214a-d的成员和设备204e是VLAN 214b和214d的成员。

为了提供专门服务或每个VLAN内的安全性,设备204a-j可以是多于一个VLAN的成员。例如,设备204h可以是服务器计算机,设备204a-g是用户机。这样,为了设备204与设备204a-g通信,设备204h必须是至少一个VLAN 214a-d的成员,其中每个设备204a-g也是成员。

一组VLAN 214a-e可以与滤波器识别符(“FID”)有关,允许共享该组VLAN之间的学习。在支持共享学习的开关200中。如图所示,VLAN214a-d是FID 230a的成员,VLAN 214e是FID 230b的成员。为了提供在VLAN 214a-d之间的共享学习,开关分配FID 230a给该组VLAN214a-d。共享学习允许对一个VLAN上MAC地址的学习信息在所有与FID230a-b有关的VLAN之间共享。例如,如图2所示,设备204h连到物理LAN段212b,并且是VLAN 214a-d和FID 230a的成员。这样,包括对任何VLAN 214a-d的VID和对设备204h置于MAC目的地址(“DA”)的一个目的地址的数据分组,通过出口端转发。如果设备204h被移到物理LAN段212a,并且新的端口信息通过从设备204h接收的数据分组学习,该数据分组有VID置于对VLAN 214a的识别符,这一信息与其它在FID 230中的VLAN 214b-d共享,因为该组VLAN共享与设备204h的MAC地址有关的动态转发项。

与FID 230b有关的VLAN 214e支持独立学习。VLAN 214a-e,开关200要把数据分组100转发给它,由存在VID字段118中的VID识别,该字段在接收的数据分组100内的数据链接层(L2)报头104中。考虑源设备204e,它把数据分组发给VLAN 214b上的目的地设备204a。在发送数据分组之前,设备204e存储对VLAN 214b的VID于VID字段118中,并且存储对设备204a的MAC地址于数据链接层(L2)报头104的目的地址字段114中。数据分组100在入口端206a由入口端引擎216接收。在入口端引擎216中的转发逻辑210选择转发矢量,通过出口端208b转发数据分组,转发矢量202与静态项500或动态项502有关,它们在滤波数据库302的转发逻辑210中。所选的转发矢量202与VID和MAC目的地址有关,它们包含在数据分组中。

在对接收的数据分组100选择转发矢量后,开关200储存要转发的数据分组于段缓存存储器224的228中的数据上。数据分组存储的位置由数据分组存储管理器通过段缓存器地址226选择。数据分组存储管理器220描述在正在进行审查的美国专利申请流水号09/386,589中,申请日期为1999年8月31日,题目是“Merhod and Apparatus for anlnterleaved Non-Blocking Packet Buffer”,作者David A-Brawn,其全部作为本申请的参考。出口端引擎218读存在段缓存器中在数据输出232上的数据分组,然后,把存储的数据分组转发给一个或多个由转发矢量选择的出口端口。

图3是示于图2的转发逻辑210的方块图。转发逻辑210包括VID至VID’的翻译器300,滤波数据库302和转发矢量表304。

滤波数据库包括静态项500和动态项502。静态项500包括MAC地址和VID。静态项500明确由管理动作设定。动态项502包括MAC地址和FID。动态项502由开关200学习。静态项依据与数据分组有关的VID选择,VID可包括在接收的数据分组100内或由开关200分配。动态项502依据开关200分配给与数据分组有关的VID的FID选择。

滤波数据库302是三进制按内容存取存储器(“CAM”),支持不管理状态。在CAM中,搜索键通过专门的比较字寄存器提供给存储器。如果存在存储器中的数据匹配搜索键,则CAM返回与搜索键有关的地址。返回的地址是对存在转发矢量表304中的转发矢量的指针,转发矢量表与动态项502或静态项500的内容有关。在一次时钟周期内,或者对静态项500,或者对动态项502匹配搜索键搜索整个CAM。

三进制CAM能储存和搜索或者逻辑0,1,或者在单个单元内“不要管理”(“x”)。如果存在静态项500或动态项502中的一个比特置于“x”,则匹配发生于搜索键在比特中存储“1”或“0”时。例如,如果项储存“100x”,则搜索键置于“1001”或“1000”导致匹配。滤波数据库302结合图5在下面说明。静态项500和动态项502储存经翻译的VID(VID’),根据本发明的原理,它与MAC地址有关。经翻译的VID由VID提供给VID’的翻译器300。借助于存储翻译的VID于动态项502和静态项500中,代替VID存储在静态项500中和FID存在动态项502中,就能用一个搜索键的一次搜索操作,对或者静态项500或者动态项502搜索滤波数据库;即,MAC地址和翻译的VID。

在入口端206a或206b(图2)收到的数据分组可包括存在VID字段118(图1C)中的VID。如果VID存在接收的数据分组100中,则VID由开关中的入口端引擎从数据分组100中提取,并把VID 306转发到VID至VID’的翻译器。如果在数据分组中没有VID,则由开关产生缺省VID,并转发VID 306。以端口为基础的VLAN中,缺省VID可根据接收数据分组的入口端206a-b来选择。

为了在一次搜索操作中搜索滤波数据库302来匹配与VID和MAC地址有关的静态项500或动态项502,VID 306由VID至VID’的翻译器300翻译成VID’310。VID至VID’的翻译器结合图4在下面描述。由入口端引擎从L2目的地址114(图1C)(它含在接收的数据分组中)提取的VID’310和MAC目的地址(“DA”)转发给滤波数据库302。

如果在滤波数据库中找到包括VID’310和MAC DA 308的静态项500或动态项502,那么把转发矢量312的地址转发给转发矢量表304。转发矢量312的地址用来选择存在转发矢量表304中与存在VID字段118(图1C)中的VID和存在接收的数据分组中的MAC DA 114(图1C)有关的转发矢量202。

图4是示于图3的VID至VID’的翻译器300的方块图。VID至VID’的翻译器包括对每个VLAN 214a-e(示于图2)的翻译项400a-e。VLAN214a-e是同一个FID 230a的成员。四个翻译项400a-d翻译VID,用于把VLAN 214a-d(图2)翻译成同一FID 230a。翻译项400e把分配给VLAN214e的VID翻译成另一个FID 230b。

每个VLAN 214a-e具有唯一的VID,它可由管理动作分配给VLAN214a-e。分配给每个VLAN 214a-e的VID存入各翻译项400a-e的VID字段402a-e。每个翻译的项400a-e也包括各VID’字段404a-e。VID’字段404a-e包括组识别符字段406a-e和组成员号字段408a-e。分配给VIAN或VLAN组的FID 230a存入每个VID’字段404a-d的组字段406a-d中。组成员号存入各组成员号字段408a-e。组成员号对每个FID 230 a-b的成员是唯一的。

翻译项400a-e根据开关的设置在开关200初始化期间初始化。例如,为了支持共享学习,翻译项400a-e可由开关管理实用程序初始化把VLAN214a-d映射到同一个FID 230a。翻译项400a-e可由管理动作在开关工作期间修改。

在共享学习开关中,开关200中的每个VLAN映射到只有一个FID230a-b。FID 230a-b包括一个或多个VIAN 214a-e。图4表示对图2中的VLAN 214a-e的翻译项400a-e。如图所示,VLAN 214a-b是同一FID230a的成员。VLAN 214e是另一个FID 230b的成员。分配给VLAN 214e的FID 230b是“0010111111”。分配给VLAN 214a-d的FID 230a是“1111001111”。分配的230a、230b存入每个VID’字段404a-e的组识别符字段406a-e中,它在VLAN 214a-e的各翻译项400a-e中。

分配给每个VLAN 214a-e的唯一VID存入各翻译项中的VID字段402a-e。对VLAN 214e的翻译项400a中的VID字段402a储存“101111110011”,对VLAN 214b的翻译项400b中的VID字段402b储存“101000100011”,对VLAN 214c的翻译项400c中的VID字段402c储存“000010011101”,对VLAN 214d的翻译项400d中的VID字段402d储存“010110111111”,对VLAN 214c的翻译项400e中的VID字段402e储存“010110001010”。

在一组VLAN中的每个VLAN 214a-e被分配唯一的组成员号。分配给VLAN 214a的组成员号是“00”,并存入组成员号字段408a。分配给VLAN 214b的组成员号为“01”,并存入组成员号字段408b。分配给VLAN214c的组成员号为“10”,并存入组成员号字段408c。分配给VLAN 214d的组成员号为“11”,并存入组成员号字段408d。分配给VLAN 214e的组成员号为“00”,并存入组成员号字段408e。

这样,每个VID’字段404a-e包括对FID 230a,230b中的每个VLAN214a-e的组识别符字段406a-e和组成员字段408a-e。在上面所示的例子中,有两个比特分配给组成员号,允许每个FID 230a-b最大有四个VID。但是,由FID识别的组中,VLAN数并不限于上述例中的四个。组成员号字段408a-d中的比特数是log2(每个FID的最大VLAN数)。例如,为了支持每个FID最大八个VLAN,组成员号需要3比特(lg2(8))。

图5是图3中的转发逻辑210中滤波数据库302的方块图。滤波数据库302包括静态项500和动态项502。静态项在开关200工作时控制保持不变,例如,设备204i(图2)可设置成VLAN 214e(图2)的静态项。动态项502在开关200工作时学习并可用新的值改写,例如,如果设备204a物理上移到开关200的另一端口,要求更新设备204a的转发矢量202,则可以重写设备204a的动态项。

无论是静态项500和动态项502都包括各滤波数据库MAC DA字段504a-b和各滤波数据库VID’字段506a-b。每个滤波数据库VID’字段506a-b包括滤波数据库组字段508a-b和滤波数据库组成员号字段510a-b。

静态项500的数据库组成员号字段510a,当存入VID至VID’的翻译器300中的VID’字段404a-e的组成员字段408a-e时,储存同一组成员号。VID’字段404a-e的内容作为VID’310转发给滤波数据库302。这样,为了在滤波数据库302中找到与VID’310匹配的静态项500,包括VID’310中的组识别符406a-e和组成员号405a-e;即搜索键必须精确匹配。

一个动态滤波数据库项502经与FID 230a-b有关的MAC DA储存。动态滤波数据库项502在FID 230a-b中的VLAN组之中共享。这样,在动态项502中的滤波数据库组成员号字段510b的比特置于“xx”;即,因为组识别符字段508a对所有FID 230a-b的成员相同,且只有一个动态滤波数据库项502为FID 230a-b中的每个VIAN 214a-e共享,所以不用管理。

为了寻找动态项与VID’310和MAC DA 308的匹配,只要转发到VID’310中的滤波数据库的组识别符406a-e必须匹配滤波数据库组识别符508b,后者存在在与MAC DA 308有关的动态滤波数据库项502中。这样,与MAC DA有关的动态滤波数据库项502和静态滤波数据库项500可用同一个VID’310搜索。如果VID’310中的组字段406a-e和组成员号字段408a-e都匹配静态项500中的各字段,则就找到了静态滤波数据库项的匹配;亦即对数据分组100,有与VID 402a-e有关的静态项。如果只有VID’310中的组识别符字段406a-e匹配动态项502中的各组识别符字段506b,因为组成员号510b置于“xx”,因此所有FID 230a的成员匹配,这就找到了动态滤波数据库项的匹配。

例如,对VID=“101111110011”(它在VID至VID’的翻译器中被译成“111100111100”)的匹配可存入静态项500或动态字目502中。分配给VID的FID是“1111001111”。如果滤波数据库组识别符502a置于“1111001111”,且在静态项500中滤波数据库组成员号置于“00”,则找到了对VID匹配的静态项500。如果滤波数据库组识别符置于“1111001111”,且组成员号置于“xx”;亦即在动态项502中不需管理,则找到了对FID匹配的动态项502。这样,在对“11100111100”的一次搜索中,可找到匹配的动态项502或静态项500。

在匹配的动态项或静态项找到之后,与匹配的数据库项有关的转发矢量的地址在转发矢量312的地址上转发给转发矢量表304。转发矢量表304储存转发矢量项,并把存在转发矢量312的地址的转发矢量转发给数据库存储器管理器220,如图2所示。转发矢量202典型地是一组比特,每个开关200的端口一个比特。在转发矢量202中相应端口比特的状态确定收到的数据分组100是否要转发到出口端208a-b。对于图2所示的开关结构,转发矢量202包括两个比特,一个比特用于出口端208a,一个比特用于出口端208b。各端口比特置于“能转发”状态,使通过各端口能转发接收的数据分组100。

图6是流程图,表示为接收的数据分组100选择转发矢量202的方法。该方法结合图3-5描述。

在步骤600,入口端引擎216检查接收的数据分组100,以确定数据分组100是否包括存在VID字段118(图1C)中的VID。如果有存在VID字段118中的VID,则处理以步骤602继续。如果没有,则处理以步骤604继续。

在步骤602,入口端引擎216提取存在接收的数据分组100的VID字段118的VID。(处理以步骤606继续)。

在步骤604,入口端引擎216产生对接收数据分组100的缺省VID。缺省VID可根据接收数据分组100的入口端206a-b(图2)产生,处理以步骤606继续。

在步骤606,VID至VID’的翻译器300搜索对VID 306的翻译项,如果VID 306已知,则处理以步骤308继续,如果未知,处理以步骤614继续。

在步骤608,对应于存在翻译项400a-e(图4)中的VID 306的VID’310转发给滤波数据库302,处理以步骤610继续。

在步骤610,滤波数据库用搜索键一次搜索。搜索键是MAC DA 308和VID’310。无论是静态项500或动态项502都在一次搜索中搜索。静态项匹配要求VID’310的滤波数据库组字段508a和滤波数据库组成员号字段510a的内容与搜索键精确匹配。动态滤波数据库项的匹配只要求VID’310的滤波数据库组字段508b与搜索键的精确匹配。静态项500和动态项502都匹配是可能的,因为静态项由管理动作输入,而动态项502由开关学习。当滤波数据库302被创建时,就能规定项的优先权。如果静态项500比动态项502有更高的优先权,并且静态项500和动态滤波数据库项502都被找到,则选择静态项500。在找到匹配后,处理以步骤612继续。

在步骤612,存在静态项500或动态项502中匹配的滤波数据库项的地址,在转发矢量312的地址上,转发给转发矢量表304(图5)。转发矢量202存在转发矢量表304中的转发矢量312的地址。转发矢量202是对应于与接收的数据分组100有关的VID和MAC DA的转发矢量。接收的数据分组100转发给由转发矢量202选择的端口。处理完毕。

在步骤614,存在接收的数据分组100中的VID 306是未知的,数据分组被开关200落下,处理以步骤616继续。

在步骤616,在数据分组放弃后,如果学习模式是能够,则为了学习对MAC DA转发矢量,开关100发送数据分组给每个VLAN中的MACDA。在学习转发矢量后,开关100创建在滤波数据库302中的动态项502。处理完毕。

翻译FID的每个成员,以至每个成员具有相同的组识别符和唯一的组成员号。组成员号是以“xx”存在滤波数据库的动态项中。一次搜索操作能用来寻找对存在静态项或动态项中的搜索键的匹配。一次搜索导致对一组由组识别符识别的任何成员的匹配,该组识别符对动态项中的组成员号以X’S存储。这样,为了对接收到的数据分组作出转发决策而需要寻找滤波数据库中静态或动态项的搜索次数减少了。

在本发明以实施例特别表示和说明时,业内人士应理解,形式和细节的各种改变是可能的,而不偏离本发明权利要求书中的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号