4. バイト順序、アライメント、および時刻形式
すべての整数フィールドは、ネットワークバイトオーダー、つまり最上位バイト(オクテット)を最初に配置して伝送されます。このバイトオーダーは一般的にビッグエンディアンとして知られています。伝送順序は[3]で詳細に説明されています。特に明記されていない限り、数値定数は10進数(基数10)です。
すべてのヘッダーデータは、その自然な長さに整列されます。つまり、16ビットフィールドは偶数オフセットに整列され、32ビットフィールドは4で割り切れるオフセットに整列されます。パディングとして指定されたオクテットの値はゼロです。
壁時計時刻(絶対的な日付と時刻)は、Network Time Protocol (NTP)のタイムスタンプ形式を使用して表現されます。これは1900年1月1日0時UTCからの秒数で表されます[4]。完全な解像度のNTPタイムスタンプは、64ビットの符号なし固定小数点数であり、整数部分が最初の32ビット、小数部分が最後の32ビットに格納されます。より簡潔な表現が適切な一部のフィールドでは、中央の32ビットのみが使用されます。つまり、整数部分の下位16ビットと小数部分の上位16ビットです。整数部分の上位16ビットは独立して決定する必要があります。
RTPを使用するためにNetwork Time Protocolを実行する必要はありません。他の時刻ソース、またはまったくなしでも使用できます(セクション6.4.1のNTPタイムスタンプフィールドの説明を参照)。ただし、NTPを実行すると、別々のホストから送信されるストリームを同期するのに役立つ場合があります。
NTPタイムスタンプは2036年のある時点でゼロに戻りますが、RTPの目的では、NTPタイムスタンプのペア間の差のみが使用されます。タイムスタンプのペアが互いに68年以内であると仮定できる限り、減算と比較にモジュラー演算を使用すると、ラップアラウンドは無関係になります。