Passa al contenuto principale

4. Ordine dei byte, allineamento e formato del tempo (Byte Order, Alignment, and Time Format)

Tutti i campi interi vengono trasportati nell'ordine dei byte di rete, ovvero il byte (ottetto) più significativo per primo. Questo ordine dei byte è comunemente noto come big-endian. L'ordine di trasmissione è descritto in dettaglio in [3]. Salvo diversa indicazione, le costanti numeriche sono in decimale (base 10).

Tutti i dati dell'intestazione sono allineati alla loro lunghezza naturale, vale a dire i campi a 16 bit sono allineati su offset pari, i campi a 32 bit sono allineati su offset divisibili per quattro, ecc. Gli ottetti designati come padding hanno il valore zero.

L'ora dell'orologio da parete (Wallclock Time) (data e ora assolute) è rappresentata utilizzando il formato di timestamp del Network Time Protocol (NTP), che è espresso in secondi rispetto alle 0h UTC del 1° gennaio 1900 [4]. Il timestamp NTP a risoluzione completa è un numero a virgola fissa senza segno a 64 bit con la parte intera nei primi 32 bit e la parte frazionaria negli ultimi 32 bit. In alcuni campi in cui è appropriata una rappresentazione più compatta, vengono utilizzati solo i 32 bit centrali; ovvero i 16 bit inferiori della parte intera e i 16 bit superiori della parte frazionaria. I 16 bit superiori della parte intera devono essere determinati indipendentemente.

Un'implementazione non è tenuta a eseguire il Network Time Protocol per utilizzare RTP. Possono essere utilizzate altre sorgenti di tempo, o nessuna (vedere la descrizione del campo timestamp NTP nella Sezione 6.4.1). Tuttavia, l'esecuzione di NTP può essere utile per sincronizzare i flussi trasmessi da host separati.

Il timestamp NTP si azzererà nell'anno 2036, ma per gli scopi di RTP vengono utilizzate solo le differenze tra coppie di timestamp NTP. Finché si può presumere che le coppie di timestamp siano entro 68 anni l'una dall'altra, l'utilizzo dell'aritmetica modulare per le sottrazioni e i confronti rende l'azzeramento irrilevante.