在将节点连接到通信网络的冗余端口处接收帧的制作方法

文档序号:16810867发布日期:2019-02-10 13:37阅读:270来源:国知局
在将节点连接到通信网络的冗余端口处接收帧的制作方法

实施例涉及在将节点连接到通信网络的冗余端口处接收帧,并且更特别地涉及检测重复帧。



背景技术:

背景技术的以下描述可能包括洞察、发现、理解或公开,或者与本发明之前相关领域未知但由本发明提供的公开一起的关联。本发明的一些这样的贡献可能在下面具体指出,而本发明的其它这样的贡献将从它们的上下文中显而易见。

若干通信协议使用重复消息提供冗余通信,从而确保消息被目的地接收。iec62439-3第2版定义了两种冗余协议:并行冗余协议(prp)和高可用性无缝冗余(hsr)协议。

prp和hsr两者都在以太网链路层上操作,以太网链路层是开放系统互连(osi)模型的第2层。prp和hsr的操作对于上面的层是完全透明的:当源发送重复帧时,接收器必须能够去除重复帧,并且它仅向上面的层提供单个帧。

prp和hsr协议定义源地址和序列号应该一起用于检测重复帧。hsr和prp两者在每个被发送的帧中都包括源介质访问控制(mac)地址和16位序列号。hsr/prp源节点将序列号添加到帧。序列号是特定于源mac地址的,即,每个源具有其自己的运行序列号,对于发送到prp/hsr网络的每个帧,该序列号递增1。hsr/prp节点利用相同序列号经由两条路径发送相同的重复数据。

当两条路径没有故障时,经由两条路径在目的地节点处接收到重复帧。但是,由于目的地节点只需要一个帧,因此需要丢弃重复帧。未能识别重复帧和丢弃正确帧可能妨碍上层协议的最佳操作,例如,udp或第2层之上的那些协议以及那些尚未被设计成处理重复的那些协议。此外,重复帧增加了网络载荷和处理接收帧的节点的载荷。



技术实现要素:

本发明的目的是提供一种方法和用于实现该方法以便克服至少部分上述问题的装置、计算机程序产品和计算机程序。本发明的目的通过一种方法和一种装置来实现,该方法和装置的特征在于独立权利要求中所述的内容。在从属权利要求中公开了本发明的优选实施例。

一些实施例规定,在将节点连接到通信网络的冗余端口处接收到的帧的接收信息可以存储到数据结构组中的数据结构,使得序列中的所有帧的接收信息不存储到该同一数据结构,并且接收信息可以被快速访问。

一些实施例规定,冗余通信中的帧的接收信息可以存储在散列表条目中的位向量中,由此散列表的速度可以与位向量的存储器效率组合。

附图说明

在下文中,将参考附图借助于优选实施例更详细地描述本发明,其中:

图1a图示了用于执行实施例的网络架构;

图1b图示了用于执行实施例的另一个网络架构;

图2a图示了根据实施例的装置的框图;

图2b图示了根据实施例的装置的架构;

图3图示了根据实施例的用于处理在将节点连接到通信网络的冗余端口处接收到的帧的方法;

图4图示了根据实施例的用于存储接收信息的操作条目的示例;

图5图示了根据实施例的用于存储来自传送器节点的帧的接收信息的数据结构的示例;

图6图示了根据实施例的用于处理在将节点连接到通信网络的冗余端口处接收到的帧,以便在不同的可用条目中存储接收信息的方法;

图7图示了基于接收信息处理接收到的帧的方法;

图8图示了根据实施例的具有优先级的操作条目的示例;以及

图9图示了利用具有优先级的条目来处理帧的方法。

具体实施方式

以下实施例是示例性的。虽然说明书在若干位置中可能引用“实施例”,“一个实施例”或“一些实施例”,但这并不一定意味着每个这样的引用是针对相同的(一个或多个)实施例,或者该特征仅适用于单个实施例。不同实施例的单个特征也可以被组合以提供其它实施例。

各种实施例可以包括存储冗余通信中的帧的接收信息的新类型的数据结构。本文描述的实施例的实现可以包括在本文描述的一个或多个实施例中描述的部件的至少一部分。

在以下描述中,将在prp和hsr协议以及实现hsr和/或prp的网络节点的上下文中描述在冗余端口处接收到的重复帧的检测。但是,应该认识到的是,所描述的实施例也可以应用于支持冗余的其它冗余协议和网络节点。

数据结构可以包括一个或多个相互关联的数据字段,这些数据字段可以优选地由单个存储器操作来访问,诸如存储器中的数据的读取操作或存储器中的数据的写入操作。可以促进单个存储器操作,即将数据结构存储到连续存储器段,使得可以使用单个存储器地址来寻址数据结构。在下文中,数据结构被称为条目。

数据结构组可以包括在数据结构的处理中在逻辑上和/或物理上相互关联的多个数据结构。如果数据结构被存储到连续存储器段,那么数据结构可以在物理上相互关联。如果数据结构经历对数据结构共同的数据处理,那么数据结构可以在逻辑上相互关联。在一个示例中,共同的数据处理可以是搜索操作,其中从组中的所有数据结构中搜索存储在数据结构中的具体数据结构和/或数据。可以使用单个存储器地址来寻址数据结构组。组中的单个数据结构的地址可以从该单个存储器地址导出,使得数据结构可以被存储在单独的存储器段中,即,非连续的存储器段中。在下文中,数据结构组被称为行。

多组数据结构可以包括在组的处理中在逻辑上和/或物理上相互关联的多个数据结构组。如果组被存储到连续存储器段,那么这些组可以在物理上相互关联。如果组具有相似、相同和/或以类似方式被处理的数据结构,那么这些组可以在逻辑上相互关联,由此这些组可以经历对这些组共同的数据处理。在一个示例中,共同的数据处理可以是针对数据结构的搜索操作。在下文中,多组数据结构被称为表。

在prp和hsr中,源地址连同帧的序列号可以用于检测重复。hsr和prp帧在被发送的每个帧中包括源mac地址和16位序列号。hsr/prp源节点向帧添加序列号。序列号是特定于源mac地址的,即,每个源具有其自己的运行序列号,对于发送到prp/hsr网络的每个帧,该序列号递增1。hsr/prp节点通过复制帧并利用相同序列号经由两条路径发送重复帧来以冗余方式发送相同的数据。接收器能够通过检查是否已经从相同的源mac地址接收到具有相同序列号的帧来检测接收到的帧是否是重复的。序列号是16位值,这意味着它在发送(2^16=)65536个帧之后重叠。

应该认识到的是,取决于实现,源和目的地之间的冗余路径的数量可以大于2,例如,为3、4或任何数量。从而,在冗余路径上支持冗余通信的装置具有与路径数量对应的端口数量。

图1a图示了用于执行实施例的网络架构。局域网a(lan_a)104和lan_b102是两者均采用星形拓扑的单独lan,在星形拓扑中,每个帧经由网络中的中央节点(例如,交换机)传送。中央节点将从连接设备接收到的帧中继到连接到中央节点的其它设备。双附接节点(dan)106、108、109、110、112连接到两个lan,从而支持通信中的冗余。每个lan也可以连接到除dan之外的其它设备,例如单附接节点(san)114、116、118和120。

源dan复制每个帧并在两个lan上发送重复帧。以这种方式,连接到相同lan的接收dan可以经由两条单独的路径接收帧。以这种方式,其中一条路径的故障不会妨碍经由另一条路径接收帧。通过经支持通信中的冗余的设备(redbox109)将san连接到双星拓扑网络,san也可以被冗余地连接。

图1b图示了用于执行实施例的另一个网络架构。dan132、134、136、138、142、144、146和148连接到环形拓扑网络。环形拓扑网络中的每个dan连接到相邻节点,并且将从一个邻居节点接收到的帧中继到另一个邻居节点。在所示的环形拓扑的示例中,dan132、134、136和138连接到第一环,并且142、144、146和148连接到第二环。这两个环通过由quadbox152和154提供的环之间的两条路径冗余地互连。quadbox可以由通过非冗余连接连接的每个环形拓扑网络中的dan实现。当以这种方式连接两个环时,帧在每个环内以及在通过quadbox连接的环之间冗余地通信。

图2a是根据实施例的装置200的框图。虽然该装置被描绘为一个实体,但是不同的模块和存储器可以在一个或多个物理或逻辑实体中实现。该装置可以包括支持通信中的冗余的节点。该节点可以是通信网络中的网络节点。冗余可以通过硬件组件的冗余(例如,冗余端口)和/或功能的冗余(例如,发送冗余帧)来提供。在冗余通信中,装置冗余地发送每个帧。冗余可以由用于发送帧的多个连接提供,例如,两个或多个单独的连接。在一个示例中,这通过包括与每个连接对应的端口的装置来实现。在具有单独的硬件后,例如,用于每条冗余路径的端口提供同时发送冗余帧,从而在不同路径上发送的帧之间没有延迟。这在实时通信中尤其有利。

装置200包括接口单元202、中央处理单元(cpu)208和存储器210,它们都是电互连的。接口单元包括输入单元204和输出单元206,它们分别向装置提供输入和输出接口。相应地,输出单元可以能够传送帧,并且输入单元可以能够接收帧。存储器可以包括可由cpu执行的一个或多个应用。输入和输出单元可以被配置或布置为根据一个或多个协议发送和接收数据、帧、报文和/或消息。协议的示例包括通信层协议,诸如数据链路层协议,包括由ieee802.3以太网和ieee802.11无线局域网wlan(也被称为无线以太网)定义的介质访问控制(mac)协议。其它示例是网络层协议,诸如互联网协议(ip)版本4和6。

但是,应该认识到的是,协议可以包括osi模型中在数据链路层、第2层或其它层上提供在网络实体之间传输数据的功能和过程部件的任何其它协议。因此,应当理解本文描述的各种示例和实施例不限于数据链路层地址和mac地址,而是它们适用于其中传送器和接收器可以执行冗余通信的各种通信协议中使用的各种通信层地址。

在实施例中,该装置可以连接或能够连接到通信网络中的一个或多个其它节点或通信网络的区段,其中节点可基于节点的通信层协议地址唯一地识别。通信层协议ipv6可能优于ipv4,因为ipv6的地址范围更大。在示例中,通信网络的区段可以包括一个或多个单跳数据链路层链路,由此可以基于数据链路层地址(例如,mac地址)唯一地识别节点。在示例中,通信网络的区段可以包括用于特定范围的ip地址的路由区域,例如ipv4地址的范围,由此可以基于路由区域中的ip地址唯一地识别节点。路由区域可以通过连接区段的路由器连接到通信网络的其它区段。

装置200的不同部分可以被组合到单个单元中以提供该部分的功能。相应地,输入单元204和输出单元206可以被组合到提供信息的接收和发送的单个单元中。

在实施例中,该装置包括两个或更多个接口单元,即,端口,帧可以通过这些接口单元离开和/或进入装置。该两个或更多个端口是冗余的,使得装置经由每个端口发送每个帧。优选地同时发送帧以便避免帧之间的任何延迟,因为延迟是不期望的,尤其是在实时通信中。

在实施例中,该装置可以包括两个或更多个冗余端口和非冗余端口,由此来自非冗余端口的帧经由冗余端口被发送,并且来自冗余端口的每个帧仅通过非冗余端口被发送一次。

在实施例中,输入204单元可以向装置提供用于获得数据、帧、报文和/或消息的电路系统。相应地,输入单元可以用于接收器单元。获得可以包括例如通过天线接收射频信号。在另一个示例中,通过输入单元的获得可以包括在有线连接上接收电信号。

在实施例中,输出单元206可以提供用于从装置传送数据、帧、报文和/或消息的电路系统。相应地,输出单元可以用于传送器单元。传送可以包括例如通过天线传送射频信号。在另一个示例中,传送可以包括在有线连接上传送电信号。

在实施例中,该装置可以通过连接到具有多个冗余端口的通信层上的通信网络来提供冗余通信。相应地,该装置可以包括实现相同协议或不同协议的两个或更多个冗余端口。协议可以是通信层协议。不同协议的示例可以包括上面解释的那些协议。当不同的数据链路层协议定义不同的物理层协议时,例如,通过定义有线物理层的以太网和定义无线物理层的wlan,实现不同数据链路层协议的冗余端口还可以实现不同的物理层。以这种方式,冗余路径通过用于传输帧的物理介质(例如,在使用wlan和以太网的情况下,通过无线介质和有线介质)分离。

在实施例中,装置可以包括实现以太网的两个或更多个冗余端口以及实现wlan的两个或更多个冗余端口。以这种方式,装置可以在有线和无线网络中提供通信中的冗余。装置还可以具有用于两个网络之间的通信的非冗余端口。以这种方式,装置可以在由dan132、134、16和138的wlan网络形成的第一环和由dan142、144、146和148的以太网网络形成的第二环之间作为如图1b所示的quadbox操作。相应地,有线和无线网络可以冗余地连接。

图2b图示了根据实施例的装置220的架构。例如,该装置可以由图2a的功能块实现。该装置包括两个冗余端口222和224以及互连链路端口226。冗余端口支持通信中的冗余,如上所述。互连端口是非冗余端口。从而,由冗余端口之一接收到的帧仅被发送一次到互连链路端口。从而,在第一帧之后接收到的重复帧不被转发,并且它们可以例如被丢掉,即,丢弃。装置220可以用在图1a和图1b中所示的dan中。

图4图示了根据实施例的用于存储接收信息的操作条目400的示例。图5图示了根据实施例的用于存储来自传送器节点的帧的接收信息504的条目500的示例。根据图5中的图示,该条目可以具有在0到127之间的位位置处定义的字段。参考图4和图5,条目400可以布置在具有若干行402和若干列404的表中。每个条目500可以是表400中特定行和特定列中的条目。行数应该大于一,例如为2、3或4,使得每行可以在多个条目中并且关于来自多于一个传送器的帧存储接收信息。

应该认识到的是,该表是用于图示条目和表的条目的实现的示例,并且表、行和/或列可以以各种方式实现。在该实现的一个示例中,表、行和/或列可以位于逻辑上指派给同一个表的单独的存储器段中。

条目500可以具有用于存储传送器节点的地址的地址字段502和用于存储来自传送器节点的帧的接收信息的接收信息字段504。接收信息字段可以包括由特定传送器节点传送的帧序列中的连续帧的一部分的接收信息。从而,来自传送器节点的所有帧的接收信息没有被存储在同一条目中。

接收信息字段可以是具有长度n的位向量,其中n是位的数量。可以基于在条目中存储接收信息的可能序列号值的数量来定义位向量的长度。因此,位向量仅能够存储序列号总数的一部分的接收信息。优选地,位向量存储通过帧中的msb的一部分从序列号空间中选择的连续帧的接收信息。通过下面的公式(1)中描述的模运算,可以唯一地存储在帧的该部分中的每个帧的接收信息。以这种方式,帧的该部分中的任何单个帧的接收信息可以被存储在接收信息字段中的特定位位置中。

地址字段中的地址有助于识别用于存储行中传送器节点的接收信息的条目。传送器节点的地址可以是通信层地址,诸如数据链路层地址,例如mac地址。其它地址也是可能的。

在实施例中,条目可以包括虚拟局域网vlan标识符510和序列号s的最高位508。以这种方式,就vlan和序列号的最高位而言,可以更准确地定义存储在条目中的接收信息。

在实施例中,条目可以包括老化指示符506。老化指示符可以指示条目中的接收信息是有效还是无效。老化指示符可以具有至少一个可以指示接收信息有效的值以及至少一个可以指示接收信息无效的值。可以实现其它值来指示自上次更新接收信息以来已经过去的一个或多个时段。在所指示的时段,老化指示符可以被解释为指示接收信息是有效的。老化指示符可以在接收和处理帧的同时在后台被连续地更新。

可以基于传送器的地址和能够识别帧序列中的连续帧的至少一部分或特定帧的信息来生成406用于访问表中的行的至少一个地址。在示例中,可以通过对传送器的地址和接收到的帧的序列号进行散列计算来获得用于访问行的地址。可能仅使用一部分(例如,接收到的帧的序列号的高位)就足够。一旦已经获得行的地址(例如,行号),就可以操作408行上的条目。例如,可以进行各种操作,包括读取和写入。

图3图示了根据实施例的用于处理在将节点连接到通信网络的冗余端口处接收到的帧的方法。在该方法中,可以使用根据图4的、可以包括根据图5的条目的表来处理帧。

图3的方法可以在302中,当可以在将节点连接到通信网络的冗余端口处接收一个或多个帧时开始。装置可以通过两个或更多个端口冗余地连接到通信网络。该装置可以具有用于存储由特定传送器节点传送的帧的接收信息的表。端口可以连接到如图1a中的其它lan和/或如图1b中的其它网络节点。冗余端口处接收到的帧可以由与源(即,传送器节点)相关联的序列号来识别。源地址和序列号的关联可以通过如利用hsr/prp协议将源地址包括在接收到的帧中来建立。相应地,来自每个源的帧可通过源地址和由源指派的每个帧内的序列号识别。应该认识到的是,所描述的方法是针对由冗余端口接收到的帧来解释的,因为冗余端口是重复帧的源。但是,该装置也可以从非冗余端口接收帧,对于这种情况,重复帧检测也是不必要的。

在304中,可以从接收到的帧导出帧的传送器节点的通信层地址和能够识别帧序列中的连续帧的一部分的信息。接收到的帧属于由从帧导出的信息识别出的帧的部分。

在实施例中,能够识别帧序列中的连续帧的一部分的信息包括一组序列号。

在实施例中,能够识别帧序列中的连续帧的一部分的信息包括序列号位向量中的一个或多个最高有效位msb。msb可以用于识别一组序列号。

在306中,可以基于导出的通信层地址和能够识别帧序列中的连续帧的一部分的信息,生成用于访问表中的行的至少一个地址。地址可以是行号或与行对应的存储器地址。以这种方式,对于属于连续帧的不同部分的帧,用于访问表中的行的地址也可以不同,并且序列中所有帧的接收信息没有被存储在同一条目和行中,但是,取决于接收到的帧所属的连续帧的部分,接收信息可以被存储到不同行上的条目中。

在实施例中,能够在帧序列中的连续帧的部分内识别接收到的帧的信息包括序列号位向量中的序列号的最低有效位lsb。

在308中,可以基于导出的通信层地址来确定在由所生成的用于访问表中的行的地址可访问的行中,用于存储来自传送器节点的帧的接收信息的可用条目。相应地,可以基于从接收到的指向行和条目的帧导出的信息来快速访问接收信息。

在实施例中,用于存储传送器节点的接收信息的可用条目是空的、存储传送器节点的接收信息或包括老化的接收信息。空条目可以是不包含内容的条目。相应地,当条目为空时,该条目可能已经被初始化,使得该条目可以通过读取和写入操作来访问,但在初始化之后可能还没有内容被写入该条目。

在310中,可以从接收到的帧导出能够在帧序列中的连续帧的部分内识别接收到的帧的信息。以这种方式,由于仅考虑帧序列中的连续帧的部分,因此可以以高效的方式识别接收到的帧。

在312中,可以基于导出的能够在帧序列中的连续帧的部分内识别接收到的帧的信息,读取条目中的接收到的帧的接收信息。

在314中,可以基于所读取的接收信息来确定接收到的帧是否是重复帧。接收信息可以是位向量,其中每个位可以对应于特定序列号,并且位的值“0”或“1”可以指示是否已经接收到具有特定序列号的帧。

在实施例中,可以针对来自传送器节点的帧的接收信息检查行,并且如果没有找到接收信息,则传送器节点的接收信息可以被存储为空条目或包括老化接收信息的条目,并且如果找到用于存储来自传送器节点的帧的接收信息的条目,则如果接收到的帧不是重复帧,则接收信息被存储为找到的条目314。可以在读取312接收信息之前执行检查。

在将接收到的帧确定为重复帧或非重复帧之后,该方法可以结束316。

图6图示了根据实施例的用于处理在将节点连接到通信网络的冗余端口处接收到的帧,以便在不同的可用条目中存储接收信息的方法。在该方法中,可以使用根据图4的、可以包括根据图5的条目的表来处理帧。

用于存储传送器节点的接收信息的可用条目可以是空的、存储传送器节点的接收信息或者包括老化的接收信息。当612表中存在存储传送器节点的接收信息的可用条目时,该方法可以继续检查接收到的帧是重复帧620还是不是重复帧622。当626没有找到存储接收信息的可用条目时,可以选择630、632空条目或最老的条目用于存储接收信息,并且接收到的帧可以被确定为不是重复的。

图6的方法可以在将节点连接到通信网络的冗余端口处接收到一个或多个帧时开始。该装置可以通过两个或更多个端口冗余地连接到通信网络。

装置可以具有用于存储由特定传送器节点传送的帧的接收信息的表。端口可以连接到如图1a中的其它lan和/或如图1b中的其它网络节点。冗余端口处接收到的帧可以由与源(即,传送器节点)相关联的序列号来识别。源地址和序列号的关联可以通过如利用hsr/prp协议将源地址包括在接收到的帧中来建立。相应地,来自每个源的帧可通过源地址和由源指派的每个帧内的序列号识别。应该认识到的是,所描述的方法是针对由冗余端口接收到的帧来解释的,因为冗余端口是重复帧的源。但是,该装置也可以从非冗余端口接收帧,对于这种情况,重复帧检测也是不必要的。

在602中,可以在将节点连接到通信网络的冗余端口处接收可能是重复的帧。传送器节点的mac地址和帧的序列号可以从接收到的帧导出,并用于生成表中的行的地址。可以处理序列号以获得能够识别接收到的帧所属的连续帧的一部分的信息。该部分可以由序列号位向量中的一个或多个最高有效位msb识别。

在实施例中,可以针对来自传送器节点的帧的接收信息检查表610、612,并且如果612没有找到接收信息,则传送器节点的接收信息可以被存储630、632为作为空条目的可用条目或包括老化接收信息的条目,并且如果612找到用于存储来自传送器节点的帧的接收信息的条目,则如果616存储的接收信息指示接收到的帧622不是重复帧,则接收信息可以被存储618为找到的条目。应该认识到的是,如果612没有找到接收信息,则可以确定636接收到的帧不是重复的。另一方面,如果612找到用于存储来自传送器节点的帧的接收信息的条目,则帧可以基于存储的接收信息被确定620为重复。老化的接收信息可以被称为旧条目或最旧的条目。例如,可以基于图5中的老化指示符506来确定条目的老化。

针对来自传送器节点的帧的接收信息检查可以包括为表中的行生成地址。可以通过由根据mac地址、序列号的高位和可选的vlan标识符的散列函数计算604表中的行号来生成地址。序列号的高位定义帧序列中的连续帧的一部分。可以针对具有传送器节点的mac地址和接收到的帧的序列号的条目606、624搜索行。搜索可以包括例如一个接一个地为搜索选择条目608。条目可以通过列索引进行索引。最左列(c)可以具有索引'0','c=0',并且搜索可以从最左列c=0开始。如果612没有找到接收信息,则搜索可以进行624到下一列'c=c+1',直到已经搜索总列数并且'c=>总列数'。应该认识到的是,其它信息也可以被存储在条目中并进行检查610,例如虚拟局域网(vlan)标识符。序列号的高位可以定义条目可以存储其接收信息的帧序列中的连续帧的一部分。

在找到用于存储来自传送器节点的帧的接收信息的条目之后,可以从条目中读取614接收到的帧的接收信息,以便确定接收到的帧是重复620还是不重复622。

接收信息可以存储在位向量中,其中每个位可以对应于具有特定序列号的帧。位的值可以用于指示是否接收到帧。在示例中,位值'1'可以表示接收到帧,并且位值'0'可以表示没有接收到帧。

可以从位向量的位置中读取614接收到的帧的接收信息,该位置可以如下确定:

m=序列号模长度(序列号位向量)(1),

其中序列号可以从接收到的帧导出,并且长度(序列号位向量)是返回序列号位向量的长度的函数。

应该认识到的是,可以将接收到的帧的接收信息写入618、634到位向量的由公式(1)定义的位位置处。

如果612在行上没有找到接收信息,则可以选择630、632最旧的条目和/或空条目,用于存储接收信息。可用条目可以具有优先级,由此可以选择具有最高优先级的条目。优先级的示例包括表中的条目的年龄和/或位置。使用年龄作为优先级,可以将最旧的条目赋予最高优先级。另一方面,使用位置作为优先级,可以将表和/或行中最左边的条目赋予最高优先级。以这种方式,可以以组织的方式从可以包括空条目和最旧条目的混合的多个可用条目中选择诸如空条目的可用条目和/或最旧条目。在示例中,可以基于条目在表和/或行中的位置为条目指派优先级。优先级可以基于表和/或行内的索引。可以为索引的起始位置中的条目指派比后面索引中的条目最高的优先级。优先级可以随着到索引的起始位置的距离而减小。在表中,索引可以从最左列开始,并且该列中的条目可以具有最高优先级,并且后面列中的条目可以随着到第一列的距离而减小。优先级化的条目规定可以以组织的方式存储接收信息,由此可以增加找到空条目的可能性。此外,由于接收信息根据其优先级被存储到条目中,因此仅主要利用最高优先级条目,并且接收信息的检查会很快。

在实施例中,如果612没有找到接收信息,并且如果628在行中没有空条目,即,所有条目都在存储接收信息,则可以选择632最旧的条目用于存储接收信息。可以基于条目中的老化指示符来选择最旧的条目,并且可以将传送器节点的接收信息存储634到所选择的632条目。应该认识到的是,如果存在多于一个可以被认为是最旧条目的条目,则可以选择具有最高优先级的条目。

在实施例中,如果612没有找到接收信息,并且如果628在行中存在空条目,则可以选择具有最高优先级的条目,并且可以将传送器节点的接收信息存储634到所选择的条目。可以基于条目在表和/或行中的位置来对条目进行优先级化。例如,可以选择630空条目的最左边条目。由于条目的优先级用于存储,因此可以促进条目的搜索。应该认识到的是,优先级化也可以应用于选择用于存储接收信息的最旧条目。相应地,可以从最旧条目中选择632具有最高优先级的条目。当存在许多条目可以被认为是相同年龄,即,最老时,这是尤其有用的。

应该认识到的是,应该根据检查接收信息的过程来设计用于选择630、632用于存储接收信息的条目的过程,使得检查可以快并且可以增加找到空条目的可能性。

应该认识到的是,除了存储634接收信息之外,至少传送器节点的mac地址应该被存储在条目中。当空或非空条目用于存储接收信息时,该条目也可以存储应与接收信息一起写入的其它信息。其它信息的示例包括图5中描述的字段中的一个或多个字段,包括vlan标识符和接收到的帧的序列号的高位。

在636中,该方法可以结束,并且可以确定接收到的帧不是重复帧。

如果612找到接收信息,并且如果616接收信息指示已经接收到帧,则接收到的帧可以被确定620为重复帧,并且该方法可以结束。

如果612找到接收信息,并且如果616接收信息可以指示尚未接收到帧,则接收到的帧可以被确定622为不是重复帧。这意味着当存储的接收信息指示接收到的帧不是重复帧时,该帧第一次被接收并且接收信息618可以被更新以指示该帧已经被接收到。可以通过改变位向量中位置m处指示与接收到的帧对应的接收信息的位值来更新接收信息。该方法可以在已经更新接收信息并且已经确定接收到的帧不是重复帧之后结束。

图8图示了根据实施例的操作具有优先级的条目的示例。条目可以类似于图4中所描述的被布置在表中,并且列404和行402的描述适用于图8中的列804和行802。作为与图4中描述的实施例的不同之处,可以生成806a、806b、806c、806d用于访问表中的不同行的多个地址,用于对行上的条目进行操作808a、808b、808c、808d。

图9图示了利用具有优先级的条目来处理帧的方法。在该方法中,可以使用根据图8的、可以包括根据图5的条目的表来处理帧。

该方法可以在902中当可以在将节点连接到通信网络的冗余端口处接收到一个或多个帧开始,类似于图3的302中所描述的。

在904中,可以在将节点连接到通信网络的冗余端口处接收到可能是重复的帧,类似于图6中的602中所描述的。

在906中,可以基于所导出的通信层地址和能够识别接收到的帧所属的帧序列中的连续帧的一部分的信息,生成用于访问表中的不同行的多个地址。

在908中,可以选择在由生成的地址寻址的行中的可用条目中具有最高优先级的条目,用于存储传送器节点的接收信息。以这种方式,接收信息可以在行之间分布,使得可以减少在单个行中填充每个条目的可能性。

在参考图8的示例中,可以为条目指派优先级,使得最左列的条目具有最高优先级,并且优先级从最左列开始向右减小。当可用条目是图8中箭头指向的条目时,可以选择列1中的条目,因为它在四个条目中具有最高优先级。

在已经利用条目的优先级选择条目之后,该方法可以结束910。所选择的条目可以用于选择在步骤630和632中所描述的用于写入接收信息634的条目。

图7图示了基于接收信息处理接收到的帧的方法。该方法可以应用于例如在图3和图6的方法中确定的重复帧和非重复帧。该方法可以在702中当可以在将节点连接到通信网络的冗余端口处接收到一个或多个帧时开始,类似于图3的302中所描述的。

在704中,可以在将节点连接到通信网络的冗余端口处接收可能是重复的帧,类似于图6中的602中所描述的。

如果706接收到的帧是重复帧,则可以丢掉708接收到的帧。当接收到的帧被丢掉时,可以从存储器中删除该帧或者简单地对于进一步处理忽略该帧。

如果706帧不是重复帧,则可以将接收到的帧中继710到输出端口或更高的协议层,例如,应用协议层,用于进一步处理。

该方法可以在已经处理接收到的帧之后结束712。

上面在图3、图6、图7和图9中描述的步骤/点和相关功能不是按绝对的时间顺序,并且一些步骤/点可以同时被执行或者以与给定的不同的顺序执行。其它功能也可以在步骤/点之间或步骤/点内执行并且其它信令消息也可以在所示消息之间发送。步骤/点中的一些或步骤/点的一部分也可以被省略或由对应的步骤/点或步骤/点的一部分代替。

装置200可以被实现为电子数字计算机,其可以包括工作存储器(ram)、中央处理单元(cpu)和系统时钟。cpu可以包括一组寄存器、算术逻辑单元和控制单元。控制单元由从ram传输到cpu的程序指令序列控制。控制单元可以包含多个用于基本操作的微指令。微指令的实现可以取决于cpu设计而有所不同。程序指令可以由编程语言编码,编程语言可以是高级编程语言,诸如c、java等,或低级编程语言,诸如机器语言或汇编程序。电子数字计算机还可以具有操作系统,该操作系统可以向用程序指令编写的计算机程序提供系统服务。存储器可以是易失性或非易失性存储器,例如eeprom、rom、prom、ram、dram、sram、固件、可编程逻辑等。

实施例提供了一种在包括程序指令的分布介质上实施的计算机程序,当该程序指令被加载到电子装置中时,构成提供用于帧的冗余通信的一个、两个或更多个端口的接口202。

实施例提供了一种记录介质210,其存储用于检测在将节点连接到通信网络的冗余端口处接收到的重复帧的数据结构,由此通过包括与源相关联的序列号来识别帧,所述数据结构包括源地址和存储器指针,其中源地址与从冗余端口处的源地址接收到的帧的最新序列号相关联地存储,并且存储器指针指向通过对应的序列号从源的帧窗口内为每个帧确定的接收信息,所述窗口包括最新序列号前面的并与冗余端口处的对应帧的接收信息相关联的序列号。根据实施例的装置、计算机程序和/或计算机程序产品可以对从数据结构读取的信息进行操作和/或更新数据结构。

计算机程序可以是源代码形式、目标代码形式或某种中间形式,并且它可以被存储在某种载体中,该载体可以是能够携带程序的任何实体或设备。例如,这样的载体包括非瞬态计算机可读存储介质、记录介质、计算机存储器、只读存储器、电载波信号、电信信号和软件分发包。取决于所需的处理能力,计算机程序可以在单个电子数字计算机中执行,或者它可以分布在多个计算机当中。

装置200也可以被实现为一个或多个集成电路,诸如专用集成电路asic、软件例程和/或可编程电路。其它硬件实施例也是可行的,诸如由单独的逻辑组件构成的电路。这些不同实现的混合也是可行的。当选择实现的方法时,本领域技术人员将考虑例如为装置200的尺寸和功耗、必要的处理能力、生产成本和生产量设定的要求。

本发明适用于网络节点和对应的组件和/或适用于支持通信中的冗余的任何通信系统或不同通信系统的任何组合。通信系统可以是固定通信系统或无线通信系统或利用固定网络和无线网络两者的通信系统。使用的协议、通信系统的规范发展迅速。这种发展可能需要对实施例进行额外的改变。因此,所有词语和表达应该被广义地解释,并且它们旨在说明而不是限制实施例。

装置(诸如网络节点或对应的网络节点组件和/或实现与实施例一起描述的对应装置的功能的其它对应设备或装置)不仅包括现有技术部件,还包括用于:从由接收器单元接收到的帧导出帧的传送器节点的通信层地址和能够识别接收到的帧所属的帧序列中的连续帧的一部分的信息;基于导出的通信层地址和能够识别帧序列中的连续帧的一部分的信息,生成用于访问多组数据结构中的一组数据结构的至少一个地址;基于导出的通信层地址,在可由所生成的用于访问所述多组数据结构中的一组数据结构的地址访问的所述一组数据结构中,确定用于存储来自传送器节点的帧的接收信息的可用数据结构;从接收到的帧导出能够在帧序列中的连续帧的所述部分内识别接收到的帧的信息;基于导出的能够在帧序列中的连续帧的所述部分内识别接收到的帧的信息,读取数据结构中的接收到的帧的接收信息;以及基于所读取的接收信息确定接收到的帧是否是重复帧的部件。

更确切地,各种部件包括用于实现与实施例一起描述的对应装置的功能的部件,并且它可以包括用于每个单独功能的单独部件,或者部件可以被配置为执行两个或更多个功能。本装置包括可在实施例中使用的处理器和存储器。例如,dan220可以是软件应用、或模块、或被配置为算术运算的单元、或作为由操作处理器执行的程序(包括添加或更新的软件例程)。也被称为程序产品、包括软件例程、小应用和宏的程序可以存储在任何装置可读的数据存储介质中,并且它们包括执行特定任务的程序指令。实现实施例的功能所需的所有修改和配置可以作为例程来执行,例程可以被实现为添加或更新的软件例程、专用集成电路(asic)和/或可编程电路。另外,可以将软件例程下载到装置中。

诸如网络节点或对应的网络节点组件之类的装置可以被配置为计算机或微处理器,诸如单片计算机元件,包括至少用于提供用于算术运算的存储区域的存储器和用于执行算术运算的操作处理器。操作处理器的示例包括中央处理单元。存储器可以是可拆卸地连接到装置的可移动存储器。

例如,根据实施例的装置可以用硬件(一个或多个装置)、固件(一个或多个装置)、软件(一个或多个模块)或其组合来实现。对于固件或软件,实现可以通过执行本文描述的功能的模块(例如,过程、函数等)来实现。软件代码可以存储在任何合适的(一个或多个)处理器/计算机可读数据存储介质或(一个或多个)存储器单元或(一个或多个)制造品中,并由一个或多个处理器/计算机执行。数据存储介质或存储器单元可以在处理器/计算机内或处理器/计算机外部实现,在后者的情况下,它可以经由本领域已知的各种部件通信地耦合到处理器/计算机。

对于本领域技术人员将显而易见的是,随着技术的进步,本发明构思可以以各种方式实现。本发明及其实施例不限于上述示例,而是可以在权利要求的范围内变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1