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

RFC 3550 - 4. バイト順序、アラインメント、および時刻形式

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

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

すべてのヘッダデータはその自然長にアラインされる。すなわち、16 ビットフィールドは偶数オフセットに、32 ビットフィールドは 4 で割り切れるオフセットにアラインされる、といった具合である。パディングとして指定されたオクテットの値はゼロである。

掛時計時刻(絶対日付および時刻)は、ネットワーク時刻プロトコル(NTP)のタイムスタンプ形式を用いて表現される。これは 1900 年 1 月 1 日 0 時 UTC を基準とした秒数である [4]。完全解像度の NTP タイムスタンプは、整数部が上位 32 ビット、小数部が下位 32 ビットの 64 ビット符号なし固定小数点数である。よりコンパクトな表現が適するいくつかのフィールドでは、中央の 32 ビットのみが用いられる。すなわち、整数部の下位 16 ビットと小数部の上位 16 ビットである。整数部の上位 16 ビットは別途決定されなければならない。

RTP を利用するために、実装がネットワーク時刻プロトコルを稼働させる必要はない。他の時刻源、あるいはまったく無くてもよい(セクション 6.4.1 の NTP タイムスタンプフィールドの記述参照)。ただし、別々のホストから送信されるストリームを同期させるには NTP を稼働させることが有用であり得る。

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