Internet DRAFT - draft-popovic-iprp

draft-popovic-iprp



 



iPRP                                                    Miroslav Popovic
INTERNET-DRAFT                                            Maaz Mohiuddin
Intended Status: Standard Track                      Jean-Yves Le Boudec
Expires: August 4, 2016                                        EPFL-LCA2
                                                    Dan-Cristian Tomozei
                                                           Cisco Systems
                                                        Febraury 1, 2016


          iPRP: Parallel Redundancy Protocol for IP Networks 
                         draft-popovic-iprp-01


Abstract

   Reliable packet delivery within stringent delay-constraints is of
   paramount importance to mission-critical computer applications with
   hard real-time constraints. Because retransmission and coding
   techniques counteract the delay requirements, reliability may be
   achieved through replication over multiple fail-independent paths.
   Existing solutions, such as the parallel redundancy protocol (PRP),
   replicate all packets at the MAC layer over parallel paths. PRP works
   best in local area networks. However, it is not viable for IP
   networks that are a key element of emerging mission-critical systems.
   This limitation, coupled with diagnostic inability and lack of
   security, renders PRP unsuitable for reliable data-delivery in these
   IP networks. To address this issue, we present a transport-layer
   solution: the IP parallel redundancy protocol (iPRP). Designing iPRP
   poses non-trivial challenges in the form of selective packet-
   replication, soft-state and multicast support. iPRP replicates only
   time-critical unicast or multicast UDP traffic. iPRP requires no
   modifications to the existing monitoring application, end-device
   operating system or to the intermediate network devices. It only
   requires a simple software installation on the end-devices. iPRP has
   a set of diagnostic tools for network debugging. With our
   implementation of iPRP in Linux, we show that iPRP supports multiple
   flows with minimal processing-and-delay overhead. It is being
   installed in our campus smart-grid network and is publicly available.


Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as
 


Popovic, et al.          Expires August 4, 2016                 [Page 1]

INTERNET DRAFT                    iPRP                  February 1, 2016


   Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/1id-abstracts.html

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html


Copyright and License Notice

   Copyright (c) 2015 IETF Trust and the persons identified as the
   document authors. All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document. Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document. Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.



Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
     1.1. From MAC- to IP-Layer Parallel Redundancy Protocol  . . . .  4
     1.2. iPRP  . . . . . . . . . . . . . . . . . . . . . . . . . . .  7
     1.3. Terminology . . . . . . . . . . . . . . . . . . . . . . . .  7
   2. Related work  . . . . . . . . . . . . . . . . . . . . . . . . .  7
   3. Operation of iPRP . . . . . . . . . . . . . . . . . . . . . . .  8
     3.1. How to Use iPRP . . . . . . . . . . . . . . . . . . . . . .  8
     3.2. General Operation: Requirements for Devices and Network . .  9
     3.3. UDP Ports Affected by iPRP  . . . . . . . . . . . . . . . . 10
     3.4 Matching the Interconnected Interfaces of Different 
         Devices  . . . . . . . . . . . . . . . . . . . . . . . . . . 10
   4. A Glimpse of iPRP Design  . . . . . . . . . . . . . . . . . . . 11
     4.1. Control Plane . . . . . . . . . . . . . . . . . . . . . . . 11
     4.2. Data Plane: Replication and Duplicate Discard . . . . . . . 12
     4.3. The Discard Algorithm . . . . . . . . . . . . . . . . . . . 12
 


Popovic, et al.          Expires August 4, 2016                 [Page 2]

INTERNET DRAFT                    iPRP                  February 1, 2016


     4.4. The Backoff Algorithm . . . . . . . . . . . . . . . . . . . 13
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 13
   6. Implementation and the Diagnostic Toolkit . . . . . . . . . . . 14
   7. Performance Evaluation  . . . . . . . . . . . . . . . . . . . . 15
   8. Conclusion  . . . . . . . . . . . . . . . . . . . . . . . . . . 16
   9.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 16
   10.  References  . . . . . . . . . . . . . . . . . . . . . . . . . 16
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 18








































 


Popovic, et al.          Expires August 4, 2016                 [Page 3]

INTERNET DRAFT                    iPRP                  February 1, 2016


1.  Introduction

   Specific mission-critical computer applications have hard delay-
   constraints. Failure to satisfy these constraints can result in
   economic losses or, even worse, human lives can be endangered in
   cases when these failures affect safety mechanisms. Notable examples
   of such applications (often built on top of cyber-physical systems)
   are process-control and emergency-management applications in the oil
   and gas industry,  real-time detection of pollutants in the
   water/wastewater industry, vehicle-collision avoidance in car
   industry, automatic train control, process control in chemical
   industry, state estimation in smart grid, high-frequency trading and
   distributed online gaming. 

   Reliable and timely packet delivery, even in the order of 10 ms, is
   of utmost importance in satisfying the hard-delay constraints. The
   classic approaches to reliable communication through coding and
   retransmission are not compatible with the hard delay-constraints. An
   alternative is to achieve reliability through replication over
   multiple fail-independent paths, which is the focus of this paper.
   More precisely, we present a solution for packet-replication over
   multiple paths in IP networks. Indeed, as we discuss next, existing
   solutions apply only to MAC-layer networks and cannot be transposed
   to IP networks that are a requirement for many of the above-mentioned
   applications.

1.1. From MAC- to IP-Layer Parallel Redundancy Protocol

   The parallel redundancy protocol (PRP) IEC standard [1] was proposed
   as a solution to reliable data delivery problem for deployments
   inside a local area network (LAN). Communicating devices need to be
   connected to two cloned (disjoint) bridged networks. The sender tags
   MAC frames with a sequence number and replicates it over its two
   interfaces. The receiver discards redundant frames based on sequence
   numbers.

   In addition to extending PRP functionality to IP networks, the new
   design should also avoid the drawbacks of PRP. The most limiting
   feature of PRP is that the two cloned networks need to be composed of
   devices with identical MAC addresses. This contributes to making
   network management difficult. Furthermore, PRP duplicates all the
   traffic unselectively, which is acceptable for use in a local
   environment, but which cannot be done in general IP networks, because
   some links can be expensive and unnecessary traffic should be
   avoided. Moreover, PRP has no security mechanisms.

   Note that a parallel redundancy protocol for IP networks needs to
   support IP multicast, as this is used in many of the aforementioned
 


Popovic, et al.          Expires August 4, 2016                 [Page 4]

INTERNET DRAFT                    iPRP                  February 1, 2016


   applications.

               Management                                   
               terminal          PDC 1                      
               +----+            +----+                     
               |    |            |    |                     
               |    |            |    |                     
               +---++            ++--++                     
                   |              |  |                      
                   |              +  |                      
                   +    XXXXXXXXXXXXX|XXXXXXX               
   PMU 1           XXXXXX            |       XX             
   +----+       XXXX                 |        XX      PDC 2 
   |    +------+X           NW "A"   |         X      +----+
   |    |       XX                   |         X+-----+    |
   +--+-+        XXX                 |      XXXX      |    |
      |          XXXXXXXXXX          |    XXX         +--+-+
      |        XXX       +           |  XXXXX            |  
      +-------+X         |           +      XXX          |  
               X         |  NW "B"             XX        |  
                X        |                     XX+-------+  
                XXX      |                   XXX            
                  XXXXX  |               XXXXX              
           PMU 2    + XXX|XXXXXXXXXXXXXXX                   
           +----+   |    |                                  
           |    +---+    |                                  
           |    +--------+                                  
           +----+                                           



   Figure 1: A typical iPRP use-case in the context of smart grids.
   Devices (Phasor Data Concentrators (PDCs), Phasor Measurement Units
   (PMUs)) are connected to two overlapping network subclouds (labeled
   "A" and "B"). Every PMU streams data to all PDCs, using UDP and IP
   multicast.


   Concretely, Figure 1 depicts a smart grid WAN where PRP cannot be
   directly deployed. Devices are multi-homed and each interface is
   assigned a different IP address. Most devices have two interfaces
   connected to a main network cloud made of two fail-independent
   network subclouds labeled "A" and "B". It is assumed that paths
   between interfaces connected to the "A" network subcloud stay within
   it (and similarly with "B"). The "A" and "B" network subclouds could
   be physically separated, however in practice they are most likely
   interconnected for network management reasons. 

 


Popovic, et al.          Expires August 4, 2016                 [Page 5]

INTERNET DRAFT                    iPRP                  February 1, 2016


   As an example, we use the smart-grid communication network depicted
   in  Figure 1. Here,  measurements are streamed periodically (every 20
   ms for 50 Hz systems) by phasor measurement units (PMUs) to phasor
   data concentrators (PDCs), where the information about the electrical
   network state is expected in quasi-real time. PRP cannot be directly
   deployed here: devices are multi-homed and each interface is assigned
   a different IP address. Most devices have two interfaces connected to
   a main network cloud made of two fail-independent network subclouds
   labeled "A" and "B". It is assumed that paths between interfaces
   connected to the "A" network subcloud stay within it (and similarly
   with "B"). The "A" and "B" network subclouds could be physically
   separated, however in practice they are most likely interconnected
   for network management reasons. 

   A simple way to realize the arrangement described before is to divide
   the network into two logical subclouds, "A" and "B". Then, by
   adjusting the routing weights of the links interconnecting the "A"
   and "B" subclouds, it can be ensured that "A"->"A" and "B"->"B"
   traffic stays within "A" and "B" subclouds respectively, thereby
   giving rise to fail-independent paths. In such a setting, the
   interconnections will be used only for "A"<->"B" traffic.

   The solution should, similarly to PRP, takes advantage of network
   redundancy for increasing the reliability of UDP flows, and that
   works in scenarios such as the one in Figure 1. The existence of
   fail-independent paths is fundamental for the optimal operation of
   such a solution. However, in the event of a network-component
   failure, the paths can become partially overlapping. Then, the
   solution should reap the maximum possible benefit by operating in a
   degraded-redundancy mode. In other words, even if complete end-to-end
   redundancy is no longer possible the solution should continue to
   work.

   In order for our solution to be easily deployed, we also require it
   to be transparent to both the application and network layers: it
   should only require installation at end-devices and no modifications
   to running application software or to intermediary network devices
   (routers or bridges). In addition, real-time applications typically
   use UDP rather than TCP because (1) TCP does not work with IP
   multicast or (2) TCP retransmissions, following packet losses,
   require several round-trip times and can be both detrimental and
   superfluous. Hence, we target a solution that supports UDP
   applications only.

   This document is a summary of a conference paper [12] that describes
   iPRP (IP parallel redundancy protocol), a transport layer solution
   for transparent replication of unidirectional unicast or multicast
   UDP flows on multihomed devices. A technical report [7] that contains
 


Popovic, et al.          Expires August 4, 2016                 [Page 6]

INTERNET DRAFT                    iPRP                  February 1, 2016


   all the relevant details of the solution has also been made
   available. The prototype iPRP implementation (http://goo.gl/N5wFNt)
   is for IPv6, as it is being installed in an actual IPv6-based smart-
   grid communication network (smartgrid.epfl.ch) [11]. Adaptation to
   IPv4 is straightforward.

1.2. iPRP

   An iPRP host has to send different copies of the same packet over
   different paths. With the current technology, a device cannot control
   the path taken by an IP packet, beyond the choice of a destination
   address, exit interface and a type-of-service value. Other fields,
   such as the IPv6 flow label or source routing header extensions, are
   either ignored or rejected by most routers.  Also, the type-of-
   service field is used by applications and should not be tampered with
   by iPRP. Hence, it is assumed that a choice of the path is done at
   the sources by choosing communication interface and the destination
   address. The job of iPRP is then to transparently replicate packets
   over the different interfaces for the UDP flows that need it, match
   corresponding interfaces, remove duplicates at the receiver, and do
   this in a way that is resilient to crashes.

   Not all traffic requires replication, only certain devices and
   certain UDP flows do (time-critical data). Hence, replication needs
   to be selective: a failure-proof mechanism, transparent to
   applications, is required for detecting and managing packet
   replication. It needs to match well the interfaces, so that
   independent paths are used whenever they exist. However, the solution
   should continue to work if some paths are not disjoint.

   The iPRP protocol design is such that it does not interfere with the
   existing security mechanisms and does not introduce any new security
   weaknesses (see Section 5).

   iPRP assumes that the network is traffic-engineered; the critical UDP
   data streams receive enough resources and are not subject to
   congestion. iPRP instantly repairs packet losses due to failures or
   transient problems such as transmission losses. It does not solve
   congestion problems due to under-dimensioned network links. TCP flows
   are not affected.

1.3. Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

2. Related work
 


Popovic, et al.          Expires August 4, 2016                 [Page 7]

INTERNET DRAFT                    iPRP                  February 1, 2016


   As mentioned in the Introduction, iPRP overcomes the limitations of
   PRP [2]. The authors of [3] are aware of these limitations and
   suggest a direction for developing PRP in an IP environment. Their
   suggestion is neither fully designed nor implemented. Also, it
   requires that the intermediate routers preserve the PRP trailers at
   the MAC layer, which in turn requires changes in all of the routers
   in the networks. It does not address all the shortcomings of PRP
   (diagnostic tools, lack of multicast support, need of special
   hardware). In contrast, the transport layer approach of iPRP does not
   have these drawbacks.

   MPTCP[4] is used in multi-homed hosts. It allows TCP flows to exploit
   the host's multiple interfaces, thus increasing  the available
   bandwidth for the application. Like MPTCP, iPRP is a transport layer
   solution and is transparent to network and application. Unlike MPTCP,
   iPRP duplicates the UDP packets on the parallel paths, while MPTCP
   sends one TCP segment on only one of them. In a case of loss, MPTCP
   resends the segment on the same path until enough evidence is
   gathered that this path is broken. So, a lost packet is repaired
   after several RTTs (not good for time-critical  flows). Similarly,
   LACP [5] and ECMP [6] require seconds for failover.

   Network coding exploits network redundancy for increasing throughput
   [13], and requires intermediary nodes to recode packets (specialized
   network equipment needed). Also, it is not suitable for time-critical
   applications as typically packets are coded across "generations"
   which introduces decoding delays. Source coding (e.g. Fountain codes
   [14]) can be useful for the bursty transmissions of several packets.
   However, it adds delay, as encoding and decoding are performed across
   several packets (not suitable for UDP flows with hard-delay
   constraints).

   MPLS-TP 1+1 protection feature [15] performs packet duplication and
   feeds identical copies of the packets in working and protection path.
   On the receiver side, there exists a selector between the two; it
   performs a switchover based on some predetermined criteria. However,
   some time is needed for fault detection and signaling to take place,
   after which the switchover occurs. Hence, a 0-ms repair cannot be
   achieved.

   Multi-topology routing extends existing routing protocols (e.g. [16])
   and can be used to create disjoint paths in a single network. It does
   not solve the problem of transparent packet replication, but serves
   as a complement to iPRP.

3. Operation of iPRP

3.1. How to Use iPRP
 


Popovic, et al.          Expires August 4, 2016                 [Page 8]

INTERNET DRAFT                    iPRP                  February 1, 2016


   iPRP is installed on end-devices with multiple interfaces: on
   streaming devices (the ones that generate UDP flows with hard delay
   constraints) and on receiving devices (the destinations for such
   flows). Streaming applications (such as PMU streaming applications)
   do not require any changes. These applications benefit from the
   increased reliability of iPRP without being aware of its existence.
   iPRP operates as a modification to the UDP layer.

   On receiving devices the only thing that needs to be configured is
   the set of UDP ports on which duplication is required. For example,
   say that an application running on a PDC is listening on some UDP
   port for measurement data coming from PMUs. After iPRP is installed,
   this port needs to be added to the list of iPRP monitored ports in
   order to inform iPRP that any incoming flows targeting this port
   require replication. The application does not need to be stopped and
   is not aware of iPRP. Nothing else needs to be done for iPRP to work.
   In particular, no special configuration is required for intermediary
   network equipment (routers, bridges).

3.2. General Operation: Requirements for Devices and Network

   iPRP provides 1+n redundancy. It increases, by packet replication,
   the reliability of UDP flows. It does not impact TCP flows. iPRP-
   enabled receiving devices configure a set of UDP ports as
   "monitored". When a UDP packet is received on any of the monitored
   ports, a one-way soft-state iPRP session is triggered between the
   sender and the receiver (or group of receivers, if multicast is
   used). Soft-state means that: (i) the state of the communication
   participants is refreshed periodically, (ii) the entire iPRP design
   is such that a state-refresh message received after a cold-start is
   sufficient to ensure proper operation. Consequently, the state is
   automatically restored after a crash, and devices can join or leave
   an iPRP session without impacting the other participants. 

   Within an iPRP session, each replicated packet is tagged with an iPRP
   header (Figure 2). It contains the same sequence number in all the
   copies of the same original packet.  At the receiver, duplicate
   packets with the same sequence number are discarded (Section 4.3).
   The original packet is reconstructed from the first received copy and
   forwarded to the application.

   In multicast, the entire receiver group needs to run iPRP. If by
   mishap, only part of the receivers support iPRP, these trigger the
   start of an iPRP session with the sender and benefit from iPRP;
   however, the others stop receiving data correctly.  To ensure
   disjoint trees the use of source-specific multicast (SSM) is
   recommended, see [7]. All iPRP-related information is encrypted and
   authenticated. Existing mechanisms for cryptographic key exchange are
 


Popovic, et al.          Expires August 4, 2016                 [Page 9]

INTERNET DRAFT                    iPRP                  February 1, 2016


   applied (security reflections in Section 5).

3.3. UDP Ports Affected by iPRP

   iPRP requires two system UDP ports (transport layer) for its use: the
   iPRP control port and the iPRP data port (in the prototype
   implementation 1000 and 1001, respectively). The iPRP control port is
   used for exchanging messages that are part of the soft-state
   maintenance. The iPRP data port receives data messages of the
   established iPRP sessions. iPRP-capable devices always listen for
   iPRP control and data messages.

   The set of monitored UDP ports, over which iPRP replication is
   desired are not reserved by iPRP and can be any UDP ports. UDP ports
   can be added to/removed from this set at any time during the iPRP
   operation. Reception of a UDP packet on a monitored port triggers the
   receiver to initiate an iPRP session. If the sender is iPRP-capable,
   an iPRP session is started (replicated packets are sent to the iPRP
   Data Port), else regular communication continues.

3.4 Matching the Interconnected Interfaces of Different Devices

   One of the design challenges of iPRP is determining an appropriate
   matching between the interfaces of senders and receivers, so that
   replication can occur over fail-independent paths. To understand the
   problem, consider Figure 1 where the PMUs and PDCs have at least two
   interfaces. The "A" and "B" network subclouds are interconnected.
   However, the routing is designed such that, a flow originating at an
   interface connected to subcloud "A" with a destination in "A", will
   stay in subcloud "A". A potential problem can arise if a sender's
   interface, say "SA", intended to be connected to the "A" subcloud, 
   is mistakenly connected to the "B" subcloud, and vice-versa. Then one
   path from source to destination will go from "SA" (on subcloud "B")
   to the destination interface "DB" (on subcloud "B"), and conversely
   on the other path.  Following the routing rules, these flows will use
   interconnecting links between "A" and "B" subclouds. This is not
   desirable as it is no longer guaranteed that such paths are fail-
   independent. Furthermore, these links can be of insufficient capacity
   because they are not intended to carry such traffic. PRP avoids this
   problem by requiring two physically separated and cloned networks.
   iPRP does not impose these restrictions. Hence, iPRP needs a
   mechanism to match interfaces connected to the same network subcloud.

   To facilitate appropriate matching, each interface is associated with
   a 4-bit identifier called iPRP network subcloud discriminator (IND),
   which qualifies the network subcloud it is connected to. The iPRP
   software in end-devices learns the interfaces' INDs automatically via
   simple preconfigured rules. Network routers have no notion of IND. A
 


Popovic, et al.          Expires August 4, 2016                [Page 10]

INTERNET DRAFT                    iPRP                  February 1, 2016


   rule can use the interface's IP address or its DNS name. In the
   prototype implementation, an interface's IND is computed from its
   fully qualified domain name. In Figure 1, the names of the interfaces
   are assigned in the following way. PDC1: nw-a.pdc1.smartgrid.epfl.ch
   for the interface connected to NW "A" and nw-b.pdc1.smartgrid.epfl.ch
   for the interface connected to NW "B". Similarly for PMU2, for
   example: nw-a.pmu2.smartgrid.epfl.ch for the interface connected to
   NW "A" and nw-b.pmu2.smartgrid.epfl.ch for the interface connected to
   NW "B". Then, the rule in the iPRP configuration maps the regular
   expression nw-a* to the IND value 0xa, nw-b* to IND 0xb. 

   The receiver periodically advertises the IP addresses of its
   interfaces, along with their INDs to the sender (via iPRP_CAP
   messages). The sender compares the received INDs with its own
   interface INDs. Replication is done only on the interfaces which were
   successfully matched. In the example from Figure 1, IND matching
   prevents iPRP to send data from a PMU "A" interface to a PDC "B"
   interface. Moreover, each iPRP data packet (Figure 2) contains the
   IND of the network subcloud where the packet is supposed to transit.
   This eases the monitoring and debugging of the whole network. It
   allows detection of misconfiguration errors that cause a packet
   expected on an A interface to arrive on a "B" interface.

4. A Glimpse of iPRP Design

   A comprehensive description can be found in [7].

4.1. Control Plane

   The control plane establishes and maintains an iPRP session. When
   triggered by the reception of a UDP packet on one of the ports
   configured as monitored, the receiver starts sending iPRP_CAP
   messages to the control port of the sender every T_CAP seconds. This 
   informs the sender that the receiver is iPRP enabled and provides
   information required for selective replication over alternative paths
   (e.g. IP addresses of all receiver interfaces). This is also used as
   a keep-alive message for iPRP session as an iPRP session  is
   terminated if no iPRP_CAP message is received for a period of 3T_CAP.

   On receiving the iPRP_CAP, the sender acknowledges it with an
   iPRP_ACK. The iPRP_ACK contains the list of sender IP addresses which
   are used by the receiver to subscribe to alternate network subclouds.
   In multicast, the receivers send iPRP_CAP after a back-off period
   (Section 4.4) to avoid flooding. The iPRP_ACK message also serves as
   the terminating message for impending iPRP_CAPs thereby preventing a
   flood. To complete the establishment of an iPRP session, the sender
   performs IND matching (Section 3.4) and creates a record that
   contains all information needed for replication of data packets.
 


Popovic, et al.          Expires August 4, 2016                [Page 11]

INTERNET DRAFT                    iPRP                  February 1, 2016


   iPRP_CAP also contains symmetric key that is used for encryption and
   authentication of the replicated iPRP packets.

4.2. Data Plane: Replication and Duplicate Discard

   The replication occurs at the sender to send out data plane messages
   once the iPRP session is established. All outgoing packets, destined
   to the UDP port of the receiver that were configured as monitored,
   are intercepted. These packets are subsequently replicated and iPRP
   headers (Figure 2) are prepended to each copy of the payload. iPRP
   headers are populated with the iPRP version, a sequence-number-space
   ID (used to identify an iPRP session), a sequence number, an original
   UDP destination port (for the reconstruction of the original UDP
   header), and IND. The 32-bit sequence number is the same for all the
   copies of the same packet. The destination port number is set to iPRP
   data port for all the copies. An authentication hash is appended and
   the whole block is encrypted. The iPRP header is placed after the
   inner-most UDP header. So, iPRP works well, even when tunneling is
   used (e.g., 6to4). Finally, the copies are transmitted as iPRP data
   messages over the different matched interfaces.

   			+------------+----------+----------+----------+
   			|    other   | Innermost|   iPRP   | original |
   			| IP and UDP |    UDP   |  header  | payload  |
   			|   headers  |   header |(48 bytes)|          |
   			+------------+----------+----------+----------+
                                         /            \
      __________________________________/              \_____________
     /                                                                \
    /                                                                  \
   +-------+-------------+---------+-------------+-----+-------+-------+
   |Version|Sequence     |Sequence |Original     |IND  |HMAC   |Padding|
   |(4 b)  |Number Space |Number   |dest. port   |(4 b)|(160 b)| (8 b) |
   |       |ID (160 b)   |(32 b)   |number (16 b)|     |       |       |
   +-------+-------------+---------+-------------+-----+-------+-------+
               Figure 2: Location and fields of iPRP header


   Upon reception of packets on the iPRP data port the iPRP header is
   decrypted at the beginning of the payload using the symmetric key
   used in iPRP_CAP message. Based on the sequence-number-space ID and
   the sequence number, the packet is either forwarded to the
   application or discarded. 

4.3. The Discard Algorithm

   The discard algorithm forwards the first copy of a replicated packet
   to the application and discards all subsequent packets. The discard
 


Popovic, et al.          Expires August 4, 2016                [Page 12]

INTERNET DRAFT                    iPRP                  February 1, 2016


   algorithm proposed for PRP[8] fails at the latter when packets are
   received out of order. Packet reordering cannot be excluded in IP
   networks. The iPRP discard algorithm  [7] forwards only one copy of
   the packet even in cases of packet reordering. Also, it is soft-
   state, thereby resilient to crashes and reboots. 

4.4. The Backoff Algorithm

   The soft-state in a multicast iPRP session is maintained by periodic
   advertisements (iPRP_CAP) sent to the source by each member in the
   multicast group of receivers. The iPRP backoff algorithm prevents
   "message implosion" at the source, for groups of receivers ranging
   from several tens to millions of hosts. It guarantees that the source
   receives an iPRP_CAP within a bounded time D (by defalut D=10s) after
   the start of the iPRP-relevant communication (executed periodically
   every T_CAP=30s). To this end, the backoff time is sampled from the
   distribution from [9] as described in [7].

5.  Security Considerations

   The iPRP protocol design is such that it does not interfere with
   upper-layer security protocols. However, in addition to these
   solutions, iPRP layer itself needs to be secure, as there are attacks
   that can stay undetected by upper-layer security protocols.
   Concretely, if an attacker manages to alter the sequence-number field
   of iPRP packets transmitted over one (compromised) network subcloud,
   the discard algorithm can be tricked in a way that the packets from
   both (compromised and non-compromised) network subclouds are
   discarded. Note that similar attacks exist for PRP, where an
   attacker, with access to one network, can force the discard of valid
   frames on another network. For example, say an attacker has access to
   network subcloud "A". A PRP frame is represented as "A5, where "A" is
   the network subcloud it belongs to and 5 is the sequence number. If
   "A5" and "B5" were received and the attacker retransmits the frame
   "A5" by altering the sequence number as "A6", then the actual "A6"
   and "B6" frames will both be discarded. In other words, an unsecured
   PRP or iPRP could weaken the network instead of making it more
   robust. Yet another argument for protecting the iPRP layer is that by
   doing so, the exposure for prospective attacks in the future is
   minimized.

   The iPRP control messages are encrypted and authenticated. This
   guarantees that the security of replicated UDP flows is not
   comprimised by iPRP and that it does not interfere with application
   layer encryption/authentication.

   Specifically, iPRP_CAP messages and the corresponding iPRP_ACK
   messages are transmitted over a secure channel. The iPRP header
 


Popovic, et al.          Expires August 4, 2016                [Page 13]

INTERNET DRAFT                    iPRP                  February 1, 2016


   inserted in the data packets is authenticated and encrypted with a
   pre-shared key. Thus, replay attacks and forged messages insertion
   are avoided.

   A secure channel is established for the transmission of iPRP_CAP
   messages depending on the type of communication, unicast or
   multicast. Details follow below.

   Unicast: In unicast mode, a DTLS session is maintained between the
   sender and the receiver. It is initiated by the receiver upon the
   arrival of the first UDP datagram from the source. iPRP_CAP messages
   are transmitted within this session. So, the iPRP capabilities of the
   receiver are transmitted only to an authenticated source.  iPRP_ACKs
   are not required in unicast (since message implosion can occur in
   multicast only).

   Unicast iPRP_CAP messages contain a symmetric key used to
   authenticate and encrypt the iPRP header. This key is updated
   periodically during a unicast iPRP session. Hosts keep a small fixed
   number of valid past keys to prevent losing the iPRP session because
   of delayed receiption of a new key. The oldest key is discarded upon
   reception of a new one.

   Multicast: In multicast, iPRP relies on any primitive that
   establishes a secure channel with the multicast group. For example
   MSEC [10] can be used for group key management and for establishing a
   group security association.

   In this setting, both iPRP_CAP and iPRP_ACK messages, as well as the
   iPRP headers inserted in the replicated packets, are authenticated
   and encrypted with the group key. Thus, there is no need to include
   an additional key in the iPRP_CAP.

6. Implementation and the Diagnostic Toolkit

   The prototype Linux implementation of iPRP is in user-space but care
   has been taken to keep the delay and processing overhead very small.
   It is based on the libnetfilter_queue (NF_QUEUE) framework from the
   Linux iptables project. NF_QUEUE is a userspace library that provides
   a handle to packets queued by the kernel packet filter. It requires
   the libnfnetlink library and a kernel that includes the
   nfnetlink_queue subsystem (kernel 2.6.14 or later). It supports all
   Linux kernel versions above 2.6.14. Concretely, the prototype
   implementation uses the the Linux kernel 3.11 with iptables-1.4.12
   [7]. Being a user-space proof-of-concept implementation, it does not
   support IPsec but is compatible with higher layers security
   mechanisms.

 


Popovic, et al.          Expires August 4, 2016                [Page 14]

INTERNET DRAFT                    iPRP                  February 1, 2016


   As iPRP is designed to be IP friendly, it facilitates the
   exploitation of the diagnostic utilities associated with TCP/IP
   (e.g., ping and traceroute). Furthermore, an iPRP-specific diagnostic
   toolkit has been developed. It includes iPRPping for verification of
   connectivity between hosts and the evaluation of the corresponding
   RTTs, iPRPtracert for the discovery of routes to a host,  iPRPtest to
   check if there is currently an iPRP session between between two hosts
   and establish one if absent, iPRPsenderStats and iPRPreceiverStats to
   obtain the loss rates and one-way network latency.

   Imagine a typical scenario where an application on an iPRP enabled
   host experiences packet losses. To troubleshoot this problem, the
   user at the receiving host would use the iPRPreceiverStats to check
   the packet loss statistics on each network, if an iPRP session is
   established. If no established session is found, the user can
   establish a test session using iPRPtest and check the hop-by-hop UDP
   delivery with iPRPtracert to pin-point the problem.

7. Performance Evaluation

   iPRP is being deployed on the EPFL smart-grid communication network
   (smartgrid.epfl.ch). Also, a lab testbed is setup to evaluate its
   performance.

   The discard algorithm was stress-tested with heavy losses and
   asymmetric delays and compared the performance with theory. A sender
   and a receiver (Lenovo ThinkPad T400 laptops, specification given in
   Table 1) are interconnected with three networks (2 wired, 1
   wireless). Different scenarios with bursty or independent losses,
   small or large link delays to simulate different possible effects
   observed in a real network, were generated using tc-netem. In each
   scenario, the observed loss rate at the application when iPRP is used
   is compared with the theoretical loss rate (assuming independence of
   networks). The findings show iPRP performs as expected in
   significantly reducing the effective packet losses [7].

   +----------------------------------------------------+
   |      component      |     version specification    |
   +---------------------+------------------------------+
   |         CPU         |      Intel C2Duo, 2.53 Ghz   |
   | Ethernet Controller |  Intel 82567LM Gigabit Card  |
   | Wireless Controller |       Intel WiFi N d5300     |
   |  Operating System   |   Ubuntu 12.04 LTS, 64-bit   |
   |        Kernel       | 3.6.11-rt29 (RT-Linux Patch) |
   +---------------------+------------------------------+
    Table 1: Specifications of hosts used in the test bed

   As a side benefit, iPRP improves the effective one-way network
 


Popovic, et al.          Expires August 4, 2016                [Page 15]

INTERNET DRAFT                    iPRP                  February 1, 2016


   latency by delivering the first received packet. This property was
   also verified by showing that the CDF of the measured network latency
   matches the one from theory.


   Additionally, the delay and processing overhead due to iPRP was
   verified. GNU gprof was used to assess the average delay (over a
   large number of runs) incurred by an iPRP data packet in the iPRP
   sender and receiver daemons. It was observed that an accepted iPRP
   data packet encounters an average delay of 0.8 us at the sender
   daemon and 3.6 us at the receiver daemon. The additional percentage
   of CPU usage at sender (U_s) and receiver (U_r) due to iPRP was found
   to be: 

   U_s = 3.7 + 0.28*number_of_iPRP_sessions + 0.01*packets_per_second

   U_r = 0.9 + 0.08*number_of_iPRP_sessions + 0.01*packets_per_second

   A more fine-grained delay and CPU usage audit can be found in [7].

8. Conclusion

   The design of iPRP, a transport layer solution for improving
   reliability of UDP flows with hard-delay constraints, such as smart
   grid communication, industrial processes, high-frequency trading and
   online gaming, was presented. iPRP is application- and network-
   transparent, which makes it plug-and-play with existing applications
   and network infrastructure. Furthermore, the soft-state design makes
   it resilient to software crashes. Besides unicast, iPRP supports IP
   multicast, making it a suitable solution for low-latency industrial
   automation applications requiring reliable data delivery. iPRP is
   equipped with diverse monitoring and debugging tools, which is quasi
   impossible with existing MAC layer solutions. With a prototype
   implementation, it was shown that iPRP can support several sessions
   between hosts without any significant delay or processing overhead.
   The implementation is publicly available and is currently installing
   it in the EPFL campus smart-grid [11].


9.  IANA Considerations

   iPRP requires two system UDP ports (transport layer) for its use: the
   iPRP control port and the iPRP data port (in the prototype
   implementation 1000 and 1001, respectively).


10.  References

 


Popovic, et al.          Expires August 4, 2016                [Page 16]

INTERNET DRAFT                    iPRP                  February 1, 2016


   [1]        H. Kirrmann, M. Hansson, and P. Muri, "Iec 62439 prp:
               Bumpless recovery for highly available, hard real-time
               industrial networks," in Emerging Technologies and
               Factory Automation, 2007. ETFA. IEEE Conference on, Sept
               2007, pp. 1396-1399.

   [2]        IEC 62439-3 Standard, "Industrial communication networks:
               High availability automation networks", 2012.

   [3]        M. Rentschler and H.Heine, "The parallel redundancy
               protocol for industrial IP networks", in Industrial
               Technology (ICIT), 2013 IEEE International Conference on,
               Feb 2013, pp.1404-1409.

   [4]        A. Ford, C. Raiciu, M. Handley, and O. Bonaventure,"TCP
               Extensions for Multipath Operation with Multiple
               Addresses", RFC 6824 (Experimental), Internet Engineering
               Task Force, Jan. 2013

   [5]        IEEE Standards Association,  "IEEE Std 802.1AX-2008 IEEE
               Standard for Local and Metropolitan Area Networks - Link
               Aggregation.", 2008.

   [6]        C. Hopps. "Analysis of an Equal-Cost Multi-Path
               Algorithm", RFC2992 (Informational), Internet Engineering
               Task Force, Nov. 2000

   [7]        M. Popovic, M. Mohiuddin, D.-C. Tomozei, and J.-Y. Le
               Boudec, "iPRP: Parallel Redundancy Protocol for IP
               Networks: ", accepted for publication, IEEE Transactions
               on Industrial Informatics.

   [8]        H.Weibel, "Tutorial on parallel redundancy protocol",
               Zurich University of Applied Sciences, Tech. Rep.

   [9]        J. Nonnenmacher and E. W. Biersack, "Scalable feedback for
               large groups", IEEE/ACM Transactions on Networking (ToN),
               vol. 7, no. 3. 

   [10]       M. Baugher, R. Canetti, L. Dondeti, and F. Lindholm,
               "Multicast Security (MSEC) Group Key Management
               Architecture", RFC 4046.

   [11]       M. Pignati and al., "Real-Time State Estimation of the
               EPFL-Campus Medium-Voltage Grid by Using PMUs",in
               Innovative Smart Grid Technologies Conference (ISGT),
               2015 IEEE PES, 2015.  

 


Popovic, et al.          Expires August 4, 2016                [Page 17]

INTERNET DRAFT                    iPRP                  February 1, 2016


   [12]       M. Popovic, M. Mohiuddin, D.-C. Tomozei, and J.-Y. Le
               Boudec, "iPRP: Parallel Redundancy Protocol for IP
               Networks", in 11th IEEE World Conference on Factory
               Communication Systems, May 27-29, 2015, Palma de
               Mallorca, Spain

   [13]       C. Fragouli, and E. Soljanin, "Network Coding
               Fundamentals", Foundations and Trends in Networking, vol.
               2, no. 1, pp. 1-133, 2007.

   [14]       D.J.C. MacKay, "Fountain Codes", Communications, IEEE
               Proceedings, vol. 152, no. 6, pp, 1062-1068, Dec. 2005.

   [15]       N. Sprecher, and A. Farrel, "MPLS Transport Profile (MPLS-
               TP) Survavibility Framework", RFC 6372 (Informational),
               Internet Engineering Task Force, Sep. 2011.

   [16]       P. Psenak, S. Mirtorabi, A. Roy, L. Nguyen, and P. Pillay-
               Esnault, "Multy-Topology (MT) Routing in OSPF", RFC 4915
               (Proposed Standard), Internet Engineering Task Force,
               Jun. 2007.




Authors' Addresses


   Miroslav Popovic
   EPFL IC ISC LCA2
   Station 14
   CH-1015 Lausanne
   Switzerland

   Phone: +41 21 693 6466
   EMail: miroslav.popovic@epfl.ch

   Maaz Mohiuddin
   EPFL IC ISC LCA2
   Station 14
   CH-1015 Lausanne
   Switzerland

   Phone: +41 21 693 1334
   EMail: maaz.mohiuddin@epfl.ch

   Jean-Yves Le Boudec
   EPFL IC ISC LCA2
 


Popovic, et al.          Expires August 4, 2016                [Page 18]

INTERNET DRAFT                    iPRP                  February 1, 2016


   Station 14
   CH-1015 Lausanne
   Switzerland

   Phone: +41 21 693 6631
   EMail: jean-yves.leboudec@epfl.ch


   Dan-Cristian Tomozei
   Cisco Systems
   Batiment E/Niv. 3
   Quartier de l'innovation
   CH-1015 Lausanne
   Switzerland

   Phone: +41 21 822 1714
   EMail: dtomozei@cisco.com


































Popovic, et al.          Expires August 4, 2016                [Page 19]