Abstract:
A method for fault protection in a bidirectional ring network includes transmitting first and second flows of packets around the bidirectional ring network while defining the first flow as a wrapping flow and the second flow as a non-wrapping flow. Upon detection by a node in the network that a segment of the network proximal to the node has failed, the packets in the first flow are wrapped at the node between clockwise and counterclockwise directions on the network so as to avoid the failed segment, while the packets in the second flow are not wrapped.

Description:
CROSS-REFERENCE TO RELATED APPLICATION  
       [0001]    This application claims the benefit of U.S. Provisional Patent Application No. 60/281,232, filed Apr. 2, 2001, which is incorporated herein by reference. 
     
    
     
       FIELD OF THE INVENTION  
         [0002]    The present invention relates generally to network communication systems and protocols, and specifically to methods of fault protection in packet-switched networks.  
         BACKGROUND OF THE INVENTION  
         [0003]    Network ring topologies are gaining in popularity, particularly in Internet Protocol (IP) networks. Such networks enable carriers to offer large bandwidth to users in a cost-effective manner, since each node in the network needs only two interfaces, rather than having to maintain a separate interface for each of the other nodes as in a mesh network. Ring networks also lend themselves to fast rerouting in the event of network failures, since two alternative routes—in clockwise and counterclockwise directions—are generally available for connecting any two nodes on the ring.  
           [0004]    A drawback of traditional ring implementations, such as SONET/SDH, is that one of the directions is designated as the active ring, while the other direction remains on standby for fault protection when needed. In other words, at any given time, all of the nodes in the ring transmit and receive data only in the active direction. Therefore, ordinarily half of the available bandwidth in these rings is reserved for fault protection and is not exploited under normal operating conditions.  
           [0005]    Some recently-developed bidirectional protocols provide more efficient bandwidth utilization by enabling data to be transferred between any pair of nodes in either direction around the ring, while maintaining fast protection against faults. The two opposing traffic directions are commonly referred to as an inner ring and an outer ring. It will be understood, however, that in the context of the present patent application and in the claims, the terms “inner” and “outer,” as well as “clockwise” and “counterclockwise,” are used arbitrarily to distinguish between the two opposing directions of packet flow in a ring network. These terms are chosen solely for convenience of explanation, and do not necessarily bear any relation to the physical characteristics of the network.  
           [0006]    The leading bidirectional protocol for high-speed packet rings is the Resilient Packet Rings (RPR) protocol, which is in the process of being defined as IEEE standard 802.17. Network-layer routing over RPR is described, for example, by Jogalekar et al., in “IP over Resilient Packet Rings” (Internet Draft draft-jogalekar-iporpr-00), and by Herrera et al., in “A Framework for IP over Packet Transport Rings” (Internet Draft draft-ietf-ipoptr-framework-00). A proposed solution for Media Access Control (MAC—protocol layer 2) in bidirectional ring networks is the Spatial Reuse Protocol (SRP), which is described by Tsiang et al., in Request for Comments (RFC) 2892 of the Internet Engineering Task Force (IETF). These documents are incorporated herein by reference. They are available at www.ietf.org.  
           [0007]    Using protocols such as these, each node in a ring network can communicate directly with all other nodes through either the inner or the outer ring, using the appropriate Media Access Control (MAC) addresses of the nodes. Each packet sent over one of the rings carries a header indicating its destination node. The destination node recognizes its address in the header and strips the packet from the ring. All other nodes pass the packet onward transparently around the ring.  
           [0008]    When a failure occurs in a link on a bidirectional ring network, packets destined to traverse the failed link on one of the rings must be rapidly rerouted so as to reach their destination via the other ring. This rerouting is known in the art as “protection.” Two schemes are used for this purpose: wrapping and steering. Wrapping, which is the method used in SRP rings, is achieved by looping back the packet stream at the nodes that are adjacent to the failed link. Thus, packets reaching the failed link on the inner ring are looped back to travel to their destination via the outer ring, and vice versa. In this manner, protection is carried out simply by the nodes that are adjacent to the failed link. In steering-based protection, on the other hand, each of the nodes is informed of the failed link. Each node then steers all of its traffic accordingly onto the ring that reaches the desired destination without passing through the failed link.  
           [0009]    Wrapping is advantageous in terms of its speed and simplicity, since only the nodes that detect the failure need to carry out the protection function. It is not even necessary to inform the other nodes that a failure has occurred. A disadvantage of wrapping is that the protected packets must travel a much longer path to reach their destinations. The availability of network resources is also reduced, since protected packets travel through all of the segments of the network at least once, and often twice. Furthermore, when the failure is fixed and wrapping is terminated, some packets are likely to reach their destinations out of order, since they can now travel again over their original path, which is much shorter than the wrapped- path being used by earlier packets. As a result, wrapping is problematic as a protection mechanism for real-time traffic, such as voice or video, which is sensitive to jitter and packet misordering.  
           [0010]    Real-time traffic is therefore better handled by steering, despite the increased complexity of this method. Because steering requires that all nodes be informed and implement the failure protection, its initiation is inherently slower than wrapping. The nodes must be linked by a suitable protection protocol so that they can notify one another of failure conditions. A failure notification packet sent by a node under the protocol must then traverse the entire ring in order to update all of the other nodes. Packets that are transmitted between the time that the failure occurs and the initiation of steering are generally lost. In some data applications the loss of even one packet can lead to an entire frame or block of data being discarded. Therefore, packet losses due to protection should be held to a minimum.  
           [0011]    It is thus evident that while wrapping is generally the better protection scheme for block data applications, steering is superior for real-time traffic. Since modern packet networks typically carry both types of traffic, neither wrapping nor steering provides an optimal solution. In SRP, as described in the above-mentioned RFC 2892 (section 3.4), the two schemes are combined by first wrapping and then steering traffic following a failure. In this case, however, the real-time traffic is disrupted twice: first when the failure occurs and wrapping begins, and subsequently when steering takes over, since the steered path is shorter than the wrapped path. Thus, there is still a need for a protection solution that meets the needs of both block data and real-time traffic.  
         SUMMARY OF THE INVENTION  
         [0012]    It is an object of the present invention to provide improved methods of protection, as well as devices implementing such methods, for use in ring networks.  
           [0013]    It is a further object of some aspects of the present invention to provide methods of protection that can be optimized for different types of traffic simultaneously.  
           [0014]    In preferred embodiments of the present invention, a bidirectional ring network is arranged so that upon occurrence of a failure in one of the network links, certain classes of packets are wrapped, while others are not. Preferably, data services that are not sensitive to delays and can handle packet misordering are wrapped, so as to minimize the number of packets lost due to the failure, while real-time services, which are sensitive to jitter and misordering, are not wrapped. Most preferably, steering is applied to the real-time services, while the delay-insensitive data services are wrapped. Alternatively, after the initial wrapping period, during which steering is established, the data services may be steered as well. Further alternatively, certain services may be wrapped and, optionally, steered thereafter, while other services are simply discarded, so as to ensure that there is sufficient bandwidth available on the network for protected, high-priority traffic under fault conditions.  
           [0015]    In some preferred embodiments of the present invention, this selective wrapping is implemented by adding a flag to each packet, indicating whether or not the packet is to be wrapped. After a node has detected a failure in an adjacent link, it checks the flag in each packet that it receives in order to decide whether to wrap, to pass or to discard the packet. Whether a given class of packets should have the wrap flag set or reset is typically determined by the sending node depending on the type of service involved (for example, data or real-time). Alternatively or additionally, the flag setting may depend on the identity of the user sending the packet or on other factors set by a system operator. Further alternatively, in other embodiments the wrapping flag is not used, and instead, nodes decide which packets to wrap based on other information carried by the packets, such as the source or destination address or protocol type.  
           [0016]    Thus, preferred embodiments of the present invention provide a simple, flexible solution to the problem of protection in mixed-traffic ring networks. As noted above, neither wrapping nor steering, nor wrapping followed by steering as provided by SRP, gives an optimal solution for all types of traffic in such networks.  
           [0017]    There is therefore provided, in accordance with a preferred embodiment of the present invention, a method for fault protection in a bidirectional ring network, in which packet traffic is transmitted simultaneously in both clockwise and counterclockwise directions around the network, the method including:  
           [0018]    transmitting first and second flows of packets around the bidirectional ring network while defining the first flow as a wrapping flow and the second flow as a non-wrapping flow; and  
           [0019]    upon detection by a node in the network that a segment of the network proximal to the node has failed, wrapping the packets in the first flow at the node between the clockwise and counterclockwise directions so as to avoid the failed segment, while the packets in the second flow are not wrapped.  
           [0020]    The packets in the second flow that reach the node may be passed or discarded.  
           [0021]    Additionally or alternatively, the method includes steering the packets in the second flow in one of the clockwise and counterclockwise directions so as to reach a destination of the second flow while avoiding the failed segment. Preferably, steering the packets in the second flow includes sending a failure indication message from the node detecting the failed segments to a source node of the second flow, and initiating the steering of the packets in the second flow responsive to the message. Most preferably, the method includes, when the steering of the packets in the second flow is initiated, steering the packets in the first flow, as well, and discontinuing the wrapping of the packets.  
           [0022]    Further additionally or alternatively, the method includes sending a failure indication message from the node detecting the failed segments to other nodes in the network and, after the other nodes have received the message, steering the packets in the first flow in one of the clockwise and counterclockwise directions so as to reach a destination of the first flow while avoiding the failed segment, and discontinuing the wrapping of the packets. Typically, the packets in the second flow are discarded as long as the failure continues.  
           [0023]    Preferably, transmitting the first and second flows includes setting a wrapping flag in the packets in the first flow, while resetting the wrapping flag in the packets in the second flow, and wrapping the packets includes determining the packets to be wrapped responsive to the wrapping flag.  
           [0024]    In a preferred embodiment, transmitting the second flow includes providing a real-time service, while transmitting the first flow includes providing a data transmission service that is substantially more tolerant of delay variations and misordering in delivery of the packets than is the real-time service. Typically, the real-time service includes- at least one of a packetized voice service and a packetized video service.  
           [0025]    There is also provided, in accordance with a preferred embodiment of the present invention, communication apparatus, including:  
           [0026]    a communication medium; and  
           [0027]    a plurality of communication nodes, mutually coupled by the communication medium so as to form a ring network, over which the nodes are configured to transmit traffic to the other nodes in both clockwise and counterclockwise directions, the traffic including a first flow of packets defined as a wrapping flow and a second flow of the packets defined as a non-wrapping flow,  
           [0028]    the nodes being adapted so that upon detection by a given node among the nodes in the network that a segment of the network proximal to the given node has failed, the packets in the first flow are wrapped at the given node between the clockwise and counterclockwise directions so as to avoid the failed segment, while the packets in the second flow are not wrapped.  
           [0029]    There is additionally provided, in accordance with a preferred embodiment of the present invention, a communication device, for operation as a node in a ring network over which traffic is transmitted in both clockwise and counterclockwise directions, the device including:  
           [0030]    a traffic processing block, adapted to prepare outgoing data packets for transmission over the ring network, such that the packets belong either to a first flow of the packets defined as a wrapping flow or to a second flow of the packets defined as a non-wrapping flow; and  
           [0031]    a media access control (MAC) block, interfacing to the traffic processing block and adapted to be coupled to the network so as to transmit the outgoing data packets and to receive incoming packets over the ring network in both of the clockwise and counterclockwise directions, and further adapted to detect a failure of a segment of the network proximal to the device, and responsive to the failure, to wrap the packets belonging to the first flow between the clockwise and counterclockwise directions so as to avoid the failed segment, without wrapping the packets in the second flow. 
       
    
    
       [0032]    The present invention will be more fully understood from the following detailed description of the preferred embodiments thereof, taken together with the drawings in which:  
       BRIEF DESCRIPTION OF THE DRAWINGS  
       [0033]    [0033]FIG. 1 is a block diagram that schematically illustrates a bidirectional ring network, in accordance with a preferred embodiment of the present invention;  
         [0034]    [0034]FIG. 2 is a block diagram that schematically shows details of a node in the network of FIG. 1, in accordance with a preferred embodiment of the present invention;  
         [0035]    [0035]FIGS. 3A and 3B are block diagrams that schematically illustrate protection mechanisms implemented in the network of FIG. 1 in response to a link failure, in accordance with a preferred embodiment of the present invention; and  
         [0036]    [0036]FIGS. 4 and 5 are flow charts that schematically illustrate methods for failure protection in a ring network, in accordance with a preferred embodiment of the present invention.  
     
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS  
       [0037]    [0037]FIG. 1 is a block diagram that schematically shows a packet ring network  20 , in accordance with a preferred embodiment of the present invention. Network  20  comprises nodes  22 , marked N 1  through N 6 , which are mutually connected by bidirectional communication media, such as optical fibers or conductive wires. The nodes typically comprise switching equipment, and serve as either access points or gateways to other networks (aggregation points). The communication media in network  22  are configured to define an outer ring  24 , over which packets are conveyed between the nodes in a clockwise direction, and an inner ring  26 , over which the packets are conveyed in a counterclockwise direction. As noted above, however, the designations of “inner,” “outer,” “clockwise” and “counterclockwise” are arbitrary and are used here simply for convenience and clarity of explanation. Furthermore, the designation and number of nodes in network  20  are chosen here by way of example, and the network may, by the same token, comprise a greater or smaller number of nodes.  
         [0038]    [0038]FIG. 2 is a block diagram that schematically shows details of one of nodes  22  in network  20 , in accordance with a preferred embodiment of the present invention. Node  22  comprises a media access control (MAC) block  33 , connected to transmit and receive data over both of rings  24  and  26 . Block  33  is responsible for ring management and performs the MAC-layer functions of capturing packets that are addressed to node  22  on either ring, while passing all other traffic through to the next node along the ring. Preferably, block  33  operates in accordance with the RPR protocol described in the Background of the Invention, or with another, similar bidirectional protocol. The basic ring protocol is extended by a protection protocol that provides for selective wrapping, in accordance with a preferred embodiment of the present invention, as described in detail hereinbelow.  
         [0039]    When MAC block  33  captures a packet addressed to its own node  22 , it delivers the packet to a traffic processing block  34  of the node. Block  34  is responsible for network-layer functions, such as IP processing, and optionally other higher-level functions, such as Quality of Service (QoS) and network security. In a node that serves as an access point, for example, block  34  is typically responsible for delivery of packets to users who are connected to network  20  through the node and for receiving packets from the users for transmission over network  20 .  
         [0040]    In accordance with the protection protocol applied in network  20 , packets traveling over the network contain a wrapping flag, preferably in the form of a single bit at a specified location at or near the beginning of each packet. Traffic processing block  34  preferably sets or resets the wrapping flag in each packet that it transmits into the network. Typically, the setting of the wrapping flag depends on the type of service to which the packet belongs. Additionally or alternatively, the flag setting may depend on the identity of a user sending the packets (and particularly on the QoS level for which the user has contracted), or on other criteria set by the user or by a manager of network  20 .  
         [0041]    Returning now to the example shown in FIG. 1, two packet flows  28  and  30  are directed from source node N 1  via intermediate nodes N 6  and N 5  to destination node N 4  over inner ring  26 . For the sake of this example, we assume that flow  28  belongs to a data service, which transfers blocks of data in accordance with a protocol that is relatively insensitive to jitter and packet misordering, such as an electronic mail application or another data transfer application running over TCP/IP. Flow  30 , on the other hand, is assumed to belong to a real-time service, such as a voice over IP (VOIP) or streaming video service, which can tolerate occasional dropped packets but is sensitive to jitter and misordering. The wrapping flag is set in the packets of flow  28 , but is reset in the packets of flow  30 . Both of these flows are interrupted by a link failure  32  between nodes N 5  and N 6 .  
         [0042]    [0042]FIGS. 3A and 3B schematically illustrate how network  20  handles failure  32  for the two different types of service exemplified by flows  28  and  30 , in accordance with a preferred embodiment of the present invention. Although for the sake of clarity, FIGS. 3A and 3B are separated, in practice the protection mechanisms illustrated in the two figures can operate simultaneously. In FIG. 3A, it is seen that flow  28  is wrapped onto outer ring  24  at nodes N 6  and N 5 , thus defining a wrapped flow path  36 . Meanwhile, flow  30  is steered by ring N 1  onto outer ring  24 , thus defining a steered flow path  38 . Because flow  30  is flagged as a non-wrapping flow, any packets in flow  30  that reach node N 6  before N 1  begins steering the packets onto the outer ring will typically be discarded. There may, additionally or alternatively, be flows (not shown) in network  20  that are neither flagged for wrapping nor steered. The packets in these flows will simply be discarded if they reach nodes N 5  and N 6  while failure  32  continues. As a further alternative, flow  28  may be wrapped temporarily on path  36 , typically until all of the nodes in network  20  have been notified of failure  32  and are ready to begin steering. At this point, flow path  36  is suspended, and instead, flow  28  is steered along flow path  38 .  
         [0043]    Reference is now made to FIGS. 4 and 5, which are flow charts that schematically illustrate methods for failure protection in network  20 , in accordance with a preferred embodiment of the present invention. The method is described, by way of example, with reference to flows  28  and  30 . It is assumed that the packets in flow  28  are flagged for wrapping, while those in flow  30  are not flagged and are instead steered. FIG. 4 describes the behavior of a node adjacent to the link on which failure  32  occurred, such as node N 6 , while FIG. 5 refers to a node originating a packet flow, such as node N 1 . Extension of the method to other node configurations and to alternative protection schemes, such as those noted above, is straightforward.  
         [0044]    The method of FIG. 4 is initiated when node N 6  detects link failure  32 , at a failure detection step  40 . Immediately upon detecting the failure, N 6  transmits a failure indication packet around ring  24 , at a notification step  42 , to notify the other nodes of the failure. (Node N 5  typically detects the failure as well, and accordingly transmits a failure indication packet around ring  26 .) Node N 6  subsequently receives packets on ring  26 , at a packet reception step  44 , and determines how to handle each packet individually. The node checks the packet header to determine whether the wrapping flag is set or reset, at a flag checking step  46 . If the flag is set, node N 6  wraps the packet from ring  26  onto ring  24 , at a wrapping step  48 . In the case of flow  28 , the packet is wrapped onto path  36 . When the packet reaches node N 5 , the wrapping flag is checked again, and the packet is accordingly wrapped back onto ring  26 , on which it finally reaches destination node N 4 .  
         [0045]    After transmitting the failure indication packet at step  42 , but before node N 1  is ready to steer flow  30  onto path  38 , node N 6  may still receive packets belonging to flow  30 . Since the wrapping flag of these packets is not set, node N 6  simply passes the packets on without wrapping, at a non-wrap step  50 . As a result, these packets are discarded.  
         [0046]    As shown in FIG. 5, node N 1  prepares packets in flows  28  and  30  for transmission, at a packet preparation step  60 . In the absence of a failure in the network, the packets are destined for transmission on a route through nodes N 6  and N 5 . Before transmitting the packets, N 1  checks to ascertain whether any failures are known to have occurred in the links that each flow is to traverse, at a failure checking step  62 . As long as none of the other nodes has reported such a failure, and N 1  has not detected a failure itself, the packets are transmitted along the normal route, without steering, at a normal transmission step  64 . If failure  32  has occurred, but the failure indication from N 6  has not yet reached N 1 , the packets will still be transmitted on the normal route. In this case, the packets in flow  28  are wrapped by N 6 , as noted above, but packets in flow  30  are passed through by N 6  at step  50  and thus will be discarded.  
         [0047]    Once N 1  receives the failure indication, it begins steering the packets in flow  30  onto path  38 , at a steering step  66 . Similarly, node N 6  and the other nodes in network  20  begin at this point steering packet flows that they originate to the appropriate destinations. Preferably, to save network resources, N 1  and the other nodes also steer wrapped flows, such as flow  28 . Alternatively, for the duration of the failure, only some flows are steered, while others are wrapped or are delayed or discarded to conserve network resources.  
         [0048]    Although preferred embodiments are described herein with reference to certain specific types of networks and protocols, and particularly to packet networks based on the RPR protocol, the principles of the present invention are similarly applicable in bidirectional ring networks and protocols of other types. It will thus be appreciated that the preferred embodiments described above are cited by way of example, and that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention includes both combinations and subcombinations of the various features described hereinabove, as well as variations and modifications thereof which would occur to persons skilled in the art upon reading the foregoing description and which are not disclosed in the prior art.