## 7 Performance Evaluation of Multicast R-GOOSE over Public WAN
### Time Synchronization  
In [8], we measured GOOSE communication latency by using the SENSOR that is a PC with two Ethernet network ports connected to the sender and receiver. In SENSOR, Wireshark software was installed, and GOOSE messages were recorded on both Ethernet ports simultaneously. This recording saved as a Wireshark file that was used as the reference for GOOSE latency measurement and further statistical analyses. This approach is a lab-restricted-measurement method which is applicable for latency measurement inside the lab because the sender and receiver should be in the same location and connect to Ethernet ports of SENSOR. This approach works fine for measuring communication latency of R-GOOSE messages in our test setup because both Raspberry and the Linux PC are in the lab. However, in practice, the sender and receivers are in different locations. Therefore, we also introduce a new method in the following. In this paper, the authors introduce a field-capable-measurement method (i.e., sender and receiver can be in different locations) that relies on two \"Stratum 0\" [16] devices for time synchronization between the sender and receiver devices. In order to synchronize these two devices (the Raspberry and Linux PC), a common time reference is needed, and this is provided by the GPS clock, as shown in Figure 19--and elaborated on in Figure 20. The Raspberry is fitted with the GPS expansion board which is connected to an antenna and is used to synchronize the system clock on the device. The Expansion board includes a Pulse Per Second (PPS) signal output which yields nanosecond level precision to system timing. Time information is received from the expansion board over the serial port connection as a NMEA sentence, and the PPS signal is used to fine-tune the clock drift. Time synchronization with the operating system is implemented using Chrony daemon [51]. The Linux PC receives GPS time information by communicating with the Network Time Server via IEEE 1588v2 PTP, PTP for short. The network Time Server has a GPS receiver that connects to a GPS antenna and receives GPS clock information from the satellite. It can thus function as a time server that can provide GPS time information for other nodes in the network (e.g., the Linux PC). It does this via various networking protocols for clock synchronization, such as PTP. This protocol has been selected because it can provide highly accurate time synchronization, within nanosecond-range accuracy, and consequently it can even satisfy the requirements of extremely time-demanding wide-area applications such as synchrophasors. PTP provides high accuracy by using hardware generated timestamps over Ethernet ports, which are used for time synchronization. The PTP network infrastructure is based on a master-slave architecture, in which the source of time (master) transmits synchronization information to the destination nodes (slaves) over Ethernet communication. In the test setup, the Network Time Server (LANTIME M600) is configured to function as the PTP master that provides GPS time to the Linux PC, which functions as the PTP slave. The Linux PC is configured to act as a PTP slave by installing PTP4L [52], which is a PTP implementation for the Linux operating system. Consequently, the Linux PC receives PTP hardware-timestamping from the Network Time Server and can thus synchronize its system time with the time server. This means that software applications such as Wireshark can receive system time that has been synchronized to GPS time. Once the sender and receiver have been synchronized, the R-GOOSE communication latency can be measured. In Raspberry, the C application (R-GOOSE publisher) requests the time value from the Raspberry Linux operating system, which has synchronized its system time with the GPS clock. Then, the C application puts the acquired time value in the timestamp field (t) and sends the R-GOOSE message.