RFC 5644

IP Performance Metrics (IPPM): Spatial and Multicast

๐Ÿ“… published October 2009, from ietf

RFC 5644: IP Performance Metrics (IPPM): Spatial and Multicast โœจ๐ŸŽ€

Okay bestie, this one's from the Network Working Group ๐ŸŒธ and it's a Standards Track doc, so it's an official spec, not just vibes. The authors are E. Stephan (France Telecom), L. Liang (University of Surrey), and A. Morton (AT&T Labs). It came out in October 2009 ๐Ÿ“…. It's all about IP Performance Metrics (IPPM) ๐Ÿ“Š, which is the IETF's way of measuring how a network is doing ๐Ÿ’….


Abstract ๐Ÿฆ‹

The IETF already has IPPM for checking end-to-end performance between two points, like two endpoints talking to each other. This memo adds two brand-new categories of metrics that work across multiple measurement points ๐Ÿ”ฅ. The first is spatial metrics, which measure how each segment of a source-to-destination path is doing. The second is metrics for measuring the performance between one source and many destinations in multiparty communications, like a multicast tree ๐ŸŒณ.

Status of This Memo ๐Ÿ“

This is an Internet standards track protocol for the Internet community, and the authors are literally asking for feedback and suggestions to make it better ๐Ÿซถ. If you want the current standardization state and status of this protocol, check the "Internet Official Protocol Standards" (STD 1) doc ๐Ÿ“š. Distribution of this memo is unlimited, so share away ๐Ÿ’œ.

Copyright (c) 2009 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), as they were in effect on the day this was published ๐Ÿงพ. Please actually read these, because they spell out your rights and restrictions for this document ๐Ÿ™ˆ. Code Components pulled out of this document must include the Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as described in the BSD License ๐Ÿ’€.

This document may contain material from IETF Documents or IETF Contributions that were published or made publicly available before November 10, 2008 ๐Ÿ•ฐ๏ธ. Some of the people who hold the copyright on that older material may not have given the IETF Trust permission to allow changes outside the IETF Standards Process ๐Ÿ˜ฌ. So without an adequate license from those copyright holders, this document may not be modified outside the IETF Standards Process, and derivative works can't be made outside that process either. The one exceptions are formatting it for publication as an RFC or translating it into languages other than English ๐ŸŒˆ.

Table of Contents ๐Ÿ—‚๏ธ

1. Introduction and Scope ..........................................3
2. Terminology .....................................................4
3. Brief Metric Descriptions .......................................7
4. Motivations ....................................................10
5. Spatial Vector Metrics Definitions .............................12
6. Spatial Segment Metrics Definitions ............................19
7. One-to-Group Metrics Definitions ...............................27
8. One-to-Group Sample Statistics .................................30
9. Measurement Methods: Scalability and Reporting .................40
10. Manageability Considerations ..................................44
11. Security Considerations .......................................49
12. Acknowledgments ...............................................50
13. IANA Considerations ...........................................50
14. References ....................................................56
   14.1. Normative References .....................................56
   14.2. Informative References ...................................57

1. Introduction and Scope โœจ

Okay so the IETF already has IPPM for measuring end-to-end performance between two points ๐ŸŽฏ. This memo adds two new categories of metrics that stretch the coverage out to multiple measurement points ๐Ÿฆ‹. Spatial metrics check the performance of segments along a source-to-destination path ๐Ÿ›ฃ๏ธ. Metrics for a source and many destinations cover multiparty stuff like a multicast tree ๐ŸŒณ.

The whole point of this memo is to define metrics for the new needs that come up when you're measuring with multiple measurement points ๐Ÿ’…. Spatial metrics measure each segment along a path, and one-to-group metrics measure performance for a group of users ๐Ÿ‘ฏโ€โ™€๏ธ. Both are derived from one-way end-to-end metrics, and all of those follow the IPPM framework [RFC2330] ๐Ÿงฉ.

Here's how the memo is laid out ๐Ÿ—บ๏ธ. Section 2 introduces new terms that extend the original IPPM framework [RFC2330]. Section 3 gives a quick intro to the new metrics, and Section 4 explains why each metric category exists ๐Ÿ’ญ. Sections 5 through 8 go deep on each category with definitions and statistics ๐Ÿ“Š. After that, the memo looks at how the measurement methods affect scalability, and proposes an information model for reporting the measurements ๐Ÿ“‘. Last but not least, it covers security aspects related to measurement and registers the metrics in the IANA IP Performance Metrics Registry [RFC4148] ๐Ÿ”.

The scope here is limited to metrics that use a single source packet or stream, plus the observations of the matching packets along the path (spatial), at one or more destinations (one-to-group), or both ๐ŸŽ€. Heads up: all the metrics in this memo are based on observing packets that are dedicated to testing, which is called active measurement ๐Ÿงช. Passive measurement, like a spatial metric based on watching user traffic, is totally out of scope for this memo ๐Ÿ™…โ€โ™€๏ธ.

1.1. Requirements Language ๐Ÿ“œ

Here's the key word situation ๐Ÿ”‘. 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 [RFC2119] ๐Ÿค“.

2. Terminology ๐Ÿ“–

2.1. Naming of the Metrics ๐Ÿท๏ธ

The metric names, capital letters included, stay as close as possible to the names of the one-way end-to-end metrics they're derived from ๐Ÿ’–.

2.2. Terms Defined Elsewhere ๐Ÿ”—

Some terms are borrowed from other docs, so go check these spots:

2.3. Routers Digest ๐Ÿ“

The routers digest is the list of routers on the path from the source to the destination that act as points of interest ๐Ÿงญ.

2.4. Multiparty Metric ๐Ÿ‘ญ

A metric is multiparty if the topology involves more than one measurement collection point ๐Ÿซ‚. All multiparty metrics designate a set of hosts as "points of interest", where one host is the source and the other hosts are the measurement collection points. For example, if the set of points of interest is < ha, hb, hc, ..., hn >, where ha is the source and < hb, hc, ..., hn > are the destinations, then measurements may be conducted between < ha, hb>, < ha, hc>, ..., <ha, hn > ๐Ÿงฎ.

For this memo, which covers the scope of a single source, the only multiparty metrics are one-to-group metrics ๐Ÿ’œ.

2.5. Spatial Metric ๐Ÿ›ฐ๏ธ

A metric is spatial if one of the hosts involved (the measurement collection points) is neither the source nor a destination of the measured packet(s) ๐ŸŒŸ. These measurement hosts will usually be routers that are members of the routers digest ๐Ÿค–.

2.6. One-to-Group Metric ๐Ÿ

A metric is one-to-group if the measured packet is sent by one source and (potentially) received by more than one destination ๐Ÿ“จ. So the communication group's topology looks like a center-distributed or server-client topology, with the source as the center/server ๐Ÿ›๏ธ.

2.7. Points of Interest ๐Ÿ‘€

Points of interest are the hosts that are measurement collection points ๐Ÿ“. (Per the RFC 2330 definition, "hosts" include routing nodes ๐Ÿ›ค๏ธ.) They're a sub-set of the hosts involved in delivering the packets, and the source itself counts too ๐Ÿ’….

For spatial metrics, points of interest are a (possibly arbitrary) sub-set of all the routers involved in the path ๐ŸŽฒ.

Points of interest for one-to-group metrics are the intended destination hosts for packets from the source, plus the source itself ๐ŸŽฏ.

                     Src                   Dst
                     `.          ,-.
                       `.      ,'   `...... 1
                         `.   ;       :
                           `. ;       :
                             ;         :... 2
                             |         |
                             :         ;
                              :       ;.... 3
                              :       ;
                               `.   ,'
                                 `-'....... I

Figure 1: One-to-Group Points of Interest ๐Ÿ–ผ๏ธ

A candidate point of interest for spatial metrics is a router from the set of routers involved in delivering packets from the source to the destination ๐ŸŒˆ.

                     Src ------.           Hosts
                                \
                                 `---X   --- 1
                                     \
                                      x
                                     /
                          .---------X   ---- 2
                        /
                       x
                        ...
                        `---X           ---- ...
                               \
                                \
                                 \
                                  X     ---- J
                                   \
                                    \
                                     \
                                      `---- Dst

            Note: 'X' are nodes that are points of interest,
                  'x' are nodes that are not points of interest

Figure 2: Spatial Points of Interest โœจ

2.8. Reference Point ๐Ÿ

A reference point is the server where the statistical calculations get carried out ๐Ÿงฎ. It's usually a centralized server in the measurement architecture that a network operator controls, and that's where measurement data gets collected for further processing ๐Ÿ—ƒ๏ธ. The reference point is totally different from the hosts at measurement collection points, where the actual measurements happen (like the points of interest) ๐Ÿ™Œ.

2.9. Vector ๐Ÿง

A vector is a set of singletons (single atomic results) made up of observations for one source packet at different hosts in a network ๐Ÿงฉ. For instance, if the one-way delay singletons observed at N receivers for Packet P sent by the source Src are dT1, dT2,..., dTN, then a vector V with N elements can be organized as {dT1, dT2,..., dTN} ๐ŸŒธ. The element dT1 is distinct from all the others, since it's the singleton at receiver 1 responding to a packet sent from the source at a specific time โฐ. The complete vector gives information over the dimension of space, which in this example is the set of N receivers ๐Ÿ›ธ.

The singleton elements of any vector are all distinctly different from each other in terms of their measurement collection point ๐Ÿ’Ž. Different vectors for common measurement points of interest are told apart by the source packet's sending time โฑ๏ธ.

2.10. Matrix

okay so a matrix is what happens when a bunch of vectors stack up together ๐Ÿ’… It holds results observed over a sampling interval at different places in the network and at different times ๐Ÿฆ‹ For example, the one-way delay vectors V1={dT11, dT12,..., dT1N}, V2={dT21, dT22,..., dT2N},..., Vm={dTm1, dTm2,..., dTmN} for Packet P1, P2,...,Pm, form a one-way delay Matrix {V1, V2,...,Vm}. The matrix organizes the vector info so you can see network performance in both space and time โœจ

A one-dimensional matrix (row) corresponds to a sample in simple point-to-point measurement. So a single row is basically a sample, bestie ๐ŸŒธ

The relationship among singleton, sample, vector, and matrix is illustrated in Figure 3. Here's the visual ๐Ÿ‘€

             points of        singleton
             interest           /       samples(time)
              ,----.    ^      /
             /   R1.....|  / R1dT1   R1dT2   R1dT3 ... R3dTk \
            /         \ | |                                   |
           ;  R2........| |  R2dT1   R2dT2   R2dT3 ... R3dTk  |
      Src  |           || |                                   |
           |      R3....| |  R3dT1   R3dT2   R3dT3 ... R3dTk  |
           |           || |                                   |
           :           ;| |                                   |
            \         / | |                                   |
             \  Rn......|  \ RndT1   RndT2   RndT3 ... RndTk /
              `-----'   +-------------------------------------> time

                            vector           matrix
                           (space)      (time and space)

 Figure 3: Relationship between Singletons, Samples, Vectors, and
                              Matrix

3. Brief Metric Descriptions โœจ

The metrics for spatial and one-to-group measurement are based on the source-to-destination, or end-to-end metrics defined by IETF in [RFC2679], [RFC2680], [RFC3393], and [RFC3432]. Those are the building blocks, and everything here is built on top of them ๐Ÿงฑ

This memo defines seven new spatial metrics using the [RFC2330] framework of parameters, units of measure, and measurement methodologies. Each definition includes a section that describes measurement constraints and issues, and gives guidance to increase the accuracy of the results. So you're not left guessing ๐Ÿ™Œ

The spatial metrics are:

  • Type-P-Spatial-One-way-Delay-Vector divides the end-to-end Type-P-One-way-Delay [RFC2679] into a spatial vector of one-way delay singletons.
  • Type-P-Spatial-One-way-Packet-Loss-Vector divides an end-to-end Type-P-One-way-Packet-Loss [RFC2680] into a spatial vector of packet loss singletons.
  • Type-P-Spatial-One-way-ipdv-Vector divides an end-to-end Type-P-One-way-ipdv into a spatial vector of ipdv (IP Packet Delay Variation) singletons.
  • Using elements of the Type-P-Spatial-One-way-Delay-Vector metric, a sample called Type-P-Segment-One-way-Delay-Stream collects one-way delay metrics between two points of interest on the path over time.
  • Likewise, using elements of the Type-P-Spatial-Packet-Loss-Vector metric, a sample called Type-P-Segment-Packet-Loss-Stream collects one-way delay metrics between two points of interest on the path over time.
  • Using the Type-P-Spatial-One-way-Delay-Vector metric, a sample called Type-P-Segment-ipdv-prev-Stream will be introduced to compute ipdv metrics (using the previous packet selection function) between two points of interest on the path over time.
  • Again using the Type-P-Spatial-One-way-Delay-Vector metric, a sample called Type-P-Segment-ipdv-min-Stream will define another set of ipdv metrics (using the minimum delay packet selection function) between two points of interest on the path over time.

The memo also defines three one-to-group metrics to measure the one-way performance between a source and a group of receivers. They are:

  • Type-P-One-to-group-Delay-Vector, which collects the set of Type-P-One-way-Delay singletons between one sender and N receivers;
  • Type-P-One-to-group-Packet-Loss-Vector, which collects the set of Type-P-One-way-Packet-Loss singletons between one sender and N receivers; and
  • Type-P-One-to-group-ipdv-Vector, which collects the set of Type-P-One-way-ipdv singletons between one sender and N receivers.

Finally, based on the one-to-group vector metrics listed above, statistics are defined to capture single receiver performance, group performance, and the relative performance for a multiparty communication ๐ŸŽ€

  • Using the Type-P-One-to-group-Delay-Vector, a metric called Type-P-One-to-group-Receiver-n-Mean-Delay, or RnMD, presents the mean of delays between one sender and a single receiver 'n'. From this metric, three additional metrics are defined to characterize the mean delay over the entire group of receivers during the same time interval:
    • Type-P-One-to-group-Mean-Delay, or GMD, presents the mean of delays;
    • Type-P-One-to-group-Range-Mean-Delay, or GRMD, presents the range of mean delays; and
    • Type-P-One-to-group-Max-Mean-Delay, or GMMD, presents the maximum of mean delays.
  • Using the Type-P-One-to-group-Packet-Loss-Vector, a metric called Type-P-One-to-group-Receiver-n-Loss-Ratio, or RnLR, captures the packet loss ratio between one sender and a single receiver 'n'. Based on this definition, two more metrics are defined to characterize packet loss over the entire group during the same time interval:
    • Type-P-One-to-group-Loss-Ratio, or GLR, captures the overall packet loss ratio for the entire group of receivers; and
    • Type-P-One-to-group-Range-Loss-Ratio, or GRLR, presents the comparative packet loss ratio during the test interval between one sender and N receivers.
  • Using the Type-P-One-to-group-Packet-Loss-Vector, a metric called Type-P-One-to-group-Receiver-n-Comp-Loss-Ratio, or RnCLR, computes a packet loss ratio using the maximum number of packets received at any receiver.
  • Using Type-P-One-to-group-ipdv-Vector, a metric called Type-P-One-to-group-Range-Delay-Variation, or GRDV, presents the range of delay variation between one sender and a group of receivers.

4. Motivations ๐Ÿ’ญ

All existing IPPM metrics are defined for end-to-end (source-to-destination) measurement of point-to-point paths. It is logical to extend them to multiparty situations, such as one-to-one trajectory metrics and one-to-multipoint metrics. Growing up, aka the internet getting bigger, means we need this ๐ŸŒˆ

4.1. Motivations for Spatial Metrics

Spatial metrics are needed for:

  • Decomposing the performance of an inter-domain path to quantify the per-AS (Autonomous System) contribution to the end-to-end performance.
  • Traffic engineering and troubleshooting, which benefit from spatial views of one-way delay and ipdv consumption, or identification of the path segment where packets were lost.
  • Monitoring the decomposed performance of a multicast tree based on MPLS point-to-multipoint communications.
  • Dividing end-to-end metrics, so that some segment measurements can be re-used and help measurement systems reach large-scale coverage. Spatial measures could characterize the performance of an intra-domain segment and provide an elementary piece of information needed to estimate inter-domain performance to another destination using Spatial Composition metrics [SPATIAL].

4.2. Motivations for One-to-group Metrics

While the node-to-node-based spatial measures can provide very useful data in the view of each connection, we also need measures to present the performance of a multiparty communication topology. A simple point-to-point metric cannot completely describe the multiparty situation. New one-to-group metrics assess performance of the multiple paths for further statistical analysis. The new metrics are named one-to-group performance metrics, and they are based on the unicast metrics defined in IPPM RFCs. One-to-group metrics are one-way metrics from one source to a group of destinations or receivers. The metrics are helpful for judging the overall performance of a multiparty communications network and for describing the performance variation across a group of destinations ๐Ÿ’œ

One-to-group performance metrics are needed for:

  • Designing and engineering multicast trees and MPLS point-to-multipoint Label Switched Paths (LSPs).
  • Evaluating and controlling the quality of multicast services, including inter-domain multicast.
  • Presenting and evaluating the performance requirements for multiparty communications and overlay multicast.

To understand the packet transfer performance between one source and any one receiver in the multiparty communication group, we need to collect instantaneous end-to-end metrics, or singletons. This gives a very detailed view into the performance of each branch of the multicast tree, and can provide clear and helpful information for engineers to identify the branch with problems in a complex multiparty routing tree ๐Ÿ”

The one-to-group metrics described in this memo introduce the multiparty topology into the IPPM framework, and they describe the performance delivered to a group receiving packets from the same source. The concept extends the "path" of the point-to-point measurement to "path tree" to cover one-to-many topologies. If applied to one-to-one topology, the one-to-group metrics provide exactly the same results as the corresponding one-to-one metrics. Same results, no drama ๐Ÿ˜Œ

4.3. Discussion on Group-to-One and Group-to-Group Metrics

We note that points of interest can also be selected to define measurements on group-to-one and group-to-group topologies. These topologies are beyond the scope of this memo, because they would involve multiple packets launched from different sources. However, this section gives some insights on these two cases ๐Ÿงš

The measurements for group-to-one topology can be easily derived from the one-to-group measurement. The measurement point is the host that is acting as a receiver while all other hosts act as sources in this case.

The group-to-group communication topology has no obvious focal point: the sources and the measurement collection points can be anywhere. However, it is possible to organize the problem by applying measurements in one-to-group or group-to-one topologies for each host in a uniform way (without taking account of how the real communication might be carried out). For example, one group of hosts < ha, hb, hc, ..., hn > might act as sources to send data to another group of hosts < Ha, Hb, Hc, ..., Hm >, and they can be organized into n sets of points of interest for one-to-group communications:

< ha, Ha, Hb, Hc, ..., Hm >, < hb, Ha, Hb, Hc, ..., Hm >, <hc, Ha, Hb, Hc, ..., Hm >, ..., < hn, Ha, Hb, Hc, ..., Hm >.

5. Spatial Vector Metrics Definitions ๐Ÿฆ‹

This section defines vectors for the spatial decomposition of end-to-end singleton metrics over a path.

Spatial vector metrics are based on the decomposition of standard end-to-end metrics defined by the IPPM WG in [RFC2679], [RFC2680], [RFC3393], and [RFC3432].

The spatial vector definitions are coupled with the corresponding end-to-end metrics. Measurement methodology aspects are common to all the vectors defined and are consequently discussed in a common section. Next up, the methodology stuff, so stay with me ๐Ÿ’–

5.1. A Definition for Spatial One-Way Delay Vector ๐Ÿฆ‹

Okay so this bit is coupled with the Type-P-One-way-Delay definition in section 3 of [RFC2679] ๐Ÿ’–. Whenever we borrow a parameter from that definition, the first time it shows up gets a trailing asterisk (*) โœจ.

Sections 3.5 to 3.8 of [RFC2679] are the requirements and applicability bits for end-to-end one-way delay measurements. They apply to every point of interest, Hi, involved in the measurement ๐ŸŒธ. Spatial one-way delay measurements MUST respect them, especially the stuff about methodology, clocks, uncertainties, and reporting ๐Ÿซถ.

5.1.1. Metric Name ๐ŸŽ€

Type-P-Spatial-One-way-Delay-Vector

5.1.2. Metric Parameters ๐Ÿ“

  • Src*, the IP address of the sender.
  • Dst*, the IP address of the receiver.
  • i, an integer in the ordered list <1,2,...,n> of routers in the path.
  • Hi, a router of the routers digest.
  • T*, a time, the sending (or initial observation) time for a measured packet.
  • dT*, a delay, the one-way delay for a measured packet.
  • dTi, a delay, the one-way delay for a measured packet from the source to router Hi.
  • <dT1,... dTi,... dTn>, a list of n delay singletons.
  • Type-P*, the specification of the packet type.
  • <H1, H2,..., Hn>, the routers digest.

5.1.3. Metric Units ๐Ÿงš

The value of Type-P-Spatial-One-way-Delay-Vector is a sequence of times. Each one is a real number in the dimension of seconds, with enough resolution to show the results properly โฑ๏ธ.

5.1.4. Definition ๐Ÿ’…

Given a Type-P packet sent by the Src at wire-time (first bit) T to the receiver Dst on the path <H1, H2,..., Hn>, there is a sequence of values <T+dT1,T+dT2,...,T+dTn,T+dT>. Here dT is the Type-P-One-way-Delay from Src to Dst. For each Hi on the path, T+dTi is either a real number matching the wire-time when the packet passes (last bit received) Hi, or it's undefined if the packet doesn't pass Hi within a specified loss threshold* time ๐Ÿ™ˆ.

The Type-P-Spatial-One-way-Delay-Vector metric is defined for the path <Src, H1, H2,..., Hn, Dst> as the sequence of values <T,dT1,dT2,...,dTn,dT> โœจ.

5.1.5. Discussion ๐Ÿ’€

Some specific issues that may come up are these:

  • The delay singletons can "appear" to decrease, where dTi > dTi+1. This may happen even though it's physically impossible with the definition we're using ๐Ÿ˜ญ.
    • This is frequently due to a measurement clock synchronization issue. We talk about this in section 3.7.1 "Errors or uncertainties related to Clocks" of [RFC2679]. So the delay values measured at multiple routers may not match the order of those routers on the path ๐ŸŒˆ.
    • The actual order of routers on the path may change because of reconvergence (for example, recovering from a link failure) ๐Ÿ”ฅ.
    • Where the measurement collection point sits in the device matters too ๐Ÿ‘‘. If the packet isn't observed directly on the input interface, the delay includes buffering time. That means there's an uncertainty from the difference between 'wire-time' and 'host time' ๐Ÿซ .

5.2. A Definition for Spatial Packet Loss Vector ๐ŸŒท

This section is coupled with the definition of Type-P-One-way-Packet-Loss. Whenever a parameter from section 2 of [RFC2680] shows up here, its first instance gets a trailing asterisk ๐Ÿ’œ.

Sections 2.5 to 2.8 of [RFC2680] are the requirements and applicability statements for end-to-end one-way packet loss measurements. They apply to every point of interest, Hi, involved in the measurement. Spatial packet loss measurement MUST respect them, especially the bits about methodology, clocks, uncertainties, and reporting ๐ŸŽ€.

The next sections define the spatial loss vector, adapt some of the points above, and bring in new points that are specific to spatial loss measurement ๐Ÿง.

5.2.1. Metric Name ๐Ÿ“

Type-P-Spatial-Packet-Loss-Vector

5.2.2. Metric Parameters ๐Ÿฆ‹

  • Src*, the IP address of the sender.
  • Dst*, the IP address of the receiver.
  • i, an integer in the ordered list <1,2,...,n> of routers in the path.
  • Hi, a router of the routers digest.
  • T*, a time, the sending time for a measured packet.
  • dTi, a delay, the one-way delay for a measured packet from the source to host Hi.
  • <dT1,..., dTn>, a list of n delay singletons.
  • Type-P*, the specification of packet type.
  • <H1, H2,..., Hn>, the routers digest.
  • <L1, L2, ...,Ln>, a list of Boolean values.

5.2.3. Metric Units ๐ŸŒธ

The value of Type-P-Spatial-Packet-Loss-Vector is a sequence of Boolean values โœ….

5.2.4. Definition โœจ

Given a Type-P packet sent by the Src at time T to the receiver Dst on the path <H1, H2, ..., Hn>. For the sequence of times <T+dT1,T+dT2,..., T+dTi, ...,T+dTn> that the packet passes in <H1, H2, ..., Hi, ..., Hn>, define the Type-P-Packet-Loss-Vector metric as the sequence of values <T, L1, L2, ..., Ln>. For each Hi on the path, a value of 0 for Li means that dTi is a finite value, and a value of 1 means that dTi is undefined ๐Ÿงš.

5.2.5. Discussion ๐Ÿ”ฅ

Some specific issues that may come up are these:

  • The result might include the sequence of values 1,0. This looks physically impossible, since a packet gets lost and then shows up again later on the path ๐Ÿ˜ญ:
    • The actual routers on the path may change because of reconvergence (for example, recovering from a link failure) ๐ŸŒˆ.
    • The order of routers on the path may change because of reconvergence ๐Ÿซถ.
    • A packet may not be observed at a router because of some buffer or CPU overflow at the measurement collection point ๐Ÿ’€.

5.3. A Definition for Spatial One-Way ipdv Vector ๐Ÿ’–

When a parameter from section 2 of [RFC3393] (the definition of Type-P-One-way-ipdv) is used in this section, its first instance gets a trailing asterisk ๐ŸŽ€.

The next sections define the spatial ipdv vector, adapt some of the points above, and bring in new points specific to spatial ipdv measurement ๐Ÿ‘‘.

5.3.1. Metric Name ๐ŸŒท

Type-P-Spatial-One-way-ipdv-Vector

5.3.2. Metric Parameters ๐Ÿ“

  • Src*, the IP address of the sender.
  • Dst*, the IP address of the receiver.
  • i, an integer in the ordered list <1,2,...,n> of routers in the path.
  • Hi, a router of the routers digest.
  • T1*, a time, the sending time for a first measured packet.
  • T2*, a time, the sending time for a second measured packet.
  • dT*, a delay, the one-way delay for a measured packet.
  • dTi, a delay, the one-way delay for a measured packet from the source to router Hi.
  • Type-P*, the specification of the packet type.
  • P1, the first packet, sent at time T1.
  • P2, the second packet, sent at time T2.
  • <H1, H2,..., Hn>, the routers digest.
  • <T1,dT1.1, dT1.2,..., dT1.n,dT1>, the Type-P-Spatial-One-way-Delay-Vector for a packet sent at time T1.
  • <T2,dT2.1, dT2.2,..., dT2.n,dT2>, the Type-P-Spatial-One-way-Delay-Vector for a packet sent at time T2.
  • L*, a packet length in bits. The packets of a Type-P packet stream from which the Type-P-Spatial-One-way-Delay-Vector metric is taken MUST all be the same length ๐Ÿ“.

5.3.3. Metric Units ๐Ÿง

The value of Type-P-Spatial-One-way-ipdv-Vector is a sequence of times. Each one is a real number in the dimension of seconds, with enough resolution to convey the results โฑ๏ธ.

5.3.4. Definition ๐Ÿ’…

Given P1, the Type-P packet sent by the sender Src at wire-time (first bit) T1 to the receiver Dst, we have <T1, dT1.1, dT1.2,..., dT1.n, dT1>. That's the Type-P-Spatial-One-way-Delay-Vector of P1 over the sequence of routers <H1, H2,..., Hn> ๐Ÿฆ‹.

Given P2, the Type-P packet sent by the sender Src at wire-time (first bit) T2 to the receiver Dst, we have <T2, dT2.1, dT2.2,..., dT2.n, dT2>. That's the Type-P-Spatial-One-way-Delay-Vector of P2 over the same path ๐ŸŒธ.

The Type-P-Spatial-One-way-ipdv-Vector metric is defined as the sequence of values <T1, T2, dT2.1-dT1.1, dT2.2-dT1.2 ,..., dT2.n-dT1.n, dT2-dT1>. For each Hi in the sequence of routers <H1, H2,..., Hn>, dT2.i-dT1.i is either a real number, if packets P1 and P2 pass Hi at wire-time (last bit) dT1.i and dT2.i respectively. Otherwise it's undefined, if at least one of them never passes Hi (and the respective one-way delay is undefined) ๐Ÿซถ. The T1,T2* pair indicates the inter-packet emission interval, and dT2-dT1 is ddT*, the Type-P-One-way-ipdv โœจ.

5.4. Spatial Methodology ๐ŸŒˆ

The methodology, reporting specifications, and uncertainties in section 3 of [RFC2679] apply to each point of interest (or measurement collection point), Hi, that measures an element of a spatial delay vector ๐Ÿ’œ.

In the same way, the methodology, reporting specifications, and uncertainties in section 2 of [RFC2680] apply to each point of interest, Hi, that measures an element of a spatial packet loss vector ๐ŸŽ€.

Sections 3.5 to 3.7 of [RFC3393] give requirements and applicability statements for end-to-end One-way ipdv measurements. They apply to each point of interest, Hi, involved in the measurement. Spatial One-way ipdv measurement MUST respect the methodology, clock, uncertainties, and reporting aspects given there ๐Ÿซถ.

Generally, for a given Type-P packet of length L at a specific Hi, the methodology for spatial vector metrics may go like this ๐Ÿงš:

  • At each Hi, the points of interest (or measurement collection points) get ready to capture the packet sent at time T. They record a timestamp Ti' and determine the internal delay correction dTi' (see section 3.7.1 "Errors or uncertainties related to Clocks" of [RFC2679]).
  • Each Hi extracts the path ordering information from the packet (for example, time-to-live (TTL)) ๐Ÿ”.
  • Each Hi computes the corrected wire-time from Src to Hi: Ti = Ti' - dTi'. This arrival time is undefined if the packet isn't detected after the 'loss threshold' duration โณ.
  • Each Hi extracts the timestamp T from the packet ๐Ÿ’–.
  • Each Hi computes the one-way delay from Src to Hi: dTi = Ti - T ๐ŸŒธ.
  • The reference point gathers the result from each Hi and arranges them according to the path ordering information it received. That builds the Type-P spatial one-way vector (for example, the Type-P-Spatial-One-way-Delay-Vector metric <T, dT1, dT2,..., dTn, dT>) over the path <Src, H1, H2,..., Hn, Dst> at time T ๐Ÿ‘‘.

5.4.1. Packet Loss Detection โœจ

Okay so in a pure end-to-end measurement, only the receiver can spot lost packets ๐Ÿ‘€. A packet counts as lost when its Type-P-One-way-Delay is undefined or super huge (see sections 2.4 and 2.5 of [RFC2680] and section 3.5 of [RFC2680] ๐Ÿ“š). The receiver writes the packet off once a timer that starts at send time runs out. The measurement process picks that timeout, and it's the line between "that took a long time" (a finite value) and "it never showed up" (undefined) ๐Ÿ’…

In a spatial measurement, losses can get detected at several measurement collection points ๐Ÿ—บ๏ธ. Depending on how consistent those detections are, a packet might be "lost" at one point even though it has a finite delay at another. Or the last collection point on the path might see it while Dst calls it lost ๐Ÿ˜ญ

This can get confusing fast. Did the path change? Did the packet actually reach the destination, or did it die on the very last link? ๐Ÿค” One-way delay has the same problem: one observation point might compute an infinite delay while another gets a real number, or the last observation point on the path might measure a real value while Dst marks it as undefined ๐Ÿ’€

The observation/measurement collection points and the destination SHOULD use consistent methods to detect packet losses ๐Ÿซถ. The methods and parameters must be systematically reported, so people can compare results carefully and nothing sneaky sneaks into the analysis ๐Ÿ”

5.4.2. Routers Digest ๐Ÿงฉ

The methodology above relies on knowing the order of the router/measurement collection points on the path [RFC2330] ๐Ÿ›ฃ๏ธ.

Path instability can make a test packet get observed more than once by the same router. That means one or more routers can show up multiple times in the routers digest ๐ŸŒ€.

For example, repeated observations can happen during rerouting phases that create temporary micro loops. During an event like that, the routers digest for a packet crossing Ha and Hb might look like <Hb, Ha, Hb, Ha, Hb>. That pattern means Ha finished computing the new path before Hb did, the initial path ran from Ha to Hb, and the new path runs from Hb to Ha ๐Ÿ”„.

So duplicate routers in the routers digest of a vector MUST be identified before any statistics get computed, or you'll end up with corrupted info ๐Ÿšซ๐Ÿ’–


6. Spatial Segment Metrics Definitions โœจ

This section defines samples that measure how a segment of a path performs over time. The definitions rely on the matrix of the spatial vector metrics we covered above ๐Ÿง .

First up, this section defines a sample of one-way delay, Type-P-Segment-One-way-Delay-Stream, and a sample of packet loss, Type-P-Segment-Packet-Loss-Stream ๐ŸŽ€.

Then it defines two different ipdv samples. Type-P-Segment-ipdv-prev-Stream uses the current and previous packets as the selection function, and Type-P-Segment-ipdv-min-Stream uses the minimum delay as one of the selected packets in every pair ๐Ÿฆ‹.

6.1. A Definition of a Sample of One-Way Delay of a Segment of the Path ๐Ÿšฆ

This metric defines a sample of one-way delays over time between a pair of routers on a path. It's semantically super close to Type-P-One-way-Delay-Poisson-Stream from section 4 of [RFC2679], so sections 4.5 to 4.8 of [RFC2679] are integral parts of the definition text below ๐Ÿ’….

6.1.1. Metric Name ๐Ÿท๏ธ

Type-P-Segment-One-way-Delay-Stream

6.1.2. Metric Parameters ๐ŸŽ›๏ธ

  • Src, the IP address of the sender.
  • Dst, the IP address of the receiver.
  • Type-P, the specification of the packet type.
  • i, an integer in the ordered list <1,2,...,n> of routers in the path.
  • k, an integer that orders the packets sent.
  • a and b, two integers where b > a.
  • Hi, a router of the routers digest.
  • <H1,..., Ha, ..., Hb, ...., Hn>, the routers digest.
  • <T1, T2, ..., Tm>, a list of times.

6.1.3. Metric Units ๐Ÿ“

The value of a Type-P-Segment-One-way-Delay-Stream is a pair of:

  • A list of times <T1, T2, ..., Tm>; and
  • A sequence of delays.

6.1.4. Definition ๐Ÿ“–

Given two routers, Ha and Hb, of the path <H1, H2,..., Ha, ..., Hb, ..., Hn>, and the matrix of Type-P-Spatial-One-way-Delay-Vector for the packets sent from Src to Dst at times <T1, T2, ..., Tm-1, Tm>, we get this:

<T1, dT1.1, dT1.2, ..., dT1.a, ..., dT1.b,..., dT1.n, dT1>;

<T2, dT2.1, dT2.2, ..., dT2.a, ..., dT2.b,..., dT2.n, dT2>;

...

<Tm, dTm.1, dTm.2, ..., dTm.a, ..., dTm.b,..., dTm.n, dTm>.

We define the sample Type-P-Segment-One-way-Delay-Stream as the sequence <dT1.ab, dT2.ab, ..., dTk.ab, ..., dTm.ab>. For each time Tk, dTk.ab is the real number dTk.b - dTk.a if the packet sent at Tk passes both Ha and Hb. If that packet never passes Ha, or (inclusive) never passes Hb, then it's undefined ๐Ÿคทโ€โ™€๏ธ.

6.1.5. Discussion ๐Ÿ’ฌ

Some specific issues that can pop up:

  • The delay singletons "appear" to decrease: dTi > DTi+1, which is discussed in section 5.1.5.
    • This could also happen when the clock resolution of one measurement collection point is bigger than the minimum delay of a path. For example, the minimum delay of a 500 km path through optical fiber facilities is 2.5 ms, but the measurement collection point has a clock resolution of 8 ms โฑ๏ธ.

The metric SHALL be invalid for times <T1 , T2, ..., Tm-1, Tm> if any of these happen:

  • Ha or Hb disappears from the path due to some routing change.
  • The order of Ha and Hb changes in the path.

6.2. A Definition of a Sample of Packet Loss of a Segment of the Path ๐Ÿ•ณ๏ธ

This metric defines a sample of packet loss over time between a pair of routers on a path. It's semantically super close to Type-P-Packet-loss-Stream from section 3 of [RFC2680], so sections 3.5 to 3.8 of [RFC2680] are integral parts of the definition text below ๐Ÿ™ˆ.

6.2.1. Metric Name ๐Ÿท๏ธ

Type-P-Segment-Packet-Loss-Stream

6.2.2. Metric Parameters ๐ŸŽ›๏ธ

  • Src, the IP address of the sender.
  • Dst, the IP address of the receiver.
  • Type-P, the specification of the packet type.
  • k, an integer that orders the packets sent.
  • n, an integer that orders the routers on the path.
  • a and b, two integers where b > a.
  • <H1, H2, ..., Ha, ..., Hb, ...,Hn>, the routers digest.
  • Hi, a router of the routers digest.
  • <T1, T2, ..., Tm>, a list of times.
  • <L1, L2, ..., Ln>, a list of Boolean values.

6.2.3. Metric Units ๐Ÿ“

The value of a Type-P-Segment-Packet-Loss-Stream is a pair of:

  • The list of times <T1, T2, ..., Tm>; and
  • A sequence of Boolean values.

6.2.4. Definition ๐Ÿ“–

Given two routers, Ha and Hb, of the path <H1, H2,..., Ha, ..., Hb, ..., Hn>, and the matrix of Type-P-Spatial-Packet-Loss-Vector for the packets sent from Src to Dst at times <T1, T2, ..., Tm-1, Tm>, we get this:

<T1, L1.1, L1.2,..., L1.a, ..., L1.b, ..., L1.n, L>,

<T2, L2.1, L2.2,..., L2.a, ..., L2.b, ..., L2.n, L>,

...,

<Tm, Lm.1, Lm.2,..., Lma, ..., Lm.b, ..., Lm.n, L>.

We define the value of the sample Type-P-Segment-Packet-Loss-Stream from Ha to Hb as the sequence of Booleans <L1.ab, L2.ab,..., Lk.ab, ..., Lm.ab>, where for each Tk:

  • A value of Lk of 0 means that Ha and Hb both observed the packet sent at time Tk (both Lk.a and Lk.b have a value of 0) โœ….
  • A value of Lk of 1 means that Ha observed the packet sent at time Tk (Lk.a has a value of 0), but Hb did not (Lk.b has a value of 1) โŒ.
  • The value of Lk is undefined when neither Ha nor Hb observed the packet (both Lk.a and Lk.b have a value of 1) ๐Ÿซฅ.

6.2.5. Discussion ๐Ÿ’ฌ

Unlike Type-P-Packet-loss-Stream, Type-P-Segment-Packet-Loss-Stream relies on the stability of the routers digest. The metric SHALL be invalid for times <T1 , T2, ..., Tm-1, Tm> if any of these happen:

  • Ha or Hb disappears from the path due to some routing change.
  • The order of Ha and Hb changes in the path.
  • Lk.a or Lk.b is undefined.
  • Lk.a has the value 1 (not observed) and Lk.b has the value 0 (observed).
  • L has the value 0 (the packet was received by Dst) and Lk.ab has the value 1 (the packet was lost between Ha and Hb) ๐Ÿซ .

6.3. A Definition of a Sample of ipdv of a Segment Using the Previous Packet Selection Function ๐Ÿ”

This metric defines a sample of ipdv [RFC3393] over time between a pair of routers, using the previous packet as the selection function ๐Ÿงฆ.

6.3.1. Metric Name ๐Ÿท๏ธ

Type-P-Segment-ipdv-prev-Stream

6.3.2. Metric Parameters ๐ŸŽ›๏ธ

  • Src, the IP address of the sender.
  • Dst, the IP address of the receiver.
  • Type-P, the specification of the packet type.
  • k, an integer that orders the packets sent.
  • n, an integer that orders the routers on the path.
  • a and b, two integers where b > a.
  • <H1, H2, ..., Ha, ..., Hb, ...,Hn>, the routers digest.
  • <T1, T2, ..., Tm-1, Tm>, a list of times.
  • <Tk, dTk.1, dTk.2, ..., dTk.a, ..., dTk.b,..., dTk.n, dTk>, a Type-P-Spatial-One-way-Delay-Vector.

6.3.3. Metric Units ๐Ÿ“

The value of a Type-P-Segment-ipdv-prev-Stream is a pair of:

  • The list of <T1, T2, ..., Tm-1, Tm>; and
  • A list of pairs of interval of times and delays;

6.3.4. Definition ๐Ÿ“–

Given two routers, Ha and Hb, of the path <H1, H2,..., Ha, ..., Hb, ..., Hn>, and the matrix of Type-P-Spatial-One-way-Delay-Vector for the packets sent from Src to Dst at times <T1, T2, ..., Tm-1, Tm>, we get this:

<T1, dT1.1, dT1.2, ..., dT1.a, ..., dT1.b,..., dT1.n, dT1>,

<T2, dT2.1, dT2.2, ..., dT2.a, ..., dT2.b,..., dT2.n, dT2>,

...

<Tm, dTm.1, dTm.2, ..., dTm.a, ..., dTm.b,..., dTm.n, dTm>.

We define the Type-P-Segment-ipdv-prev-Stream as the sequence of packet time pairs and delay variations:

<(T1, T2 , dT2.ab - dT1.ab) ,...,

 (Tk-1, Tk, dTk.ab - dTk-1.ab), ...,

 (Tm-1, Tm, dTm.ab - dTm-1.ab)>

For any pair Tk, Tk-1 with k running from 1 through m, the difference dTk.ab - dTk-1.ab is undefined if either of these is true:

  • the delay dTk.a or the delay dTk-1.a is undefined, OR
  • the delay dTk.b or the delay dTk-1.b is undefined.

6.3.5. Discussion ๐Ÿ’ฌ

This metric belongs to the family of inter-packet delay variation metrics (IPDV in uppercase), and its results are extremely sensitive to the inter-packet interval in practice ๐ŸŽข.

The inter-packet interval of an end-to-end IPDV metric is under the control of the source (the ingress point of interest). A segment IPDV metric is different: its inter-packet interval is not under the control of the ingress point of interest, Ha. That interval will definitely vary if there's delay variation between the Source and Ha. So the ingress inter-packet interval must be known at Ha to fully make sense of the delay variation between Ha and Hb ๐Ÿง.

6.4. A Definition of a Sample of ipdv of a Segment Using the Minimum Delay Selection Function ๐ŸŽฏ

This metric defines a sample of ipdv [RFC3393] over time between a pair of routers on a path, using the minimum delay as one of the selected packets in every pair ๐Ÿ’œ.

6.4.1. Metric Name ๐Ÿท๏ธ

Type-P-Segment-One-way-ipdv-min-Stream

6.4.2. Metric Parameters โœจ

okay bestie, here are the ingredients ๐Ÿ“ every one of these matters, so no skipping ๐Ÿ’…

  • Src, the IP address of the sender.
  • Dst, the IP address of the receiver.
  • Type-P, the specification of the packet type.
  • k, an integer that orders the packets sent.
  • i, an integer that identifies a packet sent.
  • n, an integer that orders the routers on the path.
  • a and b, two integers where b > a.
  • <H1, H2, ..., Ha, ..., Hb, ...,Hn>, the routers digest.
  • <T1, T2, ..., Tm-1, Tm>, a list of times.
  • <Tk, dTk.1, dTk.2, ..., dTk.a, ..., dTk.b,..., dTk.n, dTk>, a Type-P-Spatial-One-way-Delay-Vector.

6.4.3. Metric Units ๐Ÿฆ‹

The value of a Type-P-Segment-One-way-ipdv-min-Stream is a pair of:

  • The list of <T1, T2, ..., Tm-1, Tm>; and
  • A list of times.

6.4.4. Definition ๐ŸŒธ

okay so, this is the big one ๐Ÿ˜ญ start with two routers, Ha and Hb, sitting on the path <H1, H2,..., Ha, ..., Hb, ..., Hn>. Then picture the matrix of Type-P-Spatial-One-way-Delay-Vectors for the packets sent from Src to Dst at times <T1, T2, ..., Tm-1, Tm> :

<T1, dT1.1, dT1.2, ..., dT1.a, ..., dT1.b,..., dT1.n, dT1>,

<T2, dT2.1, dT2.2, ..., dT2.a, ..., dT2.b,..., dT2.n, dT2>,

...

<Tm, dTm.1, dTm.2, ..., dTm.a, ..., dTm.b,..., dTm.n, dTm>.

Now the Type-P-Segment-One-way-ipdv-min-Stream is the sequence of times <dT1.ab - min(dTi.ab) ,..., dTk.ab - min(dTi.ab), ..., dTm.ab - min(dTi.ab)>, and here's the tea โ˜• on how it works:

  • min(dTi.ab) is the minimum value of the tuples (dTk.b - dTk.a);
  • for each time Tk, dTk.ab is undefined if dTk.a or (inclusive) dTk.b is undefined, or the real number (dTk.b - dTk.a) is undefined.

6.4.5. Discussion ๐Ÿ’œ

this metric belongs to the packet delay variation family (PDV) ๐ŸŽ€ PDV distributions are less sensitive to inter-packet interval variations than IPDV values, as discussed above. literally the whole point ๐Ÿ™Œ

in principle, the PDV distribution shows the variation over lots of different inter-packet intervals, from the smallest one all the way up to the length of the evaluation interval, Tm - T1. so when delay variation shows up and messes with the packet spacing observed at Ha, the PDV results will likely compare favorably to a PDV measurement where the source is Ha and the destination is Hb, because a wide range of spacings is reflected in any PDV distribution. it's giving main character energy โœจ


7. One-to-Group Metrics Definitions ๐ŸŒˆ

this section defines performance metrics between a source and a group of receivers ๐Ÿซถ

7.1. A Definition for One-to-Group Delay ๐Ÿงš

this section defines a metric for one-way delay between a source and a group of receivers.

7.1.1. Metric Name ๐Ÿ’…

Type-P-One-to-group-Delay-Vector

7.1.2. Metric Parameters ๐ŸŽ€

  • Src, the IP address of a host acting as the source.
  • Recv1,..., RecvN, the IP addresses of the N hosts acting as receivers.
  • T, a time.
  • dT1,...,dTn, a list of times.
  • Type-P, the specification of the packet type.
  • Gr, the receiving group identifier. The parameter Gr is the multicast group address if the measured packets are transmitted over IP multicast. This parameter is to differentiate the measured traffic from other unicast and multicast traffic. It is OPTIONAL for this metric to avoid losing any generality, i.e., to make the metric also applicable to unicast measurement where there is only one receiver. ๐Ÿซง

7.1.3. Metric Units ๐ŸŒธ

the value of a Type-P-One-to-group-Delay-Vector is a set of Type-P-One-way-Delay singletons [RFC2679], which is a sequence of times (a real number in the dimension of seconds, with sufficient resolution to convey the results) ๐Ÿ“

7.1.4. Definition ๐Ÿฆ‹

okay this one is a whole vibe ๐ŸŒ™ given a Type-P packet sent by the source Src at time T, and the N hosts { Recv1,...,RecvN } that receive the packet at the times { T+dT1,...,T+dTn }, or the packet doesn't pass a receiver within a specified loss threshold time, then the Type-P-One-to-group-Delay-Vector is defined as the set of the Type-P-One-way-Delay singletons between Src and each receiver with values { dT1, dT2,...,dTn }. any of these singletons may be undefined if the packet did not pass the corresponding receiver within a specified loss threshold time ๐Ÿ’€

7.2. A Definition for One-to-Group Packet Loss ๐Ÿ“

7.2.1. Metric Name ๐Ÿ’–

Type-P-One-to-group-Packet-Loss-Vector

7.2.2. Metric Parameters ๐ŸŒˆ

  • Src, the IP address of a host acting as the source.
  • Recv1,..., RecvN, the IP addresses of the N hosts acting as receivers.
  • T, a time.
  • Type-P, the specification of the packet type.
  • Gr, the receiving group identifier, OPTIONAL.

7.2.3. Metric Units โœจ

the value of a Type-P-One-to-group-Packet-Loss-Vector is a set of Type-P-One-way-Packet-Loss singletons [RFC2680]. the pieces are:

  • T, time the source packet was sent.
  • L1,...,LN, a list of Boolean values.

7.2.4. Definition ๐Ÿ’œ

given a Type-P packet sent by the source Src at T and the N hosts, Recv1,...,RecvN, the Type-P-One-to-group-Packet-Loss-Vector is defined as a set of the Type-P-One-way-Packet-Loss singletons between Src and each of the receivers:

{T, <L1=0|1>,<L2=0|1>,..., <LN=0|1>},

where the Boolean value 0|1 depends on whether the packet was received at a particular receiver within a loss threshold time ๐Ÿ”ฅ

7.3. A Definition for One-to-Group ipdv ๐Ÿฆ‹

7.3.1. Metric Name ๐ŸŽ€

Type-P-One-to-group-ipdv-Vector

7.3.2. Metric Parameters ๐ŸŒธ

  • Src, the IP address of a host acting as the source.
  • Recv1,..., RecvN, the IP addresses of the N hosts acting as receivers.
  • T1, a time.
  • T2, a time.
  • ddT1, ...,ddTn, a list of times.
  • Type-P, the specification of the packet type.
  • F, a selection function non-ambiguously defining the two packets from the stream selected for the metric.
  • Gr, the receiving group identifier. The parameter Gr is the multicast group address if the measured packets are transmitted over IP multicast. This parameter is to differentiate the measured traffic from other unicast and multicast traffic. It is OPTIONAL in the metric to avoid losing any generality, i.e., to make the metric also applicable to unicast measurement where there is only one receiver. ๐Ÿซถ

7.3.3. Metric Units ๐ŸŒ™

the value of a Type-P-One-to-group-ipdv-Vector is a set of Type-P-One-way-ipdv singletons [RFC3393] โœจ

7.3.4. Definition ๐Ÿ’…

given a Type-P packet stream, the Type-P-One-to-group-ipdv-Vector is defined for two packets transferred from the source Src to the N hosts {Recv1,...,RecvN }. these packets are selected by the selection function F as the difference between the value of the Type-P-One-to-group-Delay-Vector from Src to { Recv1,..., RecvN } at time T1 and the value of the Type-P-One-to-group-Delay-Vector from Src to { Recv1,...,RecvN } at time T2. T1 is the wire-time at which Src sent the first bit of the first packet, and T2 is the wire-time at which Src sent the first bit of the second packet. this metric is derived from the Type-P-One-to-group-Delay-Vector metric ๐Ÿงš

for a set of real numbers {ddT1,...,ddTn}, the Type-P-One-to-group-ipdv-Vector from Src to { Recv1,...,RecvN } at T1, T2 being {ddT1,...,ddTn} means that Src sent two packets. the first was sent at wire-time T1 (first bit) and the second at wire-time T2 (first bit). the packets were received by { Recv1,...,RecvN } at wire-time {dT1+ T1,...,dTn+T1} (last bit of the first packet) and at wire-time {dT'1+ T2,...,dT'n+T2} (last bit of the second packet). and {dT'1- dT1,...,dT'n-dTn} ={ddT1,...,ddTn} ๐ŸŽ€

for any pair of selected packets, the difference dT'n-dTn is undefined if:

  • the delay dTn to Receiver n is undefined, or
  • the delay dT'n to Receiver n is undefined.

8. One-to-Group Sample Statistics โœจ

okay so bestie, the one-to-group metrics we defined earlier are basically built by collecting regular unicast one-way measurement results and grouping them per group of receivers ๐Ÿซถ Together they show network performance info that helps engineers spot potential problems on any branch of a multicast routing tree ๐ŸŒณ

BUT here's the tea ๐Ÿต the raw results are NOT directly usable for showing how a whole group is doing. Each result is made of a huge pile of singletons that are a nightmare to read and analyze ๐Ÿ˜ญ And delays can't be compared fairly because every receiver is a different distance from the sender ๐Ÿ™ˆ

Multiparty communication services need more than absolute performance info. They also need info on "relative performance" ๐Ÿ‘‘ That just means the difference between the absolute performance of all the users. You can't show that by directly using the one-way metrics. Using the variations of all users' one-way parameters, though, gives us new metrics that measure those differences ๐Ÿ’… From there we can figure out the threshold value of relative performance a multiparty service might demand. The ultimate example is online gaming ๐ŸŽฎ A teeny tiny difference in delay can literally make the game fail ๐Ÿ’€ So we need multicast-specific statistic metrics to define the relative delay that online gaming requires. Other services like online bidding and the online stock market also need multicast metrics to check the network against their requirements โœจ Which is why new, multicast-specific statistic metrics are so important.

We can also use some one-to-group statistic concepts to present and report group performance and relative performance, which saves report transmission bandwidth ๐Ÿฆ‹ Statistics for one-way metrics were already defined in corresponding RFCs, and they're the foundation for performance statistics. For example, [RFC2679] defines minimum and maximum one-way delay. BUT there's a dramatic difference between statistics for one-to-one communication and for one-to-many communication ๐ŸŒˆ The former only has statistics over the time dimension, while the latter can have statistics over both the time and space dimensions. The space dimension comes from the Matrix concept, shown in Figure 4. For a Matrix M, each row is a set of one-way singletons spread over the time dimension, and each column is another set of one-way singletons spread over the space dimension.

            Receivers
             Space
               ^
             1 |    / R1dT1   R1dT2     R1dT3 ... R1dTk \
               |   |                                     |
             2 |   |  R2dT1   R2dT2     R2dT3 ... R2dTk  |
               |   |                                     |
             3 |   |  R3dT1   R3dT2     R3dT3 ... R3dTk  |
             . |   |                                     |
             . |   |                                     |
             . |   |                                     |
             n |    \ RndT1   RndT2     RndT3 ... RndTk /
               +--------------------------------------------> time
              T0

                         Figure 4: Matrix M (n*m)

In Matrix M, each element is a one-way delay singleton ๐Ÿ“ Each column is a delay vector, containing the one-way delays of the same packet observed at n points of interest. That's where the geographical factor of performance within a group shows up ๐ŸŒ Each row is a set of one-way delays observed during a sampling interval at one point of interest, so it shows the delay performance at one receiver over the time dimension.

So you can calculate statistics either by rows over the space dimension or by columns over the time dimension ๐Ÿงš It's up to the operators or service providers which dimension they care about. For example, a TV broadcast provider might want the statistical performance of each user over a long-term run, just to make sure the service is acceptable and stable ๐Ÿ“บ Meanwhile, an online gaming provider might care more about whether all users are served fairly, so they'd calculate statistics over the space dimension ๐ŸŽฎ This memo does not try to recommend which statistics are better than others, bestie ๐Ÿ’œ

To save report transmission bandwidth, each point of interest can send statistics for a pre-defined time interval to the reference point instead of sending every single one-way singleton it observed ๐ŸŽ€ As long as an appropriate time interval is picked, the statistics can represent performance at a certain accurate scale โœจ How to decide the time interval, and how to bootstrap all points of interest and the reference point, depends on the application. For instance, apps with a lower transmission rate can have a longer interval, and apps with a higher transmission rate can have a shorter one ๐ŸŒธ That's out of scope for this memo though.

Also, once you know the statistics over the time dimension, you might want to see how they're distributed over the space dimension ๐Ÿ‘€ Say a TV broadcast provider has the performance Matrix M and calculates the one-way delay mean over the time dimension, which gives a delay vector {V1,V2,..., VN}. They then calculate the mean of all the elements in that vector to see what level of delay they've served to all N users ๐Ÿ“Š That new delay mean tells you how well the service was delivered to a group of users during a sampling interval, in terms of delay. Getting this statistic over both time and space takes twice as much calculation ๐Ÿ˜ญ These are called 2-level statistics, to tell them apart from 1-level statistics calculated over just one dimension. It can be easily proven that no matter which dimension a 2-level statistic is calculated over first, the results are the same ๐Ÿคฏ So you can get the 2-level delay mean from Matrix M by taking the 1-level delay mean over the time dimension first and then the mean of the resulting vector. OR you can do the 1-level calculation over the space dimension first and then get the 2-level delay mean. Both results will be exactly the same โœจ That means when defining a 2-level statistic, there's no need to specify the order the calculation happens in ๐Ÿ’…

Tons of statistics can be defined for the proposed one-to-group metrics over the space dimension, the time dimension, or both ๐ŸŒˆ This memo covers the case where a stream of packets from the Source results in a sample at each of the Receivers in the Group. Each of those samples is summarized with the usual statistics used in one-to-one communication ๐Ÿฆ‹ New statistic definitions are then presented that summarize those one-to-one statistics over all the Receivers in the Group ๐Ÿ‘‘

8.1. Discussion on the Impact of Packet Loss on Statistics

Packet loss definitely affects one-way metrics and their statistics ๐Ÿ˜ค For example, a lost packet can result in an infinite one-way delay. That's easy to handle by just ignoring the infinite value when computing the metrics and the corresponding statistics ๐Ÿ™Œ BUT packet loss hits the one-to-group statistics SO hard that the same fix used for one-way metrics won't work ๐Ÿ’€ That's because building the matrix, which the statistics proposed in this memo need, is really complicated ๐Ÿงฉ

Here's the situation. Measurement results from different end users might have different packet loss patterns ๐ŸŒ€ For example, for User1, packet A was observed to be lost. But for User2, packet A was received successfully, while packet B was lost. If you apply the one-way metrics fix here, the two singleton sets reported by User1 and User2 end up differing in terms of which transmitted packets they cover ๐Ÿ˜ต And if User1 and User2 have different numbers of lost packets, their result sizes will be different too. So for centralized calculation, the reference point can't use those two results to build the group Matrix and can't calculate the statistics ๐Ÿšซ The most extreme case is when no packets arrive at any user at all ๐Ÿ˜ญ

One possible solution is to replace the infinite or undefined delay value with the average of the two adjacent values โœจ For example, say the result reported by User1 is { R1dT1 R1dT2 R1dT3 ... R1dTK-1 UNDEF R1dTK+1... R1MD }, where UNDEF is an undefined value. The reference point can replace it with R1dTK = {(R1dTK-1)+( R1dTK+1)}/2. Then that result can be used to build the group Matrix with an estimated value of R1dTK ๐ŸŽ€ There are other possible solutions too, like using the overall mean of the whole result to replace the infinite or undefined value, and so on ๐ŸŒธ BUT those are out of scope for this memo.

For distributed calculation, the reported statistics might carry different "weight" when presenting group performance ๐ŸŽฏ This is especially true for delay and ipdv-related metrics. For example, User1 calculates the Type-P-Finite-One-way-Delay-Mean R1MD as shown in Figure 7 with no packet loss at all, while User2 calculates R2MD with N-2 packet loss. R1MD and R2MD should not be treated with equal weight, because R2MD was only calculated from two delay values across the whole sample interval ๐Ÿ˜ฌ One possible solution is to use a weight factor to mark every statistic value sent by the users, and then use that factor in further statistic calculation ๐Ÿ’–

8.2. General Metric Parameters โœจ

okay bestie, here's the shared cast of characters for every metric in this section ๐Ÿ’… each one has a little letter name, and you'll see them everywhere so let's meet them ๐Ÿฆ‹

  • Src ๐ŸŒธ, the IP address of a host.
  • G ๐Ÿ’œ, the receiving group identifier.
  • N ๐Ÿงš, the number of Receivers (Recv1, Recv2, ... RecvN).
  • T โฐ, a time (start of test interval).
  • Tf โฐ, a time (end of test interval).
  • K ๐Ÿ“ฆ, the number of packets sent from the source during the test interval.
  • J[n] ๐Ÿ“ฌ, the number of packets received at a particular Receiver, n, where 1<=n<=N.
  • lambda ๐ŸŒŠ, a rate in reciprocal seconds (for Poisson Streams).
  • incT โฑ๏ธ, the nominal duration of inter-packet interval, first bit to first bit (for Periodic Streams).
  • T0 ๐ŸŽ€, a time that MUST be selected at random from the interval [T, T+I] to start generating packets and taking measurements (for Periodic Streams).
  • TstampSrc ๐ŸŽŸ๏ธ, the wire-time of the packet as measured at MP(Src) (the Source Measurement Point).
  • TstampRecv ๐ŸŽซ, the wire-time of the packet as measured at MP(Recv), assigned to packets that arrive within a "reasonable" time.
  • Tmax ๐Ÿ™ˆ, a maximum waiting time for packets at the destination, set sufficiently long to disambiguate packets with long delays from packets that are discarded (lost); thus, the distribution of delay is not truncated.
  • dT ๐Ÿ“, shorthand notation for a one-way delay singleton value.
  • L ๐Ÿ’€, shorthand notation for a one-way loss singleton value, either zero or one, where L=1 indicates loss and L=0 indicates arrival at the destination within TstampSrc + Tmax, may be indexed over n Receivers.
  • DV โœจ, shorthand notation for a one-way delay variation singleton value.

8.3. One-to-Group Delay Statistics ๐ŸŒˆ

okay so this section is where we get into the delay stats for each receiver AND the whole group, and the matrix below is giving everything ๐Ÿ˜ญ๐Ÿ”ฅ

   Recv    /----------- Sample -------------\   Stats      Group Stat

    1      R1dT1   R1dT2     R1dT3 ... R1dTk    R1MD  \
                                                       |
    2      R2dT1   R2dT2     R2dT3 ... R2dTk    R2MD   |
                                                       |
    3      R3dT1   R3dT2     R3dT3 ... R3dTk    R3MD    > Group Delay
    .                                                  |
    .                                                  |
    .                                                  |
    n      RndT1   RndT2     RndT3 ... RndTk    RnMD  /

                                              Receiver-n
                                                Delay

                  Figure 5: One-to-Group Mean Delay

the stats are computed on the finite one-way delays in that matrix ๐Ÿง

all one-to-group delay stats are expressed in seconds, with enough resolution to show three significant digits ๐Ÿ’–

8.3.1. Type-P-One-to-group-Receiver-n-Mean-Delay ๐Ÿ’œ

this part defines Type-P-One-to-group-Receiver-n-Mean-Delay, the Delay Mean at each Receiver N, also called RnMD ๐Ÿฆ‹

we grab the Type-P-One-way-Delay singleton for all the packets sent during the test interval at each Receiver (Destination), like it says in [RFC2679]. for each packet that arrives within Tmax of its sending time, TstampSrc, the one-way delay singleton (dT) is the finite value TstampRecv[i] - TstampSrc[i] in units of seconds. otherwise, the singleton value is Undefined ๐Ÿ’€

                       J[n]
                       ---
                  1    \
       RnMD =    --- *  >  TstampRecv[i] - TstampSrc[i]
                 J[n]  /
                       ---
                       i = 1

       Note:  RnMD value is Undefined when J[n] = 0 for all n.

        Figure 6: Type-P-One-to-group-Receiver-n-Mean-Delay

where all packets i= 1 through J[n] have finite singleton delays โœจ

8.3.2. Type-P-One-to-group-Mean-Delay ๐ŸŽ€

this section defines Type-P-One-to-group-Mean-Delay, the Mean one-way Delay calculated over the entire Group, also called GMD ๐ŸŒธ

                                     N
                                    ---
                               1    \
                        GMD =  - *   >   RnMD
                               N    /
                                    ---
                                    n = 1

             Figure 7: Type-P-One-to-group-Mean-Delay

fun fact (well, it's in the doc!): the Group Mean Delay can also be calculated by summing the finite one-way delay singletons in the matrix, and dividing by the number of finite one-way delay singletons ๐Ÿงฎโœจ

8.3.3. Type-P-One-to-group-Range-Mean-Delay ๐ŸŒŠ

this section defines a metric for the Range of Mean Delays over all N receivers in the Group (R1MD, R2MD...RnMD) ๐Ÿ’…

Type-P-One-to-group-Range-Mean-Delay = GRMD = max(RnMD) - min(RnMD)

8.3.4. Type-P-One-to-group-Max-Mean-Delay ๐Ÿ‘‘

this section defines a metric for the Maximum of Mean Delays over all N receivers in the Group (R1MD, R2MD,...RnMD) ๐Ÿ”ฅ

Type-P-One-to-group-Max-Mean-Delay = GMMD = max(RnMD)

8.4. One-to-Group Packet Loss Statistics ๐Ÿ’€

same energy as before: this section is the overall one-way loss stats for a receiver AND the entire group, as the matrix below shows ๐Ÿ™ˆ

 Recv    /----------- Sample ----------\   Stats     Group Stat

   1      R1L1   R1L2     R1L3 ... R1Lk     R1LR \
                                                  |
   2      R2L1   R2L2     R2L3 ... R2Lk     R2LR  |
                                                  |
   3      R3L1   R3L2     R3L3 ... R3Lk     R3LR   > Group Loss Ratio
   .                                              |
   .                                              |
   .                                              |
   n      RnL1   RnL2     RnL3 ... RnLk     RnLR /

                                        Receiver-n
                                        Loss Ratio

                  Figure 8: One-to-Group Loss Ratio

the stats are computed on the sample of Type-P-One-way-Packet-Loss [RFC2680] in that matrix ๐Ÿง

all loss ratios are expressed as packets lost to total packets sent ๐Ÿซถ

8.4.1. Type-P-One-to-group-Receiver-n-Loss-Ratio ๐ŸŒˆ

okay so, given a matrix of loss singletons like the one above, you figure out the Type-P-One-way-Packet-Loss-Average for the sample at each receiver, following the definitions and method in [RFC2680]. the Type-P-One-way-Packet-Loss-Average and the Type-P-One-to-group-Receiver-n-Loss-Ratio, also called RnLR, are equivalent metrics ๐Ÿ‘‘ in terms of the parameters we're using here, the definition looks like this:

                                        K
                                       ---
                                  1     \
                          RnLR =  - *    >   RnLk
                                  K     /
                                       ---
                                      k = 1

          Figure 9: Type-P-One-to-group-Receiver-n-Loss-Ratio

8.4.2. Type-P-One-to-group-Receiver-n-Comp-Loss-Ratio ๐Ÿฆ‹

usually the number of packets sent goes in the denominator of packet loss ratio metrics ๐Ÿ“ฆ but for the comparative metrics defined here, the denominator is the maximum number of packets received at any receiver for the sample and test interval of interest. the numerator is the sum of the losses at receiver n ๐Ÿ’–

the Comparative Loss Ratio, also called RnCLR, is defined as:

                               K
                              ---
                              \
                               >   Ln(k)
                              /
                              ---
                              k=1
         RnCLR =  -----------------------------
                           /    K         \
                           |   ---        |
                           |   \          |
                   K - Min |    >   Ln(k) |
                           |   /          |
                           |   ---        |
                           \   k=1        / N


         Note: Ln is a set of one-way loss values at receiver n.
               There is one value for each of the K packets sent.

      Figure 10: Type-P-One-to-group-Receiver-n-Comp-Loss-Ratio

8.4.3. Type-P-One-to-group-Loss-Ratio ๐ŸŽŸ๏ธ

Type-P-One-to-group-Loss-Ratio, the overall Group Loss Ratio, also called GLR, is defined as:

                                      K,N
                                      ---
                                1      \
                         GLR = --- *    >   Ln(k)
                              K*N      /
                                      ---
                                     k,n = 1

              Figure 11: Type-P-One-to-group-Loss-Ratio

where the sum includes all of the Loss singletons, Ln(k), over the N receivers and K packets sent, in a ratio with the total packets over all receivers ๐ŸŽซ

8.4.4. Type-P-One-to-group-Range-Loss-Ratio ๐ŸŒธ

the One-to-group Loss Ratio Range is defined as:

Type-P-One-to-group-Range-Loss-Ratio = max(RnLR) - min(RnLR)

it's most effective to show the range by giving both the maximum and minimum loss ratios for the Group, rather than only the difference between them ๐Ÿซถ

8.5. One-to-group Delay Variation Statistics โœจ

this section defines the one-way delay variation (DV) stats for an entire group, as the matrix below shows ๐Ÿงš

 Recv    /------------- Sample --------------\   Stats

  1     R1ddT1   R1ddT2     R1ddT3 ... R1ddTk   R1DV  \
                                                      |
  2     R2ddT1   R2ddT2     R2ddT3 ... R2ddTk   R2DV   |
                                                      |
  3     R3ddT1   R3ddT2     R3ddT3 ... R3ddTk   R3DV    > Group Stat
  .                                                   |
  .                                                   |
  .                                                   |
  n     RnddT1   RnddT2     RnddT3 ... RnddTk   RnDV  /

        Figure 12: One-to-group Delay Variation Matrix (DVMa)

the stats are computed on the sample of Type-P-One-way-ipdv singletons of the group delay variation matrix above, where RnddTk is the Type-P-One-way-ipdv singleton evaluated at Receiver n for the packet k, and RnDV is the point-to-point one-way packet delay variation for Receiver n ๐ŸŒˆ

all One-to-group delay variation stats are expressed in seconds, with enough resolution to show three significant digits ๐Ÿ’…

8.5.1. Type-P-One-to-group-Range-Delay-Variation ๐Ÿ‘‘

this section defines a metric for the Range of Delay Variation over all N receivers in the Group ๐Ÿ”ฅ

the max DV and min DV over all receivers sum up the performance over the Group (and DV is a point-to-point metric, btw). for each receiver, DV is usually expressed as the 1-10^(-3) quantile of one-way delay minus the minimum one-way delay ๐Ÿ™ˆ

Type-P-One-to-group-Range-Delay-Variation = GRDV =

= max(RnDV) - min(RnDV) for all n receivers

this range is figured out from the min and max values of the point-to-point one-way IP Packet Delay Variation for the set of Destinations in the group and a population of interest, using the Packet Delay Variation expressed as the 1-10^-3 quantile of one-way delay minus the minimum one-way delay. if you want a more demanding service, one option is the 1-10^-5 quantile, and either way, the quantile you used should be recorded with the results ๐Ÿ’€ both the minimum and the maximum delay variation get recorded, and both values are given to show where the range is โœจ

9. Measurement Methods: Scalability and Reporting โœจ

okay so bestie, basically all the good guidance from the earlier IPPM RFCs (like [RFC2679] and [RFC2680]) for one-to-one scenarios still applies to spatial and multiparty setups ๐Ÿ’– The big difference is that these setups need multiple points of interest, and each one collects a stream of singletons ๐Ÿซถ So the amount of info to store grows with BOTH the number of metrics AND the number of points of interest. The scale of the architecture multiplies how many singleton results need collecting and processing ๐Ÿ˜ญ

It's possible that results collection has a single reference point connected to every point of interest ๐Ÿงš In that case, the number of points of interest decides the storage capacity AND the packet transfer capacity of the host acting as the reference point. BUT both can be reduced if the points of interest can compute the summary statistics for each measurement interval โœจ This is very much how a lot of operational monitoring works today, where even the individual singletons might not get stored at each point of interest ๐ŸŒธ

Since minimizing the results for storage and communication is likely to matter, the Group metrics above were built to allow some computations on a per-Receiver basis ๐Ÿ’… That means each Receiver's statistics would normally carry equal weight with every other Receiver in the Group, no matter how many packets that Receiver actually received ๐Ÿ™ˆ

9.1. Computation Methods

The scalability issue can come up when there are thousands of points of interest in a group all trying to send measurement results back to the reference point for processing and analysis ๐Ÿ˜ญ The points of interest can send either the whole measured sample or only the calculated statistics. The first is a centralized statistic calculation method and the second is a distributed one. The sample should include all metrics parameters, the values, and the corresponding sequence numbers.

Sending the whole sample can cost way more bandwidth than sending just the statistics, which should include all statistic parameters specified by policies plus extra info about the whole sample, like the size of the sample, the group address, the address of the point of interest, the ID of the sample session, and so on ๐ŸŽ€ Apparently the centralized method can need much more bandwidth than the distributed method when the sample size is big. This is especially true when there's a very large number of points of interest, and it can lead to a scalability issue at the reference point by overloading the network resources ๐Ÿ’€

The distributed calculation method can save much more bandwidth and mitigate scalability issues on the reference point side ๐Ÿฆ‹

But ngl, there's a tradeoff. It may result in a loss of information. Since not all measured singletons are available for building the group matrix, the real performance over time can get hidden from the result. For example, the loss pattern can be missed by simply accepting the loss ratio ๐Ÿ‘€ This tradeoff between bandwidth consumption and information acquisition has to be taken into account when designing the measurement approach ๐Ÿ’œ

One possible solution is to transmit the statistic parameters to the reference point first, to get the general picture of group performance. If detailed results are required, the reference point should send requests to the points of interest, which could be particular ones or the whole group. This procedure can happen in off-peak time and be scheduled so that too many points of interest don't deliver at the same time ๐Ÿ“ Compression techniques can also be used to minimize the bandwidth required for transmission. A measurement protocol to report the measurement results could be one such thing, but that is out of scope for this memo ๐Ÿซถ

9.2. Measurement

To prevent any bias in the result, the configuration of a one-to-many measure must take into consideration that more packets will be routed than sent (copies of a packet sent are expected to arrive at many destination points), and it must select a test packet rate that will not impact the network performance ๐ŸŒˆ

9.3. Effect of Time and Space Aggregation Order on Stats

This section presents the impact of the aggregation order on the scalability of the reporting and of the computation ๐Ÿ“Š It assumes that receivers are not co-located and that results are gathered in a point of reference for further use ๐Ÿงš

Multimetric samples are represented in a matrix, like this:

      Point of
      Interest
        1      R1S1   R1S1     R1S1 ... R1Sk    \
                                                 |
        2      R2S1   R2S2     R2S3 ... R2Sk     |
                                                 |
        3      R3S1   R3S2     R3S3 ... R3Sk      >  Sample over Space
        .                                        |
        .                                        |
        .                                        |
        n      RnS1   RnS2     RnS3 ... RnSk    /

               S1M    S2M      S3M  ... SnM     Stats over Space

               \-------------  ------------/
                             \/
                 Stats over Space and Time

       Figure 13: Impact of Space Aggregation on Multimetrics Stats

Two methods are available to compute statistics on a matrix:

  • Method 1: The statistic metric is computed over time and then over space; or
  • Method 2: The statistic metric is computed over space and then over time.

These two methods differ only by the order of the aggregation. The order does not impact the computation resources required, and it does not change the value of the result. However, it severely impacts the minimal volume of data to report ๐Ÿ˜ฎ

  • Method 1: Each point of interest periodically computes statistics over time to lower the volume of data to report. They are reported to the reference point for subsequent computations over the spatial dimension. This volume no longer depends on the number of samples. It is only proportional to the computation period.
  • Method 2: The volume of data to report is proportional to the number of samples. Each sample, RiSi, must be reported to the reference point for computing statistic over space and statistic over time. The volume increases with the number of samples. It is proportional to the number of test packets;

Method 2 has severe drawbacks in terms of security and dimensioning ๐Ÿ™€

  • Increasing the rate of the test packets may result in a Denial of Service (DoS) toward the points of reference;
  • The dimensioning of a measurement system is quite impossible to validate because any increase of the rate of the test packets will increase the bandwidth requested to collect the raw results.

The computation period over time (commonly named the aggregation period) gives the reporting side control over various collecting aspects, such as bandwidth, computation, and storage capacities. So this document defines metrics based on method 1 ๐Ÿ’–

9.3.1. Impact on Spatial Statistics

Two methods are available to compute spatial statistics:

  • Method 1: Spatial segment metrics and statistics are preferably computed over time for each points of interest;
  • Method 2: Vectors metrics are intrinsically instantaneous space metrics, which must be reported using Method 2 whenever instantaneous metrics information is needed.

9.3.2. Impact on One-to-Group Statistics

Two methods are available to compute group statistics:

  • Method 1: Figure 5 and Figure 8 illustrate the method. The one-to-one statistic is computed per interval of time before the computation of the mean over the group of receivers.
  • Method 2: Figure 13 presents the second method. The metric is computed over space and then over time.

10. Manageability Considerations ๐ŸŽ€

This section defines the reporting of all the metrics introduced in the document ๐Ÿ“

Information models of spatial metrics and of one-to-group metrics are similar, except that points of interests of spatial vectors MUST be ordered ๐Ÿ’…

The complexity of the reporting relies on the number of points of interest ๐Ÿงš

10.1. Reporting Spatial Metric

The reporting of spatial metrics shares a lot of aspects with RFC 2679 and RFC 2680 ๐Ÿซถ The new ones are common to all the definitions and are mostly related to the reporting of the path and of methodology parameters that may bias raw results analysis. This section presents these specific parameters and then lists exhaustively the parameters that SHOULD be reported ๐Ÿ“

10.1.1. Path

End-to-end metrics can't determine the path of the measure, even though IPPM RFCs recommend it be reported (see section 3.8.4 of [RFC2679]) ๐Ÿ™ƒ Spatial metrics vectors provide this path. The report of a spatial vector MUST include the points of interests involved: the sub-set of the routers of the path participating in the instantaneous measure.

10.1.2. Host Order

A spatial vector MUST order the points of interest according to their order in the path. The ordering MAY be based on information from the TTL in IPv4, the Hop Limit in IPv6, or the corresponding information in MPLS ๐Ÿฆ‹

The report of a spatial vector MUST include the ordered list of the hosts involved in the instantaneous measure ๐Ÿ’œ

10.1.3. Timestamping Bias

The location of the point of interest inside a node influences the timestamping skew and accuracy ๐Ÿ‘€ As an example, consider that some internal machinery delays the timestamping up to three milliseconds. Then the minimal uncertainty reported be 3 ms if the internal delay is unknown at the time of the timestamping โฑ๏ธ

The report of a spatial vector MUST include the uncertainty of the timestamping compared to wire-time ๐ŸŒธ

10.1.4. Reporting Spatial One-Way Delay

The reporting includes information to report for one-way delay as in section 3.6 of [RFC2679]. The same applies for packet loss and ipdv ๐ŸŽ€

10.2. Reporting One-to-Group Metric

All reporting rules described in [RFC2679] and [RFC2680] apply to the corresponding One-to-group metrics. The following are specific parameters that SHOULD be reported ๐Ÿ’–

10.2.1. Path

As suggested by [RFC2679] and [RFC2680], the path traversed by the packet SHOULD be reported, if possible. For One-to-group metrics, the path tree between the source and the destinations, or the set of paths between the source and each destination, SHOULD be reported ๐Ÿ—บ๏ธ

The path tree might not be as valuable as individual paths, because an incomplete path might be difficult to identify in the path tree. For example, how many points of interest are reached by a packet traveling along an incomplete path? ๐Ÿค”

10.2.2. Group Size

The group size SHOULD be reported as one of the critical management parameters ๐Ÿ‘‘ One-to-group metrics, unlike spatial metrics, don't require the ordering of the points of interests, because group members receive the packets in parallel โšก

10.2.3. Timestamping Bias

It is the same as described in section 10.1.3.

10.2.4. Reporting One-to-group One-way Delay

It is the same as described in section 10.1.4.

10.2.5. Measurement Method ๐ŸŽ€

Okay so, like we covered back in section 9, the measurement method changes how you analyze the results ๐Ÿง so it SHOULD be reported ๐Ÿ’– no skipping it, bestie!

10.3. Metric Identification ๐Ÿ†”

Every metric the IPPM WG defines gets its own unique identifier from IANA, assigned as per [RFC4148] and listed in the IANA-IPPM-METRICS-REGISTRY-MIB โœจ so everyone can find the same metric by the same name.

10.4. Information Model ๐Ÿง 

This section lays out the pieces of info you need and how that info gets used for network performance analysis ๐Ÿ“Š How the info actually gets reported is out of scope here, so don't look for it in this part ๐Ÿ™ƒ

The info model is built from the pieces introduced and explained in [RFC2679], [RFC2680], [RFC3393], and [RFC3432], which define the IPPM metrics. You also grab stuff from any of the sections called "Reporting the metric", "Methodology", and "Errors and Uncertainties" in those docs, wherever they exist ๐Ÿ“š

Here are the info elements taken from the end-to-end metric definitions this memo refers to, plus the spatial and multicast ones it defines itself ๐Ÿฆ‹

  • Packet_type, the Type-P of test packets (Type-P).
  • Packet_length, a packet length in bits (L).
  • Src_host, the IP address of the sender.
  • Dst_host, the IP address of the receiver.
  • Hosts_series: <H1, H2,..., Hn>, a list of points of interest taking part in the instantaneous measure. These are routers for spatial metrics, or receivers for one-to-group metrics.
  • Loss_threshold, the threshold of infinite delay.
  • Systematic_error, a constant delay between wire-time and timestamping.
  • Calibration_error, the maximal uncertainty.
  • Src_time, the sending time for a measured packet.
  • Dst_time, the receiving time for a measured packet.
  • Result_status, an indicator of whether a result is usable: 'Resource exhaustion', 'infinite', or 'lost' ๐Ÿšฆ
  • Delays_series, <dT1,..., dTn>, a list of delays.
  • Losses_series, <B1, B2, ..., Bi, ..., Bn>, a list of Boolean values (spatial) or a set of Boolean values (one-to-group).
  • Result_status_series, a list of result statuses.
  • dT, a delay.
  • Singleton_number, a number of singletons.
  • Observation_duration, an observation duration.
  • metric_identifier.

For each vector, this is the info that SHOULD be available to compute samples ๐Ÿงฎ

  • Packet_type;
  • Packet_length;
  • Src_host, the sender of the packet;
  • Dst_host, the receiver of the packet. This only applies to spatial vectors;
  • Hosts_series, not ordered for one-to-group;
  • Src_time, the sending time for the measured packet;
  • dT, the end-to-end one-way delay for the measured packet. This only applies to spatial vectors;
  • Delays_series. This only applies to delays and ipdv vectors, and it's not ordered for one-to-group;
  • Losses_series. This only applies to packet loss vectors, and it's not ordered for one-to-group;
  • Result_status_series;
  • Observation_duration, the difference between the time of the last singleton and the time of the first singleton.

Next up is the context info, meaning the measure and the points of interest, that SHOULD be available to compute samples ๐ŸŒธ

  • Loss threshold;
  • Systematic error, a constant delay between wire-time and timestamping;
  • Calibration error, the maximal uncertainty.

A spatial sample or a one-to-group sample is a bunch of singletons that show the performance from the sender to one single point of interest ๐Ÿ’œ

For each sample, this is the info that SHOULD be available to compute statistics ๐Ÿ“ˆ

  • Packet_type;
  • Packet_length;
  • Src_host, the sender of the packet;
  • Dst_host, the receiver of the packet;
  • Start_time, the sending time of the first packet;
  • Delays_series. This only applies to delays and ipdv samples;
  • Losses_series. This only applies to packet loss samples;
  • Result_status_series;
  • Observation_duration, the difference between the time of the last singleton of the last sample and the time of the first singleton of the first sample.

The context info (measure and points of interest) that SHOULD be available to compute statistics is:

  • Loss threshold;
  • Systematic error, a constant delay between wire-time and timestamping;
  • Calibration error, the maximal uncertainty;

And finally, for each statistic, this is the info that SHOULD be reported ๐ŸŽฏ

  • Result;
  • Start_time;
  • Duration;
  • Result_status;
  • Singleton_number, the number of singletons the statistic is computed on;

11. Security Considerations ๐Ÿ”

Spatial and one-to-group metrics are built on top of end-to-end metrics, so the security considerations from the one-way delay metric definitions in [RFC2679], the packet loss metric definitions in [RFC2680], and the IPDV metric definitions in [RFC3393] and [RFC3432] all apply to the metrics in this memo too ๐Ÿ›ก๏ธ

Someone could spoof the identity of a point of interest and send corrupt results on purpose, just to steer traffic engineering decisions remotely ๐Ÿ˜ฑ

A point of interest could also corrupt its own results on purpose, again to steer traffic engineering decisions remotely ๐Ÿ™€

11.1. Spatial Metrics ๐Ÿ›ฐ๏ธ

Generating malicious packets that systematically match the hash function used to detect packets may lead to a DoS attack against the point of reference ๐Ÿ’€

Spatial measurement results carry the performance of each segment of a path, along with the identity of the nodes. An attacker could use this to find the weak spots in a network (for example, a congested node) that need the least extra attack traffic to exploit ๐Ÿ˜ˆ So monitoring info should be carried in a way that keeps unintended recipients from reading the measurement reports. The simple fix is to restrict access to the reports using encrypted sessions or secured networks ๐Ÿ”’

11.2. One-to-Group Metrics ๐Ÿ‘ฅ

Reporting measurement results from a huge number of probes may overload the resources of the reference point (network, network interfaces, computation capacity, and so on) ๐Ÿ˜ฉ

When you set up a measurement, you have to account for the fact that more packets get routed than sent, and pick the test packet rate with that in mind ๐Ÿงฎ Collecting statistics from a huge number of probes may overload any combination of the network the measurement controller is attached to, its network interfaces, and its computation capacity ๐Ÿ“‰

One-to-group metric measurements should consider using source authentication protocols standardized in the MSEC group, to avoid fraudulent packets in the sampling interval ๐Ÿ•ต๏ธโ€โ™€๏ธ The test packet rate could be negotiated before any measurement session, to help avoid denial-of-service attacks ๐Ÿšง

A point of interest could also intentionally degrade its results to make the quality of the network look better on the branches of the multicast tree it's connected to ๐Ÿ™ˆ

12. Acknowledgments ๐Ÿซถ

Lei would like to thank Professor Zhili Sun from CCSR, University of Surrey, for his guidance and helpful comments on this work ๐ŸŒˆ

13. IANA Considerations ๐Ÿฆ‹

okay so the metrics in this memo got officially registered in the IANA IPPM METRICS REGISTRY, which is the registry set up in the first version of it [RFC4148] ๐Ÿ“šโœจ IANA also registered them in the IANA-IPPM-METRICS-REGISTRY-MIB, so here's the whole list, copied exactly ๐Ÿ’…

ietfSpatialOneWayDelayVector OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-Spatial-One-way-Delay-Vector"

   REFERENCE

      "RFC 5644, section 5.1."

   := { ianaIppmMetrics 52 }

ietfSpatialPacketLossVector OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-Spatial-Packet-Loss-Vector"

   REFERENCE

      "RFC 5644, section 5.2."

   := { ianaIppmMetrics 53 }

ietfSpatialOneWayIpdvVector OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-Spatial-One-way-ipdv-Vector"

   REFERENCE

      "RFC 5644, section 5.3."

   := { ianaIppmMetrics 54 }

ietfSegmentOneWayDelayStream OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-Segment-One-way-Delay-Stream"

   REFERENCE

      "RFC 5644, section 6.1."

   := { ianaIppmMetrics 55 }

ietfSegmentPacketLossStream OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-Segment-Packet-Loss-Stream"

   REFERENCE

      "RFC 5644, section 6.2."

   := { ianaIppmMetrics 56 }

ietfSegmentIpdvPrevStream OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-Segment-ipdv-prev-Stream"

   REFERENCE

      "RFC 5644, section 6.3."

   := { ianaIppmMetrics 57 }

ietfSegmentIpdvMinStream OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-Segment-ipdv-min-Stream"

   REFERENCE

      "RFC 5644, section 6.4."

   := { ianaIppmMetrics 58 }

-- One-to-group metrics

ietfOneToGroupDelayVector OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-One-to-group-Delay-Vector"

   REFERENCE

      "RFC 5644, section 7.1."

   := { ianaIppmMetrics 59 }

ietfOneToGroupPacketLossVector OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-One-to-group-Packet-Loss-Vector"

   REFERENCE

      "RFC 5644, section 7.2."

   := { ianaIppmMetrics 60 }

ietfOneToGroupIpdvVector OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-One-to-group-ipdv-Vector"

   REFERENCE

      "RFC 5644, section 7.3."

   := { ianaIppmMetrics 61 }

-- One to group statistics

--

ietfOnetoGroupReceiverNMeanDelay OBJECT-IDENTITY

   STATUS current
   DESCRIPTION

      "Type-P-One-to-group-Receiver-n-Mean-Delay"

   REFERENCE

      "RFC 5644, section 8.3.1."

   := { ianaIppmMetrics 62 }

ietfOneToGroupMeanDelay OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-One-to-group-Mean-Delay"

   REFERENCE

      "RFC 5644, section 8.3.2."

   := { ianaIppmMetrics 63 }

ietfOneToGroupRangeMeanDelay OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-One-to-group-Range-Mean-Delay"

   REFERENCE

      "RFC 5644, section 8.3.3."

   := { ianaIppmMetrics 64 }

ietfOneToGroupMaxMeanDelay OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-One-to-group-Max-Mean-Delay"


   REFERENCE

      "RFC 5644, section 8.3.4."

   := { ianaIppmMetrics 65 }

ietfOneToGroupReceiverNLossRatio OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-One-to-group-Receiver-n-Loss-Ratio"

   REFERENCE

      "RFC 5644, section 8.4.1."

   := { ianaIppmMetrics 66 }

--

ietfOneToGroupReceiverNCompLossRatio OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-One-to-group-Receiver-n-Comp-Loss-Ratio"

   REFERENCE

      "RFC 5644, section 8.4.2."

   := { ianaIppmMetrics 67 }

ietfOneToGroupLossRatio OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-One-to-group-Loss-Ratio"

   REFERENCE

      "RFC 5644, section 8.4.3."


   := { ianaIppmMetrics 68 }

--

ietfOneToGroupRangeLossRatio OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-One-to-group-Range-Loss-Ratio"

   REFERENCE

      "RFC 5644, section 8.4.4."

   := { ianaIppmMetrics 69 }

ietfOneToGroupRangeDelayVariation OBJECT-IDENTITY

   STATUS current

   DESCRIPTION

      "Type-P-One-to-group-Range-Delay-Variation"

   REFERENCE

      "RFC 5644, section 8.5.1."

   := { ianaIppmMetrics 70 }

--

14. References ๐Ÿ“š

14.1. Normative References

  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. ๐Ÿ’œ
  • [RFC2679] Almes, G., Kalidindi, S., and M. Zekauskas, "A One-way Delay Metric for IPPM", RFC 2679, September 1999. ๐ŸŒธ
  • [RFC2680] Almes, G., Kalidindi, S., and M. Zekauskas, "A One-way Packet Loss Metric for IPPM", RFC 2680, September 1999. ๐ŸŽ€
  • [RFC3393] Demichelis, C. and P. Chimento, "IP Packet Delay Variation Metric for IP Performance Metrics (IPPM)", RFC 3393, November 2002. โœจ
  • [RFC4148] Stephan, E., "IP Performance Metrics (IPPM) Metrics Registry", BCP 108, RFC 4148, August 2005. ๐Ÿงš

14.2. Informative References

  • [RFC2330] Paxson, V., Almes, G., Mahdavi, J., and M. Mathis, "Framework for IP Performance Metrics", RFC 2330, May 1998. ๐Ÿฆ‹
  • [RFC3432] Raisanen, V., Grotefeld, G., and A. Morton, "Network performance measurement with periodic streams", RFC 3432, November 2002. ๐ŸŒˆ
  • [SPATIAL] Morton, A. and E. Stephan, "Spatial Composition of Metrics", Work in Progress, June 2009. ๐Ÿ“

Authors' Addresses ๐Ÿ’–

Stephan Emile
France Telecom Division R&D
2 avenue Pierre Marzin
Lannion  F-22307
France

Fax:   +33 2 96 05 18 52
EMail: emile.stephan@orange-ftgroup.com
Lei Liang
CCSR, University of Surrey
Guildford
Surrey  GU2 7XH
UK

Fax:   +44 1483 683641
EMail: L.Liang@surrey.ac.uk
Al Morton
200 Laurel Ave. South
Middletown, NJ  07748
USA

Phone: +1 732 420 1571
EMail: acmorton@att.com

and that's the whole RFC, bestie!! ๐ŸŒˆ๐Ÿ‘‘ the people who wrote this are literally the reason we can measure the internet this precisely ๐Ÿ˜ญ๐Ÿซถ

๐Ÿ“ฆ where this page comes from