用于在通信故障时支持分布式中继控制协议(DRCP)操作的方法和系统与流程

文档序号:16860836发布日期:2019-02-15 19:47阅读:271来源:国知局
一般来说,本发明的实施例涉及链路聚合,更具体来说,涉及用于为链路聚合群组(LAG)实现分布式弹性网络互连(DRNI)的方法和设备。
背景技术
::如图1A所示,链路聚合是用于聚合网络中的一对节点120、122之间的多个链路以使得能够在参与链路聚合群组(LAG)101的每个链路上传送用户数据的网络配置和过程(例如,参见电气和电子工程师协会(IEEE)标准802.1AX)。以这种方式聚合多个网络连接可以在单个连接可维持的吞吐量之外增加吞吐量,和/或可用于在链路之一发生故障的情况下提供弹性。“分布式弹性网络互连”(DRNI)102(参见2013年2月1日发布的题为“DraftStandardforLocalandMetropolitanAreaNetworks–LinkAggregation”的IEEEP802.1AX-REVTM/D1.0的第8条款,它以引用的方式全文并入到本文)规定了链路聚合的扩展以便能够在甚至多于两个节点之间(例如,在如图1B所示的四个节点K、L、M和O之间)的网络接口上使用链路聚合。如图1B所示,LAG形成在网络150和网络152之间。更具体来说,LAG形成在LAG虚拟节点或“门户”112、114之间。第一LAG虚拟节点或门户112包括第一节点(K)和第二节点(L)。第二LAG虚拟节点或门户114包括第三节点(M)和第四节点(O)。这些节点又可称为“门户系统”。注意,第一和第二LAG虚拟节点或门户112、114可以在门户中包含单个或多于两个节点。LAG节点K和M作为对等节点连接,并且LAG节点L和O也作为对等节点连接。如本申请书中所使用,“LAG虚拟节点”是指上文所论述的IEEE文献中的DRNI门户(即,对于它们的相应对等看起来像是单个节点的两个或两个以上节点)。另外,虚拟节点或门户112“包括”两个节点K和L的陈述意味着通过节点K、L仿真虚拟节点或门户112,这可称为“仿真系统”。类似地,虚拟节点或门户114“包括”两个节点M、O的陈述意味着通过节点M、O仿真虚拟节点或门户114。注意,链路聚合群组161也形成在K-M和L-O链路之间。参与LAG的多个节点对于LAG中的它们的对等同伴看起来像是具有单个系统ID的相同的虚拟节点或门户。系统ID用于标识每个节点(例如,节点K、节点L、节点M和节点O)。系统ID包含于在LAG的各个同伴节点之间(例如,在K和M之间或在L和O之间)发送的链路聚合控制协议数据单元(LACPDU)中。系统ID可基于门户的组成节点的标识符利用任何个别标识符或其任意组合来生成。对应LAG虚拟节点或门户的共同且唯一的系统ID可以一致地生成。因此,如图1B所示,节点K和节点L属于相同网络150,它们是相同DRNI门户112(即,相同LAG虚拟节点)的一部分,并且使用仿真LAG虚拟节点112的共同系统ID“K”。类似地,网络152的节点M和O被节点K和L视为是具有系统ID“M”的单个LAG虚拟节点或门户114。图1B还示出特定服务的DRNI链路分配(见图1B中的K和M之间的加粗链路)。分配的链路是对于特定服务在两个工作节点K和M之间的工作链路,而未分配链路可以作为两个保护节点L和O之间的保护链路提供。接口的服务分配可涉及虚拟局域网(VLAN),并且服务的标识符可以是VLAN标识符(VID),例如服务VID(即,“S-VID”)(通常标识网络-网络接口(NNI)上的服务)或客户VID(即,“C-VID”)(通常标识用户-网络接口(UNI)上的服务)。(注意,骨干-VID与S-VID难以区分,因为它们具有相同的以太网类型)。在图1B的实例中,将服务分配给上面的链路(在上面的节点K、M之间)。因此,选择上面的链路作为“工作”链路,并且下面的链路(在节点L、O之间)是“备用”链路或“保护”链路。服务链路分配、即对于正向和反向方向中的帧传输使用相同物理链路是非常可取的。尽管图1B示出DRNI门户112和114均包含两个节点,但是DRNI门户不限于此。每个门户可包含一到三个节点。图1C示出备选实施例中的DRNI。参考图1C,链路聚合群组131在一端包含门户142(一个网络装置130),并在另一端包含门户144(两个网络装置132和134)。并且注意,图1C示出特定服务的DRNI链路分配(见网络装置130和134之间的加粗链路)。分配的链路是特定服务的两个工作节点(网络装置130和134)之间的工作链路,而未分配链路可以作为两个保护节点(网络装置130和132)之间的保护链路提供。工作节点在该配置中是单个节点,但是它可包含不同的聚合端口集合以用于连接门户142和144之间的工作和保护链路。服务供应商利用链路聚合群组的各种实施例(例如,如图1A-C所示的和其它备选DRNI系统)来向最终用户提供服务。如何提供服务、特别是如何通过DRNI系统提供服务是个挑战。技术实现要素:公开一种在网络装置处在通信故障时支持链路聚合群组中的分布式弹性网络互连(DRNI)的方法。所述网络装置和邻居网络装置被包括在所述链路聚合群组的第一门户中,其中所述第一门户经由所述链路聚合群组的链路与包括两个或更多个远程网络装置的第二门户耦合,其中所述远程网络装置之一是所述链路聚合群组的所述网络装置的同伴网络装置,并且其中所述网络装置使用门户内链路(IPL)经由门户内端口(IPP)在通信上耦合到所述邻居网络装置。所述方法开始于确定所述网络装置不再与所述邻居网络装置通信。所述网络装置然后确定所述同伴网络装置不再与所述同伴网络装置的邻居网络装置通信。所述网络装置确定所述第一门户具有比所述第二门户更高的门户优先级,其中向每个门户指派门户优先级,并且它确定所述网络装置具有比所述邻居网络装置更低的网络装置优先级,其中向每个网络装置指派网络装置优先级。然后,所述网络装置停止在所述网络装置处传送和接收所述链路聚合群组的帧。公开一种在通信故障时支持链路聚合群组中的分布式弹性网络互连(DRNI)的网络装置。所述网络装置和邻居网络装置被包括在所述链路聚合群组的第一门户中,其中所述第一门户经由所述链路聚合群组的链路与包括两个或更多个远程网络装置的第二门户耦合,其中所述远程网络装置之一是所述链路聚合群组的所述网络装置的同伴网络装置,并且其中所述网络装置使用门户内链路(IPL)经由门户内端口(IPP)在通信上耦合到所述邻居网络装置。所述网络装置包括耦合到所述链路聚合群组的物理或聚合链路的端口以及耦合到所述端口的网络处理器。所述网络处理器执行DRNI功能。所述DRNI功能操作以便确定所述网络装置不再与所述邻居网络装置通信,以及确定所述同伴网络装置不再与所述同伴网络装置的邻居网络装置通信。它还操作以便确定所述第一门户具有比所述第二门户更高的门户优先级,其中向每个门户指派门户优先级,以及确定所述网络装置具有比所述邻居网络装置更低的网络装置优先级,其中向每个网络装置指派网络装置优先级。所述DRNI功能还操作以便引起所述端口停止在所述网络装置处传送和接收所述链路聚合群组的帧。公开了一种在网络装置处在通信故障时支持链路聚合群组中的分布式弹性网络互连(DRNI)的非暂时性机器可读存储介质。所述存储介质其中存储有指令,所述指令在由处理器执行时,引起所述处理器执行操作。所述网络装置和邻居网络装置被包括在所述链路聚合群组的第一门户中,其中所述第一门户经由所述链路聚合群组的链路与包括两个或更多个远程网络装置的第二门户耦合,其中所述远程网络装置之一是所述链路聚合群组的所述网络装置的同伴网络装置,并且其中所述网络装置使用门户内链路(IPL)经由门户内端口(IPP)在通信上耦合到所述邻居网络装置。所述操作包括确定所述网络装置不再与所述邻居网络装置通信,以及确定所述同伴网络装置不再与所述同伴网络装置的邻居网络装置通信。所述操作还包括确定所述第一门户具有比所述第二门户更高的门户优先级,其中向每个门户指派门户优先级;确定所述网络装置具有比所述邻居网络装置更低的网络装置优先级,其中向每个网络装置指派网络装置优先级;以及停止在所述网络装置处传送和接收所述链路聚合群组的帧。公开在网络装置处在通信故障时支持链路聚合群组中的分布式弹性网络互连(DRNI)的另一种方法。所述网络装置和邻居网络装置被包括在所述链路聚合群组的第一门户中,其中所述第一门户经由所述链路聚合群组的链路与包括两个或更多个远程网络装置的第二门户耦合,其中所述远程网络装置之一是所述链路聚合群组的所述网络装置的同伴网络装置,并且其中所述网络装置使用门户内链路(IPL)经由门户内端口(IPP)在通信上耦合到所述邻居网络装置,所述方法开始于确定所述网络装置从所述同伴网络装置接收业务。所述方法继续确定在所述链路聚合群组的所述第一门户中所述网络装置耦合到所述邻居网络装置;确定从所述同伴网络装置接收的操作密钥已被更新;确定所述网络装置不再与所述邻居网络装置通信;以及在确定所述第一门户具有比所述第二门户更高的门户优先级时,停止在所述网络装置处传送和接收所述链路聚合群组的帧,其中向每个门户指派门户优先级。公开在通信故障时支持链路聚合群组中的分布式弹性网络互连(DRNI)的另一种网络装置。所述网络装置和邻居网络装置被包括在所述链路聚合群组的第一门户中,其中所述第一门户经由所述链路聚合群组的链路与包括两个或更多个远程网络装置的第二门户耦合,其中所述远程网络装置之一是所述链路聚合群组的所述网络装置的同伴网络装置,并且其中所述网络装置使用门户内链路(IPL)经由门户内端口(IPP)在通信上耦合到所述邻居网络装置。所述网络装置包括耦合到所述链路聚合群组的物理或聚合链路的端口以及耦合到所述端口的网络处理器。所述网络处理器执行DRNI功能。所述DRNI功能操作以便确定所述网络装置从所述同伴网络装置接收业务,还操作以便确定在所述链路聚合群组的所述第一门户中所述网络装置耦合到所述邻居网络装置,还操作以便确定从所述同伴网络装置接收的操作密钥已被更新,还操作以便确定所述网络装置不再与所述邻居网络装置通信,并且还操作以便在确定所述第一门户具有比所述第二门户更高的门户优先级时,引起所述端口停止在所述网络装置处传送和接收所述链路聚合群组的帧,其中向每个门户指派门户优先级。公开了在网络装置处在通信故障时支持链路聚合群组中的分布式弹性网络互连(DRNI)的另一种非暂时性机器可读存储介质。所述存储介质其中存储有指令,所述指令在由处理器执行时,引起所述处理器执行操作。所述网络装置和邻居网络装置被包括在所述链路聚合群组的第一门户中,其中所述第一门户经由所述链路聚合群组的链路与包括两个或更多个远程网络装置的第二门户耦合,其中所述远程网络装置之一是所述链路聚合群组的所述网络装置的同伴网络装置,并且其中所述网络装置使用门户内链路(IPL)经由门户内端口(IPP)在通信上耦合到所述邻居网络装置。所述操作包括确定所述网络装置从所述同伴网络装置接收业务,以及确定在所述链路聚合群组的所述第一门户中所述网络装置耦合到所述邻居网络装置。所述操作还包括确定从所述同伴网络装置接收的操作密钥已被更新;确定所述网络装置不再与所述邻居网络装置通信;以及在确定所述第一门户具有比所述第二门户更高的门户优先级时,停止在所述网络装置处传送和接收所述链路聚合群组的帧,其中向每个门户指派门户优先级。一种支持链路聚合群组中的分布式弹性网络互连(DRNI)的计算机程序,所述计算机程序包括指令,所述指令在至少一个处理器上执行时使得所述至少一个处理器执行上面的方法。因此,本发明的实施例提供了有效的方式来协调邻居节点和同伴节点的状态,使得没有重复的业务扰乱在实现DRCP的链路聚合群组中的业务接收。附图说明通过参考以下描述和用于说明本发明的实施例的附图,可以最好地理解本发明。图中:图1A是在两个网络装置之间的链路聚合群组的一个实施例的图。图1B是经由链路聚合群组连接两个网络的两个门户的一个实施例的图。图1C是经由链路聚合群组连接两个网络的两个门户的另一个实施例的图。图2是链路聚合子层的一个实施例的图。图3A是基本分布式中继系统的一个实施例的图。图3B是从两个门户系统创建的仿真系统的一个实施例的图。图4是分布式中继的两个DR功能的一个实施例的图。图5是DRCPDU数据结构的图。图6A是分布式中继控制协议(DRCP)状态的图。图6B是DRCP的一个实施例的图。图6C是根据本发明一个实施例的DRCPDU结构的拓扑状态字段。图7是示出状态机中的关系的流程图。图8是示出接收机的状态机的流程图。图9是示出周期性传输的状态机的流程图。图10是示出门户系统机的流程图。图11是示出DRNI和聚合器机器操作的流程图。图12A-B是示出DRNIIPP机器状态的流程图。图13是实现DRNI的网络装置的一个实施例的图。图14是根据本发明一个实施例的DRCPDU数据结构的另一个图。图15是根据本发明一个实施例示出状态机中的关系的另一个流程图。图16是根据本发明一个实施例示出接收机的状态机的另一个流程图。图17是根据本发明一个实施例示出周期性传输的状态机的另一个流程图。图18是根据本发明一个实施例示出门户系统机的另一个流程图。图19是示出根据本发明一个实施例在丧失与它的邻居节点的通信时DRCP节点的操作的流程图。图20是示出根据本发明一个实施例在接收多个业务流时在与它的邻居节点协调时DRCP节点的操作的流程图。图21是根据本发明一个实施例的门户拓扑的图。图22是根据本发明一个实施例的聚合器端口接收状态机的图。图23是根据本发明一个实施例的网关分发状态机的图。图24是根据本发明一个实施例的IPPN接收状态机的图。图25是根据本发明一个实施例的DRCPDU数据结构的另一个图。图26A示出根据本发明一个实施例的聚合端口的对话掩码TLV。图26B示出根据本发明一个实施例的聚合端口的对话掩码TLV内的对话掩码状态字段。图27示出根据本发明一个实施例在通信故障状况时在与它的邻居节点协调时DRCP节点的操作。图28示出根据本发明一个实施例在通信故障时DRCP节点的操作。图29是根据本发明一个实施例的DRCPDU结构的另一个拓扑状态字段。图30示出根据本发明一个实施例的网络/IPL共享机。图31示出根据本发明一个实施例在节点处进行网络/IPL共享的方法。图32示出根据本发明一个实施例通过包含DRCPDU结构的帧进行通信的方法。图33示出根据本发明一个实施例用于在DRNI链路聚合群组的节点中与邻居同步的方法。图34示出根据本发明一个实施例用于更新分布式弹性网络互连(DRNI)中的节点的操作状态的方法。图35示出根据本发明一个实施例用于在分布式弹性网络互连(DRNI)中的DRCP节点处为聚合器或网关配置对话ID的集合的方法。图36示出根据本发明一个实施例用于在分布式弹性网络互连(DRNI)中的DRCP节点处为IPP配置对话ID的集合的方法。具体实施方式在以下描述中,阐述了众多具体细节。但是,将理解,没有这些具体细节也可实践本发明的实施例。在其它情况下,没有详细示出公知的电路、结构和技术,以免使本描述晦涩难懂。但是,本领域技术人员将明白,没有这些具体细节也可实践本发明。在其它情况下,没有详细示出控制结构、门级电路和全软件指令序列,以免使本发明晦涩难懂。利用所包含的描述,本领域技术人员将能够在没有过多实验的情况下实现合适的功能性。说明书中提到“一个实施例”、“实施例”、“实例实施例”等时表示,所描述的实施例可以包含特定特征、结构或特性,但不是每个实施例都一定包含该特定特征、结构或特性。而且,这些短语不一定指相同的实施例。此外,当结合一个实施例描述特定特征、结构或特性时,主张本领域技术人员知道如何结合其它实施例实现该特定特征、结构或特性,而不管是否进行了明确描述。术语本描述中可以使用以下术语。执行者:链路聚合控制协议(LACP)交换中的本地实体(即,节点或网络装置)。聚合密钥:与每个聚合端口相关联并与聚合系统的每个聚合器相关联的参数,用于标识可以聚合在一起的那些聚合端口。共享相同聚合密钥值的聚合系统中的聚合端口潜在地能够聚合在一起。聚合端口:由聚合器支持的聚合系统中的服务接入点(SAP)。聚合系统:出于聚合的目的(尤其)包括一个或多个聚合端口的任意群组的可唯一标识的实体。聚合链路的一个实例出现在两个聚合系统之间。物理装置可以包括单个聚合系统或多于一个聚合系统。聚合客户端:就在链路聚合子层上方的分层实体,链路聚合子层为其提供内部子层服务(ISS)的实例。对话:从一个端站传送到另一个端站的帧集合,其中所有帧形成有序序列,并且其中通信端站要求在所交换的帧集合中维持排序。对话ID:利用值(例如,在04095范围内)来标识对话的标识符。数据终端设备(DTE):连接至局域网的任何数据源或目的地。分布式中继(DR):通过构成门户的每个聚合系统中的DR功能分布在门户上的功能实体,它将外出帧从网关分发给聚合器,并将进入帧从聚合器分发给网关。分布式弹性网络互连(DRNI):扩展成包括门户和聚合系统中的每一个或两个(或两个以上)门户的链路聚合。DR功能:驻留在单个门户系统内的分布式中继的部分。网关:将分布式中继连接至系统的连接,它通常是虚拟的(不是系统之间的物理链路),它由网关链路和两个网关端口组成。网关对话ID:用于选择经过网关的帧的对话ID值。网关对话ID:用于选择经过网关的帧的对话ID值。内部子层服务(ISS):在IEEEStd802.1AC-2012中定义的MAC服务的扩增版本。门户内链路(IPL):用于连接构成分布式中继的DR功能的链路。链路聚合群组(LAG):对于聚合器客户端看起来就好像它们是单个链路一样的链路群组。链路聚合群组可以连接两个聚合系统、聚合系统和门户、或两个门户。一个或多个对话可以与作为链路聚合群组的一部分的每个链路相关联。同伴:聚合链路控制协议交换中的远程实体(即,节点或网络装置)。端口对话标识符(ID):用于选择经过聚合端口的帧的对话标识符值。门户:DRNI的一端;包括一个或多个聚合系统,每个聚合系统具有共同构成链路聚合群组的物理链路。门户的聚合系统共同协作以便仿真整个链路聚合群组所附连的单个聚合系统的存在。门户系统号:唯一地标识它的门户内的门户系统的整数(例如,从1到3,包含1和3)。选择算法:用于将帧指派给对话ID以及将对话ID指派给聚合端口和网关的算法。服务ID:从帧的报头(VID、I-SID等)提取的标识与该帧相关联的服务实例的值。服务实例:服务实例是服务接入点(SAP)的集合,从而使得呈现给一个SAP的Data.Request原语可导致在该集合中的一个或多个其它SAP处出现Data.Indication原语。在操作人员和客户的背景下,由操作人员赋予特定客户对该集合的所有SAP的接入权。类型/长度/值(TLV):由顺序类型、长度和值字段组成的信息元素的短且可变长度的编码,其中类型字段标识信息的类型,长度字段指示八位组的信息字段的长度,并且值字段包含信息本身。类型值在本地定义,并且在该标准中定义的协议内需要是唯一的。在以下描述和权利要求书中,可以使用术语“耦合”和“连接”及其派生词。应理解,这些术语不是要彼此同义的。“耦合”用于指示两个或两个以上元件彼此共同协作或交互,它们可以或者可以不与彼此直接物理或电接触。“连接”用于指示在彼此耦合的两个或两个以上元件之间建立通信。本文中所使用的“集合”是指任何正整数的项构成一个项。电子装置(例如,端站、网络装置)利用诸如非暂时性机器可读介质(例如,诸如磁盘、光盘、只读存储器、闪速存储器装置、相变存储器的机器可读存储介质)和暂时性机器可读传输介质(例如,电、光、声或其它形式的传播信号,如载波、红外信号)的机器可读介质(在内部和/或通过网络与其它电子装置)存储和传送代码(由软件指令组成,例如包括指令的计算机程序)和数据。另外,这些电子装置还包括硬件,例如耦合到一个或多个其它组件(例如,一个或多个非暂时性机器可读存储介质(用于存储代码和/或数据)和网络连接(利用传播信号传送代码和/或数据))的一个或多个处理器的集合,并且在一些情况下还包括用户输入/输出装置(例如,键盘、触摸屏和/或显示器)。处理器的集合和其它组件的耦合通常通过电子装置内的一个或多个互连(例如,总线和可能的桥接器)。因此,给定电子装置的非暂时性机器可读介质通常存储指令以便在该电子装置的一个或多个处理器上执行。本发明的一个实施例的一个或多个部分可以利用软件、固件和/或硬件的不同组合来实现。如本文中所使用,网络装置(例如,路由器、交换机、桥接器)是包括硬件和软件的一台联网设备,它在通信上互连网络上的其它设备(例如,其它网络装置、端站)。一些网络装置是对多个联网功能(例如,路由、桥接、交换、第2层聚合、会话边界控制、服务质量和/或订户管理)提供支持和/或对多个应用服务(例如,数据、语音和视频)提供支持的“多服务网络装置”。订户端站(例如,服务器、工作站、膝上型计算机、上网本、掌上型计算机、移动电话、智能电话、多媒体电话、互联网语音协议(VOIP)电话、用户设备、终端机、便携式媒体播放器、GPS单元、游戏系统、机顶盒)访问在互联网上提供的内容/服务、和/或在敷设在(例如,穿隧通过)互联网上的虚拟专用网络(VPN)上提供的内容/服务。这些内容和/或服务通常由属于服务或内容供应商的一个或多个端站(例如,服务器端站)或参与对等(P2P)服务的端站提供,并且可以包括例如公共网页(例如,免费内容、店面、搜索服务)、私人网页(例如,提供email服务的用户名/密码访问的网页)、和/或VPN上的公司网络。通常,订户端站(例如,通过(有线或无线地)耦合到接入网络的客户驻地设备)耦合到边缘网络装置,边缘网络装置(例如,通过一个或多个核心网络装置)耦合到其它边缘网络装置,这些其它边缘网络装置耦合到其它端站(例如,服务器端站)。网络装置通常分隔成控制平面和数据平面(有时称为转发平面或媒体平面)。在网络装置是路由器(或实现路由功能性)的情况下,控制平面通常确定将如何路由数据(例如,分组)(例如,数据的下一跳和该数据的外发端口),而数据平面则负责转发该数据。例如,控制平面通常包括与其它网络装置通信以便交换路线并基于一个或多个路由度量选择那些路线的一个或多个路由协议(例如,诸如边界网关协议(BGP)(RFC4271)的外部网关协议、内部网关协议(IGP)(例如,开放式最短路径优先(OSPF)(RFC2328和5340)、中间系统到中间系统(IS-IS)(RFC1142)、路由信息协议(RIP)(版本1RFC1058、版本2RFC2453和下一代RFC2080))、标签分发协议(LDP)(RFC5036)、资源预留协议(RSVP)(RFC2205、2210、2211、2212以及RSVP-业务工程(TE):用于LSP隧道的RSVP的扩展RFC3209、通用多协议标签交换(GMPLS)信令RSVP-TERFC3473、RFC3936、4495和4558))。另外,控制平面通常还包括ISO层2控制协议,例如快速生成树协议(RSTP)、多生成树协议(MSTP)和SPB(最短路径桥接),它们通过各种标准团体标准化(例如,IEEEStd802.1aq-2012中定义了SPB)。路线和邻接存储在控制平面上的一个或多个路由结构(例如,路由信息库(RIB)、标签信息库(LIB)、一个或多个邻接结构)中。控制平面用基于路由结构的信息(例如,邻接和路线信息)将数据平面编程。例如,控制平面将邻接和路线信息编程到数据平面上的一个或多个转发结构(例如,转发信息库(FIB)、标签转发信息库(LFIB)和一个或多个邻接结构)中。数据平面在转发业务时使用这些转发和邻接结构。每个路由协议基于某些路线度量(对于不同路由协议,度量可以不同)将路线条目下载到主要RIB。每个路由协议可以将包括没有下载到主要RIB的路线条目在内的路线条目存储在本地RIB(例如,OSPF本地RIB)中。管理主要RIB的RIB模块从通过路由协议(基于度量集合)下载的路线中选择路线,并将选择的那些路线(有时称为活动路线条目)下载到数据平面。RIB模块还可使得在路由协议之间重新分发路线。对于层2转发,网络装置可以在数据中存储用于基于层2信息转发该数据的一个或多个桥接表。通常,网络装置包括一个或多个线卡的集合、一个或多个控制卡的集合以及可选的一个或多个服务卡(有时称为资源卡)的集合。这些卡通过一个或多个互连机制耦合在一起(例如,第一全网格耦合线卡,而第二全网格耦合所有卡)。线卡的集合构成数据平面,而控制卡的集合提供控制平面并通过线卡与外部网络装置交换分组。服务卡的集合可以提供专门处理(例如,第4层到第7层服务(例如,防火墙、互联网协议安全(IPsec)(RFC4301和4309)、入侵检测系统(IDS)、对等(P2P)、IP语音(VoIP)会话边界控制器、移动无线网关(网关通用分组无线电服务(GPRS)支持节点(GGSN)、演进型分组核心(EPC)网关))。举例来说,服务卡可用于终止IPsec隧道并执行伴随的验证和加密算法。如本文中所使用,节点在IP分组中的一些IP报头信息的基础上转发IP分组;其中IP报头信息包括源IP地址、目的地IP地址、源端口、目的地端口(其中,对照网络装置的物理端口,“源端口”和“目的地端口”在本文中指协议端口)、传输协议(例如,用户数据报协议(UDP)(RFC768、2460、2675、4113和5405))、传输控制协议(TCP)(RFC793和1180)以及区分服务(DSCP)值(RFC2474、2475、2597、2983、3086、3140、3246、3247、3260、4594、5865、3289、3290和3317)。节点在网络装置中实现。物理节点直接在网络装置上实现,而虚拟节点是在网络装置上实现的软件和可能的硬件抽象。因此,可以在单个网络装置上实现多个虚拟节点。网络接口可以是物理或虚拟的;并且如果它是物理网络接口或虚拟网络接口,那么接口地址是指派给网络接口的IP地址。物理网络接口是网络装置中用于(例如,通过无线网络接口控制器(WNIC)无线地或通过在电缆中插入到连接至网络接口控制器(NIC)的端口)进行网络连接的硬件。通常,网络装置具有多个物理网络接口。虚拟网络接口可以与物理网络接口、与另一个虚拟接口相关联,或者独立存在(例如,环回接口、点到点协议接口)。网络接口(物理或虚拟)可以编号(具有IP地址的网络接口)或不编号(不具有IP地址的网络接口)。环回接口(及其环回地址)是通常用于管理目的的(物理或虚拟)节点的特定类型的虚拟网络接口(和IP地址);其中该IP地址称为节点环回地址。指派给网络装置的网络接口的IP地址称为该网络装置的IP地址;在更多粒度级,赋予指派给在网络装置上实现的节点的网络接口的IP地址可以称为该节点的IP地址。一些网络装置对于实现VPN(虚拟专用网络)(例如,层2VPN和/或层3VPN)提供支持。例如,其中供应商的网络和客户的网络耦合的网络装置分别称为PE(供应商边缘)和CE(客户边缘)。在层2VPN中,通常在VPN的任一端上的CE上执行转发,并跨越网络(例如,通过由其它网络装置耦合的一个或多个PE)发送业务。层2电路配置在CE和PE之间(例如,以太网端口、ATM永久虚拟电路(PVC)、帧中继PVC)。在层3VPN中,通常由PE执行路由。举例来说,支持多个上下文的边缘网络装置可以作为PE部署;并且可以用VPN协议配置上下文,并且因此该上下文称为VPN上下文。一些网络装置提供对VPLS(虚拟私人LAN服务)(RFC4761和4762)的支持。例如,在VPLS网络中,订户端站通过耦合到CE访问通过VPLS网络提供的内容/服务,其中CE通过利用其它网络装置耦合的PE耦合。VPLS网络可用于实现三网融合网络应用(例如,数据应用(例如,高速互联网接入)、视频应用(例如,电视服务,如IPTV(互联网协议电视)、VoD(视频点播)服务)和语音应用(例如,VoIP(互联网语音协议)服务))、VPN服务等。VPLS是可用于多点连接性的层2VPN类型。VPLS网络还允许在独立地理位置与CE耦合的订户端站跨越广域网(WAN)彼此通信,就好像它们在局域网(LAN)(称为仿真LAN)中直接彼此附连一样。在VPLS网络中,每个CE通常经由附连电路(例如,CE和PE之间的虚拟链路或连接)可能通过(有线和/或无线)接入网络附连到PE的桥接器模块。PE的桥接器模块通过仿真LAN接口附连到仿真LAN。每个桥接器模块通过保存将MAC地址映射到伪线和附连电路的转发表充当“虚拟交换机实例”(VSI)。PE基于包含在(从CE接收的)帧中的MAC目的地地址字段将那些帧转发给目的地(例如,其它CE、其它PE)。链路聚合子层图2是链路聚合子层200的一个实施例的图。聚合器客户端202通过聚合器250与聚合端口292、294、296的集合通信。在一个实施例中,聚合器250向聚合器客户端202呈现标准IEEEStd802.1Q内部子层服务(ISS)界面。聚合器250捆绑到包括聚合端口292、294、296的一个或多个聚合端口。聚合器250将来自聚合器客户端202的帧传输分发给聚合端口292、294、296,收集从聚合端口292、294、296接收的帧,并透明地将它们传递给聚合器客户端202。聚合端口292、294、296到聚合器250的捆绑由链路聚合控制210进行管理,链路聚合控制210负责确定哪些链路可以聚合,将它们聚合,将聚合端口捆绑到合适的聚合器,并监测状况以便确定何时需要聚合改变。该确定和捆绑可以通过利用网络管理器(例如,通过聚合密钥)直接操纵链路聚合的状态变量在手动控制下进行。另外,自动确定、配置、捆绑和监测可以通过使用链路聚合控制协议(LACP)214进行。LACP214在链路间使用对等交换以便在不间断的基础上确定各个链路的聚合能力,并连续提供可在给定一对聚合系统之间达成的最大级别的聚合能力。聚合系统可包含服务于多个聚合器客户端的多个聚合器。给定聚合端口将在任何时间捆绑到(至多)单个聚合器。单个聚合器一次服务于一个聚合器客户端。对于在聚合器客户端之间的某些帧交换序列(称为对话)维持帧排序。帧分发器234确保将给定对话的所有帧传递到单个聚合端口。对于给定对话,要求帧收集器224按照从聚合端口接收的顺序将帧传递给聚合器客户端202。否则,帧收集器224可以按任何顺序任意选择从聚合端口292、294、296接收的帧。由于没有方法在单个链路上使帧混乱,所以这确保对于任何对话维持帧排序。对话可以在链路聚合群组内的聚合端口中移动,以用于负载平衡并在链路故障的情况下维持可用性。为聚合端口292、294、296各自指派媒体接入控制(MAC)地址,MAC地址在链路聚合群组上并且对于与链路聚合群组连接的任何桥接局域网(LAN)(例如,遵守IEEE802.1Q桥接LAN的LAN)而言都是唯一的。这些MAC地址用作通过链路聚合子层270本身内的实体启动的帧交换(即,LACP214和标记协议交换)的源地址。为聚合器250(和其它聚合器(如果部署了的话))指派MAC地址,该MAC地址在链路聚合群组上并且对于与链路聚合群组连接的桥接LAN(例如,遵守IEEE802.1Q桥接LAN的LAN)而言是唯一的。从聚合器客户端202的角度,该地址用作链路聚合群组的MAC地址,即,既用作所传送的帧的源地址,又用作所接收的帧的目的地地址。聚合器250的MAC地址可以是相关联的链路聚合群组中的聚合端口的MAC地址之一。分布式弹性网络互连(DRNI)链路聚合创建链路聚合群组,链路聚合群组是对于更高层而言看起来像是单个逻辑链路的一个或多个物理链路的合集。链路聚合群组具有两端,每一端都在聚合系统中终止。DRNI对链路聚合的概念进行了扩展,从而使得在链路聚合群组的任一端或两端,用门户来取代单个聚合系统,每个门户由一个或多个聚合系统组成。DRNI是通过使用分布式中继来互连两个或两个以上系统而创建的,每个系统运行链路聚合,从而创建门户。门户中的每个聚合系统(即,每个门户系统)利用单个聚合器运行链路聚合。分布式中继使得这些门户系统能够共同终止链路聚合群组。对于与门户连接的所有其它聚合系统,链路聚合群组看起来就像是在由门户系统创建的独立仿真聚合系统中终止一样。意图是通过引入分布式中继以便互连两个或三个系统来创建DRNI,每个系统运行链路聚合,从而创建门户。门户中的每个系统(即,每个门户系统)利用单个聚合器运行链路聚合。分布式中继旨在使得门户系统能够共同终止链路聚合群组。对于与门户连接的所有其它系统,链路聚合群组应当看起来像是在由门户系统创建的独立仿真聚合系统中终止一样。上述IEEE802.1AX-REV/D1.0没有提供关于分布式中继如何运行的足够信息。分布式中继DRNI是通过使用分布式中继以便互连两个或三个系统而创建的,每个系统运行链路聚合,从而创建门户。门户中的每个系统(即,每个门户系统)利用单个聚合器运行链路聚合。分布式中继使得门户系统能够共同终止链路聚合群组。对于与门户连接的所有其它系统,链路聚合群组看起来就像是在由门户系统创建的独立仿真系统中终止一样。图3A示出作为描述分布式中继的起始点的基本分布式中继系统。图3A中描绘并在本文中加以论述的网络链路对应于对于网络协议可见并且在网络协议的控制之下的物理或逻辑链路。在该图中,系统A和B各自通过执行“功能1”来表征,“功能1”是某种分组中继功能,例如路由器或桥接器。“功能1”也可以是文件服务器操作,在此情况下,每个系统上的外面的两个“端口”有可能不存在。每个系统运行链路聚合子层的单个实例。在一个实施例中,可取的是将阴影端口关联到具有分布式中继的门户中。图3A是一个实例,但不是一般情形。一般来说,分布式中继支持:a)本申请提供只对于下文所列的配置必需的协议和过程。b)链路聚合功能,每个功能包含一个或多个MAC。c)分布式中继的门户系统中的连接。在该实例中引入分布式中继功能层的目的是使这两个门户系统对于与它们连接的系统而言看起来就像是在如图3B所示的配置中一样。看起来像是存在第三仿真系统C,它通过插入在功能1和链路聚合之间的链路连接至原始门户系统。即,门户系统A和B协作以便在与它们连接的任何其它系统可辨别的程度表现得就好像仿真系统C实际存在一样,如图3B所示。尽管图3B是一个实例,但是它示出分布式中继的原理:d)仿真系统C中的分布式中继是N个门户系统的(N+1)-端口中继,其中N个网关端口连接至门户系统,并且单个仿真链路聚合子层与原始门户系统相关联。e)聚合端口(在本文中又称为MAC)已经移动到仿真系统,并且因此对于所有其它系统而言看起来就像是与包含分布式中继的真实门户系统相距同样距离一样。图4中示出供这两个门户系统用于创建仿真系统C的实际构造。图4示出分布式中继的这两个DR功能,每个系统A和B中一个DR功能。该实例示出分布式中继的剩余原理:f)在每个系统A和B中,即将与系统C相关联的端口移动到DR功能的链路聚合子层下方的位置。g)构造虚拟链路和它的终止虚拟MAC(称为“网关”)以便将每个DR功能连接至它的功能1。h)在门户中的每对DR功能之间,构造门户内链路(IPL),它在每一端通过门户内端口(IPP)终止。(这可以许多形式存在;见下文中的论述)i)存在决定可以通过哪个网关将帧传递进出仿真分布式中继的“网关算法”。j)类似地,“端口算法”决定可以通过哪个门户系统的聚合端口将帧传递进出仿真分布式中继。k)如上所述,可以有三个系统参与创建门户和仿真系统C。在此情况下,仿真系统C中的分布式中继具有额外的网关端口,到每个门户系统一个网关端口,并且具有IPL用于互连DR功能。l)如下文中所指定,DR功能一起工作以便在网关、IPL和链路聚合子层之间移动帧。分布式中继操作和过程每个门户系统中的DR功能(图4)打算具有(经受操作故障)三种端口:A)门户内端口,至多一个(在一些实施例中可能是复合)IPL端口连接至属于相同门户的每个其它门户系统;B)具有到DR功能所驻留的门户系统中的虚拟网关端口的虚拟链路的恰好一个虚拟网关端口;以及C)到具有任意数量的聚合端口的链路聚合子层的恰好一个聚合器端口(得到由前缀Agg标识的ISS实例支持的端口),旨在以使得其它系统相信它们连接至单个仿真系统的方式连接至那些其它系统。在图3B中,门户内链路和IPL端口不可见,并且仿真聚合系统C的分布式中继具有到它的门户中的每个系统的一个网关。仿真分布式中继的目的是将从聚合端口接收的每个帧(“上行帧”)传递到网关或丢弃它,并将从网关接收的每个帧(“下行帧”)传递到聚合器端口或丢弃它。构成分布式中继的DR功能有时必须跨越一个或两个门户内链路发送帧,以便让它到正确的网关或聚合器端口。DR功能通过将每个帧指派给两个对话ID(即,网关对话ID和端口对话ID)并依据这些对话ID配置网关、聚合端口和IPL而做出是丢弃帧还是将帧传递到它的网关、聚合器端口或它的IPL之一的选择。提到的“网关算法”由两部分组成,即,用于将任何给定帧指派给网关对话ID的算法以及将网关对话ID指派给网关(例如,利用Drni_Gateway_Conversation)。如果门户系统是执行了解的VLAN桥接器,那么帧到网关对话ID的映射将基于它的VLANID,否则了解过程在整个网络中中断。对于这些情形中的DRNI的实现,可以存在VLANID到对话ID的一对一映射。类似地,以上“分布式中继”章节中的第j项的“端口算法”由用于将任何给定帧指派给端口对话ID的算法以及将端口对话ID指派给聚合端口(例如,利用AggConversationAdminPort[])组成。下文中指定方法来确保在给定门户上的所有DR功能使用相同的网关算法和相同的端口算法来将帧指派给它们的相应的对话ID,并保证在任何给定时刻将任何给定网关对话ID指派给至多一个网关并将任何给定端口对话ID指派给门户的至多一个聚合端口。允许但不要求网关算法和端口算法使用相同方式来将帧指派给对话ID,以使得网关对话ID等于端口对话ID。当帧从网关进入DR功能时,总是对帧应用端口算法,以便确定是将它发送到聚合器端口还是发送到特定IPP。当帧从聚合器端口进入时,总是对帧应用网关算法,以便确定是将它发送到网关还是发送到特定IPP。为了转发从IPL进入DR功能的帧,必须应用两种算法,并将它们的结果进行比较,如表1所示。表1.DR功能:转发从门户内链路n接收的帧A)[1]“任意”表示不使用来自端口算法的输出;网关算法确定将帧发送到哪个端口。B)[2]不同门户系统中的DR功能具有不兼容的配置,或者存在故障。丢弃帧以防止循环。C)表1假设以下三种配置之一:•通过单个IPL连接两个门户系统;•通过两个IPL线性连接三个门户系统;或•通过三个IPL循环连接三个门户系统。D)通过网关在两个方向中实施网关算法;即,如果对从网关进入DR功能的帧应用网关算法不会将它发送回到网关,那么丢弃该帧。这对于防止跨越IPL转发从网关接收的帧并通过另一个网关将它传递回到网络中是必需的。E)如果网关算法指示帧应当经过网关,那么它必须是上行帧,因为下行帧不会从任何其它DR功能进入门户,参考以上D)项。F)否则,如果网关算法指示帧来自它转发到的IPL,那么它是下行帧,并且因此利用端口算法转发。(如果端口算法将它发送回到它到达的端口上,那么存在某种故障或错误配置,并且丢弃帧)。G)否则,网关算法指示帧并非来自它转发到的IPL,因此它必须是上行帧,并且根据网关算法引导帧。注意:分布式中继的端口算法和分布式中继控制协议一起确定端口对话ID到各个聚合端口的映射,并且它们的控制中的变量确定帧分发器和帧收集器的操作。但是,这不会改变如上所述的数据和控制的路径,因为分布式中继通过聚合器将所有数据传递到聚合端口或传递来自聚合端口的所有数据。表2和表3分别示出在从网关和聚合器端口进入DR功能的帧上应用网关和端口算法。表2.DR功能:转发从我的网关接收的帧表3.DR功能:转发从我的聚合端口之一接收的帧门户拓扑最一般的门户拓扑是如图21所示通过三个门户内链路连接成环的三个门户系统。根据本发明其它实施例的其它支持的拓扑是它的子集,包括:•通过两个IPL连接成链的三个门户系统,•通过单个IPL连接的两个门户系统,•不具有活动IPL的门户系统。术语“归属”、“邻居”和“其它邻居”用于从给定门户内端口的角度标识门户系统。归属是包含IPP的系统。邻居是连接至IPP的系统。其它邻居是连接至归属系统中的其它IPP(如果存在的话)的系统。参考图21,利用IPPB1为实例,它的归属系统是B,它的最接近的邻居是A(因为它经由IPLAB连接至IPPB1),并且它的其它邻居是C(因为它经由IPLBC连接至IPPB2)。注意,IPPA2的其它邻居也是C(因为它经由IPLAC连接至IPPA1),因此比较IPPB1和A2的其它邻居的ID证实了环或链中不存在多于三个系统。门户内链路门户内链路(IPL)是两个不同系统中的DR功能之间的单个逻辑点到点链路。一个DR功能对于构成DRNI链路聚合群组的一端的每个其它系统具有至多一个IPL。IPL和网络链路可共享物理链路或链路聚合(链路聚合是链路集合的集合体)。IPL可以是物理(例如,802.3以太网LAN)或逻辑(例如,802.1Q骨干服务实例或IETF伪线)。门户内链路可与其它门户内链路或网络链路共享物理链路。门户内链路可以是链路聚合群组,并且因此由多个物理链路组成。在部署的网络中通常的情况下,将用连接两个系统的正常网络链路和IPL来配置这两个系统,如图4所示。如果每个门户要求它自己的独立的物理IPL,尤其是如果一对系统配置成支持多个门户,那么它将降低DRNI的实用性。DRNI支持可供系统用于将网络链路上的帧与特定IPL上的帧进行区分的多种方法:•物理:可利用独立物理链路来支持任何特定网络链路或IPL。•聚合:可利用独立聚合器端口来支持IPL。•时间共享:网络链路和一个或多个IPL可使用相同的物理链路(或聚合器端口),但是要在不同时间。这要求当对于连接性需要IPL时系统禁止使用网络链路,要不然可以调整聚合链路的使用和网关的选择以便在需要网络链路时消除使用IPL的需要。这种技术将在本文中加以描述。•标签共享:网络链路和一个或多个IPL可以通过利用不同服务ID使用相同物理链路(或聚合器端口)。标签共享将在本文中加以描述。•逻辑:网络链路和IPL上的帧可以进行封装,如本文中所描述。实现DRNI的系统可以支持对于IPL和网络链路使用独立的物理链路,并且可以支持任何其它方法。在共享物理链路或聚合器端口的每一端,对于使用链路或聚合器端口的每个功能(网络链路或特定IPL)存在一个虚拟端口。以上任何方法可以通过管理选择在两个系统之间同时使用,只要任何给定物理链路或聚合器端口的两端使用相同方法。网络/IPL时间共享网络/IPL时间共享的目标是支持DRNI,而对于网络连接和IPL无需独立的物理链路,并且无需任何帧修改。当共享链路时,必需的是能够对于每个帧确定该帧是意欲穿过网络连接还是IPL。如果在任何给定时间,已知物理链路只用作网络链路或只用作IPL,那么该确定可以在不修改帧(例如,无需转译VLANID或无需增加标签或封装)的情况下进行。通过用于在网络中对于每个VLAN建立全连接、无循环的活动拓扑的控制协议来建立在任何给定时间使用链路作为网络链路还是IPL。如果链路没有包含在VLAN的活动拓扑中(即,它被网络控制协议的操作阻断),那么它可用于用作IPL。在此情况下,DRNI使用链路,就好像它是专用(非共享)IPL一样。如果链路包含在VLAN的活动拓扑中,那么没有IPL可用于该VLAN。在此情况下,DRNI不能在一个门户系统中的聚合端口和另一个门户系统中的网关之间传递帧。因此,对于任何给定帧,DRNI局限于具有在相同门户系统中的网关和聚合端口。注意1:共享链路不可用于在网关和特定聚合端口之间传送帧的事实不会限制在共享链路上交换DRCPDU的能力。在满足对于任何给定帧网关和聚合端口在相同门户系统中的限制时,有两种情形要考虑。简单的情形是,当端口对话ID在DRNI和具有到选择相同门户系统中的聚合端口的端口对话ID的给定VLANID映射的所有帧间得到同意且对称时。于是,选择该门户系统作为该VLANID的网关,并且无需任何数据帧穿过IPL。在任何其它情形中,确保网关和特定聚合端口在相同门户系统中的唯一方法是,当在共享网络/IPL端口以外的任何端口上接收帧时,考虑该门户系统为该帧的网关,并且在每个门户系统中,所有端口对话ID映射至附连到该系统的聚合端口。在这种模式中,在网络端口(而非IPP或聚合端口)上接收任何帧的门户系统负责将该帧转发给聚合端口(如果需要的话)。在IPP上接收帧的门户系统决不会将该帧转发给聚合端口。在此情况下,网关选择不一定基于VID,因此当门户系统是802.1Q桥接器时,共享网络/IPL链路上的了解过程会受损。由于了解问题局限于该端口,所以它可通过使得在DRNI上了解的地址与其它门户系统同步来进行补救。网络/IPL标签共享如果采用每个服务帧分发,并且如果支持网络链路所需的服务数加上支持一个或多个IPL所需的服务数小于所使用的帧格式(例如,4094S-VLANID)提供的服务数,那么可以使用VID转译来分离不同逻辑链路上的帧。通过用值2配置aDrniEncapsulationMethod来选择该方法。如果如受网络/IPL共享机控制的变量Enabled_EncTag_Shared所指示加以启用,那么转译即将由IPL传送到邻居门户系统并与网关对话ID相关联的每个帧以便使用在aDrniIPLEncapMap中配置的值,并转译即将由与IPL共享的网络链路传送并与网关对话ID相关联的每个帧以便使用在aDrniNetEncapMap中配置的值。网络/IPL封装共享该方法使得能够通过利用封装技术(例如,802.1Q骨干服务实例、B-VLAN和IETF伪线等)与网络链路共享IPL。通过在IPL和网络链路共享相同物理链路时用表示用于将IPL帧(经过IPL的数据帧,即,非DRCPDU携带帧)传送到邻居门户系统的封装方法的值配置aDrniEncapsulationMethod来选择该方法。该值由标识负责该封装的组织的三个八位组组织唯一标识符(OUI)以及用于标识由该组织定义的封装方法的一个随后八位组组成。如果如受网络/IPL共享机控制的变量Enabled_EncTag_Shared所指示加以启用,那么利用由DrniEncapsulationMethod指定的方法封装即将在IPL上传送到邻居门户系统并与网关对话ID相关联的每个帧以便使用在DrniIPLEncapMap中配置的值,并对由IPL接收的每个帧去除封装并利用相同表将它映射到网关对话ID。DR功能状态机DR功能状态机应当实现在表1-3中所指定的转发规则。这些转发规则可以做如下总结:a)对于通过聚合端口进入的帧,即上行帧,网关算法根据它的网关对话ID决定是将它传送到网关链路还是传送到IPP。如果帧的网关对话ID与门户系统的操作网关对话ID匹配,那么将帧转发给网关,否则将它转发给IPP。b)对于通过网关进入的帧,即下行帧,端口算法根据它的端口对话ID决定是将它传送到聚合端口还是传送到IPP。如果帧的端口对话ID与门户系统的操作端口对话ID匹配,那么将帧转发给聚合端口,否则将它转发给IPP。c)只有当该网关对话ID的门户系统位于IPP之后时才传送提供给该IPP的上行帧,否则将它丢弃。d)只有当该端口对话ID的目标门户系统位于IPP之后时才传送提供给该IPP的下行帧,否则将它丢弃。供分布式中继使用的一些链路聚合变量必须以特定方式形式,以使得多个门户系统可以协作以便创建单个仿真系统:e)将分布式中继的聚合器端口中的每个聚合端口的端口ID中的端口优先级的两个最低有效位设置成DRF_Portal_System_Number的值。赋予剩余位DR功能内唯一的值。f)将分布式中继的聚合器端口中的每个聚合端口和相关联的聚合器的管理密钥的两个最高有效位设置成DRF_Portal_System_Number的值。可以如上所述使用剩余位以便反映聚合端口的物理特性。服务接口由于DR功能使用ISS的各种实例,所以必需引入符号约定,以使得读者可以在任何给定时间清楚提到哪个接口。因此,将前缀指派给每个服务原语,以便指示正调用哪个接口。前缀如下:a)Agg:,用于在DR功能和链路聚合子层之间的接口上发出的原语。b)Gate:,用于在网关上发出的原语。c)MacIppN:,用于在支持IPLn的MAC实体和DRCP控制解析器/复用器之间的接口上发出的原语。d)DRCPCtrlMuxN:,用于在DRCP控制解析器/复用器N和DRCP控制实体之间的接口上发出的原语(其中,N标识与DRCP控制解析器/复用器相关联的IPP)。e)IppN:,用于在由DRCP控制解析器/复用器N支持的DR功能的接口上发出的原语(其中,N标识与DRCP控制解析器/复用器相关联的IPP)。每个DR功能变量以下论述集中在根据本发明一个实施例的各种每个DR功能变量上。DA:目的地地址SA:源地址mac_service_data_unit优先级:M_UNITDATA.indication原语的参数。BEGIN:布尔变量,它在初始化或重新初始化系统时设置成“真”,并在(重新)初始化完成时设置成“假”。值:布尔Drni_Portal_System_Gateway_Conversation:由网关对话ID索引的操作布尔向量,指示是否允许索引的网关对话ID经过该DR功能的网关(真=经过)。在一个实施例中,通过updatePortalSystemGatewayConversation函数来计算它的值。在另一个实施例中,通过将与门户中的其它门户系统相关联的所有索引的网关对话ID条目设置成“假”而从Drni_Gateway_Conversation构造该变量,并且在索引的剩余网关对话ID条目中,全都与其它门户系统不一致。值:由网关对话ID索引的布尔值的序列。Drni_Portal_System_Port_Conversatin:由端口对话ID索引的操作布尔向量,指示是否允许通过该DR功能的聚合器分发所索引的端口对话ID(真=通过)。在一个实施例中,通过updatePortalSystemPortConversation来计算它的值。在另一个实施例中,通过将与门户中的其它门户系统相关联的所有索引的端口对话ID条目设置成“假”而从Drni_Port_Conversation构造该变量,并且在索引的剩余网关对话ID条目中,全都与其它门户系统不一致。值:由端口对话ID索引的布尔值的序列。消息Agg:M_UNITDATA.indicationGate:M_UNITDATA.indicationIppN:M_UNITDATA.indicationAgg:M_UNITDATA.requestGate:M_UNITDATA.requestIppN:M_UNITDATA.request用于利用指定参数将所接收的帧传递到客户端的服务原语。如果使用网络/IPL标签共享或网络/IPL封装方法共享,那么需要通过受网络/IPL共享机控制的函数的操作来操纵服务原语IppN:M_UNITDATA.indication和IppN:M_UNITDATA.request。DR功能:聚合器端口接收状态机根据本发明的一个实施例,DR功能:聚合器端口接收状态机可以用它的相关联的参数实现在图22中所指定的功能。每个门户系统存在一个DR功能:聚合器端口接收状态机,并且存在与门户系统中的IPP一样多的PASS_TO_IPP_N状态,每个状态由索引n标识。图中的前缀“n.”用于标识与相关联的变量有关的特定IPPn。DR功能:网关分发状态机根据本发明的一个实施例,DR功能:网关分发状态机可以用它的相关联的参数实现在图23中所指定的功能。每个门户系统存在一个DR功能:网关分发状态机,并且存在与门户系统中的IPP一样多的PASS_TO_IPP_N状态,每个状态由索引n标识。图中的前缀“n.”用于标识与相关联的变量有关的特定IPPn。DR功能:IPPN接收状态机根据本发明的一个实施例,DR功能:IPPN接收状态机可以用它的相关联的参数实现在图24中所指定的功能。每个门户系统每个IPP存在一个DR功能:IPPN接收状态机,并且存在与门户系统中的IPP一样多的PASS_TO_IPP_N状态,每个状态由索引m标识。图中的前缀“n.”或“m.”用于标识与相关联的变量有关的特定IPPn或IPPm。分布式中继控制协议分布式中继控制协议(DRCP)的目的是:A)在门户系统之间跨越门户内链路建立通信。B)验证门户系统的一致配置。C)确定用于仿真系统的身份。D)在彼此中分发门户系统以及它们的聚合端口的当前状态。E)计算经过每个IPL所需的任何帧的合成路径,并根据需要与相邻门户系统交换信息以免遭受转发循环和重复帧递送。F)在门户系统中交换信息以便支持在本说明书中没有指定的分布式功能。DRCP的操作结果是维持控制分布式中继转发帧的变量。DRCP交换信息以便确保门户系统可以一起工作。第一类这样的信息包括必须兼容以便全部传递任何数据(以上A项)的托管对象和变量。在一个实施例中,它们包括:G)aAggPortAlgorithm:所有门户系统必须使用相同的端口算法。H)aDrniGatewayAlgorithm:所有门户系统可以使用相同的网关算法。I)aDrniPortalId:所有门户系统必须对于aDrniPortalId具有相同值,以便确保认为它们都属于相同门户。J)对于aDrniPortalTopology:所有门户系统必须对于aDrniPortalTopology具有相同值,并且在连接成环的三个门户系统的门户的情况下,需要通过该门户一致地配置相同的“循环中断链路”aDrniLoopBreakLink。K)aDrniPortalSystemNumber:所有门户系统必须具有不同的aDrniPortalSystemNumber值,并且所有这些值必须在1..3范围内,以便确保可以有意义地对信息做标记。L)aAggActorAdminKey:将分布式中继的聚合器端口中的每个聚合器的管理密钥的两个最高有效位设置成DRF_Portal_System_Number的值。剩余位反映相关联的聚合端口的物理特性,并且它们对于门户中的所有门户系统相同。第二类托管对象(B项)控制每个对话ID经过哪个网关和哪些聚合端口。对于这些托管对象,如果在不同门户系统中不同地配置关于一个对话ID的信息,那么只有该对话ID受影响。因此,门户可正常操作,并且确保免受重复递送或转发循环的机制将阻止属于错误配置的对话ID的任何帧通过。为了检测错误配置以使得阻止不是永久的,DR功能可以通知网络管理员配置是否不同。由于这些配置相当大,所以交换它们的内容的校验和,而不是配置本身。该方法以大概率而不是必然地检测差别。在一个实施例中,这些托管对象包括:L)aDrniConvAdminGateway[]:用于动态地确定哪个对话ID流过哪个网关的列表。M)aAggConversationAdminPort[]:用于动态地确定哪个对话ID流过哪个聚合端口的列表。DRCP利用它的关于所预期的哪些门户系统经由IPL连接或不连接的信息来确定仿真分布式中继的身份(本章节中以上C项)。交换所有门户系统以及它们的聚合端口的当前操作状态,以使得每个DR功能可以确定将把每个帧递送到哪个门户系统的网关或聚合端口(本章节中以上D项)。每个DR功能计算确切指定哪些端口对话ID和哪些网关对话ID可经过每个网关、聚合端口或IPP的向量。在每个IPP上,交换该信息(本章节中以上E项)。如果对于任何给定对话ID在两个DR功能的向量之间存在差异,那么设置输出变量,以使得DR功能将阻止具有该对话ID的帧。这防止任何帧的循环或重复递送。建立门户和分布式中继门户的创建没有自动指定方向。而是,DRCP将由托管对象定义的网络管理员的意图与所配置的系统的物理拓扑进行比较,并且如果相连系统的配置兼容,那么DRCP建立并启用门户的操作。为了跨越门户建立分布式中继,网络管理员配置以下托管对象:A)网络中可以有许多系统,并且一些或所有选择的门户系统可以参与其它门户。通过配置诸如aDrniPortalId和aDrniPortalSystemNumber的变量来确定哪些其它门户系统属于该门户系统的门户。B)如上文所描述,可以指派MAC服务的任何点到点实例为门户内链路。例如,在aDrniIntraPortalLinkList中配置指派给DR功能的使用的特定实例。C)在一个实施例中,在aDrniAggregator中配置将每个门户系统中的哪个聚合器指派给该DR功能。D)在一个实施例中,在两个托管对象aDrniGatewayAlgorithm和aAggPortAlgorithm中配置即将供DR功能用于将帧指派给网关对话ID和端口对话ID的方法。E)在一个实施例中,在若干个托管对象aDrniConvAdminGateway[]和aAggConversationAdminPort[]中配置对话ID到网关和聚合端口的初始和备份指派以便覆盖故障模式。DRCPDU传输、寻址和协议标识利用由LLC实体提供的服务传送和接收分布式中继控制协议数据单元(DRCPDU),而LLC实体利用在与IPP相关联的MSAP处提供的MAC服务的单个实例。每个DRCPDU作为单个MAC服务请求传送,并作为单个MAC服务指示接收,其具有以下参数:•目的地地址•源地址•MSDU(MAC服务数据单元)•优先级每个请求和指示的MSDU包括提供EtherType协议标识并紧跟DRCPDU本身的多个八位组。注1:出于该标准的目的,术语“LLC实体”包括利用如IEEEStd802中所指定的EtherType字段支持协议辨别的实体。注2:DRCP帧的完整格式不仅取决于这里所指定的DRCPDU格式,而且还取决于用于支持MAC服务的媒体接入方法相关的过程。目的地MAC地址用于传送DRCPDU的每个MAC服务请求的目的地地址可以是通过IPP托管对象选择的群组地址。它的默认值可以是最近的非TPMR(双端口媒体接入控制(MAC)中继)桥接器群组地址。源MAC地址:用于传送DRCPDU的每个MAC服务请求的源地址可以是与做出请求的IPPMSAP(MAC服务接入点)相关联的个别地址。优先级:与每个MAC服务请求相关联的优先级应当是与IPPMASP相关联的默认值。在帧中封装DRCPDU在M_UNITDATA.request或M_UNITDATA.indication的mac_service_data_unit参数中编码DRCPDU。根据基本MAC服务的需要,mac_service_data_unit的前几个八位组是协议标识符、紧跟DRCPDU、紧跟填充八位组(如果有的话)。在通过可直接支持EtherType编码的媒体接入控制方法(例如,为IEEE802.3MAC)提供用于传送和接收帧的ISS实例的情况下,协议标识符的长度为两个八位组。通过所指定的EtherType标识所有DRCPDU。在通过不可直接支持EtherType编码的媒体接入方法(例如,为IEEE802.11MAC)提供ISS实例的情况下,根据子网接入协议的规则(IEEEStd802的第10条款)编码TPID,TPID在LLC上封装以太网帧,并且包括SNAP报头(十六进制AA-AA-03)、紧跟SNAPPID(十六进制00-00-00)、再紧跟协议的EtherType(十六进制xx-xx)。DRCPDU结构和编码八位组的传输和表示所有DRCPDU包括整数个八位组。每个八位组中的位从0到7编号,其中0是低阶位。当利用连续八位组来表示某个数值时,首先传送最高有效八位组,然后相继传送较低有效八位组。当在图中描绘DRCPDU的(元素的)编码时:A)从顶至底传送八位组。B)在八位组内,从左边的位0到右边的位7示出各个位,并且从左到右传送这些位。C)当利用连续八位组来表示二进制数字时,首先传送的八位组具有较高有效值。D)当利用连续八位组来表示MAC地址时,为第一个八位组的最低有效位指派MAC地址的第一位的值,为下一个最高有效位指派MAC地址的第二位的值,依此类推,直到第八个位。类似地,为第二个八位组的最低有效位到最高有效位指派MAC地址的第九到第十七位的值,并且对于MAC地址的所有八位组依此类推。在帧中封装DRCPDU在一个实施例中,在M_UNITDATA.request或M_UNITDATA.indication的mac_service_data_unit参数中编码DRCPDU。根据基本MAC服务的需要,mac_service_data_unit的前几个八位组是协议标识符、紧跟DRCPDU、再紧跟填充八位组(如果有的话)。在通过可直接支持EtherType编码的媒体接入控制方法(例如,为IEEE802.3MAC)提供用于传送和接收帧的ISS实例的情况下,协议标识符的长度为两个八位组,且值为协议的EtherType(十六进制xx-xx)。在通过不可直接支持EtherType编码的媒体接入方法(例如,为IEEE802.11MAC)提供ISS实例的情况下,根据子网接入协议的规则(IEEEStd802的第10条款)编码TPID,TPID在LLC上封装以太网帧,并且包括SNAP报头(十六进制AA-AA-03)、紧跟SNAPPID(十六进制00-00-00)和EtherType(十六进制xx-xx)。DRCPDU结构图5示出根据本发明的DRCPDU结构的一个实施例。字段如下定义:A)子类型:子类型字段标识所封装的特定缓慢协议。DRCPDU携带子类型值0x0X。注意,如果选择不是使用缓慢协议EtherType来标识DCRP操作,那么A)不存在。B)版本号:这标识DRCP版本;符合一个实施例的实现携带值0x01。C)TLV_type=PortalInformation:该字段指示在该TLV元组中携带的信息的性质。在一个实施例中,通过值0x01标识DRNI信息。D)Portal_Information_Length:该字段指示该TLV元组的长度(八位组)。在一个实施例中,执行者信息使用18(0x12)的长度值。E)Aggregator_Priority:(通过管理或行政策略)指派给附连到DR功能的聚合器的执行者系统ID的优先级,在一个实施例中,它编码为来自AggActorSystemPriority的无符号整数。F)Aggregator_ID:在一个实施例中,为附连到DR功能的聚合器的执行者系统ID的MAC地址组成。G)Portal_Priority:(通过管理或行政策略)指派给门户ID的优先级,在一个实施例中,它编码为来自aDrniPortalPriority的无符号整数。H)Portal_ID:在一个实施例中,为来自aDrniPortalID的门户ID的MAC地址组成。I)TLV_type=PortalConfigurationInformation:该字段指示在该TLV元组中携带的信息的性质。在一个实施例中,通过值0x02标识门户配置信息。J)Portal_Configuration_Information_Length:该字段指示该TLV元组的长度(八位组),在一个实施例中,门户配置信息使用46(0x2E)的长度值。K)Topology_State:对于IPP该DR功能的拓扑相关变量,它编码为单个八位组内的各个位,如下所述并且如图6C所示:1)在位0和1中编码Portal_System_Number。它是来自aDrniPortalSystemNumber的该DR功能的门户系统号。2)在位2和3中编码Portal_Topology。它是在aDrniPortalTopology中配置的该DR功能的门户拓扑。3)在位4和5中编码Neighbor_Conf_Portal_System_Number。它是附连到该IPP的门户系统的配置的门户系统号。4)在位6中编码Loop_Break_Link。该标志指示将附连到该IPP的IPL配置为循环中断链路。“真”指示在aDrniLoopBreakLink中配置IPL,并编码为1;否则,将该标志编码为0。5)预留位7以便将来使用。它在传送时设置成0,并在接收时忽略。K2)Topology_State:在备选实施例中,可以在不同八位组中编码拓扑状态,如下所示并且如图29所示:1)在位0和1中编码Portal_System_Number。在一个实施例中,它是来自aDrniPortalSystemNumber的该DR功能的门户系统号。2)在位2和3中编码Neighbor_Conf_Portal_System_Number。在一个实施例中,它是附连该该IPP的门户系统的配置的门户系统号。3)预留位4-6以便将来使用。在一个实施例中,它们在传送时设置成0,并在接收时忽略。4)在位7中编码Other_Non_Neighbor。“真”(编码为1)指示其它端口信息TLV与该门户系统的最接近的邻居无关。在一个实施例中,“假”(编码为0)指示其它端口信息TLV是该门户系统上的其它IPP上的最接近的邻居。L)Oper_Aggregator_Key:附连到DR功能的聚合器的当前操作聚合器密钥值。M)Port_Algorithm:在一个实施例中,为供该DR功能和聚合器使用的来自AggPortAlgorithm的端口算法。N)Gateway_Algorthm:在一个实施例中,为供该DR功能使用的来自aDrniGatewayAlgorithm的网关算法。O)Port_Digest:在一个实施例中,为来自aAggConversationAdminPort[]的该DR功能的优先端口对话ID到聚合端口指派的摘要。P)Gateway_Digest:在一个实施例中,为来自aDrniConvAdminGateway[]的该DR功能的优先网关对话ID到网关指派的摘要。Q)TLV_type=DRCPState:该字段指示在该TLV元组中携带的信息的性质。在一个实施例中,通过值0x03标识DRCP状态。R)DRCP_State_Length:该字段指示该TLV元组的长度(八位组),在一个实施例中,DRCP状态使用3(0x03)的长度值。S)DRCP_State:对于IPP该DR功能的DRCP变量,它编码为单个八位组内的各个位,如下所述并如图6B所示:1)Home_Gateway:在一个实施例中,在位0中编码它。该标志指示该DR功能的网关的操作状态。“真”指示操作并且编码为1,而非操作编码为0。2)在一个实施例中,在位1中编码Neighbor_Gateway。该标志指示邻居的DR功能的网关的操作状态。“真”指示操作并编码为1,而非操作编码为0。3)在一个实施例中,在位2中编码Other_Gateway。该标志指示潜在的其它DR功能的网关的操作状态。“真”指示操作并编码为1,而非操作编码为0。4)在一个实施例中,在位3中编码IPP_Activity。该标志指示该IPP上的邻居的DRCP活动。活动DRCP邻居编码为1,而无DRCP活动编码为0。5)在一个实施例中,在位4中编码DRCP_Timeout。该标志指示与该链路有关的超时控制值。短超时编码为1,而长超时编码为0。6)在一个实施例中,在位5中编码GatewaySync。如果“真”(编码为1),那么该DR功能认为该IPP的邻居同伴系统使它们的网关同步;即,列出哪个门户系统的网关(如果有的话)传递每个网关对话ID的该门户系统的操作向量与该IPP的邻居的操作向量一致。如果“假”(编码为0),那么该IPP当前为不同步;即,列出哪个门户系统的网关(如果有的话)正传递每个网关对话ID的该IPP的邻居的门户系统的操作向量不一致。7)在位6中编码PortSync。如果“真”(编码为1),那么该DR功能认为该IPP的邻居同伴系统使它们的聚合器端口同步;即,列出哪个门户系统的聚合端口(如果有的话)正传递每个端口对话ID的该门户系统的操作向量与该IPP的邻居的操作向量一致。如果“假”(编码为0),那么该IPP当前不同步;即,列出哪个门户系统的聚合端口(如果有的话)正传递每个端口对话ID的该IPP的邻居的操作向量不一致。8)在位7中编码“到期”。如果“真”(编码为1),那么该标志指示DR功能的接收机处于到期或默认状态;如果“假”(编码为0),那么该标志指示DR功能的接收机不处于到期或默认状态。DRCP不使用到期状态的接收值;但是,在诊断协议问题时,知道它们的值会是有用的。并且注意,在不同实施例中,这些字段的顺序和这些字段的长度可以不同,但是仍符合本发明的精神。T)TLV_type=HomePortsInformation:该字段指示在该TLV元组中携带的信息的性质。在一个实施例中,通过整数值0x04标识归属端口信息。U)Home_Ports_Information_Length:该字段指示该TLV元组的长度(八位组),归属端口信息使用所包含的该门户系统的聚合端口的数量的4倍的长度值。V)Home_Admin_Aggregator_Key:来自aAggActorAdminKey的附连到该DR功能的聚合器的管理聚合器密钥值。W)Home_Oper_Partner_Aggregator_Key:与该门户系统的聚合器LAGID相关联的操作同伴聚合器密钥。X)ActiveHomePorts:按增加的端口号顺序的活动聚合端口的列表。该列表受LACP的操作的控制(列出LACP对其宣告Actor_Oper_Port_State.Distributing=TRUE的该门户系统上的所有端口)。Y)TLV_type=NeighborPortsInformation:该字段指示在该TLV元组中携带的信息的性质。通过整数值0x05来标识邻居端口信息。Z)Neighbor_Ports_Information_Length:该字段指示该TLV元组的长度(八位组),邻居端口信息使用所包含的邻居聚合端口的数量的4倍的长度值。Aa)Neighbor_Admin_Aggregator_Key:附连到邻居门户系统的聚合器的管理聚合器密钥值。Ab)Neighbor_Oper_Partner_Aggregator_Key:与邻居门户系统的聚合器LAGID相关联的操作同伴聚合器密钥。Ac)ActiveNeighborPorts:按增加的端口号顺序的活动聚合端口的列表。该列表受LACP的操作的控制(列出LACP对其宣告Actor_Oper_Port_State.Distributing=TRUE的最接近的邻居门户系统上的所有端口)。Ad)TLV_type=OtherPortsInformation:该字段指示在该TLV元组中携带的信息的性质。通过整数值0x06标识其它端口信息。只有当门户拓扑包含三个门户系统时才使用该TLV。Ae)Other_Ports_Information_Length:该字段指示该TLV元组的长度(八位组),其它端口信息使用所包含的其它门户系统的聚合端口的数量的4倍的长度值。Af)Other_Admin_Aggregator_Key:附连到其它邻居门户系统的聚合器的管理聚合器密钥值。Ag)Other_Oper_Partner_Aggregator_Key:与其它邻居门户系统的聚合器LAGID相关联的操作同伴聚合器密钥。Ah)ActiveOtherPorts:按增加的端口号顺序的活动聚合端口的列表。该列表受LACP的操作的控制(列出LACP对其宣告Actor_Oper_Port_State.Distributing=TRUE的可选的其它门户系统上的所有端口)。Ai)TLV_type=OtherInformation:该字段指示在该TLV元组中携带的信息的性质。在一个实施例中,通过整数值0x0x标识其它信息。Aj)TLV_type=Terminator:该字段指示在该TLV元组中携带的信息的性质。在一个实施例中,通过整数值0x00标识终止符(消息末端)信息。Ak)Terminator_Length:该字段指示该TLV元组的长度(八位组)。在一个实施例中,终止符信息使用0(0x00)的长度值。注意,使用为0的Terminator_Length是故意的。在TLV编码方案中,终止符编码的惯例是类型和长度均为0。还注意,虽然保证版本1实现能够成功接收版本NPDU,但是版本NPDU可以包含版本1无法解译(并将忽略)的额外信息。确保向后兼容性的一个至关重要的因素是,不需要协议的任何未来版本重新定义为之前版本定义的信息的结构或语义;它可以只在之前集合中增加新的信息元素。因此,在版本NPDU中,版本1实现可以预期在与版本1PDU中完全相同的地方找到版本1信息,并且可以预期如为版本1所定义解译该信息。注意,DRCPDU的大小随聚合端口数量的增加而增大。支持跨越门户的门户系统扩展的最多(1500-88)/4=353个聚合端口。需要门户支持的最小聚合端口数是2。下表提供适用于DRCP的TLV的列表。表4.DRCPTLV的类型字段值因此,实施例提供将DRCPDU封装到帧中,其中每个DRCPDU包括指示DRCP状态的字段,例如IPP的DRCP变量。该字段可以是一个八位组。该字段还可包括在八位组的不同位中编码的陈述以下一个或多个信息的信息:Home_Gateway;Neighbor_Gateway;Other_Gateway;IPP_Activity;DRCP_Timeout;GatewaySync;PortSync;Expired。图14示出根据本发明的DRCPDU结构的另一个实施例。尽管图14的DRCPDU结构与图5的DRCPDU结构类似,但是有几个字段不同。例如,在图14中,Home_Ports_Information_Length为2+4*PN,而不是图5中的2+2*PN。类似地,图14中的DRCPDU结构的其它几个字段包含与图5中的DRCPDU结构的长度不同的长度,并且这两个DRCPDU结构还包含在其它实施例中不存在的字段。在每个实例DRCPDU结构中,这些字段具有针对字段的内容的描述性名称。一些不同字段包含类似信息,但是已经进行了重新命名或重新组织。本领域技术人员将了解,与本文中所描述的原理和结构一致的其它类型DRCPDU结构也是可能的。图25示出根据本发明的DRCPDU结构的另一个实施例。图25中的DRCPDU结构与图5和图14的DRCPDU结构类似,但有几处差异。例如,端口信息长度(对于归属、邻居和其它端口)不同。另外,图25中的DRCPDU结构包含拓扑状态以及聚合器密钥的几个字段,例如上文中所论述的Oper_Aggregator_Key、Home_Admin_Aggregator_Key、Home_Oper_Partner_Aggregator_Key、Neighbor_Admin_Aggregator_Key、Other_Admin_Aggregator_Key和Other_Oper_Partner_Aggregator_Key。图32示出根据本发明一个实施例通过包含DRCPDU结构的帧通信的方法。方法3200可以在作为DRNI的一部分的DRCP门户(称为本地门户)的DRCP节点(例如,网络装置)(例如,图1B的节点K-O和图1C的网络装置132和134)上实现。在3202,门户的DRCP节点在帧中封装DRCPDU。DRCPDU包括这样的结构,该结构包括:(1)指示PDU针对DRCP的类型字段(称为子类型),(2)指示DRCPDU的版本号的版本字段,以及(3)TLV的集合。TLV的集合包括终止符TLV、门户信息TLV、门户配置TLV、DRCP状态TLV、归属端口信息TLV和邻居端口信息TLV。在一个实施例中,当门户包括多于两个节点时,PDU结构可以包括其它端口TLV。在一个实施例中,TLV的集合还包括以下至少其中之一:网络/IPL共享方法TLV,网络/IPL共享封装TLV,为IEEE802.1预留的一个或多个TLV,以及组织特定TLV,每个TLV都将在本文论述。TLV的集合中的每个TLV包括TLV类型字段。在一个实施例中,每个TLV的TLV类型字段包括在上文所示的表4中所指定的值。每个TLV包括可设置成上文所论述的值的字段。例如:•终止符TLV指示PDU结构的末端。在一个实施例中,它包括TLV类型字段和终止符长度字段,其中如上文所论述,终止符长度字段指示长度为0。•门户信息TLV指示DRCP节点所属的门户的特性。在一个实施例中,在如上文所论述的以下字段中指示这些特性:(1)指示指派给节点的聚合器的优先级的聚合器优先级字段,(2)指示聚合器的ID的聚合器标识符(ID)字段,(3)指示指派给门户的优先级的门户优先级字段,以及(4)指示与网络装置相关联的MAC地址组成的门户地址字段。•门户配置信息TLV指示DRCP节点所属的门户的配置信息。在一个实施例中,在如上文所论述的以下字段中指示配置信息:(1)指示门户的拓扑状态的拓扑状态字段(例如,如图6C和29所示),(2)指示节点的操作聚合器密钥的操作聚合器密钥字段,(3)指示所使用的端口算法的端口算法字段,(4)指示所使用的网关算法的网关算法字段,(5)指示用于端口对话标识符(ID)到聚合端口指派的端口摘要的端口摘要字段,以及(6)指示用于网关对话ID到网关指派的网关摘要的网关摘要字段。•DRCP状态TLV指示与IPP相关联的变量。在一个实施例中,DRCP状态包括如上文所论述如图6B所示编码的值。•归属端口信息TLV指示与DRCP节点联合的节点的当前状态。在一个实施例中,在如上文所论述的以下字段中指示节点的当前状态:(1)指示所附连的聚合器的管理聚合器密钥值的管理聚合器密钥字段,(2)指示与节点的聚合器LAGID相关联的操作同伴聚合器密钥的操作同伴聚合器密钥字段,以及(3)指示节点中的活动聚合端口的列表的活动聚合端口字段。•邻居端口信息TLV指示与DRNI联合的邻居节点的当前状态。在一个实施例中,在如上文所论述的以下字段中指示邻居节点的当前状态:(1)指示附连到邻居网络装置的聚合器的管理聚合器密钥值的管理聚合器密钥字段,(2)指示与邻居节点的聚合器LAGID相关联的操作同伴聚合器密钥的操作同伴聚合器密钥字段,以及(3)指示与IPP相关联的最接近的邻居门户系统中的活动聚合端口的列表的活动聚合端口字段。•其它端口信息TLV指示当本地门户包括多于两个节点时与DRNI相关联的其它邻居节点的当前状态。在一个实施例中,在如上文所论述的以下字段中指示其它邻居节点的当前状态:(1)指示附连到其它节点的聚合器的管理聚合器密钥值的管理聚合器密钥字段,(2)指示与其它邻居节点的聚合器LAGID相关联的操作同伴聚合器密钥的操作同伴聚合器密钥字段,以及(3)指示在IPP上的其它邻居节点中的活动聚合端口的列表的活动聚合端口字段。•网络/IPL共享方法TLV指示与节点相关联的网络和IPL共享方法;以及•网络/IPL共享封装TLV指示与共享方法的封装有关的信息。在3206,DRCP节点经由IPP将帧发送给门户的它的邻居节点,其中邻居节点使用封装好的信息来控制帧的转发。如上文所论述,通过方法3200,节点与它的邻居节点交换信息,并且因而建立和启用门户的DRCP操作。方法3200提供了供节点与它的相邻节点交换信息的有效方法。网络/IPL共享TLV只有当所使用的网络/IPL共享方法是网络/IPL标签共享或网络/IPL封装共享之一以便确保门户系统中的一致配置时才需要这些TLV。网络/IPL时间共享方法需要交换网络/IPL共享方法TLV,而不是网络/IPL共享封装TLV。注意:当所使用的网络/IPL共享方法是本文中所论述的物理或聚合方法时,不需要网络/IPL共享TLV。下表提供适用于网络/IPL共享方法的TLV的列表。表5.网络/IPL共享TLV的类型字段值网络/IPL共享方法TLV网络/IPL共享方法TLV结构可以示为下表,还可在以下字段定义中进一步描述。表6.网络/IPL共享方法TLVTLV_type=网络/IPL共享方法TLV:该字段指示在该TLV元组中携带的信息的性质。通过整数值0x07来标识网络/IPL共享TLV。Network/IPL_Sharing_Method_Length:该字段指示该TLV元组的长度(八位组)。网络/IPL共享TLV使用6(0x06)的长度值。DRF_Home_Network/IPL_Sharing_Method:该字段包含表示在IPL和网络链路正共享相同物理链路时用于将IPL帧传送到该IPP上的邻居门户系统的网络/IPL共享方法的值。它由标识负责该封装的组织的三个八位组组织唯一标识符(OUI)紧跟用于标识由该组织定义的封装方法的一个随后八位组组成。总是设置成等于aDrniEncapsulationMethod。值1指示使用网络/IPL时间共享。值2指示所使用的封装方法与网络帧所使用的方法相同,并且使用网络/IPL标签共享。下表提供IEEEOUI(01-80-C2)封装方法编码。表7.IEEE封装方法网络/IPL共享封装TLV网络/IPL共享封装TLV结构可以如下所示,并且还可在以下字段定义中进一步描述。表8.网络/IPL共享封装TLVTLV_type=网络/IPL共享封装TLV:该字段指示在该TLV元组中携带的信息的性质。通过整数值0x08来标识网络/IPL共享TLV。Network/IPL_Sharing_Encapsulation_Length:该字段指示该TLV元组的长度(八位组)。网络/IPL共享TLV使用34(0x22)的长度值。DRF_Home_Network/IPL_IPLEncap_Digest:该字段包含从aDrniIPLEncapMap计算的用于在IPL上与邻居门户系统交换的MD5摘要的值。DRF_Home_Network/IPL_NetEncap_Digest:该字段包含从aDrniNetEncapMap计算的用于在共享网络链路上交换的MD5摘要的值。DrniEncapsulationMethodATTRIBUTEAPPROPRIATESYNTAXASEQUENCEOFOCTETS(八位组序列),由组织唯一标识符(OUI)和一个随后八位组组成。BEHAVIORDEFINEDAS只有当支持网络/IPL时间共享或网络/IPL标签共享或网络/IPL封装共享时,该托管对象才适用。该对象标识表示用于在IPL和网络链路共享相同物理链路时将IPL帧传送给邻居门户系统的封装方法的值。它由标识负责该封装的组织的三个八位组组织唯一标识符(OUI)和用于标识由该组织定义的封装方法的一个随后八位组组成。关于IEEE封装方法的表提供IEEEOUI(01-80-C2)封装方法编码。0x01-80-C2-00的默认值指示IPL使用独立的物理或聚合链路。值1指示使用网络/IPL时间共享。值2指示所使用的封装方法与网络帧所使用的封装方法相同,并且使用网络/IPL标签共享。DrniIPLEncapMapATTRIBUTEAPPROPRIATESYNTAXASEQUENCEOFINTEGERs(整数序列),由网关对话ID索引。BEHAVIORDEFINEDAS只有当支持网络/IPL标签共享或网络/IPL封装共享时,该托管对象才适用。每个条目表示对于在本文中所指定的封装方法用于与该网关对话ID相关联的IPL帧的标识符的值。aDrniNetEncapMapATTRIBUTEAPPROPRIATESYNTAXASEQUENCEOFINTEGERs(整数序列),由网关对话ID索引。BEHAVIORDEFINEDAS只有当支持网络/IPL标签共享时,该托管对象才适用。每个条目表示在本文中所指定的方法是本文中所指定的网络/IPL标签共享方法并且网络帧需要共享IPL帧所使用的标签空间时用于与该网关对话ID相关联的网络帧的标识符的转译值。aAggPortAlgorithmATTRIBUTEAPPROPRIATESYNTAXASEQUENCEOFOCTETS(八位组序列),由三个八位组的组织唯一标识符(OUI)和一个随后八位组组成。BEHAVIORDEFINEDAS该对象标识供聚合器用于将帧指派给端口对话ID的算法。aAggActorSystemIDATTRIBUTEAPPROPRIATESYNTAX:MACAddressBEHAVIOURDEFINEDAS:用作包含该聚合器的系统的唯一标识符的6个八位组读取-写入MAC地址值。注意:从第6条中所描述的链路聚合机制的角度,只考虑执行者的系统ID和系统优先级的单个组合,而不在聚合器和与它相关联的聚合端口的这些参数的值之间作区分(即,在单个系统内的聚合操作方面描述协议)。但是,为聚合器和聚合端口提供的托管对象均允许对这些参数进行管理。这样的结果是从链路聚合的操作角度允许通过管理配置单台设备以便包含多于一个系统。这在配置具有有限聚合能力的设置中是尤其有用的。aAggActorSystemPriorityATTRIBUTEAPPROPRIATESYNTAX:INTEGERBEHAVIOURDEFINEDAS:指示与执行者的系统ID相关联的优先级值的2个八位组读取-写入值。组织特定TLV任何组织均可定义TLV以便在DRCP中使用。提供这些TLV以便允许诸如IEEE802.1、ITU-T、IETF的不同组织以及各个软件和设备供应商定义向邻居门户系统广告信息的TLV。组织特定TLV结构应当如下表所示,并且还可在以下字段定义中进一步描述。TLV_type=Organization-SpecificTLV:该字段指示在该TLV元组中携带的信息的性质。通过整数值0x0F标识组织特定TLV。Network/IPL_Sharing_Encapsulation_Length:该字段指示该TLV元组的长度(八位组)。组织特定TLV使用长度值LL。OUI:该字段包含3字节长的组织上唯一的标识符,它可从IEEE获得。Subtype:该字段包含子类型值,从而使得如果OUI的拥有者需要多个组织特定TLV,那么将不需要额外OUI。Value:该字段包含需要通信给邻居门户系统的信息。DRCP状态机概述协议的操作受到多个状态机的控制,每个状态机执行不同功能。这些状态机大部分在每个IPP基础上进行描述;来自每个聚合端口描述的任何偏差在文字上高亮显示。事件(例如,计时器到期或接收到DRCPDU)可造成状态转变,并且还可造成采取措施;这些措施可包括需要传送包含重复信息或新信息的DRCPDU。周期性和事件驱动性传输受需要传送(NTT)变量的状态控制,NTT变量根据需要由状态机生成。状态机如下:A)接收机(见图8)。该状态机从该IPP上的邻居门户系统接收DRCPDU,记录所包含的信息,并根据DRCP_Timeout的设置利用短超时或长超时对它进行超时设定。它对来自邻居门户系统的输入信息进行评估,以便确定在具有其它门户系统的门户中或作为个别门户,归属和邻居是否均同意在归属门户系统现在可安全使用的程度交换的协议信息;如果否,那么它断言NTT以便将新鲜协议信息传送给邻居门户系统。如果来自邻居门户系统的协议信息超时,那么接收机安装默认参数值以便供其它状态机使用。B)周期性传输机(PTS-见图9)。该状态机确定归属门户系统和它的邻居将交换DRCPDU以便维持门户的周期。C)门户系统机(PS-见图10)。该状态机负责基于本地信息和在归属门户系统的IPP上接收的DRCPDU更新门户中的所有网关和聚合端口的操作状态。该状态机针对每个门户系统。D)DRNI网关和聚合器机(DGA-见图11)。这些状态机负责配置经允许以便经过该DR功能的网关的网关对话ID和经允许以便通过该DR功能的聚合器分发的端口对话ID。这些状态机针对每个门户系统。E)DRNIIPP机(IPP-见图12)。这些状态机负责配置经允许以便经过该DR功能的IPP的网关对话ID和端口对话ID。F)传送机(TX-见下文中的分段“传送机”)。该状态机应来自其它状态机的要求并且在周期性基础上处理DRCPDU的传输。图7示出根据本发明的一个实施例在这些状态机中的关系以及在它们之间的信息流。箭头标记的邻居状态信息的集合表示新邻居信息,它包含在输入DRCPDU中或由管理默认值提供,由接收机馈送给每个状态机。箭头标记的归属状态信息的集合表示状态机之间的更新的归属状态信息流。DRCPDU的传输要么作为周期性机确定需要传送周期性DRCPDU的结果而发生,要么作为需要传送给邻居的归属的状态信息的变化的结果而发生。通过断言NTT将传送DRCPDU的需要用信号通知给传送机。剩余箭头表示状态机描述中允许状态机造成在另一状态机中发生事件的共享变量。图15示出根据本发明的另一个实施例在这些状态机中的关系以及它们之间的信息流。该备选实施例根据本文中所描述并在图15的图中示出的原则和结构以类似方式操作。因此,除了有注释的地方外,本描述一般适用于两种实施例。这些状态机利用如下文详述的常量、变量、消息和函数的集合。分布式弹性网络互连的管理分布式中继属性aDrniPortalIdATTRIBUTEAPPROPRIATESYNTAX:与48位MAC地址的语法匹配的8个八位组的序列BEHAVIOURDEFINEDAS:特定门户的读取-写入标识符。aDrniPortalId必须至少在可经由IPL与给定门户系统附连的所有潜在门户系统中是唯一的。并用作仿真系统的执行者的系统ID。DrniDescriptionATTRIBUTEAPPROPRIATESYNTAX:APrintableString,最大255个字符BEHAVIOURDEFINEDAS:包含关于分布式中继的信息的人可读文本字符串。该字符串是只读的。内容是供应商特定的。aDrniNameATTRIBUTEAPPROPRIATESYNTAX:APrintableString,最大255个字符BEHAVIOURDEFINEDAS:包含分布式中继的本地重要名称的人可读文本字符串。该字符串是读取-写入。aDrniPortalAddrATTRIBUTEAPPROPRIATESYNTAX:与48位MAC地址的语法匹配的6个八位组的序列BEHAVIOURDEFINEDAS:特定门户的读取-写入标识符。aDrniPortalAddr必须至少在可经由IPL与给定门户系统附连的所有潜在门户系统中是唯一的。并用作仿真系统的执行者的系统ID(6.3.2)。aDrniPortalPriorityATTRIBUTEAPPROPRIATESYNTAX:INTERGERBEHAVIOURDEFINEDAS:指示与门户的ID相关联的优先级值的2个八位组读取-写入值。并用作仿真系统的执行者的系统优先级。aDrniPortalTopologyATTRIBUTEAPPROPRIATESYNTAX:INTEGERBEHAVIOURDEFINEDAS:指示门户的拓扑的读取-写入值。值3代表通过三个门户内链路连接成环的三个门户系统的门户,值2代表通过两个IPL连接成链的三个门户系统的门户,值1代表通过单个IPL连接的两个门户系统的门户,并且值0代表不具有活动IPL的单个门户系统的门户。默认值是1。aDrniPortalSystemNumberATTRIBUTEAPPROPRIATESYNTAX:门户系统号,它是在1到3并且包含1和3的范围内的整数。BEHAVIORDEFINEDAS:门户内的该特定门户系统的读取-写入标识符。在具有相同aDrniPortalId的门户系统中必须是唯一的。aDrniIntraPortalLinkListATTRIBUTEAPPROPRIATESYNTAX:与接口标识符的语法匹配的整数序列。BEHAVIORDEFINEDAS:指派给该分布式中继的门户内链路的读取-写入列表。每个IPL的端口号配置成与所附连的门户系统的门户系统号匹配。aDrniLoopBreakLinkATTRIBUTEAPPROPRIATESYNTAX:与接口标识符的语法匹配的整数BEHAVIORDEFINEDAS:与aDrniIntraPortalLinkList的接口标识符之一匹配的读取-写入标识符。它的值标识在连接成环的三个门户系统的门户的情况下当所有IPL均操作时需要中断数据循环的接口(“循环中断链路”)。只有当aDrniPortalTopology中的值是3时才使用该托管对象。aDrniAggregatorATTRIBUTEAPPROPRIATESYNTAX:与接口标识符的语法匹配的整数。BEHAVIORDEFINEDAS:指派给该分布式中继的聚合器端口的读取-写入接口标识符。aDrniConvAdminGateway[]ATTRIBUTEAPPROPRIATESYNTAX:与门户系统号的语法匹配的整数序列的数组。BEHAVIORDEFINEDAS:存在通过网关对话ID索引的4096个aDrniConvAdminGateway[]变量aDrniConvAdminGateway[0]至aDrniConvAdminGateway[4095]。每个变量包含分布式中继的网关选择优先级列表的当前管理值。该选择优先级列表、即每个网关对话ID的整数序列是按照从最高到最低优先权顺序的门户系统号的列表,以便供对应的选门户系统的网关携带该对话。注意:在网络管理员未能为门户的所有DR功能中的aDrniConvAdminGateway[]变量配置相同值的程度,可以会错误引导帧。分布式中继控制协议(DRCP,9.4)防止这种类型的错误配置。aDrniGatewayAlgorithmATTRIBUTEAPPROPRIATESYNTAX:由组织唯一标识符(OUI)和一个或多个随后八位组组成的八位组序列。BEHAVIORDEFINEDAS:该对象标识供DR功能用于将帧指派给网关对话ID的算法。常量以下论述集中在根据本发明的一个实施例适用的各种常量上。本章节中指定的所有计时器具有±250ms的实现公差。Fast_Periodic_Time:在利用短超时的周期性传输之间的秒数。Value:整数;1Slow_Periodic_Time:在利用长超时的周期性传输之间的秒数。Value:整数;30Short_Timeout_Time:当利用短超时时在使所接收的LACPDU信息无效之前的秒数(3×Fast_Periodic_Time)。Value:整数;3Long_Timeout_Time:当利用长超时时在使所接收的LACPDU信息无效之前的秒数(3×Slow_Periodic_Time)。Value:整数;90Aggregate_Wait_Time:延迟聚合以便允许同时聚合多个链路的秒数。Value:整数;2与分布式中继相关联的变量以下论述集中在根据本发明的一个实施例与分布式中继相关联的各种变量上。Drni_Aggregator_Priority:关联到该门户的聚合器的系统优先级。总是设置成等于aAggActorSystemPriority。在DRCPDU中传送。Value:整数;由管理员或系统策略指派。Drni_Aggregator_ID:与该门户相关联的聚合器的系统标识符的MAC地址组成。总是设置成等于aAggActorSystemID,并在DRCPDU中传送。Value:48个位Drni_Gateway_Conversation:列出哪个门户系统的网关(如果有的话)正传递每个网关对话ID的操作向量。Value:门户系统号的序列(一个也没有时是0),通过网关对话ID索引。在初始化时以及在托管对象或变量发生变化时从aDrniConvAdminGateway[]和Drni_Portal_System_State[]计算的值。Drni_Port_Conversation:列出哪个门户系统(如果有的话)正传递每个端口对话ID的操作向量。Value:门户系统号的序列(一个也没有时是0),通过端口对话ID索引。在初始化时和在托管对象或变量发生变化时从aAggConversationAdminPort[]和Drni_Portal_System_State[]计算的值。Drni_Portal_Priority:门户的系统优先级。总是设置成等于aDrniPortalPriority。在DRCPDU中传送。Value:整数由管理员或系统策略指派。Drni_PortalID(或者在一些实施例中为Drni_Portal_Addr):门户的系统标识符的MAC地址组成。总是设置成aDrniPortalId。在DRCPDU中传送。Value:48个位由管理员或系统策略指派。Drni_Portal_Topology:门户的配置的拓扑。总是设置成等于aDrniPortalTopology。在DRCPDU中传送。Value:在[0...3]范围中的整数由管理员或系统策略指派。每个DR功能变量ChangeDRFPorts:该变量跟踪关联到该门户系统的网关和所有聚合端口的操作状态,并在它们其中任何一个发生改变时设置成“真”。如果启动Drni_Conversation_GatewayList[]或Drni_Conversation_PortList[]的新值,那么该变量也可设置成“真”。Value:布尔ChangePortal:当该门户系统上的任何IPP上的DRF_Neighbor_Oper_DRCP_State.IPP_Activity发生改变时,该变量设置成“真”。Drni_Conversation_GatewayList[]:4096个列表的数组,通过网关对话ID索引,它确定该门户中的哪个网关携带哪个网关对话ID。数组中的每一项是该门户中用于携带所索引的网关对话ID的网关的列表,其优先级顺序是从最想要到最不想要。通过管理员或系统策略指派。总是设置成等于aDrniConvAdminGateway[]。Drni_Conversation_PortList[]:4096个列表的数组,通过端口对话ID索引,它确定该门户中的哪个聚合端口携带哪个端口对话ID。数组中的每一项是该门户中用于携带所索引的端口对话ID的聚合端口的列表,其优先级顺序是从最想要到最不想要。通过管理员或系统策略指派。总是设置成等aAggConversationAdminPort[]。Value:端口ID的序列Drni_Portal_System_State[]:该门户中的所有门户系统的状态,通过门户系统号索引。Value:网关的布尔标志指示操作状态(“真”指示操作)、该门户系统中的操作聚合端口的端口ID的列表(可能为空)以及IPP的身份(如果有的话),根据这些获得门户系统的状态。通过updatePortalState函数设置该变量。在DRCPDU中传送。DRF_Home_Admin_Aggregator_Key:与该门户系统的聚合器相关联的管理聚合器密钥值。在DRCPDU中传送。Value:整数在一个实施例中,通过管理员或系统策略指派DRF_Home_Admin_Aggregator_Key。为每个门户系统配置DRF_Home_Admin_Aggregator_Key,并且DRF_Home_Admin_Aggregator_Key对于每个门户系统必须不同。具体来说,在每个门户系统中,两个最高有效位必须不同。较低的14个位可以是任何值,不需要在每个门户系统中相同,并且具有默认值0。由管理员或系统策略指派。DRF_Home_Conversation_GatewayList_Digest:aDrniConvAdminGateway[]的摘要,在该DR功能中配置,用于与邻居门户系统交换。该变量供DRCPDU参考。Value:MD5摘要DRF_Home_Conversation_PortList_Digest:aAggConversationAdminPort[]的摘要,在该DR功能中配置,用于与邻居门户系统交换。在DRCPDU中传送。Value:MD5摘要DRF_Home_Gateway_Algorithm:供该DR功能用于将帧指派给网关对话ID的网关算法。总是设置成等于aDrniGatewayAlgorithm。在DRCPDU中传送。Value:4个八位组(3个八位组OUI标识负责设置该算法的组织,紧跟2个八位组标识该特定算法)。在另一个实施例中,使用5个八位组。DRF_Home_Port_Algorithm:供该DR功能用于将帧指派给端口对话ID的端口算法。总是设置成等于相关联的聚合器的aAggPortAlgorithm。在DRCPDU中传送。Value:4个八位组(3个八位组OUI标识负责设置该算法的组织,紧跟2个八位组标识该特定算法)。在另一个实施例中,使用5个八位组。DRF_Home_Oper_Aggregator_Key:与该门户系统的聚合器相关联的操作聚合器密钥值。通过updateKey函数计算它的值。在DRCPDU中传送。Value:整数DRF_Home_Oper_Partner_Aggregator_Key:与该门户系统的聚合器LAGID相关联的操作同伴聚合器密钥。在DRCPDU中传送。Value:整数DRF_Home_State:该DR功能的操作状态。在DRCPDU中传送。Value:该门户系统的网关的布尔标志指示操作状态(“真”指示操作)以及该门户系统中的操作聚合端口的端口ID的列表(可能为空)。DRF_Neighbor_Admin_Conversation_GatewayList_Digest:邻居门户系统的算法的值,通过管理员或系统策略指派,以便在邻居的信息未知时使用。它的默认值是从aDrniConvAdminGateway[]计算的MD5摘要。Value:MD5摘要DRF_Neighbor_Admin_Conversation_PortList_Digest:邻居门户系统的算法的值,通过管理员或系统策略指派,以便在邻居的信息未知时使用。它的默认值是从aAggConversationAdminPort[]计算的MD5摘要。Value:MD5摘要DRF_Neighbor_Admin_Gateway_Algorithm:邻居系统的网关算法的值,通过管理员或系统策略指派,以便在邻居的信息未知时使用。它的默认值设置成等于aDrniGatewayAlgorithm。Value:4个八位组(3个八位组OUI标识负责设置该算法的组织,紧跟2个八位组标识该特定算法)。在另一个实施例中,使用5个八位组。DRF_Neighbor_Admin_DRCP_State:邻居门户的DRCP状态参数的默认值,通过管理员或系统策略指派,以便在同伴的信息未知或到期时使用。如一个实施例所描述,其值由以下变量的集合组成:•HomeGateway•NeighborGateway•OtherGateway•IPPActivity•Timeout•GatewaySync•PortSync•ExpiredValue:8个位DRF_Neighbor_Admin_Port_Algorithm:邻居系统的端口算法的值,通过管理员或系统策略指派,以便在邻居的信息未知时使用。它的默认值设置成等于aAggPortAlgorithm。Value:4个八位组(3个八位组OUI标识负责设置该算法的组织,紧跟2个八位组标识该特定算法)。在另一个实施例中,使用5个八位组。DRF_Portal_System_Number:门户中的该门户系统的唯一标识符。Value:在一个实施例中,为在[1..3]范围内的整数。从aDrniPortalSystemNumber复制。在DRCPDU中传送。PSI(门户状态“隔离”):当门户系统与相同门户内的其它门户系统隔离时,通过updateDRFHomeState函数将该变量设置成“真”。Value:布尔每个IPP变量以下论述集中在根据本发明的一个实施例的每个IPP的各种变量上。Ipp_Gateway_Conversation_Direction:哪些网关对话ID正经过可通过该IPP到达的网关的操作列表。它通过DRCP的操作设置。Value:通过网关对话ID索引的布尔标志的向量;“真”=对于该网关对话ID启用可通过该IPP到达的某个网关。对于每个网关对话ID,如果并且只要当满足以下条件时该值才为“真”:a)变量Drni_Gateway_Conversation和Drni_Portal_System_State[]指示该网关对话ID的目标门户系统位于该IPP之后,以及b)Drni_Gateway_Conversation和Ipp_Other_Gateway_Conversation关于哪个门户系统应当获得该网关对话ID达成一致。当Ipp_Gateway_Conversation_Direction的任何贡献变量发生变化时,将Ipp_Gateway_Conversation_Direction初始化为“假”并重新计算。对于在该IPP上接收的帧,“真”意味着帧是下行帧,它最终去往聚合器(或丢弃);并且“假”意味着帧是上行帧,它最终去往网关(或丢弃)。对于提供用于在该IPP上传送的帧,“真”指示帧可通过,并且“假”指示它不可通过。该变量不用于控制下行帧。Ipp_Port_Conversation_Passes:允许通过该IPP传送哪些端口对话ID的操作列表。Value:通过端口对话ID索引的布尔标志的向量。只有当提供下行帧以便在该IPP上传送时才检查该变量。对于每个端口对话ID,如果并且只有当满足以下条件时该值才为“真”(ID通过):a)变量Drni_Port_Conversation和Drni_Portal_System_State[]指示该端口对话ID的目标门户系统位于该IPP之后,以及b)Drni_Port_Conversation和Ipp_Other_Port_Conversation_Portal_System关于哪个门户系统应当获得该端口对话ID达成一致。当Ipp_Port_Conversation_Passes的任何贡献变量发生变化时,将Ipp_Port_Conversation_Passes初始化为“假”并重新计算。ChangePortal:当该门户系统上的任何IPP上的DRF_Neighbor_Oper_DRCP_State.IppActivity发生改变时,将该变量设置成“真”。Value:布尔CC_Time_Shared:指示一致地配置该IPP上的邻居和归属门户系统以便使用网络/IPL时间共享的布尔。Value:布尔CC_EncTag_Shared:指示一致地配置该IPP上的邻居和归属门户系统以便根据aDrniEncapsulationMethod所选择的网络/IPL方法的规定使用网络/IPL标签共享或网络/IPL封装共享的布尔。.Value:布尔Differ_Conf_Portal:指示该IPP上的最接近的邻居门户系统所使用的配置的门户参数不同于预期参数的布尔。Value:布尔Differ_Portal:指示在该IPP上的接收的DRCPDU与不同门户相关联的布尔。Value:布尔DRF_Home_Conf_Neighbor_Portal_System_Number:对于附连到该IPP的邻居门户系统的门户系统号该门户系统的配置值。总是设置成等于指派给该IPP的端口ID的优先级组成的两个最低有效位的值。在DRCPDU中传送。Value:在[1...3]范围内的整数。DRF_Home_Loop_Break_Link:指示在aDrniLoopBreakLink中将附连到该IPP的IPL配置成循环中断链路的布尔。在DRCPDU中传送。Value:布尔DRF_Home_Network/IPL_IPLEncap_Digest:aDrniIPLEncapMap的摘要,在该IPP上配置,用于在IPL上与邻居门户系统交换。在网络/IPL共享封装TLV中传送。Value:MD5摘要DRF_Home_Network/IPL_NetEncap_Digest:aDrniNetEncapMap的摘要,在该IPP上配置,用于在共享网络链路上交换。在网络/IPL共享封装TLV中传送。Value:MD5摘要DRF_Home_Network/IPL_Sharing_Method:供该DR功能用于与网络数据共享该IPP的网络/IPL共享方法。总是设置成等于aDrniEncapsulationMethod。当aDrniEncapsulationMethod不设置成默认空值时,在网络/IPL共享方法TLV中传送。Value:4个八位组(3个八位组OUI标识负责定义该方法的组织,紧跟1个八位组标识该特定方法)。DRF_Home_Oper_DRCP_State:如在该IPP上所报告的该门户系统的DRCP状态参数的操作值。如上文所描述,它由以下变量集合组成:•HomeGateway•NeighborGateway•OtherGateway•IPPActivity•Timeout•GatewaySync•PortSync•ExpiredValue:8个位DRF_Neighbor_Admin_Aggregator_Key:在一个实施例中,它定义为该IPP上的邻居门户系统的管理聚合器密钥值。在DRCPDU中传送。Value:整数DRF_Neighbor_Aggregator_Priority:在该IPP上最后接收的邻居的聚合器的系统优先级。Value:整数DRF_Neighbor_AggregatorID:在该IPP上最后接收的邻居门户系统的聚合器系统ID的MAC地址组成。Value:48个位DRF_Neighbor_Aggregator_Priority:在该IPP上最后接收的邻居门户系统的聚合器的系统优先级。Value:整数DRF_Neighbor_Conversation_GatewayList_Digest:在该IPP上最后接收的邻居门户系统的网关对话ID摘要。Value:MD5摘要DRF_Neighbor_Conversation_PortList_Digest:在该IPP上最后接收的邻居门户系统的端口对话ID摘要。Value:MD5摘要DRF_Neighbor_Gateway_Algorithm:供邻居门户系统用于将帧指派给在该IPP上接收的网关对话ID的算法的值。Value:4个八位组(3个八位组OUI标识负责设置该算法的组织,紧跟2个八位组标识该特定算法)。在另一个实施例中,使用5个八位组。DRF_Neighbor_Loop_Break_Link:指示通过该IPP上的邻居门户系统将附连到该IPP的IPL标识为循环中断链路的布尔。Value:布尔DRF_Neighbor_Network/IPL_IPLEncap_Digest:在该IPP上最后接收的邻居门户系统的aDrniIPLEncapMap的摘要。Value:MD5摘要DRF_Neighbor_Network/IPL_NetEncap_Digest:最后接收的aDrniNetEncapMap的摘要,用于在该IPP上的邻居门户系统的共享网络链路上交换。Value:MD5摘要DRF_Neighbor_Network/IPL_Sharing_Method:在该IPP上最后接收的邻居门户系统所使用的网络/IPL共享方法。Value:4个八位组(3个八位组OUI标识负责定义该方法的组织,紧跟1个八位组标识该特定方法)。DRF_Neighbor_Oper_Aggregator_Key:在该IPP上最后接收的邻居门户系统的操作聚合器密钥值。Value:整数DRF_Neighbor_Oper_Partner_Aggregator_Key:该IPP上的邻居门户系统的操作同伴聚合器密钥值。在DRCPDU中传送。Value:整数DRF_Neighbor_Oper_DRCP_State:邻居的DRCP状态参数的当前值的该门户系统的视图的操作值。归属DR功能将该变量设置成在DRCPDU中从邻居门户系统接收的值。如上文所描述,该值由以下变量集合组成:•HomeGateway•NeighborGateway•OtherGateway•IPPActivity•Timeout•GatewaySync•PortSync•ExpiredValue:8个位DRF_Neighbor_Conf_Portal_System_Number:在该IPP上最后接收的邻居门户系统对于该门户系统的配置门户系统号值。Value:在[1...3]范围内的整数。DRF_Neighbor_Port_Algorithm:供邻居门户系统用于将帧指派给在该IPP上接收的端口对话ID的算法的值。Value:4个八位组(3个八位组OUI标识负责设置该算法的组织,紧跟2个八位组标识该特定算法)。在另一个实施例中,使用5个八位组。DRF_Neighbor_Portal_System_Number:在该IPP上最后接收的邻居门户系统的标识符。Value:在[1...3]范围内的整数。DRF_Neighbor_Portal_Topology:在该IPP上最后接收的邻居的门户拓扑的标识符。Value:在[1...3]范围内的整数。DRF_Neighbor_State:该IPP上的最接近的邻居门户系统的操作状态。Value:指示邻居门户系统的网关的操作状态的布尔标志(“真”指示操作)以及该IPP上的操作聚合端口的端口ID的列表(可能为空)。Drni_Neighbor_ONN在拓扑状态字段内携带的在该IPP上最后接收的邻居门户系统的ONN标志。Value:整数DRF_Other_Neighbor_Admin_Aggregator_Key:与该IPP相关联的其它邻居门户系统的管理聚合器密钥值。在DRCPDU中传送。Value:整数DRF_Other_Neighbor_Oper_Partner_Aggregator_Key:与该IPP相关联的其它邻居门户系统的操作同伴聚合器密钥值。在DRCPDU中传送。Value:整数DRF_Other_Neighbor_State:该IPP上的其它邻居门户系统的操作状态。Value:指示其它邻居门户系统的网关的操作状态的布尔标志(“真”指示操作)以及该IPP上的操作聚合端口的端口ID的列表(可能为空)。Drni_Neighbor_Portal_Addr:在该IPP上最后接收的邻居门户系统的门户的系统ID的MAC地址组成。Value:48个位Drni_Neighbor_Portal_Priority:在该IPP上最后接收的邻居门户系统的系统优先级。Value:整数Drni_Neighbor_PortalID:在该IPP上最后接收的邻居门户系统的门户系统ID的MAC地址组成。Value:48个位Drni_Neighbor_State[]:在该IPP上最后接收的供邻居门户系统使用的Drni_Portal_System_State[]的操作值。Value:对于每个门户系统,指示当前门户系统的网关的操作状态的布尔标志(“真”指示操作)以及如该IPP上的邻居门户系统所报告在该门户系统中的操作聚合端口的端口ID的列表(可能为空)。Enabled_Time_Shared:指示一致地配置该IPP上的邻居和归属门户系统并启用本文中所指定的网络/IPL时间共享方法的布尔。Value:布尔Enabled_EncTag_Shared:指示一致地配置该IPP上的邻居和归属门户系统以便如aDrniEncapsulationMethod所选择的网络/IPL方法所规定使用网络/IPL标签共享或网络/IPL封装共享的标签操纵方法。Value:布尔Ipp_Other_Gateway_Conversation:列出如该IPP上的最接近的邻居所报告哪个门户系统的网关(如果有的话)正传递每个网关对话ID的操作向量。Value:门户系统号的序列(一个也没有时为0),通过网关对话ID索引。在初始化时以及在托管对象发生改变或GatewayConversationUpdate为“假”时从aDrniConvAdminGateway[]和DRF_Neighbor_State[]计算的值。Ipp_Other_Port_Conversation_Portal_System:列出如该IPP上的最接近的邻居所报告哪个门户系统(如果有的话)正传递每个端口对话ID的操作向量。Value:门户系统号的序列(一个也没有时为0),通过端口对话ID索引。在初始化时以及在托管对象发生改变或PortConversationUpdate为“假”时从aAggConversationAdminPort[]和DRF_Neighbor_State[]计算的值。IPP_port_enabled:指示已经建立链路并且IPP可操作的变量。Value:布尔如果IPP可操作,那么为“真”(MAC_Operational==TRUE).否则,为“假”。注意:基本MAC借以生成IPP_port_enabled变量的值的方式随实现而定。Ipp_Portal_System_State[]:在DRCPDU中从该IPP最后接收的可通过该IPP到达的门户系统的状态的列表。通过updatePortalSystem函数更新该变量。Value:对于每个门户系统,指示当前门户系统的可通过该IPP到达的网关的操作状态的布尔标志(“真”指示操作)以及该门户系统中的操作聚合端口的端口ID的列表(可能为空)。在该列表中,紧密相邻的门户系统的状态是列表中的第一状态。该列表可具有最多两个门户系统的状态。NTTDRCPDU:“真”指示存在应当在该IPP上传送的新协议信息,或者指示需要提醒邻居门户系统旧信息。否则,使用“假”。ONNOtherNonNeighborflag:该值通过updatePortalState函数更新,并且只在由三个门户系统组成的门户上适用。在DRCPDU中传送。Value:布尔“真”指示其它端口信息TLV与该门户系统的最接近的邻居无关联。“假”(编码为0)指示其它端口信息TLV是该门户系统上的其它IPP上的最接近的邻居。DRCP_current_while_timer该计时器用于检测所接收的协议信息是否到期。如果DRF_Home_Oper_DRCP_State.DRCP_Timeout设置成短超时,那么从值Short_Timeout_Time开始计时器。否则,它从值Long_Timeout_Time开始。DRCP_periodic_timer(time_value)该计时器用于生成周期性传输。如周期性传输状态机中所指定,它利用值Slow_Periodic_Time或Fast_Periodic_Time开始。常量该子条款中所指定的所有计时器具有±250ms的实现公差。Drni_Fast_Periodic_Time利用短超时的周期性传输之间的秒数。Value:整数1Drni_Slow_Periodic_Time利用长超时的周期性传输之间的秒数。Value:整数30Drni_Short_Timeout_Time当利用短超时时,在使所接收的DRCPDU信息无效之前的秒数(3×Fast_Periodic_Time)。Value:整数3Drni_Long_Timeout_Time当利用长超时时,在使所接收的DRCPDU信息无效之前的秒数(3×Slow_Periodic_Time)。Value整数90用于管理状态机的操作的变量以下论述集中在根据本发明一个实施例用于管理状态机的操作的各种变量上。BEGIN:该变量指示DRCP协议实体的初始化(或重新初始化)。当初始化或重新初始化系统时,它设置成“真”,并且当(重新)初始化完成时,它设置成“假”。Value:布尔DRCP_Enabled该变量指示相关联的IPP正在操作DRCP。如果链路不是点到点链路,那么DRCP_Enabled的值应当为“假”。否则,DRCP_Enabled的值应当为“真”。Value:布尔GatewayConversationUpdate:该变量指示需要更新每个网关对话ID分发。Value:布尔IppGatewayAllUpdate:该变量是该门户系统上的所有IPP的IppGatewayUpdate变量的逻辑“或”。Value:布尔IppGatewayUpdate:该变量指示需要更新相关联的IPP上的每个网关对话ID分发。在该门户系统上每个IPP存在一个IppGatewayUpdate变量。Value:布尔IppPortAllUpdate:该变量是该门户系统中的所有IPP的IppPortUpdate变量的逻辑“或”。Value:布尔IppPortUpdate:该变量指示需要更新相关联的IPP上的每个端口对话ID分发。在该门户系统上每个IPP存在一个IppPortUpdate变量。Value:布尔PortConversationUpdate:该变量指示需要更新每个端口对话ID分发。Value:布尔函数以下论述集中在根据本发明一个实施例的各种函数上。extractGatewayConversationID该函数通过对在DR功能的端口之一处接收ISS原语时在DR功能的中继实体上调用的服务原语的参数的值应用网关算法来提取网关对话ID值。ISS原语和DR功能的中继实体端口上的服务原语上的参数值的关系通过在这些端口上的相关联的支持功能以及它们的配置提供。注意:对于在供应商桥接器上的客户网络端口或供应商网络端口上支持的DRNI的情形(IEEEStd802.1Q中的第15条款),这些支持功能可以像IEEEStd802.1Q-2011的6.9中所规定的EISS支持功能那样简单;或者可以更复杂,对于在骨干边缘桥接器上分别在供应商实例端口或客户骨干端口上支持的DRNI的情形(IEEEStd802.1Q中的第16条款),就像IEEEStd802.1Q-2011中的6.10或6.11中所规定的EISS支持功能,或者对于在供应商边缘桥接器上分别在客户边缘端口或远程接入端口上支持的DRNI的情形,就像在IEEEStd802.1Q-2013中的15.4或15.6中所规定的C-标签服务接口支持功能或远程客户服务接口支持功能。值:在0-4095范围中的整数extractPortConversationIDextractPortConversationID该函数通过对在其它DR功能的端口之一处接收ISS原语时在聚合器上调用的服务原语的参数的值应用端口算法来提取端口对话ID值。聚合器上的ISS原语和DR功能的端口上的对应服务原语上的参数值的关系通过聚合器和DR功能端口上的相关联的支持功能以及它们的配置提供。检查以上注意事项。值:在0-4095范围中的整数。InitializeDRNIGatewayConversation该函数将Drni_Portal_System_Gateway_Conversation设置成通过网关对话ID索引的0的序列。InitializeDRNIPortConversation该函数将Drni_Portal_System_Port_Conversation设置成通过端口对话ID索引的0的序列。InitializeIPPGatewayConversation该函数将Ipp_Gateway_Conversation_Direction设置成通过网关对话ID索引的0的序列。InitializeIPPPortConversation该函数将Ipp_Port_Conversation_Passes设置成通过端口对话ID索引的0的序列。recordDefaultDRCPDU该函数将由管理员提供的IPP上的邻居门户系统的默认参数值设置成当前邻居门户系统的操作参数值,如下所述:另外针对IPP上的邻居门户系统:•将DRF_Neighbor_State设置成空(将邻居门户系统的网关的布尔标志设置成“假”,并将该IPP上的邻居门户系统上的操作聚合端口的列表清空),并且如果将aDrniPortalTopology配置成包含三个门户系统,那么将DRF_Other_Neighbor_State也设置成空(将其它邻居门户系统的网关的布尔标志设置成“假”,并将该IPP上的其它邻居门户系统上的操作聚合端口的列表清空)。没有门户系统状态信息可供该IPP上的任何门户系统使用;•将该IPP上的DRF_Neighbor_Admin_Aggregator_Key设置成0;•将该IPP上的DRF_Other_Neighbor_Admin_Aggregator_Key设置成0;•将该IPP上的DRF_Neighbor_Oper_Partner_Aggregator_Key设置成0;•将该IPP上的DRF_Other_Neighbor_Oper_Partner_Aggregator_Key设置成0;以及•将变量ChangePortal设置成“真”。最后,它将CC_Time_Shared和CC_EncTag_Shared设置成“假”。recordNeighborState该函数将在IPP上接收的DRCPDU中携带的Drni_Portal_System_State[]和DRF_Home_Oper_DRCP_State的参数值分别记录为与该IPP相关联的Drni_Neighbor_State[]和DRF_Neighbor_Oper_DRCP_State的当前参数值,并将DRF_Neighbor_Oper_DRCP_State.IPP_Activity设置成“真”。它还如下记录以下变量:•在IPP上接收的DRCPDU中携带的归属端口信息TLV中的DRF_Home_Oper_DRCP_State和Active_Home_Ports中的Home_Gateway的参数值用作该IPP上的DRF_Neighbor_State的当前值,并将该IPP上的该门户系统状态信息与由DRF_Neighbor_Portal_System_Number标识的门户系统相关联;•在IPP上接收的DRCPDU中携带的其它端口信息TLV中的DRF_Home_Oper_DRCP_State和Other_Neighbor_Ports中的Other_Gateway的参数值用作该IPP上的DRF_Other_Neighbor_State的当前值,并将该门户系统状态信息与由指派给在所接收的DRCPDU中的其它端口信息TLV内携带的DRF_Other_Neighbor_Admin_Aggregator_Key的两个最高有效位的值标识的门户系统相关联。如果在所接收的DRCPDU中没有携带其它端口信息TLV,并且门户拓扑包含三个门户系统,那么将DRF_Other_Neighbor_State设置为空(将Other_Gateway设置成“假”,并将该IPP上的其它邻居门户系统上的操作聚合端口的列表清空),并且没有门户系统状态信息可在该IPP上用于IPP上的远距离邻居门户系统;•当所接收的DRCPDU不包含其它端口信息TLV时,将DRF_Other_Neighbor_Admin_Aggregator_Key和DRF_Other_Neighbor_Oper_Partner_Aggregator_Key均设置成空。另外,如果支持网络/IPL时间共享,那么该函数将在所接收的网络/IPL共享方法TLV中携带的DRF_Home_Network/IPL_Sharing_Method的参数值记录为DRF_Neighbor_Network/IPL_Sharing_Method的当前参数值,并且如果它与系统的DRF_Home_Network/IPL_Sharing_Method相同,那么它将CC_Time_Shared设置成“真”,否则它将CC_Time_Shared设置成“假”。此外,如果支持网络/IPL标签共享或网络/IPL封装共享,那么该函数将在从IPP接收的网络/IPL共享TLV中携带的邻居门户系统的网络/IPL共享相关参数值记录为该IPP上的最接近的邻居门户系统的当前操作参数值,如下所述:DRF_Neighbor_Network/IPL_Sharing_Method=DRF_Home_Network/IPL_Sharing_Method,在所接收的网络/IPL共享方法TLV中携带;DRF_Neighbor_Network/IPL_IPLEncap_Digest=DRF_Home_Network/IPL_IPLEncap_Digest,在所接收的网络/IPL共享封装TLV中携带;以及DRF_Neighbor_Network/IPL_NetEncap_Digest=DRF_Home_Network/IPL_NetEncap_Digest,在所接收的网络/IPL共享封装TLV中携带。然后,它将邻居门户系统的最新更新的值与该门户系统的预期值进行比较,并且如果它将CC_EncTag_Shared设置成“真”;否则,如果其中一个或多个比较显示这些值不同,那么它将CC_EncTag_Shared设置成“假”。然后,它将该门户系统的Drni_Portal_System_State[]所报告的每个门户系统的网关操作状态与Drni_Neighbor_State[]所报告的相同门户系统的网关操作状态进行比较,并且如果它们中的任何一个不同,那么它将GatewayConversationUpdate设置成“真”,并将DRF_Home_Oper_DRCP_State.Gateway_Sync设置成“假”,否则GatewayConversationUpdate保持不变,并将DRF_Home_Oper_DRCP_State.Gateway_Sync设置成“真”。它还将该门户系统的Drni_Portal_System_State[]报告的每个门户系统的操作聚合端口的端口ID的列表与Drni_Neighbor_State[]所报告的相同门户系统的操作聚合端口的端口ID的列表进行比较,并且如果它们中的任何一个不同,那么它将PortConversationUpdate设置成“真”,并将DRF_Home_Oper_DRCP_State.Port_Sync设置成“假”,否则PortConversationUpdate保持不变,并将DRF_Home_Oper_DRCP_State.Port_Sync设置成“真”。recordPortalConfValues该函数将在从IPP接收的DRCPDU中携带的邻居门户系统的配置的参数值记录为在该IPP上的最接近的邻居门户系统的当前操作参数值,如下所述:然后,它将邻居门户系统的最新更新的值与该门户系统的预期值进行比较,并且如果:将变量Differ_Conf_Portal设置成“假”;否则如果其中一个或多个比较显示这些值不同,那么将变量Differ_Conf_Portal设置成“真”,并且具有不同值的相关联的变量对可在aDrniIPPDebugDifferPortalReason中使用。recordPortalValues该函数将在从IPP接收的DRCPDU中携带的Drni_Aggregator_Priority、Drni_Aggregator_ID、Drni_Portal_Priority和Drni_PortalID的参数值记录为该IPP上的最接近的邻居门户系统的当前操作参数值,如下所述:DRF_Neighbor_Aggregator_Priority=Drni_Aggregator_Priority;DRF_Neighbor_Aggregator_ID=Drni_Aggregator_ID;Drni_Neighbor_Portal_Priority=Drni_Portal_Priority,并且Drni_Neighbor_Portal_Addr=Drni_Portal_Addr。然后,它将邻居门户系统的最新更新的值与该门户系统的预期值进行比较,并且如果:DRF_Neighbor_Aggregator_Priority==Drni_Aggregator_Priority,DRF_Neighbor_Aggregator_ID==Drni_Aggregator_ID,Drni_Neighbor_Portal_Priority==Drni_Portal_Priority,并且Drni_Neighbor_Portal_Addr==Drni_Portal_Addr,那么将变量Differ_Portal设置成“假”;否则,如果其中一个或多个比较显示这些值不同,那么将变量Differ_Portal设置成“真”,并且具有这些不同值的相关联的变量对可在aDrniIPPDebugDifferPortalReason中使用。reportToManagement该函数因接收到错误配置的DRCPDU而警告管理系统该门户中的门户系统配置错误的潜在存在,并向它发送来自所接收的错误配置的DRCPDU的冲突信息。setDefaultPortalSystemParameters该函数将该门户系统的变量设置成管理设定值,如下所述:•Drni_Aggregator_Priority=aAggActorSystemPriority;•Drni_Aggregator_ID=aAggActorSystemID;•Drni_Portal_Priority=aDrniPortalPriority;•Drni_Portal_Addr=aDrniPortalAddr;•DRF_Portal_System_Number=aDrniPortalSystemNumber;•DRF_Home_Admin_Aggregator_Key=aAggActorAdminKey;•DRF_Home_Port_Algorithm=aAggPortAlgorithm;•DRF_Home_Gateway_Algorithm=aDrniGatewayAlgorithm;•DRF_Home_Conversation_PortList_Digest=theMD5digestonaDrniConvAdminGateway[];•DRF_Home_Conversation_GatewayList_Digest=theMD5digestonaAggConversationAdminPort[];以及•DRF_Home_Oper_DRCP_State=DRF_Neighbor_Admin_DRCP_State。另外,它将Drni_Portal_System_State[]设置成就像门户中的所有网关都报告为“假”并且任何门户系统上没有聚合端口报告为操作一样。setGatewayConversation该函数将Drni_Gateway_Conversation设置成从aDrniConvAdminGateway[]和当前Drni_Portal_System_State[]计算的值,如下所述:对于每个索引的网关对话ID,当只包含如Drni_Portal_System_State[]变量的网关布尔标志所提供的操作网关时,通过在由aDrniConvAdminGateway[]提供的门户系统号的列表中选择最高优先级门户系统号来标识门户系统号。setIPPGatewayConversation该函数将Ipp_Other_Gateway_Conversation设置成从aDrniConvAdminGateway[]和Drni_Neighbor_State[]计算的值,如下所述:对于每个索引的网关对话ID,当只包含如Drni_Neighbor_System_State[]变量的网关布尔标志所提供的操作网关时,通过在由aDrniConvAdminGateway[]提供的门户系统号的列表中选择最高优先级门户系统号来标识门户系统号。setIPPGatewayUpdate该函数将该门户系统上的每个IPP上的IppGatewayUpdate设置成“真”。setIPPPortConversation该函数将Ipp_Other_Port_Conversation_Portal_System设置成从aAggConversationAdminPort[]和Drni_Neighbor_State[]计算的值,如下所述:对于每个索引的端口对话ID,当只包含如Drni_Neighbor_System_State[]变量的相关联的列表所提供的操作聚合端口时,通过在由aAggConversationAdminPort[]提供的门户系统号的列表中选择最高优先级门户系统号来标识门户系统号。setIPPPortUpdate该函数将该门户系统上的每个IPP上的IppPortUpdate设置成“真”。setPortConversation该函数将Drni_Port_Conversation设置成从aAggConversationAdminPort[]和当前Drni_Portal_System_State[]计算的值,如下所述:对于每个索引的端口对话ID,当只包含如Drni_Portal_System_State[]变量的相关联的列表所提供的操作聚合端口时,通过在由aAggConversationAdminPort[]提供的门户ID的列表中提取最高优先级端口ID的优先级组成的两个最低有效位(6.3.4)来标识门户系统号。updateDRFHomeState该函数基于本地端口的操作状态更新DRF_Home_State,如下所述:基于用于标识本地网关的操作状态的机制将网关设置成“真”或“假”(“真”指示可操作并且连接性不受网络控制协议的操作的阻断);通过只包含所附连的聚合器将它们报告为具有Actor_Oper_Port_State.Distributing==TRUE(排除相关联的聚合端口在EXPIRED状态中不可操作(port_enabled=FALSE)或不在LAG中的情形的条件)的那些聚合端口ID来创建操作聚合端口的列表,并且如果该门户系统上的所有IPP上的DRF_Neighbor_Oper_DRCP_State.IPP_Activity==FALSE,那么将PSI设置成“真”,否则将PSI设置成“假”。另外,如果PSI==TRUE并且Gateway==FALSE,那么将该门户系统上的所有聚合端口上的Actor_Oper_Port_State.Sync设置成“假”。该函数还做如下设置:如果网关的操作状态或Drni_Conversation_GatewayList[]的配置列表发生改变,那么将GatewayConversationUpdate设置成“真”,并且如果如相关联的Actor_Oper_Port_State.Distributing变量或Drni_Conversation_PortList[]的配置列表的变化所报告操作聚合端口的列表发生任何变化,那么将PortConversationUpdate设置成“真”,否则GatewayConversationUpdate和PortConversationUpdate保持不变。updateIPPGatewayConversationDirection该函数如下计算Ipp_Gateway_Conversation_Direction的值:对于每个网关对话ID,如果并且只有当满足以下条件时,该值才为“真”:a)变量Drni_Gateway_Conversation和Ipp_Portal_System_State[]指示该网关对话ID的目标门户系统位于该IPP之后,以及b)Drni_Gateway_Conversation和Ipp_Other_Gateway_Conversation关于哪个门户系统应当获得该网关对话ID达成一致。另外,如果Drni_Gateway_Conversation和Ipp_Other_Gateway_Conversation对于任何网关对话ID不一致,那么:它将DRF_Home_Oper_DRCP_State.Gateway_Sync设置成“假”,并将NTTDRCPDU设置成“真”。否则,DRF_Home_Oper_DRCP_State.Gateway_Sync和NTTDRCPDU保持不变。当Ipp_Gateway_Conversation_Direction的任何贡献变量发生改变时,将Ipp_Gateway_Conversation_Direction初始化为“假”并重新计算。updateIPPPortConversationPasses该函数如下计算Ipp_Port_Conversation_Passes的值:对于每个端口对话ID,如果并且只有当满足以下条件时,该值才为“真”(ID通过):a)变量Drni_Port_Conversation和Ipp_Portal_System_State[]指示该端口对话ID的目标门户系统位于该IPP之后,以及b)Drni_Port_Conversation和Ipp_Other_Port_Conversation_Portal_System关于哪个门户系统应当获得该端口对话ID达成一致。另外,如果Drni_Port_Conversation和Ipp_Other_Port_Conversation_Portal_System对于任何端口对话ID不一致,那么:它将DRF_Home_Oper_DRCP_State.Port_Sync设置成“假”,并将NTTDRCPDU设置成“真”。否则,DRF_Home_Oper_DRCP_State.Port_Sync和NTTDRCPDU保持不变。当Ipp_Port_Conversation_Passes的任何贡献变量发生改变时,将Ipp_Port_Conversation_Passes初始化为“假”并重新计算。updateKey该函数如下更新操作聚合器密钥DRF_Home_Oper_Aggregator_Key:如果enable_long_pdu_xmit==TRUE,那么:通过用值01取代它的两个最高有效位来将DRF_Home_Oper_Aggregator_Key设置成DRF_Home_Admin_Aggregator_Key的值;否则,将DRF_Home_Oper_Aggregator_Key设置成包含每个IPP上的DRF_Home_Admin_Aggregator_Key、DRF_Neighbor_Admin_Aggregator_Key和DRF_Other_Neighbor_Admin_Aggregator_Key的值的集合的最低数值非零值。updateNTT如果DRF_Home_Oper_DRCP_State.GatewaySync、或DRF_Home_Oper_DRCP_State.PortSync、或DRF_Neighbor_Oper_DRCP_State.GatewaySync、或DRF_Neighbor_Oper_DRCP_State.PortSync中的任一个为“假”,那么该函数将NTT设置成“真”。updatePortalState在与该函数相关联的所有操作上,只有当IPP上的Drni_Neighbor_ONN为“假”时,才考虑由相同IPP上的DRF_Other_Neighbor_State提供的信息。该函数如下更新Drni_Portal_System_State[]:将由门户系统号索引的该门户系统的信息DRF_Home_State包含在Drni_Portal_System_State[]中。对于门户中的每个其它门户系统,如果任何其它门户系统的状态信息可从该门户系统中的两个IPP获得,那么:对于该门户系统,将只把由具有其它门户系统作为邻居门户系统的IPP上的DRF_Neighbor_State提供的通过门户系统号索引的门户系统状态信息包含在Drni_Portal_System_State[]中。否则,如果门户系统的状态信息只可从该门户系统上的单个IPP获得,那么:将把通过相关联的门户系统号索引的门户系统的状态信息包含在Drni_Portal_System_State[]中,而不管该信息是由该IPP上的DRF_Neighbor_State还是DRF_Other_Neighbor_State提供。如果门户系统的信息只可从该IPP上的DRF_Other_Neighbor_State获得,那么将该IPP上的ONN设置成“真”。包含在其门户系统状态信息不可从任何IPP获得的门户拓扑中的每个门户系统将它的相关联的门户系统状态信息Drni_Portal_System_State[]设置成空(将网关设置成“假”,并将门户系统上的操作聚合端口的列表清空)。该函数还如下更新该门户系统上的每个IPP的Ipp_Portal_System_State[]:如果任何其它门户系统的状态信息可从两个IPP获得,那么:如果归属门户系统没有将任何IPL配置为循环中断链路,那么对于门户系统上的每个IPP,只将由该IPP上的DRF_Neighbor_State提供的门户系统状态信息包含在通过相关联的门户系统号索引的相关联的Ipp_Portal_System_State[]中,否则:将包含通过相关联的门户系统号索引的IPP上的DRF_Neighbor_State以作为对应的Ipp_Portal_System_State[]中的第一状态,并且只有当相同IPP上的Drni_Neighbor_ONN为“假”时,才将包含通过相关联的门户系统号索引的在该IPP上接收的DRCPDU上所报告的与另一门户系统相关联的任何其它额外状态以作为Ipp_Portal_System_State[]中的第二状态。[与Drni_Portal_System_State[]类似,包含在其门户系统状态信息不可从任何IPP获得的门户拓扑中的每个门户系统将它的相关联的门户系统状态信息Ipp_Portal_System_State[]设置成空(将网关设置成“假”,并将门户系统上的操作聚合端口的列表清空)。]updatePortalSystemGatewayConversation该函数将Drni_Portal_System_Gateway_Conversation设置成以下两个布尔向量之间的逻辑“与”操作的结果:通过将与门户中的其它门户系统相关联的所有索引的网关对话ID条目设置成“假”而从Drni_Gateway_Conversation构造的布尔向量;和通过将与门户中的其它门户系统相关联的所有索引的网关对话ID条目设置成“假”而从所有IPPIpp_Other_Gateway_Conversation构造的布尔向量。updatePortalSystemPortConversation该函数将Drni_Portal_System_Port_Conversation设置成以下两个布尔向量之间的逻辑“与”操作的结果:通过将与门户中的其它门户系统相关联的所有索引的端口对话ID条目设置成“假”而从Drni_Port_Conversation构造的布尔向量;和通过将与门户中的其它门户系统相关联的所有索引的端口对话ID条目设置成“假”而从Ipp_Other_Port_Conversation_Portal_System构造的布尔向量。计时器以下论述集中在根据本发明一个实施例适用的各种计时器上。current_while_timer:该计时器用于检测所接收的协议信息是否到期。如果Actor_Oper_State.LACP_Timeout设置成短超时,那么计时器从值Short_Timeout_Time开始。否则,它从值Long_Timeout_Time开始。periodic_timer(time_value):该计时器用于生成周期性传输。根据周期性传输状态机的规定,它利用值Slow_Periodic_Time或Fast_Periodic_Time开始。wait_while_timer:该计时器在执行聚合改变之前提供滞后,以便允许将参加相关联的链路聚合群组的所有链路这样做。它利用值Aggregate_Wait_Time开始。消息在一个实施例中,只利用一个消息:IppM:M_UNITDATA.indication(DRCPDU):该消息由DRCP控制解析器作为接收DRCPDU的结果生成。DRCPCtrlMuxN:M_UNITDATA.indication(DRCPDU):该消息由DRCP控制解析器/复用器作为接收DRCPDU的结果生成。注意,对于两个不同实施例,这两个消息是类似消息。状态机操作返回到全体状态机过程的操作,图7的流程图定义了在一个实施例中依赖上文所描述的函数、变量和消息的操作集合。该过程可以响应于接收到DRCPDU而启动。首先,将该DRCPDU传递到接收单元(框702)。箭头标记的邻居状态信息的集合表示包含在输入DRCPDU中或由管理默认值提供的新邻居信息,它通过DRCPDU接收机馈送到每个状态机。箭头标记的归属状态信息的集合表示状态机之间的更新的归属状态信息流。DRCPDU的传输作为周期性机器确定需要传送周期性DRCPDU的结果或作为需要传送给邻居的归属的状态信息的变化的结果而发生。通过断言NTTDRCPDU将传送DRCPDU的需要用信号通知给传送机。剩余箭头表示允许状态机导致在另一个状态机中发生事件的状态机描述中的共享变量。接收机生成NTTDRCPDU,执行变化端口操作、网关对话更新和端口对话更新。周期性机器704接收邻居状态信息,并返回归属状态信息。周期性机器(框704)生成NTTDRCPDU。门户系统机(框706)负责基于本地信息和在归属门户系统的IPP上接收的DRCPDU更新门户中的所有网关和聚合端口的操作状态。该状态机针对每个门户系统。DRNI网关和聚合器机器(708)负责配置允许经过该DR功能的网关的网关对话ID和允许通过该DR功能的聚合器分发的端口对话ID。这些状态机针对每个门户系统。DRNIIPP机器(710)负责配置允许经过该DR功能的IPP的网关对话ID和端口对话ID。传送机(712)应来自其它状态机的要求在周期性基础上处理DRCPDU的传输。DRCPDU接收机接收机可以用如上文所论述的它的相关联的参数实现在图8中所指定的功能。当启用该功能性时,可初始化该过程(框802),执行recordDefaultDRCPDU(),并且其中DRF_Neighbor_Oper_DRCP_State.IPP_Activitiy为“假”。然后,进入到期状态(框804),并且在接收到DRCPDU时,状态机进入PORTAL_CHECK状态(框808)。recordPortalValues函数检查DRCPDU是否与该门户相关联。如果否,那么将事件报告给管理系统,并且该门户的任何状态机不对DRCPDU做任何进一步处理。如果recordPortalValues标识,那么所接收的DRCPDU将进入COMPATIBILITYCHECK状态以便通过recordPortalConfValues函数进行检查。这将与该门户相关联的在管理上配置的值与所接收的信息进行比较,并且如果它们不同,那么系统将进入REPORT_TO_MANAGEMENT状态(框810),并且将把错误配置的DRCPDU报告给管理系统。当接收到新的DRCPDU(或IPP禁用)时,接收机退出REPORT_TO_MANAGEMENT状态。如果根据该门户的预期值配置所接收的DRCPDU,那么接收机将进入CURRENT状态(框812)。因此,实施例可包括以下步骤:接收DRCPDU;检查所接收的DRCPDU是否与该门户相关联;将与门户相关联的配置值与所接收的DRCPDU的值进行比较;以及如果所比较的值不同,那么发送报告。在一个实施例中,在接收到DRCPDU时,状态机进入PORTAL_CHECK状态。recordPortalValues函数检查DRCPDU是否与该门户相关联。如果否,那么状态机将进入REPORT_TO_MANAGEMENT状态,并将所接收的DRCPDU报告给管理系统。当处于REPORT_TO_MANAGEMENT状态中时,如果接收到新的DRCPDU,那么系统将退出到PORTAL_CHECK状态,或者如果DRCP_current_while_timer到期,那么系统将退出到EXPIRED状态。如果recordPortalValues将所接收的DRCPDU标识为与该门户相关联,那么它将进入COMPATIBILITY_CHECK状态以便通过recordPortalConfValues函数进行检查。这将与该门户相关联的管理上配置的值与所接收的信息进行比较,并且如果它们不同,那么系统将进入REPORT_TO_MANAGEMENT状态,并将错误配置的DRCPDU报告给管理系统。如果门户系统在比短超时的两倍还长的时期继续接收与管理上配置的预期值不匹配的DRCPDU,那么状态机将转变为DEFAULTED状态,并将用管理上配置的值覆写该IPP上的门户系统的当前操作参数,并且将触发门户系统更新。如果根据该门户的预期值配置所接收的DRCPDU,那么DRCPDU接收机进入CURRENT状态。recordNeighborState函数在邻居的门户状态操作变量中记录包含在DRCPDU中的邻居的门户状态信息,并更新它自己的归属门户状态变量。如果它们不同,那么设置触发器以便通知邻居,而且还设置本地事件变量以便触发本地门户系统机器(PS-见图10)、DRNI网关和聚合器机器(DGA-见图11)以及DRNIIPP机器(IPP-见图12)上的更新。在执行recordPortalValues、recordPortalConfValues和recordNeighborState函数的过程中,符合本说明书的接收机可能不能验证在所接收的DRCPDU中的版本号、TLV_type或预留字段。采取相同措施,而不管在这些字段中接收的值。接收机可以验证Portal_Information_Length、Portal_Configuration_Information_Length、DRCP_State_Length、或Terminator_Length字段。这些行为以及对未来协议增强的约束在上文进行了论述。上文表述的规则允许版本1装置与协议的未来版本兼容。利用updateNTT函数来确定是否需要进一步协议传输;如果邻居对归属的操作门户状态变量的视图不是最新的,那么将NTTDRCPDU设置成“真”。然后,开始current_while计时器。取决于执行者的超时操作值,用于开始该计时器的值是Short_Timeout_Time或Long_Timeout_Time。如果在current_while计时器到期之前没有接收到任何DRCPDU,那么状态机转变为EXPIRED状态。将DRF_Neighbor_Oper_DRCP_State.IPP_Activity设置成“假”,将邻居的超时变量的当前操作值设置成短超时,并从Short_Timeout_Time的值开始current_while计时器。这是瞬态;超时设置允许归属门户系统快速传送DRCPDU以便试图与邻居重新建立通信。如果在current_while计时器再次到期之前仍没有接收到任何DRCPDU,那么状态机转变为DEFAULTED状态。recordDefaultDRCPDU函数用管理上配置的值覆写邻居门户系统的当前操作参数,触发门户系统更新,并将该状况报告给管理系统。如果IPP变成不可操作,那么状态机进入INITIALIZE状态。将DRF_Neighbor_Oper_DRCP_State.IPP_Activity设置成“假”,并且recordDefaultDRCPDU函数使得使用同伴参数的管理值作为当前操作值。这些动作迫使PS机器从门户分离邻居门户系统并重新计算网关和端口对话ID过滤器。接收机还可用它的相关联的参数实现在图16中所指定的功能。图16中的接收机遵循几个与图8相比不同的流程路径。图16中的备选接收机的术语和函数与图8中的类似。本领域技术人员将了解,符合所示接收机的原理和结构的其它实现也是可能的。图33示出根据本发明一个实施例用于与DRNI链路聚合群组的节点中的邻居同步的方法。方法3300可以在作为DRNI的一部分的DRCP门户(称为本地门户)的DRCP节点(例如,网络装置)(例如,图1B的节点K-O以及图1C的网络装置132和134)上实现。注意,可选步骤表示为如图33所示的虚线框。在参考数字3302处,初始化节点以便在利用IPL耦合到邻居节点的IPP上操作DRCP。节点和邻居节点包含在一个门户中,在一个实施例中,该门户可包含额外的邻居节点。该节点利用IPL经由IPP耦合到邻居节点。在一个实施例中,初始化包括将IPP上的邻居节点的默认参数值设置成由门户的管理员提供的邻居节点的当前操作参数。这些参数包括:邻居端口算法,例如DRF_Neighbor_Port_Algorithm(将设置成DRF_Neighbor_Admin_Port_Algorithm);邻居端口网关算法,例如DRF_Neighbor_Gateway_Algorithm(将设置成DRF_Neighbor_Admin_Gateway_Algorithm);以及上文关于函数recordDefaultDRCPDU论述的其它参数。在一个实施例中,初始化还包括通过将DRF_Neigbhor_Oper_DRCP_State.IPP_Activity设置成“假”而将邻居节点的IPP活动设置成不活动。在参考数字3304处,节点确定在IPP处启用DRCP。检查包括确定指示IPP正在操作DRCP的变量(例如,IPP_port_enabled)。在一个实施例中,确定是通过检查IPP的两个变量进行的。一个变量是指示IPP正在操作DRCP(例如,通过上文所论述的DRCP_enabled)的变量,而另一个变量是指示已经建立IPL并且IPP可操作(例如,通过上文所论述的IPP_port_enabled)的变量。在参考数字3306处,节点进入到期状态。在一个实施例中,在到期状态,节点执行以下步骤:它将节点的DRCP状态参数设置成到期(例如,将上文所论述的DRF_Home_Oper_DRCP_State.Expired设置成“真”),它还通过将DRF_Neigbhor_Oper_DRCP_State.IPP_Activity设置成“假”来将邻居节点的IPP活动设置成不活动。如果没有接收到DRCPDU,那么它将计时器设置成到期。在一个实施例中,通过设置DRF_Neighbor_Oper_DRCP_State.DRCP_Timeout=ShortTimeout来执行计时器设置,并开始DRCP_current_while_timer(短超时)。一旦计时器到期,流程便进行到参考数字3352,在3352,节点进入到默认状态。在一个实施例中,在默认状态,节点通过诸如上文所论述的recordDefaultDRCPDU的函数将IPP上的邻居节点的默认参数值设置成由门户的管理员提供的邻居节点的当前操作参数。并且,默认状态包括通过诸如上文所论述的reportToManagement的函数将状态报告给管理。在参考数字3307处,节点在参考数字3307处接收DRCPDU。DRCPDU包含如图5所示的PDU结构,其中PDU结构具有诸如在表4中列出的TLV的TLV。PDU结构包含归属端口信息TLV和DRCP状态TLV。在一个实施例中,在由DRCP控制解析器/复用器作为接收DRCPDU的结果生成的消息(例如,DRCPCtrolMuxN:M_UNITDATA.indication(DRCPDU))中指示DRCPDU的接收。然后,在参考数字3308处,节点确定所接收的DRCPDU与门户相关联。在一个实施例中,确定包括检查指示接收DRCPDU是否与门户相关联的变量(例如,上文所论述的Differ_Portal)。在一个实施例中,确定包括执行将在所接收的DRCPDU中携带的门户参数值记录为IPP上的邻居节点的对应的当前操作参数值的函数(例如,recordPortalValues)。在一个实施例中,如上文在定义recordPortalValues中所论述,门户参数值包括聚合器优先级(例如,Drni_Aggregator_Prioirty)、聚合器ID(例如,Drni_Aggregator_ID)、邻居门户优先级(Drni_Portal_Priority)以及门户地址(例如,Drni_Portal_Addr)。如果所接收的DRCPDU与门户无关联,那么节点可以可选地通过诸如上文所论述的reportToManagement的函数将状态报告给管理。如果稍后节点接收到另一个DRCPDU,那么流程返回到参考数字3308以便再次确定关联性。类似地,当节点在参考数字3352处处于默认状态并且它接收到DRCPDU时,流程进行到参考数字3308处以便确定关联性。在确定所接收的DRCPDU与门户相关联之后,流程进行到参考数字3310,在3310处,节点确定所接收的DRCPDU与节点兼容。确定包括确定与门户相关联的管理上配置的值与从DRCPDU接收的值一致。在一个实施例中,检查包括执行将在所接收的DRCPDU中携带的邻居节点的配置的参数值记录为IPP上的邻居节点的对应的当前操作参数值的函数(例如,recordPortalConfValues)。注意,诸如recordPortalConfValue的函数中的配置的参数值不同于诸如recordPortalValue的门户参数值,并且不同之处在上文中在定义recordPortalConfValues和recordPortalValues时进行了论述。如果所接收的DRCPDU与节点不兼容,那么节点可以可选地通过诸如上文所论述的reportToManagement的函数将状态报告给管理。如果稍后节点接收到另一个DRCPDU,那么流程返回到参考数字3308以便再次确定关联性。在执行诸如reportToManagement的函数时,如果没有接收到任何DRCPDU,那么节点将另一个计时器设置成到期,并开始该计时器。一旦计时器到期,流程便返回到参考数字3306。在确定所接收的DRCPDU与节点兼容之后,在参考数字3312处,节点将包含在所接收的DRCPDU中的邻居节点的状态信息记录为邻居节点的状态操作变量。在一个实施例中,函数(例如,recordNeighborState)将在所接收的DRCPDU中携带的诸如门户系统状态(例如,Drni_Portal_System_State)和归属节点操作DRCP状态(例如,DRF_Home_Oper_DRCP_State)的参数值记录为诸如Drni_Neigbhor_State和DRF_Neighbor_Oper_DRCP_State的对应的邻居节点的操作变量。可选地,当所记录的邻居节点的状态操作变量不同于节点的状态操作变量的值时,在参考数字3314处,节点设置一个或多个触发器以便通知邻居节点。在一个实施例中,如上文所论述,利用函数(例如,updateNTT)来确定是否需要进一步的协议传输。本文中所论述的方法提供了供DRCP节点处理嵌入在从邻居DRCP节点接收的DRCPDU中的信息的有效方法。按阶段处理信息,并在记录邻居节点的状态信息之前确定所接收的DRCPDU与DRCP节点的门户相关联并与节点兼容。另外,插入计时器以便防止节点陷于等待状态。DRCP周期性传输机DRCP周期性传输机可以用上文所论述的它的相关联的参数实现在图9中所指定的功能。DRCP周期性传输机建立归属和邻居门户系统在IPP上交换周期性DRCPDU以便维持门户的愿望,并确立应当多频繁地进行那些周期性传输。如果任一参与方想要,那么将进行周期性传输。按邻居门户系统所确定的速率进行传输;该速率链接到邻居门户系统将使所接收的信息超时的速度。状态机具有四个状态。它们如下所述:NO_PERIODIC(框902)。当处于该状态时,周期性传输禁用,并执行stopperiodic_timer函数。FAST_PERIODIC(框904)。当处于该状态时,以快速传输速率启用周期性传输。响应于无条件转变(UCT)而从NO_Periodic状态(框902)进入该状态。Fast_Periodic状态可以转变到周期性传输(框908)和slow_periodic状态(框906)。当确定长超时时,可从FAST_PERIODIC904进入SLOW_PERIODIC状态906。当处于该状态时,以缓慢传输速率启用周期性传输。如果周期性计时器到期,那么状态转变到PERIODIC_TX(框908)。PERIODIC_TX。这是在periodic_timer到期时进入的瞬变状态,它断言NTT,然后取决于邻居的DRCP_Timeout设置,退出到FAST_PERIODIC或SLOW_PERIODIC。如果启用周期性传输,那么通过DRF_Neighbor_Oper_DRCP_State.Timeout变量的值确定它们的进行速率。如果将该值设置成短超时,那么利用值fast_periodic_time来确定周期性传输之间的时间间隔。否则,利用slow_periodic_time来确定时间间隔。因此,实施例提供包括以下步骤的过程:在禁用传输的非周期性状态中初始化;转变到快速周期性状态;对于快速周期性时间开始计时器;分别响应于长超时或具有快速周期性超时设置的邻居转变到缓慢周期性状态或周期性传输状态;响应于邻居处的短超时设置或计时器到期从缓慢周期性超时转变到周期性传输状态;以及分别响应于变换为短超时或长超时设置的邻居超时设置从周期性传输状态转变为快速周期性或短周期性状态。DRCP周期性传输机还可用它的相关联参数实现在图17中所指定的功能。图17包含不同术语(例如,DRCP_periodic_timer和NTTDRCPDU,而非分别如同图9中的periodic_timer和NTT),但是流程在其它方面都相同。图17中的备选传输机的术语和功能与图9中的类似。本领域技术人员将了解,符合所示传输机的原理和结构的其它实现也是可能的。门户系统机门户系统机可以用如上文所论述的它的相关联的参数实现在图10中所指定的功能。该过程可以初始化为门户系统初始化状态(框1002)。执行setDefaultPortalSystemParameters和updateKey函数。在ChangePortal或ChangeDRFPorts为“真”的情况下,过程转变为门户系统更新状态(框1004)。在门户系统更新状态,将ChangePortal设置成“假”,将changeDRFPorts设置成“假”,执行updateDRFhomestate和updatekey。当changeportal或changeDRFPorts更新为“真”时,触发下一更新。因此,实施例提供包括如下步骤的过程:初始化为门户初始化状态,其中创建默认门户系统参数并更新密钥;响应于ChangePortal或ChangeDRFPorts变量为“布尔真”而转变为门户系统更新状态;在门户系统更新状态中将ChangePortal变量设置成“假”并将changeDRFPorts变量设置成“假”;执行updateDRFHomeState并更新密钥;以及一旦检测到ChangePortal或ChangeDRFPorts变量为“真”,便重新进入门户系统更新状态。在初始化时,将门户系统的变量设置成如它们的管理设置所配置的该门户的默认值。具体来说,将门户中的所有网关、聚合端口和IPP的默认操作状态设置成“假”。另外,基于这些默认值,计算即将供相关联的聚合器使用的操作密钥为指派给该门户系统的管理密钥值。门户系统的网关的操作状态或如相关联的聚合器所报告的任何附连聚合端口的分发状态的任何本地变化、或如RX状态机所报告的邻居门户系统的操作状态中的任何变化触发转变为PORTAL_SYSTEM_UPDATE状态。这使得函数updateDRFHomeState基于关于网关和门户系统的聚合器上的所有聚合端口的操作状态的更新的本地信息重新评估提供门户系统的自己的状态的变量(DRF_Home_State)。将门户系统的网关的操作状态的任何变化反映给用于在端口的状态机和IPP中触发状态转变的GatewayConversationUpdate。类似地,将与该门户系统的聚合器端口相关联的聚合端口的操作状态的任何变化反映给用于在相同状态机中触发状态转变的PortConversationUpdate。最后,updateKey函数通过选择包括门户中的所有活动门户系统的管理密钥的值的集合的最低数值非零值来更新操作密钥以便供门户系统的聚合器使用。无论DR功能的任何端口的操作状态何时发生改变,状态机都返回到PORTAL_SYSTEM_UPDATE状态。门户系统机还可用它的相关联参数实现在图18中所指定的功能。图18与图10类似,不同之处在于,在图18中,系统利用UpdatePortalState函数执行更新门户状态。图18中的备选门户系统机的术语和函数与图10中的类似。本领域技术人员将了解,符合所示门户系统机的原理和结构的其它实现也是可能的。图34示出根据本发明一个实施例用于更新分布式弹性网络互连(DRNI)中的节点的操作状态的方法。方法3400可以在作为DRNI的一部分的DRCP门户(称为本地门户)的DRCP节点(例如,网络装置)(例如,图1B的节点K-O以及图1C的网络装置132和134)上实现。注意,可选步骤表示为如图34所示的虚线框。在参考数字3402处,节点初始化以便进行链路聚合。初始化包括根据管理设置的配置设置它所属的门户的节点的变量。在一个实施例中,通过执行函数(例如,图10中的setDefaultPortalSystemParameters)来执行始化。该函数将节点的变量设置成如上文所论述的setDefaultPortalSystemParameters的定义中所列举的管理集合值,它包括节点的聚合器的系统优先级(例如,Drni_Aggregator_Priority)、节点的聚合器的系统标识符(例如,Drni_Aggregator_ID)、门户的系统优先级(例如,Drni_Portal_Priority)、门户中的节点的标识符(例如,DRF_Portal_System_Number)、与聚合器相关联的管理聚合器密钥值(例如,DRF_Home_Admin_Aggregator_Key)、供节点的DR功能用于将帧指派给端口对话ID的端口算法(例如,DRF_Home_Port_Algorithm)、供节点的DR功能用于将帧指派给网关对话ID的网关算法(例如,DRF_Home_Gateway_Algorithm)等等。在参考数字3404处,节点确定与门户相关联的操作状态发生改变。操作状态的改变可通过在网络装置对邻居网络装置的IPP活动的视图的操作值为活动时设置成“真”的布尔变量来指示。在一个实施例中,诸如上文所论述的ChangePortal的变量便是这样的布尔变量。操作状态的改变也可通过在节点的网关的操作状态发生改变时设置成“真”的布尔变量来指示。操作状态的改变还可通过在与第一门户相关联的节点的聚合端口的操作状态之一发生改变时设置成“真”的布尔变量来指示。在一个实施例中,诸如上文所论述的ChangeDRFPorts的变量便是针对网关和聚合端口的操作状态的改变的这样的布尔变量。在参考数字3406处,节点可以设置指示没有发生与门户相关联的操作状态改变的一个或多个变量。在一个实施例中,这通过如图10所示将诸如ChangePortal和ChangeDRFPorts的变量设置成“假”来执行。该设置允许ChangePortal和ChangeDRFPorts的操作状态触发更新的进一步改变,以使得节点可以检测该变化。在参考数字3408处,响应于操作状态改变,节点为链路聚合更新节点的操作状态的集合,其中操作状态的集合包括节点的网关的操作状态。在一个实施例中,通过执行诸如上文所论述的updateDRFHomeState的函数来执行更新。在一个实施例中,更新还通过只包含那些可操作的聚合端口标识符(ID)来创建操作聚合端口的列表(例如,附连的聚合器将它们报告为具有Actor_Oper_Port_State.Distributing==TRUE(排除其中相关联的聚合端口不可操作或处于到期状态或不在链路聚合群组中的情形的条件)。该方法提供基于DRCP节点所属的门户的变化使DRCP节点的操作状态与邻居DRCP节点同步的有效方法。DRNI网关和聚合器机器DRNI网关和聚合器机器可以用上文所论述的它的相关联的参数实现在图11中指定的功能。在门户系统上存在两个DRNI网关和聚合器机器。每个DRNI网关和聚合器机器与一种对话ID类型相关联:一个用于网关对话ID,一个用于端口对话ID。图11A是在DRNI网关初始化状态(框1102)初始化的DRNI网关过程。在该状态,执行InitializeDRNIGatewayConversation函数并将GatewayCoversationUpdate设置成“假”,并且在进行GatewayCoversationUpdate的情况下,过程转变为DRNI网关更新状态(框1104)。在DRNI网关更新状态(框1104),过程将GatewayConversationUpdate设置成“假”,执行updatePortaState、setGatewayConversaion操作和setIPPGatewayUpdate,并执行updatePortalSystemGatewayConversation。在每次进行GatewayConversationUpdate时,触发DRNI网关更新。该过程的实施例包括以下步骤:初始化为DRNI网关初始化状态;将DRNI网关对话和GatewayCoversationUpdate初始化为“假”;一旦检测到网关对话更新变量为“真”,便转变到DRNI网关更新状态;设置updatePortalState;设置IPP网关更新触发器;将网关对话更新变量设置为“假”;设置网关对话;更新门户系统网关对话;以及一旦网关对话更新变量设置成“真”,便重新进入DRNI网关更新状态。图11B是DRNI端口更新过程。在该过程中,DRNI端口更新过程在DRNI端口初始化状态(框1112)中开始。执行initializeDRNIPortConversation函数并将PortCoversationUpdate设置成“假”,并且过程响应于PortConversationUpdate的进行继续,由此将状态转变为DRNIPortUpdate(框1114)。在DRNI端口更新状态,过程将PortConversationUpdate设置成“假”,并执行updatePortalState、setPortConversation、setIPPPortUpdate操作和updatePortalSystemPortConversation操作。当PortConversationUpdate的值发生改变时,重新触发DRNI端口更新。该过程的实施例包括以下步骤:初始化为DRNI端口初始化状态;将DRNI端口对话和PortCoversationUpdate初始化为“假”;一旦检测到端口对话更新变量为“真”,便转变到DRNI端口更新状态;设置IPP端口更新触发器;将端口对话更新变量设置为“假”;设置端口对话;更新门户系统端口对话;以及响应于检测到端口对话更新变量为“真”而重新进入DRNI端口更新状态。这些状态机负责基于商定的优先级规则和DRCP的操作配置允许经过该DR功能的网关和聚合器的网关对话ID和端口对话ID。在存在来自PS状态机(图10)或DRX状态机(图8)的宣告网关的操作状态发生改变的触发器时,状态机进入DRNI_GATEWAY_UPDATE状态。这使得将触发参数(GatewayConversationUpdate)重新设置成“假”。然后,函数updatePortalState将通过组合更新后的DRF_Home_State与来自如在门户系统的IPP上接收的DRCPDU所报告并由DRX状态机(图8)记录的其它门户系统上的端口的操作状态的信息来更新提供所有门户系统的状态的变量(Drni_Portal_System_State[]),并将门户系统上的每个IPP上的IppGatewayUpdate设置成“真”以便触发IPP状态机(图12)上的进一步更新。随后,调用setGatewayConversation函数以便基于商定的选择优先级和该门户系统已知的网关操作状态(基于本地网关的操作状态和由从邻居门户系统接收的最新DRCPDU携带的邻居门户系统的宣告的它们自己的网关的操作状态)标识负责每个网关对话ID的门户系统。最后,将基于该门户系统在允许经过门户系统的网关的网关对话ID上的视图与所有邻居在允许经过该门户系统的网关的网关对话ID上的视图之间的商定计算网关对话ID索引的布尔向量[通过它们的DRCPDU宣告并由该门户系统的DRX状态机(图8)记录]。这确保,除非所有门户系统之间达成一致,否则不允许任何网关对话ID经过该门户系统的网关。状态机初始化为宣告所有网关对话ID,并在设置触发器GatewayConversationUpdate时转变为DRNI_GATEWAY_UPDATE状态。通过类似状态机操作设置端口对话ID索引的布尔向量,唯一的差别在于优先级选择规则基于商定的端口对话ID和端口算法,而不是商定的网关对话ID和网关算法。图35示出根据本发明一个实施例用于在分布式弹性网络互连(DRNI)中的网络装置处为聚合器或网关配置对话ID集合的方法。方法3500可以在作为DRNI的一部分的DRCP门户(称为本地门户)的DRCP节点(例如,网络装置)(例如,图1B的节点K-O以及图1C的网络装置132和134)上实现。注意,可选步骤表示为如图35所示的虚线框。在参考数字3502处,节点初始化对话ID集合,并且初始化包括将与对话ID集合相关联的布尔向量的条目设置成0序列。对话ID是网关对话ID或端口对话ID。布尔向量包括指示通过节点的网关或聚合器处理对话ID集合的值,它通过初始化设置成0(无处理)。注意,DRCP节点包含单个网关和单个聚合器。初始化可以通过诸如上文所论述的InitializeDRNIGatewayConversation和InitializeDRNIPortConversation的函数来执行。布尔向量对于网关对话ID和端口对话ID分别可以是Drni_Portal_System_Gateway_Conversation或Drni_Portal_System_Port_Conversation。在一个实施例中,对话ID的指示符是该条目的布尔值(例如,“真”表示经过网关或通过聚合器分发)。初始化使得所有值为0,因此不经过。在参考数字3504处,节点确定对话ID集合的分发需要更新。在一个实施例中,做出该确定包括检查布尔变量(例如,诸如上文分别针对网关对话ID和端口对话ID论述的GatewayConversationUpdate和PortConversationUpdate的变量)。在参考数字3506处,节点设置通过对话ID索引的操作向量的值,其中操作向量列出门户的哪个节点处理对话ID集合中的每个对话ID。在一个实施例中,对于网关对话ID和端口对话ID,操作向量分别是Drni_Gateway_Converstaion和Drni_Port_Conversation。对于网关对话ID,操作向量列出门户的哪个节点传递每个网关对话ID。对于端口对话ID,操作向量列出门户的哪个节点传递每个端口对话ID。在参考数字3508处,节点设置通过对话ID索引的布尔向量的值,其中布尔向量列出网络装置的单个网关或单个聚合器是否与每个对话ID相关联。对于网关对话ID和端口对话ID,操作布尔向量分别可以是Drni_Portal_System_Gateway_Conversation或Drni_Portal_System_Port_Conversation。对于网关对话ID,布尔向量中的每个条目指示是否允许网关对话ID经过节点的单个网关。对于端口对话ID,布尔向量中的每个条目指示是否允许通过节点的单个聚合器分发端口对话ID。然后,可选地,在参考数字3510处,节点更新门户的所有节点的操作状态。在一个实施例中,通过诸如上文所论述的updatePortalState的函数来执行更新。并且,可选地,在参考数字3512处,节点设置指示对话ID集合的分发需要更新的变量。在一个实施例中,对于网关对话ID和端口对话ID,变量分别是setIPPGatewayUpdate和setIPPPortupdate(如上文所论述)。因此,本发明的实施例提供了配置对话ID以使得可以在包含DRNI的链路聚合群组中正确地传送相关联的对话的有效方法。DRNIIPP机器DRNIIPP机器可以用上文所论述的它的相关联参数实现在图12A-B中所指定的功能。图12A示出根据本发明一个实施例用于更新IPP网关对话的状态机。该过程在框1202开始,在框1202,初始化IPP网关。在该实施例中,通过两个初始化函数来实现IPP网关初始化。通过IPPGatewayUpdate=FALSE,网络装置将IPP网关更新触发器设置成“假”。通过InitializeIPPPortConversation()函数,网络装置将对话传递(例如,Ipp_Gateway_Conversation_Direction)设置成同样通过网关对话ID索引的0序列。在初始化之后,状态机进行到框1204,在框1204,更新IPP网关。通过变量变化触发传输。变量IppGatewayUpdate指示每个IPP网关对话ID分发需要更新。在一个实施例中,IppGatewayUpdate是布尔值,并且一旦布尔值变成“真”,状态机便进行到框1204。在框1204,它通过函数setGatewayConversation设置网关对话。如上文所论述,该函数将DRNI网关对话值设置成从分布式中继的网关选择优先级列表的当前管理值(通过诸如aDrniConvAdminGateway[]的变量)和当前的DRNI端口系统状态(在一个实施例中,通过读取Drni_Portal_System_State[])计算的值。并且,在框1204,网络装置通过函数setIPPGatewayConversation()设置IPP网关对话。另外,网络装置通过函数updateIPPGatewayConversationDirection()更新IPP网关对话方向,并且最后,网络装置将IppGatewayUpdate重新设置为“假”。当需要网关对话更新时,框1204重复它本身。因此,该过程的实施例包括以下步骤:初始化为IPP网关初始化状态;将IPP网关更新触发器初始化为“假”;初始化IPP网关对话;一旦检测到Ipp网关更新变量为“真”,便转变为IPP网关更新状态;设置网关对话;设置IPP网关对话;更新IPP网关对话方向;将Ipp网关更新变量设置成“假”;并响应于检测到网关对话更新变量为“真”而重新进入IPP网关更新状态。图12B示出根据本发明一个实施例用于更新IPP端口对话的状态机。更新IPP端口的过程与更新网关对话的过程类似,因此图12B中的过程与图12A类似,其中对于IPP端口对话更新利用IPP对话的函数和变量。该过程的实施例包括以下步骤:初始化为IPP端口初始化状态;将IPP端口更新触发器初始化为“假”;初始化IPP端口对话;一旦检测到IPP端口更新变量为“真”,便转变为IPP端口更新状态;设置端口对话;设置IPP对话;更新IPP端口对话传递;将IppPortUpdate变量设置成“假”;并响应于检测到PortConversationUpdate为“真”而重新进入IPP端口更新状态。在一个实施例中,这些状态机负责基于商定的优先级规则和DRCP的操作配置允许经过该邻居门户系统的IPP的网关对话ID和端口对话ID。在存在来自DRX状态机(图8)的宣告将IppGatewayUpdate设置成“真”的触发器时,状态机进入IPP_GATEWAY_UPDATE状态。这使得调用setGatewayConversation函数。这将基于商定的选择优先级和该门户系统已知的网关操作状态(基于本地网关的操作状态和由从邻居接收的最新DRCPDU所携带的邻居的宣告的它们自己的网关的操作状态)标识负责每个网关对话ID的门户系统。然后,setIPPGatewayConversation函数将基于商定的选择优先级和该IPP上的邻居门户系统宣告的网关操作状态(基于邻居门户系统的网关操作状态和由从该IPP上的邻居门户系统接收的最新DRCPDU所携带的邻居门户系统的宣告的它们自己在门户中的其它网关上的视图上的操作状态)标识负责每个网关对话ID的门户系统。随后,将基于该门户系统在允许经过门户系统的IPP的网关对话ID上的视图与IPP邻居门户系统在允许经过相同IPP的网关对话ID上的视图之间的一致性计算网关对话ID索引的布尔向量[通过它们的DRCPDU宣告并由该门户系统的DRX状态机(图8)记录]。这确保,除非该门户系统和它的邻居门户系统之间达成一致,否则不允许任何网关对话ID经过该IPP。最后,将IppGatewayUpdate重新设置成“假”。状态机初始化为丢弃所有网关对话ID,并在设置触发器GatewayConversationUpdate时转变为IPP_GATEWAY_UPDATE状态。通过类似状态机操作设置端口对话ID索引的布尔向量,唯一差别在于,优先级选择规则基于商定的端口对话ID和端口算法,而不是商定的网关对话ID和网关算法。图36示出根据本发明一个实施例用于在分布式弹性网络互连(DRNI)中的DRCP节点处为IPP配置对话ID集合的方法。方法3600可以在作为DRNI的一部分的DRCP门户(称为本地门户)的DRCP节点(例如,网络装置)(例如,图1B的节点K-O以及图1C的网络装置132和134)上实现。在参考数字3602处,节点初始化对话ID集合,并且初始化包括将与对话ID集合相关联的布尔向量的条目设置成0序列。对话ID是网关对话ID或端口对话ID。布尔向量包括指示通过节点的IPP处理对话ID集合的值。初始化可以通过诸如上文所论述的InitializeIPPGatewayConversation和InitializeIPPPortConversation的函数来执行。对于网关对话ID和端口对话ID,布尔向量分别可以是Ipp_Gateway_Conversation_Direction或Ipp_Port_Conversation_Passes。在一个实施例中,对话ID的值是该条目的布尔值。例如,网关对话ID的值“真”指示某个网关可通过该IPP到达。初始化使得所有值为0,因此不通过。在参考数字3604处,节点确定对话ID集合的分发需要更新。在一个实施例中,做出该确定包括检查布尔变量。在一个实施例中,对于网关对话ID和端口对话ID,布尔变量分别是IppGatewayUpdate和IppPortUpdate。在另一个实施例中,对于网关对话ID和端口对话ID,布尔变量分别是GatewayConversationUpdate和PortConversationUpdate。在参考数字3606处,节点设置通过对话ID索引的第一操作向量的值,其中该操作向量列出根据节点的指派门户的哪个节点处理每个对话ID。在一个实施例中,节点分别通过诸如setGatewayConversation和setPortConversation的函数来设置这些值,以便设置诸如Drni_Gateway_Conversation和Drni_Port_Conversation的第一操作向量。对于网关对话ID,Drni_Gateway_Converstaion列出哪个节点的网关(如果有的话)传递每个网关对话ID。对于端口对话ID,Drni_Port_Conversation列出哪个节点传递每个端口对话ID。在参考数字3608处,节点设置通过对话ID索引的第二操作向量的值,其中该操作向量列出根据邻居节点的指派门户的哪个节点处理每个对话ID。在一个实施例中,节点分别通过诸如setIPPConversation和setIPPPortConversation的函数来设置这些值,以便设置诸如Ipp_Other_Gateway_Conversation和Ipp_Other_Port_Conversation_Portal_System的第二操作向量。如上文中所论述,对于网关对话ID,Ipp_Other_Gateway_Conversation列出根据该IPP上的邻居节点的指派哪个节点(即,门户系统)(如果有的话)正传递每个网关对话ID,其中当门户包含多于两个节点时,邻居节点是最接近的邻居节点。类似地,对于端口对话ID,Ipp_Other_Port_Conversation_Portal_System列出根据该IPP上的最接近的邻居节点的指派哪个节点正传递每个端口对话ID。在参考数字3610处,节点设置通过对话ID索引的布尔向量的值,其中布尔向量列出节点的IPP是否与每个对话ID相关联。在一个实施例中,如上文中所论述,对于网关对话ID,布尔向量是Ipp_Gateway_Conversation_Direction,并且对于端口对话ID,布尔向量是Ipp_Port_Conversation_Passes。因此,与方法3500类似,本发明的实施例在这里提供了配置对话ID以使得可以在包含DRNI的链路聚合群组中正确地传送相关联的对话的有效方法。传送机根据本发明一个实施例,当传送机(未示出)创建DRCPDU以进行传输时,它可用该IPP的对应操作值填充以下字段:•聚合器ID和优先级。•门户ID和优先级。•门户系统号。•拓扑状态。•操作聚合器密钥。•端口算法。•网关算法。•端口摘要。•网关摘要。•DRCP状态。•归属门户系统以及其形成门户的能力已经经过验证的任何其它门户系统的操作聚合端口、管理聚合器密钥和操作同伴聚合器密钥。当周期性机器处于NO_PERIODIC状态时,传送机应当:•不传送任何DRCPDU,并且•将NTTDRCPDU的值设置成“假”。当DRCP_Enabled变量为“真”并且NTTDRCPDU变量也为“真”时,传送机可以确保传送正确格式化的DRCPDU[即,发出DRCPCtrlMuxN:M_UNITDATA.Request(DRCPDU)服务原语],其限制条件是在任何Fast_Periodic_Time间隔中可传送不超过特定数量的LACPDU。特定数量可随实现改变(例如,10个或20个)。如果在该限制条件生效时将NTTDRCPDU设置成“真”,那么传输可能会延迟,直至诸如限制不再生效的时间。当传输送传送完DRCPDU时,可以将NTTDRCPDU变量设置成“假”。如果由于以上限制而延迟了DRCPDU的传输,那么在DRCPDU中发送的信息对应于在传输时而不是在首先将NTTDRCPDU设置成“真”时的IPP的操作值。换句话说,与将消息排成队列以便进行传输相比,DRCPDU传输模型基于出现传送机会时当前的状态信息的传输。当DRCP_Enabled变量为“假”时,传送机可能不传送任何DRCPDU,并且可以将NTTDRCPDU的值设置成“假”。网络/IPL共享机网络/IPL共享机可以用它的相关联参数实现在图30中所指定的功能。对于所支持的网络/IPL共享方法,门户系统中的每个IPP存在一个网络/IPL共享机。只有当实现网络/IPL共享方法、即网络/IPL时间共享、网络/IPL标签共享或网络/IPL封装共享时才需要该机器。对应于下文所论述的图31的方法3100的网络/IPL共享机使得只有当在相同端口上接收的DRCPDU报告通过邻居门户系统的相同网络/IPL共享配置时才能够传送和操纵在共享网络/IPL链路上发送的帧,从而导致多个IPL和网络链路共享相同的物理链路或链路聚合。该状态机有三种状态。它们如下所述:NO_MANIPULATED_FRAMES_SENT:当处于该状态时,只有物理或聚合链路可支持IPL。TIME_SHARED_METHOD:当处于该状态时,启用上文所指定的网络/IPL时间共享方法。MANIPULATED_FRAMES_SENT:当处于该状态时,启用如aDrniEncapsulationMethod选择的网络/IPL共享方法所规定的网络/IPL标签共享或网络/IPL封装共享的标签操纵方法。在NO_MANIPULATED_FRAMES_SENT中初始化系统,并在专用物理链路上发送IPL帧。如果如aDrniEncapsulationMethod中的值1所指示将归属门户系统配置成网络/IPL时间共享操作模式,那么当DRX状态机(DRX-图8)将CC_Time_Shared设置成“真”(指示该IPP上的邻居门户系统也配置成网络/IPL时间共享操作模式)时,系统将转变为TIME_SHARED_METHOD。系统将保持处于TIME_SHARED_METHOD状态,直到所接收的DRCPDU将CC_Time_Shared设置成“假”,由此触发状态转变为NO_MANIPULATED_FRAMES_SENT状态,并在专用物理链路上发送IPL帧。类似地,如果如aDrniEncapsulationMethod中的值所指示将归属门户系统配置成网络/IPL标签共享或网络/IPL封装共享操作模式,那么当DRX状态机(DRX-图8)将CC_EncTag_Shared设置成“真”(指示该IPP上的邻居门户系统也分别配置成网络/IPL标签共享或网络/IPL封装共享操作模式)时,系统将转变为MANIPULATED_FRAMES_SENT。系统保持处于MANIPULATED_FRAMES_SENT状态,直到所接收的DRCPDU将CC_EncTag_Shared设置成“假”,由此触发状态转变为NO_MANIPULATED_FRAMES_SENT状态,并在专用物理链路上发送IPL帧。图31示出根据本发明一个实施例在节点处进行网络/IPL共享的方法。方法3100可以在作为DRNI的一部分的DRCP门户(称为本地门户)的DRCP节点(又称为门户的门户系统,例如网络装置)(例如,图1B的节点K-O以及图1C的网络装置132和134)上实现。注意,可选步骤表示为如图31所示的虚线框。在参考数字3102处,DRCP节点(本地门户系统)处于正常操作状态,并在专用物理链路或聚合链路上将IPL帧传送给邻居DRCP节点(邻居门户系统)。在参考数字3104处,确定是否与邻居节点一致地配置该节点。例如,这可利用至少记录来自邻居节点的在用于网络/IPL共享的TLV中携带的参数值(例如,表6中的字段DRF_Home_Network/IPL_sharing_method)的诸如recordNeighborState的参数记录函数来执行。然后,可以将所记录的参数值与节点所使用的当前对应参数值进行比较。在节点中实现网络/IPL共享并在这些节点中一致地配置参数值的情况下,该方法继续进行至参考数字3106,在3106,利用网络/IPL共享将帧从节点传送到邻居节点。可选地,在参考数字3108处,节点继续利用一致的网络/IPL共享方法,直至它在邻居节点处检测到网络/IPL共享的改变。例如,CC_Time_Shared或CC_Enctag_Shared指示归属/邻居节点使用一致的共享方法。当这两个节点不使用一致的共享方法时,流程返回到参考数字3102,在3102,使用专用链路或链路聚合。本发明的实施例提供了支持链路聚合群组中的网络和端口间链路共享以使得端口间链路可与其它端口间链路或网络链路共享物理链路的有效方法。DRCP和LACP状态之间的协调:第一实施例集合在如图1B-1C所示的DRNI门户系统中,DRCP和LACP状态对于系统应当一致以便正确工作。在图1C中,一致性更易于维持。参考图1C,网络装置130和网络装置134之间的链路是工作链路(链路172),并且网络装置130和网络装置132之间的链路是服务的保护链路(链路174)。网络装置134和132之间的IPL链路(未示出)使它们的DRCP状态保持同步。从网络装置130(具有单个节点的门户142)的角度,它连接至单个系统(门户144),并且明确地没有将个别关于网络装置132或134的信息传送给网络装置130。当网络装置132和134之间的IPL链路出故障时,网络装置134(当前为工作节点)和132(当前为保护节点)均试图接管作为传送业务的节点;从它们各自的角度,它是不能正确操作的相邻节点。作为保护节点的网络装置132将更新它的LAG标识符(ID)以免具有其中链路130-132和130-134(分别为链路172和174)携带重复业务的情形。在门户142,判定哪个链路将保持处于链路聚合群组中(即,为工作链路)基于网络装置130所做的决定,网络装置130应用正常链路聚合操作以便做出选择。具体来说,网络装置130将链路130-132搁置以便检查链路130-134是否仍在链路聚合群组中(即,为携带业务的工作链路)。如果链路130-134不在链路聚合群组中,那么它在链路130-132上启用业务。当网络装置134和132之间的IPL链路再次好起来时,更新DRCP状态并且链路130-132保持阻断,并且LACP状态在整个过程中使链路130-134保持为工作链路(因此没有业务运行中断)。对于每个门户包含多于一个网络装置的DRCP系统,维持DRCP和LACP状态之间的一致性更费劲。需要在门户和节点之间交换额外信息以便使门户保持同步。具体来说,可以引入至少两个操作密钥(每个操作同伴门户系统一个)以便对同步进行协调。一个操作密钥是操作同伴聚合器密钥。操作同伴聚合器密钥与节点的聚合链路聚合群组标识符(LAGID)相关联(节点是同伴节点)。操作同伴聚合器密钥在DRCPDU中传送。在一个实施例中,操作同伴聚合器密钥存储在称为DRF_Home_Oper_Partner_Aggregator_Key的变量中,该变量定义为与上文所论述的网络装置(门户的节点)的LAGID相关联的操作同伴聚合器密钥。另一个操作密钥是同伴门户中的每个同伴门户系统的操作密钥。操作邻居的门户密钥也与节点的LAGID相关联(节点是邻居节点)。操作邻居(最接近的或较远的邻居)门户密钥在DRCPDU中传送。在一个实施例中,操作邻居聚合器密钥存储在称为DRF_Neigbhor_Oper_Partner_Aggregator_Key(在第三门户系统的情况下称为DRF_Other_Neigbhor_Oper_Partner_Aggregator_Key)的变量中,该变量定义为在它的相关联的门户内端口(IPP)上最后接收的邻居节点(或者在第三门户系统的情况下为其它邻居)的操作同伴聚合器密钥值。对于即将交换的聚合器密钥,DRCPDU可以增加新字段以便保存同伴操作密钥,该字段用于在DRCPDU中携带一个节点的DRF_Home_Oper_Partner_Aggregator_Key。也可更新用于记录在从IPP接收的DRCPDU中携带的邻居节点的配置的参数值的函数。诸如上文所论述的recordNeighborState的这样的函数可用于将所接收的操作同伴聚合器密钥设置成最后已知的操作邻居聚合器密钥(例如,将DRF_Neigbhor_Oper_Partner_Aggregator_Key设置成等于所接收的DRF_Home_Oper_Partner_Aggregator_Key)。注意,当一个门户包含多于两个节点时,保存了多个DRF_Neigbhor_Oper_Partner_Aggregator_Key或潜在的DRF_Other_Neigbhor_Oper_Partner_Aggregator_Key,每个邻居节点一个密钥。参考图1B,链路K-M是工作链路,而链路L-O是保护链路。在节点K和L之间以及在M和O之间均存在IPL链路,以便使它们的DRCP状态保持同步。当网络节点M和O之间的IPL链路发生故障时,服务的节点M(当前为工作节点)和O(当前为保护节点)均试图接管作为传送业务的节点;从它们各自的角度,它不是操作的相邻节点。作为保护节点的节点O将更新它的LAG标识符(ID)以免具有链路K-M和L-O携带重复业务的情形。在门户112,节点K和L需要关于是丢弃还是允许链路K-M和L-O上的业务独立地做出决定。在一个实施例中,可以通过在邻居节点之间交换DRCPDU来做出该决定。另外,可以对每个节点所应用的选择逻辑进行修改以便将所交换的信息考虑在内。可以更新节点K和L,以使得只有当它的操作同伴聚合器密钥是包括它的操作同伴聚合器密钥和它的操作邻居门户密钥在内的值的集合中的最低值时才允许业务分别经过它的相关联的链路K-M和L-O。为了使选择起作用,当它更新它的LAGID时,作为保护节点的节点O可以更新它的操作密钥值(在一个实施例中,利用诸如上文所论述的updateKey函数的更新函数来更新操作密钥值)。图19示出根据本发明一个实施例在丧失与它的邻居节点的通信时DRCP节点的操作。该方法可以在耦合到一个或多个相邻节点的任何DRCP节点处实现。在1902,DRCP节点确定它不再与它的相邻节点通信。通信的丧失可以是由于IPP禁用或发生故障、或相邻节点禁用或发生故障而导致。在1904,DRCP节点接着确定它是当前不携带业务的节点。注意,DRCP节点可以充当用于服务的门户的工作或保护节点。如果DRCP节点是工作节点,那么不需要进一步措施,它将继续携带活动业务。如果DRCP节点是保护节点,那么该方法继续进行至1906,在1906,DRCP节点更新它的操作密钥并携带活动业务。将更新后的操作密钥设置成包括每个IPP上的以下值的集合中的最低数值非零值:该节点的密钥(例如,该节点的Admin_Aggregator_Key);相邻节点的密钥(例如,相邻节点的Admin_Aggregator_Key);以及其它相邻节点的密钥(例如,其它相邻节点的Admin_Aggregator_Key)(当门户包含3个门户系统时)。将更新后的操作密钥发送给它的同伴节点。根据实施例,因而提供一种通过包括多个网络装置的门户中的网络装置(即,耦合到至少一个邻居网络装置的网络装置)执行的方法。该方法包括确定网络装置丧失了与一个或多个邻居网络装置的通信。然后,网络装置确定它没有在链路聚合群组中将业务携带到同伴网络装置,即,它正充当保护节点。在确定网络装置是保护节点之后,网络装置更新它的操作密钥,并开始通过链路聚合群组携带业务。图20示出根据本发明一个实施例在接收到多个业务流时在与它的邻居节点协调时DRCP节点的操作。该方法可以在耦合到一个或多个相邻节点的任何DRCP节点处实现。在2002,DRCP节点确定它从它的同伴接收业务。同伴可以是包含多个节点或单个节点的门户。DRCP节点可以是门户的单个节点,在此情况下,DRCP节点应用正常链路聚合操作以便在它从它的同伴接收多个业务时做出选择哪个业务允许经过的选择(例如,在确定链路和对应的聚合端口仍处于链路聚合群组中之后允许当前工作链路上的业务经过,而在确定工作链路不再位于链路聚合群组中之后启用当前保护链路上的业务)。另一方面,在2004,DRCP节点确定它耦合到至少一个邻居节点。当DRCP节点耦合到至少一个邻居节点时,只有当所接收的同伴操作密钥是门户的所有相邻节点的同伴操作密钥的最低值时,DRCP节点才允许来自它的同伴节点的业务经过。在一个实施例中,将确定节点的DRF_Home_Oper_Partner_Aggregator_Key低于门户的所有DRF_Neighbor_Oper_Partner_Aggregator_Keys。根据实施例,因而提供一种通过网络装置执行的方法。该方法包括确定网络装置通过链路聚合群组从同伴网络装置接收业务。该方法还包括确定网络装置耦合到至少一个邻居网络装置,网络装置和这至少一个邻居网络装置是门户的一部分。该方法还包括:接收同伴网络装置的操作密钥;以及基于同伴网络装置的操作密钥和门户的网络装置的操作密钥的比较确定是否允许来自同伴网络装置的业务。这可通过确定同伴网络装置的操作密钥低于门户的网络装置的操作密钥来执行。图27示出根据本发明一个实施例在发生通信故障状况时在与它的邻居节点协调时DRCP节点的操作。方法2800可以在作为DRNI的一部分的DRCP门户(称为本地门户)的DRCP节点(例如,网络装置)(例如,图1B的节点K-O与图1C的网络装置132和134)上实现,其中节点耦合到一个或多个相邻节点。在2702,DRCP节点确定它从它的同伴接收业务。同伴可以是包含多个节点或单个节点的门户。DRCP节点可以是门户的单个节点,在此情况下,DRCP节点应用正常链路聚合操作以便在它从它的同伴接收多个业务时做出选择哪个业务允许经过的选择(例如,在确定链路和对应的聚合端口仍然位于链路聚合群组中之后允许当前工作链路上的业务经过,而在确定工作链路不再位于链路聚合群组中之后启用当前保护链路上的业务)。另一方面,在2704,DRCP节点确定它耦合到至少一个邻居节点。在2706,DRCP节点确定所接收的操作密钥是否已经更新。在一个实施例中,更新是由于失效/发生故障的IPL引起的。如果所接收的Partner_Oper_Key的两个最高有效位等于值2或3,并且聚合端口的Partner_Oper_Port_Priority的两个最低有效位等于值2或3,那么DRCP节点可以确定同伴系统正经历失效/发生故障的IPL。在2708,DRCP节点确定它是否与相同门户的它的相邻节点隔离。DRCP节点可以因失效/发生故障的IPL而与它的相邻节点隔离。在此情况下,DRCP节点确定本地和远程门户处的IPL均失效。在2710,DRCP节点确定它是否在较高优先级的门户系统内,并且如果是,那么它起作用以便防止重复业务。在一个实施例中,DRCP节点确定它是否具有比它的同伴门户更高优先级的门户系统标识符(例如,在图1B,门户112可以是比门户114更高优先级的门户,在此情况下,它执行2710),并且如果它具有更高门户系统标识符,那么它放弃所接收的业务。根据实施例,因而提供一种通过网络装置执行的方法。该方法包括确定网络装置通过链路聚合群组从同伴网络装置接收业务。该方法还包括确定网络装置耦合到至少一个邻居网络装置,网络装置和这至少一个邻居网络装置是耦合到至少一个邻居节点的门户的一部分。该方法还包括:网络装置确定所接收的操作密钥是否已经进行更新,并且它确定它是否与相同门户的它的相邻节点隔离。该方法还包括:如果它具有比它的同伴门户更高的门户系统标识符,那么网络装置放弃所接收的业务。本发明的实施例因而提供用于协调相邻节点和同伴节点的状态以使得不会有重复业务中断实现DRCP的链路聚合群组中的业务接收的有效方法。DRCP和LACP状态之间的协调:第二实施例集合为了在DRCP和LACP状态之间协调,备选方法是更新一些现有函数/变量,并且如果本地和同伴DRCP节点可以通信它的IPL状态,那么不同地操作。图26A示出根据本发明一个实施例的聚合端口的对话掩码TLV。注意,对话掩码TLV与美国专利申请号14/135556的图4A中所示的对话掩码TLV相同,该美国专利申请通过引用的方式全文并入到本文中。图26B示出根据本发明一个实施例的聚合端口的对话掩码TLV内的对话掩码状态字段。图26B与美国专利申请号14/135556的图4B的不同之处在于,参考数字2611处的一个字段PSI(门户状态“隔离”)代替预留位。该标志只适用于门户系统,并且用于指示门户系统是否与门户()内的其它门户系统隔离。如果该门户系统上的所有IPP上的DRF_Neighbor_Oper_DRCP_State.IPP_Activity==FALSE,那么为“真”(编码为1)。否则,它的值为“假”(编码为0)。另外,在美国专利申请号14/135556中公开的ReceivedConversationMaskTLV函数可以用以下额外操作进行更新:它还将在所接收的端口对话掩码中携带的PSI的参数值记录为Partner_PSI的当前操作参数值。此外,在美国专利申请号14/135556中公开的upddateConversationMaskTLV函数可以用以下额外操作进行更新:如果该函数通过DRCP门户系统实现,其中它的DRF_Portal_System_Number值设置成不同于1的值,它的门户系统标识符设置成在数值上低于同伴的系统标识符的值,并且PSI==Partner_PSI==TRUE,那么将Comp_Oper_Conversation_Mask设置成空。例如,参考图1B,当K/L和M/O处的IPL均失效时,所有节点都将传送业务;活动节点K和M传送业务,因为它们是活动节点,并且保护节点L和M也传送业务,因为它们与活动节点隔离并且现在认为它们本身是活动的。当在门户112和114处均支持PSI时,PSI和所接收的同伴PSI将为“真”。假设门户112是较高优先级门户(例如,门户112的系统标识符低于门户114的,并且因此它的优先级较高),那么节点L确定它的门户系统号(假设为2,因为它是双节点门户,并且工作节点K具有门户系统号1)不是最低,它将把它的操作对话掩码更新为空,并且它不传送或接收业务。图28示出根据本发明一个实施例在通信故障时DRCP节点的操作。方法2800可以在作为DRNI的一部分的DRCP门户(称为本地门户)的DRCP节点(例如,网络装置)(例如,图1B的节点K-O与图1C的网络装置132和134)上实现。在2802,DRCP节点确定它不再与它的相邻节点通信。通信的丧失可能是由于IPP禁用或发生故障、或邻居节点禁用或发生故障引起的。在一个实施例中,通信的丧失可以在设置成“真”的PSI位中指示(它在上文所论述的LACPDU中通过TLV发送)。在2804,节点确定它的同伴节点不再与同伴的相邻节点通信。同伴节点可以经由LACPDU发送它的PSI状态,并且将通过同伴的recordReceivedConversationMaskTLV函数记录PSI。当同伴节点不再与它的相邻节点通信时,将把所接收的PSI状态设置成“真”,在此情况下,PSI==Partner_PSI==TRUE。在2806,节点确定它的门户是比它的同伴节点的门户更高优先级的门户。在一个实施例中,可以基于节点和同伴节点的门户的系统标识符来确定门户是更高优先级门户。在2808,节点确定它不是它的门户的最高优先级节点。它的门户内的节点的优先级可以通过它的门户系统号来确定,在一个实施例中,门户系统号介于1-3之间(一个门户至多3个节点)。在一个实施例中,如果它的门户系统号不是1,那么节点确定它不是它的门户的最高优先级节点。在2810,节点停止传送和接收链路聚合群组的业务。在一个实施例中,节点设置它的Comp_Oper_Conversation_Mask,这是通过更新对话掩码函数(例如,updateConversationMask)计算的节点的操作对话掩码的操作值。根据实施例,因而提供一种通过包括多个网络装置的门户中的网络装置(即,网络装置耦合到至少一个邻居网络装置)执行的方法。该方法包括确定它的同伴节点不再与同伴的相邻节点通信。接着,网络装置确定它的门户是比它的同伴节点的门户更高优先级的门户。然后,网络装置确定它不是它的门户的最高优先级节点,并且一旦确定,它便停止传送和接收业务。本发明的实施例因而提供用于协调相邻节点和同伴节点的状态以使得没有重复业务会中断包含DRCP的链路聚合群组中的业务接收的有效方法。网络装置的实施例图13是用于执行本文中所描述的DRNI功能性的网络装置的一个实例实施例的图。网络装置1380可以是实现如上文关于图2所描述的链路聚合子层1370的路由器或类似装置,并且支持上文所描述的链路聚合功能。网络装置1380可以包括网络处理器1300、端口集合1340、存储装置1350和类似网络装置组件。举例而非限制性地提供网络装置的组件。网络装置1380可以利用任意数量或类型的处理器以任何配置实现聚合功能和链路聚合子层1370。在其它实施例中,聚合功能和链路聚合子层以及有关组件分布在网络处理器集合、线卡集合以及它们的构成通用和专用处理器或在网络装置体系结构中实现的类似组件中。端口1340可以经由诸如以太网、光纤或类似介质的物理介质连接网络装置和任意数量的其它网络装置。网络装置1380中可以存在任意数量和种类的端口。端口1340的任意组合或子集可以作为链路聚合群组或DRNI门户进行组织和管理,其中网络装置充当聚合系统。因此,端口可以是一个或多个链路聚合群组的聚合端口。网络装置1380内的存储装置1350的集合可以是任意类型的存储器装置、高速缓存、寄存器或用作工作存储器和/或持久存储设备的类似存储装置。可以利用任意数量和种类的存储装置1350来存储网络装置的数据,包括即将通过网络装置1380处理的编程数据和接收的数据业务。在一个实施例中,上文所描述的对话服务映射摘要、对话掩码和类似数据结构的DRNI数据结构或类似组织可以存储在这类数据结构中。存储在存储装置1350中的其它数据结构可以包括上文所描述的那些数据结构。在其它实施例中,这些数据结构可以视为是独立的,并且可以分布在网络装置1380内的任意数量的独立存储装置1350中。网络处理器1300的集合可以实现如上文所描述的聚合和DRNI功能以及链路聚合子层1370。聚合功能可以包括聚合器客户端1372和链路聚合子层1370,链路聚合子层1370可包括控制解析器/复用器1302、聚合控制器1306、帧收集器1325、帧分发器1320和DRNI1313。如上文进一步描述的聚合控制器1306可以实现链路聚合控制和链路聚合控制协议功能。这些功能管理链路聚合群组、DRNI门户和类似方面的配置和分配。控制解析器和复用器1302标识和转发来自在聚合端口上接收的其它数据业务的LACPDU,并将LACPDU发送到聚合控制器1306以及链路聚合子层1370内的其它数据业务。如上文进一步描述的链路聚合子层1370根据分发算法管理帧的收集和分发。在链路聚合子层1370内,帧收集器1325接收帧,并根据与链路聚合群组上的同伴系统共享的分发算法组织它们。帧分发器1320准备并选择外出帧以便根据分发算法通过聚合端口的集合进行传输。客户端接口从聚合器端口1372接收帧并将帧传送到聚合器端口1372。将进入帧从帧收集器1325传递到聚合器客户端1372,并将外出帧从帧分发器1320传递到聚合器客户端1372。通过网络处理器1300执行上文所描述的DRNI功能1311。尽管就若干个实例实施例描述了本发明,但是本领域技术人员将意识到,本发明不限于所描述的实施例,而是可以在随附权利要求的精神和范围内在修改和改变的情况下加以实践。因此,本描述视为是说明性而不是限制性的。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1