 normally built around hardware support, including specialized design for accurate timestamping (see "Chapter 5. Clocks, Time Error, and Noise"). The problem is that if timestamping is software based, it is likely to be frequently interrupted and delayed by other func- tions in the operating system, which affects the accuracy. Furthermore, if the (software) timestamping is done by the main CPU, a lot can happen to delay a time-sensitive packet between being timestamped and finally being transmitted at the egress port. On the other hand, if the Ethernet PHY can timestamp the packet as it is being transmitted at egress, there is very little that can delay that packet (at least until it gets to the next router). Of course, the packet transport or some optical component can also add some unpredictable delay-more on that later. In spite of that, NTP is accurate enough for many purposes, such as aligning the timestamps in log files, and general sub-second time agreement. NTP (and SNTP) is widely used to synchronize per- haps billions of devices around the world. In fact, the whole Internet is time synchronized by NTP/SNTP. NTP can be used for more specialized applications; for example, some companies use special versions of NTP to frequency synchronize mobile radio equipment. However, to get more accurate time, something else was needed, and PTP is what the industry has settled upon. There are some differences between NTP and PTP in the values used to carry time-their times- cales. The most basic difference is that the NTP epoch starts on 1 January 1900, while the PTP (and POSIX/Unix) epoch starts on 1 January 1970. As they both count seconds since their respective epochs, there is a constant difference of 70 years and 17 leap days (2,208,988,800 seconds) between NTP and POSIX/Unix, representing the number of Gregorian seconds between those two dates. The offset to PTP is affected by leap seconds, which is discussed later in the chapter in the section "Timestamps and Timescales." Note also that PTP uses a 48-bit timest