RFC 4445
A Proposed Media Delivery Index (MDI)
RFC 4445: A Proposed Media Delivery Index (MDI) ๐
Okay bestie, let's get into it โจ This one is Informational, so it's sharing knowledge with the Internet community. It is NOT a standard, and it's dated April 2006. It was written by J. Welch (IneoQuest Technologies) and J. Clark (Cisco Systems). It doesn't obsolete or update anything. Clean slate, no drama ๐
Status of This Memo ๐ธ
This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.
Copyright Notice ๐ฆ
Copyright (C) The Internet Society (2006).
IESG Note ๐
Okay so this one is giving "please read carefully" energy ๐ญ This RFC is not a candidate for any level of Internet Standard. There are IETF standards that are super relevant to this space, specifically RFCs 3393 and 3611, and there's ongoing IETF work in these areas too. The IETF also wants you to know that the decision to publish this RFC was NOT based on IETF review for stuff like security, congestion control, MIB fitness, or inappropriate interaction with deployed protocols. The RFC Editor picked publishing it at their discretion. So readers should be extra cautious about evaluating its value before implementing or deploying anything. See RFC 3932 for more info ๐ซถ
Abstract ๐ง
This memo defines a Media Delivery Index (MDI) measurement that can be used as a diagnostic tool or a quality indicator for monitoring a network meant to deliver things like streaming media, MPEG video, Voice over IP, or other information that's sensitive to arrival time and packet loss. It gives you a read on traffic jitter, a measure of how far things drift from nominal flow rates, and a at-a-glance data loss measure for a particular flow. For example, the MDI can be used as a reference when characterizing and comparing networks that carry UDP streaming media ๐
The MDI measurement defined here is intended for information only. โจ
1. Introduction ๐
Okay so there's been a lot of progress over the last several years on Quality of Service (QoS) over packet-switched networks, which helps streaming media and other time-sensitive, packet-loss-sensitive apps get delivered better ๐ See [i1], [i5], [i6], [i7]. QoS is basically required for lots of practical networks running video transport, because it guarantees bandwidth is available by putting upper limits on how many flows get admitted to a network, and it also bounds the packet jitter the network introduces. Those bounds are needed so a receiver's buffer can be sized to show video properly in real time without overflowing or underflowing ๐ญ
Now, large-scale networks based on RSVP and Diffserv are going through trials [i3] and are being specified by major service providers for transporting streaming media like MPEG video [i4]. So there's a real need to diagnose issues easily, monitor how well networks using these QoS methods are actually working in real time, or figure out whether they're needed at all ๐ฅ Plus, there's a huge installed base of legacy networks with no QoS methods. A delivery system's transitional solution might be a mix of networks with and without these methods, which makes it harder to characterize how these networks behave dynamically ๐
The purpose of this memo is to describe a set of measurements that can be used to derive a Media Delivery Index (MDI). The MDI shows the instantaneous and longer-term behavior of networks carrying streaming media such as MPEG video ๐ฆ
This memo focuses on monitoring MPEG Transport Stream (TS) packets [i8] over UDP, but the general approach is expected to apply to other streaming media and protocols too ๐ It works for both constant and variable bit rate streams, though the variable bit rate case may be a bit trickier to calculate. This document uses the constant bit rate case as the example for describing the measurement. As long as the dynamic bit rate of the encoded stream can be determined (the "drain rate," described below in Section 3), the MDI gives you a measurement of network-induced cumulative jitter. Suggestions and direction for calculating MDI for variable bit rate encoded streams may be covered in a future document ๐
Network packet delivery time variation, and various statistics to characterize it, are described in a generic approach in [i10]. That approach can be parameterized for different purposes, with the goal of a flexible, customizable definition that works for a wide range of applications and further experimentation ๐ Other approaches to characterizing jitter are also captured, such as in [i12]. A wide-ranging report format [i11] has been described to convey information including jitter for use with the RTP Control Protocol (RTCP) [i12]. The MDI is instead meant to specifically address the need for a scalable, economical-to-compute metric that characterizes network impairments imposed on streaming media, independent of control plane, measurement transport protocol, or stream encapsulation protocol. It's a targeted metric for production networks carrying large numbers of streams, for monitoring the quality of flows or for other apps analyzing lots of streams susceptible to IP network device impairments. A good example is the booming deployment of Internet Protocol Television (IPTV) by cable and telecom service providers ๐บ As described below, MDI gives you a readily scalable per-stream measure focused on loss and the cumulative effects of jitter โจ
2. Media Delivery Index Overview ๐งโโ๏ธ
The MDI gives you a relative indicator of the buffer depths needed at the consumer node because of packet jitter, plus an indication of lost packets. By probing a streaming media service network at various nodes and under varying load conditions, you can quickly spot devices or locales that introduce significant jitter or packet loss into the packet stream ๐ By monitoring a network continuously, deviations from nominal jitter or loss behavior can flag an impending or ongoing fault condition, like excessive load ๐จ It's believed that the MDI provides the info needed to detect all network-induced impairments for streaming video or voice-over-IP apps. Other parameters may be needed to troubleshoot and correct the impairments ๐
The MDI is updated at the end of selected time intervals spanning multiple packets that contain the streaming media (such as transport stream packets in the MPEG-2 case). The Maximums and Minimums of the MDI component values are captured over a measurement time. The measurement time can be anything from just long enough to catch an anticipated network anomaly during a troubleshooting session, to indefinitely long for long-term monitoring or logging ๐ธ The Maximums and Minimums may be obtained by sampling the measurement with adequate frequency ๐ซถ
3. Media Delivery Index Components ๐
The MDI has two components: the Delay Factor (DF) and the Media Loss Rate (MLR) ๐
3.1. Delay Factor โจ
okay bestie, the Delay Factor (DF) is the biggest gap you'll see between when media data arrives and when it drains ๐. We check it at the end of every media stream packet and keep the worst gap. The drain rate is assumed to be the nominal constant traffic rate for constant bit rate streams, or the piece-wise computed traffic rate for variable rate media stream packet data ๐ .
When we say "drain rate," we mean the payload media rate. For example, a typical 3.75 Mb/s MPEG video Transport Stream (TS) has a drain rate of 3.75 Mb/s, which is the speed the payload gets consumed (aka displayed) at a decoding node ๐บ. If the number of bytes received equals the number transmitted at the sample time, the instantaneous flow rate balance is zero. BUT the minimum DF is still one line packet's worth of media data, because that's the least amount of data that has to be buffered ๐ซถ.
The DF is the maximum observed value of the flow rate imbalance over a calculation interval. We take the buffered media data in bytes and convert it into how many milliseconds it would take to drain (or fill) at the nominal traffic rate, and that number is your DF ๐งฎ. It's recommended to display DF with a resolution of tenths of milliseconds, so you can actually see stream variations in monitoring and diagnostic apps for typical stream rates from 1 to 40 Mb/s โจ. The DF value must be updated and displayed at the end of a selected time interval. That interval has to be long enough to sample a number of TS packets, so it changes depending on the nominal traffic rate. For typical stream rates of 1 Mb/s and up, an interval of 1 second is long enough, and it should be included for all implementations ๐.
So what does DF actually tell you? It shows how long a data stream has to be buffered (aka delayed) at its nominal bit rate to avoid packet loss ๐ญ. You can also read it as the network latency you have to add from buffering, which is needed to handle stream jitter and prevent loss. The max and min DF over the measurement period (across multiple intervals) can be displayed to show the worst case arrival time deviation, or jitter, relative to the nominal traffic rate ๐. It's a dynamic flow rate balance indicator, with the max and min showing the worst excursions from balance. Iconic, honestly ๐.
DF also gives a hint about the minimum buffer size needed at the next downstream node ๐ง. As a stream goes along, the way DF changes shows packet bunching or packet gaps (jitter). Bigger DF values also mean more network latency is needed to deliver the stream, because the receive buffer has to be pre-filled before draining starts, which guarantees no underflow ๐ธ. The DF has two parts: a fixed part based on packet size, and a variable part based on the buffer utilization of the various switch elements that make up the switched network infrastructure [i2] ๐ฅ.
Now let's get into the math, bestie ๐ค. Picture a virtual buffer VB used to hold the received packets of a stream. When a packet P(i) arrives during a calculation interval, we compute two VB values, VB(i,pre) and VB(i,post):
VB(i,pre) = sum (Sj) - MR * Ti; where j=1..i-1
VB(i,post) = VB(i,pre) + Si
Here Sj is the media payload size of the jth packet, Ti is the relative time at which packet i arrives in the interval, and MR is the nominal media rate ๐.
VB(i,pre) is the Virtual Buffer size just before P(i) arrives, and VB(i,post) is the Virtual Buffer size just after P(i) arrives ๐.
The initial condition VB(0) = 0 is used at the start of each measurement interval ๐. A measurement interval runs from just after the arrival of the last packet in one nominal period (typically 1 second, as we said above) to just after the arrival of the last packet of the next nominal period โญ.
During a measurement interval, if k packets are received, there are 2*k+1 VB values used to derive VB(max) and VB(min) ๐ง . Once you have VB(max) and VB(min) from those 2k+1 VB samples, the DF for the measurement interval is computed and displayed as:
DF = [VB(max) - VB(min)]/ MR
Like we said, a measurement interval of 1 second is typically used ๐. If no packets arrive during an interval, the last DF calculated during an interval where packets did arrive gets displayed again ๐. The arrival time of the last previous packet is always kept around to use when computing VB when the next packet shows up, even if that last packet's arrival spanned measurement intervals ๐ซถ. For the first received measurement interval of a measurement period, no DF is calculated. The packet arrival times are still recorded, though, so they can be used for the VB calculations in the following interval ๐ฆ.
3.2. Media Loss Rate ๐
okay so the Media Loss Rate (MLR) is the count of lost or out-of-order flow packets over a selected time interval ๐. "Flow packets" just means packets carrying streaming application information ๐ . There can be zero or more streaming packets inside a single IP packet. For example, it's super common to carry seven 188 Byte MPEG Transport Stream packets in one IP packet ๐ฆ. So if you lose a single IP packet, that counts as 7 lost packets (unless those 7 included null packets, which don't count) ๐ฌ.
Including out-of-order packets is a big deal, bestie ๐จ. Lots of stream consumer-type devices don't try to reorder packets that show up out of order, so those packets are effectively lost from the viewer's point of view ๐.
3.3. Media Delivery Index ๐โจ
Here's where it all comes together ๐. To present the Delay Factor and Media Loss Rate together, you get the MDI, written like this:
DF:MLR
Where:
DF is the Delay Factor
MLR is the Media Loss Rate
At a receiving node, if you know its nominal drain bit rate, the max DF tells you the buffer size needed to handle packet jitter ๐ง. Or, if you think in Leaky Bucket terms [i9], DF is the bucket size b, expressed as the time it takes to transmit the bucket's traffic b at the given nominal traffic rate r ๐ชฃ๐.
3.4. MDI Application Examples ๐ฆ
Let's talk about where you'd actually use this, bestie ๐. Say you've got a well-characterized receive node that's separated from the data source by unknown or less well-characterized nodes, like intermediate switch nodes. The MDI measured at those intermediate data links gives you a relative indication of how the upstream traffic flows are behaving ๐. Comparing DF between one node and another in a data stream, for a given constant calculation interval, can point to local traffic congestion ๐ฆ. It can also reveal misconfigured QoS flow specification(s) that cause more filling of local measurement point device buffers, resulting flow rate deviations, and possible data loss ๐ฑ.
Now for the jitter tea โ. If DF is high, and/or the DF Max-Min captured over a significant measurement period of multiple intervals is high, jitter has been detected, BUT the longer-term average flow rate may still be nominal ๐ง. That can happen when a transient flow upset from an unrelated traffic stream (one that's not your flow of interest) causes packet bunching ๐. A high DF can cause downstream buffer overflow or underflow, or unacceptable latency, even when no data is lost ๐.
Due to transient network failures or DF excursions, packets can be lost inside the network ๐ฅฒ. The MLR part of the MDI shows that happening ๐.
Through automated or manual flow detection and identification, and then MDI calculations for real-time statistics on a flow, DF can show the dynamic deterioration or increasing burstiness of a flow โก. That helps you anticipate a developing network operation problem, like transient oversubscription ๐ฎ. These statistics can be collected for flows inside network switches using the available switch CPU resources, because the computational requirements are minimal for small numbers of flows ๐งฎ. Stats for all flows on, say, a gigabit Ethernet network will likely need dedicated hardware facilities, though those can be modest, since buffer requirements and per-flow calculations are minimal ๐ ๏ธ. Once switches are equipped with MDI measurements, flow impairment issues can be quickly identified, localized, and corrected ๐ฏ. Until switches have the right hardware resources, dedicated hardware tools can supply extra switch statistics by getting access to switch flows through mirror ports, link taps, or something similar, as a transition strategy ๐.
The MDI can also characterize a flow decoder's acceptable performance ๐บ. For example, an MPEG decoder could be characterized as tolerating a flow with a given maximum DF and MLR for acceptable display performance (meaning acceptable on-screen artifacts) ๐ผ๏ธ. Network conditions like Interior Gateway Protocol (IGP) reconvergence time could then be included in the flow tolerance DF too, which leads to a higher-quality user experience ๐ โจ.
4. Summary ๐ธ
The MDI combines the Delay Factor, which shows the potential for impending data loss, with the Media Loss Rate, which is the indicator of lost data ๐. By monitoring DF and MLR, plus their min and max excursions over a measurement period, at multiple strategic locations in a network, you can detect and isolate traffic congestion or device impairments for a network carrying streaming media content ๐๐ซถ.
5. Security Considerations ๐
โ ๏ธ bestie, read this part carefully!
The measurements in this document do not directly affect the security of a network or a user ๐ก๏ธ. Actions taken in response to these measurements that may affect the available bandwidth of the network or the availability of a service are out of scope for this document ๐ซ.
Doing the measurements described here only requires looking at payload header information (like MPEG transport stream headers or RTP headers) to determine the nominal stream bit rate and sequence number information ๐. Content can be encrypted without affecting these measurements ๐. So content privacy is not expected to be a concern ๐.
6. Informative References ๐
[i1] Braden, R., Zhang, L., Berson, S., Herzog, S., and S. Jamin,
"Resource ReSerVation Protocol (RSVP) -- Version 1 Functional
Specification", RFC 2205, September 1997.
[i2] Partridge, C., "A Proposed Flow Specification", RFC 1363,
September 1992.
[i3] R. Fellman, `Hurdles to Overcome for Broadcast Quality Video
Delivery over IP` VidTranS 2002.
[i4] CableLabs `PacketCable Dynamic Quality-of-Service
Specification`, PKT-SP-DQOS-I06-030415, 2003.
[i5] Shenker, S., Partridge, C., and R. Guerin, "Specification of
Guaranteed Quality of Service", RFC 2212, September 1997.
[i6] Wroclawski, J., "Specification of the Controlled-Load Network
Element Service", RFC 2211, September 1997.
[i7] Braden, R., Clark, D., and S. Shenker, "Integrated Services in
the Internet Architecture: an Overview", RFC 1633, June 1994.
[i8] ISO/IEC 13818-1 (MPEG-2 Systems)
[i9] V. Raisanen, "Implementing Service Quality in IP Networks",
John Wiley & Sons Ltd., 2003.
[i10] Demichelis, C. and P. Chimento, "IP Packet Delay Variation
Metric for IP Performance Metrics (IPPM)", RFC 3393, November
2002.
[i11] Friedman, T., Caceres, R., and A. Clark, "RTP Control Protocol
Extended Reports (RTCP XR)", RFC 3611, November 2003.
[i12] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson,
"RTP: A Transport Protocol for Real-Time Applications", STD 64,
RFC 3550, July 2003.
7. Acknowledgements โจ
Okay bestie, huge shoutout time ๐ฃ๐ซถ The authors wanted to thank Marc Todd and Jesse Beeson of IneoQuest Technologies, Inc., Bill Trubey and John Carlucci of Time Warner Cable, Nishith Sinha of Cox Communications, Ken Chiquoine of SeaChange International, Phil Proulx of Bell Canada, Dr Paul Stallard of TANDBERG Television, Gary Hughes of Broadbus Technologies, Brad Medford of SBC Laboratories, John Roy of Adelphia Communications, Cliff Mercer, PhD of Kasenna, Mathew Ho of Rogers Cable, and Irl Duling of Optinel Systems ๐. They reviewed and evaluated early versions of this document and the MDI implementations, and honestly that's so iconic of them ๐
Authors' Addresses ๐
Here's where you can find the authors, no cap ๐
James Welch
IneoQuest Technologies, Inc
170 Forbes Blvd
Mansfield, Massachusetts 02048
Phone: 508 618 0312
EMail: Jim.Welch@ineoquest.com
James Clark
Cisco Systems, Inc
500 Northridge Road
Suite 800
Atlanta, Georgia 30350
Phone: 678 352 2726
EMail: jiclark@cisco.com
Full Copyright Statement ๐ฆ
Copyright (C) The Internet Society (2006) ๐ธ
This document is subject to the rights, licenses and restrictions contained in BCP 78 and at www.rfc-editor.org/copyright.html, and except as set forth therein, the authors retain all their rights.
This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ๐
Intellectual Property ๐
The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document, or the extent to which any license under such rights might or might not be available. It also doesn't represent that it has made any independent effort to identify any such rights. Info on the procedures for rights in RFC documents can be found in BCP 78 and BCP 79 ๐
Copies of IPR disclosures made to the IETF Secretariat, any assurances of licenses to be made available, or the result of an attempt to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be found in the IETF on-line IPR repository at http://www.ietf.org/ipr โจ
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Send that info to the IETF at ietf-ipr@ietf.org ๐
Acknowledgement ๐ซถ
Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA) ๐
๐ฆ where this page comes from
- ietf: rfc4445 2006-04
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms