CN1496632A - 用在扩展局域网中的以优先级为基础的负载平衡方法和设备 - Google Patents

用在扩展局域网中的以优先级为基础的负载平衡方法和设备 Download PDF

Info

Publication number
CN1496632A
CN1496632A CNA038000784A CN03800078A CN1496632A CN 1496632 A CN1496632 A CN 1496632A CN A038000784 A CNA038000784 A CN A038000784A CN 03800078 A CN03800078 A CN 03800078A CN 1496632 A CN1496632 A CN 1496632A
Authority
CN
China
Prior art keywords
bridge
frame
path
tree
star
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA038000784A
Other languages
English (en)
Inventor
������ɽ����
刘金山
李怀州
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Arris Technology Inc
Original Assignee
General Instrument Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by General Instrument Corp filed Critical General Instrument Corp
Publication of CN1496632A publication Critical patent/CN1496632A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Ceramic Products (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

网桥(10,12,14)被用来透明地互连局域网。在用于网桥的IEEE802.1D标准中,在网桥之间建立了一个生成树以实现帧的无环路转发。使用了一种新的网桥协议,该协议设法发现并通过替换路径来转发帧,替换路径比标准生成树上的用做默认转发路径的相应树路径短。这个协议被称作生成树替换路由(STAR)桥接协议,该协议与IEEE802.1D标准后向兼容,其复杂性只与标准协议和其它现有协议相当,而且还有能力根据转发的帧所载的优先级值对通过至少两条不同的路径来转发的帧划分优先级。

Description

用在扩展局域网中的以优先级为基础 的负载平衡方法和设备
发明背景
发明领域
本发明总体涉及使用一种桥接协议来相互连接两个或者更多局域网(LANs),本发明尤其涉及与现有的802.1D生成树桥接协议(SpanningTree Bridge Protocol)向后兼容的设备和方法,在不会大量增加其复杂性的条件下改进生成树转发的路由能力,并且实现具有不同优先级路径的业务,,通过支持根据转发帧所携带的两个或者多个优先值中的一个而选择的替换路径来提供负载平衡。
背景技术
局域网(LANs)用来与终端站连到一起以提供通信,单个的局域网允许接入的终端站数量、规模、以及提供负载的数量都有限。在这一方面,局域网(LANs)不可能发展到超出这一限定范围。局域网可以通过网络互连装置如网桥和路由器来相互连接。根据网络互连环境,这些装置具有不同的优点和缺点。在网络互连的早期,网桥的使用非常广泛,因为同路由器相比,网桥不但价格非常低廉而且运行速度很快。除此以外,网桥还被用来支持异构网络层协议。利用最适合局域网(LANs)的协议,那个时代的原始计算技术有利于将工作负载分到大型服务器上。
IEEE 802标准委员会规定了两种桥接协议。IEEE 802.1类标准已经发布了IEEE 802.1D生成树桥接协议,而IEEE 802.5类标准已经发布了源路由桥接协议(Source Routing Bridge Protocol)。在这两种方案中,IEEE 802.1D提供了一种较好的解决方案,并对其进行了更加彻底的研究。这种方法对终端站是透明的而且不需要修改终端站的MAC层(传输媒体访问控制层)。所有与路由有关的操作都在网桥中完成了。今天,IEEE 802.1D生成树桥接协议协议被广泛用于与IEEE802标准局域网系列进行相互连接。
一个网桥设有几个与不同局域网相连的端口,从一个局域网发送到其它局域网的一幅帧将很典型地通过一个或者多个端口和网桥。由于网桥能够过滤帧,它们对于处理多余的广播业务流非常有用。这样一种广播抑制能力给桥接技术实现虚拟局域网(LANs)提供了一种简单的方法。这个桥接在一起的局域网环境应当是透明的,而且对于终端用户来说看起来就像是一个单一的局域网。网桥的基本功能就是将MAC(媒体访问控制)帧从一个局域网转发到另外一个局域网,不需要在连接到局域网的终端站的通信软件中做任何修改,就可以对局域网进行扩展。网桥没有修改它们接收到的MAC帧的内容和格式。网桥的操作不会混乱或者复制帧。上层协议透明是桥接技术的一个优点,因为网桥能够迅速的转发代表任何网络层协议的通信,而不用检查上层信息。
网络互连的情况已经有了很大的发展,主要是在高速网络层路由选择以及数据链路层交换技术上的进步。这两层的功能性日益相似。就其动态路由选择能力来说,路由器通常比网桥更加智能化,它们的操作也更加的复杂,实施的费用更高。网桥已经设计成包括了从动态源路由选择技术到静态生成树转发技术的路由器能力范围,从而,在路由器性能和协议复杂性之间出现了一种折衷方案。虽然同过去相比,路由器正变的越来越便宜而且速度越来越快,但是它们操作起来同网桥相比还是太过复杂,因为中间跳必须在协议栈中一直上升到高于数据链路层。尽管一般认为IP已经赢得了网络层,但是在可以预测的将来还是会出现非IP网络层的协议。在另外一方面,当网桥正在发展以适应越来越多的网络层的协议的时候,它们也将一直支持多网络层协议。
一个IP(因特网协议)地址既可以将一个网络编码也可以将那个网络的主机上编码。因为它没有指定一个单个的终端系统,而是指定了在一个网络中的物理位置,主机不论何时从一个网络中移到其它的一个网络中,主机的IP地址必定要改变。另外一方面,IEEE 802 MAC地址就确定了网络中的一个终端系统,而不是在网络中的一个物理位置,因此适用于一台主机,不论这个主机位于网络的什么地方。这种地址的可携带性对于即插即用设备的移动性和受益尤其重要。虽然有一些新的特性正在形成使得配置和重新配置IP地址的必要性变得最小,但是这些特性会增加成本和系统的处理总开销。比如,DHCP(动态主机控制协议)就为主机注册和配置提供了一种得到了广泛配置的结构。但是,DHCP在设计上只用于将主机固定在物理性能安全的局域网上。DHCP通过扩展,允许一个由DHCP服务器触发的单一主机进行动态重新配置(例如一个新的IP地址)。根据服务器和客户机之间的网络的带宽,当失效的重发触发了指数衰减时,重新配置过程的延迟将以指数增长。
IEEE 802.1D规范为MAC网桥定义了协议体系结构,并且为一个横跨多个局域网的MAC站点地址的全球管理设置推荐了格式。
图1显示了一个通过本地网桥10或者远程网桥12、14,来连接两个局域网的桥接协议体系结构。参考OSI(开放系统互连)参考模型,一个网桥包括前面两个层,也就是物理层(第1层)和数据链路层(第2层)。在第2层中有两个子层:MAC(媒体访问控制层)子层和LLC(逻辑链路层)子层。网桥在MAC子层上起中继作用并且通过LLC服务访问点与上面的LLC子层形成接口。通过使用网桥,一个不断发展的局域网就会由于管理或者维护的原因,以及通过负载平衡和故障隔离来提高性能等原因,而被划分为数个独立的部分。网桥非常典型地用于相互连接同种类型的局域网,如IEEE 802局域网系列。不同链路层协议之间需要转换,然而,当相互连接的局域网不是同类型的(如IEEE 802.3和IEEE 802.5型局域网),通过适当的帧封装就可以实现互操作性。
一个网桥在与网桥的端口相连的桥接局域网的独立MAC协议之间中继单个MAC用户数据帧。每个端口的MAC实体将处理所有与功能相关的媒体访问方法,即,MAC协议和程序,如相关的IEEE 802标准中为MAC技术所规定的。每个网桥使用与该端口相连的独立MAC实体提供的服务来接收来自与它连接的局域网的帧并向它连接的局域网发送帧。每个网桥端口也像一个终端站那样发挥作用,为LLC层提供MAC服务。所有穿过桥接局域网进行通信的MAC实体都被他们各自的48位MAC地址唯一地确定。一个网桥可以使用一个48位的MAC地址,或者一个16位的本地管理的MAC地址。这个网桥地址在扩展局域网中必须是唯一的,而且从网桥地址中得到一个唯一的网桥标识符(ID),用于桥接协议的操作。从一个源端站发送到目的站的每一帧在帧的MAC首部的源地址字段和目的地地址字段中都分别携带了终端站的MAC地址。一个将要被每一个网桥中继给它在一个扩展局域网中所有相邻网桥的帧在帧的MAC首部目的地址字段包含了一个桥组的MAC地址。
在IEEE 802.ID标准中,相对于预定网桥的最短路径生成树,称作根网桥,用来互连局域网,以形成一个扩展局域网。生成树由扩展局域网中的网桥通过一种分布式生成树算法来确定。当有一个替换的更短的路径连接着两个局域网时,从一个局域网发送到另外一个局域网的帧将沿着生成树上的一个比必须经过的路径更长的路径来传送。注意非树链路是一个没有被802.ID生成树算法选中的链路,非树链路不能用于分担通信负载。根网桥周围的负载非常重,吞吐量受到了严重限制。
在当前的IEEE 802.1D网桥标准中提出的三个基本功能是:
1)转发帧——把从一个端口接收的一幅帧转发到另外一个端口。
2)学习——“学习”和“记住”哪个端口转发了一幅帧。
3)生成树算法——确保激活的链路没有形成环路,即网桥和链路形成了一个生成树。
上面的功能(1)和(2)在转发数据库(Forwarding Database)或过滤数据库(Filtering Database)的帮助下在每个网桥内完成,(见IEEE802.1D的图7-4,1998版)。每个网桥都有一个转发数据库,以下用FD表示转发数据库,FD规定了哪个端口用具体的目的地来转发一个数据帧。如果在FD中没有这样的条目,网桥将通过所有的端口来转发帧,帧产生的那个端口除外。一幅帧不论何时从源点到达端口P,网桥就在它的FD中标记转发端口为p。由于学习过程非常简单,如果在局域网中有一个环路,帧可能被无限期地围绕在环路中转发。为了避免这种不需要的特性,上面提到的功能(3)就被用来确保在网桥中活动拓扑总是树形,所以在每对网桥之间就有一个唯一的路径。我们在这里把这样一个路径称作树路径。
生成树算法在根网桥中以分布方式建立了一个唯一的最短路径树,这个根网桥通过使用网桥标识符来进行选择。在生成树中连接根网桥和另外网桥的路径被称作与该网桥相连的根路径。通过交换配置消息,网桥确定根网桥并选择激活哪个端口。对于每个局域网,在所有与局域网相连的网桥中选出一个作为指定网桥,这个网桥应当最靠近根网桥。为了保持一个最新的能够反映基础拓扑的生成树,根网络要周期性地对所有其它网桥广播整个生成树配置信息,比如大约每4秒钟。
IEEE 802.1D标准定义了桥接协议数据单元(BPDU)的两种类型,也就是配置BPDU(Configuration BPDU)和拓扑改变通知BPDU(Topology Change Notification BPDU)。网桥间相互发送含有配置BPDU的MAC帧,以便交流拓扑信息并计算生成树。网桥发送含有拓扑改变通知BPDU的帧给生成树,以通知根网桥拓扑的变化。每个配置BPDU MAC帧包括一个MAC首部,该首部包括一个源MAC地址和一个目的地MAC地址。源MAC地址就是形成配置BPDU MAC帧的网桥端口的MAC地址。目的地MAC地址字段携带了网桥组MAC地址,所以配置BPDU MAC帧能够被扩展局域网中的所有网桥接收到。在配置BPDU中的信息可以被网桥利用,以准备它自己的配置BPDU MAC帧。每个配置BPDU都包括一个BPDU首部以及一套BPDU参数。BPDU首部由协议标识符字段、协议版本标识符字段和一个BPDU类型字段组成。协议标识符取一个识别生成树桥接协议的特别数值。拓扑改变通知BPDU仅仅由一个协议标识符字段、一个协议版本标识符字段以及一个BPDU类型字段组成,BPDU类型字段带有一个为这个类型而保存的码。当一个网桥在生成树的活动拓扑中检测到一个变化,它就将一个拓扑改变通知BPDU发送到根网桥。根网桥然后将把它广播给扩展局域网中的所有网桥。配置BPDU和拓扑改变通知BPDU的编码可以在IEEE标准中找到。
为了平衡通信负载,IEEE 802.1D生成树桥接协议的补充标准曾经建议允许在适当的条件下把非树链路用于转发帧。这些补充标准考虑到了横跨至少一个非树链路的替换路径。
为了提供在局域网中的服务质量(QoS),IEEE 802.1p标准规定了在网桥中的优先排队法。这种机制可以用来在其它的帧通过时遇到延迟之后,改进另外一些帧的排队延迟。如果在端对端转发路径中的大量延迟是由于路径穿过的网桥中的队列延迟所引起的,那么提供不同的网桥队列延迟对于支持扩展局域网中的QoS将是一个有效的方法。另外一方面,如果大量的延迟是由于穿过一个或者多个局域网段的累计中继延迟所引起的,那么为不同优先级的帧提供不同的路径将是一个提供QoS的更为有效的方法。因为它取决于被穿过的局域网段的数量和性能特性。
在扩展局域网中仍然保持着支持多级业务流分优先级和提高负载平衡的要求,同时保持与IEEE 802.1D标准的向后兼容性。
一个被称作生成树替换路由(STAR)桥接协议的现有系统,曾经被本发明的发明人披露过,在美国专利09/977,115中对这个系统进行了描述。该发明是一个以QoS为基础的桥接协议,该协议与IEEE802.1D标准向后兼容,所以不需要对现有的网桥进行修改,而且新的网桥可以与现有的标准实现无缝操作。这个现有系统设法查找比标准生成树中的树路径更短的替换路径并通过更短的替换路径来转发帧,然后利用标准生成树来进行默认转发以及多播和广播操作。在尽力的基础上确定更短的替换路径,通过STAR桥接协议确定的最短替换路径被称作增强转发路径,增强转发路径并不必须是一个最短的路径,但是同相应的树路径相比,可以证明是比较短的。在我们这个现有系统的一个实施例中,所有从一个源网桥发送到一个目的地网桥的帧要么通过标准树路径转发要么通过增强转发路径转发,不同时用二者。在该现有系统的另一实施例中,所有从一个源网桥发送到一个目的地网桥的帧都默认通过标准树路径转发,而预定类别的帧就可以通过增强转发路径进行转发,如果这些替换路径可以使用。如果增强转发路径通向一个与正常树路径转发方向相反的目的网桥,数据帧就要进行封装以避免无意的帧撤消。为了能够查找增强转发路径,STAR桥接协议定义了三个补充进程,这三个补充进程与IEEE 802.1D标准中提出的现有网桥进程不一样。STAR网桥能够执行标准进程和新的进程。一个新的网桥进程允许一个STAR网桥查找并计算自身到其它STAR网桥的路径的距离。其它两个新的网桥进程使得STAR网桥能够进行扩展学习和增强转发。新进程在新定义的桥接协议数据单元所载的控制信息基础上进行操作,桥接协议数据单元所载的信息在STAR网桥之间进行交换。STAR桥接协议可以利用标准生成树来进行低优先级的业务流,同时在能够利用增强转发路径的任何时候在增强转发路径上转发高优先级的帧。IEEE 802.1p标准提供了八个不同的优先级,当这些路径可以利用而且也能被找到的时候,提供两个以上的转发路径来支持不同的QoS级别是比较好的。除了STAR桥接协议以外,没有现有系统支持扩展局域网中的路径划分。然而,在每对STAR网桥之间STAR桥接协议最多支持两种不同的转发路径。
一种现有技术提供了一种分布式负载共享(DLS)的方法,使非树链路满足为转发帧所选择的特定拓扑限制条件。该DLS方法并不担保一个转发路径对于所考虑的任何附加度量方法都比它的相应树路径好。另一现有技术提供了一个原始DLS方法的扩展和简化版本,这个版本被称作通用DLS(GDLS),在这种方法中不使用非树链路。在GDLS方法中,如果非树链路的“速度”比相应的树链路的速度小,就不会使用非树链路。DLS和GDLS方法都不支持业务流优先级方法。
源路由桥接协议是一个IEEE标准,在源路由桥接协议中,在每个帧的首部都包括了转发路径上的信息,然后每个网桥简单地阅读首部并转发相应的帧。查找并选择一个合适的转发路径的职责是在终端站上,而不是在网桥上。当一个终端站想发送一幅帧的时候,它首先广播一个路径查找帧。当它穿过桥接的局域网时,路径就被记录在帧里面。当帧到达目的站,就查找了所需要的路径,然后,已经在那里阐述了一个完整路径的帧就被发送回到源端站。由于这种查找转发路径的方法从根本上将是一种扩散式方法,它可能会为每个查找的转发路径产生大量的帧。利用源路由桥接协议的这种路径转发方法,一幅帧总是能够通过一条最短的路径传播。但是为了实现所有成对最短路径及负载共享,终端站就牺牲了其透明性。
其它的一个现有技术提供了一种网桥体系结构,这种网桥体系结构具有IP路由选择功能。所建议的网桥被称作SmartBridges(智能网桥),智能网桥通过交换拓扑信息以获得扩展局域网中的网桥和局域网段的完全拓扑。一旦完全拓扑同步,就可以查找到每个局域网的最短的路径。这个方法使用了一种机制来确定每个终端站与哪个局域网相连,并检测每个终端站从一个局域网到另外一个局域网的运动。按照这种技术,在已知位置的终端站之间转发的帧将沿着扩展局域网中一条可能最短的路径传播。这种方法不支持业务流优先级,与IEEE802.1D标准也不向后兼容。
还有另外一种方法,该方法把EEE 802.1D标准生成树用做默认值,在给定的网桥中动态地建立一个最短路径树。按照这种被称作源相关生成树(SDST)的方法,根据在这些链路中观察到的包传输延迟情况,有些非树链路根据要求被激活,而有些树链路则根据要求被禁用。在SDST网桥中保存的信息按照以网桥端口数的二次方增长。这个方法不支持业务流优先级,与IEEE 802.1D标准也不向后兼容。
在其它的一种被称作OSR(最佳——次最佳路由选择)的方法中,可以在桥接局域网中确定比它们相应的树路径短的替换路径,只要桥接局域网中所有的网桥都实施并执行了这个方法。在每个这样的网桥中,为网桥的每个端口保存着到每个已知终端站的耗费。OSR和距离向量路由选择方法类似。每个网桥为每个端口保存着拓扑信息。为了与IEEE 802.1D标准向后兼容,要求OSR网桥将原始数据帧封装在一个只能由OSR网桥识别的新的特殊帧格式中。没有这样一个隧道机制,帧就要干扰网桥按照IEEE802.1D标准进行的正常操作。由于数据帧的封装,当有的网桥不执行这个方法时,这个方法查找的路径可能比它相应的树路径更长。同样,这个方法也不支持业务流优先级。
另一种方法在网桥中保存了距离向量,显示了每个最短路径到一个具体的局域网的长度以及转发方向,而不是到一个终端站的长度和转发方向。映射表被用来将终端站映射到局域网。当一幅帧被一个网桥接收到以后,网桥将目的站映射到与目的站相连的目的局域网上,并且从距离向量中查找转发端口。映射表以扩散(flooding)方式进行交换,这样会造成网络资源的使用效率低。这个方法不支持业务流优先级,与IEEE 802.1D标准也不向后兼容。
在扩展局域网中仍然保持着对多优先级路径划分方法和负载平衡的要求,当替换路径比能够查找的与它们相对应的树路径短的时候,这个方法能够支持两个以上的优先级,并且通过多个替换转发路径传播不同优先级的通信。
发明内容
本发明是一个只要至少有一个替换转发路径比能够查找到的树路径短,就能够根据帧的优先级在两个或者更多替换转发路径中(包括一个树路径)转发帧的新协议。如果没有查找这样一个替换转发路径,则将树路径用作默认转发路径。当设有终端站代理网桥而且代理网桥都位于生成树的不同分支上的时候,就可以得到一个从源端站到目的站的一个替换转发路径,其中终端站的代理网桥就是与沿着标准树转发路径一直到生成树的根网桥上的终端站靠得最近的STAR网桥。在这种情况下,从源端站的指定网桥上转发的一幅帧必须沿树向上流动到源端站和目的站的指定网桥上最近的公共祖先处。本发明的一个关键特点就是一幅帧的优先级越高,通过上游树路径的跳数就越小,从源端站的指定网桥开始,在允许帧通过更短的替换转发路径来转发以前,帧就必须确定优先级。此外,对于给定优先级的一幅帧,更有可能通过已执行更多跳数的可用更短替换转发路径来转发。本发明确保位于一对终端站之间的具有更高优先级的帧的转发路径比位于同样一对终端站之间的优先级较低的帧的转发路径短,或者一样长。
本发明是STAR桥接协议的扩展协议,下面将对本发明进行详细描述,设法找到增强转发路径并通过增强转发路径转发帧,把标准生成树用作默认转发路径。在STAR桥接协议中,如果无增强转发路径可用,从源端站代理网桥发送到目的站代理桥网上的一幅帧就通过一个树路径转发。否则,在一个实施例中,帧就通过一个从源端站代理网桥连接过来的增强转发路径进行转发,在另外一个实施例中,帧通过所述的增强转发路径进行转发,只要帧属于选择的类型。如果帧通过一个树路径来转发,则沿着树路径的中间STAR网桥不能够通过任何一个从它们自身连接到目的地网桥的增强转发路径来转发帧。根据本发明,从源端站的代理网桥发送到目的站的代理网桥的每一幅帧都要经过一个树路径,一个从源端站的代理网桥连接过来的增强转发路径、以及一个混合转发路径,该混合转发路径是由部分树路径和一个从中间STAR网桥连接过来的增强转发路径连接在一起而构成的。混合转发路径比相应的树路径短。在STAR桥接协议中规定的桥接进程和存储要求通常都适用于本发明。但是,本发明扩展了路径查找进程及STAR转发,而不是STAR桥接协议中的STAR学习进程。
本发明扩展了STAR桥接协议中的路径查找进程。一个被称作通告帧(Announcement Frame)的新的SBPDU帧在路径查找进程开始的时候马上被每一个STAR网桥发送。这个帧在生成树中进行广播。当一个第一STAR网桥接收到产生自第二STAR网桥的通告帧时,第一STAR网桥就知道了树转发端口、下一跳STAR网桥、以及连接到该第二STAR网桥的树路径上的中间STAR网桥的数量,并将这些信息保存在网桥转发表(BF表)中。根据本发明,这个信息将用于STAR转发进程。
本发明修改了STAR桥接协议的STAR转发进程,所以可以将两个以上的替换路径用于转发帧。在原始STAR桥接协议中,只有代理网桥可以决定利用哪个树路径和增强转发路径来转发一个数据帧。在本发明中,要求有些中间STAR网桥做出相似的转发决定。当一个STAR网桥从一个子端口接收到一幅帧并发现该帧已经穿过了一个树路径,它就会决定是将该帧向上游转发到相邻的树,还是通过一个从所述STAR网桥连接过来的增强转发路径来转发帧。它要通过帧的优先级以及帧穿过的树路径的长度来确定转发端口。如果STAR网桥发送了一幅帧到祖先STAR网桥,则祖先STAR网桥必须自己决定是否将帧转发到一个从它自身连接到目的站代理网桥的增强转发路径上。因此,每个接收到帧的STAR网桥也必须自己决定是否将帧转发到一个从它自身连接到目的站代理网桥的增强转发路径上,只要帧还没有转发到从不同STAR网桥上连接过来的增强转发路径上。如果一幅帧没有绕道从任何一个中间STAR网桥连接过来的增强转发路径而到达了目的站的代理网桥上,帧将结束通过树路径的转发。
本发明通过为不同优先级的业务流使用不同的路径的方法来支持在扩展局域网中的多级业务流优先级和负载平衡。本发明还与IEEE802.1D标准向后兼容。本发明通过扩展STAR桥接协议,利用混合转发路径以及增强转发路径根据帧的优先级来转发帧,从而支持多级业务流优先级。因为帧通过多个替换转发路径转发,所以本发明还提供改进的负载平衡方法,因此缓解了在某些树链路上的拥挤状况。
附图简述
下面将结合附图对本发明进行详细描述,在图中用相同的数字来表示相同的元件。其中:
图1是一张图表,显示了用于通过本地或者远程桥接来连接两个局域网的桥接协议体系结构;
图2是一个用于STAR桥接协议的网桥状态转换图;
图3是一个端口状态转换图,显示了根据STAR桥接协议,端口的标准状态和附加状态;
图4显示了一个封装的数据帧;
图5是一个STAR网桥的操作流程图;
图6是一个用于进程BPDU_PROC的流程图;
图7是一个流程图,显示了用于进程DVCN_SBPDU帧的过程;
图8是一个用于进程Data_Frame_Proc的流程图;
图9是一个用于进程SLA_SBPDU_Proc.的流程图;
图10是一个桥接局域网图表,能够很好地解释本发明的STAR网桥之间的非树链路;
图11是一个STAR网桥图表的范例;
图12是进程DVC_SBPDU_Proc.的一个流程图;
图13是一个图表,能够很好地解释树链路的计算;
图14是进程DVMy_Info_Proc.的一个流程图;
图15是进程DVOur_Inform_Proc.的一个流程图;
图16是进程DV_Inform_Proc.的一个流程图;
图17是进程DV_Record_Proc.的一个流程图;
图18是进程DF_STAR_Learning_Proc.的一个流程图;
图19是进程FD_Search_Proc.的一个流程图;
图20是进程ESL_Search_Proc.的一个流程图;
图21是进程Std_Data_Frame_Proc.的一个流程图;
图22是进程DF_STAR_Forwarding_Proc.的一个流程图;
图23-25是图表,能够很好地解释终端站之间可能的路径,显示了树路径和增强转发路径;
图26-29是图表,能够很好的解释当至少有一个终端站的代理网桥没有定义时的转发路径范例;
图30-32是图表,能够很好的解释当两个终端站的代理网络都进行了定义时树路径的选择范例;
图33是图表,能够很好地解释当终端站的代理网桥进行了定义而且代理网桥各不相同时树路径的选择;
图34是一张图表,能够很好地解释在对终端站的代理网桥进行了定义,而且两个代理网桥并不相同,其中一个是另外一个的祖先的情况下,对树路径的选择;
图35是一个桥接局域网图表,能够很好地解释本发明的操作;
图36是进程Ann_SBPDU_Proc(n,n’,c,p)的流程图;
图37是一个结合了进程Ann_SBPDU_Proc(n,n’,c,p)的STAR网桥操作流程图过程;
图38是进程ESL_Search_Proc(s,t,pld)的一个流程图;
优选实施例详述
I.生成树替换路由(STAR)桥接协议
I.A.网桥状态
以下的详细描述只提供了一个优选实施例,并不只局限于本发明的限定范围、适用性、或者本发明的配置。相反,以下优选实施例的详细说明为本领域一般技术人员提供了一种能够赋予技术人员能力的描述,以实现本发明的一个优选实施例。显然能够理解,可以对本发明中多个元件的功能和布置做出各种变化而不脱离本发明的精神。因此,本发明的范围将与附加的权利说明书的权利要求一致。
图2显示了一个用于STAR桥接协议的网桥状态转换图。共有五种状态:树学习中、树学习完毕、找到远邻居、找到直接邻居、增强状态。前面两个状态捕获满足IEEE 802.1D标准的旧网桥的行为,而其它三个状态反映了STAR网桥的附加功能。当生成树建立时,每个网桥(包括旧网桥和STAR网桥)都处于树学习的状态。在这个状态,象在IEEE 802.1D标准中一样,所有的数据帧都撤消。当生成树建立以后,网桥进入树学习完毕状态。一个路径查找进程启动并且数据帧的路径就利用标准转发和学习进程来进行转发。在路径查找进程中有几个阶段。网桥在不同阶段中,首先进入到找到远邻居状态,然后进入找到直接邻居状态,最后进入增强状态。在下文的路径查找进程部分将进一步解释状态的转换。当网桥处于增强状态时,路径查找进程就完成了。当在这种状态下接收到一幅数据帧时候,就开始执行STAR转发和学习进程。
I.B端口状态
在IEEE 802.1D标准中,有四种端口状态:阻塞(Blocking)、侦听(Listening)、学习(Learning),和转发(Forwarding)。在STAR桥接协议中,有三个附加端口状态用于路径查找进程,类似于侦听、学习,和转发状态。在图3中显示了这些端口状态和端口状态之间的事务。这些新端口状态为距离向量侦听(DV Listening)、距离向量学习(DV Learning)、和STAR转发。IEEE 802.1D生成树桥接协议激活树端口,而路径查找进程激活其它有用的非树端口。该标准中的四个状态之间的转换与STAR网桥转换的方法一样。当端口被选做树端口的时候,端口就从阻塞状态变换到侦听状态。当一个适当的协议定时器超时的时候,端口进入学习状态。在这个状态,能够学习但是不能发送数据帧。如果定时器又超时了,端口就处于转发状态。如果路径查找进程选择了它,端口就从阻塞状态变换到DV侦听状态。当端口进入DV侦听状态的时候,协议定时器就开始启动。当这个定时器超时的时候,端口进入到DV学习状态。与当前IEEE标准中的学习状态不一样,在IEEE标准中的处于学习状态的端口会记住终端站的位置,一个处于DV学习状态的端口不会这样做。这是因为所有的数据帧仍然是通过树路径转发的,而处于DV学习状态的端口必须是一个非树端口。因此,应当没有数据帧到达那个端口。一个类似的协议定时器被用来中断DV学习状态,下一个转换就是进入到转发状态。
I.C.储存
每个网桥都为转发进程保存着FD(转发数据库)。在STAR网桥中,提供了三个附加使用的表格:网桥转发表(BF表),终端站位置表(ELS表),以及网桥地址表(BA表)。这些表格优选地存储在已驻于非STAR网桥中的存储设备中,比如用于存储FD的存储器中。BF表为桥接局域网中的每个STAR网桥之间指出一个端口,该端口引导到沿所发现的“最佳”路径的下一跳。BF表是通过修改的距离向量方法在路径查找进程中来获得,在下面将对这个方法进行进一步的详细描述。ESL表被用来将终端站映射到靠近它的一个STAR网桥上。STAR学习进程负责填写这个表。因此,如果STAR网桥的ESL表有一条终端站记录,在大多数情况下,STAR网桥的FD就没有必要为相同的终端站保留记录。这就意味着STAR网桥中的FD不会比标准网桥中的FD大。BA表就是一个STAR网桥标识符和STAR网桥MAC地址之间的一个映射。每个网桥都有它自己唯一的MAC地址,而且这个MAC地址要用在STAR转发进程中。STAR网桥没有必要知道所有其它STAR网桥的MAC地址。应当指出的是地址addr(n)应当是网桥ID为n的网桥MAC地址。
I.D.协议数据单元
STAR桥接协议能识别两种类型的协议数据单元,也就是BPDU(桥接协议数据单元),在IEEE 802.1D标准中对BPDU进行了规定,还有一个就是SBPDU(STAR桥接协议数据单元),下面为STAR桥接协议对SBPDU进行规定。
SBPDU包括一个SBPDU首部,该首部具有与BPDU首部一样的格式,还包括一套SBPDU参数。SBPDU中的协议标识符有它自己的唯一值以识别STAR桥接协议。SBPDU MAC帧采用了一个与BPDUMAC帧类似的格式。有四种类型的SBPDU帧:问候SBPDU,距离向量改变通知SBPDU(Distance Vector Change Notification SBPDU,DVCN_SBPDU),距离向量计算SBPDU(Distance Vector ComputationSBPDU,DVC_SBPDU),以及站点位置通告SBPDU(Station LocationAnnouncement SBPDU,SLA_SBPDU)。问候SBPDU被用于监控交叉链路故障。DVCN_SBPDUs被用来通知STAR网桥关于拓扑的改变。DVC_SBPDUs被用于查找进程的路径中以计算距离向量和BF表。SLA_SBPDUs在STAR学习进程中产生以填充ESL表格。
由于任何一个带有未知协议标识符的BPDU帧都将不会被旧网桥转发,所以如果希望SBPDU帧要穿过至少一个旧网桥,那么由STAR网桥发送的一幅SBPDU帧必须被封装为一幅数据帧。一个封装的SBPDU帧的源地址就是负责封装的STAR网桥的MAC地址。目的地MAC地址既可以是STAR桥组MAC地址,也可以是希望的STAR网桥接受者的唯一MAC地址。哪个目的地MAC地址更为适用将取决于被发送的SBPDU MAC的具体类型。在建议的协议中,大部分SBPDUMAC帧是通过生成树来发送的。在这里应当解释的是,有些SBPDUMAC帧可以通过选择的非树链路发送到直接的STAR邻居。除了参考交叉链路维护和路径查找进程来描述过的唯一例外,由STAR网桥接收到的SBPDU MAC帧将不能通过STAR网桥进行转发。
I.E.数据帧
在LLC子层上的每一幅数据帧都包括LLC信息,并被封装在位于终端站的MAC层上的MAC帧里面。我们把通过终端站产生的MAC数据帧称作是正常MAC数据帧,或者在上下文很清楚的情况下简单地把它称作正常数据帧。就像下面将对帧撤消问题进行的非常详细的解释那样,一个正常数据帧将必须被网桥封装以达到转发的目的。当一幅正常的MAC数据帧被封装时,我们把它称作封装MAC数据帧,或者在上下文很清楚的情况下简单地把它称作封装数据帧。我们把封装数据帧希望的接收者称作是一个代理(proxy)目的地,其地址被称作代理目的地地址。在这个文件剩下的部分中,术语“数据帧”或者指一种正常的数据帧,或者指一种封装的数据帧。我们假设一个MAC数据帧fr具有格式<src(fr),dst(fr),pld(fr)>,其中,src(fr)、dst(fr)和pld(fr)分别代表源MAC地址,目的地MAC地址、以及有效负载数据。
一幅正常的MAC数据帧由一个MAC首部,一个LLC首部、一个第3层包、一个MAC尾部组成。当一个正常的MAC数据帧被封装时,一个附加MAC首部和LLC首部被加到正常数据帧的前面,一个附加MAC尾部被加到正常数据帧的尾部,如图4所示。每个STAR网桥必须在以下帧中进行区别:正常数据帧、封装数据帧和封装SBPDU帧。所有这些帧在旧网桥看起来都好象是正常数据帧。本发明在封装LLC首部的协议类型字段中规定了帧类型信息,使得STAR网桥可以正确的识别帧的类型并处理这些帧。
在大多数桥接局域网中,帧受到最大传送单元(MTU)的限制。一个给定大小的封装MAC帧在进行封装之前必须进行分段,否则就会使帧违反MTU的限制。在这个方面,STAR网桥必须执行分割和重组方法以适应封装的需要,这种封装在转发某些数据帧的时候需要。每个封装的帧必须包括一个附加的字段来携带合适的系列号。将容量过大的帧分割成两段就足够了,因为封装的开销远比MTU小。因此,只需要1位来识别一对分割段。分割和重组方法不在本发明的范围之内,因为帧封装是现代网桥技术中已有的功能。
I.F.交叉链路的维护
因为交叉链路并不是生成树活动拓扑的一部分,所以涉及到交叉链路的拓扑改变通常不会触发网桥发送出一个拓扑改变通知BPDU。因此,需要一种方法来对推荐协议所挑选出来以支持增强转发路径的每个交叉链路的状况进行监控和更新。问候SBPDU和DVCN_SBPDU被用于实现这个目的。问候SBPDU仅仅由一个协议标识符字段、一个协议版本标识符字段、以及一个SBPDU类型字段组成,BPDU类型字段带有一个该类型保留的编码。DVC_SBPDU包括一个SBPDU首部和被确定为已经失效的交叉链路末端上两个网桥的ID。
为了检测交叉链路的故障,位于每个链路两端的STAR网桥周期性地交换问候SBPDUs。这些问候SBPDUs不被STAR网桥转发给它们的邻居。每个STAR网桥为它的每个交叉链接的邻居使用一个预定的定时器,来对待发的问候SBPDUs计时。如果在适当的定时器超时之前,一个STAR网桥就接收到了从一个STAR邻居通过交叉链路发送过来的问候SBPDU,则STAR网桥复位定时器。否则,STAR网桥就认为交叉链路已经失效,然后转换到树学习完毕状态。除此以外,STAR网桥也会通过IEEE 802.1D生成树将距离向量多点传播到所有的STAR网桥中。
当一个交叉链路从最近的失效中恢复过来或者启用一个新的交叉链路连接的时候,位于交叉链路两端的STAR网桥都将首先会根据在它们各自的BF表中的信息来确定交叉链路是否满足支持增强转发路径的条件。如果交叉链路符合条件,STAR网桥将各自独立的通过IEEE 802.1D生成树将一个DVCN_SBPDU多点传播给所有STAR网桥。
一旦接收到一个DVCN_SBPDU,STAR网桥将其转发它所有的树邻居,并转换到树学习完毕状态。STAR网桥利用定时器来为预先设定的超时周期记录受到影响的交叉链路的标示。当标示一个给定交叉链路的DVCN_SBPDU被一个STAR网桥接收到时,如果在一个当前超时期之内没有接收到标示同样交叉链路的其它DVCN_SBPDU,STAR网桥将复位定时器并将SBPDU转发给它所有的树邻居。否则,SBPDU就要撤消。
I.G.网桥操作
如前面所述,在这个协议中,STAR网桥将接收三种类型的MAC帧:BPDU帧、SBPDU帧、以及数据帧。图5是STAR网桥操作流程图。当接收到一幅MAC帧时,它将为不同类型的帧调用不同的过程。
接收到的BPDU帧将被过程BPDU_Proc处理。图6为BPDU_Proc的流程图。当接收到一个拓扑改变通知BPDU时,网桥必须停用路径查找进程所挑选出的非树端口,并且使它的ESL表条目失效。在这一切完成以后,就开始实施标准的BPDU数据处理。在图6中,Std_BPDU_Proc就是指标准BPDU数据处理过程。由于标准BPDU数据处理过程可以在本文引用的IEEE 802.1D标准中找到,所以为了简洁,就省略掉了该过程的详细情况。
如在协议数据单元部分所描述的那样,有四种不同类型的SBPDU帧。有一个过程来处理每个类型的SBPDU帧。DVCN_SBPDU_Proc过程用于处理DVCN_SBPDU帧,而这个过程的流程图显示在图7中。下面将分别结合第V节和第IV节,对用于处理DVCN_SBPDU帧的DVCN_SBPDU_Proc过程以及用于处理SLA_SBPDU帧的SLA_SBPDU_Proc过程的详细情况分别进行讨论。这些过程的流程图分别显示在图12和图9中。当接收到一幅数据帧的时候,STAR网桥就会调用Data_Frame_Proc过程。Data_Frame_Proc的流程图显示在图8中。根据网桥当前的状态执行不同的过程。在第IV节和第V节中将对数据帧的处理进行进一步的讨论。
II.模型
在这一节中,我们将描述我们在本发明中使用的数学模型。我们也将定义推荐协议的记法。  在附录的表A中有一个一览表。
在本发明中,桥接局域网被表示成一个无向图G=(V,E),其中V是所有网桥的集合,而E是连接到网桥的链路的集合。每个链路(x,y)∈E都假定具有非负的长度c(x,y)。为了方便,我们让c(x,y)=∞,如果 如果在网桥x和网桥y之间有几个链路,c(x,y)就应当是链路消耗最小的。G中的路径是一个由E中的链路所连成的无环级联。一个路径的长度就是沿着路径所有链路的消耗总和。一对节点x和y之间的距离连接节点的最短路径的长度。
网桥x是网桥y的直接邻居,并且如果(x,y)∈E,则反过来也是这样。T=(V,ET)就是G的一个表示了RST的树子图,其中,当且仅当(x,y)是RST中的一个激活链路时,(x,y)∈ET。ET中的链路被称作树链路,而E/ET中的链路被称作非树链路。如果(x,y)∈ET,则x和y为树邻居。T中的路径是一个树路径。一个在网桥s开始并且在网桥t结束的树路径被记作treepath(s,t)。这种树路径的距离被记作dT(s,t)。注意,如果x和y为树邻居,则dT(x,y)=c(x,y)。如果它有至少一个中间网桥(即除了源网桥和目的地网桥之外的另外一个网桥)而且每个路径上的中间网桥都是旧网桥,我们就把treepath(s,t)称为旧网桥树路径。B表示STAR网桥的集合。如果s和t为STAR网桥,也就是s,t∈B,并且在它们之间有一个旧网桥属性路径,那么s是t的远程STAR邻居,而且反过来也如此。此外,如果s是t的祖先,那么s就是t的唯一远程STAR祖先邻居。今后,网桥t的远程STAR祖先邻居将被称作dsan(t)。远程STAR邻居n的集合就用N’B(n)表示。
x和y的最近公共祖先就是x和y之间的树路径上的最高层网桥。如果x是y的祖先,那么x就必须是x和y的最近公共祖先。令nca(x,y)表示x和y的共同祖先。如果nca(x,y)≠x,并且nca(x,y)≠y,我们就可以说x和y位于不同的分支。如果x和y位于不同的分支,我们就把(x,y)∈E\ET称作交叉链路。那么x和y就是交叉链路邻居。图10就是一个桥接局域网无向图的范例。节点r为根节点。实线就是ET中的交叉链路,而虚线是非树链路。Link(u,q)是非树链路但不是一个交叉链路,而(w,y),(u’,v)和(v’,z)都是交叉链路。因此,u和q是直接邻居,但是既不是树邻居也不是交叉链路邻居。他们都是远程STAR邻居,因为路径u→y→q是一个旧网桥树路径。表1中概括了不同类型邻居的定义。
邻居类型 定义
直接邻居 x,y∈V,(x,y)∈E
树邻居 x,y∈V,(x,y)∈ET
交叉链路邻居 x,y∈V,(x,y)∈EET并且nca(x,y)≠x,nca(x,y)≠y
直接STAR邻居 x,y∈B,(x,y)∈E
远程STAR邻居 x,y∈B,treepath(x,y)是一个旧网桥树路径
表1:邻居类型
因为旧网桥将与其每个非树链路相连的端口都设为阻塞状态,树链路所以即使链路的另外一端为STAR网桥,也没有办法利用任何一个这样的链路去转发数据帧。因此,只有当非树链路与两个STAR网桥相连的时候,才能使用非树链路。即使如此,这样的链路也不支持任何一个最短路径。一个非树链路不能使用还有其它的原因。考虑图10,两个网桥u和q都是STAR网桥。位于它们之间的这个非树链路是没有用的,因为这个链路的距离必定比从u到q的树路径的距离大;否则,生成树算法将把q设定为u的孩子。在图10中,(u,q)和(w,y)都是不符合要求的链路。如同刚才描述的那样,一个明显无益于支持任何一个最短路径的非树链路被称作不合格链路。否则,非树链路就被称作合格链路。在图10中,(u’,v)和(v’,z)都是合格交叉链路。
STAR网桥图被定义为GB=(B,EB),其中,B是STAR网桥的集合,当且仅当x和y都是直接或者远程STAR邻居时,(x,y)∈EB,以下公式对link(x,y)的消耗进行了定义。
Figure A0380007800311
图10的STAR网桥图显示在图11中。
III.路径查找进程
本进程的目的就是要计算BF表。在最好的情况下,BF表中包括了与STAR网桥的最短路径的下一跳和转发端口关联的信息。STAR网桥图包括了STAR网桥之间的全部三个数形路径和原始桥接局域网中所有符合要求的非树链路。因此,修剪掉不合格的链路后,在GB中位于一对STAR之间的网桥x和y之间的最短路径将是桥接局域网中能够得到的最佳路径。理想的情况是,如果能够对每个c’(x,y)进行正确计算,那么每个STAR网桥就能够在距离向量的基础上计算它自己的BF表。但是,我们仍将使用距离向量方法来更新BF表,除非需要进行下面讲述到的一些修改。
在传统的距离向量更新协议中,每个节点都要用它与所有的邻居的距离来对距离向量进行初始化。然后将距离向量发送给每一个邻居。当邻居接收到距离向量时,如果发现了任何一个更短的路径,邻居就将更新它自己的距离向量。这个邻居然后将它的更新值发送到它所有的邻居。这个过程将一直进行直到算法收敛。
由于在桥接局域网中有旧网桥和STAR网桥,传统的距离向量更新协议就不能直接应用。每个网桥仅知道到它的直接邻居的长度。如果x和y是远程STAR邻居,x和y都不知道dT(x,y),因为在它们之间有一个或者更多旧网桥。因此,如果y是一个远程STAR邻居,网桥x∈B就必须确定dT(x,y)。遗憾的是,由于旧网桥的限制,STAR网桥不能正确确定每一个距离。但是,还是可以对距离进行估算,使估算的距离至少成为与实际距离相当的距离。
推荐协议中的路径查找进程有两个过程组成:
■距离向量估算
■距离向量增强
在这些过程中,STAR网桥利用距离向量计算SBPDUs来进行通信。在距离向量估算过程中,每个STAR网桥把它与桥接局域网的STAR网桥图中的邻居的距离进行初始化。它包括发现STAR邻居的距离并像上面描述的那样计算树路径的距离。距离向量增强过程接在距离向量估算进程后面,在距离向量增强过程中,STAR网桥交换它们的距离向量,发现其它非邻近STAR网桥,并查找通往它们的最短路径。
在这个过程中,一个STAR网桥n只为网桥n所知道的其它STAR网桥保存距离向量。当有未知的STAR网桥在算法过程中被n发现,就会在n为每个新发现的STAR网桥保存的距离向量中建立一个新的条目。当这个过程结束,n就应当发现所有其它STAR网桥,它的距离向量将由一个条目组成,这个条目将用于每个STAR网桥n’∈B\{n}。网桥n的距离向量的每个条目都由7个字段的元组所组成。和网桥n的距离向量中的n’相关联的条目被记作DVT(n,n’)。如同表2中归纳的那样,包含在DVT(n,n’)中的信息提供了n和n’之间的估算距离,以显示估算的距离是否准确,并使STAR网桥n知道它到网桥n’的转发端口,它在通往网桥n’的转发路径上的下一跳上的STAR网桥邻居,显示了转发路径是否是一个树路径,以及网桥n’是一个祖先还是一个后代。顺便提及,d(n,n’)是当前估算的从网桥n到网桥n’的距离,d(n,n’)将被适当初始化,就像在III.A和III.B节中描述的那样。
字段 定义
N’ 目的地STAR网桥的ID
d(n,n’) 网桥n和n’之间估算的距离
F(n,n’) 用于n’的转发端口
next(n,n’) 从网桥n到网桥n’之间的路径上下一跳STAR网桥邻居的ID
FG_A(n,n’) 距离准确标志,如果d(n,n’)是准确的,取值为1,否则为0
FG_T(n,n’) 树路径标志,如果从n到网桥n’之间的路径是树路径,取值为1,否则为0
FG_R(n,n’) 关系标志,如果n’是n的祖先,取值为1,如果n’是n的后代,取值为-1,否则为0
表2:从n到n’路径的DVT(n,n’)中的字段
III.A.距离向量估算
在DV估算过程中,一个STAR网桥n发现它所有的直接和远程STAR邻居,也就是,在STAR网桥n的距离向量字段中都为每个STAR网桥n’∈B\{n},其中(n,n’)  ∈EB。在距离向量估算过程中有两个阶段。在第一阶段,如果n’是一个远程STAR邻居而且网桥n在DVT(n,n’)中为n’填写了条目,那么STAR网桥n就要估算dT(n,n’)。注意在这个阶段d(n,n’)等于估算的dT(n,n’)。在第二阶段,如果k∈NB(n),网桥n就要为k确定并填写条目。如果k是n的远程STAR邻居,于是n就要用c(n,k)和其它相应字段来替换d(n,k),只要它适当。后面将对这个阶段进行讨论。
在生成树算法启动之前,每个网桥,不论旧网桥还是STAR网桥都将知道它自己的ID以及它到桥接局域网上的直接邻居的链路消耗。树建立完毕以后,每个网桥k也将知道它自己的树链路,以及根网桥和根路径距离,dr(k),其中网桥r是根网桥。顺便提及,dr(r)=0。表3是生成树计算以后,图10中网桥v的拓扑信息。Old/STAR栏是由STAR网桥获得的信息,而其它栏的信息是由所有的网桥,即旧网桥或者STAR网桥获得的。
    网桥     类型     距离     P(V)     Old/STAR
    r     根     Dr(v)     Pr(v)     N/A
    x     父代     C(v,x)     P(v,x)     Old
    u′     非数邻居     C(v,u’)     P(v,u’)     STAR
表3:网桥v的拓扑数据库
在第一阶段有三种类型的DVC_SBPDU帧——DVMyInfo、DVOurInfo、DVInform帧。表4显示了这三幅帧的格式。STAR网桥利用DVMyInfo帧把它自己的拓扑信息通知给其它的STAR网桥。DVOurInfo帧带有与源STAR网桥和目的地STAR网桥相关的信息。DVInform帧允许STAR网桥传递其它STAR网桥的拓扑信息。DVRecprd帧主要用于距离向量增强过程,并将在III.B节中进行描述。DVC_SBPDU_Proc过程首先确定帧然后调用相应的过程。DVC_SBPDU_Proc的流程图显示在图12中。
只有当STAR网桥k的父代是一个旧网桥的时候,每个STAR网桥k发送一幅DVMyInfo(k)帧到它的根链路上,如果沿着网桥k的根路径上有STAR网桥,那么最靠近网桥k的那个网桥,比如说n,就会接收到来自子链路的DVMyInfo(k)帧。注意,n和k是远程STAR邻居。n是k的远程STAR祖先邻居,而且n=dsan(k)。网桥n能够决定k和n之间的树路径距离,其中dT(n,k)=dT(k,n)就是它们的根路径距离之差。于是,网桥n通过DVOurInfo(n,k)帧通知网桥k它们之间的距离,并停止转发DVMyInfo(k)帧。在这种情况下,网桥n和网桥k位于相同的分支上,但是网桥n是网桥k的祖先。如果STAR网桥位于不同的分支上,像图10中的v和v’,而且在它们之间的树路径上没有STAR网桥,那么,由于DVMyInfo帧是一个要发送到所有STAR网桥的多播帧,v’将接收到v的DVMyInfo(v)帧,反过来也是这样。但是,它们不能只利用根路径距离来计算它们之间的实际树路径距离。在网桥v和v’的这种情况下,如果它们知道他们有相同的父代,他们就能够确定准确的树路径距离。因此,DVMyInfo(v)帧也包括网桥v的父代的信息。当v和v’通过一个根链路接收到各自的DVMyInfo帧,并发现它们是兄弟网桥,通过将c(v,parent(v))和c(v’,parent(v’))相加,它们就可以准确地计算它们之间的距离。
SPPDU帧 格式 源端 目的地
DVMyInfo(n) <n,dr(n),parent(n),c(n,parent(n))>其中parent(n)∈VB n∈B B的多播地址
DVOurInfo(n,n’) <n,n’d(n,n’),cb(n,n’),c(n,eh(n,n’))>其中n’∈B,且cb(n,n’)∈VB n∈B n′∈B
DVInform(n,n’) <n,n’,d(n,n’)>其中n’∈B{n} n∈B k∈B{n}且k∈NB’(n)
DVRecord(n,n’) <n,n’d(n,n’),FG_A(n,n’),FG_T(n,n’),FG_R(n,n’)>其中n’∈B{n} n∈B k∈B{n,n’}且k∈NB’(n)
表4:DVC SBPDU帧的格式
图13中显示了一个不能计算出正确距离的范例。但是,如果简单的将dT(k,n)和dT(k,j)相加,网桥n和j可能会将它们之间的距离估算得过长。它可以通过要求网桥k利用一幅DVInform(k,j)帧发送信息dT(k,j)来完成,网桥k是远程STAR祖先邻居。如果n也知道c(k,m),其中网桥m是网桥k在通往网桥n的路径上的子代,那么它就可以得到更好的计算结果。因此,m和c(k,m)被网桥k在一幅DVOurInfo(k,n)帧中发送。注意,m∈V\B。我们用cb(k,n)来表示网桥k在从k连到n的树路径上的子代。让网桥n使用dsanc(n)来记录cb(k,n),dsan(n)的子代,以及dcc(n),cb(k,n)和dsan(n)的子代以及dcc(n)用来表示在cb(k,n)和k之间链路的双倍计算消耗。在这种情况下,分别将dsanc(n)和dcc(n)设置成cb(k,n)和c(k,dsanc(n))上。
一旦接收到来自树端口p的DVMyInfo(k)帧<k,d,n’,c>,一个STAR网桥self就利用它的根路径距离dr(n),就像在伪代码1中一样处理帧。图14中显示了与伪代码1(DVMyInfo_Proc)相对应的流程图。当p是一个子端口的时候,k就是self的后代,而self就可以计算它们之间的树路径距离并通知k。当p是一个根端口的时候,在处理DVMyInfo帧的过程中有两种关注的情况。在案例1.1中,网桥self和k是弟兄关系,它们有一个共同的父代旧网桥。在案例1.2中,self和k位于不同的分支上,但是它们不是弟兄关系,在这种情况下计算的距离d(self,k)就可能是错误的。只有当self和k最近的共同祖先是根网桥的时候,才是正确的。
如果n和k有一个STAR共同祖先n’,网桥n能够在网桥n接收到来自n’的DVOurInfo(n’,n)和DVInform(n’,k)帧的时候,对d(n,k)作出更好的估算。STAR网桥self就像在伪代码2中一样对DVOurInfo帧<n’,k,m,c>进行处理。图15显示了与伪代码2(DVOurInfo_Proc)相对应的流程图。
每个STAR网桥n最多接收一幅DVOurInfo(n’,n)帧,而且这个帧必须发送自dsan(n),就是网桥n’。在伪代码2中,当self≠k时,帧DVOurInfo(n’,k)就要被撤消,因为帧的接受者就是self,而且沿着从self到网桥n’的路径上,再也没有其它的STAR网桥了。在伪代码1中,DVOurInfo(n’,n)帧要在发送任何一个DVInform帧之前发送出去。由于DVInform帧不会传播到超出它的远程STAR邻居,而且网桥也不会记录帧,我们能够计算出,网桥n在接收到由网桥n’发送的任何一个DVInform帧之前就会接收到DVOurInfo(n’,n)帧。因此,当网桥n接收到DVOurInfo(n’,j)帧<n’,j,d>时,它已经正确的指定了dsanc(n)和dcc(n)。当接收到的DVInform(k,j)帧<k,j,d>时要执行的网桥self的伪代码显示在伪代码3中。图16显示了与伪代码3相对应的流程图。
STAR网桥self根据以下不同的情况处理DVInform(k,j)帧<k,j,d>:
■情况3.1:self=j,即k正在通知self它们之间的距离。
■情况3.2:self≠j,而且,d(self,k)或者d(self,j)未知。
■情况3.3:self≠j,d(self,j)进行了估算
  ο情况3.3a:Parent(self)=dsanc(self)
  ο情况3.3b:Parent(self)≠dsanc(self)
■情况3.4:self≠j,d(self,k)已知,而且d(self,j)精确。
如果d(self,j)精确,网桥self就不用做任何事情了。在情况3.3中,当FG_A(n,j)=0时,它意味着d(self,j)是估算值,所以可以得到一个更好的估算值。情况3.3a为dsanc(self)是self和j的最近共同祖先时的一种情况。结果就是,self能够正确地计算距离。因为网桥j不能这样做(见图13),self不得不通过DVInform(self,j)帧通知网桥j。在情况3.1中,当j接收到那个距离时,它能够提高距离。情况3.3b就是这样一种情况,即不能找到精确距离,但是通过扣除双倍计算消耗dcc(n)就可以改善估算距离。因为DVInform帧是在DVOurInfo和DVMyInfo帧之后被发送的,所以只有当有错误的时候才会出现情况3.2。
第一阶段最终必须结束。当它结束的时候,网桥n应当对每个远程STAR邻居n’都有了一个正确的或者过高估算的dT(n,n’)。我们于是进入到第二阶段,那就是,如果k是n的直接STAR邻居,那么每个STAR网桥n将填写DVT(n,k)。如果k是一个树邻居,网桥n应当从拓扑数据库中知道c(n,k),如果k是父代而且它就可以将条目DVT(n,k)初始化为(c(n,k),p(n,k),k,1,1,1),如果k是子代,它就可以将条目DVT(n,k)初始化为(c(n,k),p(n,k),k,1,1,-1)。如果k是一个交叉链路邻居,就会有两种情况。如果k不是一个远程STAR邻居,网桥n还没有DVT(n,k),所以就可以将它初始化为(c(n,k),p(n,k),k,1,0,0)。另外一方面,如果k又是一个远程STAR邻居,如果可能就应当把d(n,k)指定为min(dT(n,k),c(n,k))以及其它相应的字段。如果估算的dT(n,k)确实正确,那就是,如果FG_A(n,k)=1,这个阶段就没有什么意义了。糟糕的是,dT(n,k)有可能不正确。因为我们不能肯定直接链路(n,k)是否比从n到k的树路径短,所以dT(n,k)不会被替换掉,以避免选择一条其距离比相应的树路径大的链路。这同样适用于距离向量被增强的任何一个时候。当一对STAR网桥之间的树路径距离仅仅是估算的时候,树路径不会被它们之间的非树路径替换。因此,当距离向量变得稳定的时候,对于所有网桥n,d(n,n’)≤dT(n,n’),n’∈B所以n≠n’。
过程:DVMyInfo_Proc(k,d,n’c,p),参见图14。
    Begin

    Ifp=pr(self)             /*p是根端口,self和k位于不同的分支上*/

        Ifparent(self)=n’   /*情况1.1:self和k是弟兄关系*/

           d(self,k):=c(self,n’)+c;

           FG_A(self,k):=1

                              /*情况1.2:self和k不是弟兄关系*/

    Else

           d(self,k):=dr(self)+d;    /*过高估算(self,k)*/

           FG_A(self,k):=0

    Endif

    F(self,k):=p;

    next(self,k)=k;

    FG_T(self,k):=1;

    FG_R(self,k):=0;
				
				<dp n="d29"/>
Else                    /*p是一个子链路端口,即,self是k的祖先*/

    DVT(self,k):=(d-dr(self),p,k,1,1-1);
Send DVOurInfo(self,k)frame to k

    <self,k,d(self,k),cb(self,k),c(self,cb(self,k))>
For each bridge j where F(self,j)=F(self,k)

                       /*j和k来自于相同的子端口*/
Send to j DVInform(self,k)frame

    <self,k,d(self,k)>
Send to k DVInform(self,j)frame

    <self,j,d(self,j)>
endif
end
伪代码1:DVMyInfo_Proc
过程:DVOurInfo_Proc(n’,k,d,m,c),参见图15
Begin
If self≠k         /*错误*/

    Drop the frame
Else

    d(self,n’):=d;

    F(self,n’):=pr(self);

    next(self,n’):=n’;

    FG_A(self,n’):=1;

    FG_T(self,n’):=1;

    FG_R(self,n’):=1;
    dsane(self):=m;

    dcc(self):=c
  endif
end
伪代码2:DVOurInfo_Proc
过程:DVInform_Proc(k,j,d),参见图16。
Begin

    If j=self                                            /*情况3.1*/

       d(self,k):=d;

       FG_A(self,k):=1

    Else if d(self,k)is unknown or d(self,j)is unknown  /*情况3.2*/

       Drop the frame

    Else if FG_A(self,j)=0                               /*情况3.3*/

          If parent(self)=dsanc(self)                          /*情况3.3a*/

                d(self,j):=c(self,parent(self))+(d-dcc(self));

    FG_A(self,j):=1;

               Send DVInform frame<self,j,d(self,j)>to j

    Else                                                        /情况3.3b*/

        D(self,j):=(d(self,k)-dcc(self))+(d-dcc(self))

      Endif

     Endif

    End
伪代码3:DVInform_Proc
III.B距离向量增强
DV增强过程与传统方法中的距离向量交换过程相似,但是在已知它的准确距离时可以替换树路径这一点除外。那就是,只有当FG_A(n,n’)=1或者FG_T(n,n’)=0的情况下,距离向量中的d(n,n’)才能够被替换。另外一方面,如果从n到n’的树路径被查找到,而dT(n,n’)只是一个估算值,它就可以替换距离向量中的d(n,n’)。在DV估算过程以后,网桥n只知道它到它的树邻居和远程STAR邻居之间的正确的或者估算的树距离。为了让网桥确定通往一个以前未知的网桥的路径是否是树路径,以及树路径的距离是否准确,必须将精确标志和树路径标志放到DVRecord帧中。由网桥n发送的DVRecord(n,n’)帧格式为<n,n’,d(n,n’),FG_A(n,n’),FG_T(n,n’),FG_R(n,n’)>。伪代码4就是在接收到DVRecord(j,k)帧<j,k,d,FG_A,FG_T,FG_R>时,STAR网桥self的DV增强过程。图17显示了与伪代码4相对应的流程图(DVRecord_Proc)。
在伪代码4中,当从self连接到j的路径以及从j连接到K的路径都是树路径的时候,从self经j连接到k的路径也一定是树路径。这就是情况4.1。FG_R(self,k)标志被相应更新,并且树路径的信息被发送到其它的STAR邻居,使其它STAR树邻居发现连接到k的树路径。如果树路径的距离是估算值,它总是要替换现有的DVT(self,k);否则,只有当它在距离更佳时才进行替换。情况4.2是发现非树路径的情况。如果现有的DVT(self,k)不是估算的树路径,则如果最新发现的路径更短,它就可以被替换。当算法收敛以后,距离向量可以被归纳到BF表格中。网桥n必须为每个网桥n’∈B\{n}保存F(n,n’)和next(n,n’),以用作转发之目的。在BF表中位于一对STAR网桥之间的路径被称作STAR转发路径。注意当STAR转发路径能被识别的时候,STAR转发路径可以是标准树路径,或者是增强转发路径。
过程:DVRecord Proc(j,k,d,FG_A,FG_T,FG_R),同样参见图17。
    Begin

       Ifk is unknown                                     /*k是新发现的*/

          DVT(self,k):=(∞,pr(self),j,0,0,0)  /*对DVT(self,k)初始化*/

    Endif

    IfFG_T(self,j)=1 and FG_T=1                       /*情况4.1:发现到网桥k的树路径*/

        If FG_R(self,j):=1 and FG=I                  /*k是self的一个祖先)*/

                  FG_R(self,k):=1

    Else if FG_R(self,j)=-1 and FG_R=-1/*k是self的一个后代*/

            FG_R(self,k):=-1

    endif

    If FG_A(self,j)=0 or FG_A=0/*树路径距离是一个估算值*/
				
				<dp n="d32"/>
            FG:=0

           DVT(self,k):=(d(self,j)+d,F(self,j),j,0,1,FG_R(self,k))

        Else

            FG:=1

        Endif

        Send DVRecord<self,k,d(self,j)+d,FG,1,FG_R(self,k)>

       to all STAR neighbors except j

        Ifd(self,j)+d<d(self,k)  /*树路径距离正确且更佳*/

          DVT(self,k):=(d(self,j)+d,F(seljf,),j,1,1,FG_R(self,k))

         Endif

    Else                            /*情况4.2:发现一个非树路径*/

       If FG_A(self,k)=1 or FG_T(self,k)=0  /*可以替换原始路径*/

          Ifd(self,j)+d<d(self,k)

            DVT(self,k):=(d(self,j)+d,F(self,j),j,1,0,FG_R(self,k))

            Send DVRecord<self,k,d(self,k),1,0,FG_R(self,k)>to

            all STAR neighbors except j

          Endif

        Endif

      Endif

    End
伪代码4:DVRecord_Proc
IV.STAR学习进程
当路径查找进程完成,STAR网桥应当已经填写完毕BF表。然后启动STAR学习进程和STAR转发进程以转发数据帧。单是BF表还不足以转发一幅数据帧,因为数据帧包含了一个终端站的地址,而没有包含网桥的地址。因此,STAR学习进程必须学到终端站的地址并存储信息。ESL表用来将终端站映射到STAR网桥上。
IV.A指定的网桥和代理网桥
每个局域网都有一个指定的网桥,而且这个网桥也是连接到那个局域网的所有终端站的指定网桥。一个终端站s的指定网桥用db(s)表示。一个指定网桥可以是一个旧网桥,也可以是一个STAR网桥。
当距离向量正确时,如果能够将一个终端站映射到它“最近”的STAR网桥上,网桥将按照STAR转发路径来转发帧。这个“最近”的网桥被称作终端站的代理网桥。这个代理网桥必须是一个STAR网桥,因为BF表只包含STAR网桥。一旦一个STAR网桥把它自己确定为以前未知的一个终端站的代理网桥,它就负责告诉其它的网桥,使它们都知道发往那个终端站的帧要转发到什么位置。使用终端站位置通告帧SBPDU就可以做到这一点。为了方便,我们把位置通告帧SBPDU称作StationLoc帧。所有StationLoc frame的目的地地址都是网桥组B的多播地址。使StationLoc帧的格式为<end station address,agent bridge ID>。表达式ESL(n,s)代表了网桥ESL表中的ab(s)。
如果指定网桥是一个STAR网桥,那么指定网桥就是成为代理网桥最适当的候选网桥。如果指定网桥是一个STAR网桥,它就可以宣布自己是一个代理网桥。但是,一个旧网桥就不能那样做。结果就是,我们需要查找到相当靠近终端站的旧网桥和指定网桥的STAR网桥来做代理网桥。当一个旧网桥转发一幅数据帧的时候,它可以将数据帧发送到一个以上的子链路,但是最多只发送到一个根链路上。因此,就不需要在下游设一个STAR网桥来做代理网桥,因为设有超过一个的代理网桥我们就会停下来。在沿上流布置的所有STAR网桥中,优选最靠近旧网桥的那个网桥。但是,也有不能确定代理网桥的情况。比如,如果指定网桥是一个旧的根网桥,所有的STAR网桥都将在下游,所以就没有网桥宣布是代理网桥。在这种情况下,就利用树路径来进行转发,我们将转发端口记录在FD中,就像旧网桥做的那样。如果没有网桥宣布为代理网桥,我们就说没有为一个终端站定义代理网桥。换言之,代理网桥对于所有STAR网桥都是未知的。
IV.B终端站位置表
STAR网桥n的ESL表格中的每个条目都是元组(s,ab(s)),其中s是一个终端站,而ab(s)是s的代理网桥。当一个未知终端站刚被网桥n发现的时候,网桥n的ESL表格中每一个这样的条目就建立了。位于STAR网桥n的FD中的每个条目都为一个终端站s指出了一个n的转发端口,那就是f(n,s)。当一个未知终端站刚被n发现的时候,网桥n的FD中的每一个这样的条目就建立了。
STAR网桥的STAR学习进程负责填写这些条目。STAR网桥n利用在StationLoc帧中接收到的信息来填写ESL表。FD可以像在IEEE802.1D标准中那样填写,在那种情况下,网桥n记录传来正常数据帧的端口。网桥n的ESL表中的终端站集合记作H(n),而网桥n的FD中的终端站集合记作S(n)。如果s∈H(n)∪S(n),那么终端站s就被称作是对于n已知终端站;否则,就是未知的。注意,当FD中的旧条目超时后,H(n)∩S(n)就是每个终端站的代理网桥都是n的终端站的集合。除了要填写ESL表和FD,当一幅来自s的正常数据帧被收到后,n应当能够确定它是否是一个终端站s的代理网桥。
IV.C用于STAR学习进程的过程
无论何时,只要STAR网桥处于增强状态,它就要执行STAR学习进程。网桥接收到一幅StationLoc帧,就调用SLA_SBPDU_Proc过程,而接收到一幅正常数据帧,就调用DF_STAR_Learning_Proc过程。这些过程的伪代码都分别显示在伪代码5和伪代码中。在这两种伪代码中,不论何时ESL或者FD中的一个条目被更新了或者建立了,都要复位它相应的定时器。图18和图19显示了分别与伪代码5和伪代码6相对应的流程图。
SLA_SBPDU_Proc过程被一个STAR网桥用来更新它的ESL表,并将代理网桥的信息传播给它的STAR邻居。特别地,当从树端口p接收到一幅StationLoc(s)帧<s,k>,一个STAR网桥self将k分配给ESL(self,s),k是s的代理网桥,然后将StationLoc(s)从它所有的树端口转发出去,树端口P除外。
一旦接收到一幅正常数据帧fr,一个STAR网桥就利用DF_STAR_Learning_Proc过程来更新它的FD和ESL表。这个过程也被STAR网桥用来确定它是否是src(fr)的一个代理网桥,如果是,则STAR网桥将StationLoc(src(fr))从适当的树端口转发出去。
如伪代码6中说明的那样,当self是指定的网桥,但是不是源端站s的代理网桥的时候(情况6.1),它将一幅StationLoc(s)帧发送到所有的树端口上,并且为s更新FD条目和ESL表条目。如果ab(s)未知(情况6.2),self必须检查它是不是ab(s)。如果ab(s)≠db(s),那么ab(s)是最近的上游STAR网桥,所以ab(s)必须接收从一个子链路端口发来的s的正常数据帧(情况6.2a)。代理网桥将在所有的树端口上发送StationLoc(s)帧。因此,这些处于生成树更高级别的STAR网桥将在接收到正常数据帧之前接收到StationLoc(s)帧。当它们接收到正常数据帧时,它们应当在它们的ESL表中有一个条目,并且不会发送出另外的StationLoc(s)帧。
过程:SLA_SBPDU_Proc(s,k,p),参见图9
Begin
      ESL(self,s):=k                       /*填写ESL表*/
      Send StationLoc(s)frame on all tree ports except p
End
伪代码5:SLA_SBPDU_Proc
过程:DF_STAR_Learning_Proc(fr,p),参见图18
    /*fr是一幅正常数据帧*/
      Begin

        s:=src(fr)

        If db(s)=self and ab(s)≠self  /*情况6.1:self是指定网桥,当前代理网

    桥不是self*/

            Send StationLoc(s)<s,self>frame on all tree ports

            f(self,s):=p;

            ESL(self,s):=self

        Else ifab(s)is not found    /*情况6.2:代理网桥未知*/

            Ifp is a child port        /*情况6.2a:p是一个子链路端口*/

                Send stationLoc(s)<s,self>frame on all tree ports

                f(self,s):=p;

                ESL(self,s):=self

            Else if p is a root port

                F(self,s):=p

    End
伪代码:DF_STAR_Learning_Proc
V.STAR转发进程
当一幅数据帧被接收时,STAR网桥在STAR学习进程之后执行STAR转发进程。接收到发往终端站t的一幅数据帧,一个STAR网桥n首先检查它的ESL表,以确定它是否知道ab(t),t的代理网桥。如果发现了ab(t),n将从它的BF表中发现ab(t)的转发端口。如果在BF表中没有发现ab(t)的条目,该数据帧将被撤消,因为它表明了在BF表中的一个错误。因为代理网桥是一个STAR网桥,BF表应当有一个记录显示怎样到达那里。如果ab(t)未知,n将检查它的FD。如果终端站t未知,STAR网桥n将在所有的树端口转发数据帧,发来帧的那个端口除外,正如IEEE 802.1D标准一样。
V.A帧重复问题
在IEEE802.1D标准中,虽然一个网桥可以在一个以上端口中转发相同的帧,但是只有一个端口能够通往目的地和目的地的指定网桥,因为在一个生成树上,从任何一个源地址到任何一个目的地都只有一个唯一的路径。因此,一个旧网桥不可能收到相同的数据帧一次以上。由于STAR网桥图可能不是树形,两个STAR网桥可能会收到相同的数据帧,并设法使用不同的路径将它转发到目的地。比如,假定在图10中,目的站连接到u’,而源端站连接到x。如果x将数据帧的一个备份转发到w,一个备份转发到v,u’可能接收到相同数据帧的两个备份,一个来自w一个来自v。在这种情况下,STAR桥接协议通过只允许s的代理网桥w利用一个增强的转发路径来转发帧,从而避免这种情况的出现。因为代理网桥是唯一的,所以最多只有一个帧会发送到目的地。
V.B帧撤消问题
另一个问题是由于旧网桥的存在而出现的。虽然STAR网桥在了解目的地的位置后就知道如何在增强路径上转发一幅帧,但是旧网桥不能。在有些情况下,旧网桥将撤消一幅试图通过的帧。在图10中,网桥w,x,和v’都位于相同的分支上,而且在v’和z之间有一交叉链路。令z为终端站s1的指定网桥。由于x和z位于不同的分支,在x的FD中,它把根端口标记为s1的转发端口。然而,如果w想发送一幅帧到s1,并且发现到z的最短路径将通过v’,它就要把带有目的地地址s1的帧发送到x。因为帧来自于转发方向,所以将被x撤消。为了解决这个问题,我们将用适当的代理目的地地址来封装正常的数据帧,使得x把帧转发给v’,而不是像在I.E.节中的其它方向。只有当数据帧正在一个树路径上转发时,一个旧网桥才会撤消一幅数据帧。它也意味着帧正在试图通过两个STAR网桥之间的一个旧网桥树路径,从一个STAR网桥走到另外一个网桥。如果一幅帧的目的地地址就是下一跳网桥的MAC地址,沿树路径的所有旧网桥都将像希望的那样把帧转发到下一跳。在本例中,w把v’的MAC地址作为一个代理目的地地址来封装帧,使x一旦接收到封装的帧,就将把帧转发给v’,而不会撤消它。通常,当下一跳STAR网桥不是树邻居时,发送端STAR网桥将封装数据帧。由于封装的数据帧使用发送端STAR网桥MAC地址作为源地址,所以旧网桥将知道到发送端STAR网桥的转发方向。在这一方面,不需要附加的控制信息就可以使旧网桥学习通往任一STAR网桥的转发方向。
BA表被用来记录所有远程STAR邻居的MAC地址。因为STAR网桥n把它的MAC地址作为它发送的DVMyInfo和DVOurInfo帧的源地址,所以我们不需要另外的SBPDU帧来填写这个表。
V.D冗余遍历问题
在第V.B节中描述的封装方法可以防止一个指定的旧网桥识别传到它这里来的正常数据帧。参考图10中的配置,让终端站s连接到旧网桥x。根据所述协议,STAR网桥w将宣布它自己做s的代理网桥,所以所有发到s的帧都要被转发,好像它们是被发送到w。假定s1想要发送一幅帧到s。STAR网桥z,就是db(s1)将通过一个交叉链路将该帧转发到v’。因为通往一个STAR网桥的下一跳是w,并且它位于一个树路径上,v’将利用w作为一个代理地址来封装帧。当旧网桥x接收到帧时,它将认为这不是一个发给它自己的帧,并将它转发到代理地址w。当w接收到该帧时,就将剥去该帧的封装首部,然后把正常数据帧发送回x。于是x就可以识别帧并把它发送到目的站。因此,数据帧遍历从指定网桥到代理网桥并返回到指定网桥的冗余路径。在源端站的代理网桥ab(s)和目的站的代理网桥ab(t)位于不同分支的情况下,在后面的第VII.C.节,我们将显示遍历的总距离并不比相应的树路径糟糕。但是,当ab(s)和ab(t)位于相同的分支时,遍历的总距离可能比树路径长。在这种情况下我们通过不对正常数据帧进行封装来避免出现这种情况。为了让下一跳STAR网桥知道是否想要在一个增强转发路径或者一个树路径上转发一幅帧,代理网桥总是要封装将要在一个增强转发路径上进行转发的帧。
V.E用于STAR转发进程的过程
为了避免不必要的帧撤消,STAR网桥n将封装一幅正常数据帧,就像在第I.E.节讨论的那样。在封装的数据帧中,n的MAC地址被用做源地址,而下一跳STAR网桥的地址被用做目的地地址。对于特定的一幅帧,如果它是一个正常数据帧,则frsrc(fr)和dst(fr)fr就分别是源终端站地址和目的地站地址。如果fr是一幅封装数据帧,它一定是被一个STAR网桥封装的,而且这个STAR网桥的地址是src(fr),dst(fr)则是预计的STAR网桥接受者的地址。我们把encap(fr,srcbridge,dstbridge)作为一个正常数据帧fr的封状数据帧,其中srcbridge和dstbridge分别是与封装帧相关的源地址和目的地地址。我们用uncap(fr)来代表将封装数据帧fr加在其净荷中的正常数据帧。伪代码7代表用于从FD中发现信息的FD_Search过程。伪代码8代表用于从ESL表中发现信息的ESL_Search过程。在本节所有的伪代码中,self是执行该进程的STAR网桥,p是数据帧的接收端口,s是源终端站的,t是目的站,而pld一幅正常数据帧的净荷部分。图19和图20分别显示了与伪代码7和伪代码8相关的流程图。
在伪代码8(ESL_Search_Proc(s,t,pld,p))中,当终端站t的代理网桥没有显示的时候(情况8.1)。这是一个错误的情况,帧将被撤消。这是一个错误,因为只有当self知道ab(t)被定义(情况9.2)或者有些封装帧的STAR网桥知道ab(t)的时候(情况9.1),TDF_STAR_Forwarding_Prc才调用ESL_Search_Proc。当self自己就是t的代理网桥时(情况8.2),它将帧发送到引到t的转发端口。在情况8.3中,代理网桥是另一STAR网桥。在这种情况下,BF表将给出转发端口和下一跳的信息。如果不是,就存在错误,帧被撤消。
伪代码9是网桥self的全新转发过程。图22显示了与伪代码9相关的流程图。当数据帧被封装时,它一定发送自其它的STAR网桥n’,在它的ESL表和BF表中含有ab(t)信息。因此,self将搜索它的ESL表以转发帧。另外一方面,当数据帧没有被封装的时候,有几种情况出现。如果ab(t)未知(情况9.2a),self当然将查看FD。情况9.2b和情况9.2c都是ab(t)为已知的情况。在情况9.2b中,self是源端站的代理网桥。在这种情况下,当ab(t)和ab(s)位于同一分支,就像在V.C节中解释的那样正常数据帧将不会被封装。在情况9.2c中,由于在V.A节中讨论过的帧重复问题,我们不会搜索ESL表。在这种情况下,只能使用一个树路径来转发数据帧。图8和图21显示了分别根据STAR桥接协议和IEEE 802.1D生成树协议,处理一幅数据帧的过程。
过程:FD_Search_Proc(s,t,pld,p),参见图19
    Begin

      If f(self,t)is not found            /*情况7.1:终端站t未知*/

          Send data frame<s,t,pld>on all tree ports except p

          Else if f(self,t)=p               /*情况7.2:转发端口是进入端

          口*/

          Drop the frame

      Else

          Send data frame<s,t,pld>on f(self,t)

      Endif

  End
伪代码7:FD_Search_Proc
过程:ESL_Search_Proc(s,t,pld,p),参见图20
    Begin

        if ESL(self,t)is not found              /*情况8.1:错误*/

            Drop the frame

        Else ifESL(self,t)=self            /*情况8.2:ab(t)=self*/

            Send data frame<s,t,pld>on f(self,t)
				
				<dp n="d41"/>
    Else                    /*情况8.3:ab(t)is known and ab(t)≠self*/

        a:=ab(t)

        If F(self,a)is not found or next(self,a)is not found/*情况8.3a:错

        误*/

            drop the frame

        Else                         /*情况8.3b:需要封装*/

            Send data frame encap(<s,t,pld>,addr(self0,addr(next

            (self,a)))

        on F(self,a)

        Endif

    Endif
End
伪代码8:ESL_Search_Proc
过程:DF_STAR_Forwarding_Proc(fr,p),参见图22
Begin

    If fr is encapsulated       /*情况9.1:fr是一个封装帧*/

        s:=src(uncap(fr))

        t:=dst(uncap(fr))

        pload:=pld(uncap(fr))

        If dst(fr)≠addr(self)       /*self不是代理目的地*/

            Drop the frame

        Else

            ESL_Search_Proc(s,t,pload)

        Endif

    Else                             /*情况9.2:fr未封装*/

        s:=src(fr)

        r:=dst(fr)

        pload:=pld(fr)
				
				<dp n="d42"/>
         ifESL(self,t)is not found               /*情况9.2a:ab(t)未知*/

            FD_Search_Proc(s,t,pload,p)

         Else if ESL(self,s)=self               /*情况9.2b:a b(s)=self*/

            If ESL(self,t)=self                        /*ab(s)=ab(t)*/

                FD_Search_Proc(s,t,pload,p)

            If FG_R(self,ESL(self,t)=1       /*ab(t)是ab(s)的一个祖先*/

                FD_Search_Proc(s,t,pload,p)

            Else if FG_R(self,ESL(self,t))=-1    /*ab(t)是ab(s)的一个后

            代*/

                FD_Search_Proc(s,t,pload,p)

            Else                                    /*ab(t)和ab(s)位于不同

    的分支*/

                ESL Search Proc(s,t,pload)

            Else            /*情况9.2c:ab(s)未知或者ab(s)≠self*/

                FD_Search_Proc(s,t,pload,p)

            Endif

        Endif

    End
伪代码9:DF_STAR_Forwarding_Proc
VI更新
在IEEE 802.1D标准中,根网桥周期性的发送一个BPDU信息以更新生成树。当一个网桥检测到一个拓扑改变,它就发送一个拓扑改变通知BPDU帧通知其它网桥重新计算生成树。终端站信息通过一个超时机制来进行更新。FD中的每个条目都指定了一个定时器,当定时器的时间期满,信息就被忘掉。
STAR桥接协议将拓扑信息保存在BF表中,这个表建立在生成树和合格的交叉链路上。因此,如果树变化或者任何交叉链路发生变化,BF表格必须进行重新计算。检测生成树任何变化的过程可以在上述的标准中得到。当生成树又变稳定以后,BF表就要被重新计算。检测交叉链路故障的机制在第I.F.节中进行了描述。当一个交叉链路失效时,STAR网桥回到树学习完毕状态。同时,STAR网桥执行标准转发进程和标准学习进程,而不是执行新的进程去转发数据帧。
在STAR桥接协议中,到达终端站所需要的信息保存在ESL表和FD中。它们都以跟旧网桥中的FD一样的方式超时中断。这是非常必要的,因为没有网桥能够检测到终端站的再定位。因为网桥的地址不会频繁变化,BA表不需要设置超时。
VII性能
在这一节中,我们要分析存储、消息的复杂性、以及STAR桥接协议的路径长度。
VII.A存储
每个旧网桥都仅保存一个表以进行转发,这个表就是FD。每个已知的终端站都需要建立一个条目。因此,需要的空间就是O(|M|),其中M是扩展局域网中所有终端站的集合。除了FD,在每个STAR网桥中还有三个新的表格:BF表、ESL表、BA表。表5就是STAR网桥n中表格的一览表。
名称 内容 需要空间
BF表 <n’,F(n,n’),next(n,n,),FG_R(n,n’)>,n’∈B{n},F(n,n’)∈P(x),next(n,n’)∈B{n} O(|B|)
ESL表 <s,ab(s)>,s∈M,ab(s)∈B O(|M|)
BA表 <n’,addr(n’)>,n’∈B{N}NB(n) O(|B|)
FD <s,f(n,s)>,s∈M,F(n,s)∈PT(x) O(|M|)
表5:在STAR网桥中的储存要求
STAR学习进程进行了一段时间后,FD中旧的条目已经被超时中断,只有当ab(s)=n时,终端站s才会出现在STAR网桥的ESL表和FD中。因此,在STAR网桥中的ESL表和FD一起所需要的总内存大约与旧网桥中需要的一样。我们需要为BF表和BA表准备另外的空间。但是,两个表的条目数最多为|B|,而|B|远比|M|小,我们可以推断在一个STAR网桥中的存储需求与旧网桥中的相当。
VII.B消息复杂性
在IEEE 802.1D标准中,周期性地发送BPDU帧以建立和维护生成树。在STAR桥接协议中引入了SBPDU帧,并在ID节中对SBPDU帧进行了描述。问候SBPDUs只在符合条件的交叉链路上转发,而且问候SBPDUs不会传播到被转发的交叉链路以外的地方去。因此,问候SBPDUs不会给树链路增添附加消息开销。当距离向量必须进行重新计算的时候才通过生成树发送发送距离向量改变通知SBPDUs。其结果是,在稳定的配置条件下,通常将没有距离向量改变通知SBPDUs产生。表6归纳了距离向量计算SBPDUs和站位置通告SBPDUs的格式。路径查找进程产生距离向量计算SBPDUs,而STAR学习进程产生站位置通告SBPDUs。
对于路径查找进程产生的每个距离向量计算SBPDU帧,在每个端口最多只有一个接受者。很明显,在这个进程中的DVRecord帧应当比其他距离向量计算SBPDU帧多。每对STAR网桥需要的DVRecord帧的数量取决于它们之间增强转发路径的长度。路径长度被限定在树的直径范围以内。生成树产生的消息数量也与树的直径有关。因此,我们可以推断由路径查找进程产生的消息数是建立生成树所需要消息数的大约|B|倍。建立BF表以后,路径查找进程将不产生任何DVRecord帧。不过,在生成树建立以后,根网桥将继续周期性地产生BPDU消息。因此,对于一个稳定的桥接局域网,由路径查找进程产生的大量消息就不能忽略。
SBPDU帧 负责处理帧的接受者 每个接受者的份数
DVMyInfo n’∈N’B(n) 1
DVOurInfo n’∈N’B(n)s,t.nca(n,n’)=n 1
DVInform n’∈N’B(n)s,t.nca(n,n’)=n |{k|k∈{N’B(n’)s.t.k和n’位于不同的分支}}|
n’∈N’B(n)s,t.nca(n,n’)≠n 当实际距离由n而不是n’计算时等于1;否则为0
DVRecord n’∈N’B(n)∪NB(n) 每个k∈B{n,n’}最多为|B|
StationLoc n’∈B{n} |{m|m∈M s.t.ab(m)=n}|
表6:用于STAR进程的SBPDU帧的一览表
在背景技术这一节中的所有算法都需要位置信息,这些算法适用于任何附加的量度。在这些算法中,每个网桥必须知道所有终端站的位置。在STAR网桥协议中,如果ab(s)被定义了,则STAR网桥只保存终端站s的位置。因此,由STAR桥接协议产生的位置信息比现有工艺中的算法产生的位置信息少。
VIIC路径长度
在本节,我们将说明STAR转发路径的长度总是小于或者等于相应树路径的长度。在以下的讨论中,我们把两个网桥x和y之间的STAR转发路径的长度记作len(x,y)。在所有与本节有关的图中,一个黑色的节点代表一个STAR网桥,一个白色的节点代表一个旧网桥,点划线代表一个树路径。我们首先建立以下引理。
引理1:
当一个STAR网桥n接收到由终端站s发起的一个正常数据帧,只有当n=ab(s)的时候,STAR网桥才封装帧。
引理1的证明
我们观察到封装只在ESL_Search_Proc过程(伪代码8)和DF_STAR_Forwardign_Proc过程(伪代码9)中进行,在这个过程中ESL_Search_Proc过程被调用。在DF_STAR_Forwarding_Proe过程中,当n接收到一幅正常数据帧时,只有当n=ab(s)的时候(情况9.2b),ESL_Search_Proc过程才能被n调用。注意如果ab(s)没有定义,则n永不等于ab(s)。
引理2:
如果帧没有被ab(s)包装,由一个终端站s发起的一幅正常数据帧总是通过一个树路径来转发。
引理2的证明:
根据ESL_Search_Proc过程中的情况8.3b,正常数据帧永不通过一个交叉链路来进行转发,除非它被封装了。根据引理1,如果正常数据帧没有被ab(s)封装,在转发旅程的剩余路段中,它将继续保持为一幅正常数据帧。根据DF_STAR_Forwarding_Proc过程中的情况9.2a和情况9.2c,如果接收到正常数据帧,一个不等于ab(s)的STAR网桥n将只把帧转发给树邻居。如果接收到正常数据帧,一个旧网桥将只把帧转发给树邻居。因此,如果帧没有被ab(s)封装,正常数据帧将通过一个树路径来转发。
引理3:
如果一幅帧通过一个增强转发路径,从一个终端站s被转发到了另外一个终端站t,则该路径必定穿过了至少一个交叉链路,而且帧一定被ab(s)进行了封装,必然对ab(s)进行了定义。
引理3的证明
如果s和t位于同一分支,那么从s到t的树路径必然是最短的路径。假定s和t位于不同的分支,转发过程就要穿过两个或者更多不同分支。在第一种情况下,转发路径必须穿过至少一个交叉链路,否则它就不能成为一个增强转发路径。在第二种情况下,它必须穿过至少一个交叉链路,因为转发路径不能是一个正常树路径。根据ESL_Search_Proc过程中的情况8.3b,当帧要通过任何一个交叉链路转发时,就将进行封装。根据引理2,帧必须被ab(s)封装。
引理4:
如果一个STAR转发路径是一个增强转发路径,一幅帧沿着这个STAR转发路径从一个终端站s发送到另外一个终端站t,那么ab(s)必须进行定义,而且是增强转发路径上的第一个STAR网桥。
引理4的证明:
根据引理3,帧必须由ab(s)封装,而ab(s)必定被定义了。因为ab(s)被定义为db(s)的根路径上的第一个STAR网桥。如果ab(s)=db(s),那么就证明完毕。否则,db(s)是一个旧网桥,就将沿着db(s)的根路径发送一个帧的备份,而不考虑其中关于终端站t的内容。这个帧的拷贝将被ab(s)接收,ab(s)将对帧进行封装,使帧通过增强转发路径进行转发。根据协议帧的重复拷贝将被撤消。
引理5:
如果一个STAR转发路径是一个增强转发路径,一幅帧沿着这个STAR转发路径从一个终端站s发送到另外一个终端站t,那么ab(t)必须进行定义,而且是增强转发路径上的最后一个STAR网桥。
引理5的证明
根据引理3,转发路径必须穿过至少一个交叉链路。根据ESL_Search_Proc过程中的情况8.3b,当帧通过每个交叉链路进行转发的时候必须进行封装。根据DF_STAR_Forwarding_Proc过程中的情况9.2a,ab(t)必须进行定义,否则帧将不进行封装。如果ab(t)=db(t),则证明完毕。否则,ab(t)必须通过定义成为db(t)的一个祖先,而db(t)必须接收没有封装的帧。它足以显示ab(t)位于增强转发路径上,而且位于增强转发路径上的所有的中间STAR网桥将转发封装的帧,但ab(t)除外。ab(t)是位于增强转发路径上,因为根据ESL_Search_Proc过程中的情况8.3b,每个中间STAR网桥都通过引到ab(t)的端口来转发被封装的帧。根据ESL_Searech_Proc过程中的情况8.2和情况8.3,只有当它是ab(t)的时候,一个STAR网桥才将转发没有封装的帧。
引理6:
当ab(s)和ab(t)都被定义,而且它们位于生成树的不同分支时,len(db(s),db(t))≤dT(db(s),db(t))。
引理6的证明:
图23-26分别为这个引理显示了各种典型的方案。因为ab(s)和ab(t)位于不同的分支,s和t必定位于不同的分支。如果从db(s)到db(t)的转发路径是树路径(图23),那么证明完毕。否则,转发路径就是一个增强转发路径。根据引理4,ab(s)是增强转发路径上的第一个STAR网桥。根据引理5,ab(t)是增强转发路径上的最后一个STAR网桥。因此,增强转发路径由三个不相交的段组成。第一段是从db(s)到ab(s)的一段树路径,其路径长度为dT(db(s),ab(s))。第二段是从ab(s)到ab(t)的一个增强转发路径,其长度为d(ab(s),ab(t))。第三段是从ab(t)到db(t)的一段树路径,其长度为dT(ab(t),db(t))。因此,从db(s)到db(t)的增强转发路径的长度len(db(s),db(t))满足以下不等式。
len(db(s),db(t))=dT(db(s),ab(s))+d(ab(s),ab(t))+dT(ab(t),db(t))
                 ≤dT(db(s),ab(s))+dT(ab(s),ab(t))+dT(ab(t),db(t))
                 =dT(db(s),db(t))
引理7:
如果ab(s)和db(t)中至少有一个没有定义,则从一个终端站s发送到其它终端站t的帧的STAR转发路径就是一个树路径。
引理7的证明:
图26-29分别为这个引理显不了各种不例的情况。根据引理2,如果ab(s)没有定义,STAR转发路径必须是一个树路径,因为帧将永不封装。根据DF_STAR_Forwarding_Proc过程中的情况9.2a,一幅帧不用封装,除非对ab(t)进行了定义。
引理8
当ab(s)和ab(t)都被定义,而且ab(s)=ab(t),于是len(db(s),db(t))≤dT(db(s),db(t))。
引理8的证明
图30-32分别为这个引理显示了各种示例的情况。当ab(s)=ab(t),就有两种情况:ab(s)=db(s),而且ab(s)≠db(s)。在第一种情况下,根据ESL_Search_Proc过程中的情况8.2,ab(s)将根据树路径发送帧,则证明完毕。在第二种情况下,如果db(t)是db(s)的一个祖先,当正常数据帧从db(s)向上游传播时,它将在到达ab(s)之前到达db(t),所以ab(s)将接收不到那个帧。在第二种情况下,如果db(t)是db(s)的后代,根据引理8,STAR转发路径必定是一个树路径,证明完毕。
引理9:
当ab(s)和ab(t)都被定义,而且ab(s)≠ab(t),而且ab(s)是ab(t)的一个祖先,那么len(db(s),db(t))≤dT(db(s),db(t))。
引理9的证明
图33为这个引理显示了一个示例的情况。当ab(s)是ab(t)的祖先,就有两种情况,:ab(s)=db(s)以及ab(s)≠db(s)。在第一种情况,ab(s)可封装正常数据帧,并将它沿着树路径往下游发送。当ab(t)接收到这个封装的数据帧,它将剥去其首部和尾部,然后根据FD中的信息发送这个正常数据帧。因此,位于db(s)和db(t)之间的STAR转发路径是一个树路径。证明完毕。当ab(s)≠db(s),ab(s)必定是db(s)的一个祖先,db(s)必定是db(t)的一个祖先。
引理10:
当ab(s)和ab(t)都被定义,而且ab(s)≠ab(t),而且ab(s)是ab(t)的一个后代,那么len(db(s),db(t))≤dT(db(s),db(t))。
引理10的证明:
图34为这个引理显示了一个示例的情况。在V.D.节中,我们已经讨论过ab(t)是ab(s)的一个祖先的这种方案的问题。当ab(s)发现ab(t)是一个祖先,它在根端口上发送正常数据帧。因为只有ab(s)可以封装正常数据帧,所以在树路径上ab(s)和ab(t)之间所有的STAR网桥都只在树端口上发送正常数据帧。于是,正常数据帧将沿着树路径在没有一点冗余遍历的情况下到达ab(t),证明完毕。在生成树上发送的所有重复帧都将最终被撤消。
现在我们提出一个关于STAR桥接协议的路径长度的定理。
定理1:
用来将一幅帧从一个终端站s发送到另外一个终端站t的STAR转发路径从db(s)连接到db(t),它的长度len(db(s),db(t))满足下列不等式。
              len(db(s),db(t))≤dT(db(s),db(t))
定理1的证明:
我们首先看到任何一个STAR转发路径要么是一个树路径,要么是一个增强转发路径。如果它是一个树路径,证明完毕。如果不是这样,我们也可以看到这个不等式仍然成立。
我们将所有的情况分为以下几种情形:
1.ab(s)没有被定义
2.ab(s)被定义
2.1ab(t)没有被定义
2.2ab(t)被定义
2.2.1ab(s)和ab(t)位子不同的分支
2.2.2ab(s)和ab(t)位于同一分支
根据引理7,除了2.2中的情况外,STAR转发路径总是一个树路径。根据引理6,不等式在2.2.1的情况下仍然成立。根据引理9到引理11,不等式对情况2.2.2成立。
区分路径优先级能力的Star网桥
STAR桥接协议利用IEEE 802.1D标准中规定的进程来支持生成树桥接协议的三种基本功能,就像上面进行的详细描述。此外,还进一步规定了三种新的进程:路径查找进程、STAR学习进程、和STAR转发进程,也在上面进行了详细的描述。路径查找进程允许一个STAR网桥发现并估算从它自己到另外一个STAR网桥这样一条路径的距离。STAR转发进程和STAR学习进程分别是是标准中规定的转发进程和学习进程的修改版本。所有的STAR网桥都能够执行标准和新的进程。
在IEEE 802.1D标准中,在转发和学习进程启动之前,要建立一个有根的生成树。同样的,标准和STAR网桥一起要在执行新的进程以前发现一个有根的生成树。当有根的生成树被发现以后,路径查找进程开始启动。在路径查找进程结束以前,STAR网桥和标准网桥执行标准转发进程和标准学习进程以便在树路径上转发数据帧。当路径查找进程完成的时候,每个STAR网桥开始执行STAR学习进程和STAR转发进程而不是标准学习进程和标准转发进程,在所识别出的增强转发路径上转发数据帧。
在IEEE 802.1D标准中,每个网桥都保留着一个转发数据库(FD),来用于转发进程。在STAR网桥中,还要用到三个表:网桥转发表(FD表)、终端站位置表(ESL表)、以及网桥地址表(BA表)。一个BF表为桥接局域网中的各网桥显示能够沿着发现的“最佳”路径与下一跳连接的端口。BF表在路径查找进程中被得到。一个ESL表被用来将一个终端站映射到靠近它的一个STAR网桥上。STAR学习进程负责填写这个表,因此,如果一个STAR网桥的ESL表为一个终端站做了记录,在大多数情况下STAR网桥的FD就不需要为相同的终端站做记录。BA表在STAR网桥标识符和STAR网桥MAC地址之间提供映射。每个网桥有它自己唯一的MAC地址,这个MAC地址被用在STAR转发进程中。
在IEEE 802.1D标准中,每个局域望网都有一个指定网桥,这个网桥也是连接到那个局域网的所有终端站的指定网桥。依照STAR桥接协议,每个终端站都可以沿着到生成树根网桥的标准树转发路径映射到与它“最靠近”的STAR网桥上,如果有这样一个STAR网桥存在。所述与一个终端站“最靠近”的STAR被称做是终端站的一个代理网桥。一旦STAR网桥确定它自己是以前一个未知终端站的代理网桥,它就会通知其它STAR网桥,使它们知道应当把发给那个终端站的帧转发到哪里。特别的,可以识别出位于代理网桥之间的增强转发路径。在一个终端站的指定网桥的上游没有STAR网桥的情况下,所述终端站的代理网桥就没有定义。在这种情况下,就利用树路径来转发从所述终端产生的帧。
下面将描述本发明扩展STAR桥接协议以通过为不同优先级的业务流划分路径的方法在一个扩展局域网中支持多级业务流优先级和负载平衡的要素。
在网桥转发表(BF表)中添加三个新的字段。对于每个其它的STAR网桥,第一STAR网桥的BF表中的新字段包括,(1)从第一STAR网桥连接到其它STAR网桥的树转发端口,(2)位于从第一STAR网桥到其它STAR网桥的树路径上的下一跳STAR网桥邻居,(3)位于从第一STAR网桥到其它STAR网桥的树路径上的STAR网桥的数量。需要前面两个新字段是因为,如果有树路径和增强转发路径可用,本发明就要求每个STAR网桥保持与其他STAR网桥相连的一个树路径和一个增强转发路径,其中原始STAR网桥协议要求每个STAR网桥只保持树路径和增强转发路径中的一个——如果其可用——与其它每个STAR相连。需要第三个字段是因为本发明利用包含在这个字段中的信息来完成划分了优先级帧的转发。
表7是本发明中的STAR网桥的BF表中条目的一览表。所显示的条目中包括了与另一STAR网桥n’相关的转发信息。(c)行、(d)行和(e)行是新字段,这些字段用来划分优先级。
字段 定义
F(n,n’) 增强转发路径上用于n’的转发端口
next_t(n,n’) 位于从n到n’的增强转发路径上的下一跳STAR网桥邻居的ID
f(n,n’) 树路径上用于n’的转发端口
next_t(n,n’) 位于从n到n’的树路径上的下一跳STAR网桥邻居的ID
S_hop_count(n,n’) 位于n到n’的树路径上的STAR网桥数
FG_R(n,n’) 关系标志,如果n’是n的一个祖先,取值为1,如果n’是n的一个下一代,取值为-1,否则为0
表7在STAR网桥n的网桥转发表中与STAR网桥n相关的一个条目的字段
为了填写上面BF表中的新字段的所需信息,在路径查找进程开始的时候,每个STAR网桥通过树来把一幅通告帧广播给其它STAR网桥,如图36所示。这个通告帧带有产生帧的STAR网桥的标识,以及计数器的值,其起始值设为零。这个计数器记录了STAR网桥的跳数。当一个第一STAR网桥从一个子端口接收到一个来自第二网桥的通告帧的时候,第一STAR网桥就知道第二网桥是一个位于下游的STAR网桥,而且STAR网桥从第一STAR网桥到第二STAR网桥的跳数由所述通告帧中计数器的值给出。第一STAR网桥将计数器的值加1,然后将修改的通告帧通过所有的树端口转发出去,发来帧的那个端口除外。通告帧也携带了接收到帧的最后一个STAR网桥的标识。因此,一个STAR网桥知道与产生通告帧的STAR网桥相连的下一个STAR树跳。
考虑一个通告帧ANNOUNCEMENT<n,n’c>,该通告帧由第一STAR网桥(记作n)发起,然后通过一个第二STAR网桥转发(记作n’),其中计数器的记数为c。以下是第三个STAR网桥(记作self)在通过第三STAR网桥的转发端口接收到通告帧以后所要执行的伪代码:
过程:Ann_SBPDU_Proc(n,n’,c,p),参见图36
  Begin

        f(self,n):=0;      /*把p指定给树路径上从self到n的转发端口*/

        next_t(self,n):=n’    /*把n’指定为从n到self的树路径上的下一跳STAR

        网桥邻居的ID*/

        S_hop_count(self,n):=c;    /*把c指定为树路径上从n到self的STAR

        网桥数*/

        Send ANNOUNCEMENT<n,self,c+1>on all tree ports except p

  End
本发明没有修改原始STAR桥接协议中路径查找进程的距离向量计算,而且该进程确定连接到其它STAR网桥的增强转发路径,如上面详细描述的原始STAR协议一样。根据本发明,STAR学习进程与在STAR桥接协议中的工作方式相同,以确定终端站的代理网桥。
在原始STAR转发进程中,对于一个从一个源端站发送到目的站的帧,源端站的代理网桥可以决定那个帧应当通过增强转发路径还是树路径来转发。如果代理网桥决定通过树路径来发送帧,位于树路径上的一个中间STAR网桥就不能通过从它自己连接到目的站的代理网桥的增强转发路径来转发帧。换言之,从源端站到目的站最多只能使用两个替换路径,即,一个是树路径而另外一个是所识别的增强转发路径。源端站的代理网桥决定利用其中的哪个来转发帧。中间STAR网桥必须遵守决定并转发相应的帧。为了避免帧的混乱发送,代理网桥必须始终通过一个树路径或者通过一个增强转发路径来转发属于一个信息流的帧,而不是通过两个路径同时发送。如果增强转发路径可用,通过增强转发路径只转发被选择级别的帧就可以保证这个一致性。
在本发明中,源端站的代理网桥,以及沿树路径的布置的其它中间STAR网桥,只决定下一个转发跳,而不是决定从所述代理网桥到目的站代理网桥的整个转发路径。一个树路径的下一跳被称作下一树跳,而增强转发路径的下一跳被称作下一个增强路径跳。下一树跳和下一增强路径跳都是STAR网桥。注意如果树路径是确定的最短路径,则下一树跳就和下一增强路径跳一样。如果一个STAR网桥决定通过下一个增强路径跳发送一幅帧,则下一增强路径跳必须通过它自己与目的站的代理网桥相连的下一增强路径跳来转发帧。另外一个方面,如果一个STAR网桥决定通过下一树跳来发送一幅帧,当帧到达下一树跳的时候,那个STAR网桥能够自己决定是通过它的下一树跳还是它的下一增强路径跳来转发这副帧。亦即,从源端站代理网桥发出到目的站代理网桥的帧所经过的转发路径可以是从源端站连接出的一个树路径、一个从源端站代理网桥引出的增强转发路径,或者是由以下两条路径构成的一条路径:从源端站代理网桥到所述代理网桥的一个祖先STAR网桥的一条树路径和从祖先STAR网桥到目的站代理网桥的一个增强转发路径。帧的优先级越高,它在树路径上穿过的跳数就越小。对于具有最高优先级的一幅帧,代理网桥将立即通过一个增强转发路径把它发送出去,使得帧不会多穿过一个树跳。对于优先级稍低的一幅帧,代理网桥可能通过它的下一树跳来把它发送出去,使得一个位于树路径上的中间STAR网桥就通过从中间STAR网桥引出的一个增强转发路径来转发这幅帧。优先级再低一点的一幅帧在它被转发到一个增强路径上以前可能会穿过更多的树跳。最后,优先级最低的一幅帧只能通过树路径来进行转发,因为没有网桥会通过任何一个增强路径跳来转发它。
如果一幅帧的源端站和目的站的指定网桥都位于相同的分支,那么树路径就是最短的路径,也不存在路径划分。可以用来将一幅帧从源端站的指定网桥转发到目的站的指定网桥的不同路径的数量,其中指定网桥位于不同的分支上,取决于从源端站指定网桥到最近的源端站及目的站指定网桥的公共祖先的这条树路径上STAR网桥的数量。这是因为只有位于从源端站指定网桥到所述最近的公共祖先的这条树路径上的STAR网桥(所述的STAR网桥包括除所述最近的公共祖先以外的源端站代理网桥)能够用作决定通过下一增强路径跳来转发帧的第一STAR网桥。当一幅已经通过树跳转发的帧到达所述的最近的公共祖先,由于所述的最近的公共祖先和目的站的代理网桥位于同一分支,并且没有增强转发路径,所以所述的最近的公共祖先将向下游把帧转发到目的站的代理网桥,然后帧将沿着一个树路径到达后面的目的站的代理网桥。
在原始的STAR转发进程中,过程ESL_Search_Proc负责将帧转发到增强转发路径上。根据本发明,这个过程被延伸了,使得中间STAR网桥能够决定是将帧转发到下一树跳还是下一增强路径跳。在原始ESL_Search_Proc中,如果一幅帧已经被一个代理网桥通过一个增强转发路径转发了,那么只要增强转发路径可用,每个中间STAR网桥就会将帧转发到一个增强转发路径上去。依照本发明,一个STAR网桥利用帧的优先级和帧穿过的STAR树跳数来决定那个端口转发帧。特别地,本发明在ESL_Search_Proc中引入了一种新的函数,所以它可以接收两个(2)整数参数priority_value和S_hop_count,并返回一个整数以作出决定。priority_value代表一幅帧的优先级值。优先级值是一个非负的整数,而且更小的优先级值表示更高的优先级。优先级值0被用来表示最高的优先级。S_hop_count是一幅帧穿过的STAR树跳数。通过这个函数返回的整数于是被用来决定通过哪个端口转发一幅帧。我们把这个函数称作转发决定函数(forwarding decisionfunction),函数的返回值被称作转发决定值(forwarding decisionvalue)。如果转发决定值大于零,我们就将帧转发到下一树跳上,否则,我们将帧转发到下一增强路径跳上面。为了确保有更高优先级的帧的路径不会比优先级低的帧的路径“糟糕”,当优先级更高的时候,转发决定函数应当返回一个更小的值。另外一方面,由于帧穿过的树路径越长,帧越有可能被转发到下一增强路径跳,所以当STAR跳记数比较大的时候,转发决定函数应当返回一个小的值。一般地说来,只要函数能够满足以下条件,它就可以在这个协议中用作转发决定函数:
1)它将整数priority_value和S_hop_count作为参数接受
2)假定一个相同的priority_value,一个较大的S_hop_count的转发决定值不应当比一个较小的S_hop_count的转发决定值大
3)假定一个相同的S_hop_count,一个较大的priority_value的转发决定值不应当比一个较小的priority_value的转发决定值小
不同的函数对具有相同优先级的帧产生不同的转发路径。比如,考虑priority_value-S_hop_count函数。通过使用这个函数,一个代理网桥将一个优先级值为0的帧转发到下一增强路径跳,并通过下一树跳发送其它优先级的帧。在这种情况下,一幅帧必须穿过的沿树路径布置的STAR网桥的数量与它的优先级值一样。在另外一个例子中,考虑floor(priority_value/4)-S_hop_count函数,其中floor(x)代表不超过x的最大的整数值。在这种情况下,优先级为0到3的帧将被它们的代理网桥转发到下一增强路径跳,而其它优先级值的帧不得不穿过一个树跳。表8显示了当转发决定函数是priority_value-S_hop_count时,不同priority_value和S_hop_count的转发决定值。标有*的区域代表帧将通过下一增强路径跳进行转发的情况。
                               S_hop_count
    0     1     2     3     4     5     6   7
 Priority_value     0     *0     *-1     *-2     *-3     *-4     *-5     *-6   *-7
    1     1     *0     *-1     *-2     *-3     *-4     *-5   *-6
    2     2     1     *0     *-1     *-2     *-3     *-4   *-5
    3     3     2     1     *0     *-1     *-2     *-3   *-4
    4     4     3     2     1     *0     *-1     *-2   *-3
    5     5     4     3     2     1     *0     *-1   *-2
    6     6     5     4     3     2     1     *0   *-1
    7     7     6     5     4     3     2     1   *0
表8:转发决定函数举例(Priority_value-S_hop_count)
当接收到从终端站(记做s)发送到目的站(记做t)而且带有一定净荷(记做pld)的一幅帧,以下过程被DF_STAR_Forwarding_Proc过程调用的时候,一个STAR网桥(记做self)就执行该过程。下面显示的伪代码中使用的符号与如上详述的STAR桥接协议的原始ESL_Search_Proc中定义的符号一致。在伪代码中转发决定函数被记做m(‘)。一幅帧的优先级值被载在净荷pld中,而pr(pld)则返回优先级值。
过程:ESL_Search_Proc(s,t,pld),图38
     Begin

    If ESL(self,t)is not found                 /*错误*/

        Drop the frame

    Else if ESL(self,t)=self                  /*ab(t)=self*/

        Send data frame<s,t,pld>on f(self,t)

    Else                                          /*ab(t)已知,ab(t)≠self*/

        ab_s:=ESL(self,s)                        /*定位ab(s)*/

        ab_t:=ESL(self,s)                        /*定位ab(t)*/

        if ab_s=self or FG_R(self,ab_s)=-1  /*self是ab(s)或者是ab(s)的一个祖

        先*/

        if m(pr(pld),S_hop_count(self,ab_s))≤0  /*通过下一增强路径跳发

        送*/
                next_hop:=next_t(self,ab_t)

                forwarding_poft:=F(self,ab_t)

        else

                next_hop:=next_t(self,ab_t)    /*通过下一树跳发送*/

                forwarding_Port:=f(self,ab_t)

            endif

        else

            next_hop:=next(self,ab_t)  /*self不是ab(s),而且self位于另外的

            分支上,或者self是ab(s)的一个后代*/

            forwarding_Port:=F(self,ab_t)

        endif

        send data frame encap(<s,t,pld>,addr(self),addr(next_hop))on

        forwarding_Port

   endif
end
图35是一个桥接局域网的例子,能够很好地解释本发明的优点。空心圆(节点)代表标准网桥,而实心圆(节点)代表STAR网桥。实线是树线,而点划线是交叉链路。终端站s与STAR网桥z相连,终端站t与STAR网桥v’相连。将网桥跳数记作被考虑的度量,则从STAR网桥z到STAR网桥v’的树路径为长度5,从STAR网桥z到STAR网桥v’的增强转发路径长度为1。令转发决定函数为priority_value-S_hop_count。现在假定终端站s想发送一幅优先级值为0的帧到一个已知的终端站t。STAR网桥z是终端站s的代理网桥。当STAR网桥z接收到帧,由于终端站t的代理网桥在其它分支上,它就执行ESL_Search_Proc。它求解函数m的值,见图38,然后函数返回0。因此,它将帧封装然后将它发送到下一增强路径跳,就是STAR网桥v’,STAR网桥v’是终端站t的代理网桥。路径的长度为1跳并且它是一个增强转发路径。
现在,假定终端站s发送优先级值为1的另外一幅帧。函数m返回1,所以STAR网桥z将帧封装并把它发送到STAR网桥q,q是下一树跳。当STAR网桥q接收到帧,它求解函数m的值,然后m返回0。STAR网桥q把帧发送到下一增强路径跳,STAR网桥x就设在那里。当STAR网桥x接收到帧,由于终端站t的代理网桥现在位于它的下游,它将通过树跳把帧转发到STAR网桥v’。这幅帧穿过的路径是一条混合路径z→q→x→v’,其长度为3,比优先级值为0的帧的路径长。对于优先级值为2或者更高的一幅帧,STAR网桥q将把它发送到STAR网桥u,STAR网桥u是下一树跳,而帧将利用树路径发送到STAR网桥v’。树路径的长度为5跳,比优先级更低的帧所使用的路径更长。
图37是一个流程图,显示了处理收到的帧、选择适当的程序并根据收到的帧的内容进行运行的方式。图37中的每个进程都在以前描述过的进程图中进行了详细的显示。
VIII.结论
当前很多的网络产品都支持IEEE 802.1D标准,而这个标准被广泛地应用在今天的局域网互连环境中,比如,DOCSIS兼容电缆数据产品。DOCSIS规定使用IEEE 802.1D桥接协议在一个交换网络或者桥接头端网络中相互连接电缆调制解调器CMTSes。在DOCSIS中,用于商业用途的桥接CMTE和电缆调制解调器必须支持IEEE 802.1D标准。网桥也用在与CableHome兼容网络中,这对家庭网络产品具有特殊的意义。
当在家中布置了多个家庭网段时,网桥就可以用在家庭网络环境中将家庭网段相互连接起来以形成一个透明的扩展局域网。必须让技术人员来正确安装家里的网桥,否则形成的拓扑中可能包括回路,而这种回路公知对扩展桥接局域网的性能有损害。随着对具有宽频谱能力的家庭设备预期的激增,以及局域网技术的过剩,将来的家庭网络不但要衡量带宽,而且要看连接性和可靠性。针对这个目的,有必要使家庭扩展桥接局域网的拓扑支持替换路径。换言之,将通过设计执行一种网状拓扑。IEEE 802.1D桥接协议不仅可以用来保证家庭网络中帧的无环路转发,而且还可以用于网络的健壮扩展。
STAR桥接协议,结合了通过较其相应的树路径更短并与IEEE802.1D标准后向兼容的替换路径进行帧转发,能支持两个层次的业务流优先级。STAR桥接协议的扩展协议能够支持两个层次以上的业务流优先级,提高它的负载平衡能力,增加STAR桥接协议在家庭网络产品中的价值。
我们披露了一种新的带有优先级路径划分和负载平衡能力的STAR桥接协议,该协议与标准IEEE 802.1D生成树桥接协议后向兼容。这里描述的协议根据帧载的优先级数值选择长度不同的增强路径和树路径。顺便提及,标准协议对最大的网桥直径作出了限制,最大网桥直径就是终端站附加装置任意两点之间的最大网桥数。IEEE802.1D说明书推荐的最大网桥直径为7。给定一组局域网和网桥,通过标准协议建立的以满足这种限制的RST可能一个也不存在。另外一方面,STAR桥接协议仍然能够满足这种限制,因为增强转发通路可以降低网桥的数量。通过使用增强转发路径,在标准生成树中应当通过根网桥的帧可能被转移到了替换路径上,使根网桥上的压力得以减轻。路径划分进一步提高了负载平衡。
由于能够与IEEE 802.1D标准后向兼容,推荐的网桥协议给以QoS为基础的桥接技术提供了一个平稳的迁移道路。最终,所有的旧网桥都将逐步停止使用或者被STAR网桥代替。当桥接网络中没有旧网桥的时候,距离向量路由选择就可以被用来发现所有成对的最短路径。因为距离向量总是被转发到下一跳以外地方,所以当所有网桥都是STAR网桥的时候,就没有远程STAR邻居。注意仍然需要利用IEEE802.1D生成树。
附录
首字母缩写词表
BA       网桥地址
BF       网桥转发
BPDU     桥接协议数据单元
CM       电缆调制解调器
CMTS     电缆调制解调器终端系统
DF       数据帧
DHCP     动态主机配置协议
DLS      分布式负载分担技术
DOCSIS   线缆数据服务接口规范
DV       距离向量
DVC      距离向量计算
DVCN     距离向量改变通知
ESL      终端站位置
FD       转发数据库
GDLS     通用分布式负载分配技术
ID       标识符
IP       网际协议
LAN      局域网
LLC      逻辑链路控制协议
MAC      媒体访问控制
QoS      服务质量
RST      有根的生成树
SBPDU    STAR桥接协议数据单元
SLA      站位置通告
STAR     生成树替换路由选择
符号  定义  注释
V  代表所有的网桥的网桥集合
B  代表所有的STAR网桥的网桥集合  BV
N(x)  网桥x的全部直接邻居的集合  N(x)V{x}
NB(x)  x的直接STAR邻居的集合  NB(x)N(x),NR(x)B
N’B(x)  x的远程STAR邻居的集合  NR(x)B
P(x)  网桥x所有端口的集合
PT(x)  网桥x所有树端口的集合  PT(x)P(x)
Pr(x)  网桥x的根端口
p(x,y)  连接到邻居网桥y网桥x的端口  p(x,y)P(x)
c(x,y)  网桥x和网桥y之间的链路的权重  c(x,y)=0 if x=yc(x,y)>0 if x≠y
dt(x)  对于x∈V{r},网桥x根路径的距离  根网桥r已经给出
treepath(x,y)  从x到y的树路径  x∈V,  y∈V
dT(x,y)  网桥x和网桥y之间树路径的距离  dT(x,y)=0 ifx=ydT(x,y)>0 if x≠y
d(x,y)  对于x∈B和y∈B{x},当前估算的从x到y的距离  d(x,y)=0 if x=yd(x,y)>0 if x≠y
F(x,y)  对于x∈B和y∈B{x},从网桥x到网桥y的转发端口  F(x,y)∈P(x)
f(x,s)  对于x∈V和s∈M,从网桥x到终端站s的转发端口  f(x,s)∈P(x)
M  所有终端站的集合
ab(s)  终端站s的代理网桥  s∈M,ab(s)∈B
db(s)  终端站s的指定网桥  db(s)∈V
S(x)  在x的FD中的终端站的集合,x∈V  S(x)M
H(x)  在x的ESL表中的终端站的集合,x∈B  H(x)M
nca(x,y)  网桥x和网桥y最近的共同祖先  nca(x,y)∈V
path(x,y)  从x到y的转发路径,用于推荐协议  x∈V,y∈V
len(x,y)  path(x,y)的长度  len(x,y)=0 if x=ylen(x,y)>0 if x≠y
dsan(n)  网桥n∈B的远程STAR祖先邻居  dsan(n)∈B
dsanc(n)  网桥n∈B的远程STAR祖先邻居的子代  dsanc(n)∈V
dcc(n)  dsan(n)和dsanc(n)之间双倍计算的消耗  dcc(n)>0
cb(k,n)  k到n∈B的一条树路径上的网桥k∈B的子代  cb(k,n)∈V
表A:符号
上面结合具体的设备对本发明的原则进行了描述,显然可以理解,这个描述是通过举例来完成的,但本发明的范围并不局限于此。

Claims (33)

1.一种用于确定在一个互连的局域网系统的终端站间转发帧的路径的设备,包括:
第一和第二组帧转发装置,包括用来互连局域网的网桥;
所述第一和第二组网桥每个都设有一个第一装置,用于建立树路径将帧无环路地转发到一个终端站;
所述第二组网桥每个都设有一个与所述第一组网桥以及第二组网桥中的所有其它网桥协作的第二装置,以建立一个增强路径将帧无环路地转发到一个终端站,其中所述增强路径是一个比其它任何一个到所述终端站的树路径都短的替换路径;以及
所述第二组网桥每个都设有一个第三装置,以根据接收的帧所包含的一个参数和一幅帧通过代理网桥与第二组网桥中接收该帧的网桥之间的树路径所完成跳数,选择树路径和替换路径之一。
2.权利要求1所述的设备,其特征在于,所述参数值是一个优先级值,用于标识指定给一幅帧的优先级。
3.权利要求2所述的设备,其特征在于,所述第三装置包括用于选择一条路径的装置,使得一幅帧的优先级越高,在通过一条增强路径转发前,帧通过树路径所做的跳数越少。
4.如权利要求2所述的设备,其特征在于,所述第三装置包括用于选择一条路径的装置,使得一幅帧通过树路径完成的跳数越大,帧通过增强路径转发的可能性越大。
5.如权利要求1所述的设备,其特征在于,所述第二组网桥与所述第一组网桥后向兼容,所述第一组网桥的操作不会因为所述第二组网桥的存在而改变,并且
当系统中至少有一个第一网桥组的网桥时,所述第二组网桥能够与所述第一组网桥进行互操作,并且
在没有所述第一组网桥的情况下,所述第二组网桥能够执行它们的功能以便进行操作。
6.如权利要求1所述的设备,其特征在于,第一组网桥包括用于执行生成树桥接协议(STBP)的装置,以确定一条没有回路的树路径来将帧转发到一个终端站。
所述第二组网桥包括用于执行生成树替换路由选择桥接协议(STAR BP)的装置,以确定所述的替换路径;
所述的第二组网桥包括用于确定帧在树路径上完成所述跳数的装置。
7.如权利要求6所述的准备,其特征在于,用于执行所述生成树替换路由桥接协议的所述装置包括用于执行所述生成树桥接协议的装置。
8.如权利要求1所述的设备,其特征在于,所述终端站布置在所述互连的局域网中;并且
所述第一和第二组网桥有选择性地从所述这些局域网之一的终端站将帧转发到所述这些局域网中的另外一个局域网的终端站。
9.如权利要求1所述的设备,其特征在于,当用于选择的装置接收一个源网桥发起的帧而且其优先级值在一个包括最低级优先级的第一优先级值范围内的帧时,第二组网桥的每个网桥还包括用于选择树路径的装置。
10.如权利要求9所述的设备,其特征在于,所述第一优先级值范围随所述的跳数一起减少。
11.如权利要求1所述的设备,其特征在于,选择的所述第二组网桥中的一个网桥沿不同树路径布置,并且通过交叉链路连在一起;
用于确定所述替换路径的所述装置包括一个装置,该装置用于确定包括所述交叉链路之一的路径是否提供了一条比树路径更短的路径;
所述选择装置根据接收到给定优先级值的帧以及帧在树路径上做的跳数,选择所述交叉链路之一。
12.如权利要求1所述的设备,其特征在于,所述第一和第二组网桥的每个网桥包括:
用于将一个加权度量分配给网桥的每个端口的装置;
用于与系统中其它网桥交换所述加权度量的装置;
用于根据交换的信息选择一个根网桥的装置;
用于确定每个网桥与所述根网桥之间距离的装置;
用于建立一个以分布方式以所述根网桥为根的唯一生成树的装置;
用于学习和记忆那个端口通过所述生成树将帧转发给一个给定终端站;以及
用于储存所述数据的装置。
13.如权利要求1所述的设备,其特征在于,所述第二组网桥的每个网桥包括一个通过所述树路径把一个通告帧发送到所述第二组网桥的其它每个网桥的装置,以标识一个树转发端口、一个所述第二组网桥的下一跳网桥、以及源网桥和发送通告的网桥之间的所述第二组网桥的网桥数。
14.如权利要求12所述的设备,其特征在于所述第二组网桥的每个网桥还设有用于向所述第二网桥组的其它网桥传输所述进行传输的网桥所知道的表示拓扑的信息的装置;
用于向第二网桥组的其它网桥传输标识作为帧的源端和帧的目的地的第二组网桥网桥的信息的装置;
用于向第二网桥组的其它网桥传输第二网桥组的网桥知道而不是正进行传输的网桥知道的拓扑信息的装置;
用于储存从所述第二网桥组的其它网桥接收的信息,以便在可能的情况下确定比相应树路径更短的替换路径。
15.如权利要求1所述的设备,其特征在于,所述第二组网桥的每个网桥还设有用来确定所述第二网桥组的另一网桥是否通过一个没有用来形成任何树路径的交叉链路直接与其相连的装置;
用于确定替换路径的所述装置还包括用于检查用做替换路径的一段的有效交叉链路的装置,其中,一个有效的交叉链路是一个其终端站与所述第二组网桥相连的交叉链路;以及
其终端站与所述第二组网桥的网桥相连接的装置,其中,与交叉链路的一个终端站相连的所述第二组网桥之一的树路径不是与所述交叉链路另外一个终端站相连的第二组网桥的其它网桥的树路径的一段,其中,第二组网桥的其它网桥的树路径不是所述第二组网桥中的一个所述网桥的树路径的一段。
16.如权利要求1所述的设备,其特征在于,所述第二组网桥的每个网桥还包括:
用于储存将每个终端站与第二组网桥中靠近每个终端站的网桥联系在一起的终端站位置表(ESL)的装置;
用于储存将所述第二组网桥的每个网桥与媒体访问控制地址(MAC)联系起来的网桥地址(BA)表的装置。
用于储存一个网桥转发(BF)表的装置,该BF表显示了引到布置在为了转发帧而发现的最优路径上的下一跳的相关网桥的一条路径;
根据接收到的一幅帧和储存在所述BA、ESL和BF表中的信息,以选择一条连接到被目的地信息标识的终端站的路径的装置,目的地信息构成了所述收到的帧的一个部分。
17.用于确定转发一个系统中的网桥接收的帧路径的装置,所述系统包括多个互连的局域网,每个局域网设有多个终端站;一个结合第一和第二组网桥中多个网桥的生成树,用于将帧无环路地从一个源端站转发到一个目的站,其中,所述的源端站和目的站可能位于不同的局域网中,所述第一和第二组网桥的网桥设有一个用于确定将帧无环路转发出去的路径的装置;并且
所述的第二组网桥还包括一个装置,用于确定是否存在一条用于无环路地转发所述帧的至少包括一段非树路径的替换路径;
用于根据所述接收帧所载的优先级数,利用所述替换路径和树路径之一的装置,拓扑判据包括:一条更短物理路径;一条耗费少的路径;一个有更少延迟、在源端和目的地之间跳数更小的路径。
18.如权利要求17所述的设备,包括用于根据下面一组拓扑判据确定所述替换路径的装置:
一条短路径;
一条消耗少的路径;
一条有更少延迟的路径;以及
源端和目的地之间的跳数更小。
19.一种用于确定在一个系统中转发帧的路径的方法,这个系统设有多个被第一和第二类型网桥互连在一起的终端站,这些第一和第二类型的网桥创建用于在终端站之间转发帧的无环路生成树,该方法包括:
a)在第二类型网桥的每个网桥中,储存那些代表了所述第二种类型的网桥之间的交叉链路的数据,以及在每个第二种类型网桥和其它每个第二种类型网桥之间的跳数的数据;
b)在一个第二类型的网桥中,通过一个有最小跳数的第一路径将接收到的帧转发到一个对应于给定值的的优先级数的目的站和一个由接收到的帧所载的目的站。
20.如权利要求19所述的方法还包括:
c)在一个第二类型的网桥中,通过一个其跳数比对应于次优先级的优先级数的所述第一路径的跳数大的一条路径,将接收到的帧转发到一个由接收到的帧所载的目的站。
21.一种在通过第一和第二类型网桥互连的局域网系统的终端站之间,为帧的转发区分优先级的方法,包括:
a)建立一个无环路树路径,以便利用第一和第二类型网桥转发帧;
b)在所述第二类型网桥之间形成交叉链路以提供增强转发路径;
c)在所述第一和第二类型网桥中储存树路径信息;
d)在第二类型的每个网桥中储存交叉链路的信息;
e)根据所述帧记载的优先级数值,将第二类型网桥接收的帧沿着一个在接收该帧的第二类型网桥和一个终端站之间所述第二类型网桥的跳数最小的路径转发,其中所述终端站被指定接收该帧并由所述帧所载,并根据在第(c)步和(d)步中储存的数据来确定所述路径。
22.如权利要求21所述的方法还包括根据一个重要性比所述第一次提到的优先级数值低的优先级数值,使用在第(c)步和(d)步中储存的数据,将所述第二类型的网桥接收的帧沿着一个在接收该帧的所述第二类型网桥和一个终端站之间第二类型网桥的跳数更大的路径转发,其中所述终端站被指定按照所述帧所记载的数据接收帧。
23.一种在通过第一和第二类型网桥互连的局域网系统的终端站之间,用来建立一种为帧的转发区分优先级的协议的方法包括:
a)在路径查找过程中,每个第二类型的网桥通过一个无环路的树路径向所述第二类型的其它网桥广播一个通告帧,每个通告帧记载有发起该帧的第二类型网桥的标识和记数值,记数值代表了帧穿过第二类型网桥的数目;以及
b)至少有另外一个所述第二类型网桥在一个给定端口接收了从另外一个所述第二类型网桥发出的一个通告帧,并使记数值增加1,然后通过所述给定端口除外的所有树端口转发一个经过修改的通告帧。
24.如权利要求23所述的方法还包括在一个通告帧中提供最后转发该通告帧的第二类型网桥的标识,使第二类型的网桥知道连接到发起该通告帧的第二类型网桥的下一树跳。
25.如权利要求23所述的方法,其特征在于,每一个第二类型的网桥只决定下一转发跳,代替从源端站的代理网桥到目的站代理网桥的整个转发路径。
26.如权利要求23所述的方法,其特征在于,从另外一个第二类型的网桥接收到一幅帧的一个第二类型的网桥只决定下一转发跳,代替从源端站到的代理网桥到目的站代理网桥的整个转发路径,与转发所述帧的所述另一第二类型网桥作出的决定无关。
27.如权利要求23所述的方法,其特征在于,一个第二类型的网桥接收一幅在树路径上往下游转发的帧,所述第二类型的网桥在其后选择一条树路径。
28.如权利要求23所述的方法,其特征在于,一个第二类型的网桥接收到一幅在树路径上往上游转发的帧,所述第二类型的网桥或者选择一条增强路径,或者一条树路径,所述树路径对应于接收的帧所载的一个优先级数和一幅所述帧通过所述树路径所完成的跳数。
29.如权利要求23所述的方法,其特征在于,一个第二类型的网桥通过增强路径接收到树上的一幅帧,所述第二类型网桥或者选择一条增强路径,或者选择一条对应于其后的增强路径的可用性的树路径。
30.一种用来确定在互连的局域网系统的终端站之间转发帧的路径的方法,包括包含有网桥的第一组和第二组帧转发装置,用于互连局域网,该方法包括:
a)所述第一和第二组网桥确定树路径,以便将帧无环路地转发到一个终端站;
b)所述第二组网桥确定一条替换路径,以便将帧无环路地转发到一个终端站,其替换路径比相应树路径到所述终端站的距离短;以及
c)所述第二组网桥根据接收的帧所包含的一个参数和一幅帧通过代理网桥和接收该帧的第二组网桥的网桥之间的树路径所做的跳数这二者的至少其一,选择树路径和替换路径之一。
31.如权利要求30所述的方法包括提供一个参数值,该参数值是标识分配给帧的优先级的优先级值。
32.如权利要求31所述的方法,其特征在于,所述第二组网桥选择一条路径使得一幅帧的优先级越高,在通过一个增强路径被转发以前,帧在树路径上完成的跳数越小。
33.如权利要求31所述的方法,其特征在于,所述第二组装置选择一条路径使得一幅帧在一个树路径上完成的跳数越大,帧通过一个增强路径被转发的可能性就越大。
CNA038000784A 2002-01-20 2003-01-15 用在扩展局域网中的以优先级为基础的负载平衡方法和设备 Pending CN1496632A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US35057202P 2002-01-20 2002-01-20
US60/350,572 2002-01-20
US10/206,553 2002-07-26
US10/206,553 US6717950B2 (en) 2002-01-20 2002-07-26 Method and apparatus for priority-based load balancing for use in an extended local area network

Publications (1)

Publication Number Publication Date
CN1496632A true CN1496632A (zh) 2004-05-12

Family

ID=27616326

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA038000784A Pending CN1496632A (zh) 2002-01-20 2003-01-15 用在扩展局域网中的以优先级为基础的负载平衡方法和设备

Country Status (8)

Country Link
US (1) US6717950B2 (zh)
EP (1) EP1468528B1 (zh)
KR (1) KR20030085016A (zh)
CN (1) CN1496632A (zh)
AT (1) ATE499778T1 (zh)
CA (1) CA2439865A1 (zh)
DE (1) DE60336115D1 (zh)
WO (1) WO2003063422A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1960325B (zh) * 2005-11-04 2010-05-05 华为技术有限公司 一种桥接网络中的数据处理方法及一种桥接网络
CN101765984A (zh) * 2007-05-29 2010-06-30 诺基亚西门子通信公司 用于处理数据的方法和装置以及包括该装置的通信系统
CN1787475B (zh) * 2004-12-06 2011-01-26 日本电气株式会社 接入网络系统及移动内部网络中继设备的方法
CN101321156B (zh) * 2007-06-06 2011-05-04 艾威梯科技(北京)有限公司 基于第一互通协议进行第二互通协议扩展的方法和系统
CN102761463A (zh) * 2011-04-29 2012-10-31 鸿富锦精密工业(深圳)有限公司 网络设备及其在局域网内实现节能省电的方法
CN101707546B (zh) * 2009-12-07 2013-06-05 中兴通讯股份有限公司 一种消除透传网桥对网络拓扑的负面影响的方法及装置
CN101473608B (zh) * 2006-08-18 2015-08-12 富士通株式会社 通信系统
CN112492574A (zh) * 2016-06-28 2021-03-12 华为技术有限公司 一种负载迁移方法、装置及系统

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000183943A (ja) * 1998-12-17 2000-06-30 Fujitsu Ltd ケーブルモデム及びケーブルモデムシステム
AU2002214651A1 (en) * 2000-10-13 2002-04-22 General Instrument Corporation Spanning tree alternate routing bridge protocol
US8532127B2 (en) * 2001-10-19 2013-09-10 Juniper Networks, Inc. Network routing using indirect next hop data
US20040083293A1 (en) * 2002-02-25 2004-04-29 Dong Chen Ethernet addressing via physical location for massively parallel systems
US7209435B1 (en) * 2002-04-16 2007-04-24 Foundry Networks, Inc. System and method for providing network route redundancy across Layer 2 devices
US8462668B2 (en) * 2002-10-01 2013-06-11 Foundry Networks, Llc System and method for implementation of layer 2 redundancy protocols across multiple networks
DE60319191T2 (de) * 2002-10-01 2009-02-12 Nec Infrontia Corp., Kawasaki Brückenvorrichtung und Brückenverfahren
EP1429500B1 (en) * 2002-12-11 2006-03-01 Nippon Telegraph and Telephone Corporation Method and device for multicast communication path calculation
US7379429B1 (en) * 2002-12-20 2008-05-27 Foundry Networks, Inc. Optimizations and enhancements to the IEEE RSTP 802.1w implementation
US7707307B2 (en) * 2003-01-09 2010-04-27 Cisco Technology, Inc. Method and apparatus for constructing a backup route in a data communications network
US7869350B1 (en) 2003-01-15 2011-01-11 Cisco Technology, Inc. Method and apparatus for determining a data communication network repair strategy
US7548980B2 (en) * 2003-09-04 2009-06-16 At&T Intellectual Property I, L.P. Enhanced network management system
US7593414B2 (en) * 2003-09-04 2009-09-22 At&T Intellectual Property I, L.P. Enhanced CSU/DSU (channel service unit/data service unit) for frame relay over DSL
WO2005036839A2 (en) 2003-10-03 2005-04-21 Avici Systems, Inc. Rapid alternate paths for network destinations
US7554921B2 (en) * 2003-10-14 2009-06-30 Cisco Technology, Inc. Method and apparatus for generating routing information in a data communication network
US7525974B2 (en) * 2003-11-10 2009-04-28 Nortel Networks Limited Method and apparatus for capability based addressing in a communications network
US7710882B1 (en) 2004-03-03 2010-05-04 Cisco Technology, Inc. Method and apparatus for computing routing information for a data communications network
WO2005086435A1 (en) * 2004-03-05 2005-09-15 Xyratex Technology Limited A method for congestion management of a network, a signalling protocol, a switch, an end station and a network
US7848240B2 (en) * 2004-06-01 2010-12-07 Cisco Technology, Inc. Method and apparatus for forwarding data in a data communications network
US7577106B1 (en) 2004-07-12 2009-08-18 Cisco Technology, Inc. Method and apparatus for managing a transition for a class of data between first and second topologies in a data communications network
US7391744B2 (en) * 2004-10-18 2008-06-24 Alcatel Lucent Allocating bridge priorities in bridged network
US7630298B2 (en) * 2004-10-27 2009-12-08 Cisco Technology, Inc. Method and apparatus for forwarding data in a data communications network
US7496644B2 (en) * 2004-11-05 2009-02-24 Cisco Technology, Inc. Method and apparatus for managing a network component change
KR100679858B1 (ko) * 2004-11-25 2007-02-07 한국전자통신연구원 동적 우선순위에 기반한 메시지 전달 장치 및 그를 이용한우선순위 조정 장치와 동적 우선순위 메시지 처리 방법
CN100403731C (zh) * 2004-12-30 2008-07-16 杭州华三通信技术有限公司 在堆叠设备域中通信传输路径的控制方法
US7499438B2 (en) * 2005-01-13 2009-03-03 2Wire, Inc. Controlling wireless access to a network
US7535880B1 (en) * 2005-01-13 2009-05-19 2Wire, Inc. Method and apparatus for controlling wireless access to a network
US7480264B1 (en) 2005-02-10 2009-01-20 Sonicwall, Inc. Centralized wireless LAN load balancing
US7933197B2 (en) * 2005-02-22 2011-04-26 Cisco Technology, Inc. Method and apparatus for constructing a repair path around a non-available component in a data communications network
WO2006122287A2 (en) * 2005-05-11 2006-11-16 Texas Instruments Incorporated Wireless traffic network routing based on quality of service
WO2006124927A2 (en) * 2005-05-19 2006-11-23 Texas Instruments Incorporated Routing switch for parameterized routing in mesh networks
US20070002740A1 (en) * 2005-06-30 2007-01-04 Scott Evans Biasing of network node prioritization to improve per-hop behavior based on performance necessary for a packet to meet end-to-end QoS goals
US7848224B2 (en) * 2005-07-05 2010-12-07 Cisco Technology, Inc. Method and apparatus for constructing a repair path for multicast data
US7693043B2 (en) * 2005-07-22 2010-04-06 Cisco Technology, Inc. Method and apparatus for advertising repair capability
US8331360B1 (en) * 2005-08-17 2012-12-11 Rockstar Consortium Us Lp Method and apparatus for layer 2 fast re-configuration in a routing bridge network
WO2007094520A1 (ja) * 2006-02-16 2007-08-23 Nec Corporation ノード、ネットワークシステム、フレーム転送方法及びフレーム転送プログラム
KR100752771B1 (ko) * 2006-04-27 2007-08-29 주식회사 팬택 통신 매체의 우선 순위를 지능적으로 결정하는 지능형 통신시스템
US7701845B2 (en) 2006-09-25 2010-04-20 Cisco Technology, Inc. Forwarding data in a data communications network
US8077720B2 (en) * 2007-02-27 2011-12-13 Alcatel-Lucent Usa Inc. Methods and devices for generating and forwarding translated MAC addresses
US7962595B1 (en) * 2007-03-20 2011-06-14 Emc Corporation Method and apparatus for diagnosing host to storage data path loss due to FibreChannel switch fabric splits
US9413686B2 (en) 2007-06-04 2016-08-09 Qualcomm Incorporated Establishing a unique end-to-end management key
US7940776B2 (en) 2007-06-13 2011-05-10 Cisco Technology, Inc. Fast re-routing in distance vector routing protocol networks
KR101504723B1 (ko) 2007-10-24 2015-03-20 삼성전자 주식회사 스패닝트리 프로토콜을 지원하는 네트워크 시스템과 그연결장치 및 스패닝트리 생성 방법
US8005113B2 (en) 2008-04-08 2011-08-23 Futurewei Technologies, Inc. Encapsulating large Ethernet frames
US7872993B2 (en) * 2008-10-30 2011-01-18 Alcatel Lucent Method and system for classifying data packets
GB2473197A (en) 2009-09-02 2011-03-09 Nds Ltd Advert selection using a decision tree
US8320386B2 (en) * 2009-10-13 2012-11-27 Motorola Mobility Llc Aggregating ports while allowing access to singleton ports
US9730261B2 (en) * 2010-01-18 2017-08-08 Telefonaktiebolaget Lm Ericsson (Publ) Hierarchical protocol classification
US8654630B2 (en) 2010-03-19 2014-02-18 Brocade Communications Systems, Inc. Techniques for link redundancy in layer 2 networks
US8363662B2 (en) 2010-03-19 2013-01-29 Cisco Technology, Inc. Alternate down paths for directed acyclic graph (DAG) routing
US8539078B2 (en) 2010-07-08 2013-09-17 International Business Machines Corporation Isolating resources between tenants in a software-as-a-service system using the estimated costs of service requests
US8542578B1 (en) 2010-08-04 2013-09-24 Cisco Technology, Inc. System and method for providing a link-state path to a node in a network environment
US8824338B2 (en) * 2012-03-22 2014-09-02 Fujitsu Limited Distributed spanning tree protocol
JP6507572B2 (ja) * 2014-10-31 2019-05-08 富士通株式会社 管理サーバの経路制御方法、および管理サーバ
KR20180008489A (ko) * 2015-04-15 2018-01-24 노키아 솔루션스 앤드 네트웍스 오와이 소형 셀들의 백홀링을 위한 자동-구성 네트워크 개념들
US10771336B2 (en) 2017-09-22 2020-09-08 Futurewei Technologies, Inc. Topology-aware controller associations in software-defined networks
US10511524B2 (en) 2017-10-03 2019-12-17 Futurewei Technologies, Inc. Controller communications in access networks
US10554500B2 (en) * 2017-10-04 2020-02-04 Futurewei Technologies, Inc. Modeling access networks as trees in software-defined network controllers
CN111510387B (zh) * 2019-01-30 2021-12-14 华为技术有限公司 数据转发方法及相关装置
CN113472562B (zh) * 2020-03-31 2023-09-01 华为技术有限公司 一种设备管理方法、装置及计算机系统
US11570707B2 (en) * 2021-01-11 2023-01-31 Dell Products L.P. Systems and methods for comparison and scoring of network access points

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5018137A (en) * 1988-06-27 1991-05-21 Digital Equipment Corporation Transparent load sharing for parallel networks
US5323394A (en) * 1992-04-07 1994-06-21 Digital Equipment Corporation Selecting optimal routes in source routing bridging without exponential flooding of explorer packets
US5734824A (en) * 1993-02-10 1998-03-31 Bay Networks, Inc. Apparatus and method for discovering a topology for local area networks connected via transparent bridges
US5884043A (en) * 1995-12-21 1999-03-16 Cisco Technology, Inc. Conversion technique for routing frames in a source route bridge network
US5850397A (en) * 1996-04-10 1998-12-15 Bay Networks, Inc. Method for determining the topology of a mixed-media network
US6081511A (en) * 1996-08-14 2000-06-27 Cabletron Systems, Inc. Load sharing for redundant networks
US6188694B1 (en) * 1997-12-23 2001-02-13 Cisco Technology, Inc. Shared spanning tree protocol
US6498795B1 (en) * 1998-11-18 2002-12-24 Nec Usa Inc. Method and apparatus for active information discovery and retrieval
US6147971A (en) * 1998-11-18 2000-11-14 3Com Corporation Optimized routing method based on minimal hop count for use in PNNI based asynchronous transfer mode networks
US6343330B1 (en) * 1999-05-25 2002-01-29 Cisco Technology, Inc. Arrangement for preventing looping of explorer frames in a transparent bridging domain having multiple entry points

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1787475B (zh) * 2004-12-06 2011-01-26 日本电气株式会社 接入网络系统及移动内部网络中继设备的方法
CN1960325B (zh) * 2005-11-04 2010-05-05 华为技术有限公司 一种桥接网络中的数据处理方法及一种桥接网络
CN101473608B (zh) * 2006-08-18 2015-08-12 富士通株式会社 通信系统
CN101765984A (zh) * 2007-05-29 2010-06-30 诺基亚西门子通信公司 用于处理数据的方法和装置以及包括该装置的通信系统
US9048925B2 (en) 2007-05-29 2015-06-02 Adtran GmbH Method and device for processing data and communication system comprising such device
CN101321156B (zh) * 2007-06-06 2011-05-04 艾威梯科技(北京)有限公司 基于第一互通协议进行第二互通协议扩展的方法和系统
CN101707546B (zh) * 2009-12-07 2013-06-05 中兴通讯股份有限公司 一种消除透传网桥对网络拓扑的负面影响的方法及装置
CN102761463A (zh) * 2011-04-29 2012-10-31 鸿富锦精密工业(深圳)有限公司 网络设备及其在局域网内实现节能省电的方法
CN112492574A (zh) * 2016-06-28 2021-03-12 华为技术有限公司 一种负载迁移方法、装置及系统
US11496913B2 (en) 2016-06-28 2022-11-08 Huawei Technologies Co., Ltd. Load migration method, apparatus, and system

Also Published As

Publication number Publication date
EP1468528B1 (en) 2011-02-23
DE60336115D1 (de) 2011-04-07
KR20030085016A (ko) 2003-11-01
US6717950B2 (en) 2004-04-06
EP1468528A4 (en) 2008-03-19
US20030193959A1 (en) 2003-10-16
ATE499778T1 (de) 2011-03-15
WO2003063422A1 (en) 2003-07-31
EP1468528A1 (en) 2004-10-20
CA2439865A1 (en) 2003-07-31

Similar Documents

Publication Publication Date Title
CN1496632A (zh) 用在扩展局域网中的以优先级为基础的负载平衡方法和设备
CN1311377C (zh) 转寄信息封包的方法
CN1052358C (zh) 区域间多路传送报文的方法和系统
CN1262088C (zh) 分组通信系统以及路径mtu发现方法
CN1647455A (zh) 在多群集网络中进行通信的方法、连接设备及网桥
CN1642111A (zh) 路由设计方法
CN1592259A (zh) 网络用交换装置、路径管理服务器、网络接口装置及其控制方法
CN1720692A (zh) 基于多个fe、ge和10ge的n-子环结构的多业务环
CN1682512A (zh) 弹性分组环上的一种多业务支路实现方法及其设备
CN1720693A (zh) 用于弹性包环上的多业务支路的传输装置和方法
CN1499794A (zh) 通信设备中在第三层处理数据包的方法
CN1866919A (zh) 基于虚拟局域网堆叠的业务交换方法
CN1438790A (zh) 上位中继器、下位中继器及网络系统
CN1618223A (zh) 弹性多业务环
CN1324537A (zh) 支持无线网络中服务质量的方法和系统
CN101032137A (zh) 网络系统、节点及节点控制程序、网络控制方法
CN1910870A (zh) 负载分散方法、节点和控制程序
CN1477833A (zh) 局域网交换方法和局域网交换机
CN101068226A (zh) IPv4/IPv6混合环境下多媒体交互网关实现方法
CN1486102A (zh) 移动通信系统,路由器,移动节点和移动通信方法
CN1756189A (zh) 基于snmp的ip网络拓扑发现方法
CN1317756A (zh) 用户轮廓数据的管理
CN1514597A (zh) 具有多个虚拟路由器的多业务网络交换机
CN1841989A (zh) 实现有线网络内的高吞吐量带宽分配的方法和系统
CN1961531A (zh) 网络体系结构

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication