在网络交换机内的可编程第三层地址自我学习方法

文档序号:7654839阅读:279来源:国知局
专利名称:在网络交换机内的可编程第三层地址自我学习方法
技术领域
本发明涉及在无阻塞网络交换机内学习数据包的网络地址,该无阻塞网络交换机配置用于在子网络及路由器中交换数据包。
已经制定出以太网协议IEEE 802.3,规定了用于数据包传输的半双工媒体访问机制及全双工媒体访问机制。全双工媒体访问机制在两个网络组件之间,例如在网络节点及交换式集线器之间,提供双向、点对点通信链接。
交换式局域网正面临对更高速的连接、更弹性的交换性能及适应更复杂网络体系结构的能力的日益增加的要求。例如,转让给本发明同一受让人的美国专利第5,953,335号公布了一种网络交换机(networkswitch),该网络交换机配置用于在不同的网络节点之间交换第二层类型的以太网(IEEE 802.3)数据包;接收的数据包可包含依据IEEE802.1q协议的VLAN(虚拟LAN)标记帧,IEEE 802.1q协议规定了另一个子网络(经由路由器)或站台的指定群组。由于交换发生于第二层层次上,通常必须由路由器在子网络之间传输数据包。
加强网络交换机的交换性能、从而包含第三层(例如网际协议)处理的工作通常需要对网络地址表作基于CPU的控制,以便进行第三层地址的学习。例如,路由器基于指定的地址解析协议可执行第二层-第三层关联。通常,由于当前的第二层交换最好配置运行于无阻塞状态,其中数据包可从网络交换机以接收该数据包的相同速率输出,故路由器对于LAN是一种通路瓶颈。因此,具有第二层-第三层交换能力的交换机的使用可减轻路由器的负担并且减少等待时间。此外,由于在网络交换机内,第三层学习可能快速地覆盖地址表,在第二层交换中学习每个接收的数据包的媒体访问控制(“MAC”)地址的传统学习技术在第三层交换中并不实用。
还需要有一种方案,使无阻塞网络交换机能够在线路速率下选择性地学习进入的数据包的第二层地址及相关的第三层地址,而不会覆盖网络交换机地址表。
本发明可满足这些需要及其它需要,其中用于交换数据包的网络交换机包含用于接收及发送多个数据包的多个端口。进入的数据包由封包识别器模块加以评估,以判断是否接收的数据包是由连接至网络交换机的路由器所接收的。若所接收的数据包来自网络节点而非该路由器,交换模块即选择性地储存接收的数据包的第二层源地址及相关的第三层源地址,作为地址表中的相关联的第二层-第三层地址对。因此,由于地址表包含较少的项目,在该地址表中溢出情形的可能性就会减少。
本发明的一个目的为提供在网络交换机端口交换数据包的方法。该方法包含由网络交换机的一个端口接收数据包,并且判断是否该端口接收到来自路由器的数据包。该方法还包含基于该端口接收到来自网络节点而非该路由器的数据包的判断,选择性地将来自该数据包的第二层源地址及相关的第三层源地址作为相关联的第二层-第三层地址对,储存在地址表中。因此,该地址表含有较少的项目,从而减少了地址表中溢出的可能性。
本发明的另一个目的为提供一种网络交换机,用以在网络交换机端口交换接收到的数据包。该网络交换机包含用于接收及发送多个数据包的多个端口,其中多个端口中的一个端口连接至路由器、封包识别器模块及交换模块。封包识别器模块配置用于判断是否接收的数据包来自路由器。交换模块配置为基于接收的数据包来自网络节点而非路由器,选择性地将来自接收的数据包的第二层源地址及相关的第三层源地址作为相关联的第二层-第三层地址对,储存在地址表中。结果使地址表中溢出的可能性减少。
本发明的附加优点及新颖特征将部分在以下描述中提出,部分对于本领域技术人员而言,在审查了以下内容后会变得显而易见或通过运用本发明而认识到。本发明的优点尤其可以通过在所附权利要求书中所指出的方案及其组合而实现。
图2为方框图,依据本发明的实施例而说明

图1的网络交换机。
图3为流程图,依据本发明的实施例而说明在图1的网络交换机内的学习。
图4为另一个流程图,依据本发明的实施例而说明在图1的网络交换机内的学习。
图5是又一个流程图,依据本发明的实施例而说明在图1的网络交换机内的学习。
本发明最佳实施方式图1为说明封包交换网络10的方框图,封包交换网络10例如为以太网(IEEEE 802.3)网络。该封包交换式网络包含能够使数据包在网络站台14之间通信的集成(例如单芯片)多端口交换机12。每个网络站台14,例如客户工作站,通常均依据IEEE 802.3协议而配置,用于以10 Mbps或100Mbps发送及接收数据包。每个集成多端口交换机12经千兆位以太网链接16而互连,使数据包能够在子网络(或子网,subnet)18a、18b及18c之间传输。因此,每个子网络包含交换机12及相关的网络站台14群组。
每个交换机12包含交换端口20,也称为封包识别符模块,该交换端口20包含媒体访问控制(MAC)模块22及端口滤波器24。MAC模块20依据IEEE 802.3u协议通过10/100Mbps实体层(PHY)收发器(图中未示)而对相关的网络站台14发送及接收数据包。每个交换机12还包含交换模块25,交换模块25配置为对所接收的数据包做出帧前向决定(frame forwarding decision)。尤其是,根据源MAC地址、目的MAC地址及在以太网(IEEE 802.3)标题内的VLAN信息,交换模块25配置用于第二层交换决定;根据在以太网封包内的IP数据部分的评估,该交换模块25亦配置用于选择性的第三层交换决定。
如图1所示,每个交换机12具有相关的主机CPU26及例如SSRAM的缓冲存储器28。主机CPU26控制对应的交换机12的整体运行,包含交换模块25的编程。当交换模块25处理用于接收的数据包的前向决定时,对应的交换机12使用缓冲存储器28来储存数据帧。
每个交换机12还包含存储器30,该存储器配置用于数据包的网际协议(internet protocol,IP)-媒体访问控制(MAC)关联的有限储存,而将其作为地址表。
如上所述,交换模块25配置用于执行第二层交换决定及选择性的第三层交换决定。若在子网络18a内的末端站台14希望发送电子邮件消息给子网络18b、18c内的选定网络站台,第三层交换决定的可用性可能是特别有效的。由于子网络18b、18c处于不同子网上,子网络18a内的主机无法知道子网络18b和/或18c上的主机的第二层地址。交换机12a的交换模块25就要发送电子邮件消息给路由器19,而这会造成额外的延迟。交换模块25使用第三层交换决定,就使交换模块25能够对如何处理封包(包含进一步的前向决定)、以及是否应将封包视为对等待时间敏感的用途(诸如视频或音频)中的高优先权封包而做出智能化决定。因为对于LAN而言,路由器通常是通路瓶颈,交换模块25可减轻路由器的负担而且改善往返行程的延迟。
依据所述实施例,网络交换机12经配置而学习选定数据包的IP-MAC关联。每个网络交换机的封包识别器模块24经配置而判断是否接收的数据包由路由器19所接收。若封包识别器模块24确认接收的数据包来自网络节点而非该路由器19,网络交换机12的交换模块25选择性地储存数据包的第二层源地址及相关的第三层源地址,作为地址表中相关联的第二层-第三层地址对。相关联的第二层-第三层地址的选择性储存亦称为对数据包的IP-MAC关联的学习。通过选择性地学习来自非路由器端口的选定数据包的IP-MAC关联,减少了地址表溢出的可能性。另外,通过使用所学习的IP-MAC关联,网络交换机即可执行第三层交换,从而能够绕过相连子网络之间的路由器,从而减少等待时间。
图2显示图1所示的端口滤波器24的更详细的方框图。端口滤波器24包含接收先进先出(FIFO)缓冲器51、MAC排队逻辑52、存储器53、MAC出队(dequeing)逻辑54、发送FIFO 55及处理器接口模块57。
接收FIFO 51为缓冲器,该缓冲器配置用于对从端口20的接收部分接收进入的数据包加以响应,暂时储存该进入的数据包。
MAC排队逻辑52提供各种用于端口滤波器24的功能。MAC排队逻辑52从接收FIFO 51经数据总线59而至外部存储器接口26,为SSRAM 28提供接收的数据包以便写入。MAC排队逻辑52还响应于处理接收的数据包的MAC排队逻辑25,向交换模块25提供多个状态信号58。状态信号58对交换模块25提供指示,表明接收的数据包无错误地传送至外部存储器接口26,或者说接收的数据包的传送是完全的。状态信号58亦包含子网络路由选择信号(RNET_ENABLE)及学习信号(L3IRC_LEARN)。
当MAC排队逻辑52设置RNETS_ENABLE信号时,交换模块25即得到通知接收的数据包是在直接连接至网络交换机12a的子网络之间所进行的内部子网络通信量的一部分。
当MAC排队逻辑52设置L3RC_LEARN时,交换模块25就要学习用于接收的数据包的IP-MAC地址关联。
存储器53为MAC排队逻辑52提供用于参数的寄存器空间53a,以实现学习及子网络路由选择功能。寄存器空间53a为MAC排队逻辑至少提供SUBNET_ID及SUBNET_MASK寄存器。CPU26经处理器接口(pi_mod)57而为寄存器编程。SUBNET_ID寄存器提供用于储存的单个端口所属的IP地址。在交换机12a上的每个端口具有一个SUBNET_ID寄存器。SUBNET_MASK提供用于储存的单个端口的32位IP地址掩码(address mask)。在交换机12a上的每个端口具有一个SUBNET_MASK掩码寄存器。
MAC出队逻辑54对交换模块25所进行的处理加以响应,提供从SSRAM 28检索接收的数据包并将该数据包传送给适当的端口。
发送FIFO 55提供了在端口20发送之前,用于要发送的数据包的缓冲器。
在端口20接收进入的资枓封包并在接收FIFO 51内使进入的资枓封包得到缓冲。MAC排队逻辑52将数据包传送至外部存储器接口56,经数据总线59而储存于SSRAM 28内。
MAC排队逻辑52通过检验数据包的标题及帧数据而在接收的数据包内搜寻第三层信息,例如IP数据包。利用第三层信息,通过将IP标题内的目的IP地址与储存于存储器53的寄存器内的数值加以比较,MAC排队逻辑52可判断是否接收的数据包为内部子网络通信量的一部分。
尤其是,若接收的数据包是从路由器端口所接收的话,IP目的地址将对所有其余端口的SUBNET_MASK掩码(mask)。随后将掩码操作的结果对照所有其余端口的SUBNET_ID寄存器进行比较。若比较操作的结果是成功的,MAC排队逻辑52即对交换模块25设置RNETS_ENABLE信号。
也可配置MAC排队逻辑52,以便判断当封包由非路由器端口到达时,子网络直接连接至网络交换机12a的情况下,是否对于子网络内的IP地址,交换模块25需要学习接收的数据包的源IP-MAC地址关联。主机CPU26负责在存储器53内使各寄存器编程,使得交换模块25知道是何端口连接至路由器。
还可配置MAC排队逻辑52,使得当端口识别器模块24的MAC排队逻辑52判定接收的数据包预定发给该路由器并可能是内部子网络通信量的一部分时,学习IP-MAC关联。
另外,可配置封包识别器模块24的MAC排队逻辑52,使得当接收的数据包预定发给该路由器并且为内部子网络通信量的一部分时,学习所接收的封包的IP-MAC关联。
尤其是,MAC排队逻辑52比较所接收的数据包的MAC目的地址与在存储器53内所储存的路由器的MAC地址。若比较操作的结果是成功的,该接收的数据包即是预定发给该路由器。接着,端口识别器模块24的MAC排队逻辑52通知交换模块25,选择性地将第二层源地址及相关的第三层源地址作为相关联的第二层-第三层地址对,储存于地址表30中。
可根据网络交换机12中的通信流量或使用者的偏好,配置封包识别器模块42的MAC排队逻辑52以实现这些功能中的任一功能。还可配置MAC排队逻辑52,从而实现使用者认为必要的各种其它功能。
图3是说明图2中所示的封包识别符模块24进行的学习的流程图。在步骤310中,在端口识别器模块24处从一个端口20接收数据包。
配置端口识别器模块24,使其在步骤320判断是否接收的数据包是从非路由器端口所接收的。主机CPU负责将哪一个端口编程连接至路由器。
若在步骤320,接收的数据包正由非路由器端口所接收,则端口识别器模块24的MAC排队逻辑52断言(assert)学习信号,以通知交换模块25在步骤330中,将第二层地址或MAC地址以及关联的第三层地址或IP地址作为相关联的第二层-第三层地址而储存在存储器30内的地址表中。
若在步骤320,接收的数据包正由路由器端口所接收,则端口识别器模块24的MAC排队逻辑52即在步骤340不对交换模块25断言学习信号。从而不学习所接收的数据包的IP-MAC关联。
图4是说明图2中所示的封包识别符模块24进行的学习的另一个流程图。在此项规则中,当接收的数据包是来自非路由器端口并且具有该路由器的目的MAC地址时,将学习IP-MAC关联。在步骤410中,经端口20的其中一个端口而在端口识别器模块24处接收数据包。
端口识别器模块24经配置以在步骤410判定是否接收的数据包正由非路由器端口所接收,并且该数据包的MAC目的地址为该路由器。主机CPU26负责将哪一个端口编程连接至路由器,并且MAC排队逻辑52比较接收的数据包的目的MAC地址与路由器的MAC地址。
在步骤420,若比较是成功的,则接收的数据包正在非路由器端口上接收并且目的MAC地址在步骤430中为路由器。在步骤430中,端口识别器模块24的MAC排队逻辑52通知交换模块25将第二层源地址或MAC源地址以及相关的第三层源地址或IP源地址作为相关联的第二层-第三层地址,储存于存储器30的地址表中。
若在步骤420中,比较的其中之一失败或两者均失败,则在步骤440中,端口识别器模块24即不通知交换模块25。将不学习接收的数据包的IP-MAC关联。
图5是说明图4所示的封包识别符模块24进行的学习的另一个流程图。在此项规则中,当接收的数据包为内部子网络通信量的一部分并且目的MAC地址为路由器,则IP-MAC关联将学习。在步骤510中,在端口识别器模块24处从端口20的其中之一接收数据包。
端口识别器模块24经配置在步骤510中判断是否接收的数据包正由非路由器端口所接收。MAC排队逻辑52对于在交换模块25内的所有其它的SUBNET MASK掩码目的IP地址。随后将掩码结果与在交换机12a内的所有其它的SUBNET ID地址进行比较。再者,MAC排队逻辑52还比较接收的数据包的目的MAC地址与路由器的MAC地址。
若由步骤520的所有比较都是成功的,端口识别器模块24的MAC排队逻辑52即通知交换模块25在步骤530,将第二层源地址或MAC源地址以及相关的第三层源地址或IP源地址作为相关联的第二层-第三层地址,储存于存储器30内的地址表中。
若由步骤520的所有比较都是失败的,在步骤540中,端口识别器模块24的MAC排队逻辑52将不会通知交换模块25。将不会学习接收的数据包的IP-MAC关联。
依据所述实施例,封包别器模块经配置而用于判断是否接收的数据包源自路由器。若封包识别器模块识别所接收的数据包来自网络节点而非路由器,交换模块即选择性地将第二层地址及数据包的相关的第三层地址作为相关联的第二-第三层地址对,储存于地址表中。通过储存选定数据包的IP-MAC关联,当交换机在交换期间参考地址表时,网络交换机即可减少地址表中的搜寻时间。因此,封包识别器模块使网络交换机能够提供100Mbps或千兆位链接的第三层及第二层交换能力而没有数据包的阻塞。
虽然本发明依据目前认为是最可行的优选实施例而进行描述,需要了解的是本发明并非限定于所述的实施例,反之,应认为本发明涵盖各种包含于所附权利要求书的精神及范围内的改动及等值方案。
权利要求
1.一种用于网络交换机的方法,该方法包括由该网络交换机的一个端口接收数据包;判断是否所述一个端口接收到来自路由器的数据包;以及基于所述一个端口接收到来自网络节点而非所述路由器的数据包的判断,选择性地将来自该数据包的第二层地址及相关的第三层地址作为相关联的第二层-第三层地址对,储存于地址表中。
2.如权利要求1的方法,其中所述选择性的储存步骤包含基于所述一个端口接收到来自网络节点而非所述路由器的数据包的判断,并根据处于该数据包内的目的第二层地址指定所述路由器的判断,将来自该数据包的第二层地址及相关的第三层地址作为相关联的第二层-第三层地址对加以储存。
3.如权利要求2的方法,其中所述第二层地址及所述相关的第三层地址为源地址。
4.如权利要求1的方法,其中所述网络交换机包含分别连接至第一子网络及第二子网络的第二端口及第三端口。
5.如权利要求4的方法,进一步包括判断是否该数据包包含指定该数据包在所述第二端口及所述第三端口之间的传输的地址信息。
6.如权利要求5的方法,其中所述选择性的储存步骤包含基于所述一个端口接收到来自网络节点而非所述路由器的数据包的判断,并根据该数据包包含指定该数据包在该第二端口及该第三端口之间的传输的地址信息,将该第二层地址及所述相关的第三层地址作为所述关联的第二层-第三层地址对加以储存。
7.如权利要求2的方法,进一步包括通过在该网络交换机内的端口识别器模块判断该数据包包含指定该数据包在第二端口及第三端口之间的传输的地址信息,其中该第二端口及该第三端口分别连接至第一及第二子网络。
8.一种网络交换机,包括多个端口,用于接收及传送多个数据包,其中该多个端口的其中一个端口连接至路由器;封包识别器模块,配置用于判断是否接收的数据包来自路由器;以及交换模块,配置为基于接收的数据包来自网络节点而非该路由器,选择性地将来自该接收的数据包的第二层地址及相关的第三层地址作为相关联的第二层-第三层地址对,储存于地址表中。
9.如权利要求8的网络交换机,其中该封包识别器模块配置用于判断是否该接收的数据包包含指定该路由器的目的地址的地址信息;以及该交换模块配置为基于接收的数据包来自网络节点,并根据包含该路由器的目的地址的该地址信息,选择性地将来自该接收的数据包的第二层地址及相关的第三层地址作为相关联的第二层-第三层地址对加以储存。
10.如权利要求8的网络交换机,其中该第二层地址及该相关的第三层地址为源地址。
11.如权利要求8所述的网络交换机,其中所述多个端口的第二端口连接至第一子网络;所述多个端口的第三端口连接至第二子网络;以及该封包识别器模块配置用于判断是否所述接收的数据包包含地址信息,该地址信息指定该接收的数据包在该第一子网络及该第二子网络之间的传输。
12.如权利要求11的网络交换机,其中该交换模块基于该接收的数据包来自网络节点,并根据指定该接收的数据包在该第一子网络及第二子网络之间传输的该地址信息,而选择性地将该接收的数据包的该第二层地址及该相关的第三层地址作为所述相关联的第二层-第三层地址对加以储存。
13.如权利要求8的网络交换机,进一步包括所述多个端口的第二端口连接至第一子网络;所述多个端口的第三端口连接至第二子网络;以及该封包识别器模块配置用于判断是否所述接收的数据包包含地址信息,该地址信息指定该接收的数据包在该第一子网络及该第二子网络之间的传输。
14.如权利要求8所述的网络交换机,其中所述多个端口的每一个端口经配置而包含该封包识别器模块。
全文摘要
一种封包识别器模块,该封包识别器模块配置用于判断是否接收的数据包来自路由器。若封包识别器模块确认接收的数据包来自网络节点而非路由器,交换模块选择性地储存该数据包的第二层地址及相关的第三层地址,作为地址表中相关联的第二层-第三层地址对。该相关的第二层-第三层地址的选择性储存亦称为对数据包的网际协议(IP)-媒体访问控制关联(MAC)的学习。通过选择性地学习来自非路由器端口的选定数据包的IP-MAC关联,即可减少地址表溢出的可能性。再者,通过使用学习的IP-MAC关联,网络交换机可以绕过路由器而交换第三层数据包并减少等待时间。
文档编号H04L12/56GK1456004SQ01807985
公开日2003年11月12日 申请日期2001年3月23日 优先权日2000年4月13日
发明者S-J·曾 申请人:先进微装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1