メインコンテンツまでスキップ

4. バイト順序、アライメント、および時刻形式 (Byte Order, Alignment, and Time Format)

すべての整数フィールドは、ネットワークバイト順序、つまり最上位バイト(オクテット)が最初になる順序で伝送されます。このバイト順序は、一般的にビッグエンディアンとして知られています。送信順序は [3] で詳細に説明されています。特に明記されていない限り、数値定数は10進数(基数10)です。

すべてのヘッダーデータは、その自然長に整列されます。つまり、16ビットフィールドは偶数オフセットに整列され、32ビットフィールドは4で割り切れるオフセットに整列されます。パディングとして指定されたオクテットの値はゼロです。

壁時計時刻 (Wallclock Time)(絶対日時)は、ネットワークタイムプロトコル (Network Time Protocol, NTP) のタイムスタンプフォーマットを使用して表現されます。これは、1900年1月1日0時UTCを基準とした秒単位です [4]。完全解像度のNTPタイムスタンプは、整数部分が最初の32ビットに、小数部分が最後の32ビットに格納される64ビット符号なし固定小数点数です。よりコンパクトな表現が適切な一部のフィールドでは、中間の32ビットのみが使用されます。つまり、整数部分の下位16ビットと小数部分の上位16ビットです。整数部分の上位16ビットは、独立して決定される必要があります。

RTPを使用するためにネットワークタイムプロトコルを実行する必要はありません。他の時刻ソース、またはまったくなしでも使用できます(セクション6.4.1のNTPタイムスタンプフィールドの説明を参照)。ただし、NTPを実行することは、別々のホストから送信されるストリームを同期するのに役立つ場合があります。

NTPタイムスタンプは、2036年のいずれかの時点でゼロに折り返されますが、RTPの目的では、NTPタイムスタンプのペア間の差分のみが使用されます。タイムスタンプのペアが互いに68年以内であると仮定できる限り、減算と比較にモジュラー演算を使用することで、折り返しは無関係になります。