PTP One-Step o PTP Two-Step

PTP One-Step / Two-Step?
Questa è una domanda che si sente spesso. Se state progettando un apparato IEEE 1588, allora è una domanda che ha un impatto di un certo tipo sull'architettura del tuo dispositivo. Tuttavia, se hai comprato apparecchiature PTP e le stai deployando in rete, questa domanda ha poca importanza. Inoltre, per chi progetta e gestisce le reti, non importa nemmeno se si utilizando contemporaneamente dispositivi IEEE1588 One-step e IEEE1588 Two-step. A seguire qualche indicazione sulle differenze tra PTP one-step e PTP two-step, e ciò che lo standard IEEE 1588 richiede.
Una breve descrizione di come funzionano i one step e two step è la seguente: per ogni messaggio PTP viene applica un timestamp preciso e aggiunto all'interno del messaggio stesso (one-step), oppure viene inviato un secondo messaggio con l'informazione di timestamp accurato (two-step). Si consideri lo schema sotto raffigurante un'operazione PTP One-Step end-to-end.

Sequence of messages to transfer time from a master to a slave in end-to-end one-step operation

Sequence of messages for a peer delay measurement.

Block diagram of transparent clock operating on a sync message
Il Transparent Clock deve intercettare il messaggio sync message e aggiornare all'interno del pacchetto il campo (Correction Field) in base ai tempi trascorsi in coda. Nella versione two-step il transparent clock non ha bisogno di aggiornare il messaggio in tempo reale, ma ha bisogno memorizzare quanto tempo ha impegato il pacchetto per transitare e aggiornare il messaggio follow-up corrispondente. Quindi se state progettando un transparent clock dovete domandarvi se volete porre maggiore attenzione sullo sviluppo hardware o sul software. One-step richiede hardware in grado di effettuare aggiornamenti in tempo reale sui pacchetti. Two-step invece che il software memorizzi il tempo di permanenza di un messaggio e lo abbini al messaggio di follow-up corrispondente.
Non bisogna assicurarti che tutti i dispositivi della catena, da PTP master a PTP slave, utilizzino lo stesso numero di passaggi? La risposta è no, perché tutti gli slave PTP come richiesto da IEEE 1588-2008 devono poter funzionare con entrambe le modalità.
Nel caso in cui il master PTP sia two-step e il transparent clock solamente one-step? Anche qui non ci sono problemi. Il transparent clock aggiornerà il correction field presente nel messaggio di sync e inoltrerà, lasciandolo inalterato, il messaggio di follow-up. Lo slave IEEE1588 sommerà i correction field di entrambi i messaggi (transparentclock e PTP grand master), come richiesto dallo standard.
E nel caso di un PTP grandmaster one-step e un transparent clock two-step? Anche qui non ci sono problemi. Tuttavia questo implicherà un carico di lavoro maggiore per il transparentclock, dal momento che dovrà sia impostare il flag nel messaggio di sync da one-step a two-step che generare il messaggio di follow-up.
Non è preferibile utilizzare PTP one-step perché utilizza meno larghezza di banda sulla rete? Facciamo un po' di aritmetica. Un messaggio di follow-up è di 98 byte per una mappatura UDP / IPv4 / Ethernet. Sono 784 bit. Ad un rate di 1 messaggio al secondo viene utilizzato meno dello 0,0001% di un link 1 gigabit. Anche se ci fossero 100 messaggi follow_up al secondo l'utilizzo della larghezza di banda è banale. Ai fini pratici, Precision Time Protocol utilizza una larghezza di banda approssimativamente pari a zero, sia che si tratti di one-step che di two-step.