I. Introduction
Time synchronization is a fundamental requirement in modern real-time distributed measurement and control systems as time based activity scheduling, even timestamping, and synchronized sampling and actuation (interaction with the environment) are all impossible to be implemented without it in distributed systems. Advanced real-time Industry 4.0 solutions, especially ones built based on the concept of realtime Cyber-Physical Systems, are heavily based on the notion of the precise knowledge of the global time by every component of the system. Some of the less demanding applications (e.g., heating, ventilation and air conditioning, and similar ones with larger time constants in the range of tens or hundreds of seconds or more) may be built using Network Time Protocol (NTP) [1], which can provide sub second accuracy and precision in the practical cases (but without any guarantee). However, most of the real-time CPS applications require sophisticated time synchronization solutions that is typically implemented by applying IEEE 1588 Precision Time Protocol Version 2 (PTP) [2], which has been developed by IEEE primarily for Local Area Networks (LAN) and typically uses Ethernet and/or TCP/IP. IEEE 1588 aims to provide sub 1 microsecond accuracy and precision, and with proper components and system architecture even a sub 100 ns accuracy is readily achievable. This accuracy and precision are sufficient in most of the current applications, and if not, White Rabbit [3] developed by CERN can satisfy sub ns timing error requirements using even more special components. IEEE 1588 is also utilized in the upcoming Time-Sensitive Networking (TSN) standard that specifies a manufacturer agnostic real-time Ethernet variant for real-time distributed systems.