链形和环形网络中用于透明自动恢复的方法和装置的利记博彩app

文档序号:7942767阅读:265来源:国知局
专利名称:链形和环形网络中用于透明自动恢复的方法和装置的利记博彩app
技术领域
本发明一般涉及链形和环形网络中用于链路故障的透明自动恢复的方法。更具体 地,本发明涉及在故障情形期间数据业务的自动重新路由。
背景技术
个人、企业和政府日益依赖计算机系统和网络计算操作来进行关键的服务和商务 活动。在这样的系统中,网络正常运行时间(uptime)对于基本的服务或操作的平稳运转可 能是非常关键的,并且网络故障必须被迅速隔离或恢复。因而,在网络故障条件下的故障隔 离和自动恢复是较高带宽的网络和关键任务的网络的至关重要的要求。此外,在典型的网 络故障和恢复情形下,甚至几百毫秒量级的延迟也可能是非常严重的。在网络故障情形期间可能遇到的另一个问题是不能访问处于故障位置的物理链 路或设备。例如,在制造或其它自动化系统中,结构可能是分散或分布式的,同时其性能则 比得上集中式系统。例如,ADVANTYS STB分布式I/O系统是开放的模块化输入输出系统, 其使得可以设计经由总线或通信网络由主控制器管理的自动化的岛。ADVANTYS STB分布 式 I/O 系统是 Schneider Automation Inc.公司 (One High Street,North Andover, Massachusetts)的产品。往往,岛和关联的I/O模块可以广泛地分散并且可以位于隔离位置中,或者目标 系统可以被封装到其它机器中。在这些类型的网络操作中,在故障情况期间获得对于远程 I/O模块或网络链路的物理访问可能非常困难。此外,在诸如工业自动化系统的网络中,可 靠性是至关重要的。例如在工厂中,如果网络连接断开,则操作员可能受到身体伤害。在这 些类型的网络操作中,故障恢复必须是自动的。在典型的故障恢复情形中,当故障发生时,将数据业务从当前有故障的路径重新 路由或切换到备用路径。依赖于实际的冗余策略,应急或备用数据路径可以是专用的,可 以需要连接的物理变化,或者可以是到活动的或主路径的虚拟的备用路径。用于在网络 中提供冗余的当前的软件方法要求网络上的设备分析或探索整个网络以确定备用路径。 快速生成树协议(RSTP)和Hirschmann HIPER-Ring 是两种这样的方法。在RSTP和 Hirschmanr^HIPER-Ring 二者中,在可以实现重新路由之前必须探索整个网络,增加了用 于故障恢复的的时间和计算资源的使用。此外,在RSTP和hirSChmannTMHIPER-RingTM 二者 中,实现故障恢复的网络设备必须与网络上的其它网络设备通信。因而,需要一种即时的、由网络设备自动实施的、且对网络上的其它节点透明的故 障恢复的方法。

发明内容
本发明的方面提供一种在基于环形拓扑的网络中的自动的故障恢复的高效且快 速的方法。在网络中的链路发生故障时,将数据业务自动重新路由而不需要系统或网络重 新配置。此外,在环上的每个节点处执行自动恢复操作而不需要节点之间的消息交换以及与远程客户端通信。根据本发明的实施例,从远程主机向环形网络上的节点发送的每个数据分组被从 边缘交换机上的两个端口同时组播到该环形网络。因而,在正常操作条件下,接收节点接 收环形网络上来自两个相反方向的该数据分组的两个副本。根据本发明的各方面,数据分 组的第一副本由该节点处理,而数据分组的第二副本被丢弃。但是,在链路或设备故障条件 下,正常数据流可能被破坏。在故障条件下,本发明假定数据分组的至少一个副本将被接收 节点接收到。此外,根据本发明的各方面,在每个本地节点上迅速处理故障条件下的自动恢复 动作,因而可以优化总的处理时间。因此,所有的自动恢复相关操作对远程主机是透明的。


本发明在附图中以示例的方式示出,并且不受附图限制,其中图1描述可以在其上执行本发明的实施例的示范性环形网络。图2描述适合用于实现这里描述的自动恢复技术的示范性网络节点。图3A是描述根据本发明的数据流和自动恢复技术的一个实施例的流程图。图3B是描述根据本发明的数据流和自动恢复技术的另一个实施例的流程图。图4A和4B描述根据本发明的实施例的两个示范性环形网络上的数据流。图5A描述根据本发明的实施例的示范性环形网络上的示范性故障位置。图5B至5G描述根据本发明的实施例的示范性环形网络上在故障条件期间的数据 流。
具体实施例方式本发明的各方面提供用于在雏菊链环路或其它环形联网系统上使用的自动恢复 机制。图1描述可以在其上执行本发明的实施例的示范性环形网络103。该示范性网络包 括具有冗余链路102和104的边缘交换机100、以及示范性网络节点110、120、130、140和 150。可以使用诸如以太网的各种数据链路层协议来实现网络103。每个网络节点包含两个 端口 A和B,并且端口 A和B均可以用于进入(ingress)和出外(egress)业务(traffic)。 因而,图1中描述的示范性网络已经提供了设备级(facility level)冗余,因为环路或环 103上存在两个冗余数据路径(151和111)。除了所述冗余数据路径之外,可以为边缘交换 机100提供两个冗余数据链路102和104,在这两个冗余数据链路上,可以从冗余数据路径 151和111上的端口 107和108将业务组播出去。网络提供领域的技术人员将理解且能提 供这些类型的设备冗余。根据图1,节点110充当到沿路径111的网络环路103的入口端口,并且还作为用 于沿路径151的环路103的出口端口。对称地,节点150充当用于沿路径151的网络环路 103的入口端口,并且还作为用于沿路径111的环路103的出口端口。此外,节点110和150 均直接连接到建立闭合环路的边缘交换机100。环路103中间的节点120、130和140均连 接到两个相邻节点。以太网边缘交换机100充当到外部网络101 (由链路102和104服务) 的入口点(进入)和出口点(出外)二者。根据本发明的另一个实施例,可以禁用边缘交换机节点100上的一个端口(图1的105或106)。在这样的情形下,可以将从链路(102或104)接收到的数据组播到端口 107 和108。下面将参照图4B进一步讨论此情形。可以使用诸如以太网交换机的通用交换机设备来支持这里描述的本发明的实施 例。该交换机可以提供从四个端口中的任何一个到另一个其它端口的非阻塞分组转发。此 夕卜,边缘交换机应当能够支持从任何端口到任何端口的分组广播和分组组播二者,如这里 所述。
可以利用诸如图2所示的网络节点200的各种传统联网计算机系统来实现本发明 的各方面。节点200包括用于接收进入数据业务和发送出外数据业务的网络接口端口 202 和204、中央处理器206、系统存储器208、以及耦接包括端口 202和204、中央处理器206和 系统存储器208的各种系统组件的系统总线210。系统总线210可以是几种类型的总线结 构中的任何一种,包括存储器总线或存储控制器、外围总线、和使用各种总线结构中的任何 一种的本地总线。系统存储器208的结构对本领域技术人员来说是公知的,并且可以包括 存储在只读存储器(ROM)中的基本输入/输出系统(BIOS)和存储在随机存取存储器(RAM) 中的一个或多个程序模块(诸如,操作系统、应用程序和程序数据)。接口 202和204可以 是本领域技术人员公知的任何类型的网络接口。此外,计算机200可以包括用于与其它类 型的计算机可读介质接口连接的驱动器。节点200的操作可以由各种不同的程序模块控制。程序模块的示例是执行特定任 务或实现特定抽象数据类型的例程、程序、对象、组分(component)、数据结构等。本发明也 可以在分布式计算环境中实践,其中由通过诸如图1的示范性网络的通信网络链接的远程 处理设备执行任务。在分布式计算环境中,程序模块既可以位于本地存储器存储设备中也 可以位于远程存储器存储设备中。图3A和3B是描述根据本发明的自动恢复技术的数据流和算法的实施例的流程 图。图3A描述处理单播、广播和组播数据业务的网络中的一般(generic)数据流和算法。 图3B描述仅涉及接收和处理单播数据业务的网络中的特定的数据流。下面将参照图4A-4B 和图5A-5G讨论图3A和3B。图4A和4B描述根据本发明的实施例的两个示范性环形网络上的数据流。图4A 的网络中,以太网边缘交换机400配置有四个端口(405、406、407和408),而图4B描述其 中以太网边缘交换机400配置有三个端口(405、407和408)的网络。图4A的网络包括进 一步的冗余,其中端口 405和406支持到外部网络401的冗余链路402和404。相反,图4B 的网络仅仅支持在端口 405上到外部网络401的一个链路402。图4A中,两个端口 405和406被配置在边缘交换机400上,并且专用于通过冗余 链路402和404到外部网络401的连接。端口 407和408可以专用于边缘交换机与两个头 节点410和450之间的连接。在进入方向上,交换机400可以提供从端口 405到端口 407 和从端口 406到端口 408的内部分组转发。业务流460和480描述进入业务。在出外方向 上,边缘交换机可以组播从端口 407到端口 405和406的出外业务470。对称地,可以将到 达端口 408上的出外业务组播到端口 405和端口 406 二者。图4A中可见,可以在其端口 405和其端口 406上接收从远程主机到内部环路网络 403上的节点的任何分组。如果仅配置了一个链路,如图4B中所见的端口 405或端口 406, 倘若该一个链路有故障,则该分组将不会被保护。但是,如果配置了两个链路,则该分组将被保护,并且可以从一个链路上的故障中幸存。
图4B中,仅仅一个端口 405被配置在边缘交换机400上并且专用于通过链路402 到外部网络401的连接。在进入方向上,交换机400可以提供从端口 405到端口 407和408 的内部分组转发/组播。业务流482和486描述进入业务。在出外方向上,边缘交换机400 可以将出外业务484从端口 407转发到端口 405。根据这里描述的本发明的实施例,不管是提供一个(图4A)还是两个(图4B)外 部链接,边缘交换机400的端口 407和408都必须被使能。如果提供两个外部链接,则两个 进入端口 405和406将都被使能。如果仅仅提供一个链路,则仅仅连接到该链路的端口将 被使能。如果两个端口均被使能,则在端口 405上接收的任何分组将被转发到端口 407 (点 到点);在端口 406上接收的任何分组将被转发到端口 408 (点到点)。如果仅仅一个端口 被使能,则在该端口上接收的任何分组将被组播到两个端口 407和端口 408。这些控制逻辑 可以在边缘交换机400的系统配置中预定义和实施、或者可以在边缘交换机的正常的工作 模式中动态地定义。此外,该链路上的每个节点410、420、430、440和450包含至少两个全双工端口 A 和B。一个端口用于将每个节点连接到其上游节点或边缘交换机400,而另一个端口用于将 每个节点连接到其下游节点或边缘交换机400。在如图4A和4B所示的环路网络403之内, 节点410的端口 A可以具有与边缘交换机400的端口 407的直接连接,并且节点410的端 口 B可以直接连接到其沿着路径411的下游节点420的端口 A。此链路连接一直继续到节 点450,其中节点450的端口 B可以直接连接到边缘交换机400上的端口 408,以闭合该连 接环路。反方向对于路径451也一样。因此,如图4A和4B所示,在网络环路403中提供两组冗余。首先,可以由远程主 机经由外部网络401提供一对冗余链路402和404以经由边缘交换机400连接到环路403。 此冗余可以用于在链路402或404中断时自动恢复,下面将进一步描述。如上所述,在描述 的一个实施例中支持此冗余。此外,可以在由节点410、420、430、440和450创建的网络环 路403之内提供两个冗余的全双工数据路径451和411。此冗余可以用于在网络环路403 内发生故障时的自动恢复,下面将进一步描述。图4A进一步描述在具有4端口配置的边缘交换机400的正常操作条件下的数据 流。在端口 405上接收的业务可以被转发到端口 407,并且进一步被传送到环路403的路径 411上,其中业务460进入网络节点的环路403。类似地,在端口 406上接收的业务可以被 转发到端口 408,然后相同的业务480被传送到环路403上的451上。在图4A中,数据分组 被传送到节点420,其中数据分组的目标地址是节点420的网络地址。例如,数据分组的目 标地址可以是节点420的IP地址。每个节点进一步包含分组处理例程422和分组静噪例 程424。图4B类似地描述在具有3端口配置的边缘交换机的正常操作条件下的数据流。参考图4A,而且在正常操作条件下,在网络环路403上流动的每个数据分组沿着 两个单独的路径451和411移动。因而,环路403上的每个节点接收同一数据分组的两个副 本。根据本发明的各方面,分组的第一副本将由例程422处理,并且第二副本将被例程424 丢弃(参见图3A和3B)。根据图4A的实施例,在边缘交换机400上,在出外方向上在端口 407或408上接收的数据分组(业务流470)将被组播到两个端口 405和406。从远程主机向内部环路网络403上的节点发送的任何分组经由边缘交换机400进入环路网络403,并且可以被从端口 407或端口 408传送。如果该分组沿着路径411被节点410、420、430、440或450中的任何一个接收,则接收端口将是它的端口 A。如果该分组沿着 451被接收,则接收端口将是它的端口 B。参考图4A和4B 二者,可以在端口 407或408而不是其二者上接收从内部网络环 路403上的节点向外部网络401上的远程主机发送的任何响应消息分组。如果仅仅配置一 个外部链路(参考图4B),则该分组将被转发到配置的外部链路405或406,其中响应消息 将经由外部网络401被传送到远程主机。如果配置两个链路,则该分组将被组播到两个端 口 405和406,其中该分组将经由外部网络401在两个外部链路上被传送到远程主机。可以经由边缘交换机400发送从内部环路网络403上的节点向远程主机发送的任 何响应分组。从该内部节点(图4A中的节点420),可以创建分组并在它的端口 A或端口 B 而不是两个端口上将分组发送出去。如果在端口 A上发送响应分组,则将通过路径451将 该分组发送给边缘交换机400上的端口 407。如果在端口 B上发送该分组,则将通过路径 411将该分组发送给边缘交换机400上的端口 408。诱明自动恢复方法和算法回来参考图3A中描述的实施例,当节点在步骤302接收数据分组时,该节点开始 处理该分组(步骤304-314和步骤328)。在该分组被处理之后,如果从来没有在该节点上 接收过该分组,则该节点或者在步骤332和334通过沿着相同的路径但是在相反方向上发 送响应或应答分组来决定处理该分组,或者在步骤318中将该分组转发到它的下游节点。 或者,如果先前已经接收过相同的分组,则该节点将在步骤328和步骤330丢弃该分组。回 来参考图3B中描述的实施例,当节点在步骤340接收到不是寻址到该节点的数据分组时, 该节点沿着相同的路径将相同的分组转发到它的下游节点(步骤344)而不进一步处理该 数据分组。当节点在步骤340接收到寻址到该节点(例如,图4A和4B中的节点420)的数 据分组时,该节点处理该分组(步骤354-370)。在该分组被处理之后,该节点在步骤374沿 着相同的路径但是在相反方向上发送响应或应答分组。下面将进一步描述图3A和3B所示 的两个实施例。根据图3A的实施例,在步骤300,节点等待分组。在步骤302,节点(例如,图4A 中的节点420)在它的端口之一(例如,图4A中的节点420的端口 A)接收分组。对于在节 点的端口 A或端口 B上接收的每个有效分组,该节点可以在步骤304在本地将该分组的事 务信息和接收该分组的时间的时间戳保存在用于该端口的数据结构中。此信息可以接着在 步骤308-312中使用。本领域技术人员可以确定用于本发明的实施例的合适的数据结构。 合适的数据结构可以具有以下特性新条目能够被容易地插入到该结构中;遍历该结构中 的条目的整个列表、或第一和最后一个条目是容易且快速的;当该列表充满时,该结构的最 后一个条目可以被删除,以便为要被插入到该列表中的新条目腾出空间;该结构将具有固 定数目的条目。此外,根据本发明的各方面的数据结构队列应当具有足够的空间以容纳在与分组 从入口点到出口点穿过整个环路网络所用的时间(参见处理步骤308-312期间)对应的时 间窗口中的所有接收的且有效的分组。此窗口包括分组花在环路上的节点之间的每个链路 上的时间加上在每个节点内部将该分组从端口 A转发到端口 B的内部节点时间。因此,实 际需要的队列尺寸实际上取决于环路的尺寸。
因而,在图3A的步骤304,节点检索寻址到该节点的接收的分组的事务信息和时 间戳。该事务信息可以是包括在该分组的首标或有效载荷中的、用于标识该分组的任何形 式的信息或标识符。在步骤306,确定在该节点的哪个端口上接收到该分组。如果在该节点 的端口 A上接收到该分组,则该节点检索在端口 B上接收的最新的分组的时间戳,并从正被 处理的当前分组的时间戳减去此时间戳以得出delta时间(步骤308)。如果在该节点的 端口 B上接收到该分组,则该节点检索在端口 A上接收的最新的分组的时间戳,并从正被处 理的当前分组的时间戳减去此时间戳以得出delta时间(步骤310)。接着,在步骤312,该 节点将该delta时间与给定系统的往返时间(round trip time)相比较。对于任何给定系 统,往返时间是分组游历环路(例如从节点400上的端口 405 (参考图4A)到节点410,然 后到节点420,一直到节点400的端口 406)所花的最长的时间。如果由节点计算的delta 时间大于或等于环路网络的往返时间,则该节点不需要遍历对等端口的数据结构以查找匹 配,因为该节点不会已经接收到该分组。更准确地说,该节点接收到的将会是该分组的第一 副本,该节点将处理该分组而不是丢弃。因而,在步骤314,该节点简单地确定分组是否是 寻址到该节点的。例如,如果节点420确定该分组是寻址到节点420的,则在步骤332,该 节点接着处理该分组的有效载荷,并构造响应分组以发送给远程主机。在步骤334,该节点 发送该响应分组。如果在步骤314该节点确定该分组不是寻址到该节点的,则该节点确定 它的对等端口的发送器是否可供使用(步骤316),并且如果是的话,则在此端口(在该示 例中,为图4A中的节点420的端口 B)上将该分组转发出去,其中将沿着相 同的路径(即, 图4A中的路径411)在相同的方向上将该分组传送到它的下游节点(图4A中的节点430)。 反之,如果在端口 B上接收分组,则将该分组转发到端口 A,其中将沿着相同的路径(即,路 径451)在相同的方向上将该分组传送到它的下游节点。如果在步骤316转发发送器(在 对等端口上)不可操作,则该节点首先在步骤320确定该分组是否是响应分组。如果该分 组是响应分组,则在步骤322丢弃该分组。如果该分组不是响应分组,则在步骤324将使用 相同端口上的发送器但是在与它被接收的方向相反的方向上转发该分组。因而,该分组将 被传送到它的上游节点410 (参考图4A或图4B)。返回到步骤312,如果该节点确定由该节点计算的delta时间不大于或等于该环 路的往返时间,则在步骤326,该节点遍历对等端口的数据结构(即,用于接收的分组的事 务信息和时间戳),以在步骤328确定是否已经在对等端口上接收到该分组,即,是否发现 匹配。如果发现了匹配,则该节点在步骤330丢弃该分组。如果没有发现匹配,则该节点继 续到步骤314以确定该分组是否是寻址到该节点的,如上所述。如上所述,图3B是根据本发明的第二实施例的自动恢复技术的数据流和算法的 流程图,其中仅仅考虑单播业务。根据图3B的实施例,在步骤336,节点等待分组。在步骤338,节点(遵循上述示 例,图4A中的节点420)在它的端口之一(例如,端口 A)接收分组。在步骤340,该节点确 定该分组是否是寻址到它的。如果该分组不是寻址到该节点的,则该节点确定它的转发发 送器是否可供使用(步骤342),并且如果是的话,则在相反的端口(在该示例中,为端口 B) 上将该分组转发出去,其中将沿着相同的路径(如果接收端口是端口 A,则为路径411,如果 在端口 B上接收,则为路径451)在相同的方向上将该分组传送到它的下游节点(图4A中 的节点430)。如果在步骤342转发发送器不可操作,则该节点首先在步骤346确定该分组是否是响应分组。如果该分组是响应分组,则在步骤352丢弃该分组。如果该分组不是响 应分组,则该节点在步骤348确定对等路径发送器是否可供使用,并且如果是的话,将在步 骤350在对等路径发送器上转发该分组。仍然参考图3B,如果接收的分组是寻址到该节点的(例如,图4A中的节点420上 的端口 A),则该节点将处理该分组(步骤354-370)。如果在该节点的对等端口上尚未接收 到相同的分组,则在步骤372和374中,创建响应消息然后在它自己的发送器上发送该响应 消息,其中将沿着路径451传送该分组。如果不能经由同一端口上的发送器传送该响应分 组,则在步骤376和378,将该响应分组发送给它的对等端口上的发送器,其中将沿着路径 411传送该分组。如图3B所示,在步骤354记录在网络环路上的任一节点的两个端口(端口 A和端 口 B)的每一个上接收和接受的分组。对于在节点的端口 A或端口 B上接收的每个有效分 组,该节点可以在本地将该分组的事务信息和接收该分组的时间的时间戳保存在用于该端 口的数据结构中。此信息可以接着在步骤358-362中使用。如上所述,本领域技术人员可 以确定用于本发明的实施例的合适的数据结构。
在图3B的步骤354,节点检索寻址到该节点的接收的分组的事务信息和时间戳。 该事务信息可以是包括在该分组的首标或有效载荷中的、用于标识该分组的任何形式的信 息或标识符。在步骤358,如果在该节点的端口 B上接收到该分组,则该节点检索在端口 A上接收的最后一个分组的时间戳,并从正被处理的当前分组的时间戳减去此时间戳以得 出delta时间。如果在该节点的端口 A上接收到该分组,则该节点检索在端口 B上接收的 最后一个分组的时间戳,并从正被处理的当前分组的时间戳减去此时间戳以得出delta时 间(步骤360)。接着,该节点将该delta时间与给定系统的往返时间相比较。对于任何给 定系统,往返时间是分组游历该环路,例如从端口 405到端口 406,所花的最长的时间。在 步骤362,如果由节点计算的delta时间大于或等于环路网络的往返时间,则该节点不需要 遍历对等端口的数据结构,因为该分组不会有时间在相反方向上游历该环路以到达对等端 口。因而,将事务信息和时间戳保存在合适的端口的数据结构中,该节点处理该分组的有效 载荷,并且该节点构造响应分组并将其发送到远程主机(步骤370)。但是,如果由该节点计 算的delta时间不大于或等于环路网络的往返时间,则在步骤364,该节点遍历对等端口的 数据结构(即,用于接收的分组的事务信息和时间戳),以确定是否已经在对等端口上接收 到该分组。如果发现了匹配,则该节点在步骤368丢弃该分组。如果未发现匹配,则该节点 在步骤370处理该分组,如前所述。具有在故障条件下自动恢复的数据流图5A描述在这里描述的实施例中可能发生的故障条件,图5B-5G描述根据这里描 述的自动恢复技术的数据流。如图5A所示,故障条件560和562可能在外部网络501上的 链路故障条件期间发生。图5A中的故障条件564可能在边缘交换机500的端口 507与节 点510的端口 A之间的链路上的链路故障条件期间发生。图5A中的故障条件566可能在 边缘交换机500的端口 508与节点550的端口 B之间的链路上的链路故障条件期间发生。 图5A中的故障条件568可能在网络环路503中间节点520的端口 B与节点530的端口 A上 检测的链路故障缺陷条件期间发生。图5A中的故障条件570可能在节点530设备故障或 移除期间发生,并且将产生在网络环路503中间节点540的端口 A和节点520的端口 B上检测的链路故障缺陷条件。图5A中的故障条件572可能在边缘交换机500的故障期间发 生。在故障条件572期间,这里描述的自动恢复技术不会解析(resolve)外部网络链路与 网络环路503之间的数据流。利用上面在图3A和3B中 所述的数据流和算法技术,根据本发明的各方面,在如上 参考图5A所述的示范性故障条件560、562、564、566、568、570和572下,将确保某些数据流。边缘交换机500上的数据流控制和网络环路503的每个节点上的数据流控制非常 不同。对于边缘交换机中的数据流的控制可以被预定义,并且不需要动态控制逻辑或算法。 因此,可以在系统进入工作模式之前,在系统配置阶段执行(enforce)边缘交换机500中的 静态数据流控制。参考图5A,在环路网络503中边缘交换机500与两个头节点510和550的每一个 之间的故障条件将引起类似的自动恢复行为。边缘交换机与节点510之间的故障将中断环 路503内的整个路径511,同时端口 507将停止接收此路径上来自出外方向的响应消息分 组;交换机500与节点550之间的故障将中断环路503内的整个路径551,同时端口 508将 停止接收此路径上来自出外方向的响应消息分组。这些故障仅仅影响一个数据路径而不是 两个。环路网络503中间的任何单个故障条件(例如,568和570)将同时影响两个数据路 径(551和511)。但是,当故障条件568或570发生时,路径551和511将不会都被完全阻 断。而是,两个路径的仅仅一部分将受到影响。下面描述根据本发明的各方面的对于每个 描述的故障条件560、562、564、566、568、570、和572的数据流。图5B和5C描述在到外部网络501的端口 505或端口 506上的故障条件560和 562的自动恢复期间的示范性数据流。在到端口 505或端口 506的链路上(而不是两个链路上)的故障不会引起网络环 路503内的不同的数据流。而是,这些故障条件(560和562)将仅仅影响边缘交换机500 内的数据流。在图5B中,经由端口 505的数据路径被阻断,而经由端口 506的路径仍然可用。正 在从远程主机向节点520发送分组。根据本发明的实施例,同一接收的分组的两个副本将 被传送到节点520。如图5B所示,从路径511到达的分组将被处理,同时将创建相关的响应 消息分组并且将其沿着路径511但是在相反方向上发送回边缘交换机500上的端口 507。 在响应分组到达端口 507之后,边缘交换机500将该分组转发给端口 506,然后将该消息发 送出环路网络503到外部网络501或到远程主机。结果,节点520与远程主机之间的双工 通信信道可以幸免于故障560。由图3A和图3B描述的数据流控制和实施例确保此恢复。在图5C中,经由端口 506的数据路径被阻断,而经由端口 505的路径仍然可用。根 据在故障条件562下的本发明的实施例,同样假定从远程主机向节点520发送分组。对于 图5C描述的情形,在故障条件下的数据流与上面参照图5B描述的故障条件描述的数据流 相似。图5D描述在边缘交换机500与节点510之间的链路上的故障条件564的自动恢 复期间的示范性数据流。在图5D中,正在从远程主机向节点520发送分组。在故障564发 生之前,去往节点520的分组被从节点500上的两个端口 507和508发送,即,相同分组的 两个副本将到达节点520,而沿着路径511在端口 A上接收的分组将是要被处理的副本,并且响应消息分组将沿着相同的路径(数据路径511)但是在相反方向上被发送回去。这些 数据流已被示出在图4A和4B中。在故障564发生之后(参考图5D),只有沿着路径551的分组可以到达节点520, 而沿着路径511发送的第二副本则不能到达节点520。在节点520接收分组之后,其可以 处理它,然后将相关的响应分组沿着相同的路径(即,路径551)但是在相反方向上经由内 部节点540和节点550发送回边缘交换机500上的端口 508。在边缘交换机500上,当端 口 508接收响应分组时,该分组将被组播给两个端口 505和506,然后传送到网络501。由 图3A和图3B中描述的数据流控制和实施例确保此恢复。图5E描述在边缘交换机500与节点550之间的链路上的故障条件566的自动恢 复期间的示范性数据流。在图5E中,正在从远程主机向节点520发送分组。对于图5E中 描述的情形的并且根据这里描述的自动恢复技术的数据流与图5D中的故障条件564下的 数据流相似。图5F描述在环路网络503中间的故障条件568的自动恢复期间的示范性数据流。 在图5F中,正在从远程主机向节点520发送分组。在图5F描述的故障条件下,两个路径 511和551 均在节点520与节点530之间的点处断开。但是,路径511的从边缘交换机500 上的端口 507到节点520的部分、和路径551的从边缘交换机500上的端口 508到节点530 的部分仍然是连接的。因而,在图5F描述的故障条件下,远程主机仍然可以经由路径511 到达节点510和节点520,并且可以经由路径551到达节点530、节点540和节点550。在根 据本发明的实施例的故障条件568下,如果远程主机需要向节点520发送分组,则唯一可用 的数据路径将是路径511。然而,去往530的分组只能经由路径551传送。由图3A和图3B 中描述的数据流控制和实施例确保此恢复。图5G描述在环路网络503中间的节点(在此实施例中,为节点530)上的故障条 件570的自动恢复期间的示范性数据流。在图5G中,正在从远程主机向节点520发送分组。 在环路503上的节点遇到设备故障或者被移除时发生图5G所示的故障条件570。在故障条 件下,节点530上的两个端口不能用于向相邻节点(或者边缘交换机,如果有故障的节点刚 好是路径551或路径511上的头节点的话)通信。如图5G所示,远程主机将仅仅能够经由 路径511访问节点510和节点520,并且远程主机将仅仅能够经由路径551访问节点540和 节点550。在图5G的实施例中,无法经由任一路径访问节点530。与如上所述的其它故障 情形相似,远程主机和网络环路503上的目标节点520之间的通信信道幸免于此故障。此 夕卜,根据图5G的实施例,由节点520向远程主机发送的响应消息可以经由边缘交换机节点 500上的端口 507在两个链路502和504上传送到主机。由图3A和图3B中描述的数据流 控制和实施例确保此恢复。当在边缘交换机500上发生设备故障时、或者如果将边缘交换机500从网络上拔 掉(即,图5A中的故障条件572),则根据本发明的实施例,没有办法恢复远程主机与环路网 络503中的节点之间的通信。根据上面如图5A所示参照配置有4端口的边缘交换机500描述的本发明的实施 例,到外部网络501的两个链路在进入和出外两个方向传送相同的业务。此外,参照配置有 3端口或4端口的边缘交换机500,沿着网络环路503内的两个数据路径(路径511和551) 的业务是相同的。作为直接后果,根据本发明的各方面,在正常条件下相同数据分组的两个副本可以被传送到目标节点。在这里描述且根据本发明的各方面的故障条件下,由于冗余, 目标节点应当接收数据分组的至少一个副本。本领域 普通技术人员将理解,上述技术可以被实现在各种环形或环路网络系统上 并且利用各种传输介质来实现。基于线路、光纤电缆、无线或其它传输介质的网络可以应用 本发明。例如,本发明的另一个实施例包括在基于卫星的网络中实现上述自动恢复技术。在 这样的实施方式中,卫星网络中的节点可以从两个卫星站接收重复传输。根据本发明的各 方面,节点将处理重复传输,如上所述。还应当注意,虽然已经在这里描述了本发明的某些方面,但是本发明不局限于描 述的实施例。本领域技术人员在阅读或实践本发明时将认识到本发明包含的额外变化。所 附权利要求书说明本发明的范围。
权利要求
一种在网络节点中实现故障恢复的方法,其中该网络节点是环形拓扑网络中的节点,该方法包括步骤(a)在该网络节点的第一端口的进入路径上接收数据分组;(b)确定是否已经在该网络节点的第二端口的进入路径上接收到该分组的副本;(c)确定该分组是否是寻址到该网络节点;以及(d)处理该分组,其中处理该分组包括步骤(A)如果该分组不是寻址到该网络节点,则将该分组转发给相邻的网络节点;以及(B)如果该分组是寻址到该网络节点,则构造响应分组并且将该响应分组转发给相邻的网络节点。
2.如权利要求1所述的方法,其中该环形拓扑网络是工业自动化系统的一部分。
3.如权利要求2所述的方法,其中该网络节点是该工业自动化系统中的I/O模块。
4.如权利要求1所述的方法,其中步骤(d)(A)进一步包括经由该网络节点的第二端 口的出外端口将该分组转发给相邻的网络节点。
5.如权利要求1所述的方法,其中步骤(d)(B)进一步包括经由该网络节点的第一端 口的出外端口将该响应分组转发给相邻的网络节点。
6.如权利要求1所述的方法,其中步骤(b)包括(A)接收用于在该网络节点的第一端口上接收的分组的事务信息和时间戳;(B)将所述用于在该网络节点的第一端口上接收的分组的事务信息和时间戳与用于在 该网络节点的第二端口上接收的最近的分组的事务信息和时间戳相比较,以确定这些分组 是否匹配。
7.如权利要求6所述的方法,其中将所述用于在该网络节点的第一端口上接收的分组 的事务信息和时间戳存储在数据结构中。
8.如权利要求6所述的方法,其中将所述用于在该网络节点的第二端口上接收的最近 的分组的事务信息和时间戳存储在数据结构中。
9.如权利要求7所述的方法,其中该数据结构是FIFO队列。
10.如权利要求7所述的方法,其中该数据结构是链表。
11.一种分布式工业自动化系统中的I/O模块,其中该I/O模块是环形拓扑网络中的模 块,包括处理器;耦接到该处理器的存储器,其中该存储器包含用于执行以下步骤的计算机可执行指令(a)在该I/O模块的第一端口的进入路径上接收数据分组;(b)确定是否已经在该I/O模块的第二端口的进入路径上接收到该分组的副本;(c)确定该分组是否是寻址到该I/O模块;以及(d)处理该分组,其中处理该分组包括步骤(A)如果该分组不是寻址到该I/O模块,则将该分组转发给该环形拓扑网络上的相邻 的I/O模块;以及(B)如果该分组是寻址到该I/O模块,则构造响应分组并且将该响应分组转发给该环 形拓扑网络上的相邻的I/O模块。
12.如权利要求11所述的I/O模块,其中步骤(d)(A)进一步包括经由该I/O模块的 第二端口的出外端口将该分组转发给相邻的模块。
13.如权利要求11所述的I/O模块,其中步骤(d)(B)进一步包括经由该I/O模块的 第一端口的出外端口将该响应分组转发给相邻的模块。
14.如权利要求11所述的I/O模块,其中步骤(b)包括(A)接收用于在该I/O模块的第一端口上接收的分组的事务信息和时间戳;(B)将所述用于在该I/O模块的第一端口上接收的分组的事务信息和时间戳与用于在 该I/O模块的第二端口上接收的最近的分组的事务信息和时间戳相比较,以确定这些分组 是否匹配。
15.如权利要求14所述的I/O模块,其中将所述用于在该I/O模块的第一端口上接收 的分组的事务信息和时间戳存储在数据结构中。
16.如权利要求14所述的I/O模块,其中将所述用于在该I/O模块的第二端口上接收 的最近的分组的事务信息和时间戳存储在数据结构中。
17.如权利要求15所述的I/O模块,其中该数据结构是FIFO队列。
18.如权利要求15所述的I/O模块,其中该数据结构是链表。
19.一种有形的计算机可读介质,包含用于使得环形拓扑网络上的计算机设备执行以 下步骤的计算机可执行指令(a)在该计算机设备的第一端口的进入路径上接收数据分组;(b)确定是否已经在该计算机设备的第二端口的进入路径上接收到该分组的副本;(c)确定该分组是否是寻址到该计算机设备;以及(d)处理该分组,其中处理该分组包括步骤(A)如果该分组不是寻址到该计算机设备,则将该分组转发给相邻的计算机设备;以及(B)如果该分组是寻址到该计算机设备,则构造响应分组并且将该响应分组转发给相 邻的计算机设备。
20.如权利要求19所述的有形的计算机可读介质,其中该计算机设备是工业自动化系 统的一部分。
21.如权利要求19所述的有形的计算机可读介质,其中步骤(d)(A)进一步包括经由 该计算机设备的第二端口的出外端口将该分组转发给相邻的计算机设备。
22.如权利要求19所述的有形的计算机可读介质,其中步骤(d)(B)进一步包括经由 该计算机设备的第一端口的出外端口将该响应分组转发给相邻的计算机设备。
23.如权利要求19所述的有形的计算机可读介质,其中步骤(b)包括(A)接收用于在该计算机设备的第一端口上接收的分组的事务信息和时间戳;(B)将所述用于在该计算机设备的第一端口上接收的分组的事务信息和时间戳与用于 在该计算机设备的第二端口上接收的最近的分组的事务信息和时间戳相比较,以确定这些 分组是否匹配。
全文摘要
这里描述的本发明提供一种在链接的环路或环形联网系统(103)中用于故障隔离和自动恢复的系统和方法。根据所述方法和描述的相关路径选择算法的各方面,可以在环路上的每个节点上在本地处理故障隔离和自动恢复操作,并且可以最小化链路故障条件下的总的故障恢复时间。此外,该方法允许对网络的其它部分和远程主机透明的自动恢复操作。
文档编号H04L12/42GK101971575SQ200880127736
公开日2011年2月9日 申请日期2008年12月29日 优先权日2007年12月31日
发明者威廉·莱里特, 靳少征 申请人:施耐德电气美国股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1