RTP and Leap Seconds
AVA Networks
Boulder
CO
US
kevin.gross@avanw.com
TNO
Brassersplein 2
Delft
2612CT
the Netherlands
+31-88-866-7000
ray.vanbrandenburg@tno.nl
Real-time Applications and Infrastructure
AVTCore
Leap second
RTP
Real-time Transport Protocol
NTP
Network Time Protocol
UTC
Universal Coordinated Time
TAI
International Atomic Time
Unix time
This document discusses issues that arise when RTP sessions span
Universal Coordinate Time (UTC) leap seconds. It updates RFC 3550 to describe how RTP senders and
receivers should behave in the presence of leap seconds.
In some media networking applications, RTP streams are referenced to a wall-clock time
(absolute date and time). This is accomplished through use of
the NTP timestamp field in the RTCP sender report (SR) to create a
mapping between RTP timestamps and the wall clock. When a wall-clock
reference is used, the play-out time for RTP packets is referenced to the
wall clock. Smooth and continuous media play out requires a smooth and
continuous time base. The time base used by the wall clock may include leap
seconds which are not rendered smoothly.
This document provides recommendations for smoothly rendering
streamed media referenced to common wall clocks which do not have smooth
or continuous behavior in the presence of leap seconds.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in
and indicate requirement levels for compliant implementations.
The world time standard is International Atomic Time (TAI) which is based on vibrations of cesium atoms in an atomic clock. The more common Universal Coordinated Time (UTC) is based on the rotation of the Earth. In 1971 UTC was redefined in terms of TAI and the concept of leap seconds was introduced to allow UTC to remain synchronized with with the rotation of the Earth. Leap seconds are scheduled
by the International Earth Rotation and Reference Systems Service. Leap seconds may be scheduled at the last day of any month but are preferentially scheduled for
December and June and secondarily March and September. Because Earth's rotation is
unpredictable, leap seconds are typically not scheduled more than six
months in advance. Leap seconds can be scheduled to either add or remove
a second from the day. All leap second events since their introduction in 1971 have been scheduled in June or December and all have added
seconds. This is a situation that is expected to but not guaranteed to
continue.
NOTE- The ITU is studying a proposal which could eventually eliminate
leap seconds from UTC. As of January 2012, this proposal is expected to
be decided no earlier than 2015.
UTC clocks insert a 61st second at the end of the day when a leap
second is scheduled. The leap second is designated "23h 59m 60s".
Under NTP a leap second is inserted at the
beginning of the last second of the day. This results in the clock
freezing or slowing for one second immediately prior to the last
second of the affected day. This results in the last second of the day
having a real-time duration of two seconds.
Most POSIX systems insert the leap second at the end of the last
second of the day. This results in repetition of the last second. A
timestamp within the last second of the day is therefore ambiguous in
that it can refer to a moment in time in either of the last two seconds of a day
containing a leap second.
summarizes behavior across a leap second for the wall clocks discussed above.
The table illustrates the leap second that occurred June 30, 2012 when the offset between International Atomic time (TAI) and UTC changed from 34 to 35 seconds. The first column shows RTP timestamps for an 8 kHz audio stream. The second column shows the TAI reference. Following columns show behavior for the leap-second-bearing wall clocks described above. Time values are shown at half-second intervals.
RTP
TAI
UTC
POSIX
NTP
8000
00:00:32.500
23:59:58.500
23:59:58.500
23:59:58.500
12000
00:00:33.000
23:59:59.000
23:59:59.000
23:59:59.000
16000
00:00:33.500
23:59:59.500
23:59:59.500
23:59:59.500
20000
00:00:34.000
23:59:60.000
23:59:59.000
00:00:00.000
24000
00:00:34.500
23:59:60.500
23:59:59.500
00:00:00.000
28000
00:00:35.000
00:00:00.000
00:00:00.000
00:00:00.000
32000
00:00:35.500
00:00:00.500
00:00:00.500
00:00:00.500
Senders and receivers which are not referenced to a wall clock are not
affected by issues associated with leap seconds and no special
accommodation is required.
RTP implementation using a wall-clock reference is simplified by using
a clock with a timescale which does not include leap seconds. IEEE
1588 , GPS and
other TAI
references do not include leap seconds. NTP time, operating system
clocks and other UTC (Coordinated Universal Time) references include
leap seconds.
All participants working to a leap-second-bearing reference SHOULD
recognize leap seconds and have a working communications channel to
receive notification of leap second scheduling. Without prior knowledge
of leap second schedule, NTP servers and clients may become offset by
exactly one second with respect to their UTC reference. This potential
discrepancy begins when a leap second occurs and ends when all
participants receive a time update from a server or peer. Depending on
the system implementation, the offset can last anywhere from a few
seconds to a few days. A long-lived discrepancy can be particularly
disruptive to RTP operation.
Because of the ambiguity leap seconds can introduce and the
inconsistent manner in which different systems accommodate leap seconds,
generating or using NTP timestamps during the entire last second of a
day on which a leap second has been scheduled SHOULD be avoided. Note
that the period to be avoided has a real-time duration of two
seconds. In the example, the region to be avoided is indicated by RTP timestamps 12000 through 28000
RTP Senders working to a leap-second-bearing reference SHOULD NOT
generate sender reports containing an originating NTP timestamp in the
vicinity of a leap second. Receivers SHOULD ignore timestamps in any
such reports inadvertently generated.
Receivers working to a leap-second-bearing reference SHOULD take
leap seconds in their reference into account in determining play-out
time from RTP timestamps for data in RTP packets.
It is believed that the recommendations herein introduce no new
security considerations beyond those already discussed in .
This document has no actions for IANA.
The authors would like to thank Steve Allen for his valuable comments
in helping to improve this document.
RTP: A Transport Protocol for Real-Time Applications,
RFC3550
Key words for use in RFCs to Indicate Requirement
Levels
Recommendation ITU-R TF.460-4 - Standard-frequency and time-signal emissions
ITU-R
Question SG07.236
ITU-R Working Party 7A
Network Time Protocol Version 4: Protocol and Algorithms
Specification
IEEE Standard for a Precision Clock Synchronization Protocol
for Networked Measurement and Control Systems
IEEE
Navstar GPS Space Segment/Navigation User Segment
Interfaces
Global Positioning Systems
Directorate
Circular T
BIPM