## 1 Introduction  
Recently, high-precision clock synchronization has become one of the key requirements for distributed systems in many applications, such as telecommunication systems, measurement and control systems, and smart grid systems. In distributed systems, clocks are synchronized by means of dedicated messages and protocols through communication networks. Two prevalent protocols are used for clock synchronization in these networks: network time protocol (NTP) [1] and precision time protocol (PTP) [2]. NTP is widely used to synchronize computer clocks on the internet. The current version, NTPv4 [3], was formalized in IETF RFCs 5905-5908 in 2010. The primary drawback of NTP is the limitation level of the accuracy of milliseconds, although it is cost-effective and it does not require any specific hardware assistance. For distributed computer networks in information technology (IT) environments, this is sufficient. However, several Ethernet-based real-time networks in other domains, such as automatic control systems or substation automation systems, require higher synchronization accuracies. In these systems, accuracies in the microsecond range are often desired, and the number of nodes can be in the range of hundreds. To meet these needs, PTP was designed and specified in IEEE 1588 [4]. The PTP is based on a straightforward master-slave synchronization principle. The PTP first establishes a master-slave hierarchy for clocks in a PTP system, and the grandmaster clock (GMC) at the top of the hierarchy determines the reference time for the entire system. Synchronization between clocks is achieved by exchanging PTP timing messages through the hierarchy, with the slaves using the timing information to adjust their clocks to the time of their master in the hierarchy. The best master clock (BMC) algorithm is used to establish the master-slave hierarchy for PTP systems. The BMC algorithm divides the clocks in the PTP system into master clocks (MCs) and slave clocks (SCs). SCs synchronize their local clocks with the time of their MCs. However, the BMC algorithm does not provide a fast recovery mechanism in case of master failures. The failure of a master requires the BMC algorithm to re-elect a new master and re-establish the hierarchy. This rate of recovery is dependent on the interval of the Announce message and the topology of the network [5]. This drawback causes the loss of reference clock synchronization from the GMC as well as clock drift for the clocks during the re-election of the new master, thus decreasing the synchronization performance of the network. Several approaches have been proposed to recover the failure occurrence in PTP systems. These approaches can be based on fault tolerance or fault recovery. Methods based on fault tolerance mainly focus on providing a property that enables the standard PTP to continue operating properly if failure occurs. Thus, several approaches have been proposed to provide a fault-tolerance mechanism with the standard PTP [6; 7; 8; 9; 10]. The fault tolerance-based category is out of the scope of the comparison and analysis in this paper, due to the fact that several features of the PTP protocol have been excluded with these methods (i.e., BMC algorithm, master-slave synchronization hierarchy and cyclic path pruning) and excluding the PTP nodes from the network also; therefore, the synchronization accuracy of the system will be deteriorated [11; 12]. Therefore, we primarily focus on the fault recovery-based category that includes all the PTP features and nodes. Fault recovery-based methods mainly focus on detecting and recovering the failure in the synchronized networks in the case of link failure or node failure. Furthermore, fault recovery is used to manage network devices and traffic, and it provides reliable communication without alternative communication paths. Considering this, the rapid spanning tree protocol (RSTP) [13] with the standard PTP provides a failover mechanism in time-synchronization systems [14; 15].