专利名称:用于桥接网络的流预留协议的制作方法
技术领域:
本公开总地涉及计算机网络,更具体而言涉及桥接计算机网络中数据流的资源分 配。
背景技术:
计算机网络中的数据常常以数据的流动(flow)或流(stream)("数据流"(data stream)或简称为"流"(stream))的形式被从源设备发送到一个或多个目的地设备(或者 说"信宿"(sink))。在许多情况下,源设备知晓该流可能需要的资源,例如一般的最大量带 宽(例如,以每秒兆字节或者说"MBps"为单位),如果该流不是非常规的,那么这个最大量 带宽在该流被传送的大部分时间中都会被大量使用。当穿过网络设备的流量(数据)超过 这些设备能够处理的量时,在网络中可能发生拥塞。例如,由于"扇入"(fan-in),即一设备 的多个输入端口接收到想从该设备的同一个端口离开的流量,该单个端口可能必须丢弃流 量或者以其他方式调整流量。例如,如果一设备具有25个能够支持100MBps的端口,并且 这些端口中的24个同时接收到要从第25个端口发送出去的5MBps的流量,则第25个端口 没有足够的资源用于所有24个传入端口的流量流动(即,5MBps乘以24是120MBps,比第 25个端口能够支持的多20MBps)。 目前存在各种协议来使得网络设备可以沿着一路径为一数据流预留或分配网络 资源(例如,带宽)。例如,资源预留协议(RSVP)是一种已知的协议(例如,IETF RFC 2205 和2750),其在第3层设备(例如,路由器)上工作,这些第3层设备可用于沿着一路径预留 带宽(第3层是根据已知的开放系统互连(OSI)参考模型的)。例如,如果一个路由器具 有能够支持100MBps的端口,则请求60MBps的第一流将被允许预留该端口上的100MBps中 的60MBps,从而确保该流具有足够的带宽。如果另一个流尝试预留同一端口上的60MBps, 则RSVP将会拒绝该预留尝试,因为在该端口上只有40MBps还没被分配。
然而,如上所述,RSVP在第3层设备(例如,路由器)上工作,而另一方面,具有第 2层设备的第2层网络(例如,网桥/交换机,因此被称为"桥接网络")不根据第3层协议 工作,从而无法使用RSVP。此外,由于第2层和第3层操作之间的某些差异,RSVP可能不适 合用于第2层中,它不是基于第2层的操作过程和实现功能来设计的。
通过参考以下结合附图的描述,将更好地明白本发明的优点,附图中相似的标号
5指示相同或功能类似的要素,其中 图1示出了示例性计算机网络(例如,桥接网络);
图2示出了示例性网络设备/节点(例如,网桥);
图3示出了示例性的流预留注册消息;
图4A-9B示出了流预留注册消息的示例性操作; 图10A-10G示出了示例性表格,这些表格示出了网桥端口上的流预留注册消息的 操作关系;并且 图11和12(相应地)示出了用于在桥接网络中管理流预留的示例性过程。
具体实施方式
概述 根据本公开的实施例,说者(talker)设备可以向一流向网络域的网桥发出说者 注册,该说者注册至少具有带宽要求以及该说者注册的或者为许诺(offering)或者为失 败(failed)的状态。另外,听者(listener)设备可以为一流发出听者注册,该听者注册 至少具有该听者注册的为请求(asking)、请求-失败(asking-failed)、就绪(ready)或就 绪-失败(ready-failed)之一的状态。响应于接收到针对同一流的说者注册和听者注册, 网络域的网桥随后可以尝试为该流分配资源,如果该网桥处于该说者设备和该听者设备之 间的流的路径上的话。该网桥随后可分别经由说者注册和听者注册的状态来通知说者设备 和听者设备是否已为该流分配资源。例如,随后,响应于接收到处于就绪或就绪_失败状态 之一的听者注册,说者设备可以相应地发起该流的传送。
描述 计算机网络通常包括多个互连的实体。实体可以由任何"源发"(即,发送)或"吸 取"(即,接收)数据帧的网络设备(例如服务器或末端站)构成。常见类型的计算机网络 是局域网("LAN"),局域网通常指的是单个建筑物或校园内的私有网络。LAN通常使用定 义通信体系结构的数据链路和物理层执行的功能(即,协议栈)的数据通信协议(LAN标 准),例如以太网、FDDI或令牌环。 —个或多个中间网络设备常用于将LAN耦合在一起并且允许相应的实体交换信 息。例如,网桥可用于在两个或更多个LAN之间提供"桥接"功能。通常,网桥是一计算机, 并且包括耦合到LAN的多个端口 。与被进而耦合到其他网桥的LAN相耦合的端口一般被称 为干线端口 ,而用于通过LAN将网桥耦合到末端站的端口一般被称为接入端口 。桥接功能 包括在源端口处从发送实体接收数据,并将该数据传输到至少一个目的地端口 ,以便转发 到接收实体。 虽然网桥可以在通信协议栈的各个级别工作,但它们通常是在第2层工作的,第 2层在0SI参考模型中被称为数据链路层,并且包括逻辑链路控制(LLC)和介质访问控制 (MAC)子层。数据链路层处的数据帧通常包括一头部,该头部包含源发消息的实体的MAC地 址(称为源地址)和该消息所被发送到的实体的MAC地址(称为目的地地址)。为了执行 桥接功能,第2层网桥检查在源端口上接收到的每个数据帧的MAC目的地地址。该帧随后 被交换到与该MAC目的地地址相关联的(一个或多个)目的地端口上。
通常称为路由器的其他设备可在更高的通信层上工作,这些更高的通信层例如是0SI参考模型中的第3层,其在传送控制协议/因特网协议(TCP/IP)网络中对应于因特网 协议(IP)层。IP层处的分组还包括含有IP源地址和IP目的地地址的头部。路由器或第 3层交换机可以将接收到的数据帧从一种LAN标准(例如,以太网)重组或转换为另一种 LAN标准(例如,令牌环)。因此,第3层设备经常用于互连不相似的子网。
图1是示例性计算机网络100的示意性框图,该计算机网络100例示性地包括由 四个LAN互连的节点/设备,例如网桥"a-c"和两个或更多个台站(例如,"说者"T和"听 者"L),如图所示。由于网络100包括网桥,并且例示性地根据第2层工作,因此网络100 可以被相应地称为"桥接网络"。本领域的技术人员将会明白,在该计算机网络中可以使用 任意数目的节点、设备、链路等等,这里示出的视图是为了简单起见。例如,虽然网桥的网络 100被示为简单的一段少量网桥,但这里描述的实施例也可以应用到网桥的"链"或"环", 例如大量网桥。本领域的技术人员还将明白,虽然这里描述的实施例是一般性描述的,但它 们可应用到任何网络。图l的计算机(桥接)网络只意图用于例示目的,并不意图限制这 里描述的实施例。另外,在网桥被具体配置用于音频和视频(AV)用途的情况下,这种网桥 可以被相应地称为"AV网桥"。 图2是示例性的节点/设备200的示意性框图,该节点/设备200可以有利地结 合这里描述的一个或多个实施例使用,例如,作为网桥或台站。该设备包括通过系统总线 250互连的多个网络接口或端口 210、一个或多个处理器220以及一存储器240。网络接口 /端口 210包含用于通过耦合到网络100的物理链路(尤其是在第2层上)传送数据的机 械、电气和信令电路。网络接口/端口可被配置为通过物理链路或无线链路利用多种不同 的通信协议来发送和/或接收数据(帧),其中例如可使用队列215,这是本领域的技术人 员将会明白的。例如,这种通信协议可包括TCP/IP、 UDP、 ATM、同步光网络(SONET)、无线协 议(例如,IEEE Std. 802. 11)、帧中继、以太网(例如,IEEE Std. 802. 3)、光纤分布数据接口 (FDDI)等等。注意,网络接口 /端口 210还可用于实现一个或多个虚拟网络接口 ,例如用于 虚拟专用网(VPN)接入或虚拟LAN(VLAN),这是本领域的技术人员将会明白的。例示性地, 网络接口 /端口 210内帧的处理可以遵照定义通信体系结构的物理链路和物理层执行的功 能的协议栈(未示出)。 存储器240包括多个存储单元,这些存储单元可被( 一个或多个)处理器220和 网络接口 /端口 210所寻址,用于存储与这里描述的实施例相关联的软件程序和数据结构。 处理器220可包括适合于执行这些软件程序和操纵这些数据结构的必要要素或逻辑。操作 系统242(例如,思科系统公司的网间(Internetworking)操作系统或者说IOSTM)的一些部 分通常存在于存储器240中并且被该(一个或多个)处理器执行,其通过调用支持在该设 备上运行的软件进程和/或服务的网络操作等等来在功能上组织该节点。这些软件进程和 /或服务可以包括例示性地简化的"进程"244(例如,对于网桥是"中间网桥进程"或"网桥 进程",而对于台站则相应地是"说者进程"或"听者进程")。对于本领域的技术人员来说很 明显的,其他类型的处理器和存储器(包括各种计算机可读介质)也可用于存储和执行与 这里描述的发明技术有关的程序指令。 网桥进程244(针对网桥(例如a-c))包含由处理器220执行的计算机可执行指 令,用于总体上执行与网桥有关的各种功能(本领域的技术人员可以认识到的,以及根据 这里描述的新颖技术的)。例如,网桥进程244的通信进程/服务可以执行由诸如各种交换/桥接协议之类的一个或多个通信协议提供的功能。这些功能可被配置为管理交换数据库(例如,生成树实例)、过滤数据库(FDB)或者包含例如用于进行交换/转发判决的转发信息数据库(FIB)。具体地,作为通信进程/服务的一部分,生成树进程可以运行以执行由诸如已知的快速STP(RSTP)和/或多重STP(MST)之类的一个或多个生成树协议(STP)提供的功能,以及这里描述的新颖技术。例示性地,RSTP和MST可被用在网络设备(网桥)上,以建立和维护一个或多个生成树实例,从而响应于拓扑变化而收敛网络。
如上所述,计算机网络中的数据常常以数据的流动或流的形式被从源设备(例如说者)发送到一个或多个目的地设备(或者说"信宿",例如听者)。在许多情况下,说者(源设备)知晓该流可能需要的资源,例如一般的最大量带宽。然而,当穿过网络设备的流量(数据)超过这些设备能够处理的量时,在网络中可能发生拥塞。目前存在各种协议来使得网络设备可以沿着一路径为一数据流预留或分配网络资源(例如,带宽)。例如,作为一种公知的协议,RSVP在第3层设备(例如,路由器)上工作,以提供这些第3层设备之间的资源预留。然而,具有第2层设备的第2层网络(例如,网桥/交换机,因此被称为"桥接网络")不根据第3层协议工作,从而无法使用RSVP。此外,由于第2层和第3层操作之间的某些差异,RSVP可能不适合用于第2层中,它不是基于第2层的操作过程和实现功能来设计的。(注意,在下文中可找到关于RSVP与这里描述的技术之间的差异的进一步论述。)
肝蹄,各隨予页帛协必 根据本公开的实施例,说者设备可以向一流向网络域的网桥发出说者注册,该说者注册至少具有带宽要求以及或者为许诺或者为失败的说者注册的状态。另外,听者设备可以为一流发出听者注册,该听者注册至少具有为请求、请求_失败、就绪或就绪_失败之一的听者注册的状态。响应于接收到针对同一流的说者注册和听者注册,网络域的网桥随后可以尝试为该流分配资源,如果该网桥处于该说者设备和该听者设备之间的该流的路径上的话。该网桥随后可分别经由说者注册和听者注册的状态来通知说者设备和听者设备是否已为该流分配资源。例如,随后,响应于接收到处于就绪或就绪_失败状态之一的听者注册,说者设备可以相应地发起该流的传送。 例示性地,这里描述的技术可以通过硬件、软件和/或固件来执行,例如根据一般"进程"244、中间网桥进程、说者进程或听者进程来执行,这取决于哪个设备在运行该进程。这各个进程(和/或服务)可被配置为根据某些传统协议以及根据这里描述的技术(例如,新协议)来工作。 作为序言,IEEE标准802. lak-2007,即多重注册协议(MRP),是一种健壮、高效的协议,用于声明在桥接网络中的每个网桥(可选地,台站)200的每个端口 210中的数据库中要注册的属性(注册218)。例如,已经定义了两个基于MRP的应用。第一个是MVRP(多播VLAN注册协议),其注册VLAN ID属性。S卩,如果台站或被配置的网桥端口需要(不需要)接收针对给定VLAN ID的帧,则它们做出(撤销)声明。如果一 VLAN ID通过MVRP被注册在一网桥端口上,则网桥知道针对该VLAN ID的该帧应当在该网桥端口上传送。在第二应用亦即匪RP(多重多播注册协议)中,所注册的属性是MAC地址,其通常是多播地址。根据匪RP的台站或被配置的网桥端口如果需要(不需要)接收针对给定地址的帧,则做出(撤销)声明。同样,如果一地址通过匪RP被注册在一网桥端口上,则该网桥知道针对该地址的该帧应当在该网桥端口上传送。
8
根据这里描述的技术,定义了两个新的协议多重有效载荷注册协议(MPRP),其是MRP的变体,添加了能够用作构建新应用的基础的能力;以及一个例如基于MPRP的这种应用/协议,多重流预留协议(MSRP)。(于是,例示性地,所注册的资源分配和从下文描述的注册创建的其他列表可被相应地存储在端口 210上的注册218内,和/或存储在其他存储器240的单元内(未示出)。) MPRP与MRP的不同之处在于MRP注册属性(在匪RP中为多播MAC地址,在MVRP中为VLAN ID),而MPRP注册{键值(key),有效载荷l对。具体而言,MPRP引入了 "有效载荷",通过该有效载荷,若干个不同的注册者可提供对具有不同有效载荷的同一键值的注册,每个{键值,有效载荷}由关联应用定义。换言之,MPRP例示性地把MRP注册的属性分离成{键值,有效载荷}对,并且用作新一类应用的基础。有效载荷与键值一起被注册,并且在给定端口上,对于给定的键值K,最多有一个{键值,有效载荷}注册。每个应用可以针对以下各项定义规则 注册如果针对{键值K,有效载荷P}的注册存在(或者不存在),并且针对{键值K,有效载荷Q)的声明被做出或撤销,那么要注册什么(键值K,有效载荷R1
传播给定一网桥端口的针对(键值K,有效载荷fl的注册(如果存在的话)以及其他网桥端口的针对键值K的注册,在该网桥端口上要做出或撤销什么{键值K,有效载荷幻声明? —般来说,用于传播MPRP键值的规则类似于传播MRP属性,即,具有相同的键值的注册可以被当作是单个注册来对待。用于传播MPRP有效载荷的规则可以由(一个或多个)关联应用任意定义。 第二个协议即多重流预留协议(MSRP)指在使得在附接到桥接网络的台站中运行的应用程序或路由器能够为要通过桥接网络发送的各个多播或单播数据流预留带宽或其他资源。MSRP例如是MPRP应用,并且执行这里描述的流预留技术。具体地,MSRP定义MPRP键值和有效载荷的内容,并且定义(例如,在说者和听者之间)操纵有效载荷的规则。根据MSRP,网桥可以为数据流分配资源,其形式是控制在给定网桥端口上要输出的帧的选择的优先级队列上的参数设定(配置)。这使得桥接网络能够提供合理的保证,即,属于被预留的流的帧将被可靠地递送,由于一条链路上的拥塞而被丢弃的机率很小。(注意,这个协议不同于"拥塞管理",拥塞管理一般关注的是使用数据平面反馈技术来实时控制数据的流。流预留关注的是为具有可预测特性的流预先预留排队资源,这些资源否则将由管理操作来控制。)此外,以这种方式,这里描述的一个或多个实施例利用与数据沿着同一生成树运行的控制协议来进行预留。 MSRP —般旨在结合AV网桥使用,但是与非AV设备的现有多播分发机制兼容并且可协同工作,只是没有递送保证和资源分配而已。另外,如下所述,MSRP与RSVP兼容(但不同)。另外,MSRP被配置为支持同一流上的多个说者、共享介质LAN、单播流、以及复制目的地地址上的流。例如,MSRP的一个实施例例示性地使用匪RP(或GMRP或IGMP)来指示听者对流的需求,以及使用基于MRP/MPRP的协议来发送说者的流预留和发送听者的响应,这与说者的流预留相合作以配置输出队列和使能流的传送,并且通知(一个或多个)说者何时网络为该数据流准备就绪。 作为介绍,以下步骤描述了下文中更详细描述的流预留协议的基本功能[OO38] 步骤1 (可选)听者(例如,L)可以通知( 一个或多个)说者(例如,T):其希望接收到流(例如,利用已知的协议,比如IEEE 802. 1D-2004GMRP、 IEEE 802. lak-2007匪RP或IETF RFC 2236/2933/3376IGMP)。 步骤2 :—个或多个说者可以发出说者注册300b,这些说者注册将以下各项通知给网络中的一个或多个网桥(例如全部网桥)a)流ID322 ;b)说者323 ;c)说者所在的方向321 ;d)带宽332、优先级337、以及流的其他QoS特性335 ;e)注册的状态331 (许诺或失败);以及f)这个流预留与其他流预留相比的相对排名336。(注意,这个步骤可在步骤3之前或之后发生。) 步骤3 :听者(或者最靠近听者的网桥)为一流发出听者注册300a。该注册包括a)流ID 322 ;b)注册分组的发送者的身份323 ;c)听者准备接收的带宽332 ;以及d)听者注册的状态331 (请求、请求_失败、就绪或就绪_失败)。 步骤4 :当步骤2和3中定义的注册相遇时,网桥可以知道它是否在该流的路径上,如果它在该路径上则尝试为该流分配资源,并且向上游和下游告知预留是否成功。
步骤5 :当(例如,而且仅当)说者接收到处于就绪或就绪-失败状态中的听者注册时,它可以开始数据流的传送,并且可以基本上确信该流应具有较低的分组丢失概率。
如上所述,例如,对于处于带宽"W"的要被递送到一 申请者端口的流"S",可以从该端口做出四类听者声明 —请求一个或多个听者希望流S通过该申请者端口 ,但不知道有去往任何听者的路径已准备好接收它。数据无法被发送。 —请求-失败一个或多个听者想要通过该申请者端口接收流S,而至少一个无法做到,因为该路径上资源缺乏,并且不知道有去往任何听者的路径已准备好接收它。数据无法被发送。 —就绪去往听者的所有已知路径都被配置为通过该申请者端口接收流S。数据可被发送。 —就绪-失败去往此申请者后面的一听者的至少一个路径为"就绪",而至少一个为"请求-失败"。数据可被发送。 另外,从一申请者端口可以做出两类说者声明,例如用于发送要从该端口发送的流"S",其具有排名"R",来自说者"T",要求带宽"W",在VLAN ID "V"上,具有MAC地址"M"和优先级"P": —许诺如果在申请者端口上已经注册就绪或就绪-失败听者声明,那么在此时,该端口可以准备好发送流S。 —失败由于在从说者通过申请者端口的路径上的某处缺乏资源,该端口无法被配置为发送流S。 这些类型可以在相应的声明或"说者/听者注册"中携带,例如如图3所示。
具体地,图3示出了根据这里描述的一个或多个实施例可使用的示例性注册消息300,其例如用于来自听者(300a)和说者(300b)的MSRP注册。如上所述,MSRP可以是新颖的MPRP的一种应用,MPRP支持{键值,有效载荷}对。这样,除了可包括用于根据各种传输协议(例如,IP、 ATM、 MPLS等等)传送消息300的各种已知信息的一个或多个头部310外,该消息还可包括键值320和有效载荷330。
听者声明/注册300a包括注册键值300,该注册键值具有对应于以下各项的一个
或多个字段(被填充以条目)
—方向321:听者。 —流ID 322 :用于匹配说者和听者注册的流标识符"S"。流ID包括流的数据帧(其可能是单播的或多播的)的VLAN ID "V"和目的地MAC地址"M",并且可以包括对网桥不透明的更高层ID信息。 —做出声明的系统的ID 323 :标识做出声明的系统(例如,听者或者附接到听者的网桥)。 另外,听者声明/注册300a包括注册有效载荷330,该注册有效载荷具有对应于以下各项的一个或多个字段(被填充以条目) —类型331 :注册的状态,请求、就绪、请求-失败、或者就绪-失败。
—带宽做出声明的端口准备接收的总带宽。例示性地,如果类型为就绪或就
绪_失败则不应当为零,而如果类型为请求或请求_失败则应当为零。 另外,说者声明/注册300b包括注册键值320,该注册键值携带与听者注册300a
相同的字段,这些字段被填充以 —方向321:说者。—流ID 322 :(与300a相同的信息)。 —做出声明的系统(说者)的ID 323 :唯一地标识许诺流的说者"T"。 说者声明/注册300b还包括注册有效载荷330,该注册有效载荷具有与听者注册
300a共享的一个或多个字段,仍被填充以 —类型331 :注册的状态,许诺或失败。 —带宽说者T要发送的流的最大带宽。 除了听者注册300a中使用的字段外,说者注册300b还可包括其他字段,如下。
—仅限MAC 334 :—个指示(例如,布尔标志),表明除了利用VLAN ID和目的地MAC地址之外,网桥无法为了转发目的而区分流。 —其他QoS信息335 :表征流的要求可能需要的其他信息,例如跳计数或延迟。 —排名336 :网桥用来解决对带宽的竞争的值。 —优先级337 :在属于该流的数据帧中要携带的优先级值。 如上所述,流ID字段332包含该数据流要使用的VLAN ID和目的地MAC地址,并
且还可包含更高层的流标识。例如,该信息可以是更高层可用来在一个目的地MAC地址上
实现多个流的工具。另外,该信息可被网桥用来区分流(其中,例如,一个具有更高层流ID
的声明不匹配具有相同VLAN ID和MAC地址但没有更高层流ID的声明)。 另外,当填充带宽字段332时,注意以下这点是很重要的桥接网络中的每个链路
对于一个以太网有效载荷字节可以具有不同量的开销。例如,802. 11无线介质一般具有
比802.3链路更多的地址和更多的帧间间隙。另外,一些链路可能携带额外的标签,例如
802. 1AE安全性头部。因此,说者和听者可以例示性地被配置为按照流所要求的每秒字节以
及按照平均以太网有效载荷大小来表达带宽。这样,在比较不同流的带宽时,每个流可能能
够利用其关于给定链路的开销的知识来将带宽和有效载荷大小信息转换成每秒比特带宽
要求,这种要求可用于简单的整数比较。
仅限MAC字段/参数334可被说者使用,使得如果许诺了使用相同的VLAN和目的地MAC地址但具有不同的更高层流ID的两个流,则某些网桥可能无法选择是否通过给定的端口转发一个流而不转发另一个(例如,所实现的东西不超过802. IQ中指定的那些的网桥,802. 1Q只提供目的地MAC地址来做出此判决)。因此,如果仅限MAC参数(指示符)为真,则发送声明的网桥表明它无法通过更高层流ID来区分流(即,而是只能基于VLAN ID或目的地MAC地址来区分流),相反,如果仅限MAC参数为假,则网桥可以区分所有存在MAC地址冲突的流。 其他QoS信息字段335可包括说者除了带宽之外可能要求的信息。例如,这种信息可以包括流中的数据帧可以忍受的最大延迟或最大跳计数(例如,其中每个网桥相应地递减相应的值,从而如果任一者变为负,则该网桥无法容纳该流,并且说者注册的类型变为失败)、流要使用的最大以太网有效载荷大小,等等。 排名字段336可以从更高层信息中得出,并且是由说者站提供的。另外,优先级字段337可以被说者站以类似的方式填充。例如,正如本领域的技术人员将会认识到的,网桥的队列215可以被区分优先级,使得"高"优先级流量在"低"优先级流量之前被传送。虽然优先级字段337可携带该优先级值(例如,一定类型的流(例如数据、语音、视频等等)全部接收特定的优先级值),排名字段336也可用于携带额外的排名,该排名可以区分或以其他方式取代优先级值。例如,所有语音数据可以以一定的优先级来运送,但是紧急呼叫可具有更高的排名,这可用于抢先于任何排名较低的语音呼叫。 注意,也可使用其他字段,例如附加新的字段或者替换现有字段。另外,在每个注册消息300中并不需要使用所有上述字段,以上的视图和描述只是一个代表性示例。
对主要控制流程的更详细描述示范了根据这里的一个或多个实施例的流预留如何要求以下两个通告是分离的 1.)说者可以提供流S,并且它具有这些特性; 2.)网桥/听者已将其队列配置为处理流S,因此传送可以开始。 如果没有这个互锁,源(说者)则可以在网络被配置为处理数据流之前开始数据
流的传送,从而干扰现有的流。此外,如下所述,这里描述的技术使得匪RP、 GMRP、 IGMP或
MSRP中的任何一个都可以用作第一通告的先驱,并且还添加失败通知,使得失败的流不会
不必要地占用资源。 具体地,图4A示出了示例性的(并且是可选的)"请求"阶段,其中同样图1的网络100包括一个说者T、一个听者L和三个网桥a-c。如图4A所示,听者L发送表明它想要一个流的请求声明(示为"A")(例如,向说话设备"请求"该流),该请求声明例示性地采取具有请求状态331的听者注册300a的形式。或者,该声明可以是匪RP声明、GMRP声明或者"被探听的"(snooped) IGMP声明,这是本领域的技术人员可以认识到的。说者T和接收网桥注册该声明。 图4B示出了示例性的"许诺"阶段,其中说者T针对一个流发出一许诺声明(被示为"0"),该许诺声明被例示性地实现为具有许诺状态331的说者注册300b。如这里所述,许诺声明可包括预留的重要性的排名336,其所要求的带宽332、其以太网优先级级别337、以及目的地MAC地址(方向321),并且可选地可包括更高层流ID 322。中间的接收网桥和任何接收听者(例如,L)注册该许诺,该许诺如上所述可以在听者的请求(上述)或就绪(下述)注册之前、期间或之后被声明/注册。 在图4C中,示出了示例性的就绪声明,其中一旦听者已经将其配置为接收该流,听者就可以发出就绪声明(具有就绪状态331的注册300a)(示为"R")。 一旦中间的网桥(例如,网桥c)已经既注册了许诺声明又注册了就绪声明,它就配置它在该端口上的输出队列(由所配置的端口上的点示出),并且传播就绪声明。注意,虽然网桥c被示为"首先"配置了其端口 (例如,作为响应),但是端口配置可以不考虑进行注册的顺序而发生,因为触发网桥配置输出端口的是输入端口上的许诺注册和输出端口上的就绪注册的存在。
最后,在图4D中,当在说者T中已经注册了就绪声明时,它知道网络已准备好接收该流。相应地,说者T可以发起数据流的传送(即,开始发送数据流)(从T到L的大箭头)。(注意,如这里所述,说者注册和听者注册中的每一个可以利用能够传送多个注册的分组/帧来传送,例如根据MPRP来传送。) 在描述了这里描述的流预留协议的主要控制流程后,图5A-8C示出了在网络100中发生一个或多个失败或冲突的各种情形,以及协议被配置为如何对其做出反应。例如,图5A-B示出了许诺失败,其中在图5A中示出了说者T再次向听者L发出许诺声明。如果网桥b和c之间的链路的资源不足以运送该流动/流(例如,带宽不足),则在确定这一点之后,网桥b将许诺注册转换/改变成失败声明(示为"F")。听者L随后知晓流预留失败了,从而不期望接收到数据。 此外,在图5B中,网桥b还将请求注册转换成请求失败声明(示为"Af")。这样,网络域100的所有网桥都知道流预留失败了,因此相应地不为该流分配/预留资源(例如,队列)。另外,说者T知道流预留失败了,并且相应地可不为该流发送任何数据。(注意,说者可以决定在不预留的情况下发送流,但是有数据被丢弃或以其他方式被调整的危险。)
图6A-D示出了示例性的就绪失败情形。例示性地,在图6A中,尚未做出请求声明。新的说者Tl和T2都发出许诺声明(注册300b,示为重叠的"0"),并且网桥b和c之间的链路只能够支持这两个流动之一。网桥b不需要选择要拒绝哪个流,因为它并不知道它是否实际在任何一个流的路径上;即,它尚未看到任何请求或就绪声明。然而,在图6B中,当听者L为两个许诺的流发送其就绪声明时(重叠的"R"),网桥c能够为两个流配置其队列,但是对于网桥b则不是如此,因为链路的带宽(或其他资源)不足。网桥b于是可以使用两个流预留的排名336来决定准许哪一个。 在图6C中,假定根据此判决,来自T2-L的流成功,而T1-L失败。相应地,网桥b发送必要声明,以告知两个说者其预留的结果,具体而言,它为T2-L流发送就绪声明(处于就绪状态的注册),并且为T1-L发送请求失败声明(处于请求_失败状态的注册)。如图6D所示,网桥b还通过把针对Tl-L流的声明更新到失败状态来告知听者L这一失败。注意,网桥c随后可能需要修改其队列配置,因为它原本是在以为两个注册都将会成功的情况下配置队列的。(还要注意,c-L端口 /链路的这种重配置可能导致一些其他流的短暂翻动,例如如果失败的新流的排名高于已经在使用c-L端口 /链路的一些流的话。)
此外,在存在多个说者(例如,Tl和T2)的情况下,说者注册300b的键值320既包括流ID也包括说者ID。这是因为MSRP假定说者不与彼此相协调,从而它们各自的带宽要求是加性的。虽然针对同一流上的多个说者的注册可能是被分别传播的,但是来自不同的说者的多个说者注册可能匹配单个听者注册,全都具有相同的流ID。因此,当计算一端口上的传出说者声明时,不同的说者的许诺注册的带宽被加在一起,并且被与听者注册可接受带宽相比较。如果说者的带宽值加起来超过了听者的可接受带宽,则队列(或介质负载)配置无法支持最不重要的说者(例如,基于排名/优先级)。例如,在群组会议模式中,在所有端点都在向所有其他端点发送/从其他所有端点接收的情况下,有可能不是所有说者都被使能。 图7简要示出了示例性的多径失败,其中来自说者T的流将被注册到两个听者LI和L2。假定一个路径(T-L1)失败(即,至少一个听者设备无法接收流),并且另一路径(T-L2)成功,则网桥b可以向说者T返回就绪失败声明(处于就绪-失败状态(例如已改变的状态)中的注册)。说者T于是知道它可以发送流(已经接收到了处于就绪_失败状态中的听者注册),但是并不是所有听者都将接收该流。另外,如上所述,听者L1知道不要期望数据,而L2知道可期望数据。 注意,可以看出,流预留控制流程构建了从(一个或多个)听者到(一个或多个)说者的一串已配置队列。在最坏情况下,需要跨网络三"趟":"请求"、"许诺"和"就绪"。虽然可以从说者向听者构建这串已配置队列,从而只需要两趟(例如,"请求"和"准许"),但是与这种增强相关联的有这样一个问题判定说者何时能够发起流的传送。例如,如果说者一接收到请求声明就开始发送流,则它将在网桥a已配置其队列之前发送(S卩,网桥a无法在传递请求声明之前配置其队列,因为它尚不知道说者在何处;这么做会浪费网桥中未处于流的路径中的队列资源)。如果网桥a配置其群组过滤数据库(FDB)以在其传递请求声明之前丢弃流,则这个问题可以得到避免,但这样的话它就必须停止任何使用同一 MAC地址的现有流动。这个方案可能使得单播流预留较笨拙,因为所有数据流动都必须停止,直到去往说者的方向已被确定为止。 另一方面,上述技术使得具备AV能力的说者可以向不具备AV能力的听者提供带宽预留的流。具体地,假定听者发出常规的IGMP、匪RP等等以请求流,并且说者发出许诺的说者注册。最靠近听者的AV网桥在知道听者非AV的情况下可以建立队列。于是,根据这里描述的一个或多个实施例,非网桥听者站不需要具备AV能力。 除了以上描述的那些失败场景外,在这里描述的流预留协议的实际应用中也可能出现其他情形。例如,图8A-8C示出了 "冲突",其中与两个不同的流相关联的MAC地址是共享的。例如,在图8A中,假定说者T和听者Ll对于相应的流具有在IP多播地址"I1"和MAC地址"M1"上工作的路径。还假定说者T和听者L2希望为一个不同的流创建针对IP多播地址"I2"、MAC地址"M2"的新路径。虽然II不同于12(第3层地址),但MAC地址(第2层)M1和M2可能是相同的(因为这对于IP是可能发生的)。如果根据该示例网桥b可以仅基于目的地MAC地址来引导帧,则它或者可能在任何给定端口上发送这两个流,或者一个也不发送。 因此,如图8B所示,网桥b可将两个许诺声明链接在一起("01+02"),从而表明如果这些流之一被接受,则网桥必须发送它们两者。这种行为是标准网桥的预期行为,并且它是因为目的地MAC地址是声明的一部分。只要添加"仅限MAC"参数334 (例如,布尔型),表明发出声明的网桥是否能够基于更高层信息来转发数据流,还是必须仅基于MAC地址来发送所有或都不发送,就可以合理地容纳上述功能。例如,如图8C所示,还假定网桥c也无法区分这些流,并且c-Ll链路/端口没有足够的带宽来运送01和02的两个流。这样,网
14桥c必须拒绝T-L1流。另一方面,网桥d可以区分这些流,从而可以抑制不想要的流(例如,T-Ll),而接受它想要的流(例如,T-L2)。 注意,根据这里的实施例可以改变流带宽或额外的QoS信息。例如,如果流的带宽必须增大,则说者可以改变说者注册的有效载荷330(例如,尤其是字段332)。该信息被向下传播到听者,听者通过增大其听者注册中的带宽来作出响应。经修改的听者注册300a随后可传播回说者站,并且中间网桥的队列215可沿着返回说者的路径被重配置。在这种情形下,说者不能以更高的速率发送,直到听者注册带宽至少与要发送的网桥一样大为止。(正如本领域的技术人员可以认识到的,这种增大的带宽可能导致流失败,如上所述。)或者,如果流的带宽必须减小,则说者站可以简单地以更低的速率发送,而不改变注册。然而,说者站应当降低其说者注册中的带宽。随着此信息被传播到听者站,沿着该路径的网桥可以将其传送选择参数调节到新的较低值(这可以使得其他许诺的流动/流被成功注册)。此外,也可以按类似的方式做出其他QoS改变。例如,对延迟或跳计数的改变可被做出并被网桥传播,并且可以致使流相应地改变其状态_变成失败或者变成不再失败。
为了终止流的传送,说者或听者可以撤销对流的注册。例如,参考图9A,为了"拆除"队列链(即,从任何已经为流分配资源的队列中清除与该流相关联的注册),如果说者已完成,则它停止为流发送数据,然后它可撤销许诺说者声明。随着许诺注册消失,就绪注册被改为以请求状态传播。当许诺注册被从听者中去除时,听者撤销其就绪注册,并且所有注册消失。相反,参考图9B,如果听者首先完成,例如,在流结束之前完成,则听者可以撤销其就绪声明。在此情形中,每个网桥依次可以i)不允许该流离开它过去在上面流动的那个网桥端口 ;ii)从端口配置中去除该流;以及iii)根据新的情形调节所有注册。如果从说者中去除了就绪注册,此时,说者可以停止该流的传送(即,如果没有其他听者仍在听-流预留不处于就绪或者就绪失败状态)。 本领域的技术人员可以认识到,MSRP和RSVP(IETF RFC 2205、2705)是类似的,其中MSRP说者声明很类似于RSVP(IETF RFC 2205、2750) "Path"消息,并且MSRP听者声明很类似于RSVP "Resv"消息。这是故意的。RSVP是许多网络管理者和设备开发者所熟悉的,并且它向第3层中的路由器提供的基本信息流动解决了与MSRP解决的问题类似的问题。然而,如上所述,RSVP在第3层上在路由器之间工作,并且使用带有请求和响应的个体PDU(协议数据单元)以及用于每个流的个体定时器。另一方面,MSRP在第2层上在网桥/交换机之间工作,并且使用MRP机制来将注册分组,并且使定时器和响应达到最低限度。此外,MSRP添加了用于向说者和听者通知预留的成功或失败以及用于将网桥的数据转发机制无法区分的流分组的工具。即,因为MRP/MPRP注册包括状态信息,所以MSRP不像RSVP中那样使用消息请求或回复(尤其是对于每个个体流)。 同时,虽然MSRP和RSVP是用于不同层的操作的不同协议,但是MSRP和RSVP可以共存并且相应地在网络内合作。例如,在MSRP和RSVP被一起使用的情形中,听者可以发送IGMP消息或匪RP或MSRP请求声明,以提示说者发送流。作为响应,说者可以发送RSVPPath消息和MSRP说者许诺声明(处于许诺状态的说者注册300b)。在接收到后,听者随后可以针对在第3层路由器处要预留的特定带宽发送RSVP Resv消息,并且还可以发送MSRP听者就绪声明(处于就绪状态中的听者注册)来发起任何第2层网桥之间的队列配置。一旦这些消息都已被接收到,说者就可以相应地开始经由第2层网桥和第3层路由器发送流。
15
注意,MSRP和RSVP之间的这种例示性的协同工作不同于传统的第2层中的RSVP消息,在这种传统的RSVP消息中,在RSVP Path消息遇到已知与网桥互连的设备的情况下,第2层数据被添加到该消息并且该消息沿着网桥被逐跳传送(对于Resv消息则反过来)。然而,这种方法在第2层上收敛起来是较慢的,因为如果在桥接网络内存在拓扑改变,那么直到新的Path消息发送为止,基于RSVP的所有预留都是错误的。与之相反,MSRP提供了一种独特的第2层流预留协议,其中MRP(MPRP)可被用于支持穿过桥接网络的所有注册(例如,一个分组中许多注册,从而需要传送的数据/流量比RSVP少得多)。另外,在第2层拓扑改变的情况下,MPRP可以非常迅速地适应(例如,尤其是在改变处于流路径中间时)。本领域的技术人员于是可以认识到,RSVP的端到端性质在第2层桥接网络中是效率不高的。
根据上述的流预留协议(例如,MSRP),桥接网络的每个设备,例如台站(说者和听者)以及中间网桥,可以被配置为根据相应进程244的运行而工作,以执行新颖的技术。
例如,当不允许共享介质(S卩,使用非共享介质)时,在准许/拒绝请求时,如上所述,听者站可以等待一说者声明,以获知特定流S的可用性和特性(例如,带宽、优先级等等)。另外,听者站可以发送请求型听者声明(例如,带宽=0),以表明它希望接收流,并且请求说者注册。当准备好接收流时,听者发送就绪型听者声明(例如,带宽^o),以指定听者准备好接收的带宽,而当无法接收流时(至少是目前无法接收),则可以发送请求_失败型听者声明(例如,带宽=0)或者它可以撤销其听者注册。说者声明可以被听者注册,以得知流预留是否成功。 另一方面,说者站可被配置为等待听者声明,以获知到某个听者想要一个流,并且当准备好发送该流时,可以发送许诺型说者注册(例如,带宽^ 0),以请求分配网桥资源。另外,说者站例示性地至少针对说者在声明的流注册所有听者声明,并且不需要发送任何没有就绪或就绪_失败听者注册的流的数据,或者按比说者针对该流的带宽或者听者针对该注册的可接收带宽之中的最小值更大的速率来发送。(即,说者站可以选择对于说者的注册带宽大于可接收带宽的任何流不发送任何数据,或者对于具有主动_失败或就绪_失败型听者注册的任何流不发送任何数据。) 此外,说者站的端口 P上的可发送流的列表("流列表")包括说者的更高层协议想要发送到端口 P的所有流(例如,说者站一般不具有不可发送的流)。另外,网桥的端口 P上的可发送流的列表包括除P外的所有端口上的所有许诺说者注册,以及针对同一流ID的多个说者注册,这多个说者注册被认为是单个注册,其使用着听者注册的带宽值的最大值,以及最佳排名R。注意,端口P上的可发送流的列表可以按2元组{排名,说者ID}来排序,从最重要的(最低整数值)到最不重要的(最高整数值)。 可发送的流(流列表)基于流冲突被逐个输出端口地加以检查/修改。如果可发送流列表中的多个许诺注册对于其流ID 322具有相同的VLANID和MAC地址,并且如果在这些注册中的任何一个中设定了仅限MAC参数334,并且如果进行处理的网桥无法在端口P上做出有关是否在此端口上输出这些流中的每一个的独立判决,则这些流形成了"冲突组"。冲突组的流被认为是可发送流列表中的单个条目,按最高排名流排序在冲突组中。这样,不与任何其他流冲突的流被认为是单流冲突组。 当经由中间网桥传播说者注册时,从最高排名到最低排名按顺序检查冲突组,并且从没有预约的流的基础开始构建针对端口 P的队列配置。如果并非冲突组中的所有流都可被成功添加到迄今为止构建的队列配置,则可以为该端口 P上的每个流发送失败声明, 并且可以禁止所有流在此端口上传送。(这些流是如果要满足服务质量(QoS)保证则无法 发送的流。)否则,如果对于冲突组中的每一个流在端口P上存在请求-失败听者注册,则 可为该组中的每个流发送失败声明,并且可以禁止所有这些流传送。相应地,这告知接收者 此冲突组的数据将不会从此端口发送,从而接收者可以释放指派给该冲突组的流的任何资 源。另一方面,如果对于冲突组中的任何流在端口 P上存在就绪或就绪-失败听者注册, 则可以为冲突组中的每个流发送许诺声明,并且可以将冲突组中的所有流添加到队列配置 中,并且可以允许所有这些流传送。(这些流是要在端口 P上配置的流。)否则,可以为冲 突组中的每个流发送许诺声明,但是可以不将流添加到队列配置中,并且可以禁止所有这 些流传送。(这些流是能够在端口P上配置的流,只要端口P上的接收者表明它准备好接收 该流。)注意,当计算流的带宽时,网桥使用来自说者注册的说者带宽以及来自匹配的听者 注册(如果存在的话)的听者带宽中的最大值。 相反,当经由中间网桥传播听者注册时,为了判定从端口 P发出什么听者声明,网 桥构造除P外的所有端口上的所有听者注册的列表。针对同一流IDS的注册可被组合成单 个条目。具体地,对于该单个条目,所得到的听者可接收带宽是所有非零的听者带宽值中的 最小值,或者如果这些带宽值都为零的话则为零。另外,对于该单个条目所传播的声明类型 在任一其他端口的注册为请求_失败或就绪_失败的情况下是请求_失败或就绪_失败, 并且在所有其他端口的注册为请求或就绪的情况下为请求或就绪。另外,对于该单个条目 所传播的声明类型在任一其他端口的注册为就绪或就绪_失败的情况下为就绪或就绪_失 败,并且在所有其他端口的注册为请求或请求_失败的情况下为请求或请求_失败。
注意,当在桥接网络中允许共享介质时,可在设备上例示性地配置某些规定以相 应地工作。具体地,作为与上述非共享介质操作的差异,说者站注册所有说者和听者声明, 并且不发送没有就绪或就绪-失败听者注册的任何流的数据,或者以比说者的带宽或者任 一听者带宽中的最小值大的速率进行发送。 此外,对于共享介质网络,网桥或说者可以例示性地在每个端口 P上构造"介质流 列表"(未示出),其中包括说者的更高层协议想要在端口 P上发送的所有冲突组以及所有 端口上的所有冲突组的所有许诺说者注册。该列表上的每一个下述冲突组被从介质流列表 中去除这种冲突组在匹配任何流的流ID S的端口 P上没有请求、就绪或就绪失败听者注 册。端口P上的介质流列表中的剩余冲突组可以按2元组{排名,说者ID}被排序,从最重 要的(最低整数值)到最不重要的(最高整数值)。(重复可以被消除-利用其说者带宽 值中的较高者以及最重要的排名R。) 另外,对于每个共享介质端口P,从最重要的到最不重要的按顺序检查介质流列表 中的冲突组,并且从没有配置的流的基础开始构造端口P所附接的流的"介质负载配置"。 例如,如果介质无法容纳冲突组,则可从列表中删除其所有流,并且如果要满足服务质量 (QoS)保证,则将从介质中去除这些流。否则,如果对于冲突组中的任何流在端口P上存在 就绪或就绪-失败听者注册,则可以将该组中的所有流添加到介质负载配置中,并且将在 该介质上运送这些流。于是,当传播说者注册时,具有共享介质的中间网桥可以将流添加到 队列配置和介质负载配置两者(或者不将流添加到这两者中的任何一个)。
参考图10A-10G的以下图表/表格示出了注册传播场景(可能性)和由此得到的结果(例如,基于非共享介质)。例如,中间网桥可以在特定端口上以各种状态注册说者或 听者,并且从而可以在该网桥的其他端口上以相应的声明来作出响应(一般而言)。以下图 表/表格从而示范了根据上述技术中的一个或多个的注册传播的例示性实施例。具体地, 如图10A所示,参考关于图10C-10G中的以下表格的论述,可以使用具有四个端口的示例性 单个网桥(例如,AV网桥)的替换视图。具体地,端口T可以具有也可以不具有针对流S的 说者注册,但是没有听者注册。端口 L1和L2各自可以具有也可以不具有针对流S的听者 注册,但没有说者注册。另外,端口 X既没有针对流S的说者注册也没有针对流S的听者注 册。另外,在图IOB中,示出了例示性的符号键,用于参考图10C-10G(注意,零带宽就绪声 明未被包括在这些表格中)。 图IOC示出了在没有来自端口 T的任何说者注册的情况下根据传播听者注册而形 成的示例性表格(例如,"请求"声明)。通常,在此情况下不应当接收就绪、就绪-失败或 请求_失败声明(最上方一行中的"N"),但是在注册正在改变时可能短暂地发生这种情 况。例如,在第一列中,没有注册,因此不存在对任何端口的声明。然而,在第二列中,听者 利用请求状态注册在端口 L2上注册,并且作为响应,该请求注册在除L2外的每个端口上被 声明。从图IOC的表格中可以相应地读取根据这里描述的技术的其他组合和适当的响应。
图IOD和IOE示出了在存在来自端口 T的许诺说者注册的情况下根据传播听者注 册而形成的表格(分成两个图)。(即,图IOD示出了第一组场景,而图IOE从图IOD剩下 的地方开始继续可能的场景,按列。)具体地,"配置?"表明从其接收到注册的那个端口是 否已针对该流被配置(例如,在该端口上是否可为该流分配资源)。注意,从图IOD和10E 中的表格可以推断,如果至少一个听者为一个流做好准备,则R(就绪状态,所有听者都可 接收流)或者Rf(就绪-失败状态,一些听者可以接收流)被传播,而如果不是,则A(请求 状态,一些听者想要流)被传播。另外,如果存在失败的路径,则Af(请求-失败状态,没有 听者能够接收流)被传播。 然而,在存在来自端口 T的失败说者注册的情况下,图10F示出了针对此特定场景 如上所述基于场景和结果可填充的另一个示例性表格。例如,如果在任何听者端口上接收 到失败路径,则在端口 T上可以传播请求-失败(Af)声明,否则,在端口 T上仍可发送请求 状态听者注册。 另一方面,图IOG示出了根据上述技术响应于说者注册的传播而填充的示例性表 格。例如,该表格的第二行是表格的输入,并且是来自先前表格的传播到端口 T的听者注册 的结果。下一行(第三行)是从端口 L接收的注册。(注意,"足够BW"答案是说者传播计 算的结果。)这样,可以看出,这里描述的技术只需要在一端口上的任何设备都不可能接收 流的情况下传播作为失败的注册。否则,失败就是不适当的。 因此,根据上述技术,图11示出了根据这里描述的一个或多个实施例用于管理流 的资源分配的简化示例性过程。此外,图12简要示出了可结合图11来理解的简化时序示 例图1200。 过程1100开始于步骤1105,并且继续到步骤1110,在步骤1110中,可选地,听者 设备(例如,L)发出针对特定流的处于请求状态的听者注册100a,即,"请求"接收该流。 如果该请求状态不需要在步骤1115中被任何中间网桥改变为请求_失败(如上所述),或 者如果步骤1110不被执行,则在1120中,说者设备(例如,T)针对特定流(例如,在步骤
181110中请求的流)发出处于许诺状态的说者注册300b。 如果在步骤1125中许诺状态保持不被任何中间网桥改变(同样如上所述),则在 步骤1130中,希望接收该流(并且能够接收该流)的接收方听者设备可以通过针对该流发 出处于就绪状态的听者注册300a来回复。(注意,如上所述,步骤1120和1130的顺序可互 换,因为除了这个响应性听者注册的例示性示例之外,它们都不是相互依赖的;即,其他触 发也可致使说者注册和听者注册中的每一个被相互独立地发送)。 另外,如果就绪状态在步骤1135中不需要被任何中间网桥改变成就绪-失败状态 (如上所述),则在步骤1140中,响应于接收到针对同一流的说者注册和听者注册,中间网 桥可尝试为流定位资源(例如,在注册中请求的带宽),如果该网桥在该流的路径上的话。 中间网桥随后可在步骤1145中相应地经由说者注册和听者注册各自的状态通知说者设备 和听者设备是否已为该流分配了资源(即,或者根据步骤1115、1125或1135,注册是否因其 他原因而失败)。 取决于通知是失败还是成功(至少部分成功),于是过程1100可继续到步骤
1150 (成功),其中说者设备可以响应于接收到处于就绪或就绪_失败状态的听者注册而发
起流的传送。然后,或者作为替换(失败),过程在步骤1155中结束。(注意,MSRP可以使
用一个或多个定时器,例如用于相应地判定何时再次刷新所有注册。) 有利地,这里描述的新颖技术管理了桥接计算机网络中对流的资源分配。通过提
供第2层资源分配机制,这些新颖技术使得可以在桥接网络上为特定的流动/流预留带宽。
具体地,上述技术在共享介质上针对去往单个目的地地址的多个流工作。此外,上述技术比
起当前的方案(例如,针对第3层的RSVP)更健壮并且发送更少的分组。另外,这里描述的
一个或多个实施例的动态方面减轻了对繁重且低效的手工配置的需求。 另外,尝试提供上述的服务和特征集的其他技术是不完整的、不那么健壮和/或
更浪费带宽的,并且经常不会通知说者网桥和听者已经重配置了其排队机制以便准备好
运送和吸收数据流;即,说者不知道何时它可以发送数据流。这种反馈的缺乏例如造成了不
可能支持去往同一目的地地址的多个不同的流动,这对于从路由器桥接到路由器的流量而
言是一个严重缺陷。构建从说者到听者的已配置队列的轨迹还导致在新的、重要的流未能
找到足够的带宽来到达其目的地时发生不必要的翻动。 虽然已经示出和描述了管理桥接计算机网络中对流的资源分配的例示性实施例, 但是应当理解,在本发明的精神和范围内可以进行各种其他适应性改变和修改。前述描述 针对的是本发明的特定实施例。然而,很明显,可以对所描述的实施例进行其他变化和修 改,而仍保持它们的一些或全部优点。例如,明确地设想到,这里描述的组件和/或元件可 以实现为软件(包括具有在计算机上执行的程序指令的计算机可读介质)、硬件、固件或其 组合。相应地,本说明书应当被理解为示例,而不应当以其他方式限制本发明的范围。因此, 权利要求的目的是涵盖落在本发明的真实精神和范围内的所有这种变化和修改。
权利要求
一种方法,包括从说者设备向网络域的网桥发出针对一流的说者注册,该说者注册至少具有带宽要求以及该说者注册的或者为许诺或者为失败的状态;从听者设备向所述网络域的网桥发出针对一流的听者注册,该听者注册至少具有该听者注册的为请求、请求-失败、就绪或就绪-失败之一的状态;响应于在所述网络域的一网桥上接收到针对同一流的说者注册和听者注册,在该网桥处于所述说者设备和所述听者设备之间的该流的路径上的情况下,尝试为该流分配资源;以及经由所述说者注册和所述听者注册的各自的状态来通知所述说者设备和所述听者设备是否已为该流分配资源。
2. 如权利要求l所述的方法,还包括响应于接收到处于就绪或就绪_失败状态之一的听者注册,从所述说者设备发起所述 流的传送。
3. 如权利要求l所述的方法,还包括由所述听者设备利用处于请求状态的听者注册来请求从所述说者设备发送一流。
4. 如权利要求3所述的方法,还包括在沿着所述流的路径的一网桥处,判定至少一个进行请求的听者设备无法接收所述 流;以及作为响应,将所述听者注册的状态改变到请求-失败。
5. 如权利要求1所述的方法,还包括如果所述听者设备被配置为接收所述流,则所述听者设备利用处于就绪状态的听者注 册来对所述说者注册做出响应。
6. 如权利要求5所述的方法,还包括在沿着所述流的路径的一网桥处,判定至少一个听者设备无法接收所述流;以及 作为响应,将所述听者注册的状态改变到就绪-失败。
7. 如权利要求1所述的方法,还包括 从所述说者设备发出处于许诺状态的说者注册。
8. 如权利要求7所述的方法,还包括在沿着所述流的路径的一网桥处,判定该网桥的一相应端口无法为所述流分配资源;以及作为响应,将要从该端口发送的所述说者注册的状态改变为失败。
9. 如权利要求l所述的方法,还包括判定沿着所述流的路径的一网桥的端口由于资源不足而无法向所述流分配资源。
10. 如权利要求l所述的方法,其中,所述说者注册和听者注册各自具有流标识(ID)。
11. 如权利要求l所述的方法,其中,所述说者注册具有服务质量(QoS)要求、排名和优 先级值中的至少一种。
12. 如权利要求l所述的方法,其中,所述听者注册具有带宽值,该带宽值指示出所述 听者设备准备为所述流接收的带宽。
13. 如权利要求l所述的方法,其中,所述说者注册具有仅限介质访问控制(MAC)指示符,用于表明属于所述路径的网桥只能够利用所述流中的虚拟局域网(VLAN)标识符(ID)或目的地MAC地址来区分流。
14. 如权利要求1所述的方法,还包括在能够传送多个注册的分组中传送所述说者注册和所述听者注册中的至少一个。
15. —种节点,包括一个或多个网络接口 ,适合于发送和接收分组,这些网络接口具有一个或多个可分配的资源;处理器,耦合到所述网络接口并且适合于运行一个或多个进程;以及存储器,适合于存储所述处理器能够运行的网桥进程,所述网桥进程在被运行时能够操作以用于i)接收来自说者设备的针对一流的说者注册,该说者注册至少具有带宽要求以及该说者注册的或者为许诺或者为失败的状态;ii)接收来自听者设备的针对一流的听者注册,该听者注册至少具有该听者注册的为请求、请求_失败、就绪或就绪_失败之一的状态;iii)响应于接收到针对同一流的说者注册和听者注册,在该节点处于所述说者设备和所述听者设备之间的该流的路径上的情况下,尝试为该流分配资源;以及iv)经由所述说者注册和所述听者注册的各自的状态来通知所述说者设备和所述听者设备是否已为该流分配资源。
16. 如权利要求15所述的节点,其中所述网桥进程还能够操作以用于接收来自请求从所述说者设备发送流的听者设备的处于请求状态的听者注册;判定至少一个进行请求的听者设备无法接收所述流;以及作为响应,将所述听者注册的状态改变到请求-失败。
17. 如权利要求15所述的节点,其中所述网桥进程还能够操作以用于接收来自听者设备的处于就绪状态的听者注册,该听者设备在被配置为接收所述流的情况下对所述说者注册做出响应;判定至少一个听者设备无法接收所述流;以及作为响应,将所述听者注册的状态改变到就绪-失败。
18. 如权利要求15所述的节点,其中所述网桥进程还能够操作以用于接收来自所述说者设备的处于许诺状态的说者注册;判定该网桥的一相应接口无法为所述流分配资源;以及作为响应,将要从该接口发送的所述说者注册的状态改变为失败。
19. 如权利要求15所述的节点,其中所述网桥进程还能够操作以用于在能够传送多个注册的分组中传送所述说者注册和所述听者注册中的至少一个。
20. —种系统,包括网络域的一个或多个网桥;说者设备,被配置为针对一流向所述网桥发出说者注册,该说者注册至少具有带宽要求以及该说者注册的或者为许诺或者为失败的状态;听者设备,被配置为针对一流向所述网桥发出听者注册,该听者注册至少具有该听者注册的为请求、请求_失败、就绪或就绪_失败之一的状态;其中所述网桥被配置为响应于接收到针对同一流的说者注册和听者注册,在该网桥处于所述说者设备和所述听者设备之间的该流的路径上的情况下,尝试为该流分配资源,并且经由所述说者注册和所述听者注册的各自的状态来通知所述说者设备和所述听者设备 是否已为该流分配资源。
全文摘要
在一个实施例中,说者设备可以为一流向网络域的网桥发出说者注册,该说者注册至少具有带宽要求以及该说者注册的或者为许诺或者为失败的状态。另外,听者设备可以为一流发出听者注册,该听者注册至少具有该听者注册的为请求、请求-失败、就绪或就绪-失败之一的状态。响应于接收到针对同一流的说者注册和听者注册,网络域的网桥随后可以尝试为该流分配资源,如果该网桥处于该说者设备和该听者设备之间的该流的路径上的话。该网桥随后可分别经由说者注册和听者注册的状态来通知说者设备和听者设备是否已为该流分配资源。
文档编号G06F15/16GK101779198SQ200880103143
公开日2010年7月14日 申请日期2008年8月15日 优先权日2007年8月15日
发明者诺曼·W·芬恩 申请人:思科技术公司