Precision Time Protocol
d {\displaystyle d} をSyncメッセージの転送時間、 o ~ {\displaystyle {\tilde {o}}} をマスタクロックとスレーブクロックの間の定数オフセットとしたとき、次式のようになる。
T 1 ′ − T 1 = o ~ + d and T 2 ′ − T 2 = − o ~ + d {\displaystyle \ T_{1}'-T_{1}={\tilde {o}}+d{\text{ and }}\ T_{2}'-T_{2}=-{\tilde {o}}+d}
上記の2つの式を組み合わせると、次のようになる。
o ~ = 1 2 ( T 1 ′ − T 1 − T 2 ′ + T 2 ) {\displaystyle {\tilde {o}}={\frac {1}{2}}(T_{1}'-T_{1}-T_{2}'+T_{2})}
これによって、クロックはこのトランザクション中のオフセット o ~ {\displaystyle {\tilde {o}}} がわかり、この値を使って自身のクロックを修正し、マスターと一致させる。
ここでは、3つのことを仮定している。1つは、このメッセージ交換が非常に小さい時間で行われるので、このオフセットはその時間にわたって一定であると考えられるということである。2つ目は、マスターからスレーブへのメッセージの転送時間が、スレーブからマスターへのメッセージの転送時間に等しいということである。3つ目は、マスターとスレーブの両方が、メッセージを送受信する時間を正確に測定できるということである。これらの仮定が成り立つ度合いによって、スレーブデバイスでのクロックの精度が決まる。
PTPメッセージは、メッセージの伝送にUser Datagram Protocol over Internet Protocol(UDP/IP)を使用する。IEEE 1588-2002はIPv4のみを使用するが、IEEE 1588-2008ではIPv6でも使用できるように拡張されている。IEEE 1588-2002では、全てのPTPメッセージがマルチキャストで送信されるが、IEEE 1588-2008では、デバイスがポート単位でユニキャスト送信をネゴシエートするためのオプションが導入された。マルチキャスト送信では、IPマルチキャストアドレスが使用される。IPマルチキャストアドレスでは、IPv4およびIPv6に対してマルチキャストグループアドレスが定義されている(表を参照)。イベントメッセージはポート番号319、一般メッセージはポート番号320を使用する。
IEEE 1588-2008では、カプセル化がDeviceNet、ControlNet、PROFINETに対して定義されている。