RTP Control Protocol (RTCP) Extended Report (XR) Blocks for Synchronization Delay and Offset Metrics Reporting
Extracted elements (21)
The Initial Synchronization Delay block is designed to be sent only occasionally (e.g., once at session start) because synchronization delay is primarily a startup metric rather than a continuous one. In the absence of packet loss it equals the time to receive the first RTCP SR in the session with the longest RTCP reporting interval.
The Synchronization Offset field uses a 64-bit signed NTP-format timestamp (integer part in first 32 bits, fractional part in last 32 bits) for sub-millisecond precision, mirroring the jitter calculation approach from RFC 3550 to ensure consistency with existing RTP implementations.
If in-band delivery of NTP-format timestamps is supported (RFC 6051), the NTP timestamps Si and Sj for the Synchronization Offset calculation should be obtained directly from RTP packets; otherwise they must be calculated from corresponding RTP timestamps.
In the RFISD block, if the Initial Synchronization Delay measurement is unavailable, the value of the field with all bits set to 1 MUST be reported.
In the RFISD block, the Reserved 8-bit field MUST be set to zero and ignored by the receiver.
In the RFSO block, if the Synchronization Offset measurement is unavailable, the value of the field with all bits set to 1 MUST be reported.
In the RFSO block, the 6-bit Reserved field MUST be set to zero and MUST be ignored by the receiver.
In the RFSO block, the value I=00 MUST NOT be used; if received, the XR block MUST be ignored by the receiver.
The RFSO block relies on the measurement period in the Measurement Information block and SHOULD be sent in the same compound RTCP packet as the Measurement Information Block. If the measurement period is not received in the same compound RTCP packet, the RFSO block MUST be discarded.
XR blocks MAY be used without prior SDP signaling, as defined in RFC 3611.
SDP signaling for the two new XR blocks uses the 'rtcp-xr' attribute with new parameter tokens: 'rtp-flow-init-syn-delay' for RFISD and 'rtp-flow-syn-offset' for RFSO, defined using ABNF per RFC 3611 and RFC 5234.
The Initial Synchronization Delay field is a 32-bit value representing the average delay from the beginning of the multimedia session to the time when RTCP packets are received on all component RTP sessions, calculated from received RTCP SR packets or RTP header extensions containing in-band NTP-format timestamp mappings per RFC 6051.
The Interval Metric Flag (I) is a 2-bit field indicating whether the Synchronization Offset is a Sampled Value (I=01), Interval Duration (I=10), or Cumulative Duration (I=11). The value I=00 is reserved and MUST NOT be used.
The RTP Flow Initial Synchronization Delay Metrics Block (BT=27) reports the average time difference between the start of a multimedia session and when the RTP receiver acquires all components of RTP sessions. It is sent by RTP receivers and needs to be exchanged only occasionally, for example once at the start of the RTP session.
The RTP Flow Synchronization Offset Metrics Block (BT=28) reports the relative average time difference between two arbitrary RTP streams with the same CNAME that need to be synchronized. It is sent by RTP receivers and references a Measurement Information block (RFC 6776) for the measurement period.
The Synchronization Offset is a 64-bit signed NTP-format timestamp computed as D(i,j) = (Rj - Ri) - (Sj - Si), where S denotes NTP send timestamps and R denotes NTP arrival timestamps. A positive value means the reporting stream leads the reference stream; negative means it lags; zero identifies the reference stream itself.
This document registers two new block type values in the RTCP XR Block Type Registry: RFISD (RTP Flow Initial Synchronization Delay, value 27, Section 3) and RFSO (RTP Flow Synchronization Offset, value 28, Section 4).
This document registers two new SDP parameters for the 'rtcp-xr' attribute in the RTCP XR SDP Parameters Registry: 'rtp-flow-init-syn-delay' and 'rtp-flow-syn-offset'.
When using Secure RTP (RFC 3711) or other media-layer security, reporting accurate synchronization offset information can expose timing details of cryptographic operations, potentially enabling a side-channel attack on the encryption. Implementations in sensitive environments MUST ensure cryptographic processing and media compression take constant time irrespective of media content.
The RFISD block has a 4-word (128-bit) structure: 8-bit BT=27, 8-bit Reserved, 16-bit Block length=2, 32-bit SSRC of Source, and 32-bit Initial Synchronization Delay field expressed in units of 1/65536 seconds.
The RFSO block has a 5-word (160-bit) structure: 8-bit BT=28, 2-bit Interval Metric Flag (I), 6-bit Reserved, 16-bit Block length=3, 32-bit SSRC of Source, and 64-bit signed NTP-format Synchronization Offset (most significant word followed by least significant word).