AVTCoreInternet Engineering Task Force (IETF) K. GrossInternet-DraftRequest for Comments: 7164 AVA Networks Updates: 3550(if approved)R. van BrandenburgIntended status:Category: Standards Track TNOExpires: July 16, 2014 January 12,ISSN: 2070-1721 March 2014 RTP and Leap Secondsdraft-ietf-avtcore-leap-second-08Abstract This document discusses issues that arise when RTP sessions span Coordinated Universal Time (UTC) leap seconds. It updates RFC 3550to describeby describing how RTP senders and receivers should behave in the presence of leap seconds. Status of This Memo ThisInternet-Draftissubmitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documentsan Internet Standards Track document. This document is a product of the Internet Engineering Task Force (IETF).Note that other groups may also distribute working documents as Internet-Drafts. The listIt represents the consensus ofcurrent Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents validthe IETF community. It has received public review and has been approved fora maximumpublication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 ofsix monthsRFC 5741. Information about the current status of this document, any errata, and how to provide feedback on it may beupdated, replaced, or obsoleted by other documentsobtained atany time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on July 16, 2014.http://www.rfc-editor.org/info/rfc7164. Copyright Notice Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 3. LeapsecondsSeconds . . . . . . . . . . . . . . . . . . . . . . . .32 3.1. UTCbehaviorBehavior duringpositive leap second .a Positive Leap Second . . . . . . . 3 3.2. NTPbehaviorBehavior duringpositive leap second .a Positive Leap Second . . . . . . . 3 3.3. POSIXbehaviorBehavior duringpositive leap second .a Positive Leap Second . . . . . . 3 3.4. Example ofleap-second behaviorsLeap-Second Behaviors . . . . . . . . . . . . 4 4. ReceiverbehaviorBehavior duringleap second .a Leap Second . . . . . . . . . . . 5 5. Recommendations . . . . . . . . . . . . . . . . . . . . . . . 5 5.1. Sender Reports . . . . . . . . . . . . . . . . . . . . . 6 5.2. RTP Packet Playout . . . . . . . . . . . . . . . . . . . 7 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 7.IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 8.Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 89.8. References . . . . . . . . . . . . . . . . . . . . . . . . . 89.1.8.1. Normative References . . . . . . . . . . . . . . . . . . 89.2.8.2. Informative References . . . . . . . . . . . . . . . . . 8Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 91. Introduction 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 sender report (SR) to create a mapping between RTP timestamps and the wall clock. When a wall-clock reference is used, the playout time for RTP packets is referenced to the wall clock. Smooth and continuous media playout requires a smooth and continuous time base. The time base used by the wall clock may include leap secondswhichthat are not rendered smoothly. This document updates RFC 3550 [1] by providing recommendations for smoothly rendering streamed media referenced to common wall clockswhichthat do not have smooth or continuous behavior in the presence of leap seconds. 2. Terminology 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 RFC 2119 [2] and indicate requirement levels for compliant implementations. 3. LeapsecondsSeconds Theworldworld's scientific time standard is International Atomic Time(TAI)(TAI), which is based on vibrations of cesium atoms in an atomic clock. Theworldworld's civil time is based on the rotation of the Earth. In19721972, the civil time standard, Coordinated Universal Time (UTC), was redefined in terms of TAI and the concept of leap seconds was introduced to allow UTC to remain synchronized 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 andSeptember.[6]September [6]. Because Earth's rotation is unpredictable, leap seconds are typically not scheduled more than six months in advance. Leap seconds do not respect local time and always occur at the end of the UTC day. Leap seconds can be scheduled to either add or remove a second from the day. A leap second that adds an extra second is known as a positive leap second. A leap second that skips a second is known as a negative leap second.All leap seconds sinceSince their introduction in19721972, all leap seconds have been scheduled in June orDecemberDecember, andallthey have all been positive.NOTE-NOTE: The ITU is studying a proposalwhichthat could eventually eliminate leap seconds from UTC. As of January 2012, this proposal is expected to be decided no earlier than2015.[7]2015 [7]. 3.1. UTCbehaviorBehavior duringpositive leap seconda Positive Leap Second UTC clocks feature a 61st second at the end of the day when a positive leap second is scheduled. The leap second is designated "23h 59m 60s". 3.2. NTPbehaviorBehavior duringpositive leap seconda Positive Leap Second UnderNTP[8]NTP [8], 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. Timestamp accuracy is compromised during this period because the clock's rate is not well defined. 3.3. POSIXbehaviorBehavior duringpositive leap seconda Positive Leap Second The POSIX (Portable Operating System Interface) standard [3] requires that leap seconds be omitted from reported time. All days are defined as having 86,400secondsseconds, but the timebase is defined to be UTC, a leap-second-bearingreference .reference. Implementors of POSIX systems are offered considerable latitude by the standard as to how to map POSIX time to UTC. In manysystemssystems, leap seconds are accommodated by repeating the last second of the day. 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. Other systems use the same technique used by NTP, freezing or slowing for one second immediately prior to the last second of the affected day. In somecases [5] [4]cases, leap seconds are accommodated by warpingtime, slightly alteringtime [5] [4]; that is, the length of the second in the vicinity of a leapsecond.second is slightly altered. 3.4. Example ofleap-second behaviorsLeap-Second Behaviors Table 1 illustrates the positive leap second that occurred June 30, 2012 when the offset betweenInternational Atomic time (TAI)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.FollowingThe following columns show behavior for theleap-second- bearingleap-second-bearing wall clocks described above. Time values are shown athalf- secondhalf-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 | +-------+--------------+--------------+--------------+--------------+ Table 1: Positiveleap second behavior NOTE-Leap-Second Behavior NOTE: Some NTP implementations do not entirely freeze the clock while the leap second is inserted. Successive calls to retrieve system time return infinitesimally larger(e.g.(e.g., 1 microsecond or 1 nanosecond larger) time values. This behavior is designed to satisfy assumptions applications may make that time increases monotonically. This behavior occurs in the least-significant bits of the time value and so is not typically visible in the human-readable format shown in the table.NOTE-NOTE: POSIX implementations vary. The implementation shown here repeats the last second of the affected day. Other implementations mirror NTP behavior or alter the length of a second in the vicinity of the leap second. 4. ReceiverbehaviorBehavior duringleap seconda Leap Second Timestamps generated during a leap second may be ambiguous or interpreted differently by a sender and receiver or interpreted differently by different receivers. Without prior knowledge of the 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 operation of NTP- referenced RTPoperation.streams. These discrepancies, depending on direction, may cause receivers to think they are receiving RTP packets after they should be played or to attempt to buffer received data an additional second before playing it. Either situation can cause an interruption in playback. Some receivers may automatically recognize an unexpected offset and resynchronize to the stream to accommodate it. Once the offset is resolved, such receivers may need to resynchronize again. 5. Recommendations Senders and receiverswhichthat are not referenced to a wall clock are not affected by issues associated with leapsecondsseconds, and no special accommodation is required. RTP implementation using a wall-clock reference is simplified by using a clock with a timescalewhichthat does not include leap seconds. IEEE1588,[9]1588 [9], GPS[10][10], and other systems that use a TAI [11] reference do not include leap seconds. NTP time, operating systemclocksclocks, and other systems using a UTC reference include leap seconds. Note that some TAI-based systems such as IEEE 1588 and GPS, in addition to the TAI reference clock, deliver TAI to UTC mapping information. By combining the delivered TAI reference clock and the mapping information, some receivers of these systems are able tosynthezisesynthesize a leap-second-bearing UTC reference clock. For the purposes of thisdraft,document, it is important torecogniserecognize that it is the timescale used, not the delivery mechanismwhichthat determines whether a reference clock is leap-second bearing.+-------------------------+----------------+---------------++-------------------------+---------------------+---------------+ | Reference clock type | Examples | Accommodation |+-------------------------+----------------+---------------++-------------------------+---------------------+---------------+ | None | Self clocking | None needed | | Non-leap-second-bearing | IEEE 1588, GPS, TAI | None needed | | Leap-second-bearing | NTP | Recommended |+-------------------------+----------------+---------------++-------------------------+---------------------+---------------+ Table 2: RecommendationssummarySummary All participantsworking togenerating or consuming timestamps associated with a leap-second-bearing reference MUST recognize leap seconds and SHOULD have a working communications channel to receivenotificationnotifications of leap-second scheduling. A working communication channel includes a protocol means of notifying clocks of an impending leap second such as the Leap Indicator in the NTP header [8]butand also a means fortop-tiertop- tier clocks to receiveleap- secondleap-second schedule information published by the International Earth Rotation and Reference SystemsService. [12] These recommendations appreciate that suchService [12]. Such a communications channel may not be available on all networks. For security or other reasons, leap-second schedules may be configured manually for some networks or clocks. When a device does not reliably receive leap-second scheduling information, failures as described in Section 4 may occur. Because of the timestamp ambiguity that positive leap seconds can introduce and the inconsistent manner in which different systems accommodate positive leap seconds, generating or using NTP timestamps during the entire last second of a day on which a positive 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 Table 1 example, the region to be avoided is indicated by RTP timestamps 12000 through 28000 Negative leap seconds do not introduce timestamp ambiguity or other complications. No special treatment is needed to avoid ambiguity with respect to RTP timestamps in the presence of a negative leap second. POSIX clockswhichthat use a warping technique to accommodate leap seconds(e.g. [5] [4])(e.g., [4] [5]) are not a good choice for an interoperable timestamp reference and SHOULD not beavoided for this application.used to timestamp RTP streams. 5.1. Sender Reports In order to avoid generating or using NTP timestamps during positive leap seconds, RTP senders and receivers need to avoid sending or using sender reports to synchronize their clocks in the vicinity of a leap second and instead rely on their internal clocks to maintainsyncsynchronization until the leap second has passed. RTP Sendersworking tousing a leap-second-bearing reference for timestamps SHOULD NOT generate sender reports containing an originating NTP timestamp in the vicinity of a positive leap second. To maintain a consistent RTCP schedule and avoid the risk of unintentional timeouts, such senders MAY send receiver reports in place of sender reports in the vicinity of the leap second. For the purpose of suspending sender reports in the vicinity of a leap second, senders MAY assume that a positive leap second occurs at the end of the last day of every month. Receiversworking to aconsuming leap-second-bearingreferencetimestamps SHOULD ignore timestamps in any sender reports generated in the vicinity of a positive leap second. For the purpose of ignoring sender reports in the vicinity of a leap second, receivers MAY assume that a positive leap second occurs at the end of the last day of every month. 5.2. RTP Packet Playout Receiversworking to aconsuming leap-second-bearingreferencetimestamps SHOULD take both positive and negative leap seconds in the reference into accountin determiningto determine the playout time based on RTP timestamps for data in RTP packets. 6. Security Considerations RTP streams using a wall-clock reference as discussed here present an additional attack vector compared to self-clocking streams. Manipulation of the wall clock at either the sender or receiver can potentially disrupt streaming. For an RTP stream operating toana leap-second-bearing reference to operate reliably across a leap second, the sender andreceivereceiver must both be aware of the leap second. It is possible to disrupt a stream by blocking or delaying leap second notification to one of the participants. Streaming can be similarly affected if one of the participants can be tricked into believing a leap second has been scheduled where there is not one. These vulnerabilities are present in RFC 3550 [1] and these new recommendations neither heightenornor diminish them. Integrity of theleap secondleap-second schedule is the responsibility of the operating system and time distributionmechanismmechanism, both of which are outside the scope of RFC 3550 [1] and these recommendations. 7.IANA Considerations This document has no actions for IANA. 8.Acknowledgements The authors would like to thank Steve Allen for his valuable commentsin helpingthat helped to improve this document.9.8. References9.1.8.1. Normative References [1] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003. [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.9.2.8.2. Informative References [3] IEEE,"IEEE Standard for Information Technology - Portable"Portable Operating System Interface (POSIX)", IEEE Standard 1003.1-2008, December 2008,<http://standards.ieee.org/findstds/ standard/1003.1-2008.html>.<http://standards.ieee.org/findstds/standard/ 1003.1-2008.html>. [4] Google, Inc., "Time, technology and leaping seconds", September 2011, <http://googleblog.blogspot.com/2011/09/ time-technology-and-leaping-seconds.html>. [5] Kuhn, M., "Coordinated Universal Time with Smoothed Leap Seconds (UTC-SLS)",draft-kuhn-leapsecond-00 (workWork inprogress),Progress, January 2006. [6] ITU, "Standard-frequency and time-signal emissions", ITU-R TF.460-6, February 2002, <http://www.itu.int/rec/R-REC-TF.460/>. [7] ITU,"Question"QUESTION ITU-R 236/7", February 2012, <http://www.itu.int/pub/R-QUE-SG07.236-2001>. [8] Mills, D., Martin, J., Burbank, J., and W. Kasch, "Network Time Protocol Version 4: Protocol and Algorithms Specification", RFC 5905, June 2010. [9] IEEE, "IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems", IEEE Standard 1588-2008, July 2008, <http://standards.ieee.org/findstds/standard/ 1588-2008.html>. [10] Global Positioning Systems Directorate,"Navstar GPS Space Segment/Navigation User Segment Interfaces","Systems Engineering & Integration Interface Specification", September 2011, <http://www.navcen.uscg.gov/pdf/IS-GPS-200F.pdf>. [11] Bureau International des Poids etMesures (BIPM),Mesures, "International Atomic Time",November 2013,Navstar GPS Space Segment/Navigation User Segment Interfaces IS-GPS-200, <http://www.bipm.org/en/scientific/tai/tai.html>. [12]InternationalIERS EarthRotation and Reference System Service,Orientation Centre, "BulletinC", November 2013, <http://datacenter.iers.org/ web/guest/eop/-/somos/5Rgv/product/16>.C - Product metadata", <http://datacenter.iers.org/web/guest/eop/-/ somos/5Rgv/product/16>. Authors' Addresses Kevin Gross AVA Networks Boulder, CO USEmail:EMail: kevin.gross@avanw.com Ray van Brandenburg TNO Brassersplein 2 Delft 2612CT the Netherlands Phone: +31-88-866-7000Email:EMail: ray.vanbrandenburg@tno.nl