Enterprise systems often use replication technology to keep multiple instances of applications or data stores in synchronization. Existing data replication techniques are primarily storage based and are usually applied at coarse time granularity. Furthermore, they can not be used to achieve service replication that requires state synchronization in addition to disk synchronization.

In this context, we present NCP: a system that uses network based replication to enable service replication in data centers through software defined networking. NCP overcomes challenges associated with network based replication through the use of server virtualization, multicore and software defined networking (SDN) technologies. NCP allows its users to identify flows based on network addresses and ports and to specify a replication target for each such flow. NCP OpenFlow controller, then, automatically determines the ideal switch for replication, install redirection rules as well as special routing rules for replicated packets in the network. NCP middlebox appliance captures the redirected packets, orders them to reconstruct a network session and replays them on to a primary server and a set of replica servers that were chosen as the target of replication. Our experimental evaluation of NCP demonstrates that network based replication can enable scalable service replication in real time with minimal overheads.