4.3. Packet Receipt Times Report Block (パケット受信時刻レポートブロック)
4.3. Packet Receipt Times Report Block (パケット受信時刻レポートブロック)
このブロックタイプは, 与えられたソースの RTP パケットストリームのパケット受信時刻についてシーケンス番号ごとのレポートを許可します。このような情報は, ソースの RTP パケットを配信するために使用されるマルチキャストツリーのトポロジ, およびそのツリー内のリンクに沿った遅延の MINC 推論に使用できます。また, 部分的なパス特性を測定し, パケットジッターの分布をモデル化するためにも使用できます。
パケット受信時刻は, データパケットの RTP タイムスタンプと同じ単位で表現されます。これは, 各パケットについて, 送信時刻と受信時刻の両方を比較可能な用語で確立できるようにするためです。ただし, RTP 送信者は通常その時刻をランダムに選択された値に初期化するため, 報告された送信時刻と受信時刻が送信者と受信者の間の片方向遅延に等しい量だけ異なることを期待することはできません。それにもかかわらず, 報告された時刻は上記の目的に有用です。
このブロックで報告される各シーケンス番号について, 少なくとも1つのパケットが受信されていなければなりません。このブロックタイプが失われたパケットを含む一連のシーケンス番号の受信時刻を報告するために使用される場合, 複数のブロックが必要です。与えられたシーケンス番号について重複パケットが受信され, それらのパケットの受信時刻が異なる場合, 最も早い時刻以外の時刻を報告してはなりません。これはレポート間の一貫性を確保するためです。
RTP タイムスタンプ形式で報告される時刻は, 損失または重複情報よりも多くのビットを消費し, ランレングスエンコーディングには適していません。Packet Receipt Times Report Block のサイズを制限するために, 間引きの使用が推奨されます。
Packet Receipt Times Report Block は次のフォーマットを持ちます:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BT=3 | rsvd. | T | block length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of source |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| begin_seq | end_seq |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receipt time of packet begin_seq |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receipt time of packet (begin_seq + 1) mod 65536 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: ... :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receipt time of packet (end_seq - 1) mod 65536 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
block type (BT): 8 ビット Packet Receipt Times Report Block は定数 3 によって識別されます。
rsvd.: 4 ビット このフィールドは将来の定義のために予約されています。そのような定義がない場合, このフィールドのビットはゼロに設定されなければならず, 受信者によって無視されなければなりません。
thinning (T): 4 ビット セクション 4.1 で定義されています。
block length: 16 ビット セクション 3 で定義されています。
SSRC of source: 32 ビット セクション 4.1 で定義されています。
begin_seq: 16 ビット セクション 4.1 で定義されています。
end_seq: 16 ビット セクション 4.1 で定義されています。
Packet i receipt time: 32 ビット 受信者におけるシーケンス番号 i のパケットの受信時刻。パケットフォーマット図に示されるモジュラー演算は, シーケンス番号のロールオーバーを許可するためのものです。時刻値はリンク層インターフェースで確立されることが望ましく, いずれにしても可能な限りワイヤ到着時刻に近いことが望ましいです。単位とフォーマットは RTP データパケットのタイムスタンプと同じです。定期的なプレイアウトに有用な情報を伝えるためにシステムクロック値の代わりに名目値が使用される可能性がある RTP データパケットタイムスタンプとは対照的に, 受信時刻は可能な限り実際の時刻を反映すべきです。セッションについて, RTP タイムスタンプがランダムに選択される場合, 最初の受信時刻値もランダムに選択されるべきであり, 後続のタイムスタンプはこの値からオフセットされます。一方, RTP タイムスタンプが送信者の参照時刻を反映することを意図している場合, 受信時刻は受信者の参照時刻にできるだけ近くあるべきです。